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_ACTIONSource:RoomUserActionEvent,RoomUnitActionComposer
| Field | Type | Notes |
|---|---|---|
| actionType | int | Room 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_TAGSSource:
RequestRoomUserTagsEvent,GetUserTagsComposer
| Field | Type | Notes |
|---|---|---|
| roomUnitId | int | Room 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,NoSuchFlatEventNitro alias:NO_SUCH_FLAT- Nitro's IncomingHeader.ts maps this ID toNO_SUCH_FLAT, but Arcturus uses it exclusively forRoomUserRemoveRights. 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.