FRIENDS: PLAY TOGETHER, SAFELY.
One design, not options. Home doesn’t change. FRIENDS is a third view on the Profile tab’s switch, next to CUSTOMIZE, and a strip on PLAY WITH FRIENDS. The phone on the right steps through the screens; tap a chip to stop on one. Drawn at iPhone 16 landscape in the game’s look, from the real Profile tab, room and fight HUD. Names and numbers are made up.
WHERE IT LIVES: TWO WAYS IN
The Profile tab’s top switch gains FRIENDS (with a red count for new requests). PLAY WITH FRIENDS gets a slim FRIENDS strip under its two cards. Home stays exactly as it is.
THE SECTION: FRIENDS · RECENT · REQUESTS
Left: your friend code (SHARE sends it in any app), the search box and your spot in this week’s ranking. Right: three tabs. Every row has a presence dot, the player’s title, one main button and ··· for VIEW PROFILE, REMOVE, BLOCK and REPORT.
HOW THE SECTION BEHAVES
- Presence: green = online (menus or a room), orange = in a match, grey = offline (no word from them for 2½ min). The phone checks about once a minute while the app is open, over the internet only, never through the game relay.
- RECENT lists the real players you started a match with in a room (Wi-Fi or online) in the last 30 days. Bots and the ONLINE mode’s AI players never appear. Both phones have to report the match, so nobody can add themselves to your list.
- Search takes a name (3+ letters) or a friend code (K7QM-2XPA, any case, with or without the dash). Players under 13 are never in the results.
- Limits: 200 friends, 50 requests waiting at once.
- Names pass the game’s name filter on our server too. A name that fails, or one our team hides after reports, shows as PLAYER K7QM.
UNDER 13: ONLY PLAYERS FROM THEIR ROOMS
The same section, smaller. There is no friend code and no search. RECENT is the first tab and its only way to add someone. A RECENT row opens no profile; only friends see each other’s profiles. There are no gift buttons. An age not given yet counts as under 13 here.
WHAT OUR SERVER REFUSES (THE GAME ALSO HIDES IT)
- A child searching, and anyone finding a child by name or code.
- A child opening a stranger’s profile, and a stranger opening a child’s.
- A request to or from a child unless the two played a room together (RECENT).
- A gift to or from a child, even between friends.
- A refused request looks like “no such player”, so nobody can tell an age or a block from the answer.
PROFILES: THEIR PAGE, LIKE YOURS
Your own Profile tab’s layout (the hero with the XP ring, the last 5 results, the title plate, the rank strip and STATS / SHOWCASE / RECENT), filled with their numbers. Where your page has pencils, theirs has INVITE and ··· MORE. Someone from search shows ADD FRIEND and REPORT.
INVITES: A TOAST ON MENUS, A CHIP IN A FIGHT
Your room’s INVITE FRIENDS opens a picker: online friends first, then offline ones. On a menu, an invite is a toast with JOIN / NO. In a match it’s only a chip next to PAUSE. The chip makes no sound and has nothing to tap; it never sits over the fight. The toast comes back when the match ends, if the invite hasn’t run out.
INVITE RULES
- Only from an online room (ONLINE, or WI-FI PARTY with ALLOW ONLINE PLAYERS on). In a Wi-Fi party room with it off, INVITE FRIENDS offers to turn it on first.
- JOIN joins the room by its code, as typing it would. If you’re already in a room, it asks LEAVE THIS ROOM? first.
- Offline friends get a notification (“RAHUL_07 invited you to a room!”), only if they turned notifications and FRIEND INVITES on. At most 3 a day per player, at most one every 30 minutes from the same friend, and only 9 AM-10 PM their time.
- The sender sees the answer in the picker: JOINED, NO or RAN OUT.
- Invites exist only in builds where online play with friends is on; the rest of FRIENDS works without it.
RANKING: YOU AND YOUR FRIENDS, WEEKLY
KOs, WINS or K/D, each name with its title. It counts ONLINE, vs BOTS and room matches (not Practice, Training or KILL TEST). It resets every Monday at 00:00 UTC (5:30 AM in India), and LAST WEEK keeps the final board.
SAFETY: BLOCK · REPORT
··· is on every friend, RECENT row, ranking row, profile and invite. BLOCK is instant and silent. REPORT goes to our team’s queue on the dashboard; a name reported by 3 different players is hidden until someone checks it.
THE CALLS (APPROVED 3 NOV)
The coordinator approved these with the lane plan; the build follows this page.
HOW IT WORKS
- RECENT = a match started together, reported by both phones.
- Presence: one small check a minute while the app is open; no relay traffic.
- The friend code is also the player’s public id; the account key never leaves the phone.
LIMITS
- Invites last 5 min; notifications: 3 a day, 30 min apart per friend, 9 AM-10 PM.
- Ranking resets Monday 00:00 UTC; KOs capped at 40 a match.
- Everything is switchable from the dashboard (the friends block in the config).
KNOWN LIMIT
- Who’s online lives in one server’s memory: a server restart shows everyone grey for up to a minute and drops invites waiting at that moment.
- Nothing here touches a fight, the relay or the game’s network messages.
Page 81 · 3 Nov · concept only. Plan: stickbash-online docs/superpowers/plans/2026-11-03-prelaunch-friends.md. The room screen is page 72’s; the fight HUD is page 74’s. Screens are drawn at iPhone 16 landscape (998 × 460 game units); the iPad still is 4:3.