ModernUO/docs/packets/incoming/player.json
2026-01-01 17:52:56 -08:00

989 lines
No EOL
54 KiB
JSON

{
"category": "Player",
"packets": [
{
"id": "0x01",
"name": "Disconnect",
"description": "Client sends disconnect notification.",
"direction": "incoming",
"isDynamic": false,
"size": 5,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x01",
"description": "Packet identifier"
},
{
"name": "Minus One",
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x05",
"description": "Packet identifier"
},
{
"name": "Target Serial",
"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": "var",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x12",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "Command Type",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Type of text command",
"values": [
{
"value": "0x24",
"name": "Use Skill",
"description": "Use a skill by ID"
},
{
"value": "0x27",
"name": "Cast Spell From Book",
"description": "Cast spell from spellbook"
},
{
"value": "0x2F",
"name": "Old Scroll Click",
"description": "Old scroll double-click"
},
{
"value": "0x43",
"name": "Open Spellbook",
"description": "Open spellbook of type"
},
{
"value": "0x56",
"name": "Cast Spell Macro",
"description": "Cast spell from macro"
},
{
"value": "0x58",
"name": "Open Door",
"description": "Open door macro"
},
{
"value": "0xC7",
"name": "Animate",
"description": "Play animation"
},
{
"value": "0xF4",
"name": "Invoke Virtue",
"description": "Invoke virtue from macro"
}
]
},
{
"name": "Command",
"type": "ascii-t",
"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",
"noMerge": true,
"isDynamic": false,
"size": 3,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x22",
"description": "Packet identifier"
},
{
"name": "Padding",
"type": "ushort",
"size": 2,
"description": "Unused padding"
}
],
"notes": "Not related to outgoing 0x22 (Movement Acknowledgment) despite sharing the same packet ID.",
"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": "Packet ID",
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x34",
"description": "Packet identifier"
},
{
"name": "Pattern",
"type": "uint",
"size": 4,
"value": "0xEDEDEDED",
"description": "Fixed pattern"
},
{
"name": "Query Type",
"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": "Mobile Serial",
"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": "var",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x3A",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "Skill Index",
"type": "short",
"size": 2,
"description": "Skill index to change"
},
{
"name": "Lock State",
"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": "Packet ID",
"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)"
}
],
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x73",
"description": "Packet identifier"
},
{
"name": "Sequence",
"type": "byte",
"size": 1,
"description": "Ping sequence number"
}
],
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x7D",
"description": "Packet identifier"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Menu dialog serial"
},
{
"name": "Menu ID",
"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": "Item ID",
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x95",
"description": "Packet identifier"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Hue picker serial"
},
{
"name": "Item ID",
"type": "short",
"size": 2,
"description": "Item ID (unused)"
},
{
"name": "Hue",
"type": "short",
"size": 2,
"description": "Selected hue (masked with 0x3FFF)"
}
],
"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": "var",
"tags": ["Menu"],
"fields": [
{
"name": "Packet ID",
"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": "Prompt ID",
"type": "int",
"size": 4,
"description": "Prompt ID"
},
{
"name": "Type",
"type": "int",
"size": 4,
"description": "Response type: 0 = cancel, other = submit"
},
{
"name": "Text",
"type": "ascii-t",
"description": "Response text (max 128 chars)"
}
],
"related": [
{
"id": "0xC2",
"relationship": "request",
"note": "Unicode 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": "Packet ID",
"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": "Packet ID",
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xA7",
"description": "Packet identifier"
},
{
"name": "Last Tip",
"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": "var",
"tags": ["Menu"],
"fields": [
{
"name": "Packet ID",
"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": "Prompt ID",
"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., \u0027ENU\u0027)"
},
{
"name": "Text",
"type": "utf16le-t",
"description": "Response text (max 128 chars)"
}
],
"related": [
{
"id": "0xC2",
"direction": "outgoing",
"relationship": "request",
"note": "Unicode Prompt packet that triggered this response"
}
],
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xC8",
"description": "Packet identifier"
},
{
"name": "Range",
"type": "byte",
"size": 1,
"description": "Requested update range (ignored)"
}
],
"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": "var",
"fields": [
{
"name": "Packet ID",
"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": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xD1",
"description": "Packet identifier"
},
{
"name": "Unknown",
"type": "byte",
"size": 1,
"description": "Unknown (typically 0x01)"
}
],
"source": {
"file": "Projects/UOContent/Network/Packets/IncomingPlayerPackets.cs",
"line": 326
}
},
{
"id": "0xF4",
"name": "Crash Report",
"description": "Client sends crash/error report.",
"direction": "incoming",
"isDynamic": true,
"size": "var",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xF4",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "Client Major",
"type": "byte",
"size": 1,
"description": "Client major version"
},
{
"name": "Client Minor",
"type": "byte",
"size": 1,
"description": "Client minor version"
},
{
"name": "Client Rev",
"type": "byte",
"size": 1,
"description": "Client revision"
},
{
"name": "Client Pat",
"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": "Account Name",
"type": "ascii",
"size": 32,
"description": "Account name"
},
{
"name": "Character Name",
"type": "ascii",
"size": 32,
"description": "Character name"
},
{
"name": "IP Address",
"type": "ascii",
"size": 15,
"description": "Client IP address"
},
{
"name": "Unknown1",
"type": "int",
"size": 4,
"description": "Unknown"
},
{
"name": "Exception Code",
"type": "int",
"size": 4,
"description": "Exception code"
},
{
"name": "Process Name",
"type": "ascii",
"size": 100,
"description": "Process name"
},
{
"name": "Report Text",
"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": "Stack Count",
"type": "byte",
"size": 1,
"description": "Number of stack trace entries"
},
{
"name": "Stack Addresses",
"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
}
}
]
}