Mod Tools
These are only sent to / received from users with staff permissions.
C→S 31 - ModToolPreferences
Nitro:
MODTOOL_PREFERENCESNote: No Arcturus handler - Nitro only. Source:ModToolPreferencesComposer
Requests the current moderator tool window preferences (position, size).
| Field | Type | Notes |
|---|---|---|
| k | int | Preference value 1 |
| _arg_2 | int | Preference value 2 |
| _arg_3 | int | Preference value 3 |
| _arg_4 | int | Preference value 4 |
C→S 3295 - ModToolRequestUserInfo
Nitro:
MOD_TOOL_USER_INFO- Naming convention only. Source:ModToolRequestUserInfoEvent,GetModeratorUserInfoMessageComposer
Requests account and moderation history information for a specific user.
Body: (empty)
C→S 707 - ModToolRequestRoomInfo
Nitro:
MODTOOL_REQUEST_ROOM_INFOSource:
ModToolRequestRoomInfoEvent,GetModeratorRoomInfoMessageComposer
Requests room information for the mod tool panel (occupants, owner, name, tags).
| Field | Type | Notes |
|---|---|---|
| roomId | int | ID of the room to fetch info for |
C→S 211 - ModToolRequestTicketChatlog
Nitro:
GET_CFH_CHATLOGSource:
ModToolRequestIssueChatlogEvent,GetCfhChatlogMessageComposer
Requests the chatlog associated with a specific support ticket.
| Field | Type | Notes |
|---|---|---|
| ticketId | int | ID of the support ticket whose chatlog to retrieve |
C→S 1391 - ModToolRequestUserChatlog
Nitro:
MODTOOL_REQUEST_USER_CHATLOGSource:
ModToolRequestUserChatlogEvent,GetUserChatlogMessageComposer
Requests the recent chat history for a specific user.
| Field | Type | Notes |
|---|---|---|
| userId | int | Account ID of the user whose chatlog to retrieve |
C→S 2587 - ModToolRequestRoomChatlog
Nitro:
MODTOOL_REQUEST_ROOM_CHATLOGSource:
ModToolRequestRoomChatlogEvent,GetRoomChatlogMessageComposer
Requests the current room's chat history for a specific room.
| Field | Type | Notes |
|---|---|---|
| unknown | int | Read but ignored (padding) |
| roomId | int | ID of the room whose chatlog to retrieve |
C→S 3526 - ModToolRequestRoomVisits
Nitro:
MODTOOL_REQUEST_USER_ROOMSSource:
ModToolRequestRoomVisitsEvent,GetRoomVisitsMessageComposer
Requests the recent room visit history for a specific user.
| Field | Type | Notes |
|---|---|---|
| userId | int | Account ID of the user whose room visit history to retrieve |
C→S 15 - ModToolPickTicket
Nitro:
PICK_ISSUESSource:
ModToolPickTicketEvent,PickIssuesMessageComposer
Claims (picks up) a support ticket for the moderator to handle.
| Field | Type | Notes |
|---|---|---|
| unknown | int | Read but ignored (padding) |
| ticketId | int | ID of the support ticket to pick up |
C→S 1572 - ModToolReleaseTicket
Nitro:
RELEASE_ISSUESSource:
ModToolReleaseTicketEvent,ReleaseIssuesMessageComposer
Moves a support ticket back to the pending state.
| Field | Type | Notes |
|---|---|---|
| count | int | Number of ticket IDs that follow |
| ticketIds[] | int[] | IDs of the support tickets to release |
C→S 2067 - ModToolCloseTicket
Nitro:
CLOSE_ISSUESSource:
ModToolCloseTicketEvent,CloseIssuesMessageComposer
Closes a support ticket with a selected resolution.
| Field | Type | Notes |
|---|---|---|
| state | int | Resolution state |
| unknown | int | Unknown purpose |
| ticketId | int | ID of the support ticket to close |
C→S 1392 - ChangeTicketCategory
Nitro:
MODTOOL_SANCTIONSource:
ModToolIssueChangeTopicEvent,ModToolSanctionComposer
Changes the category of an open support ticket.
| Field | Type | Notes |
|---|---|---|
| ticketId | int | ID of the ticket |
| unknownInt | int | Unknown purpose |
| ticketCategoryId | int | Support ticket category ID |
C→S 2717 - TicketApplyDefaultAction
Nitro:
CLOSE_ISSUE_DEFAULT_ACTIONSource:
ModToolIssueDefaultSanctionEvent,CloseIssueDefaultActionMessageComposer
Applies the default enforcement action (e.g. account mute) for the support ticket category to the reported user.
| Field | Type | Notes |
|---|---|---|
| ticketId | int | ID of the support ticket to close with default enforcement action |
| unknown | int | Unknown purpose |
| ticketCategoryId | int | Support ticket category ID |
C→S 1840 - ModToolAlert
Nitro:
MODTOOL_ALERTEVENT- Naming convention only. Source:ModToolAlertEvent,ModMessageMessageComposer
Sends a moderator alert message to a specific user.
Body:
message: string
C→S 229 - ModToolActionAlert
Nitro:
MODTOOL_SANCTION_ALERTSource:
ModToolSanctionAlertEvent,ModAlertMessageComposer
Sends a moderation alert message to a user without issuing a ban or mute.
| Field | Type | Notes |
|---|---|---|
| message | string | Alert message to send to the user |
C→S 3842 - ModToolActionRoomAlert
Nitro:
MODTOOL_ROOM_ALERTSource:
ModToolRoomAlertEvent,ModeratorActionMessageComposer
Sends a moderation alert message to all users in a specific room.
| Field | Type | Notes |
|---|---|---|
| message | string | Alert message to broadcast to the entire room |
C→S 1945 - ModToolActionMute
Nitro:
MODTOOL_SANCTION_MUTESource:
ModToolSanctionMuteEvent,ModMuteMessageComposer
Mutes a user for a specified duration as a moderation action.
| Field | Type | Notes |
|---|---|---|
| message | string | Reason for the mute |
C→S 2766 - ModToolActionBan
Nitro:
MODTOOL_SANCTION_BANSource:
ModToolSanctionBanEvent,ModBanMessageComposer
Bans a user (by account or IP) for a specified duration.
| Field | Type | Notes |
|---|---|---|
| message | string | Ban reason message |
| unknown | boolean | Unknown flag |
C→S 3742 - ModToolActionTradeLock
Nitro:
MODTOOL_SANCTION_TRADELOCKSource:
ModToolSanctionTradeLockEvent,ModTradingLockMessageComposer
Applies a trade lock to a user as a moderation action.
| Field | Type | Notes |
|---|---|---|
| userId | int | Account ID of the user to trade-lock |
| message | string | Reason for the trade lock |
| duration | int | Lock duration (likely in hours or days) |
| ticketCategoryId | int | Support ticket category ID |
C→S 2582 - ModToolActionKick
Nitro:
MODTOOL_SANCTION_KICKSource:
ModToolKickEvent,ModKickMessageComposer
Kicks a user from their current room.
| Field | Type | Notes |
|---|---|---|
| userId | int | Account ID of the user to kick |
| reason | string | Kick reason message |
C→S 3260 - ModToolChangeRoomSettings
Nitro:
MODTOOL_CHANGE_ROOM_SETTINGSSource:
ModToolChangeRoomSettingsEvent,ModerateRoomMessageComposer
Modifies room settings from the mod tool: lock door, change title, or kick all users.
| Field | Type | Notes |
|---|---|---|
| roomId | int | ID of the room to modify |
| lockDoor | int | 1 = lock door, 0 = leave |
| changeTitle | int | 1 = change title, 0 = leave |
| kickUsers | int | 1 = kick all users, 0 = leave |
C→S 3267 - RequestReportRoom
Nitro:
GET_PENDING_CALLS_FOR_HELPSource:
RequestReportRoomEvent,GetPendingCallsForHelpMessageComposer
Requests the list of pending support tickets for a given room.
| Field | Type | Notes |
|---|---|---|
| (empty) | - | No body fields read |
C→S 1681 - ApplyDefaultAction
Nitro:
DEFAULT_SANCTIONNote: No Arcturus handler - Nitro only. Source:DefaultSanctionMessageComposer
Applies a default action to a user. Nitro-only; no Arcturus handler.
| Field | Type | Notes |
|---|---|---|
| userId | int | User ID of the punished user |
| restrictionTypeCode | int | Account restriction type code |
| reason | string | Reason / comment string |
| ticketId | int | (optional) Support ticket ID; omitted when equal to ModBanMessageComposer.NO_ISSUE_ID |
C→S 3605 - DeletePendingUserTickets
Nitro:
DELETE_PENDING_CALLS_FOR_HELPNote: No Arcturus handler - Nitro only. Source:DeletePendingCallsForHelpMessageComposer
Requests deletion of all pending support tickets by the current user. Nitro-only.
Body: (empty)
S→C 2696 - ModToolLoad
Source:
ModToolComposer,ModeratorInitMessageEvent
Initialises the moderator tool panel on login, delivering the moderator's ticket statistics (total, resolved, abusive count and percentage).
Body:
ticketCount: int Number of open support tickets.
[ticketCount]:
ticketId: int
state: int Ticket state (0 = closed, 1 = pending, 2 = picked).
ticketCategoryId: int
reportedTicketCategoryId: int
ageMs: int Time since the ticket was created, in milliseconds.
priority: int
groupingId: int Unused. Defaults to 1.
reporterUserId: int
reporterUserName: string
reportedUserId: int
reportedUserName: string
pickerUserId: int
pickerUserName: string
message: string
chatlogId: int Unused. Defaults to 0.
chatlogCount: int
[chatlogCount]:
message: string
startIndex: int
endIndex: int
userPresetCount: int
[userPresetCount]:
message: string
categoryCount: int
[categoryCount]:
categoryName: string
canPickTickets: boolean
canViewChatlogs: boolean
canAlertUser: boolean
canKickUser: boolean
canBanUser: boolean
canAlertRoom: boolean
canKickRoom: boolean
roomPresetCount: int
[roomPresetCount]:
message: string
S→C 325 - SupportTicketCategories
Nitro:
CFH_TOPICS/CfhTopicsInitMessageParserArcturus:
CfhTopicsMessageComposer
Delivers the support ticket category tree used to populate the report dialog.
| Field | Type | Notes |
|---|---|---|
| categoryCount | int | Number of support ticket categories |
| categories[].name | string | |
| categories[].topicCount | int | |
| categories[].topics[].name | string | |
| categories[].topics[].topic_id | int | |
| categories[].topics[].default_action | string | The default enforcement action applied when resolving a ticket, e.g. an account mute. |
S→C 2866 - ModToolUserInfo
Source:
ModToolUserInfoComposer,ModeratorUserInfoEvent
Delivers account details for a user in the mod tool: registration date, last access, support ticket history, trade lock status, and email.
Body:
userId: int
username: string
look: string
registrationDate: int Unix timestamp
lastAccess: int
online: boolean
ticketCount: int
abuseTicketCount: int
tradingLocked: boolean
tradingLockExpiry: string
email: string
S→C 1333 - ModToolRoomInfo
Nitro:
MODTOOL_ROOM_INFOSource:
ModToolRoomInfoComposer,ModeratorRoomInfoEvent
Delivers room information for the mod tool: occupant count, owner, name, description, tags.
| Field | Type | Notes |
|---|---|---|
| roomId | int | ID of the room |
| occupantCount | int | Current number of users in room |
| ownerOnline | boolean | Whether the room owner is currently in the room |
| ownerId | int | Account ID of the room owner |
| ownerName | string | Username of the room owner |
| unknown | boolean | Always true |
| roomName | string | Room name |
| description | string | Room description |
| tagCount | int | Number of room tags |
| tags[] | string[] | Room tags |
S→C 1752 - ModToolUserRoomVisits
Nitro:
MODTOOL_VISITED_ROOMS_USERSource:
ModToolUserRoomVisitsComposer,RoomVisitsEvent
Delivers a user's recent room visit history for the mod tool.
| Field | Type | Notes |
|---|---|---|
| userId | int | Account ID of the user |
| username | string | Username |
| visitCount | int | Number of room visit entries |
| visits[] | repeated | Per visit: roomId:int, roomName:string, hour:int, minute:int |
S→C 607 - ModToolTicketChatlog
Nitro:
CFH_CHATLOGSource:
ModToolIssueChatlogComposer,CfhChatlogEvent
Delivers the chatlog associated with a support ticket, including reporter, reported user, and chat lines.
| Field | Type | Notes |
|---|---|---|
| ticketId | int | Support ticket ID |
| senderId | int | Account ID of the reporter |
| reportedId | int | Account ID of the reported user |
| roomId | int | Room ID where the incident occurred |
| reportType | byte | Type: 1=user, 2=room, 3=forum comment |
| type-specific header | varies | For user: senderId:short(1)+int; for forum: groupId+threadId+commentId; for photo: roomName+photoItemId |
| chatlogCount | short | Number of chat lines |
| chatLines[] | repeated | Per line: timestamp:string, userId:int, username:string, message:string, unknown:boolean(false) |
S→C 3377 - ModToolUserChatlog
Nitro:
MODTOOL_USER_CHATLOGSource:
ModToolUserChatlogComposer,UserChatlogEvent
Notes: Uses a TLV (type-length-value) encoding for room metadata: byte(1), short(2), string("roomName"), byte(2), string(roomName), string("roomId"), byte(1), int(roomId).
Delivers a user's recent cross-room chat history for the mod tool.
| Field | Type | Notes |
|---|---|---|
| userId | int | Account ID of the user |
| username | string | Username |
| roomCount | int | Number of room visit blocks |
| rooms[] | repeated | Per room: metadata header (roomName:string, roomId:int via TLV shorts), chatCount:short, chatLines[]: (timestamp:string, userId:int, username:string, message:string, unknown:boolean) |
S→C 3434 - ModToolRoomChatlog
Nitro:
MODTOOL_ROOM_CHATLOGSource:
ModToolRoomChatlogComposer,RoomChatlogEvent
Notes: Same TLV metadata encoding as
ModToolUserChatlog(3377).
Delivers the current room's chat history for the mod tool.
| Field | Type | Notes |
|---|---|---|
| metaByte | byte | Always 1 |
| keyCount | short | Always 2 |
| key1 | string | "roomName" |
| type1 | byte | 2 (string type) |
| value1 | string | Actual room name |
| key2 | string | "roomId" |
| type2 | byte | 1 (int type) |
| value2 | int | Room ID |
| chatCount | short | Number of chat lines |
| chatLines[] | repeated | Per line: timestamp:string, userId:int, username:string, message:string, unknown:boolean(false) |
S→C 3192 - ModToolTicketHandled
Nitro:
ISSUE_DELETEDSource:
ModToolComposerOne,IssueDeletedMessageEvent
Notifies the moderator that a support ticket has been handled (picked or closed by another mod or auto-resolved).
| Field | Type | Notes |
|---|---|---|
| code | int | Result code |
| message | string | Status message |
S→C 2030 - ModToolTicketResponseAlert
Nitro:
MODERATOR_MESSAGESource:
StaffAlertWithLinkComposer,ModeratorMessageEvent
Delivers a moderator's text response message to a user who filed a support ticket.
| Field | Type | Notes |
|---|---|---|
| message | string | The moderator's response message shown to the user |
S→C 3609 - ReportRoomForm
Nitro:
ISSUE_INFOSource:
ModToolIssueInfoComposer,IssueInfoMessageEvent
Delivers the pending support tickets for the mod tool report panel.
| Field | Type | Notes |
|---|---|---|
| pendingCount | int | Number of pending support tickets |
| tickets[] | repeated | Per ticket: id:string, timestamp:string, message:string |
S→C 77 - PendingSupportTicketsDeleted
Nitro:
CFH_PENDING_CALLS_DELETEDNote: No Arcturus composer - Nitro only. Source:UnknownHelperComposer,CallForHelpPendingCallsDeletedMessageEvent
(no Arcturus composer)
Confirms that all pending support tickets have been cleared from the client's list. Nitro-only.
Body: (empty)
S→C 1121 - PendingSupportTickets
Nitro:
CFH_PENDING_CALLSNote: No Arcturus composer - Nitro only. Source:ReportRoomFormComposer,CallForHelpPendingCallsMessageEvent
(no Arcturus composer)
Delivers the full list of pending support tickets. Nitro-only; no Arcturus composer.
| Field | Type | Notes |
|---|---|---|
| count | int | Number of pending support tickets |
| [count × ticket] | PendingSupportTicket | Pending support ticket data (ticketId, type, reporter, roomId, etc.) |
S→C 934 - TicketClosed
Nitro:
ISSUE_CLOSE_NOTIFICATIONNote: No Arcturus composer - Nitro only. Source:ModToolIssueHandledComposer,IssueCloseNotificationMessageEvent
Notifies the user that their support ticket was closed, with reason and message text. Nitro-only.
| Field | Type | Notes |
|---|---|---|
| closeReason | int | Reason code for why the ticket was closed |
| messageText | string | Message text shown to the user |
S→C 3150 - PickTicketFailed
Nitro:
ISSUE_PICK_FAILEDNote: No Arcturus composer - Nitro only. Source:ModToolIssueUpdateComposer,IssuePickFailedMessageEvent
(no Arcturus composer)
Notifies the client that claiming a support ticket failed. Nitro-only.
Body: (empty)
S→C 3635 - TicketResult
Nitro:
CFH_RESULT_MESSAGENote: No Arcturus composer - Nitro only. Source:ModToolReportReceivedAlertComposer,CallForHelpResultMessageEvent
(no Arcturus composer)
Delivers the resolution message for a support ticket. Nitro-only.
Body: (empty)
S→C 2782 - AccountRestriction
Nitro:
CFH_SANCTIONNote: No Arcturus composer - Nitro only. Source:ModToolSanctionDataComposer,CfhSanctionMessageEvent
Delivers account restrictions (type, duration, mute type) as the result of a support ticket resolution. Nitro-only.
| Field | Type | Notes |
|---|---|---|
| ticketId | int | Support ticket ID |
| userId | int | Account ID of the punished user |
| restrictionType.restrictionCode | string | Restriction code (e.g. "MUTE") |
| restrictionType.lengthHours | int | Restriction length in hours |
| restrictionType.muteType | string | Mute type string |
| (more CfhSanctionTypeData fields) | - | Parsed by CfhSanctionMessageParser |
S→C 1576 - ModeratorToolPreferences
Nitro:
MODERATOR_TOOL_PREFERENCESNote: No Arcturus composer - Nitro only. Source:ModToolIssueHandlerDimensionsComposer,ModeratorToolPreferencesEvent
(no Arcturus composer)
Delivers saved mod tool window position and size preferences. Nitro-only.
| Field | Type | Notes |
|---|---|---|
| windowX | int | Mod tool window X position |
| windowY | int | Mod tool window Y position |
| windowWidth | int | Mod tool window width |
| windowHeight | int | Mod tool window height |
S→C 1651 - ModerationReportDisabled
Nitro:
MODERATION_REPORT_DISABLEDNote: No Arcturus composer - Nitro only. Source:HelperRequestDisabledComposer,CallForHelpDisabledNotifyMessageEvent
(no Arcturus composer)
Notifies the client that the reporting system is currently disabled. Nitro-only.
Body: (empty)
S→C 1683 - UserBanned
Nitro:
USER_BANNEDNote: No Arcturus composer - Nitro only. Source:StaffAlertAndOpenHabboWayComposer,UserBannedMessageEvent
(no Arcturus composer)
Delivers a ban notification to the banned user with the reason message. Nitro-only.
| Field | Type | Notes |
|---|---|---|
| message | string | Ban reason / message text shown to the user |
S→C 1890 - ModerationCaution
Nitro:
MODERATION_CAUTIONNote: No Arcturus composer - Nitro only. Source:StaffAlertWIthLinkAndOpenHabboWayComposer,ModeratorCautionEvent
(no Arcturus composer)
Delivers a moderator caution message with optional link URL. Nitro-only.
| Field | Type | Notes |
|---|---|---|
| message | string | Caution message text |
| url | string | Optional URL (empty string if none) |
S→C 2221 - ActiveRestrictions
Nitro:
CFH_SANCTION_STATUSNote: No Arcturus composer - Nitro only. Source:ModToolSanctionInfoComposer,SanctionStatusEvent
(no Arcturus composer)
Delivers the active account restriction status (type, duration, probation, trade lock) for the current user. Nitro-only.
| Field | Type | Notes |
|---|---|---|
| isrestrictionNew | boolean | Whether this is a newly applied restriction |
| isrestrictionActive | boolean | Whether a restriction is currently active |
| restrictionName | string | Restriction type name |
| restrictionLengthHours | int | Duration of restriction in hours |
| _unk1 | int | Unused int (always 0) |
| restrictionReason | string | Reason string |
| restrictionCreationTime | string | Creation date string |
| probationHoursLeft | int | Hours remaining in probation period |
| nextRestrictionName | string | Next escalation restriction name |
| nextRestrictionLengthHours | int | Next escalation duration |
| _unk2 | int | Unused int |
| hasCustomMute | boolean | Whether a custom mute is applied |
| tradeLockExpiryTime | string | Trade lock expiry date (optional) |
S→C 2335 - ModeratorActionResult
Nitro:
MODERATOR_ACTION_RESULTNote: No Arcturus composer - Nitro only. Source:ModeratorActionResultMessageEvent
(no Arcturus composer)
Reports the outcome of a moderator action (success/failure) back to the staff member. Nitro-only.
| Field | Type | Notes |
|---|---|---|
| userId | int | Target user account ID |
| success | boolean | Whether the moderation action succeeded |