00 - Login
Create a new character 0x68 bytes

byte ID (00)
dword 0xedededed
dword 0xffffffff
byte 0
char[60] Character Name
byte Gender
byte Strength
byte Dexterity
byte Intelligence
byte Skill 1
byte Skill 1 Amount
byte Skill 2
byte Skill 2 Amount
byte Skill 3
byte Skill 3 Amount
word Skin Color
word Hair Style
word Hair Color
word Beard Style
word Beard Color
word Starting City
word 0
word Slot
dword Client IP
word Shirt color
word Pants Color
01 - Logout
Character returns to main menu from character select menu.
5 bytes

byte ID (01)
dword 0xffffffff
02 - Req Move
Ask the server if we can walk.
7 bytes

byte ID (02)
byte Direction
byte Sequence Number
dword Fastwalk Prevention Key
03 - Speech
Send speech to the server

byte ID (03)
word Size of Packet
byte Mode (0=say,2=emote,8=whipser,9=yell)
word Text Color
word Font
byte[*] Text
04 - God Mode Toggle
Toggles god mode on/off
2 bytes

byte ID (04)
byte God mode on/off
05 - Attack
Send attack to server
5 bytes

byte ID (05)
dword Serial of character to attack
06 - Req Obj Use
Ask the server if we can use an object (double click)
5 bytes

byte ID (06)
dword Serial of item double clicked
07 - Req Get Obj
Ask the server for item
7 bytes

byte ID (07)
dword Serial of item
word Amount of item
08 - Req Drop Obj
Ask the server to drop an item
0x0E bytes

byte ID (08)
dword Item Serial
word X
word Y
char Z
dword Container Serial (-1 = ground)
09 - Req Look
Ask the server to look at an item (single click)
5 bytes

byte ID (09)
dword Serial of item single clicked
0A - Edit
Edit dynamics and statics
0x0B bytes

Types are:
04 = Dynamic item
07 = NPC
0A = Static Item


byte ID (0A)
byte Type
word X
word Y
word ID
byte Z
word Unknown
0B - Edit Area
Edit Area
0x0A bytes

byte ID (0B)
byte[9] Unknown
0C - Tile Data
Alter tiledata (send new tiledata to the server)

byte ID (0C)
word Packet Size
word Tile ID
byte[37] New Tile data (see tiledata.mul)
word F777
0D - NPC Data
Send new NPC data to the server
3 bytes

byte ID (0D)
byte[2] Unknown
0E - Template Data
Edit template data

byte ID (0E)
byte[2] Packet Size
byte[*] Unknown
0F - Paperdoll
Paperdoll
0x3D bytes

byte ID (0F)
byte[0x3C] Unknown
10 - Hue Data
Modify Hue Data
0xD7 bytes

byte ID (10)
byte[0xD6] Unknown
11 - Mobile Stat
The status of a character

byte ID (11)
word Packet Size
dword Serial
char[30] Character Name
word Hit Points
word Max Hit Points
byte Allow Name change (FFh = yes)
byte Valid stats (1 = yes)
byte Gender
word Strength
word Dexterity
word Intelligence
word Stamina
word Max Stamina
word Mana
word Max Mana
dword Gold
word Armor Rating
word Weight
12 - God Command
External command, use skill, magic, etc
CommandTypes:
0x24 = Use Skill
0x56 = Macro Spell
0x58 = Open Door
0x6b = God Mode Command
0xc7 = Action

byte ID (12)
word Packet Size
byte CommandType
byte[*] Command
13 - Req Obj Equip
Equip an item
0x0A bytes

byte ID (13)
dword Item Serial
byte Layer
dword Container Serial
14 - Elev Change
Change Z value of item
6 bytes

byte ID (14)
byte[5] Unknown
15 - Follow
Follow character
9 bytes

byte ID (15)
byte[8] Unknown
16 - Req Script Names
Get a list of script names
1 byte

byte ID (16)
17 - Script Tree Cmd
Script Modification commands

byte ID (17)
byte[2] Packet Size
byte[*] Unknown
18 - Script Attach
Add new script to server

byte ID (18)
byte[2] Packet Size
byte[*] Unknown
19 - NPC Convo Data
Modify NPC Speech data

byte ID (19)
byte[2] Packet Size
byte[*] Unknown
1A - Move
Move or place an item on the ground

byte ID (1A)
word Packet Size
dword Item Serial
word Item ID
word Item Amount (if Serial&0x80000000)
byte Stack ID (if Item ID&0x8000) add to Item ID
word X
word Y
byte Direction (if X&0x8000)
char Z
word Hue (if Y&0x8000)
byte Status if (y&0x4000)
1B - Login Confirm
Player initialization
0x25 bytes

byte ID (1B)
dword Serial
dword 0
word ID
word X
word Y
byte 0
char Z
byte Direction
dword 7Fh
dword 0
word 7
byte Status
word Highlight Color
word 0
dword 0
1C - Text
Someone is speaking, or the server is sending us info

byte ID (1C)
word Packet Size
dword Character Serial
word Character ID
byte Type
word Text Color
word Font
char[30] Name
char[*] Text
1D - Destroy Object
Remove Item from scene
5 bytes

byte ID (1D)
dword Item Serial
1E - Animate
Control Animation
4 bytes

byte ID (1E)
byte[3] Unknown
1F - Explode
Cause explosion
8 bytes

byte ID (1F)
byte[7] Unknown
20 - Z Move
Character is being moved by the server
0x13 bytes

byte ID (20)
dword Serial
word ID
byte 0
word Skin Color
byte Status
word X
word Y
word 0
byte Direction
char Z
21 - Blocked Move
Server rejected our walk request
8 bytes

byte ID (21)
byte Sequence Rejected
word X location to jump back to
word Y
byte Direction
char Z
22 - OK Move
Server accepted our walk request
3 bytes

byte ID (22)
byte Sequence accepted
byte Status
23 - Obj Move
Drag Item
0x1A bytes

byte ID (23)
word Item ID
byte 0
word 0
word Item Amount
dword Source Serial
word Source X
word Source Y
char Source Z
dword Target Serial
word Target X
word Target Y
char Target Z
24 - Open Gump
Open a gump
7 bytes

byte ID (24)
dword Serial
word Gump
word Packet Size
word Number of Items
loop Item
dword Item Serial
word Item ID
byte 0
word Item Amount
word Item X
word Item Y
dword Container Serial
word Item Hue
endloop Item
25 - Obj to Obj
Add Object to an Object
0x14 bytes

byte ID (25)
dword Item Serial
word Item ID
byte 0
word Item Amount
word Item X
word Item Y
dword Container Serial
word Item Color
26 - Old Client
Old Client, kick
5 bytes

byte ID (26)
dword Serial of GM who kicked
27 - Get Obj Failed
Unable to pick up object
2 bytes

byte ID (27)
byte Where
28 - Drop Obj Failed
Unable to drop object
5 bytes

byte ID (28)
byte[4] Unknown
29 - Drop Obj OK
Object dropped ok
1 byte

byte ID (29)
2A - Blood
Blood mode
5 bytes

byte ID (2A)
byte[4] Unknown
2B - God Mode
God Mode is on/off (server response to packet 04)
2 bytes

byte ID (2B)
byte God mode on/off
2C - Death
Choose resurrection
2 bytes

Choice = 0=server ask, 1=resurrect, 2=ghost


byte ID (2C)
byte Choice
2D - Health
Health
0x11 bytes

byte ID (2D)
byte[0x10] Unknown
2E - Equip Item
Character is wearing an item
0x0F bytes

byte ID (2E)
dword Item Serial
word Item ID
byte 0
byte Layer
dword Container Serial
word Item Color
2F - Swing
Fight, swing
0x0A bytes

byte ID (2F)
byte 0
dword Attacker Serial
dword Defender Serial
30 - Attack OK
Attack granted
5 bytes

byte ID (30)
byte[4] Unknown
31 - Attack End
Attack ended
1 byte

byte ID (31)
32 - Hack Mover
God mode admin command
2 bytes

byte ID (32)
byte Unknown
33 - Group
Group command
2 bytes

byte ID (33)
byte Command
34 - Client Query
Get Status
0x0A bytes
Types:
0x04=Basic Status (Packet 0x11)
0x05=Request Skills (Packet 0x3A)

byte ID (34)
dword 0xedededed
byte Type
dword Serial
35 - Resource Type
Get resource type
0x8D bytes

byte ID (35)
byte[0x8C] Unknown
36 - Resource Tile Data
Resource tile data

byte ID (36)
word Packet Size
byte[*] Unknown
37 - Move Object
Move an object
8 bytes

byte ID (37)
byte[7] Unknown
38 - Follow Move
Follow move
7 bytes

byte ID (38)
byte[6] Unknown
39 - Groups
Groups
9 bytes

byte ID (39)
byte[8] Unknown
3A - Skills
Update skills

Client version is only ID, Packet Size, Skill ID, and Lock Status.


byte ID (3A)
word Packet Size
byte List Type (ff=no loop, else loop till ID=0)
loop Skill
word Skill ID
word Skill Value
word Base Value
byte Lock Status
endloop Skill
3B - Offer Accept
Accept Offer

byte ID (3B)
word Packet Size
dword Vendor Serial
byte Num of Items (0=clear message)
loop Item
byte Layer
dword Item Serial
word Item Amount
endloop Item
3C - Multi Obj to Obj
Add objects to object

byte ID (3C)
word Packet Size
word Number of Items
loop Item
dword Item Serial
word Item ID
byte 0
word Item Amount
word Item X
word Item Y
dword Container Serial
word Item Color
endloop Item
3D - Ship
Ship
2 bytes

byte ID (3D)
byte Unknown
3E - Versions
Version retrieval
0x25 bytes

byte ID (3E)
byte[0x24] Unknown
3F - Upd Obj Chunk
Update object chunk

byte ID (3F)
byte[2] Packet Size
byte[*] Unknown
40 - Upd Terr Chunk
Update terrain chunk
0xC9 bytes

byte ID (40)
byte[0xC8] Unknown
41 - Update Tile Data
Send an updated tiledata.mul entry to the client.

byte ID (41)
word Packet Size
word Tile ID
byte[37] Tile Data (see tiledata.mul)
word F777
42 - Update Art
Send updated art to client

byte ID (42)
byte[2] Packet Size
byte[*] Unknown
43 - Update Anim
Send new animation data to client
0x29 bytes

byte ID (43)
byte[0x28] Unknown
44 - Update Hues
Send new hue information to the client
0xC9 bytes

byte ID (44)
byte[0xC8] Unknown
45 - Ver Ok
Ver Ok
5 bytes

byte ID (45)
byte[4] Unknown
46 - New Art
Send new artwork

byte ID (46)
word Packet Size
dword Tile ID
byte[*] Art Data (see art.mul)
47 - New Terr
Send new terrain to the server
0x0B bytes

byte ID (47)
word X
word Y
word Art ID
dword Unknown
48 - New Anim
Send new animation data (static tile animation)
0x49 bytes

byte ID (48)
dword Tile ID
byte[64] Frames
byte Unknown
byte Numer of Frames Used
byte Frame Interval
byte Start Interval
49 - New Hues
Send new hues
0x5D bytes

byte ID (49)
dword Hue ID
word[32] Hue Values
word Start
word End
char[20] Hue Name
4A - Destroy Art
Destroy artwork
5 bytes

byte ID (4A)
dword Art ID
4B - Check Ver
Check client version
9 bytes

byte ID (4B)
byte[8] Unknown
4C - Script Names
Modify script names

byte ID (4C)
byte[2] Packet Size
byte[*] Unknown
4D - Script File
Edit script file

byte ID (4D)
byte[2] Packet Size
byte[*] Unknown
4E - Light Change
Set the personal light level
6 bytes

byte ID (4E)
dword Serial
byte Level
4F - Sunlight
Set light level.
2 bytes
0 = Bright, 1F = Black

byte ID (4F)
byte Level
50 - Board Header
Bulletin Board Header

byte ID (50)
byte[2] Packet Size
byte[*] Unknown
51 - Board Msg
Bulletin Board Message

byte ID (51)
byte[2] Packet Size
byte[*] Unknown
52 - Post Msg
Post Bulletin Board Message

byte ID (52)
byte[2] Packet Size
byte[*] Unknown
53 - Login Reject
Login Rejected
2 bytes

(1=no character, 2=char exists, 3-4=Can't connect, 5=character already in world,6=login problem,7=idle, 8=can't connect)


byte ID (53)
byte Message
54 - Sound
Play a sound effect
0x0C bytes
Flags = 0 repeating, 1 = single play

byte ID (54)
byte Flags
word Effect
word Volume
word X
word Y
word Z
55 - Login Complete
Begin Game
1 byte

byte ID (55)
56 - Map Command
Plot course for ships
0x0B bytes

byte ID (56)
dword Serial
byte Action (1=add,5=delete,6=toggle edit)
byte Pin Number
word Pin X
word Pin Y
57 - Upd Regions
Update regions
0x6E bytes

byte ID (57)
byte[0x6D] Unknown
58 - New Region
Create a new region
0x6A bytes

byte ID (58)
char[40] Area Name
dword 0
word X
word Y
word Width
word Height
word Z1
word Z2
char[40] Description
word Sound FX
word Music
word Night Sound FX
byte Dungeon
word Light
59 - New Context FX
Create a new effect

byte ID (59)
byte[2] Packet Size
byte[*] Unknown
5A - Upd Context FX
Update effect

byte ID (5A)
byte[2] Packet Size
byte[*] Unknown
5B - Game Time
Set the time of day
4 bytes

byte ID (5B)
byte Hours
byte Minutes
byte Seconds
5C - Restart Ver
Resart Ver
2 bytes

byte ID (5C)
byte Unknown
5D - Pre Login
Select the character to play
0x49 bytes

byte ID (5D)
dword 0xEDEDEDED
char[32] Character Name
dword[7] Unknown
dword Character Index
dword Client IP
5E - Server List
Server List

byte ID (5E)
byte[2] Packet Size
byte[*] Unknown
5F - Server Add
Add server
0x31 bytes

byte ID (5F)
byte[0x30] Unknown
60 - Server Remove
Delete a server
5 bytes

byte ID (60)
byte[4] Unknown
61 - Destroy Static
Delete a static
9 bytes

byte ID (61)
word X
word Y
byte Unknown
char Z
word ID
62 - Move Static
Move a static
0x0F bytes

byte ID (62)
byte[0x0E] Unknown
63 - Area Load
Load an area
0x0D bytes

byte ID (63)
byte[0x0C] Unknown
64 - Area Load Req
Attempt to load area
1 byte

byte ID (64)
65 - Weather Change
Set current weather
4 bytes

Type: 0x00 = "It starts to rain" 0x01 = "A fierce storm approaches" 0x02 = "It begins to snow" 0x03 = "A storm is brewing." 0xff = Stop all weather.


byte ID (65)
byte Weather Type
byte Number of weather effects
byte Temperature
66 - Book Page
Show book
As a client message, this writes to the book.

byte ID (66)
word Packet Size
dword Item Serial
word Number of Pages
loop Page
word Page Index
word Number of Lines
loop Line
byte[*] Text
endloop Line
endloop Page
67 - Simped
Simped
0x15 bytes

byte ID (67)
byte[0x14] Unknown
68 - Script LS Attach
Add LS script

byte ID (68)
byte[2] Packet Size
byte[*] Unknown
69 - Friends
Unknown

byte ID (69)
word Packet Size
byte[*] Unknown
6A - Friend Notify
Notify Friend
3 bytes

byte ID (6A)
byte[2] Unknown
6B - Key Use
Use Key
9 bytes

byte ID (6B)
byte[8] Unknown
6C - Target
Bring up targeting cursor
0x13 bytes

byte ID (6C)
byte Target Type
dword Character Serial
byte Check Crime
dword Item Serial
word X (ffff=cancel)
word Y (ffff=cancel)
byte Unknown
byte Z
6D - Music
Play a midi music file
3 bytes

byte ID (6D)
word Midi Song
6E - Anim
Show an animation
0x0E bytes

byte ID (6E)
dword Serial
word Action
word 5
word Direction
word Repeat Times
byte Forward (0=forward 1= backward)
byte Repeat Flag
byte Delay (0=fast, 0xff=slow)
6F - Trade
Open trade window

Type:
0 = Start Trading
1 = Cancel Trade
2 = Reset Checkmarks

byte ID (6F)
word Packet Size
byte Type (0=start,1=cancel,2=change checkmarks)
dword Character Serial
dword Item 1 Serial (type0 only)
dword Item 2 Serial (type0 only)
byte Name Included (type 0 only)
char[30] Name (type 0 only, only if Name Included)
70 - Effect
Play a special effect (like magic)
0x1C bytes

Type:
00 = Go from source to dest
01 = Lightning strike
02 = Stay at location
03 = Stay with source

byte ID (70)
byte Type
dword Character Serial
dword Target Serial
word Object ID
word X
word Y
char Z
word Target X
word Target Y
char Target Z
word Speed
word 0
word Explode
71 - BBoard
Display a message board
Type:
0=draw board,
1=get posts,
2-3=get body,
4=ack dl,
5=post,
6=delete


byte ID (71)
word Packet Size
byte Type
71.0 - Draw Board
Draw the Bulletin board

byte ID (71)
word Packet Size
byte Type (0)
dword Board Serial
char[22] Board Name
dword ID
dword 0
71.1 - Message List
List of bulletin board messages

byte ID (71)
word Packet Size
byte Type (1)
dword Board Serial
dword Message Serial
dword Container Serial (0 = top level)
byte Name Length
char[*] Name
byte Subject Length
char[*] Subject
byte Time Length
char[*] Time
71.2 - Message
A single message on a bulletin board

byte ID (71)
word Packet Length
byte Type (2)
dword Board Serial
dword Message Serial
byte Name Length
char[*] Name
byte Subject Length
char[*] Subject
byte Time Length
char[*] Time
byte[29] Unknown
byte Num Lines
loop Line
byte Line Length
char[*] Line Text
endloop Line
71.3 - Get Message
Ask the server for a message

byte ID (71)
word Packet Size
byte Type (3)
dword Board Serial
dword Message Serial
71.4 - Get Summary
Get a bulletin board's message summary

byte ID (71)
word Packet Size
byte Type (4)
dword Board Serial
dword Message Serial
71.5 - Post Message
Post a message to a bulletin board

byte ID (71)
word Packet Size
byte Type (5)
dword Board Serial
dword Reply Message Serial (0 if no reply)
byte Subject Length
char[*] Subject
byte Num Lines
loop Line
byte Line Length
char[*] Line Text
endloop Line
71.6 - Delete Message
Delete a posted message

byte ID (71)
word Packet Size
byte Type (6)
dword Board Serial
dword Message Serial
72 - Combat
Set war mode and stuff
5 bytes

byte ID (72)
byte War Mode
word Unknown
byte Unknown
73 - Ping
Ping and Pong
2 bytes

byte ID (73)
byte Value
74 - Shop Data
Purchase details

byte ID (74)
word Packet Size
dword Vendor Serial
byte Number of Items
loop Item
dword Price
byte Name Length
char[*] Name
endloop Item
75 - Rename MOB
Rename character
0x23 bytes

byte ID (75)
dword Serial
char[30] Name
76 - Server Change
Server change
0x10 bytes

byte ID (76)
byte[0x0F] Unknown
77 - Naked MOB
Another character or monster is walking (why is this called Naked MOB?)
0x11 bytes

byte ID (77)
dword Serial
word ID
word X
word Y
char Z
byte Direction
word Skin Color
byte Status
byte Notoriety (Murderer, Friend etc)
78 - Equipped MOB
Add a character to the scene

byte ID (78)
word Packet Size
dword Serial
word ID
word Amount/Corpse (if Serial&0x80000000)
word X
word Y
char Z
byte Direction
word Skin Color
byte Status
byte Notoriety
loop Item (while Serial!=0)
dword Item Serial
word Item ID
byte Item Layer
word Item Color (if Item ID&0x8000)
endloop Item
79 - Resource Query
Get Resource
9 bytes

byte ID (79)
dword Unknown
dword Unknown
7A - Resource Data
Resource Data

byte ID (7A)
byte[2] Packet Size
byte[*] Unknown
7B - Sequence
Sequence
2 bytes

byte ID (7B)
byte Unknown
7C - Obj Picker
Display a Gump with options (like the Add menu)

byte ID (7C)
word Packet Size
dword Gump Serial
word Gump ID
byte Title Length
byte[*] Title
byte Number of Lines
loop Line
word Choice ID
word Checked
byte Line Length
char[*] Text
endloop Line
7D - Picked Obj
Choose an option from 7C
0x0D bytes

byte ID (7D)
dword Gump Serial
word Gump ID
word Item ID
dword Unknown
7E - God View Query
Get god view data
2 bytes

byte ID (7E)
byte God view stat id
7F - God View Data
God view data

byte ID (7F)
byte[2] Packet Size
byte[*] Unknown
80 - Acct Login Req
Login to the login server.
0x3E bytes

byte ID (80)
char[30] Name
char[30] Password
byte Unknown
81 - Acct Login Ok
Login ok

byte ID (81)
byte[2] Packet Size
byte[*] Unknown
82 - Acct Login Fail
There was an error logging in
2 bytes

0=No Account, 1=Account in Use, 2=Account Blocked, 3=No Password


byte ID (82)
byte Error
83 - Acct Del Char
Delete a player
0x27 bytes

byte ID (83)
byte[30] Password
dword Character Index
dword Client IP
84 - Chg Char PW
Change password
0x45 bytes

byte ID (84)
byte[0x44] Unknown
85 - Chg Char Result
Result of Change character request
2 bytes

byte ID (85)
byte Unknown
86 - All Characters
Resend Characters after delete

byte ID (86)
word Packet Size
byte Number of Characters
loop Character
char[30] Name
char[30] Password
endloop Character
87 - Send Resources
Send resources

byte ID (87)
word Packet Size
word 0x101
word 0
byte Unknown
dword X
dword Y
dword X2
dword Y2
byte Name Length
char[*] Name
88 - Open Paper Doll
Display paper doll
0x42 bytes

byte ID (88)
dword Character Serial
char[60] Name
byte Status
89 - Corpse EQ
Corpses backpack

byte ID (89)
word Packet Size
dword Container Serial
loop Item (while Layer!=0)
byte Layer
dword Item Serial
endloop Item
8A - Trigger Edit
Edit Trigger

byte ID (8A)
byte[2] Packet Size
byte[*] Unknown
8B - Display Sign
Show Sign

byte ID (8B)
byte[2] Packet Size
byte[*] Unknown
8C - User Server
Relay to the game server.
0x0B bytes

byte ID (8C)
dword Server IP
word Server Port
dword Auth ID
8D - Unused3
Unsued

byte ID (8D)
byte[2] Packet Size
byte[*] Unknown
8E - Move Character
Move Character

byte ID (8E)
byte[2] Packet Size
byte[*] Unknown
8F - Unused4
Unused

byte ID (8F)
byte[2] Packet Size
byte[*] Unknown
90 - Open Course Gump
Show map, for plotting etc.
0x13 bytes

byte ID (90)
dword Serial
word Corner Image
word X1
word Y1
word X2
word Y2
word Width
word Height
91 - Post Login
Login to the game server
0x41 bytes

byte ID (91)
dword Auth ID
char[30] Name
char[30] Password
92 - Upd Multi
Update Multi

byte ID (92)
byte[2] Packet Size
byte[*] Unknown
93 - Book Hdr
Open a book
0x63 bytes

byte ID (93)
dword Item Serial
byte Editable
byte 1
word Number of Pages
char[60] Title
char[30] Author
94 - Upd Skill
Alter skill

byte ID (94)
byte[2] Packet Size
byte[*] Unknown
95 - Hue Picker
Dye
9 bytes

byte ID (95)
dword Item Serial
word Item ID
word Color
96 - Game Cent Mon
Monitor game, mostly through godview

byte ID (96)
word Packet Size
byte Command
byte[*] Unknown
97 - Player Move
Player move
2 bytes

byte ID (97)
byte Unknown
98 - MOB Name
Alter name

byte ID (98)
byte[2] Packet Size
byte[*] Unknown
99 - Target Multi
Targeting cursor for multis
0x1A bytes

byte ID (99)
byte Allow Ground
dword Deed Serial
dword 0
dword 0
dword 0
word Multi ID
dword 0
word 0
9A - Text Entry
Text Entry

byte ID (9A)
byte[2] Packet Size
byte[*] Unknown
9B - Request Assist
Page a GM
2 bytes

byte ID (9B)
byte Unknown
9C - Assist Request
Assistance response
0x35 bytes

byte ID (9C)
byte[0x34] Unknown
9D - GM Single
GM Single
0x33 bytes

byte ID (9D)
byte[0x32] Unknown
9E - Shop Sell
Details for sales

byte ID (9E)
word Packet Size
dword Vendor Serial
word Number of Items
loop Item
dword Item Serial
word Item ID
word Item Color
word Item Amount
word Value
word Name Length
char[*] Name
endloop Item
9F - Shop Offer
Sell window

byte ID (9F)
word Packet Size
dword Vendor Serial
byte Unknown
byte Number of Items
loop Item
dword Item Serial
word Item Amount
endloop Item
A0 - Britannia Select
Select a shard to play on
3 bytes

byte ID (A0)
word Server Index
A1 - HP Health
Adjust strength and Hit Points
9 bytes

byte ID (A1)
dword Serial
word Strength
word Hit Points
A2 - Mana Health
Update Intelligence and Mana
9 bytes

byte ID (A2)
dword Serial
word Intelligence
word Mana
A3 - Fat Health
Update Dexterity and Stamina
9 bytes

byte ID (A3)
dword Serial
word Dexterity
word Stamina
A4 - Hardware Info
Send system info to the server
0x95 bytes

byte ID (A4)
byte[0x94] Unknown
A5 - Web Browse
Launch a browser and to to URL

byte ID (A5)
word Packet Size
char[*] URL
A6 - Message
Show a scroll on the screen

byte ID (A6)
word Packet Size
byte Font
word 0
word Tip Number
word Text Length
char[*] Text
A7 - Req Tip
Get a tooltip
4 bytes

byte ID (A7)
word Tip
byte 0 = tip, 1 = notice
A8 - Britannia List
List the available shards

byte ID (A8)
word Packet Size
byte FFh
word Number of Servers
loop Server
word Server Index
char[32] Server Name
byte Percent Full
byte Timezone
dword Server IP
endloop Server
A9 - Cities and Chars
List of characters as well as starting cities

Flags:
0x8 = enable popups
0x4 = server limits number of characters per account, (flags>>4 = number of characters)


byte ID (A9)
word Packet Size
byte Number of Characters
loop Character
char[60] Character Name
endloop Character
byte Number of Cities
loop City
byte Index
char[31] City Name
char[31] Area of Town
endloop City
dword Flags (May not be present)
AA - Current Target
Current attack target
5 bytes

byte ID (AA)
dword Serial (0 = attack invalid)
AB - String Query
Text Entry

byte ID (AB)
word Packet Size
dword Serial
byte Parent ID
byte Buttom ID
word Text Length
char[*] Text
byte Style (0=none, 1=normal, 2=numerical)
dword Max Length
word Label Length
char[*] Label
AC - String Response
Text Entry Response

byte ID (AC)
word Packet Size
dword Serial
byte Type
byte Index
byte Mode (0=cancel,1=ok)
word Text Length
char[*] Text
AD - Speech Unicode
Speak in unicode
If Mode&0xc0 then there are keywords (from speech.mul) present.

Keywords:
The first 12 bits = the number of keywords present. The keywords are included right after this, each one is 12 bits also.
The keywords are padded to the closest byte. For example, if there are 2 keywords, it will take up 5 bytes. 12bits for the number, and 12 bits for each keyword. 12+12+12=36. Which will be padded 4 bits to 40 bits or 5 bytes.


byte ID (AD)
word Packet Length
byte Mode (0=say,2=emote,8=whisper,9=yell) *
word Text Color
word Font
char[4] Language
byte[*] Keywords (Only present if mode&0xc0)
char[*] Text
AE - Text Unicode
Someone is speaking in Unicode

byte ID (AE)
word Packet Size
dword Serial
word ID
byte Type
word Text Color
word Font
char[4] Language
char[30] Name
char[*] Text
AF - Death Anim
Death Anim
0x0D bytes

byte ID (AF)
dword Character Serial
dword Corpse Serial
dword 0
B0 - Generic Gump
Show Gump

byte ID (B0)
word Packet Size
dword Serial
dword Gump ID
dword 6Eh
dword 46h
word Layout Length
char[*] Layout
word Number of Lines
loop Line
word Line Length
word[*] Text
endloop Line
B1 - Gen Gump Trig
Generic Gump Choice

byte ID (B1)
word Packet Size
byte[*] Button Data
B2 - Chat Msg
Chat Message

byte ID (B2)
byte[2] Packet Size
byte[*] Unknown
B3 - Chat Text
Chat Text

byte ID (B3)
byte[2] Packet Size
byte[*] Unknown
B4 - Target Obj List
Target object list

byte ID (B4)
byte[2] Packet Size
byte[*] Unknown
B5 - Chat Open
Chat open
0x40 bytes

byte ID (B5)
byte[0x39] Unknown
B6 - Help Request
Show Popup Help
9 bytes

byte ID (B6)
dword Help Serial
byte Langauge Number
char[3] Language
B7 - Help Unicode Text
Display Popup help

byte ID (B7)
word Packet Size
dword Help Serial
word[*] Unicode Text
B8 - Char Profile
Profile

byte ID (B8)
word Packet Size
byte Mode
dword Serial
B9 - Features
Feature Enable
3 bytes

Bit 1 = Enable T2A Features (chat)
Bit 2 = Enable LBR Features (animations)


byte ID (B9)
word Enable
BA - Pointer
Display Quest Pointer
6 bytes

byte ID (BA)
byte Active
word X
word Y
BB - Acct ID
Account ID
9 bytes

byte ID (BB)
byte[8] Unknown
BC - Game Season
Season
3 bytes

byte ID (BC)
byte Season
byte Cursor
BD - Client Version
Send client version to the server

byte ID (BD)
word Packet Size
char[*] Version String
BE - Assist Version
Assist Version

byte ID (BE)
byte[2] Packet Size
byte[*] Unknown
BF - Generic Command
Miscellaneous Commands

byte ID (BF)
word Packet Size
word Command
BF.1 - Fast Walk
Cycle's through the keys in the stack when walking.

byte ID (BF)
word Packet Size
word Command (1)
dword[6] Key Stack
BF.13 - Unknown
Unknown packet
The client sends this packet just after it sends packet 09, for the same serial.

byte ID (BF)
word Size
word Command (13)
dword Serial
BF.18 - Enable Map Diffs
This packet is sent by the server to the client, telling the client to use the mapdif* and stadif* files to patch the map and statics.

Usually there are 3 maps in this packet, 0 = fellucca, 1 = trammel, and 2 = ilshenar.


byte ID (BF)
word Size
word Subcommand (18)
dword Number of Maps
loop[map]
dword Number of Map patches in this map
dword Number of Static patches in this map
endloop[map]
BF.2 - Add Walk Key
Add a key to the top of the Walk Stack

byte ID (BF)
word Packet Size
word Command (2)
dword Key
BF.6 - Party
Party system is BF Command 6

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command
BF.6.1 - Add Member
Add a member to the party

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command (1)
dword Serial (0 = target)
BF.6.2 - Remove Member
Remove a member from your party

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command (2)
dword Serial (0 = target)
BF.6.3 - Party Private Msg
Tell a party member a message

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command (3)
dword Serial
word[*] Unicode Message
BF.6.4 - Party Chat
Send a message to entire party. (Serial not present in Client Msg)

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command (4)
dword Serial of source
word[*] Unicode Text
BF.6.6 - Party Loot
Party can loot me

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command (6)
byte Can Loot
BF.6.8 - Accept
Accept a join invitation

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command (8)
dword Party Leader Serial
BF.6.9 - Decline
Decline join invitation

byte ID (BF)
word Packet Size
word Command (6)
byte Party Command (9)
dword Party Leader Serial
BF.8 - Cursor Hue
Set cursor hue

byte BF
word Packet Size
word Command (8)
byte Hue (0=felucca, 1= trammel, 2=ilshenar)
BF.B - Client Language
Set client language

byte ID (BF)
word Packet Size
word Command (B)
byte[3] Language
BF.C - Close Status
Close status gump

byte ID (BF)
word Packet Size
word Command (C)
dword Serial
C0 - Effect Hued FX
Hued effect
0x24 bytes

byte ID (C0)
byte[0x23] Unknown
C1 - Text ID
Display a cliloc message
Type:
 6 = lower left
 7 = on player

byte ID (C1)
word Packet Size
dword Serial
word Body
byte Type
word Hue
word Font
word 7
word Message Number
char[32] Name
C2 - Text Entry Unicode
Unicode text entry

byte ID (C2)
byte[2] Packet Size
byte[*] Unknown
C3 - GQ Request
GQ Request

byte ID (C3)
byte[2] Packet Size
byte[*] Unknown
C4 - Semi Visible
Semivisible
6 bytes

byte ID (C4)
byte[5] Unknown
C5 - Invalid Map
Invalid map
0xCB bytes

byte ID (C5)
byte[0xCA] Unknown
C6 - Invalid Map Enable
Enable invalid map
1 byte

byte ID (C6)
C7 - Particle Effect
Particle Effect
0x31 bytes Effect ID and Explode Effect ID correspond directly to the pbg files in the Particles directory.

byte ID (C7)
byte Type (00 = moving effect, 02 = item effect, 03 = static effect)
dword Serial
dword Serial 2
word Tile ID
word X
word Y
byte Z
word X 2
word Y 2
byte Z 2
word Unknown Effect data
word 0
byte Adjust
byte Explode
dword 0
dword 0
word Effect ID
word Explode Effect ID
word Unknown Effect Data
dword 0
byte Layer (0-4, 0xff for moving)
byte Unknown Effect Data
byte 0
C8 - Update Range Change
Update range change
2 bytes

This packet says how far away the client wants to see.. that allows slower modems to not get items and MOBs that are over a certain distance away.


byte ID (C8)
byte Distance
C9 - Trip Time
Trip time
6 bytes

byte ID (C9)
byte[5] Unknown
CA - UTrip time
Utrip time
6 bytes

byte ID (CA)
byte[5] Unknown
CB - GQ Count
GQ Count
7 bytes

byte ID (CB)
byte[6] Unknown
CC - Text ID Plus String
Text ID and String

byte ID (CC)
word Packet Size
byte[*] Unknown
D1 - Logout Status
Logout Status
2 bytes

byte ID (D1)
byte 1
F0 - Custom Client Packet
Custom Client Packet

byte ID (F0)
word len
byte subcommand
byte[len-4] data