webstation-broker

Using the room

A player's guide to the collab room: joining, chat, webcam, controller assignment, and the rest of the bottom bar.

This page is for players, not integrators. It explains what you see and click when you open a session, whether you started it or joined someone else's. For how the room talks to the broker under the hood, see Users and invites.

Opening the room

You get to the room one of two ways:

  • You started the session. RomM opens it for you directly. You are the host.
  • Someone invited you, either with a link they copied from their own room, or by adding you by name from RomM. Opening that link or URL drops you into the same room, alongside the host.

The first time a link drops you into a room with no name attached, you're asked to pick a username before you can do anything else. It's remembered in your browser, so you won't be asked again on that device.

If the link says the session isn't running, or is no longer valid, someone already ended it or it hasn't started yet. Links only work while a session is live.

Host, participant, or spectator

Everyone in the room has one of three levels of access:

  • Host - whoever's game this is. Only the host can invite people, change who has a controller, and end the session for everyone.
  • Participant - joined with a "Collaboration User" invite. Can chat, share webcam and mic, and be handed a controller or the mouse and keyboard by the host.
  • Spectator (read-only) - joined with a "Read Only" invite. Can watch and chat, but has no webcam/mic controls and can never be handed input.

If you're the host, the last tile in the bottom bar is a dashed one with a big plus on it. Tap it and it flips over to two buttons, Player Invite Link and Viewer Invite Link. Either one copies that link to your clipboard, ready to send. Each is one link for the whole session, so you send the same one to everyone you want in, and each person who opens it gets their own seat. Links stop working when the session ends.

In a solo session, chat and webcam are hidden until someone else joins, so a single-player game doesn't clutter the screen with controls nobody's using. Opening an invite link always shows the full room, even into a session that started solo.

The bottom bar

Everything but the game itself lives in the bar along the bottom (swipe it down, or tap the handle at the bottom edge, to hide it and get the whole screen back). Left to right:

  • The stream controls at the left edge: a volume fader (a slider) for the game with a mute button under it, a Reload Stream button for the rare case the stream freezes, and Gaming Mode, described below. On a touch screen there's also a half-filled circle button for touch controls opacity, described below. The host also gets a three-line Emulator menu button when the game runs in RetroArch.
  • The controller tray (host only), then your own tile, then a tile for everyone else in the room.
  • The invite tile (host only), described above.
  • Chat, on the right: the most recent messages, with a box to type into. Tap into the box and it grows up to cover the bottom half of the game, showing the whole history. Tap anywhere else (or press Esc) and it drops back down. While it's closed, new messages pop up briefly above it so you don't miss them. On a small screen, once there isn't enough space for all the tiles and chat side by side, chat folds down to a narrow tab at the right edge with a dot marking unread messages. Tap the tab to open it.

Saving your progress and stopping the game aren't things the room's bar does. Those buttons are RomM's own, on the bar RomM shows above the stream. Volume shows up in both places. If you joined through an invite link, the room's fader is the only volume control you'll see. If you're inside RomM, the room's fader sits right alongside RomM's own volume control, and either one turns the same game down.

Touch controls opacity

Playing on a phone or tablet, the on-screen gamepad sits on top of the game, and its middle buttons (Select, Start, Home) can hide dialog text. Tap the half-filled circle in the stream controls and turn the slider down to see through the buttons. They still work as normal when they're faint. The setting is remembered in your browser and only changes your own screen.

The button only shows on a touch screen. It's there when you're playing alone too, in the corner controls that appear when you tap near the bottom right. Set it before you go fullscreen, since the bar isn't reachable from there.

Emulator menu

RetroArch has its own menu, the Quick Menu, for things like save state slots, shaders, cheats, core options and changing discs. On a keyboard you open it with F1. On a gamepad it's usually both sticks pressed in (L3 and R3) together, though the server can set a different combo or none. A phone has neither, so the host gets a three-line button in the stream controls that opens the menu, and closes it again on a second tap. Once it's open, whoever holds gamepad 1, or the mouse and keyboard, moves around it. Other gamepads can't steer the menu, but any of them can open it with the combo, and the game pauses for everyone until gamepad 1, the keyboard or the host's button closes it again. Changing discs from RomM closes the menu first.

The button only shows for the host, and only when the game runs in RetroArch. Other emulators don't have a menu the room can reach. Some entries are hidden from the menu while you're streaming, the ones that would quit the game, switch to a different one, or change the setup for everyone.

Gaming mode

The crosshair button makes the stream fill your whole screen and takes over your mouse the way a game installed on your own PC would. Normally your mouse can slide right off the edge of the stream, like it's just another window on your screen. Gaming mode stops that: your mouse becomes aim instead of a pointer, so mouselook (looking around by moving the mouse) works properly. The button only shows up while you're the one holding mouse and keyboard, since there's nothing to aim with otherwise.

Press Esc three times quickly to come back out. The first two go through to the game, so in-game menus still open on them.

Esc may drop you out on the first press.

Catching the Esc key depends on something browsers call a keyboard lock, which they only grant to the page you're actually looking at. Open the room from an invite link, and the room is that page, so all three presses work as described above. Open it from inside RomM, and the room sits inside RomM's page instead (a page within a page), so the keyboard lock belongs to RomM, not the room, and the very first Esc press leaves gaming mode. Mouselook still works either way.

Your own tile

Hover over your own video (or tap it on a touch screen) and three buttons appear over it: microphone on/off, webcam on/off, and a settings gear. They only show while you're pointing at the tile, so the rest of the time it's just your video.

The gear opens a small dialog for picking which microphone and camera to use, if your device has more than one (your choice is remembered for next time).

Spectators have no tile of their own and so none of these, since there's nothing for them to control.

Chat and webcam

Chat is plain text, with a reply button on each message if you want to quote someone. Joins, leaves, and username changes show up as system messages so the room stays easy to follow.

Turning your webcam or mic on shares them with everyone else in the room, not just the host. Each person's video tile has its own mute buttons, so you can mute someone's audio or hide their video just on your own screen, without changing what they're actually sending to the room. The host also has a star icon on each tile to name one person as the designated speaker. This does more than mark a tile: once a speaker is set, the room stops passing along everyone else's microphone audio to any listener, until the host picks someone new or clears the star. Video keeps flowing as normal either way, so a muted participant's webcam stays visible, just silent.

Your browser will ask for camera/mic permission the first time.

If it's ever denied by mistake, the button stays available: click it again and your browser will offer to re-ask.

Getting a controller

The host can hand a virtual gamepad, or the mouse and keyboard, to anyone in the room, live, without pausing the game.

Only the host sees the tray of unassigned controller icons (gamepad icons numbered by slot, plus one mouse-and-keyboard icon). The host drags an icon from the tray onto someone's video tile to hand them that input. Dragging it back to the tray takes it away again. Whoever currently holds a gamepad slot or the mouse and keyboard sees that icon sitting on their own tile, so everyone in the room can see at a glance who's driving.

The host drags a controller icon

Any of the numbered gamepad icons, or the mouse-and-keyboard icon, from the tray onto a participant's tile (or back onto the host's own tile).

The recipient's icon appears on their tile

It moves live, with no reload, so everyone can see who currently has which input.

That person's gamepad or mouse/keyboard now drives the game

Only while they hold the icon. Taking it back (or handing it to someone else) is instant.

Spectators are never a valid drop target. The host can watch and chat with them, but can't hand them a controller.

Resolution and stream layout

The game stream automatically resizes to fit whoever's watching. If you're the host, a lock icon on your own tile freezes the current resolution, so it stops adjusting itself as people join and leave. Unlocking it goes back to automatic. A second icon lets the host manually match the stream's resolution to one specific participant's screen.

Video tiles (yours and everyone else's) can be dragged to reorder them in the grid. The whole video row can also be collapsed with its own toggle, if you'd rather focus on the game.

Ending the session

Only the host can end the session, with the stop button on RomM's own bar above the stream. It ends the session for everyone: the game saves, the emulator stops, and every link into the room stops working. Guests who leave (close the tab, lose signal) keep their seat and can come back on the same link. Any controller they were holding goes back to the tray.

Language

The room's own text (buttons, chat, settings) follows your browser's language automatically; there's no in-room language switcher, so setting your browser's preferred language is what changes it. It supports English, Spanish, Chinese, Hindi, Portuguese, French, Russian, German, Turkish, Italian, Dutch, Arabic, Korean, Japanese, Vietnamese, Thai, Filipino, and Danish.

On this page