{ "category": "Account", "packets": [ { "id": "0x80", "name": "Account Login", "description": "Initial login request sent to the login server. Contains account credentials for authentication.", "direction": "incoming", "isDynamic": false, "size": 62, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x80", "description": "Packet identifier" }, { "name": "username", "type": "ascii", "size": 30, "description": "Account username (null-terminated)" }, { "name": "password", "type": "ascii", "size": 30, "description": "Account password (null-terminated)" }, { "name": "nextLoginKey", "type": "byte", "size": 1, "description": "Next login key" } ], "related": [ { "id": "0x82", "relationship": "rej", "note": "Sent if login fails" }, { "id": "0xA8", "relationship": "ack", "note": "Sent if login succeeds (server list)" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 439 } }, { "id": "0x91", "name": "Game Login", "description": "Login request sent to the game server after selecting a shard from the server list.", "direction": "incoming", "isDynamic": false, "size": 65, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x91", "description": "Packet identifier" }, { "name": "authId", "type": "int", "size": 4, "description": "Authentication ID from PlayServerAck (0x8C)" }, { "name": "username", "type": "ascii", "size": 30, "description": "Account username" }, { "name": "password", "type": "ascii", "size": 30, "description": "Account password" } ], "related": [ { "id": "0xA9", "relationship": "response", "note": "Character list sent on success" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 345 } }, { "id": "0x5D", "name": "Play Character", "description": "Request to enter the world with a selected character from the character list.", "direction": "incoming", "isDynamic": false, "size": 73, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x5D", "description": "Packet identifier" }, { "name": "pattern", "type": "uint", "size": 4, "value": "0xEDEDEDED", "description": "Fixed pattern" }, { "name": "name", "type": "ascii", "size": 30, "description": "Character name (unused)" }, { "name": "unknown", "type": "byte[2]", "size": 2, "description": "Unknown" }, { "name": "flags", "type": "int", "size": 4, "description": "Client flags" }, { "name": "unknown2", "type": "byte[24]", "size": 24, "description": "Unknown" }, { "name": "charSlot", "type": "int", "size": 4, "description": "Character slot index (0-based)" }, { "name": "clientIP", "type": "int", "size": 4, "description": "Client IP address" } ], "related": [ { "id": "0x1B", "relationship": "response", "note": "Login confirmation sent on success" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 210 } }, { "id": "0xA0", "name": "Play Server", "description": "Request to connect to a specific game server from the server list.", "direction": "incoming", "isDynamic": false, "size": 3, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xA0", "description": "Packet identifier" }, { "name": "serverIndex", "type": "short", "size": 2, "description": "Index of selected server in the list" } ], "related": [ { "id": "0x8C", "relationship": "response", "note": "Server connection details" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 398 } }, { "id": "0x83", "name": "Delete Character", "description": "Request to delete a character from the account.", "direction": "incoming", "isDynamic": false, "size": 39, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x83", "description": "Packet identifier" }, { "name": "password", "type": "ascii", "size": 30, "description": "Account password for verification" }, { "name": "charIndex", "type": "int", "size": 4, "description": "Character slot index to delete" }, { "name": "clientIP", "type": "int", "size": 4, "description": "Client IP address" } ], "related": [ { "id": "0x85", "relationship": "response", "note": "Delete result" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 185 } }, { "id": "0xEF", "name": "Login Server Seed", "description": "Initial connection packet sent before account login. Contains seed and client version information.", "direction": "incoming", "isDynamic": false, "size": 21, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xEF", "description": "Packet identifier" }, { "name": "seed", "type": "int", "size": 4, "description": "Random seed for encryption" }, { "name": "clientMajor", "type": "int", "size": 4, "description": "Client major version" }, { "name": "clientMinor", "type": "int", "size": 4, "description": "Client minor version" }, { "name": "clientRevision", "type": "int", "size": 4, "description": "Client revision" }, { "name": "clientPatch", "type": "int", "size": 4, "description": "Client patch level" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 419 } }, { "id": "0xBD", "name": "Client Version", "description": "Response to server's version request (0xBD). Contains the client version string.", "direction": "incoming", "isDynamic": true, "size": "3 + version string length", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xBD", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "version", "type": "ascii", "description": "Client version string (e.g., '7.0.95.0')" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 193 } }, { "id": "0xE1", "name": "Client Type", "description": "Sent by the client to identify the client type and version.", "direction": "incoming", "isDynamic": true, "size": "variable", "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xE1", "description": "Packet identifier" }, { "name": "length", "type": "ushort", "size": 2, "description": "Packet length" }, { "name": "unknown", "type": "ushort", "size": 2, "description": "Unknown" }, { "name": "clientType", "type": "ushort", "size": 2, "description": "Client type identifier" }, { "name": "version", "type": "ascii", "description": "Client version string" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 200 } }, { "id": "0x00", "name": "Create Character (Old)", "description": "Request to create a new character. This is the older 104-byte version.", "direction": "incoming", "isDynamic": false, "size": 104, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0x00", "description": "Packet identifier" }, { "name": "unknown1", "type": "int", "size": 4, "description": "Unknown" }, { "name": "unknown2", "type": "int", "size": 4, "description": "Unknown" }, { "name": "unknown3", "type": "byte", "size": 1, "description": "Unknown" }, { "name": "name", "type": "ascii", "size": 30, "description": "Character name" }, { "name": "unknown4", "type": "byte[2]", "size": 2, "description": "Unknown" }, { "name": "flags", "type": "int", "size": 4, "description": "Client flags" }, { "name": "unknown5", "type": "byte[8]", "size": 8, "description": "Unknown" }, { "name": "profession", "type": "byte", "size": 1, "description": "Starting profession" }, { "name": "unknown6", "type": "byte[15]", "size": 15, "description": "Unknown" }, { "name": "genderRace", "type": "byte", "size": 1, "description": "Gender and race combined value" }, { "name": "strength", "type": "byte", "size": 1, "description": "Starting strength" }, { "name": "dexterity", "type": "byte", "size": 1, "description": "Starting dexterity" }, { "name": "intelligence", "type": "byte", "size": 1, "description": "Starting intelligence" }, { "name": "skill1Id", "type": "byte", "size": 1, "description": "First skill ID" }, { "name": "skill1Value", "type": "byte", "size": 1, "description": "First skill value" }, { "name": "skill2Id", "type": "byte", "size": 1, "description": "Second skill ID" }, { "name": "skill2Value", "type": "byte", "size": 1, "description": "Second skill value" }, { "name": "skill3Id", "type": "byte", "size": 1, "description": "Third skill ID" }, { "name": "skill3Value", "type": "byte", "size": 1, "description": "Third skill value" }, { "name": "skinHue", "type": "ushort", "size": 2, "description": "Skin color hue" }, { "name": "hairStyle", "type": "short", "size": 2, "description": "Hair style ID" }, { "name": "hairHue", "type": "short", "size": 2, "description": "Hair color hue" }, { "name": "facialHairStyle", "type": "short", "size": 2, "description": "Facial hair style ID" }, { "name": "facialHairHue", "type": "short", "size": 2, "description": "Facial hair color hue" }, { "name": "unknown7", "type": "byte", "size": 1, "description": "Unknown" }, { "name": "cityIndex", "type": "byte", "size": 1, "description": "Starting city index" }, { "name": "charSlot", "type": "int", "size": 4, "description": "Character slot" }, { "name": "clientIP", "type": "int", "size": 4, "description": "Client IP" }, { "name": "shirtHue", "type": "short", "size": 2, "description": "Starting shirt hue" }, { "name": "pantsHue", "type": "short", "size": 2, "description": "Starting pants hue" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 58 } }, { "id": "0xF8", "name": "Create Character (New)", "description": "Request to create a new character. This is the newer 106-byte version with support for 4 skills.", "direction": "incoming", "isDynamic": false, "size": 106, "fields": [ { "name": "packetId", "type": "byte", "size": 1, "value": "0xF8", "description": "Packet identifier" }, { "name": "unknown1", "type": "int", "size": 4, "description": "Unknown" }, { "name": "unknown2", "type": "int", "size": 4, "description": "Unknown" }, { "name": "unknown3", "type": "byte", "size": 1, "description": "Unknown" }, { "name": "name", "type": "ascii", "size": 30, "description": "Character name" }, { "name": "unknown4", "type": "byte[2]", "size": 2, "description": "Unknown" }, { "name": "flags", "type": "int", "size": 4, "description": "Client flags" }, { "name": "unknown5", "type": "byte[8]", "size": 8, "description": "Unknown" }, { "name": "profession", "type": "byte", "size": 1, "description": "Starting profession" }, { "name": "unknown6", "type": "byte[15]", "size": 15, "description": "Unknown" }, { "name": "genderRace", "type": "byte", "size": 1, "description": "Gender and race combined value" }, { "name": "strength", "type": "byte", "size": 1, "description": "Starting strength" }, { "name": "dexterity", "type": "byte", "size": 1, "description": "Starting dexterity" }, { "name": "intelligence", "type": "byte", "size": 1, "description": "Starting intelligence" }, { "name": "skill1Id", "type": "byte", "size": 1, "description": "First skill ID" }, { "name": "skill1Value", "type": "byte", "size": 1, "description": "First skill value" }, { "name": "skill2Id", "type": "byte", "size": 1, "description": "Second skill ID" }, { "name": "skill2Value", "type": "byte", "size": 1, "description": "Second skill value" }, { "name": "skill3Id", "type": "byte", "size": 1, "description": "Third skill ID" }, { "name": "skill3Value", "type": "byte", "size": 1, "description": "Third skill value" }, { "name": "skill4Id", "type": "byte", "size": 1, "description": "Fourth skill ID (newer clients)" }, { "name": "skill4Value", "type": "byte", "size": 1, "description": "Fourth skill value (newer clients)" }, { "name": "skinHue", "type": "ushort", "size": 2, "description": "Skin color hue" }, { "name": "hairStyle", "type": "short", "size": 2, "description": "Hair style ID" }, { "name": "hairHue", "type": "short", "size": 2, "description": "Hair color hue" }, { "name": "facialHairStyle", "type": "short", "size": 2, "description": "Facial hair style ID" }, { "name": "facialHairHue", "type": "short", "size": 2, "description": "Facial hair color hue" }, { "name": "unknown7", "type": "byte", "size": 1, "description": "Unknown" }, { "name": "cityIndex", "type": "byte", "size": 1, "description": "Starting city index" }, { "name": "charSlot", "type": "int", "size": 4, "description": "Character slot" }, { "name": "clientIP", "type": "int", "size": 4, "description": "Client IP" }, { "name": "shirtHue", "type": "short", "size": 2, "description": "Starting shirt hue" }, { "name": "pantsHue", "type": "short", "size": 2, "description": "Starting pants hue" } ], "source": { "file": "Projects/UOContent/Network/Packets/IncomingAccountPackets.cs", "line": 58 }, "notes": "Uses the same handler as 0x00 but with 2 additional bytes for the 4th skill." } ] }