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

1057 lines
No EOL
61 KiB
JSON

{
"category": "Player",
"packets": [
{
"id": "0x23",
"name": "Drag Effect",
"description": "Displays a drag/drop visual effect between two points.",
"direction": "outgoing",
"isDynamic": false,
"size": 26,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x23",
"description": "Packet identifier"
},
{
"name": "Item ID",
"type": "short",
"size": 2,
"description": "Item graphic ID"
},
{
"name": "Unknown",
"type": "byte",
"size": 1,
"value": "0x00",
"description": "Unknown"
},
{
"name": "Hue",
"type": "short",
"size": 2,
"description": "Item hue"
},
{
"name": "Amount",
"type": "short",
"size": 2,
"description": "Item amount"
},
{
"name": "Src Serial",
"type": "uint",
"size": 4,
"description": "Source entity serial"
},
{
"name": "Src X",
"type": "short",
"size": 2,
"description": "Source X coordinate"
},
{
"name": "Src Y",
"type": "short",
"size": 2,
"description": "Source Y coordinate"
},
{
"name": "Src Z",
"type": "sbyte",
"size": 1,
"description": "Source Z coordinate"
},
{
"name": "Dst Serial",
"type": "uint",
"size": 4,
"description": "Destination entity serial"
},
{
"name": "Dst X",
"type": "short",
"size": 2,
"description": "Destination X coordinate"
},
{
"name": "Dst Y",
"type": "short",
"size": 2,
"description": "Destination Y coordinate"
},
{
"name": "Dst Z",
"type": "sbyte",
"size": 1,
"description": "Destination Z coordinate"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 198
}
},
{
"id": "0x27",
"name": "Lift Reject",
"description": "Server rejects a lift/pick up request.",
"direction": "outgoing",
"isDynamic": false,
"size": 2,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x27",
"description": "Packet identifier"
},
{
"name": "Reason",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Rejection reason",
"values": [
{
"value": 0,
"name": "Cannot Lift",
"description": "You cannot pick that up"
},
{
"value": 1,
"name": "Out Of Range",
"description": "That is out of range"
},
{
"value": 2,
"name": "Out Of Sight",
"description": "That is out of sight"
},
{
"value": 3,
"name": "Try To Steal",
"description": "That does not belong to you"
},
{
"value": 4,
"name": "Are Holding",
"description": "You are already holding an item"
},
{
"value": 5,
"name": "Inspecific",
"description": "You cannot pick that up"
}
]
}
],
"related": [
{
"id": "0x07",
"relationship": "request",
"note": "Lift Request that was rejected"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 90
}
},
{
"id": "0x2C",
"name": "Death Status",
"description": "Notifies client of death/resurrection state.",
"direction": "outgoing",
"isDynamic": false,
"size": 2,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x2C",
"description": "Packet identifier"
},
{
"name": "Dead",
"type": "byte",
"size": 1,
"value": "0x02",
"description": "Always 2 (dead)"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 63
}
},
{
"id": "0x38",
"name": "Pathfind Message",
"description": "Instructs client to pathfind to a location.",
"direction": "outgoing",
"isDynamic": false,
"size": 7,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x38",
"description": "Packet identifier"
},
{
"name": "X",
"type": "short",
"size": 2,
"description": "Target X coordinate"
},
{
"name": "Y",
"type": "short",
"size": 2,
"description": "Target Y coordinate"
},
{
"name": "Z",
"type": "short",
"size": 2,
"description": "Target Z coordinate"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 319
}
},
{
"id": "0x3A",
"name": "Skills Update",
"description": "Sends full skills list or single skill update to client.",
"direction": "outgoing",
"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": "Type",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Update type",
"values": [
{
"value": "0x00",
"name": "Full No Caps",
"description": "Full list without caps"
},
{
"value": "0x02",
"name": "Full With Caps",
"description": "Full list with skill caps"
},
{
"value": "0xDF",
"name": "Single With Caps",
"description": "Single skill update with cap"
},
{
"value": "0xFF",
"name": "Single No Caps",
"description": "Single skill update"
}
]
},
{
"name": "Skills",
"type": "loop",
"loop": {
"until": "skillId == 0",
"fields": [
{
"name": "Skill ID",
"type": "ushort",
"size": 2,
"description": "Skill ID + 1 (0 terminates)"
},
{
"name": "Value",
"type": "ushort",
"size": 2,
"description": "Current skill value * 10"
},
{
"name": "Base",
"type": "ushort",
"size": 2,
"description": "Base skill value * 10"
},
{
"name": "Lock",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Skill 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"
}
]
},
{
"name": "Cap",
"type": "ushort",
"size": 2,
"description": "Skill cap * 10 (if type includes caps)"
}
]
}
}
],
"related": [
{
"id": "0x34",
"direction": "incoming",
"relationship": "request",
"note": "Mobile Query (skills) triggers this response"
},
{
"id": "0x3A",
"direction": "incoming",
"relationship": "related",
"note": "Change Skill Lock may trigger update"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 121
}
},
{
"id": "0x5B",
"name": "Current Time",
"description": "Sends current server time to client.",
"direction": "outgoing",
"isDynamic": false,
"size": 4,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x5B",
"description": "Packet identifier"
},
{
"name": "Hour",
"type": "byte",
"size": 1,
"description": "Hour (0-23)"
},
{
"name": "Minute",
"type": "byte",
"size": 1,
"description": "Minute (0-59)"
},
{
"name": "Second",
"type": "byte",
"size": 1,
"description": "Second (0-59)"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 316
}
},
{
"id": "0x65",
"name": "Weather",
"description": "Sets weather conditions for client.",
"direction": "outgoing",
"isDynamic": false,
"size": 4,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x65",
"description": "Packet identifier"
},
{
"name": "Type",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Weather type",
"values": [
{
"value": 0,
"name": "Rain",
"description": "Raining"
},
{
"value": 1,
"name": "Storm Brewing",
"description": "Storm brewing"
},
{
"value": 2,
"name": "Snow",
"description": "Snowing"
},
{
"value": 3,
"name": "Storm",
"description": "Storm in progress"
},
{
"value": 254,
"name": "None",
"description": "No weather"
},
{
"value": 255,
"name": "Clear",
"description": "Clear weather (stops current)"
}
]
},
{
"name": "Intensity",
"type": "byte",
"size": 1,
"description": "Weather intensity (0-255)"
},
{
"name": "Temperature",
"type": "byte",
"size": 1,
"description": "Temperature value"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 97
}
},
{
"id": "0x6D",
"name": "Play Music",
"description": "Plays background music on client.",
"direction": "outgoing",
"isDynamic": false,
"size": 3,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x6D",
"description": "Packet identifier"
},
{
"name": "Music ID",
"type": "short",
"size": 2,
"description": "Music track ID (0x1FFF = stop)"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 275
}
},
{
"id": "0x73",
"name": "Ping Ack",
"description": "Server acknowledges ping request.",
"direction": "outgoing",
"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 (echoed from request)"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 336
}
},
{
"id": "0x76",
"name": "Server Change",
"description": "Notifies client of server/map transition.",
"direction": "outgoing",
"isDynamic": false,
"size": 16,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x76",
"description": "Packet identifier"
},
{
"name": "X",
"type": "short",
"size": 2,
"description": "New X coordinate"
},
{
"name": "Y",
"type": "short",
"size": 2,
"description": "New Y coordinate"
},
{
"name": "Z",
"type": "short",
"size": 2,
"description": "New Z coordinate"
},
{
"name": "Unknown",
"type": "byte",
"size": 1,
"value": "0x00",
"description": "Unknown"
},
{
"name": "Unknown2",
"type": "short",
"size": 2,
"value": "0x0000",
"description": "Unknown"
},
{
"name": "Unknown3",
"type": "short",
"size": 2,
"value": "0x0000",
"description": "Unknown"
},
{
"name": "Map Width",
"type": "short",
"size": 2,
"description": "Map width"
},
{
"name": "Map Height",
"type": "short",
"size": 2,
"description": "Map height"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 100
}
},
{
"id": "0x7B",
"name": "Sequence",
"description": "Sends sequence number to client for synchronization.",
"direction": "outgoing",
"isDynamic": false,
"size": 2,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x7B",
"description": "Packet identifier"
},
{
"name": "Sequence",
"type": "byte",
"size": 1,
"description": "Sequence number"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 154
}
},
{
"id": "0x88",
"name": "Display Paperdoll",
"description": "Opens paperdoll window for a mobile.",
"direction": "outgoing",
"isDynamic": false,
"size": 66,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0x88",
"description": "Packet identifier"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Serial of mobile"
},
{
"name": "Title",
"type": "ascii",
"size": 60,
"description": "Title/name displayed"
},
{
"name": "Flags",
"type": "bitfield",
"size": 1,
"description": "Paperdoll flags",
"flags": [
{
"bit": "0",
"name": "Warmode",
"description": "Mobile is in war mode"
},
{
"bit": "1",
"name": "Can Lift",
"description": "Viewer can lift equipment"
}
]
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 247
}
},
{
"id": "0x95",
"name": "Display Hue Picker",
"description": "Opens hue picker dialog on client.",
"direction": "outgoing",
"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": "Unknown",
"type": "short",
"size": 2,
"value": "0x0000",
"description": "Unknown"
},
{
"name": "Item ID",
"type": "short",
"size": 2,
"description": "Item graphic to preview hue on"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 338
}
},
{
"id": "0xA5",
"name": "Launch Browser",
"description": "Opens a URL in client\u0027s web browser.",
"direction": "outgoing",
"isDynamic": true,
"size": "var",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xA5",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "URL",
"type": "ascii-t",
"description": "URL to open"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 180
}
},
{
"id": "0xA6",
"name": "Scroll Message",
"description": "Displays a scrollable tips/message window.",
"direction": "outgoing",
"isDynamic": true,
"size": "var",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xA6",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "Type",
"type": "byte",
"size": 1,
"description": "Scroll type"
},
{
"name": "Tip Number",
"type": "int",
"size": 4,
"description": "Tip/message number"
},
{
"name": "Text Length",
"type": "ushort",
"size": 2,
"description": "Length of text"
},
{
"name": "Text",
"type": "ascii",
"description": "Message text"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 291
}
},
{
"id": "0xB8",
"name": "Display Profile",
"description": "Displays a mobile\u0027s profile.",
"direction": "outgoing",
"isDynamic": true,
"size": "var",
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xB8",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"description": "Packet length"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Serial of mobile"
},
{
"name": "Header",
"type": "ascii-t",
"description": "Profile header"
},
{
"name": "Footer",
"type": "utf16be-t",
"description": "Profile footer"
},
{
"name": "Body",
"type": "utf16be-t",
"description": "Profile body text"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 66
}
},
{
"id": "0xBC",
"name": "Season Change",
"description": "Changes the visual season on client.",
"direction": "outgoing",
"isDynamic": false,
"size": 3,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xBC",
"description": "Packet identifier"
},
{
"name": "Season",
"type": "enum",
"enumType": "sequential",
"size": 1,
"description": "Season value",
"values": [
{
"value": 0,
"name": "Spring",
"description": "Spring season"
},
{
"value": 1,
"name": "Summer",
"description": "Summer season"
},
{
"value": 2,
"name": "Fall",
"description": "Fall/Autumn season"
},
{
"value": 3,
"name": "Winter",
"description": "Winter season"
},
{
"value": 4,
"name": "Desolation",
"description": "Desolation (dead trees)"
}
]
},
{
"name": "Play Sound",
"type": "bool",
"size": 1,
"description": "Play season change sound"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 244
}
},
{
"id": "0xBF/0x19",
"name": "Stat Lock Info",
"description": "Sends stat lock states (STR/DEX/INT) to client.",
"direction": "outgoing",
"isDynamic": false,
"size": 12,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xBF",
"description": "Packet identifier"
},
{
"name": "Length",
"type": "ushort",
"size": 2,
"value": "12",
"description": "Packet length"
},
{
"name": "Sub-Command",
"type": "short",
"size": 2,
"value": "0x19",
"description": "Subcommand (Stat Lock Info)"
},
{
"name": "Type",
"type": "byte",
"size": 1,
"value": "0x02",
"description": "Type (2 = stat locks)"
},
{
"name": "Serial",
"type": "uint",
"size": 4,
"description": "Mobile serial"
},
{
"name": "Unknown",
"type": "byte",
"size": 1,
"value": "0x00",
"description": "Unknown"
},
{
"name": "Lock Bits",
"type": "bitfield",
"size": 1,
"description": "Packed stat lock states. Bit layout: 00SSDDII where SS=Str, DD=Dex, II=Int",
"flags": [
{
"bit": "5-4",
"name": "Str Lock",
"description": "Strength lock (value \u003c\u003c 4)"
},
{
"bit": "3-2",
"name": "Dex Lock",
"description": "Dexterity lock (value \u003c\u003c 2)"
},
{
"bit": "1-0",
"name": "Int Lock",
"description": "Intelligence lock (value \u003c\u003c 0)"
}
],
"values": [
{
"value": 0,
"name": "Up",
"description": "Stat will increase when gains are available"
},
{
"value": 1,
"name": "Down",
"description": "Stat will decrease to allow other stats to increase"
},
{
"value": 2,
"name": "Locked",
"description": "Stat will not change"
}
],
"notes": "Formula: (StrLock \u003c\u003c 4) | (DexLock \u003c\u003c 2) | IntLock. Example: Str=Locked(2), Dex=Up(0), Int=Down(1) = 0b00100001 = 0x21"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 36
}
},
{
"id": "0xC8",
"name": "Change Update Range",
"description": "Sets the client\u0027s update range.",
"direction": "outgoing",
"isDynamic": false,
"size": 2,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xC8",
"description": "Packet identifier"
},
{
"name": "Range",
"type": "byte",
"size": 1,
"description": "Update range (typically 18)"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 59
}
},
{
"id": "0xD1",
"name": "Logout Ack",
"description": "Server acknowledges logout request.",
"direction": "outgoing",
"isDynamic": false,
"size": 2,
"fields": [
{
"name": "Packet ID",
"type": "byte",
"size": 1,
"value": "0xD1",
"description": "Packet identifier"
},
{
"name": "Ack",
"type": "byte",
"size": 1,
"value": "0x01",
"description": "Acknowledgment (1 = OK)"
}
],
"source": {
"file": "Projects/Server/Network/Packets/OutgoingPlayerPackets.cs",
"line": 94
}
}
]
}