UOX Protocol

Prepared by Damian

These are the post compression, post encryption protocol codes used by UO client rev33. This document is based off of analysis of UOX source code, published by Cironian, and various message board postings and other sources.

 

UOX Implemented Codes

Client-Server Commands

Disconnect Request:

0x12 0x34 0x56 0x78

Login Functions

First Login

\x80

Server Select

\xA0

Character Select

\x5D

Second Login

\x91

Character Maintenance

Character Delete

\x83

Character Create

\x00

Play Functions

Walk

\x02

Keep alive

\x73

Resync Request

\x22

Talk

\x03

Dclick

\x06

Sclick

\x09

Target

\x6C

Equip Item

\x13

Get Item

\x07

Drop Item

\x08

Pack Item

\x40

Else drop

Combat Mode

\x72

Extended Command

x12

Action

\xC7 (Subsequent buffer bytes contain strings "Bow" and "Salute" for those two respective

actions.

Use Skill

\x24

GM Page

\x9B

Choice

\x7D

Color Select

\x95

Status Request

\x34

Rename Char

\x75

Read Book

\x66

Get Tip

\xA7

Spy

\xA4

Attack

\x05

Server-Client Commands

It has been reported that all server to client command sets include a 3-part message consisting of "pause", "game-command", and "resume" segments, instructing the client to wait until it has processed the command before sending any more commands to the server. Each game command is then followed by either a variable or static number of game command modifiers that provide further information about the message.

Control Commands

Pause Command:

/x33/x01

Resume Command:

/x33/x00

Game-Commands

Weather

Code Modifier Bytes

/x65 3

Modifier 1: Weather Type, Values: /x00 Clear Skies

/x01 Rain

/x02 Snow

Modifier 2: Direction? Force?

 

 

 

 

 

 

Packet Specifications

0x00 Packet

Last modified on Wednesday, 06-May-1998 23:30:36 EDT

Create Character (100 bytes)

 

0x02 Packet

Last Modified on Sunday, 19-Apr-1998 14:42:51 EDT

Move Request (3 bytes)

NOTE: If (direction & 0x80) --> running

 

0x03 Packet

Last Modified on Saturday, 18-Apr-1998 17:49:23 EDT

Talk Request (Variable # of bytes)

 

0x05 Packet

Last Modified on Thursday, 16-Apr-1998 19:51:56 EDT

Attack Request (5 bytes)

 

0x06 Packet

Last Modified on Monday, 13-Apr-1998 17:05:50 EDT

Double click (5 bytes)

0x80000000 is set if the player hits the Open Paperdoll macro key

 

0x07 Packet

Last Modified on Tuesday, 14-Apr-1998 20:53:26 EDT

Pick Up Item(s) (7 bytes)

 

0x08 Packet

Last Modified on Tuesday, 14-Apr-1998 20:53:27 EDT

Drop Item(s) (14 bytes)

 

0x09 Packet

Last Modified on Monday, 13-Apr-1998 17:05:52 EDT

Single click (5 bytes)

 

0x11 Packet

Last Modified on Wednesday, 06-May-1998 23:30:36 EDT

Stat window info (66 bytes)

 

0x12 Packet

Last Modified on Sunday, 17-May-1998 15:27:53 EDT

Request Skill/Action/Magic Usage (Variable # of bytes)

 

0x13 Packet

Last Modified on Wednesday, 06-May-1998 23:44:02 EDT

Remove Worn Item (10 bytes)

 

0x1A Packet

Last Modified on Sunday, 17-May-1998 13:33:54 EDT

Draw Object (Variable # of bytes)

All those conditional x, y things could be in different orders

 

0x1B Packet

Last Modified on Tuesday, 21-Apr-1998 23:03:23 EDT

Char Location and body type (37 bytes)

 

0x1C Packet

Last Modified on Tuesday, 14-Apr-1998 20:53:31 EDT

Send Speech (Variable # of bytes)

 

0x1D Packet

Last Modified on Monday, 13-Apr-1998 17:06:02 EDT

Delete object (5 bytes)

 

0x20 Packet

Last Modified on Tuesday, 21-Apr-1998 23:03:29 EDT

Draw creature (19 bytes)

 

0x21 Packet

Last Modified on Wednesday, 06-May-1998 23:30:37 EDT

Character Move Reject (8 bytes)

 

0x22 Packet

Last Modified on Wednesday, 06-May-1998 23:30:41 EDT

Character Move ACK (3 bytes)

 

 

0x23 Packet

Last Modified on Sunday, 17-May-1998 13:33:54 EDT

Dragging of Items (26 bytes)

 

0x24 Packet

Last Modified on Tuesday, 14-Apr-1998 20:53:33 EDT

Draw Container (7 bytes)

 

 

0x25 Packet

Last Modified on Saturday, 02-May-1998 16:05:35 EDT

Add Item to Container (20 bytes)

 

0x26 Packet

Last Modified on Saturday, 23-May-1998 17:08:06 EDT

Kick Player (5 bytes)

 

0x27 Packet

Last Modified on Sunday, 17-May-1998 13:33:55 EDT

Reject Request to Move Items (2 bytes)

 

0x28 Packet

Last Modified on Tuesday, 21-Apr-1998 20:45:16 EDT

Clear Square (5 bytes)

 

0x2C Packet

Last Modified on Tuesday, 21-Apr-1998 20:45:18 EDT

Shift Body Type (2 bytes)

 

0x2E Packet

Last Modified on Wednesday, 06-May-1998 23:44:03 EDT

Worn Items (15 bytes)

 

0x2F Packet

Last Modified on Thursday, 16-Apr-1998 19:51:59 EDT

Fight Occuring (10 bytes)

This packet is sent when there is a fight going on somewhere on screen.

 

0x33 Packet

Last Modified on Monday, 13-Apr-1998 17:06:12 EDT

Start = 0x33 0x01

End = 0x33 0x00

 

0x34 Packet

Last modified on Thursday, 16-Apr-1998 19:52:01 EDT

Get Player Status (10 bytes)

 

0x3A Packet

Last modified on Thursday, 16-Apr-1998 19:52:02 EDT

Send Skills (Variable/190 bytes)

 

0x3B Packet

Last Modified on Wednesday, 06-May-1998 23:30:41 EDT

Buy Item(s) (Variable # of bytes)

 

0x3C Packet

Last Modified on Saturday, 02-May-1998 16:05:37 EDT

Items in Container (Variable # of bytes)

 

0x4E Packet

Last Modified on Sunday, 17-May-1998 13:33:55 EDT

Personal Light Level (6 bytes)

 

0x4F Packet

Last Modified on Sunday, 19-Apr-1998 14:42:53 EDT

Overall Light Level (2 bytes)

 

0x54 Packet

Last Modified on Sunday, 17-May-1998 13:33:59 EDT

Sound Effect (12 bytes)

 

0x5B Packet

Last Modified on Saturday, 18-Apr-1998 17:49:28 EDT

Time (4 bytes)

 

0x5D Packet

Last Modified on Monday, 13-Apr-1998 17:06:26 EDT

Create Character (73 bytes)

 

0x65 Packet

Last Modified on Wednesday, 22-Apr-1998 17:58:20 EDT

Change Weather (4 bytes)

 

0x66 Packet

Last Modified on Wednesday, 06-May-1998 23:44:04 EDT

Books - Page (Variable # of bytes)

NOTE: # of lines on page is always -1 for page requests

 

0x69 Packet

Last Modified on Thursday, 23-Apr-1998 19:26:05 EDT

Change Text/Emote Color (5 bytes)

The client sends two of these independant of the color choosen. It sends two of them in quick succession as part of the "same" packet. The unkonwn1 is 0x00 0x01 in the first and 0x00 0x02 in the second.

 

0x6C Packet

Last Modified on Friday, 01-May-1998 17:57:31 EDT

Clicking Commands (19 bytes)

 

0x6D Packet

Last Modified on Sunday, 17-May-1998 13:33:59 EDT

Play Music (3 bytes)

 

0x6E Packet

Last Modified on Tuesday, 21-Apr-1998 20:45:22 EDT

Combat Related / Animation? (14 bytes)

 

0x70 Packet

Last Modified on Tuesday, 21-Apr-1998 20:45:27 EDT

Graphical Effect (28 bytes)

 

0x72 Packet

Last Modified on Sunday, 17-May-1998 13:34:00 EDT

Request Mode Change (5 bytes)

Server replies with 0x77 packet

 

0x74 Packet

Last Modified on Sunday, 03-May-1998 22:52:07 EDT

Open Buy Window (Variable # of bytes)

NOTE: This packet is always preceeded by a describe contents packet (0x3c) with the container id as the (vendorID | 0x40000000) and then an open container packet (0x24?) with the vendorID only and a model number of 0x0030 (probably the model # for the buy screen)

 

0x75 Packet

Last Modified on Saturday, 23-May-1998 17:08:06 EDT

Rename NPC (35 bytes)

 

0x77 Packet

Last Modified on Tuesday, 21-Apr-1998 21:47:57 EDT

Send Player (17 bytes)

NOTE: If (direction & 0x80) --> running

 

0x78 Packet

Last Modified on Sunday, 17-May-1998 13:34:01 EDT

Draw object (Variable # of bytes)

NOTE: If (direction & 0x80) --> running

 

0x7C Packet

Last Modified on Sunday, 03-May-1998 22:52:13 EDT

Open Dialog Box (Variable # of bytes)

 

0x7D Packet

Last Modified on Sunday, 03-May-1998 22:52:18 EDT

Client Response To Dialog (13 bytes)

 

0x80 Packet

Last Modified on Monday, 13-Apr-1998 17:06:30 EDT

Login Request (62 bytes)

 

0x82 Packet

Last Modified on Monday, 13-Apr-1998 17:06:32 EDT

Login Denied (2 bytes)

 

0x83 Packet

Last Modified on Wednesday, 06-May-1998 23:30:42 EDT

Delete Character (39 bytes)

 

0x86 Packet

Last Modified on Saturday, 18-Apr-1998 17:49:37 EDT

Resend Characters After Delete (304 bytes)

 

0x88 Packet

Last Modified on Saturday, 18-Apr-1998 17:49:39 EDT

Open Paperdoll (66 bytes)

(actually, anything other than 0x00 seems to mean attack mode)

 

0x89 Packet

Last Modified on Saturday, 23-May-1998 17:08:06 EDT

Corpse Clothing (?? bytes)

 

0x8C Packet

Last Modified on Monday, 13-Apr-1998 17:06:42 EDT

Connect to Game Server (11 bytes)

 

0x91 Packet

Last Modified on Monday, 13-Apr-1998 17:06:45 EDT

Game Server Login (65 bytes)

 

0x93 Packet

Last Modified on Wednesday, 06-May-1998 23:30:43 EDT

Books - Title Page (88 bytes)

 

0x95 Packet

Last Modified on Thursday, 30-Apr-1998 18:34:08 EDT

Dye Window (9 bytes)

NOTE: This packet is sent by both the server and client

 

0x99 Packet

Last Modified on Sunday, 17-May-1998 14:44:20 EDT

Bring Up House/Boat Placement View (26 bytes)

 

0x9B Packet

Last Modified on Wednesday, 06-May-1998 23:30:45 EDT

Request Help (258 bytes)

 

0xA0 Packet

Last Modified on Monday, 13-Apr-1998 17:06:46 EDT

Select Server (3 bytes)

 

0xA1 Packet

Last Modified on Tuesday, 21-Apr-1998 20:45:29 EDT

Update Current Hitpoints (9 bytes)

 

0xA2 Packet

Last Modified on Tuesday, 21-Apr-1998 20:45:30 EDT

Update Current Mana (9 bytes)

 

 

0xA3 Packet

Last Modified on Tuesday, 21-Apr-1998 20:45:32 EDT

Update Current Stamina (9 bytes)

 

0xA5 Packet

Last Modified on Wednesday, 06-May-1998 23:30:48 EDT

Open Web Browser (Variable # of bytes)

 

0xA6 Packet

Last Modified on Wednesday, 06-May-1998 23:30:49 EDT

Tips/Notice window (Variable # of bytes)

 

0xA7 Packet

Last Modified on Wednesday, 06-May-1998 23:30:53 EDT

Request Tips/Notice (4 bytes)

 

0xA8 Packet

Last Modified on Monday, 13-Apr-1998 17:06:50 EDT

Game Server List (Variable # of bytes)

 

0xA9 Packet

Last Modified on Monday, 13-Apr-1998 17:07:00 EDT

Characters / Starting Locations (Variable # of bytes)

 

0xAA Packet

Last Modified on Thursday, 16-Apr-1998 19:52:14 EDT

OK / Not OK To Attack (5 bytes)

ID is set to 00 00 00 00 when attack is refused.