{ "category": "Player", "packets": [ { "id": "0x01", "name": "Disconnect", "description": "Client sends disconnect notification.", "direction": "incoming", "isDynamic": false, "size": 5, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x01", "description": "Packet identifier" }, { "name": "minusOne", "type": "int", "size": 4, "value": "0xFFFFFFFF", "description": "Always -1" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 317 } }, { "id": "0x05", "name": "Attack Request", "description": "Client requests to attack a mobile.", "direction": "incoming", "isDynamic": false, "size": 5, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x05", "description": "Packet identifier" }, { "name": "targetSerial", "type": "uint", "size": 4, "description": "Serial of mobile to attack" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 69 } }, { "id": "0x12", "name": "Text Command", "description": "Client sends text-based commands for skills, spells, virtues, etc.", "direction": "incoming", "isDynamic": true, "size": "Dynamic", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x12", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "commandType", "type": "enum", "enumType": "sequential", "size": 1, "description": "Type of text command", "values": [ { "value": "0x24", "name": "UseSkill", "description": "Use a skill by ID" }, { "value": "0x27", "name": "CastSpellFromBook", "description": "Cast spell from spellbook" }, { "value": "0x2F", "name": "OldScrollClick", "description": "Old scroll double-click" }, { "value": "0x43", "name": "OpenSpellbook", "description": "Open spellbook of type" }, { "value": "0x56", "name": "CastSpellMacro", "description": "Cast spell from macro" }, { "value": "0x58", "name": "OpenDoor", "description": "Open door macro" }, { "value": "0xC7", "name": "Animate", "description": "Play animation" }, { "value": "0xF4", "name": "InvokeVirtue", "description": "Invoke virtue from macro" } ] }, { "name": "command", "type": "ascii-null", "description": "Command-specific text (skill ID, spell ID, etc.)" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 119 } }, { "id": "0x22", "name": "Resynchronize", "description": "Client requests full world state resync.", "direction": "incoming", "isDynamic": false, "size": 3, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x22", "description": "Packet identifier" }, { "name": "padding", "type": "ushort", "size": 2, "description": "Unused padding" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 349 } }, { "id": "0x2C", "name": "Death Status Response", "description": "Client acknowledges death status packet. Currently ignored by server.", "direction": "incoming", "isDynamic": false, "size": 2, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x2C", "description": "Packet identifier" }, { "name": "unknown", "type": "byte", "size": 1, "description": "Unknown" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 58 } }, { "id": "0x34", "name": "Mobile Query", "description": "Client queries information about a mobile (stats or skills).", "direction": "incoming", "isDynamic": false, "size": 10, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x34", "description": "Packet identifier" }, { "name": "pattern", "type": "uint", "size": 4, "value": "0xEDEDEDED", "description": "Fixed pattern" }, { "name": "queryType", "type": "enum", "enumType": "sequential", "size": 1, "description": "Type of query", "values": [ { "value": "0x04", "name": "Stats", "description": "Request mobile stats" }, { "value": "0x05", "name": "Skills", "description": "Request mobile skills" } ] }, { "name": "mobileSerial", "type": "uint", "size": 4, "description": "Serial of mobile to query" } ], "related": [ { "id": "0x11", "relationship": "response", "note": "Mobile Status packet sent in response to stats query" }, { "id": "0x3A", "relationship": "response", "note": "Skills Update sent in response to skills query" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 376 } }, { "id": "0x3A", "name": "Change Skill Lock", "description": "Client changes the lock state of a skill.", "direction": "incoming", "isDynamic": true, "size": "Dynamic", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x3A", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "skillIndex", "type": "short", "size": 2, "description": "Skill index to change" }, { "name": "lockState", "type": "enum", "enumType": "sequential", "size": 1, "description": "New lock state", "values": [ { "value": 0, "name": "Up", "description": "Skill gains enabled" }, { "value": 1, "name": "Down", "description": "Skill decreases enabled" }, { "value": 2, "name": "Locked", "description": "Skill locked at current value" } ] } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 331 } }, { "id": "0x72", "name": "Set War Mode", "description": "Client toggles war/peace mode.", "direction": "incoming", "isDynamic": false, "size": 5, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x72", "description": "Packet identifier" }, { "name": "warmode", "type": "bool", "size": 1, "description": "True = war mode, False = peace mode" }, { "name": "padding", "type": "byte", "size": 3, "description": "Unused padding (0x00, 0x32, 0x00)" } ], "related": [ { "id": "0x72", "relationship": "response", "note": "Server echoes back war mode state" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 343 } }, { "id": "0x73", "name": "Ping Request", "description": "Client sends ping for latency measurement.", "direction": "incoming", "isDynamic": false, "size": 2, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x73", "description": "Packet identifier" }, { "name": "sequence", "type": "byte", "size": 1, "description": "Ping sequence number" } ], "related": [ { "id": "0x73", "relationship": "response", "note": "Server echoes back same sequence" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 366 } }, { "id": "0x7D", "name": "Menu Response", "description": "Client responds to a displayed item menu.", "direction": "incoming", "isDynamic": false, "size": 13, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x7D", "description": "Packet identifier" }, { "name": "serial", "type": "uint", "size": 4, "description": "Menu dialog serial" }, { "name": "menuId", "type": "short", "size": 2, "description": "Menu ID (unused in implementation)" }, { "name": "index", "type": "short", "size": 2, "description": "Selected item index (1-based, 0 = cancel)" }, { "name": "itemId", "type": "short", "size": 2, "description": "Item graphic ID of selection" }, { "name": "hue", "type": "short", "size": 2, "description": "Hue of selection" } ], "related": [ { "id": "0x7C", "relationship": "request", "note": "Display Item List Menu packet" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 287 } }, { "id": "0x95", "name": "Hue Picker Response", "description": "Client responds to a hue picker dialog.", "direction": "incoming", "isDynamic": false, "size": 9, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x95", "description": "Packet identifier" }, { "name": "serial", "type": "uint", "size": 4, "description": "Hue picker serial" }, { "name": "itemId", "type": "short", "size": 2, "description": "Item ID (unused)" }, { "name": "hue", "type": "short", "size": 2, "description": "Selected hue (masked with 0x3FFF)" } ], "related": [ { "id": "0x95", "relationship": "request", "note": "Display Hue Picker packet" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 86 } }, { "id": "0x9A", "name": "ASCII Prompt Response", "description": "Client responds to an ASCII text prompt.", "direction": "incoming", "isDynamic": true, "size": "Dynamic", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x9A", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "serial", "type": "uint", "size": 4, "description": "Prompt serial" }, { "name": "promptId", "type": "int", "size": 4, "description": "Prompt ID" }, { "name": "type", "type": "int", "size": 4, "description": "Response type: 0 = cancel, other = submit" }, { "name": "text", "type": "ascii-null", "description": "Response text (max 128 chars)" } ], "related": [ { "id": "0xC2", "relationship": "request", "note": "Prompt packet that triggered this response" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 214 } }, { "id": "0x9B", "name": "Help Request", "description": "Client requests help/GM assistance.", "direction": "incoming", "isDynamic": false, "size": 258, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x9B", "description": "Packet identifier" }, { "name": "data", "type": "byte[]", "size": 257, "description": "Help request data (format TBD)" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 338 } }, { "id": "0xA4", "name": "System Info", "description": "Client sends system/hardware information.", "direction": "incoming", "isDynamic": false, "size": 149, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xA4", "description": "Packet identifier" }, { "name": "unknown1", "type": "byte", "size": 1, "description": "Unknown" }, { "name": "unknown2", "type": "ushort", "size": 2, "description": "Unknown" }, { "name": "unknown3", "type": "byte", "size": 1, "description": "Unknown" }, { "name": "string1", "type": "ascii", "size": 32, "description": "System string 1" }, { "name": "string2", "type": "ascii", "size": 32, "description": "System string 2" }, { "name": "string3", "type": "ascii", "size": 32, "description": "System string 3" }, { "name": "string4", "type": "ascii", "size": 32, "description": "System string 4" }, { "name": "unknown4", "type": "ushort", "size": 2, "description": "Unknown" }, { "name": "unknown5", "type": "ushort", "size": 2, "description": "Unknown" }, { "name": "unknown6", "type": "int", "size": 4, "description": "Unknown" }, { "name": "unknown7", "type": "int", "size": 4, "description": "Unknown" }, { "name": "unknown8", "type": "int", "size": 4, "description": "Unknown" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 103 } }, { "id": "0xA7", "name": "Request Scroll Window", "description": "Client requests a tips/scroll window.", "direction": "incoming", "isDynamic": false, "size": 4, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xA7", "description": "Packet identifier" }, { "name": "lastTip", "type": "short", "size": 2, "description": "Last tip ID viewed" }, { "name": "type", "type": "byte", "size": 1, "description": "Scroll type" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 63 } }, { "id": "0xC2", "name": "Unicode Prompt Response", "description": "Client responds to a Unicode text prompt.", "direction": "incoming", "isDynamic": true, "size": "Dynamic", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xC2", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "serial", "type": "uint", "size": 4, "description": "Prompt serial" }, { "name": "promptId", "type": "int", "size": 4, "description": "Prompt ID" }, { "name": "type", "type": "int", "size": 4, "description": "Response type: 0 = cancel, other = submit" }, { "name": "language", "type": "ascii", "size": 4, "description": "Language code (e.g., 'ENU')" }, { "name": "text", "type": "unicode-le-null", "description": "Response text (max 128 chars)" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 250 } }, { "id": "0xC8", "name": "Set Update Range", "description": "Client requests to change update range. Server ignores and sends back fixed range.", "direction": "incoming", "isDynamic": false, "size": 2, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xC8", "description": "Packet identifier" }, { "name": "range", "type": "byte", "size": 1, "description": "Requested update range (ignored)" } ], "related": [ { "id": "0xC8", "relationship": "response", "note": "Server sends back fixed range (18)" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 371 } }, { "id": "0xD0", "name": "Configuration File", "description": "Client sends configuration data. Currently ignored by server.", "direction": "incoming", "isDynamic": true, "size": "Dynamic", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xD0", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "data", "type": "byte[]", "description": "Configuration data (ignored)" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 322 } }, { "id": "0xD1", "name": "Logout Request", "description": "Client requests to logout.", "direction": "incoming", "isDynamic": false, "size": 2, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xD1", "description": "Packet identifier" }, { "name": "unknown", "type": "byte", "size": 1, "description": "Unknown (typically 0x01)" } ], "related": [ { "id": "0xD1", "relationship": "response", "note": "Server sends Logout Ack" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 326 } }, { "id": "0xD7", "name": "Encoded Command", "description": "Wrapper packet for encoded commands (0xD7 subpackets). Used for house design, abilities, guild/quest requests.", "direction": "incoming", "isDynamic": true, "size": "Dynamic", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xD7", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "entitySerial", "type": "uint", "size": 4, "description": "Serial of target entity" }, { "name": "subCommand", "type": "ushort", "size": 2, "description": "Encoded command ID" }, { "name": "data", "type": "byte[]", "description": "Subcommand-specific data" } ], "notes": "See encoded.json for subpacket definitions", "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 457 } }, { "id": "0xF4", "name": "Crash Report", "description": "Client sends crash/error report.", "direction": "incoming", "isDynamic": true, "size": "Dynamic", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xF4", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "clientMajor", "type": "byte", "size": 1, "description": "Client major version" }, { "name": "clientMinor", "type": "byte", "size": 1, "description": "Client minor version" }, { "name": "clientRev", "type": "byte", "size": 1, "description": "Client revision" }, { "name": "clientPat", "type": "byte", "size": 1, "description": "Client patch" }, { "name": "x", "type": "ushort", "size": 2, "description": "Player X coordinate at crash" }, { "name": "y", "type": "ushort", "size": 2, "description": "Player Y coordinate at crash" }, { "name": "z", "type": "sbyte", "size": 1, "description": "Player Z coordinate at crash" }, { "name": "map", "type": "byte", "size": 1, "description": "Map ID at crash" }, { "name": "accountName", "type": "ascii", "size": 32, "description": "Account name" }, { "name": "characterName", "type": "ascii", "size": 32, "description": "Character name" }, { "name": "ipAddress", "type": "ascii", "size": 15, "description": "Client IP address" }, { "name": "unknown1", "type": "int", "size": 4, "description": "Unknown" }, { "name": "exceptionCode", "type": "int", "size": 4, "description": "Exception code" }, { "name": "processName", "type": "ascii", "size": 100, "description": "Process name" }, { "name": "reportText", "type": "ascii", "size": 100, "description": "Report text" }, { "name": "terminator", "type": "byte", "size": 1, "value": "0x00", "description": "Null terminator" }, { "name": "offset", "type": "int", "size": 4, "description": "Crash offset" }, { "name": "stackCount", "type": "byte", "size": 1, "description": "Number of stack trace entries" }, { "name": "stackAddresses", "type": "loop", "loop": { "countField": "stackCount", "fields": [ { "name": "address", "type": "int", "size": 4, "description": "Stack frame address" } ] } } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs", "line": 413 } } ] }