Skip to content

Interface Packets

Packets for UI and player-facing communication — chat messages, notifications, kill feed, titles, HUD, and custom pages.

IDPacketDirectionDescription
210ServerMessageS->CSystem message
211ChatMessageBothChat message
212NotificationS->CUI notification
213KillFeedMessageS->CKill feed entry
214ShowEventTitleS->CShow title
215HideEventTitleS->CHide title
216SetPageS->CSet UI page
217CustomHudS->CCustom HUD
218CustomPageS->CCustom page
219CustomPageEventC->SPage event
222EditorBlocksChangeS->CEditor blocks
223ServerInfoS->CServer info
224AddToServerPlayerListS->CAdd to player list
225RemoveFromServerPlayerListS->CRemove from list
226UpdateServerPlayerListS->CUpdate player list
227UpdateServerPlayerListPingS->CUpdate pings
228UpdateKnownRecipesS->CKnown recipes
229UpdatePortalS->CPortal state
230UpdateVisibleHudComponentsS->CHUD visibility
231ResetUserInterfaceStateS->CReset UI
232UpdateLanguageBothLanguage setting
233WorldSavingStatusS->CSave status
234OpenChatWithCommandS->COpen chat with command

ID: 210 | Direction: S->C

Sends a formatted message to a player. This is the packet written by PlayerRef.sendMessage().

FieldTypeDescription
typeChatTypeMessage type (currently only Chat)
messageFormattedMessageThe message tree (text, styles, params, children)

API: PlayerRef.sendMessage()

The FormattedMessage wire format uses a 34-byte fixed header (null bitmask, style bytes, field offsets) followed by variable-length data (strings, children, parameter maps).


ID: 211 | Direction: Both

Client-to-server: player sends a chat message or command. Server-to-client: used for chat broadcast.

FieldTypeDescription
messagestringPlain text message

When the server receives this packet, it routes based on the first character:

  • / -> dispatched to the command system
  • . -> rejected (local commands not allowed from client)
  • Otherwise -> fires PlayerChatEvent, then broadcasts

API: See Messages and PlayerChatEvent


ID: 213 | Direction: S->C

Displays an entry in the kill feed UI.

FieldTypeDescription
killerFormattedMessageKiller’s display text
decedentFormattedMessageVictim’s display text
iconstringIcon asset path

API: See Kill Feed


ID: 212 | Direction: S->C

Toast-style popup notification with optional secondary message, icon, item, and style.

FieldTypeDescription
messageFormattedMessage?Primary notification text
secondaryMessageFormattedMessage?Secondary text below primary
iconstring?Icon asset path
itemItemWithAllMetadata?Item to display alongside the notification
styleNotificationStyleDefault(0), Danger(1), Warning(2), Success(3)

API: See Notifications


ID: 214 | Direction: S->C

Displays a full-screen title/subtitle overlay with fade animations.

FieldTypeDescription
fadeInDurationfloatFade in time in seconds
fadeOutDurationfloatFade out time in seconds
durationfloatDisplay time in seconds
iconstring?Icon asset path
isMajorbooleanWhether to use the larger/more prominent style
primaryTitleFormattedMessage?Main title text
secondaryTitleFormattedMessage?Subtitle text

API: See Event Titles


ID: 215 | Direction: S->C

Dismisses the currently displayed event title.

FieldTypeDescription
fadeOutDurationfloatFade out time in seconds (0 for instant)

API: See Event Titles


ID: 217 | Direction: S->C

Sends a custom HUD overlay to the client. Payload is compressed.

FieldTypeDescription
commandsCustomUICommand[]Array of UI manipulation commands

Each CustomUICommand has a type, CSS-style selector, and optional document path or value:

TypeIDDescription
Append0Add UI document as a child
AppendInline1Add inline UI markup as a child
InsertBefore2Insert UI document before element
InsertBeforeInline3Insert inline UI before element
Remove4Remove element
Set5Set data on element
Clear6Clear element’s children

API: See Custom HUD


ID: 230 | Direction: S->C

Sets which HUD components are visible for the player. Replaces the full visible set.

FieldTypeDescription
componentsHudComponent[]Array of visible component IDs

API: See Show/Hide Components


ID: 231 | Direction: S->C

Resets all client UI state. Empty packet (no fields).

API: See HUD Reset