Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Server Actions

This index records every fixed action accepted by at least one pane’s socket-event handler. Each class name links to a dedicated page containing its payload format, handler functions, and current schema status. Message-page offsets are payload-relative and exclude framing, action, sequence, and the trailing zero.

The S... class names identify the 59 fixed server-to-client actions accepted by the traced 4.21 handlers. No additional fixed server action was found.

All entries use the server-to-client direction. Actions 0x00, 0x03, and 0x40 bypass the receive sequence and XOR decoder. Other entries are decoded before the Event type 9 packet is dispatched through pane virtual slot +0x40.

Fixed action index

ActionClass nameEncrypted4.21 handlers and notes
0x00SVersionCheckNoDarkages.exe:0x0045F780 ui_main_menu_handle_server_packet. Subtype zero reads the server version, selects table function 0 through 9, requires a nine-byte key, and queues both transformation updates. XOR bypass. Used during login or lobby.
0x01SNewUserCheckYesDarkages.exe:0x00461080 sub_461080. Used during login or lobby.
0x02SLoginCheckYesDarkages.exe:0x00461080 sub_461080, Darkages.exe:0x0045F780 ui_main_menu_handle_server_packet, Darkages.exe:0x00464300 sub_464300, Darkages.exe:0x00463A60 sub_463A60. Used during login or lobby.
0x03STransferServerNoDarkages.exe:0x0045F780 ui_main_menu_handle_server_packet and Darkages.exe:0x00468A90 ui_map_dispatch_server_packet. The MapPane branch calls transfer-server processing and can send kClientTransferServer. XOR bypass.
0x04SUserPositionYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet, Darkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x05SUserAppearanceYesDarkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x06SMapYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x07SDrawObjectsYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x08SStatusYesDarkages.exe:0x0043F420 sub_43F420, Darkages.exe:0x00441850 sub_441850, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet, Darkages.exe:0x004889F0 ui_local_user_handle_server_packet, Darkages.exe:0x004927F0 sub_4927F0, Darkages.exe:0x00494C60 sub_494C60.
0x0ASMessageYesDarkages.exe:0x0041CCA0 sub_41CCA0, Darkages.exe:0x00444690 sub_444690, Darkages.exe:0x0045F780 ui_main_menu_handle_server_packet, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet, Darkages.exe:0x00491520 sub_491520.
0x0BSMoveYesDarkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x0CSMoveObjectYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x0DSSayYesDarkages.exe:0x0041CCA0 sub_41CCA0, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x0ESRemoveObjectsYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet. The mapped branch removes an object from map state.
0x0FSAddItemYesDarkages.exe:0x00441850 sub_441850, Darkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x10SRemoveItemYesDarkages.exe:0x00441850 sub_441850, Darkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x11SChangeDirectionYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet, which calls Darkages.exe:0x0046B574 ui_map_handle_object_direction. Offset 0x01 is a big-endian object ID and offset 0x05 is a direction value from 0 through 3.
0x13SDamageEffectYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x15SMapInfoYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x17SAddSpellYesDarkages.exe:0x00443B10 ui_spell_inventory_handle_server_packet, Darkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x18SRemoveSpellYesDarkages.exe:0x00443B10 ui_spell_inventory_handle_server_packet, Darkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x19SSoundEffectYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x1ASMotionYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x1BSEnterEditingModeYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet. Used for paper editing.
0x1FSChangeWeatherYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x20SChangeHourYesDarkages.exe:0x0043F420 sub_43F420, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x21SSelfSaveOkYesDarkages.exe:0x004909E0 ui_option_pane_handle_server_packet.
0x26SActionChangeYesDarkages.exe:0x004234E0 sub_4234E0.
0x29SEffectLayerYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x2ASAddContainerYesDarkages.exe:0x00425370 sub_425370, Darkages.exe:0x00441850 sub_441850.
0x2BSRemoveContainerYesDarkages.exe:0x00425370 sub_425370.
0x2CSAddSkillYesDarkages.exe:0x00442990 ui_skill_inventory_handle_server_packet.
0x2DSRemoveSkillYesDarkages.exe:0x00442990 ui_skill_inventory_handle_server_packet.
0x2ESFieldMapYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x2FSScreenMenuYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet, Darkages.exe:0x00479480 sub_479480, Darkages.exe:0x0047AFD0 sub_47AFD0.
0x30SPursuitMenuYesDarkages.exe:0x00461080 sub_461080, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet, Darkages.exe:0x00479480 sub_479480.
0x31SBulletinYesDarkages.exe:0x00413CE0 ui_bulletin_session_handle_server_packet, Darkages.exe:0x00414260 ui_bulletin_dialog_handle_server_packet, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x32SStateObjectStateYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet. The mapped branch performs inline tile or object updates.
0x33SDrawHumanObjectYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x34SObjectInfoYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x35SShowPaperYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x36SShowUsersYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x37SAddEquipYesDarkages.exe:0x0042EAF0 ui_equip_pane_handle_server_packet.
0x38SRemoveEquipYesDarkages.exe:0x0042EAF0 ui_equip_pane_handle_server_packet.
0x39SSelfLookYesDarkages.exe:0x0042EAF0 ui_equip_pane_handle_server_packet.
0x3ASSpelledYesDarkages.exe:0x0043E8B0 sub_43E8B0.
0x3BSRequestCRCYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x3CSMapPartYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet.
0x3DSLevelPointYesDarkages.exe:0x0043F420 sub_43F420.
0x3ESWindowChangeYesDarkages.exe:0x0043D650 sub_43D650.
0x3FSActionCoolTimeYesDarkages.exe:0x00442990 ui_skill_inventory_handle_server_packet, Darkages.exe:0x00443B10 ui_spell_inventory_handle_server_packet.
0x40SSendPatchNoDarkages.exe:0x004955C0 sub_4955C0. XOR bypass. May be used during login or lobby.
0x42SExchangeYesDarkages.exe:0x00435EA0 sub_435EA0, Darkages.exe:0x004374F0 sub_4374F0, Darkages.exe:0x00437C70 sub_437C70, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet. Exchange-session handlers dispatch on a second byte with established subtypes 1 through 5.
0x48SSpellDelayCancelYesDarkages.exe:0x004568B0 sub_4568B0.
0x49SRequestPortraitYesDarkages.exe:0x0040B3A0 ui_handle_server_request_portrait. An embedded diagnostic names kServerRequestPortrait and states decimal value 73. The handler initiates client action 0x4F.
0x4BSBounceYesDarkages.exe:0x00468A90 ui_map_dispatch_server_packet, which calls Darkages.exe:0x0046CA54 net_forward_embedded_client_packet. Offset 0x01 is a big-endian embedded length and offset 0x03 begins the logical client packet.
0x4CSReconnectYesDarkages.exe:0x004921F0 ui_exit_wait_handle_server_packet. The Stone handler consumes all 0x4C packets. Subtype 0x01 sends CQuit subtype 0x00 and changes an exit-wait pane to the safe-exit message; it does not call the Socket reconnect path.
0x51SBlockInputYesDarkages.exe:0x004889F0 ui_local_user_handle_server_packet.
0x56SMultiYesDarkages.exe:0x004A2ED0 ui_server_select_handle_server_packet. ServerSelectDialogPane reads a count, allocates replacement entry storage, and deserializes fixed-width integers and colon-delimited strings before loading the table.

MapPane switch coverage

Darkages.exe:0x00468A90 accepts these 31 values:

03 04 06 07 08 0A 0C 0D 0E 11 13 15 19 1A 1B 1F
20 29 2E 2F 30 31 32 33 34 35 36 3B 3C 42 4B

Within its explicit 0x03 through 0x4B switch range, the other values return unhandled. A value can still be supported by another pane, as shown in the full index above.