Skip to main content

Room Actions

C→S 1644 - HandleDoorbell

Accepts or rejects a user's doorbell request; answer=true lets them in, answer=false rejects.

Body:
username: string Username at doorbell

C→S 3320 - RoomUserWalk (move to tile)

Nitro: UNIT_WALK - RoomUser→UNIT. Source: RoomUserWalkEvent, RoomUnitWalkComposer

Requests movement of the client's avatar to a target tile coordinate.

Body:
x: int Target X coordinate

C→S 3301 - RoomUserLookAtPoint

Nitro: UNIT_LOOK - RoomUser→UNIT; 'at point' dropped. Source: RoomUserLookAtPoint, RoomUnitLookComposer

Instructs the client's avatar to rotate and look towards a specific tile coordinate.

Body:
x: int

C→S 2080 - RoomUserDance

Nitro: UNIT_DANCE - RoomUser→UNIT. Source: RoomUserDanceEvent, RoomUnitDanceComposer

Body:
danceId: int 0=stop, 1=hand jive, 2=popcorn, 3=robot, 4=no mercy, 5=snowstorm

Valid range: 0–5 (server checks danceId >= 0 && danceId <= 5).

C→S 1975 - RoomUserSign

Nitro: UNIT_SIGN - RoomUser→UNIT. Source: RoomUserSignEvent, RoomUnitSignComposer

Displays a numbered sign above the user's avatar (0–17) visible to all users in the room.

Body: (empty)

C→S 2235 - RoomUserSit

Nitro: UNIT_POSTURE - RoomUser→UNIT; Sit→POSTURE (generic; covers any posture state). Source: RoomUserSitEvent, RoomUnitPostureComposer

Nitro sends:
⚠ posture: int Posture code ← NOT READ by arcturus

RoomUnitPosture sends one integer, but RoomUserSitEvent.handle() reads nothing from the packet. The server ignores the field entirely and simply calls room.makeSit(habbo) unconditionally.

C→S 2456 - RoomUserAction

Nitro: UNIT_ACTION Source: RoomUserActionEvent, RoomUnitActionComposer

FieldTypeNotes
actionTypeintRoom unit action type code (e.g. wave, sit, stand)

Sends a room user action (wave, blow kiss, laugh, etc.). The action type is an int.

C→S 2694 - RoomUserGiveRespect

Nitro: USER_RESPECT - RoomUser→USER; Give dropped. Source: RoomUserGiveRespectEvent, UserRespectComposer

Awards one respect point to another user in the room.

Body: (empty)

C→S 2814 - RoomUserDropHandItem

Nitro: UNIT_DROP_HAND_ITEM - RoomUser→UNIT. Source: RoomUserDropHandItemEvent, RoomUnitDropHandItemComposer

Drops the hand item the current user is holding onto the room floor.

Body: (empty)

C→S 1597 - RoomUserStartTyping

Nitro: UNIT_TYPING - RoomUser→UNIT; Start dropped. Source: RoomUserStartTypingEvent, RoomUnitTypingStartComposer

Notifies the server that the user has started typing, so the typing indicator appears over their avatar.

Body: (empty)

C→S 1474 - RoomUserStopTyping

Nitro: UNIT_TYPING_STOP - RoomUser→UNIT; word order Stop-Typing→TYPING_STOP. Source: RoomUserStopTypingEvent, RoomUnitTypingStopComposer

Notifies the server that the user has stopped typing, hiding the typing indicator.

Body: (empty)

C→S 808 - RoomUserGiveRights

Nitro: ROOM_RIGHTS_GIVE - Word order. Source: RoomUserGiveRightsEvent, RoomGiveRightsComposer

Grants room-entry rights to a user by account ID.

Body: (empty)

C→S 2064 - RoomUserRemoveRights

Nitro: ROOM_RIGHTS_REMOVE - RoomUser→ROOM; user reference dropped. Source: RoomUserRemoveRightsEvent, RoomTakeRightsComposer

Removes room-entry rights from one or more users by account ID.

Body:
count: int
[count]:

C→S 1320 - RoomUserKick

Nitro: ROOM_KICK - User reference dropped. Source: RoomUserKickEvent, RoomKickUserComposer

Kicks a user out of the room by account ID.

Body: (empty)

C→S 17 - RequestRoomUserTags

Nitro: USER_TAGS

Source: RequestRoomUserTagsEvent, GetUserTagsComposer

FieldTypeNotes
roomUnitIdintRoom unit ID of the user whose tags to fetch

Notes: Response is GET_USER_TAGS (S→C 1255) - sends the user's profile tags as room overlay data.

Requests the profile tags of a specific room user by their room unit ID.

Requests the profile tags for a specific room unit; server responds with S→C 1255 (RoomUserTags).

S→C 1797 - RoomUnitIdle

Notifies clients whether a room unit has gone idle (away-from-keyboard state).

Body:
roomUnitId: int

S→C 2233 - RoomUserDance

Source: RoomUserDanceComposer, RoomUnitDanceEvent

Notifies clients of a room unit's current dance animation ID (0 = stop dancing).

Body:
roomUnitId: int

S→C 1631 - RoomUserAction

Source: RoomUserActionComposer, RoomUnitExpressionEvent

Broadcasts a social action/gesture for a room unit (wave, blow kiss, laugh, thumbs up/down, etc.).

Body:
roomUnitId: int

S→C 1167 - RoomUserEffect

Source: RoomUserEffectComposer, RoomUnitEffectEvent

Applies or removes an avatar effect (wearable effect animation) on a room unit.

Body:
roomUnitId: int
effectId: int Effect ID to apply (0 = remove / stop effect)

S→C 2815 - RoomUserRespect

Source: RoomUserRespectComposer, RespectReceivedEvent

Notifies clients that a user received a respect; delivers the user's updated total respect count.

Body:
userId: int

S→C 1717 - RoomUserTyping

Source: RoomUserTypingComposer, RoomUnitTypingEvent

Broadcasts the typing indicator state (started/stopped) for a room unit.

Body:
roomUnitId: int

S→C 84 - RoomUserRemoveRights

Source: RoomUserRemoveRightsComposer, NoSuchFlatEvent Nitro alias: NO_SUCH_FLAT - Nitro's IncomingHeader.ts maps this ID to NO_SUCH_FLAT, but Arcturus uses it exclusively for RoomUserRemoveRights. The wire behaviour is rights removal; the Nitro constant name is a misnomer carried over from an older protocol revision.

Notifies that a user's room rights have been removed; also aliased as NO_SUCH_FLAT in Nitro (misnomer).

Body:
roomId: int The room ID

Note: Second field is the account ID (habboId), not the room unit ID.