This is a brief proposal for additions to Hubs to help facilitate crowd control in small “meetup” spaces where there may be bad actors.
There will be two new “roles” users can be in for a specific room: a host, or a mod. A room has at most one host that is immutable once set, and the host must be logged into an account. Mods do not need to be logged in. (Though this may change in the future – the reason I think its a bad idea is due to UX friction and the extra work in doing the flow for v1.)
A room starts off with no host, and has a random name. If there is more than one person in the room, then its not possible to become the host. If you are in the room by yourself, you can become the host by logging in (if there is no host already.) Or, if you are logged in when you create the room, you are automatically the host of any room you create.
Mods have the ability to mute and kick other users in the room. Hosts have this ability too, but can also:
- Rename the room (and update its canonical URL)
- Change the scene for the room
- Close the room (and kick everyone)
- Adjust any other room-level settings that emerge (custom image, capacity, password, avatar restrictions, feature flags, etc.)
When in the room you can see who the hosts and the mods are in both the presence list and via their nametags.
Muting and kicking users can be done via in-game controls in the freeze menu and in the presence list. When a user is kicked I’m not sure if they should be kicked out of the room or be “hellbanned” where they become invisible to others but don’t know they are kicked. In any case their owned objects should be removed.
Renaming the room, changing the scene, closing the room, and adjusting settings happens on the landing page (if you are the host) and under a settings button.
In order to become a mod, you are given a special entry link by the room host. If you open the link, you’re connected to the room as a mod. If you’re logged in, your account is tagged as being a mod for that room. I don’t think we should have other mechanisms like local storage to keep track of mod credentials in order to keep things simple.