# Classified Messages

## Directory

0024 - Destroy Object
0037 - Local Chat
0043 - Set Character Flag
0057 - Equip
005E - Attack
0197 - Adjust Stack Size
019E - Player Kill
01B5 - Broadcast Text
01E0 - Indirect Text
01E2 - Emote Text
022D - Unknown Object Action 1
0229 - Unknown Object Action 2
0237 - Update Statistic
023B - Update Last Attacker
023D - Update Last Corpse Location
023E - Skill Experience
0241 - Update Attribute
0243 - Update Secondary Attribute
0244 - Vital Statistic Update
F619 - Lifestone Materialize
F625 - Change Model
F62C - Server Text
F653 - End 3D Mode
F658 - Character List
F659 - Login Failure - Character still in world.
F65A - Message of the Day
F745 - Create Object
F746 - Login Character
F747 - Remove Item
F748 - Set Position and Motion
F749 - Wield Object
F74A - Move object into inventory.
F74B - Toggle Portal Animation
F74C - Animation
F74E - Jumping
F750 - Apply Sound Effect
F751 - Enter Portal Mode
F755 - Apply Visual/Sound Effect
F7B0 - Game Event
0x0013 - Login Character
0x0016 - Transaction Message
0x001C - Action Failure
0x0020 - Allegiance Info
0x0022 - Insert Inventory Item
0x0023 - Wear Item
0x0038 - Direct Chat
0x004C - Add Spell to Spellbook / Cast Spell
0x004D - Delete Spell from Spellbook
0x004E - Add Enchantment
0x004F - Remove Enchantment
0x0062 - Approach Vendor
0x009C - End Portal Storm
0x009D - Mild Portal Storm
0x009E - Heavy Portal Storm
0x009F - Portal Stormed
0x00A0 - Failure to Give Item
0x00A7 - Quit Fellowship
0x00AF - Create Fellowship
0x00B0 - Recruit Member
0x00B1 - Dismiss Member
0x00B3 - Disband Fellowship
0x00B4 - Read Table of Contents
0x00B8 - Read Page
0x00C9 - Identify Object
0x014A - Group Chat
0x0196 - Set Pack Contents
0x019A - Drop from Inventory
0x01A4 - Remove Enchantment (Silent)
0x01A6 - Remove Multiple Enchantments
0x01A7 - Attack Completed
0x01AD - Kill/Death Message
0x01AC - Your death.
0x01AE - Add Multiple Enchantments List
0x01B1 - Inflict Melee Damage
0x01B2 - Receive Melee Damage
0x01B3 - Other Melee Evade
0x01B4 - Self Melee Evade
0x01B8 - Start Melee Attack
0x01C0 - Update Health
0x01C3 - Age Command Result
0x01C7 - Read. Previous action complete
0x01F4 - Squelched Users List
0x01FD - Enter Trade
0x01FF - End Trade
0x0200 - Add Trade Item
0x0202 - Accept Trade
0x0205 - Reset Trade
0x0207 - Failure to trade an item
0x0264 - Updates the mana bar on the selected item.
0xF643 - Create Character
0xF655 - Delete Character
F7C7 - Start 3D Mode
FF33 - Exit portal mode.

## Messages

0024 - Destroy Object
Sent every time an object you are aware of ceases to exist. Merely running out of range does not generate this message - in that case, the client just automatically stops tracking it after receiving no updates for a while (which I presume is a very short while).

Object destroyed | The object that ceases to exist. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0037 - Local Chat
Contains a message, type, person's name and source person ID. If this is local chat or spellcasting, the radar filtering is done on the client (so actually hear talking within 2 landblocks).

String text | The message text. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String senderName | Character name of the speaker. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
Object sender | Character ID of the speaker. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

LocalChat type

Type of text.
LocalChat (DWORD)
The chat type is indetified by a number. This only appears to control color.

0x02 | Local Chat
0x11 | Spellcasting

0043 - Set Character Flag
Set a flag for a character

Object character | The character getting it's flags changed (including yourself). Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

FlagType flag

The getting changed, this may be a mask into an actual mask somewhere.
FlagType (DWORD)
The type of a flag

0x04 | PK

DWORD Set | 1 to set the flag, 0 to clear the flag.

0057 - Equip
An item was equipped

Object item | Source item Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

EquipAction method

Method used
EquipAction (DWORD)
The action for equipping an item.

0x02 | Unequips
0x03 | Equips
0x11 | Gets spell from.

Object equipper | Receiver of the equipment Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

005E - Attack
A player has attacked a monster (or player).

Object target | Object ID of the monster (or player) being attacked. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown | unknown - 0x00000019
Object attacker | Object ID of the attacking player. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0197 - Adjust Stack Size
For stackable items, this changes the number of items in the stack.

BYTE sequence | Seems to be a sequence number of some sort
Object item | Item getting it's stack adjusted. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD count | New number of items in the stack.
DWORD value | New value for the item.

019E - Player Kill
A Player Kill occurred nearby (also sent for suicides). This could be interesting to monitor for tournements.

String text | The death message (is blank for suicides causing a blank line on your scrolling window). String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
Object killee | The ID of the departed. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
Object killer | The ID of the character doing the killing. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

01B5 - Broadcast Text
Used for leather crafter and collector advertisements.

String message | The text for display. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String senderName | Name of the speaker. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
Object sender | Character ID of the sender - used for squelch and radar filtering. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
float unknown1 | Unknown - Usually 20.0.

Color color

Color the client uses for displaying the text.
Color (DWORD)
These values choose a color.

0x00 | Green
0x04 | Dark Yellow
0x06 | Red
0x07 | Light Blue
0x0C | Dim White
0x0D | Cyan

01E0 - Indirect Text
Indirect '/e' text.

Object sender | The ID of the character performing the emote - used for squelch/radar filtering. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
String senderName | Name of the character performing the emote. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String text | Text representation of the emote. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

01E2 - Emote Text
Contains the text associated with an emote action.

Object sender | The ID of the character performing the emote - used for squelch/radar filtering. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
String senderName | Name of the character performing the emote. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String text | Text representation of the emote. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

022D - Unknown Object Action 1
Researching. Object action. Seen when equipping and unequipping items as well as when an item is dropped/given/received

BYTE sequence | Seems to be a sequence number of some sort
Object object | The ID of the object this message refers to. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown | Unknown value.
Object container | The ID of the container this item is being placed into. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown2 | Unknown value.

0229 - Unknown Object Action 2
Researching. Object action. Seen when equipping and unequipping items

BYTE sequence | Seems to be a sequence number of some sort
Object object | The ID of the object this message refers to. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown | Unknown value.

Coverage coverage

If this item can be worn or wielded, the mask of slots it occupies.
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0237 - Update Statistic
Record a stat changing

BYTE sequence | Seems to be a sequence number of some sort

Statistic statistic

Statistic being set.
Statistic (DWORD)
Select an experience category from the following table.

0x05 | Total Burden
0x14 | Total Pyreal
0x15 | Total Experience
0x16 | Unassigned Experience
0x18 | Unassigned Skill Points
0x19 | Level
0x1e | Rank

DWORD value | Replacement value.

023B - Update Last Attacker
Sent whenever the last attacker changes

BYTE sequence | Seems to be a sequence number of some sort
DWORD unknown | An unknown value (0x000000B0 in testing).
Object objectID | Previous attackers ObjectID Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown2 | An unknown value

023D - Update Last Corpse Location
Sent whenever you leave a corpse (wasn't tested in a dungeon).

DWORD unknown | Unknown - 0x0000000E

Location location

Location of the (outdoor) corpse you just left.
Location
Structure that defines an absolute location in the world

DWORD landblock | Your landblock as per /loc.
X, Y, Z - When outside: the The position within the landblock measure from the south-west corner. Each landblock is 192.0x192.0 units. The Z-axis measures height. When inside: the offset from the current building block. The actual position can be calculated by adding this location to the offset of the building within the landblock.
float xOffset | The x-offset from the west edge of the landblock.
float yOffset | The y-offset from the south edge of the landblock.
float zOffset | The z-height from virtual sea-level.
Heading - This is a heading quaternion - or a 4-dimension absolute heading (experimental)
float xHeading | Experimental.
float yHeading | Experimental.
float zHeading | Experimental.
float wHeading | Experimental.

023E - Skill Experience
Experience directly applied to your skill

Skill skill

Your skill that's receiving XP
Skill (WORD)
Skill are identified by numbers

0x01 | Axe
0x02 | Bow
0x03 | Crossbow
0x04 | Dagger
0x05 | Mace
0x06 | Melee Defense
0x07 | Missile Defense
0x09 | Spear
0x0A | Staff
0x0B | Sword
0x0C | Thrown Weapons
0x0D | Unarmed Combat
0x0E | Arcane Lore
0x0F | Magic Defense
0x10 | Mana Conversion
0x12 | Appraise Item
0x13 | Assess Person
0x14 | Deception
0x15 | Healing
0x16 | Jump
0x17 | Lockpick
0x18 | Run
0x1B | Assess Creature
0x1C | Appraise Weapon
0x1D | Appraise Armor
0x1E | Appraise Magic Item
0x1F | Creature Enchantment
0x20 | Item Enchantment
0x21 | Life Magic
0x22 | War Magic
0x23 | Leadership
0x24 | Loyalty
0x25 | Fletching
0x26 | Alchemy
0x27 | Cooking

BYTE unknown | Unknown filler. Always 0 for me.
BYTE sequence | Seems to be a sequence number of some sort
DWORD skillOffset | The offset from the attribute base.

TrainingType skillTrained

Skill disposition
TrainingType (DWORD)
The training level for a skill.

0x01 | Unusable/Untrained
0x02 | Trained
0x03 | Specialized

DWORD appliedXP | experience applied towards this skill so far
DWORD freeXP | experience given during character creation
DWORD difficulty | probably used in the xp timer calculation

0241 - Update Attribute
Sent every time you upgrade one of the 6 primary attributes.

AttributeID Attribute

Atribute being set.
AttributeID (WORD)
Attributes are identified by numbers

0x01 | Strength
0x02 | Endurance
0x03 | Quickness
0x04 | Coordination
0x05 | Focus
0x06 | Self

BYTE SpaceHolder | Space holder for byte alignment.
BYTE sequence | Sequence number.
DWORD NewValue | What this Attribute's value is now
DWORD StartingValue | What this Attribute's value was on creation.
DWORD TotalAppliedXP | How much XP has been applied directly to this attribute.

0243 - Update Secondary Attribute
Sent every time you upgrade one of the 3 secondary attributes.

SecondaryAttribID Attribute

Attribute being set.
SecondaryAttribID (WORD)
Secondary Attributes are identified by numbers

0x01 | Health
0x03 | Stamina
0x05 | Mana

BYTE SpaceHolder | Space holder for byte alignment.
BYTE sequence | Sequence number.
DWORD PointsAdded | Number of total points added to this attribute.
DWORD Unknown | Not enough data yet.
DWORD TotalAppliedXP | How much XP has been applied directly to this attribute.
DWORD NewValue | The new value of this attribute.

0244 - Vital Statistic Update
Sent whenever the current value of a vital statistic changes

BYTE sequence | Seems to be a sequence number of some sort

VitalStat vital

The Vital Statistic being updated.
VitalStat (DWORD)
The vital statistic to update, selected from the list.

0x02 | Current Health
0x04 | Current Stamina
0x06 | Current Mana

DWORD value | The new value.
DWORD unknown | An unknown value

F619 - Lifestone Materialize
Sent when a character rematerializes at the lifestone after death.

Object objectID | ObjectID of the character doing the animation Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown | Unknown - 0x00000034

Location location

Location at which the character is materializing.
Location
Structure that defines an absolute location in the world

DWORD landblock | Your landblock as per /loc.
X, Y, Z - When outside: the The position within the landblock measure from the south-west corner. Each landblock is 192.0x192.0 units. The Z-axis measures height. When inside: the offset from the current building block. The actual position can be calculated by adding this location to the offset of the building within the landblock.
float xOffset | The x-offset from the west edge of the landblock.
float yOffset | The y-offset from the south edge of the landblock.
float zOffset | The z-height from virtual sea-level.
Heading - This is a heading quaternion - or a 4-dimension absolute heading (experimental)
float xHeading | Experimental.
float yHeading | Experimental.
float zHeading | Experimental.
float wHeading | Experimental.

DWORD unknown2 | Unknown
DWORD unknown3 | Unknown
DWORD unknown4 | Unknown
DWORD unknown5 | Unknown

F625 - Change Model
Sent whenever a character changes their clothes. It contains the entire description of what their wearing (and possibly their facial features as well). This message is only sent for changes, when the character is first created, the body of this message is included inside the creation message.

Object dresser | The ID of character changing their clothing. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
BYTE eleven | The number eleven
BYTE paletteCount | The number of palettes associated with this object
BYTE textureCount | The number of textures associated with this object
BYTE modelCount | The number of models associated with this object

palettes: vector of length paletteCount

WORD newPalette | The Portal.dat ID of the palette we are drawing entries from.
BYTE offset | The offset into both palettes for copying entries.
BYTE length | The number of entries to copy.

Choose valid sections by masking against paletteCount

0xFF

WORD unknown1 | unknown

textures: vector of length textureCount

BYTE modelIndex | The index of the model we are replacing the texture in.
WORD oldTexture | The ID of the texture to replace.
WORD newTexture | The ID of the new texture.

models: vector of length modelCount

BYTE modelIndex | The index of the model to replace.
WORD newModel | The portal.dat ID of the new type 1 model.

WORD modelSequenceType | Unknown stream number. Used to sequence model changes on an object.
WORD modelSequence | Increments for every model change.

F62C - Server Text
Contains the text and then a number for the type (which I would expect just translates to a color).

String text | The message for display. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

Color color

The color for displaying th message.
Color (DWORD)
These values choose a color.

0x00 | Green
0x04 | Dark Yellow
0x06 | Red
0x07 | Light Blue
0x0C | Dim White
0x0D | Cyan

F653 - End 3D Mode
Instructs the client to return to 2D mode - the character list.

F658 - Character List
What follows is your list of characters, their IDs and what I guess is deletion status. This is sent during login.

DWORD unknown1 | Unknown - Always 0
DWORD characterCount | Number of characters in the list. On the login screen, these characters are sorted in alphabetical order. The order in the message is not sorted in any particular way.

characters: vector of length characterCount

Object character | The character ID for this entry. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
String name | The name of this character. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
DWORD deleteTimeout | When 0, this character is not being deleted (not shown crossed out). Otherwise, it's a countdown timer in the number of seconds until the character is submitted for deletion.

DWORD reserved | The number of slots reserved by not yet deleted characters.
DWORD slotCount | The total count of character slots.

F659 - Login Failure - Character still in world.
Failure to log in due to the server still registering your character in the world.

F65A - Message of the Day
The message of the day during logon. There are 2 strings, one for the number of clients connected, the second is the message of the day.

String connections | The number of connections: 'Currently xxx clients connected. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String message | The remaining message of the day text. As far as I can tell, the 2 strings are concatenanted (with a line break) and thrown into the text box on the login screen. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

F745 - Create Object
Create an object somewhere in the world

Object object | Object's GUID Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
BYTE eleven | The number eleven
BYTE paletteCount | The number of palettes associated with this object
BYTE textureCount | The number of textures associated with this object
BYTE modelCount | The number of models associated with this object

palettes: vector of length paletteCount

WORD newPalette | The Portal.dat ID of the palette we are drawing entries from.
BYTE offset | The offset into both palettes for copying entries.
BYTE length | The number of entries to copy.

Choose valid sections by masking against paletteCount

0xFF

WORD unknown1 | unknown

textures: vector of length textureCount

BYTE modelIndex | The index of the model we are replacing the texture in.
WORD oldTexture | The ID of the texture to replace.
WORD newTexture | The ID of the new texture.

models: vector of length modelCount

BYTE modelIndex | The index of the model to replace.
WORD newModel | The portal.dat ID of the new type 1 model.

DWORD flags1 | First flag values
DWORD unknown2 | Unknown value

Choose valid sections by masking against flags1

0x00010000

DWORD unknownCount | Count of unknown bytes following this field

unknowns: vector of length unknownCount

BYTE unknownByte | unknown

DWORD unknownDword | unknown

0x00020000

DWORD unknown | unknown

0x00008000

Location location

Object location and heading.
Location
Structure that defines an absolute location in the world

DWORD landblock | Your landblock as per /loc.
X, Y, Z - When outside: the The position within the landblock measure from the south-west corner. Each landblock is 192.0x192.0 units. The Z-axis measures height. When inside: the offset from the current building block. The actual position can be calculated by adding this location to the offset of the building within the landblock.
float xOffset | The x-offset from the west edge of the landblock.
float yOffset | The y-offset from the south edge of the landblock.
float zOffset | The z-height from virtual sea-level.
Heading - This is a heading quaternion - or a 4-dimension absolute heading (experimental)
float xHeading | Experimental.
float yHeading | Experimental.
float zHeading | Experimental.
float wHeading | Experimental.

0x00000002

DWORD unknown_grey | unknown grey

0x00000800

DWORD unknown_yellow | unknown yellow

0x00001000

DWORD unknown_blue | unknown blue

0x00000001

DWORD unknown_skyblue | unknown skyblue

0x00000020

Object wielder | The character wielding this object. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

WieldingSlot wieldingSlot

The location of this weapon.
WieldingSlot (DWORD)
The slot a weapon of shield is wielded.

0x01 | Weapon
0x02 | Missile Weapon
0x03 | Shield

0x00000040

DWORD count_purple | Count for purple

purples: vector of length count_purple

DWORD unknown_purple1 | Unknown purple 1
DWORD unknown_purple2 | Unknown purple 2

0x00000080

float unknown_green | Unknown green

0x00000100

DWORD unknown_darkbrown | unknown darkbrown

0x00000200

DWORD unknown_brightpurple | unknown bright purple

0x00040000

DWORD unknown_lightgrey | lightgrey

0x00000004

DWORD unknown_trio1_1 | Unknown trio 1 1
DWORD unknown_trio1_2 | Unknown trio 1 2
DWORD unknown_trio1_3 | Unknown trio 1 3

0x00000008

DWORD unknown_trio2_1 | Unknown trio 2 1
DWORD unknown_trio2_2 | Unknown trio 2 2
DWORD unknown_trio2_3 | Unknown trio 2 3

0x00000010

DWORD unknown_trio3_1 | Unknown trio 3 1
DWORD unknown_trio3_2 | Unknown trio 3 2
DWORD unknown_trio3_3 | Unknown trio 3 3

0x00002000

DWORD unknown_medgrey | unknown medgrey

0x00004000

DWORD unknown_bluegrey | unknown bluegrey

WORD unknown_seagreen1 | unknown_seagreen1
WORD unknown_seagreen2 | unknown_seagreen2
WORD unknown_seagreen3 | unknown_seagreen3
WORD unknown_seagreen4 | unknown_seagreen4
WORD unknown_seagreen5 | unknown_seagreen5
WORD unknown_seagreen6 | unknown_seagreen6
WORD unknown_seagreen7 | unknown_seagreen7
WORD unknown_seagreen8 | unknown_seagreen8
DWORD unknown3 | unknown3
DWORD flags2 | Flags 2
String objectName | Name of this object String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
WORD model | ID of the model for this object
WORD icon | ID of the icon for this object.

ObjectFlags1 unknown_v0_2

unknown v0 2
ObjectFlags1 (DWORD)
Part one of an object's flags

0x00000001 | Melee Weapons
0x00000002 | Armor
0x00000004 | Clothing
0x00000008 | Jewelry
0x00000010 | Monster
0x00000020 | Food
0x00000040 | Pyreal
0x00000080 | Miscellaneous
0x00000100 | Missile Weapons
0x00000200 | Containers
0x00000400 | unknown - fletching
0x00000800 | Gems
0x00001000 | Spell Components
0x00002000 | Writable
0x00004000 | Keys
0x00008000 | unknown
0x00010000 | Portal
0x00020000 | Lockable
0x00040000 | Trade Notes
0x00080000 | Mana Stones
0x00100000 | Services
0x00200000 | Plants
0x00400000 | Base Cooking Item
0x00800000 | Base Alchemy Item
0x01000000 | Base Fletching Item
0x02000000 | Crafted Cooking Item
0x04000000 | Crafted Alchemy Item
0x08000000 | Crafted Fletching Item
0xF0000000 | unknown

ObjectFlags2 unknown_v0_3

unknown v0 3
ObjectFlags2 (DWORD)
Flags related to the use of the item.

0x00000001 | container
0x00000002 | can be inscribed
0x00000004 | cannot be picked up
0x00000008 | player
0x00000010 | unknown - can be selected
0x00000020 | unknown
0x00000040 | unknown
0x00000080 | unknown - cannot be selected
0x00000100 | readable
0x00000200 | vendor
0x00000400 | unknown
0x00000800 | unknown
0x00001000 | door
0x00002000 | corpse
0x00004000 | lifestone
0x00008000 | food
0x00010000 | healing kit
0x00020000 | lockpick
0x00040000 | portal
0xFFF80000 | unknown

Choose valid sections by masking against flags2

0x00000001

String secondaryName | Secondary name of this object String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00000002

BYTE itemSlots | Number of item slots in this container, -1 if you can't tell.

0x00000004

BYTE packSlots | Number of pack slots in this container, -1 if you can't tell. (Pack slot meaning a slot which can hold a pack).

0x00000008

DWORD value | Value of the object or stack of objects.

0x00000010

DWORD unknown_v2 | The total value of the item or stack of items.

0x00000020

DWORD unknown_v3 | unknown v2

0x00080000

DWORD unknown_v5 | unknown v5

0x00000080

DWORD unknown_v4 | unknown v4

0x00000100

BYTE unknown_b1 | unknown byte 1

0x00000200

EquipmentType equipmentType

If this item can be equiped, what slot.
EquipmentType (BYTE)
The slot used by this equipment.

0x01 | Melee Weapon
0x02 | Missile Weapon
0x03 | Arrows
0x04 | Sheild

0x00000400

WORD usesLeft | The number of uses remaining in this item (for picks, keys, healing kits, etc)

0x00000800

WORD totalUses | The total uses that this item had.

0x00001000

WORD stackCount | The number of items in this stack of objects (for spell components, pyreals, etc)

0x00002000

WORD stackMax | The total number of this type of object which can stack.

0x00004000

Object container | The GUID of the object which contains this one. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x00008000

Object owner | The GUID of the object which is equipping this one (such as a player). Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x00010000

Coverage coverage1

Still more coverage information
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0x00020000

Coverage coverage2

If this item can be worn or wielded, the mask of slots it occupies.
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0x00040000

Coverage coverage3

Coverage information for armor and clothing.
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0x00100000

BYTE unknown5 | unknown5

0x00800000

DWORD unknown_v6 | unknown v6

0x01000000

DWORD unknown6 | unknown6

0x00200000

DWORD tradenoteVendor | For trade notes, this is the ID of the vendor who sold the note.

0x00400000

DWORD associatedSpell | The spell effect of this item (for wells, the spell cast. For scrolls, the spell learned. For wands, ???.

0x02000000

DWORD unknown7 | unknown7

0x04000000

DWORD unknown8 | THIS IS INCORRECT - there's a bunch of stuff here but I'm tired

0x08000000

WORD unknown9 | unknown8

0x10000000

WORD unknown10 | unknown9

0x20000000

DWORD unknown11 | unknown10

F746 - Login Character

Object character | Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

F747 - Remove Item
Sent whenever an object is removed from the scene.

Object object | The character or monster who was recently erased. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown | Unknown - Always 0

F748 - Set Position and Motion
Set position - the server pathologically sends these after every actions - sometimes more than once. If has options for setting a fixed velocity or an arc for thrown weapons and arrows.

Object object | The object with the position changing. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD flags | I had guessed this was flags that determined the rest of the message beyond the quaternion.

Location position

The current or starting location.
Location
Structure that defines an absolute location in the world

DWORD landblock | Your landblock as per /loc.
X, Y, Z - When outside: the The position within the landblock measure from the south-west corner. Each landblock is 192.0x192.0 units. The Z-axis measures height. When inside: the offset from the current building block. The actual position can be calculated by adding this location to the offset of the building within the landblock.
float xOffset | The x-offset from the west edge of the landblock.
float yOffset | The y-offset from the south edge of the landblock.
float zOffset | The z-height from virtual sea-level.
Heading - This is a heading quaternion - or a 4-dimension absolute heading (experimental)
float xHeading | Experimental.
float yHeading | Experimental.
float zHeading | Experimental.
float wHeading | Experimental.

F749 - Wield Object
Multipurpose message. So far object wielding has been decoded. Lots of unknowns

Object owner | Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
Object object | Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown1 |
DWORD unknown2 |
DWORD unknown3 |
DWORD unknown4 |

F74A - Move object into inventory.

Object object | Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

F74B - Toggle Portal Animation
Signals your client to end the portal animation for you or another char

Object character | The character exiting portal animation. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
WORD portalType | Type of portal user is exiting. For begin it's 0x4410, for end it's 0x0408
WORD unknown_1 | Unknown word - Always 0x64
WORD totalLogins | Total times this user has logged in AC
WORD loginPortals | Number of portals user has entered during this login

F74C - Animation
These are animations. Whenever a human, monster or object moves - one of these little messages is sent. Even idle emotes (like head scratching and nodding) are sent in this manner.

Object character | ID of the character moving Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
WORD unknown1 | unknown
WORD sequence | Number of character animations this login
DWORD number1 | another animation counter?
WORD unknown2 | unknown

Animation animation

Stance or animation.
Animation (WORD)
The animation or stance for a character or monster.

0x3C | Combat
0x3D | Standing
0x49 | Spellcasting

F74E - Jumping
An object has jumped

Object source | ID of the object jumping Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown_1 | Always zero
DWORD direction_1 | Direction you are jumping. Zero for stationary jump
DWORD height | How high the object jumped
DWORD unknown_3 | Always zero
DWORD unknown_4 | Always zero
DWORD unknown_5 | Always zero
WORD totalLogins | Number of times you've logged into AC
WORD jumpNumber | Number of times you've jumped since logging into AC

F750 - Apply Sound Effect
Applies a sound effect.

Object source | ID of the object from which the effect originates. Can be you, another char/npc or an item. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

Effect effect

The particle effect ID.
Effect (DWORD)
Audio/Visual Effect ID

0x04 | War Launch
0x05 | War Land
0x0A | Yellow Bubbles Rising
0x0E | Light Blue Bubbles Rising
0x10 | Purple Bubbles Rising
0x1A | Light Blue Fuzzies
0x21 | Blue Stars Outward
0x22 | Yellow Stars Inward
0x24 | Red Star Rotation
0x26 | Blue Star Rotation
0x28 | Yellow Star Rotation
0x4B | Yellow Stars Outward/Blue Starts Inward
0x50 | Spell Fizzle
0x58 | Item Dissolve
0x73 | Portal Bubbles
0x76 | Increase Skill/Attribute
0x77 | Equip Item
0x78 | Unequip Item
0x7A | Pick Up Item
0x7B | Drop Item
0x81 | Spell Expire

float parameter | Some sort of parameter to the effect, possibly speed or color.

F751 - Enter Portal Mode
Instructs the client to show the portal graphic.

F755 - Apply Visual/Sound Effect
Applies an effect with visual and sound.

Object source | ID of the object from which the effect originates. Can be you, another char/npc or an item. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

Effect effect

The particle effect ID.
Effect (DWORD)
Audio/Visual Effect ID

0x04 | War Launch
0x05 | War Land
0x0A | Yellow Bubbles Rising
0x0E | Light Blue Bubbles Rising
0x10 | Purple Bubbles Rising
0x1A | Light Blue Fuzzies
0x21 | Blue Stars Outward
0x22 | Yellow Stars Inward
0x24 | Red Star Rotation
0x26 | Blue Star Rotation
0x28 | Yellow Star Rotation
0x4B | Yellow Stars Outward/Blue Starts Inward
0x50 | Spell Fizzle
0x58 | Item Dissolve
0x73 | Portal Bubbles
0x76 | Increase Skill/Attribute
0x77 | Equip Item
0x78 | Unequip Item
0x7A | Pick Up Item
0x7B | Drop Item
0x81 | Spell Expire

float parameter | Some sort of parameter to the effect, possibly speed or color.

F7B0 - Game Event
This is a varied message. You get them for inventory, attribute change (both the experience changes and the level changes), received tells (tell, patron, vassal and monarch chat - but not the reflections) and for inspections.

Object character | ID of the character receiving the message, should be you. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD sequence | The global sequence number for this event, I think it's tied to the character ID, so it's not necessarily linear if you missed some of the intermediate events.

GameEvent event

The ID for the actual message the client is responding to.
GameEvent (DWORD)
The game event type defines the fields for the rest of the message

0x0013 | Login Character
0x0016 | Transaction Message
0x001C | Action Failure
0x0020 | Allegiance Info
0x0022 | Insert Inventory Item
0x0023 | Wear Item
0x0038 | Direct Chat
0x004C | Add Spell to Spellbook / Cast Spell
0x004D | Delete Spell from Spellbook
0x004E | Add Enchantment
0x004F | Remove Enchantment
0x0062 | Approach Vendor
0x009C | End Portal Storm
0x009D | Mild Portal Storm
0x009E | Heavy Portal Storm
0x009F | Portal Stormed
0x00A0 | Failure to Give Item
0x00A7 | Quit Fellowship
0x00AF | Create Fellowship
0x00B0 | Recruit Member
0x00B1 | Dismiss Member
0x00B3 | Disband Fellowship
0x00B4 | Read Table of Contents
0x00B8 | Read Page
0x00C9 | Identify Object
0x014A | Group Chat
0x0196 | Set Pack Contents
0x019A | Drop from Inventory
0x01A4 | Remove Enchantment (Silent)
0x01A6 | Remove Multiple Enchantments
0x01A7 | Attack Completed
0x01AC | Your death.
0x01AD | Kill/Death Message
0x01AE | Add Multiple Enchantments List
0x01B1 | Inflict Melee Damage
0x01B2 | Receive Melee Damage
0x01B3 | Other Melee Evade
0x01B4 | Self Melee Evade
0x01B8 | Start Melee Attack
0x01C0 | Update Health
0x01C3 | Age Command Result
0x01C7 | Read. Previous action complete
0x01CA | Unknown - While Idling
0x01CB | Unknown
0x01EA | Unknown
0x01F4 | Squelched Users List
0x01FD | Enter Trade
0x01FF | End Trade
0x0200 | Add Trade Item
0x0202 | Accept Trade
0x0205 | Reset Trade
0x0207 | Failure to trade an item
0x0264 | Updates the mana bar on the selected item.
0xF643 | Create Character
0xF655 | Delete Character

Choose the section from the value of event
0x0013 - Login Character
Sent right after you choose login, it contains the bulk of you stats, appearance and inventory.

DWORD loginMask1 | This mask determines values for the rest of the message
DWORD unknown1 | Unknown - always 0x0A
WORD countStats | Count of entries in the next section
WORD unknownStats | Probably indicates what type of data is in this section

stats: vector of length countStats

Statistic key

What the next value represents. 0x15=totalExp, 0x16=unassignedExp, 0x19=level, 0x1E=rank
Statistic (DWORD)
Select an experience category from the following table.

0x05 | Total Burden
0x14 | Total Pyreal
0x15 | Total Experience
0x16 | Unassigned Experience
0x18 | Unassigned Skill Points
0x19 | Level
0x1e | Rank

DWORD value | The value

WORD count2 | Count of entries in the next section
WORD unknown2 | Probably indicates what type of data is in this section

section2: vector of length count2

DWORD key | What the next value represents
DWORD value | The value

WORD countStrings | Count of string entries in the next section
WORD unknownStrings | Probably indicates what type of data is in this section

strings: vector of length countStrings

CharacterString key

What the next string represents. 1=name, 3=gender, 4=race, 5=class
CharacterString (DWORD)
Type of string describing the character.

0x01 | Character Name
0x03 | Gender
0x04 | Race
0x05 | Class

String string | String data. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

WORD count4 | Count of entries in the next section
WORD unknown4 | Probably indicates what type of data is in this section

section4: vector of length count4

DWORD key | What the next value represents
DWORD value | The value

Choose valid sections by masking against loginMask1

0x0040

WORD count5 | Count of entries in the next section
WORD unknown5 | Probably indicates what type of data is in this section

section5: vector of length count5

DWORD key | What the next value represents. 18=monarch, 19=patron
DWORD value | The value

0x0020

WORD countCorpse | Count of entries in the next section
WORD unknownCorpse | Probably indicates what type of data is in this section

corpses: vector of length countCorpse

DWORD corpse_14 | unknown field - 0x0000000E

Location lastCorpse

the Location of your last outdoor corpse
Location
Structure that defines an absolute location in the world

DWORD landblock | Your landblock as per /loc.
X, Y, Z - When outside: the The position within the landblock measure from the south-west corner. Each landblock is 192.0x192.0 units. The Z-axis measures height. When inside: the offset from the current building block. The actual position can be calculated by adding this location to the offset of the building within the landblock.
float xOffset | The x-offset from the west edge of the landblock.
float yOffset | The y-offset from the south edge of the landblock.
float zOffset | The z-height from virtual sea-level.
Heading - This is a heading quaternion - or a 4-dimension absolute heading (experimental)
float xHeading | Experimental.
float yHeading | Experimental.
float zHeading | Experimental.
float wHeading | Experimental.

DWORD loginMask2 | Determines values for spell related info.
DWORD unknown14 | Unknown - always 1.
DWORD attributeMask | The attributes included in the character description - this is always 0x1FF
DWORD currentStrength | Strength.
DWORD initialStrength | Strength at character creation.
DWORD expStrength | Total exp invested in Strength.
DWORD currentEndurance | Endurance.
DWORD initialEndurance | Endurance at character creation.
DWORD expEndurance | Total exp invested in Endurance.
DWORD currentQuickness | Quickness.
DWORD initialQuickness | Quickness at character creation.
DWORD expQuickness | Total exp invested in Quickness.
DWORD currentCoordination | Coordination.
DWORD initialCoordination | Coordination at character creation.
DWORD expCoordination | Total exp invested in Coordination.
DWORD currentFocus | Focus.
DWORD initialFocus | Focus at character creation.
DWORD expFocus | Total exp invested in Focus.
DWORD currentSelf | Self.
DWORD initialSelf | Self at character creation.
DWORD expSelf | Total exp invested in Self.
DWORD incHealth | Health added to base.
DWORD unknownHealth | Unknown Health related value - always 0.
DWORD expHealth | Total experience invested in Health.
DWORD currentHealth | Current Health.
DWORD incStamina | Stamina added to base.
DWORD unknownStamina | Unknown Stamina related value - always 0.
DWORD expStamina | Total experience invested in Health.
DWORD currentStamina | Current Stamina.
DWORD incMana | Mana added to base.
DWORD unknownMana | Unknown Mana related value - always 0.
DWORD expMana | Total experience invested in Mana.
DWORD currentMana | Current Mana.
WORD skillCount | The number of skill records, always 0x23
WORD skillUnknown | Unknown - always 0x020

skills: vector of length skillCount

Skill skill

The skill we are setting values for.
Skill (WORD)
Skill are identified by numbers

0x01 | Axe
0x02 | Bow
0x03 | Crossbow
0x04 | Dagger
0x05 | Mace
0x06 | Melee Defense
0x07 | Missile Defense
0x09 | Spear
0x0A | Staff
0x0B | Sword
0x0C | Thrown Weapons
0x0D | Unarmed Combat
0x0E | Arcane Lore
0x0F | Magic Defense
0x10 | Mana Conversion
0x12 | Appraise Item
0x13 | Assess Person
0x14 | Deception
0x15 | Healing
0x16 | Jump
0x17 | Lockpick
0x18 | Run
0x1B | Assess Creature
0x1C | Appraise Weapon
0x1D | Appraise Armor
0x1E | Appraise Magic Item
0x1F | Creature Enchantment
0x20 | Item Enchantment
0x21 | Life Magic
0x22 | War Magic
0x23 | Leadership
0x24 | Loyalty
0x25 | Fletching
0x26 | Alchemy
0x27 | Cooking

DWORD increment | The number of points over base this skill has been incremented.

TrainingType trained

The training status of this skill. 1 = Untrained/Unusable, 2 = Trained, 3 = Specialized
TrainingType (DWORD)
The training level for a skill.

0x01 | Unusable/Untrained
0x02 | Trained
0x03 | Specialized

DWORD exp | Total exp invested.
DWORD freeXP | Free XP given during character creation.
DWORD unknown2 |
double unknown3 | This looks like a double.

Choose valid sections by masking against loginMask2

0x00000100

WORD spellbookCount | The number of spells in your Spellbook
WORD spellbookUnknown | Probably indicates what type of data is in this section

spellbook: vector of length spellbookCount

DWORD spell | The Spell ID.
float charge | The spell's charge. Ranges from 0.0 to 1.0
DWORD unknown2 | (not sure yet) 0 or 1
DWORD unknown3 | Always 0

0x00000200

DWORD enchantmentMask | Enchantment mask.

Choose valid sections by masking against enchantmentMask

0x00000001

DWORD lifeSpellCount | Number of Life Magic enchantments in effect.

lifeSpells: vector of length lifeSpellCount

Enchantment enchantment

Information about the spell.
Enchantment
Information about enchantments

Spell spell | The ID of the spell being added.
WORD layers | The index of this exact spell on the on the player/item. It will increment one each time the spell is cast if there is one already on the player/item.
DWORD family | The set of related spells that this spell belongs to, see the mask field for picking out the one with precidence.
DWORD difficulty | The difficulty of the spell.
double timeElapsed | How long this spell has been in effect.
double duration | The duration of the spell's effect.
Object source | The entity casting the spell on you.
DWORD unknown3 | Unknown - Always 0
DWORD unknown4 | Unknown - This number depends on the spell.
double startTime | The starting time of this enchentment, according to the server's 'age' in seconds.
EnchantmentEffectMask flags | Chooses what the next field represents.
DWORD affected | Chooses the stat, attribute or life magic affected by the enchantment.
float adjustment | General purpose floating point field which accepts the adjustment flags be they percentage or absolute values. The spell economy is factored in and you get a great deal more precision than the displayed integer.

0x00000002

DWORD creatureSpellCount | Number of Creature Magic enchantments in effect.

creatureSpells: vector of length creatureSpellCount

Enchantment enchantment

Information about the spell.
Enchantment
Information about enchantments

Spell spell | The ID of the spell being added.
WORD layers | The index of this exact spell on the on the player/item. It will increment one each time the spell is cast if there is one already on the player/item.
DWORD family | The set of related spells that this spell belongs to, see the mask field for picking out the one with precidence.
DWORD difficulty | The difficulty of the spell.
double timeElapsed | How long this spell has been in effect.
double duration | The duration of the spell's effect.
Object source | The entity casting the spell on you.
DWORD unknown3 | Unknown - Always 0
DWORD unknown4 | Unknown - This number depends on the spell.
double startTime | The starting time of this enchentment, according to the server's 'age' in seconds.
EnchantmentEffectMask flags | Chooses what the next field represents.
DWORD affected | Chooses the stat, attribute or life magic affected by the enchantment.
float adjustment | General purpose floating point field which accepts the adjustment flags be they percentage or absolute values. The spell economy is factored in and you get a great deal more precision than the displayed integer.

0x00000004

Enchantment vitae

Vitae Penalty.
Enchantment
Information about enchantments

Spell spell | The ID of the spell being added.
WORD layers | The index of this exact spell on the on the player/item. It will increment one each time the spell is cast if there is one already on the player/item.
DWORD family | The set of related spells that this spell belongs to, see the mask field for picking out the one with precidence.
DWORD difficulty | The difficulty of the spell.
double timeElapsed | How long this spell has been in effect.
double duration | The duration of the spell's effect.
Object source | The entity casting the spell on you.
DWORD unknown3 | Unknown - Always 0
DWORD unknown4 | Unknown - This number depends on the spell.
double startTime | The starting time of this enchentment, according to the server's 'age' in seconds.
EnchantmentEffectMask flags | Chooses what the next field represents.
DWORD affected | Chooses the stat, attribute or life magic affected by the enchantment.
float adjustment | General purpose floating point field which accepts the adjustment flags be they percentage or absolute values. The spell economy is factored in and you get a great deal more precision than the displayed integer.

DWORD loginMask3 | 0x00000004 or 0x00000005.

Choose valid sections by masking against loginMask3

0x00000004

CharacterOptionsFlag options

The options in the Character tab (F11 by default)
CharacterOptionsFlag (DWORD)
The type of a flag

0x00000001 | Automatically Create Shortcuts
0x00000002 | Automatically Repeat Attacks
0x00000004 | Accept Allegiance Requests (Inverted)
0x00000008 | Accept Fellowship Requests (Inverted)
0x00000010 | Invert Mouse Look Up/Down
0x00000020 | Unknown
0x00000040 | Let Other Players Give You Items
0x00000080 | Automatically keep combat targets in view
0x00000100 | Display Tooltips
0x00000200 | Attempt to Deceive Other Players
0x00000400 | Run as Default Movement
0x00000800 | Stay in Chat Mode after sending a Message
0x00001000 | Advanced Combet Interface (No Panel)
0x00002000 | Auto Target
0x00004000 | Right0click mouselook
0x00008000 | Vivid Targeting Indicator
0x00010000 | Disable Most Weather Effects
0x00020000 | Ignore All Trade Requests
0x00040000 | Share Fellowship Experience
0x00080000 | Accept Corpse-Looting Permissions
0x00100000 | Share Fellowship Loot
0x00200000 | Stretch UI
0x00400000 | Show Coordinates Below The Radar
0x00800000 | Display Spell Durations
0x01000000 | Play Sounds Only When Active Application
0xFE000000 | unused
0xFFE00000 | unused

0x00000001

DWORD shortcutCount | Number of shortcut items.

shortcuts: vector of length shortcutCount

DWORD position | Position
Object target | Object ID Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown3 | Typically 0 (is container?)

DWORD tab1Count | Number of spells in the first spelltab.

tab1: vector of length tab1Count

DWORD spell | The Spell's ID

DWORD tab2Count | Number of spells in the second spelltab.

tab2: vector of length tab2Count

DWORD spell | The Spell's ID

DWORD tab3Count | Number of spells in the third spelltab.

tab3: vector of length tab3Count

DWORD spell | The Spell's ID

DWORD tab4Count | Number of spells in the fourth spelltab.

tab4: vector of length tab4Count

DWORD spell | The Spell's ID

DWORD tab5Count | Number of spells in the fifth spelltab.

tab5: vector of length tab5Count

DWORD spell | The Spell's ID

Choose valid sections by masking against loginMask3

0x00000008

WORD compBuyerCount | Number of components being tracked
WORD compBuyerUnknown |

compBuyer: vector of length compBuyerCount

DWORD compModel | Component ID
DWORD compRefill | Number of this component for compbuyer to refill to

DWORD inventoryCount | Number of items in your main pack.

inventory: vector of length inventoryCount

Object object | Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD isContainer | Whether or not this object is a container.

DWORD equipmentCount | Number of items currently equipped.

equipment: vector of length equipmentCount

Object object | Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

Coverage coverage

Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

DWORD unknown3 |

0x0016 - Transaction Message
Trade text

String text | Text detailing parts of the trade, or that trades aren't being accepted String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x001C - Action Failure
The error message for when an aciton failure occurs, the message is displayed in the top-left corner.

ActionFailure reason

The reason for the failure.
ActionFailure (DWORD)
Reason for action failure

0x001D | Too Busy
0x001C | Charged Too Far
0x0400 | No Components
0x0401 | Insufficient Mana
0x0402 | Fizzle
0x0404 | You are not a player killer.

0x0020 - Allegiance Info
Returns info related to your monarch, patron and vassals.

DWORD allegianceSize | The number of allegiance members.
DWORD followers | Your personal number of followers.
WORD recordCount | Number of character allegiance records.
WORD unknown1 | 0030
DWORD unknown2 | 00000000
DWORD unknown3 | 00000000
DWORD unknown4 | 00000000
DWORD unknown5 | 00000000
DWORD unknown6 | 00000000
DWORD unknown7 | 00000000

records: vector of length recordCount

Object treeParent | The Object ID for the parent character to this character. Used by the client to decide how to build the display in the Allegiance tab. 1 is the monarch. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

AllegianceInfo info

Allegiance Data for this character.
AllegianceInfo
Information for a single character in the allegiance.

Object character | Character ID
AllegianceType type | If this record is your patron.
DWORD exp | Total allegiance XP contribution.
OnlineStatus online | If the character is online.
BYTE gender | The gender of the character (for determining title).
BYTE race | The race of the character (for determining title).
BYTE rank | The numerical rank (1 is lowest).
WORD loyalty | Character loyalty.
WORD leadership | Character leadership.
double unknown |
String name |

0x0022 - Insert Inventory Item
Use to insert or locate an inventory item in your packs.

Object item | The item being moved. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
Object destination | The object ID of either the pack it's being placed in or you character ID if it's being placed into the main pack. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD slot | The 0-based index of teh item it's being inserted before.

0x0023 - Wear Item
Wear Item.

Object item | The item being equipped. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

Coverage slot

Where it is being equipped.
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0x0038 - Direct Chat
Received when someone sends you an @tell.

String text | The message text. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String sourceName | The name of the person sending you the message. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
Object source | The character ID for the person sending you the message. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
Object destination | The person receiving the message - which should always be you. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

Color color

The color of the message - should always be 0x04 for normal tells, but may change if a VIP is talking to you.
Color (DWORD)
These values choose a color.

0x00 | Green
0x04 | Dark Yellow
0x06 | Red
0x07 | Light Blue
0x0C | Dim White
0x0D | Cyan

0x004C - Add Spell to Spellbook / Cast Spell
Adds a spell to the spellbook. Also indicates you have cast a spell - a separate message contains the details on the spell.

Spell spell | The ID of the spell Spell (WORD) Spell IDs are a uniqe number representing the spell and level. The table is found in the portal.dat.

0x004D - Delete Spell from Spellbook
Deletess a spell from the spellbook.

Spell spell | The ID of the spell Spell (WORD) Spell IDs are a uniqe number representing the spell and level. The table is found in the portal.dat.

0x004E - Add Enchantment
Contains the details for spells cast of your character.

Enchantment enchantment

enchantment info
Enchantment
Information about enchantments

Spell spell | The ID of the spell being added.
WORD layers | The index of this exact spell on the on the player/item. It will increment one each time the spell is cast if there is one already on the player/item.
DWORD family | The set of related spells that this spell belongs to, see the mask field for picking out the one with precidence.
DWORD difficulty | The difficulty of the spell.
double timeElapsed | How long this spell has been in effect.
double duration | The duration of the spell's effect.
Object source | The entity casting the spell on you.
DWORD unknown3 | Unknown - Always 0
DWORD unknown4 | Unknown - This number depends on the spell.
double startTime | The starting time of this enchentment, according to the server's 'age' in seconds.
EnchantmentEffectMask flags | Chooses what the next field represents.
DWORD affected | Chooses the stat, attribute or life magic affected by the enchantment.
float adjustment | General purpose floating point field which accepts the adjustment flags be they percentage or absolute values. The spell economy is factored in and you get a great deal more precision than the displayed integer.

0x004F - Remove Enchantment
An active enchantment has expired. Sent to update the client list and display a message.

Spell spell | The spell copy that's begin removed. Spell (WORD) Spell IDs are a uniqe number representing the spell and level. The table is found in the portal.dat.
WORD layer | The index of this exact spell on the on the player/item. It will increment one each time the spell is cast if there is one already on the player/item.

0x0062 - Approach Vendor
Approach Vendor (Incomplete)

Object vendor | Vendor who opened the transaction Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

ObjectFlags1 vendorBuyFlags

Types of items the vendor will buy
ObjectFlags1 (DWORD)
Part one of an object's flags

0x00000001 | Melee Weapons
0x00000002 | Armor
0x00000004 | Clothing
0x00000008 | Jewelry
0x00000010 | Monster
0x00000020 | Food
0x00000040 | Pyreal
0x00000080 | Miscellaneous
0x00000100 | Missile Weapons
0x00000200 | Containers
0x00000400 | unknown - fletching
0x00000800 | Gems
0x00001000 | Spell Components
0x00002000 | Writable
0x00004000 | Keys
0x00008000 | unknown
0x00010000 | Portal
0x00020000 | Lockable
0x00040000 | Trade Notes
0x00080000 | Mana Stones
0x00100000 | Services
0x00200000 | Plants
0x00400000 | Base Cooking Item
0x00800000 | Base Alchemy Item
0x01000000 | Base Fletching Item
0x02000000 | Crafted Cooking Item
0x04000000 | Crafted Alchemy Item
0x08000000 | Crafted Fletching Item
0xF0000000 | unknown

DWORD unknown_1 | unknown
DWORD maxValue | The highest value of an item the vendor can afford
DWORD unknown_3 | unknown
float buy | Ratio of value the vendor buys items
float sell | Ratio of value the vendor sells items
DWORD itemsCount | Total number of items vendor is selling

items: vector of length itemsCount

WORD unknownSlot | unknown Possible display order when showing
WORD unknownSlot2 | unknown Possible display flag
Object template | ID for a unique object or for a template for stocked object. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD flags4 | Flags 4
String objectName | Name of this object String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
WORD model | ID of the model for this object
WORD icon | ID of the icon for this object.

ObjectFlags1 unknown_v0_2

unknown v0 2
ObjectFlags1 (DWORD)
Part one of an object's flags

0x00000001 | Melee Weapons
0x00000002 | Armor
0x00000004 | Clothing
0x00000008 | Jewelry
0x00000010 | Monster
0x00000020 | Food
0x00000040 | Pyreal
0x00000080 | Miscellaneous
0x00000100 | Missile Weapons
0x00000200 | Containers
0x00000400 | unknown - fletching
0x00000800 | Gems
0x00001000 | Spell Components
0x00002000 | Writable
0x00004000 | Keys
0x00008000 | unknown
0x00010000 | Portal
0x00020000 | Lockable
0x00040000 | Trade Notes
0x00080000 | Mana Stones
0x00100000 | Services
0x00200000 | Plants
0x00400000 | Base Cooking Item
0x00800000 | Base Alchemy Item
0x01000000 | Base Fletching Item
0x02000000 | Crafted Cooking Item
0x04000000 | Crafted Alchemy Item
0x08000000 | Crafted Fletching Item
0xF0000000 | unknown

ObjectFlags2 unknown_v0_3

unknown v0 3
ObjectFlags2 (DWORD)
Flags related to the use of the item.

0x00000001 | container
0x00000002 | can be inscribed
0x00000004 | cannot be picked up
0x00000008 | player
0x00000010 | unknown - can be selected
0x00000020 | unknown
0x00000040 | unknown
0x00000080 | unknown - cannot be selected
0x00000100 | readable
0x00000200 | vendor
0x00000400 | unknown
0x00000800 | unknown
0x00001000 | door
0x00002000 | corpse
0x00004000 | lifestone
0x00008000 | food
0x00010000 | healing kit
0x00020000 | lockpick
0x00040000 | portal
0xFFF80000 | unknown

Choose valid sections by masking against flags4

0x00000001

String secondaryName | Secondary name of this object String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00000002

BYTE itemSlots | Number of item slots in this container, -1 if you can't tell.

0x00000004

BYTE packSlots | Number of pack slots in this container, -1 if you can't tell. (Pack slot meaning a slot which can hold a pack).

0x00000008

DWORD value | Value of the object or stack of objects.

0x00000010

DWORD unknown_v2 | unknown v2

0x00000020

DWORD unknown_v3 | unknown v3

0x00000080

DWORD unknown_v4 | unknown v4

0x00080000

DWORD unknown_v5 | unknown v5

0x00800000

DWORD unknown_v6 | unknown v6

0x00000100

BYTE unknown_b1 | unknown byte 1

0x00000200

EquipmentType equipmentType

If this item can be equiped, what slot.
EquipmentType (BYTE)
The slot used by this equipment.

0x01 | Melee Weapon
0x02 | Missile Weapon
0x03 | Arrows
0x04 | Sheild

0x00001000

WORD stackCount | The number of items in this stack of objects (for spell components, pyreals, etc)

0x00002000

WORD stackMax | The total number of this type of object which can stack.

0x00000800

WORD usesLeft | The number of uses remaining in this item (for picks, keys, healing kits, etc)
WORD totalUses | The total uses that this item had.

0x00004000

Object container | The GUID of the object which contains this one. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x00008000

Object owner | The GUID of the object which is equipping this one (such as a player). Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x00200000

DWORD tradenoteVendor | For trade notes, this is the ID of the vendor who sold the note.

0x00040000

Coverage coverage1

Coverage information for armor and clothing.
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0x00020000

Coverage coverage2

If this item can be worn or wielded, the mask of slots it occupies.
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0x00010000

Coverage coverage3

Still more coverage information
Coverage (DWORD)
The body parts covered by a piece of clothing.

0x00000001 | Head
0x00000002 | Chest - Underwear
0x00000004 | Girth - Underwear
0x00000008 | Upper Arms - Underwear
0x00000010 | Lower Arms - Underwear
0x00000020 | Hands
0x00000040 | Upper Legs - Underwear
0x00000080 | Lower Legs - Underwear
0x00000100 | Feet
0x00000200 | Chest - Outerwear
0x00000400 | Girth - Outerwear
0x00000800 | Upper Arms - Outerwear
0x00001000 | Lower Arms - Outerwear
0x00002000 | Upper Legs - Outerwear
0x00004000 | Lower Legs - Outerwear
0x00008000 | Necklace
0x00010000 | Bracelet - Right
0x00020000 | Bracelet - Left
0x00040000 | Ring - Right
0x00080000 | Ring - Left
0x00100000 | Weapon
0x00200000 | Shield
0x00400000 | Projectile Weapon
0x00800000 | Ammunition
0x01000000 | Focus Weapon

0x00400000

DWORD associatedSpell | The spell effect of this item (for wells, the spell cast. For scrolls, the spell learned. For wands, ???.

0x009C - End Portal Storm
End Portal Storm - 'The Portal Storm has subsided' message

0x009D - Mild Portal Storm
Portal Storm warning - Level 1 of 3

float severity | Could be severity - was 0.40 during testing

0x009E - Heavy Portal Storm
Portal Storm warning - Level 2 of 3

float severity | Could be severity - was 0.60 during testing

0x009F - Portal Stormed
Character was portal stormed

String desc | Portal storm description String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00A0 - Failure to Give Item
Failure to give an item

Object item | Item that could not be given Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown1 | Unknown, was 0x3EF when I tested

0x00A7 - Quit Fellowship
Fellowship quit

Object fellow | Person who quit the fellowship Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x00AF - Create Fellowship
Create new fellowship

WORD unknown1 | unknown
WORD unknown2 | unknown
Object fellow | Person starting the fellowship Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
WORD unknown3 | unknown
WORD level | Level of person starting the fellowship
String userName | Name of person starting the fellowship String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String fellowship | Fellowship name String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
Object member | Only member of the fellowship Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
WORD share | Should this fellowship share experience
WORD unknown4 | unknown

0x00B0 - Recruit Member
Fellowship recruit member

Object fellow | New fellowship member Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
WORD unknown1 | unknown
WORD level | Level of recruited member
String userName | Name of person recruited to fellowship String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00B1 - Dismiss Member
Fellowship dismissal

Object fellow | Person who was dismissed from the fellowship Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x00B3 - Disband Fellowship
Fellowship was disbanded

0x00B4 - Read Table of Contents
Sent when you first open a book, contains the entire table of contents.

Object book | The readable object you have just opened. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD totalPages | The total number of pages in the book.
DWORD contentsPages | The number of pages that appear in the contents.
DWORD unknown1 | Unknown - Always 0x3E8, may be some sort of media type.
DWORD usedPages | The number of used pages, and the number of content records.

pages: vector of length usedPages

Object author | The character ID of the author. For preauthored books, this value is 0xFFFFFFFF. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
String authorName | The character name of the author. Preauthored books often use this as a table of contents instead. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String zoneAccount | The zone account name of the author (expect this to be remove in the near future - Cibo, October 20, 2000). For prewritten books, this is always 'prewritten'. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
DWORD unknown1 | Unknown - Always 0

String comment | The inscription comment and the book title. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
Object commentAuthor | The author of the inscription (and not coincidentally, the book title). Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
String commentAuthorName | The name of the inscription author. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00B8 - Read Page
Contains the text of a single page of a book, parchment or sign.

Object book | The object id for the readable object. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD page | The 0-based index of the page you are currently viewing.
Object author | The character ID of the author. For preauthored books, this value is 0xFFFFFFFF. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
String authorName | The character name of the author. Preauthored books often use this as a table of contents instead. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String zoneAccount | The zone account name of the author (expect this to be remove in the near future - Cibo, October 20, 2000). For prewritten books, this is always 'prewritten'. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
DWORD unknown1 | Unknown - Always 1
String text | The text of the page. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00C9 - Identify Object
Returns details of any object except spell information.

Object object | The object you are retreiving information for. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

ObjectIDMask flags

These flags define the type of object and what fields follow to describe it.
ObjectIDMask (DWORD)
The following flags identify the type of the item - and the structure that follows to describe it.

0x00000001 | This is a character or monster - exclusive with all other flags.
0x00000002 | This item is a weapon.
0x00000004 | Has elemental protections.
0x00000008 | Has mass and value.
0x00000010 | Has an inscription.
0x00000180 | This item is readable and has a page count.
0x00000400 | Has comment.
0x00008000 | Has an armor level or shield level.
0x00010000 | This item is a portal.
0x00020000 | Has detailed description.
0x00040000 | Has simple description.
0x00100000 | Unknown spell-related field.
0x00200000 | Unknown spell-related field 2.
0x00800000 | Has enchantments.
0x01000000 | This item is a mana stone or mana charge.
0x02000000 | Has active enchantments.

DWORD success | Set to 1 for a successful assess. This field does not control the information transmitted (the flags field does that) it's just a gross overview of how well you did.

Choose valid sections by masking against flags

0x00000001

CharacterIDMask characterFlags

These Flags indication which fields will be available for assess.
CharacterIDMask (DWORD)
The flags indicate which fields were successfully assessed.

0x01 | Extra Info
0x02 | Human Info
0x04 | Basic Info
| Attribute Info

Choose valid sections by masking against characterFlags

0x04

DWORD level | The current level, or 0 if character is PK and fails to assess.
DWORD currentHealth | Current health
DWORD maxHealth | Maximum health

0x08

DWORD strength | Strength
DWORD endurance | Endurance
DWORD quickness | Quickness
DWORD coordination | Coordination
DWORD focus | Focus
DWORD self | Self
DWORD currentStamina | Current stamina
DWORD currentMana | Current mana
DWORD maxStamina | Maximum stamina
DWORD maxMana | Maximum mana

Species species

The species of the creature.
Species (DWORD)
This number indicates a particular species.

0x03 | Drudge
0x09 | Phyntos Wasp
0x0A | Rat
0x19 | Rabbit
0x1E | Skeleton
| Isparian

Choose valid sections by masking against characterFlags

0x02

DWORD rank | Numeric rank - 0xFFFFFFFF for a character without a patron.
DWORD followers | The followers of an allegiance monarch, otherwise 0xFFFFFFFF
DWORD loyalty | The loyalty of characters without a patron, otherwise 0.
DWORD leadership | The leadership of characters without a patron, otherwise 0.
DWORD PK | 1 for PKs, 0 for NPKs
String gender | The gender: male, female or unknown. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String race | The race. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String class | Character class (usually Adventurer). String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String fellowship | Name of the current fellowship, or an empty string for none. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String monarch | The name and title of person's monarch - or empty string for none. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String patron | The name and rank of the person's patron - or empty string for none. If this field is the same as the monarch it is displayed monarch/patron. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
DWORD texture1 |
DWORD texture2 |
DWORD texture3 |
DWORD palette1 |
DWORD palette2 |
DWORD palette3 |
DWORD unknown6 |

0x01

DWORD extra | No idea what's in this field, but you only get it on a successful assess - best guess right now is it's related to the red/green attributes but I'll have to do testing.

0x00000002

DamageMask damageType

The type of damage done by this weapon.
DamageMask (DWORD)
Damage Types are selected from a mask, they can be combined for multi-damage type weapons (for example slash/pierce swords)

0x01 | Slashing
0x02 | Piercing
0x04 | Bludgeoning
0x08 | Cold
0x10 | Fire
0x20 | Acid
0x40 | Electric

DWORD speed | Weapon speed.

Skill skill

The skill required to use or equip this weapon, or 0xFFFFFFFF for none (such as arrows and quarells).
Skill (WORD)
Skill are identified by numbers

0x01 | Axe
0x02 | Bow
0x03 | Crossbow
0x04 | Dagger
0x05 | Mace
0x06 | Melee Defense
0x07 | Missile Defense
0x09 | Spear
0x0A | Staff
0x0B | Sword
0x0C | Thrown Weapons
0x0D | Unarmed Combat
0x0E | Arcane Lore
0x0F | Magic Defense
0x10 | Mana Conversion
0x12 | Appraise Item
0x13 | Assess Person
0x14 | Deception
0x15 | Healing
0x16 | Jump
0x17 | Lockpick
0x18 | Run
0x1B | Assess Creature
0x1C | Appraise Weapon
0x1D | Appraise Armor
0x1E | Appraise Magic Item
0x1F | Creature Enchantment
0x20 | Item Enchantment
0x21 | Life Magic
0x22 | War Magic
0x23 | Leadership
0x24 | Loyalty
0x25 | Fletching
0x26 | Alchemy
0x27 | Cooking

DWORD damage | The maximum amount of damage done by the weapon.
double damageRange | The percentage damage range - used to calculate the lower boudn for display.
double damageBonus | I'm just speculating that this a double of some bonus I haven't seen.
double range | Although the values seem to have nothing to do with range, the existance of a value corresponds to weapons with a range set.
double unknown1 | Unknown Value 27.3 is a sample.
double defenseBonus | Bonus to defense skill.
double attackBonus | Bonus to attack skill.
DWORD highlights | The still undocument hilights that decide which fields and red and which are green.

0x00000004

float slashProt | Protection against slashing damage.
float pierceProt | Protection against piercing damage.
float bludgeonProt | Protection against bludgeoning damage.
float coldProt | Protection against cold damage.
float fireProt | Protection against fire damage.
float acidProt | Protection against acid damage.
float electricalProt | Protection against lightning damage.

0x00000008

DWORD worldMass | Used for the worlds physics of the object.
DWORD value | The value in pyreals
DWORD mass | The weight in BU

0x00000100

DWORD usedPages | The used pages in the book.

0x00000080

DWORD totalPages | Total number of pages in the readable item

0x00008000

DWORD armourLevel | The armour level or shield level of this item.

0x00004000

DWORD openState | Set to 1 if this item (chest, door, etc.) is open, 0 otherwise.

0x00002000

DWORD unknown3 | Unknown (0x01 = Draught, 0x02 = Potion, 0x04 = Elixir)?

0x00001000

DWORD unknown4 | Unknown (Amount Restored)?

0x04000000

String creator | Contains the name of the creator of this object. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00000010

String inscription | The inscription text on this item. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String inscriptionAuthor | The author of the inscription. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String inscriptionUnknown | Unknown inscription related string - always empty. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00020000

String detailedDescription | The Description string to display on a sucessful assess. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00040000

String simpleDescription | The Description string to display on a failed assess. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00000400

String comment | The 1 or 2 line description comment at the top of the inspection window. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x00100000

DWORD unknown | Unknown spell related field.

0x00200000

DWORD unknown2 | Unknown spell related field.

0x00800000

DWORD difficulty | The arcane lore requirement.
DWORD spellcraft | The spellcraft of the item.
DWORD rankRequirement | An allegiance rank requirement or 0 for none.
DWORD storedMana | The current level of stored mana.
DWORD maxMana | The maximum amount of stored mana.
DWORD unknown | Unknown - Always 0xFFFFFFFF.
float manaRate | Number of seconds/point of mana consumed.
String raceRequirement | Set the the name of the required race, or a NULL string for no race requirement. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
DWORD alternateSkillRequirement | The amount of an alterante skill required to activate an item.

Skill alternateSkill

An alternate skill requirement, or 0 for no alternate skill required.
Skill (WORD)
Skill are identified by numbers

0x01 | Axe
0x02 | Bow
0x03 | Crossbow
0x04 | Dagger
0x05 | Mace
0x06 | Melee Defense
0x07 | Missile Defense
0x09 | Spear
0x0A | Staff
0x0B | Sword
0x0C | Thrown Weapons
0x0D | Unarmed Combat
0x0E | Arcane Lore
0x0F | Magic Defense
0x10 | Mana Conversion
0x12 | Appraise Item
0x13 | Assess Person
0x14 | Deception
0x15 | Healing
0x16 | Jump
0x17 | Lockpick
0x18 | Run
0x1B | Assess Creature
0x1C | Appraise Weapon
0x1D | Appraise Armor
0x1E | Appraise Magic Item
0x1F | Creature Enchantment
0x20 | Item Enchantment
0x21 | Life Magic
0x22 | War Magic
0x23 | Leadership
0x24 | Loyalty
0x25 | Fletching
0x26 | Alchemy
0x27 | Cooking

String spellNames | The list of just spell names in the enchantments list. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String spellDescriptions | The descriptions of each of the spells as they appear in the descriptions section of the ID window. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
double manaTransfer | The mana transfer efficiency, always -100% for magic items.

0x00080000

DWORD usesRemaining | The number of uses remaining on this item
DWORD usesTotal | The total uses on this item

0x00010000

DWORD lowLevel | The low level restriction for this portal, or 0xFFFFFFFF for none.
DWORD highLevel | The high level restriction for this portal, or 0xFFFFFFFF for none.
String destination | The destination string. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x02000000

String activeEnchantments | The descritpion text for all active enchantments. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x01000000

double efficiency | The mana transfer efficiency of this mana stone.
DWORD storage | The current amount of stored mana.

0x014A - Group Chat
Allegiance and Fellowship chats come on these messages.

GroupChatMask group

The type of group chat.
GroupChatMask (DWORD)
The relative source or destionation of this message.

0x0800 | Fellowship
0x1000 | Patron
0x2000 | Vassal
0x4000 | Follower

String senderName | The name of the character sending you the message. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String text | The text of the message. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x0196 - Set Pack Contents
Set Pack Contents

Object pack | The pack we are setting the contents of. This pack objects and the contained objects may be created before or after the message. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD itemCount | Number of items in the pack (does not reflect the capacity - see the pack creation message).

items: vector of length itemCount

Object item | An item for the pack. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

InventoryType type

The type of this inventory. In this message it will always be 0 since there are no subpacks currently.
InventoryType (DWORD)
The position of this inventory item.

0x00 | Normal Item
0x01 | Pack

0x019A - Drop from Inventory
Removes an item from inventory (when you place it on the ground or give it away)

Object item | The item leaving your inventory. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x01A4 - Remove Enchantment (Silent)
An enchantment was removed (via magic item).

Spell spell | The ID of the spell being removed. Spell (WORD) Spell IDs are a uniqe number representing the spell and level. The table is found in the portal.dat.
WORD layers | Index of this spell (for layers).

0x01A6 - Remove Multiple Enchantments
Removes a bunch of enchantments to the list (when multiple spells expire simultaneously).

DWORD count | The number of enchantments

enchantments: vector of length count

Spell spell | The spell being removed. Spell (WORD) Spell IDs are a uniqe number representing the spell and level. The table is found in the portal.dat.
WORD layer | Index of the spell being removed, if this index is 1 the enchantment is entirely removed.

0x01A7 - Attack Completed
Melee attack completed

DWORD unknown | unknown - my sample was 00000000

0x01AD - Kill/Death Message
Message for a death, something you killed or your own death message.

String text | The text of the nearby or present death message. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x01AC - Your death.
You just died.

String text | Your (typically mocking) death message. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x01AE - Add Multiple Enchantments List
Unlike 0x004E which adds only a single enchantment at a time, this message adds a bunch in a single shot.

DWORD count | The number of enchantments

enchantments: vector of length count

Spell spell | The spell being added. Spell (WORD) Spell IDs are a uniqe number representing the spell and level. The table is found in the portal.dat.
WORD layer | The number of time this spell has been added - when 1 this is the first time.

0x01B1 - Inflict Melee Damage
Inflict Melee Damage on an opponent.

String target | The name of your opponent. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

DamageMask damage

The type of damage you are inflicting.
DamageMask (DWORD)
Damage Types are selected from a mask, they can be combined for multi-damage type weapons (for example slash/pierce swords)

0x01 | Slashing
0x02 | Piercing
0x04 | Bludgeoning
0x08 | Cold
0x10 | Fire
0x20 | Acid
0x40 | Electric

double severity | A number between 0.0 and 1.0 that reflects the severity of the attack - this is reflected in both the message (graze vs. crush) and the noise.
DWORD amount | The number of health points you took.

0x01B2 - Receive Melee Damage
When an opponent inflicts melee damage on your character.

String source | The name of your opponent. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

DamageMask damage

The type of damage you are receiving.
DamageMask (DWORD)
Damage Types are selected from a mask, they can be combined for multi-damage type weapons (for example slash/pierce swords)

0x01 | Slashing
0x02 | Piercing
0x04 | Bludgeoning
0x08 | Cold
0x10 | Fire
0x20 | Acid
0x40 | Electric

double severity | A number between 0.0 and 1.0 that reflects the severity of the attack - this is reflected in both the message (graze vs. crush) and the noise.
DWORD amount | The number of health points you lost. (NOTE: the actual message that drop your health is sent separately)

DamageLocation location

The location that you received damage on your body
DamageLocation (DWORD)
Location that Damage is recieved during melee Combat

0x00 | Head
0x01 | Chest
0x02 | Abdomen
0x03 | Upper Arm
0x04 | Lower Arm
0x05 | Hand
0x06 | Upper Leg
0x07 | Lower Leg
0x08 | Foot

0x01B3 - Other Melee Evade
When you are evaded in melee combat.

String target | The name of your opponent. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x01B4 - Self Melee Evade
When you evade an opponent in melee combat.

String source | The name of your opponent. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x01B8 - Start Melee Attack
Start melee attack

0x01C0 - Update Health
Updates the health bar on your selected opponent.

Object selection | Since you only get updates for the currently selected opponent, this indicates what you have selected. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
float health | A number between 0.0 and 1.0 reflecting their total health.

0x01C3 - Age Command Result
Age Command Result - happens when you do /age in the game

String unknown | Unknown - always seems to be a null string String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
String age | Your age in the format 1mo 1d 1h 1m 1s String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.

0x01C7 - Read. Previous action complete
Ready. Previous action complete

DWORD unknown | Unknown - 0x00000000

0x01F4 - Squelched Users List
Squelched Users List

DWORD unknown1 | Unknown Always 0
WORD squelchCount | The number of squelched users.
WORD unknownFlags1 | Unknown flags, sometimes 0x0020 is set

users: vector of length squelchCount

Object user | The ID of the squelched user. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown1 | Unknown - Always 4.
DWORD unknown2 | Unknown - Always 0xFFFFFFF.
DWORD unknown3 | Unknown - Always 0xFFFFFFF.
DWORD unknown4 | Unknown - Always 0xFFFFFFF.
DWORD unknown5 | Unknown - Always 0xFFFFFFF.
String name | Name of the squelched user. String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
DWORD unknown6 | Unknown - Always 0.

0x01FD - Enter Trade
Send to begin a trade and display the trade window

Object trader | Person initiating the trade Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
Object tradee | Person receiving the trade Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD unknown1 | unknown
DWORD unknown2 | unknown

0x01FF - End Trade
End trading

EndTradeReason reason

Reason trade was cancelled
EndTradeReason (DWORD)
The reason for ending a trade.

0x00 | End trade normally.
0x02 | Party entered combat mode.
0x51 | Party moved out of range, or cancelled manually.

0x0200 - Add Trade Item
Item was added to trade window - you will receive a Create Object (0xF745) with details of the item

Object item | The item being dropped into trade window Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD side | Side of the trade window object was inserted (1 or 2)
DWORD unknown1 | unknown, was zero when testing

0x0202 - Accept Trade
The trade was accepted

Object character | Person who acepted the trade Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x0205 - Reset Trade
The trade window was reset

Object clearee | Person who cleared the window Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

0x0207 - Failure to trade an item
Failure to trade an item

Object item | Item that could not be added to trade window Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD reason | The numeric reason it couldn't be traded.

0x0264 - Updates the mana bar on the selected item.
Updates the mana bar on the selected item.

Object selection | Since you only get updates for the currently selected item, this indicates what you have selected. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
float mana | A number between 0.0 and 1.0 reflecting its total mana.
DWORD enabled | A value (0 or 1) which determines if the item uses mana and whether to show the items mana bar.

0xF643 - Create Character
Character was created on main screen

CharacterCreationResult success

Success flag of creation
CharacterCreationResult (DWORD)
Results of your creation attempt.

0x01 | Success
0x03 | Name in use
0x04 | Bad Name - typically profanity filter

Object character | New character Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
String userName | Name of new character String Strings begin and end with DWORD alignment. The first WORD is the string length including the NULL terminator. Then the character values follow inline (with NULL terminator) and the last DWORD is filled with 0s.
DWORD unknown_1 | Always zero

0xF655 - Delete Character
Character was deleted on main screen

0x01CA - Unknown
0x01CB - Unknown
0x01EA - Unknown

F7C7 - Start 3D Mode
Sent to instruct the client to login. Client changes video mode and enter's portal mode.

FF33 - Exit portal mode.
Sent to terminate the whirling tunnel of portal mode.

Object character | The character exiting portal mode - should be you. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters
DWORD index | The index of the enter/exit portal mode count.
DWORD sequence | It's approximately the number of times you've portalled in your character's liftime - although I think it's too small for mine.

# Retired Messages

## Directory

000E - Update Statistic
0026 - Update Attribute
0028 - Skill Experience
0029 - Update Secondary Attribute
0033 - OLD Update Vital Statistic

## Messages

000E - Update Statistic
RETIRED for 0237

Object character | Character receiving the experience update. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

Statistic statistic

Statistic being set.
Statistic (DWORD)
Select an experience category from the following table.

0x05 | Total Burden
0x14 | Total Pyreal
0x15 | Total Experience
0x16 | Unassigned Experience
0x18 | Unassigned Skill Points
0x19 | Level
0x1e | Rank

DWORD value | Replacement value.

0026 - Update Attribute
RETIRED for 241

Object character | Character receiving the experience update. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

AttributeID attribute

Statistic being set.
AttributeID (WORD)
Attributes are identified by numbers

0x01 | Strength
0x02 | Endurance
0x03 | Quickness
0x04 | Coordination
0x05 | Focus
0x06 | Self

DWORD newValue | New Attribute Value.
DWORD baseValue | Original Attirbute Value.
DWORD expSpent | Total Exp Spent on this Attribute

0028 - Skill Experience
RETIRED for 023E

Object source | Should be you Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

Skill skill

Your skill that's receiving XP
Skill (WORD)
Skill are identified by numbers

0x01 | Axe
0x02 | Bow
0x03 | Crossbow
0x04 | Dagger
0x05 | Mace
0x06 | Melee Defense
0x07 | Missile Defense
0x09 | Spear
0x0A | Staff
0x0B | Sword
0x0C | Thrown Weapons
0x0D | Unarmed Combat
0x0E | Arcane Lore
0x0F | Magic Defense
0x10 | Mana Conversion
0x12 | Appraise Item
0x13 | Assess Person
0x14 | Deception
0x15 | Healing
0x16 | Jump
0x17 | Lockpick
0x18 | Run
0x1B | Assess Creature
0x1C | Appraise Weapon
0x1D | Appraise Armor
0x1E | Appraise Magic Item
0x1F | Creature Enchantment
0x20 | Item Enchantment
0x21 | Life Magic
0x22 | War Magic
0x23 | Leadership
0x24 | Loyalty
0x25 | Fletching
0x26 | Alchemy
0x27 | Cooking

DWORD skillOffset | The offset from the attribute base.
DWORD unknown1 | unknown
DWORD experience | experience earned
DWORD freeXP | experience given during character creation
DWORD difficulty | probably used in the xp timer calculation

0029 - Update Secondary Attribute
RETIRED for 0243

Object character | Character receiving the experience update. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

SecondaryAttribID secondaryAttribute

Statistic being set.
SecondaryAttribID (WORD)
Secondary Attributes are identified by numbers

0x01 | Health
0x03 | Stamina
0x05 | Mana

DWORD step | New increment step you just acheived.
DWORD unknown | unknown - not effected by endurance other or the barons amulet or vitae
DWORD expSpent | Total Exp Spent on this Attribute
DWORD currentValue | Secondary Attribute Value - this is just what your current health/stam/mana is, not related to total past or present.

0033 - OLD Update Vital Statistic
RETIRED

Object character | Character getting updates, this should be you. Object (DWORD) DWORD field containing a unique ID for an object in the game world. IDs are unique in the world but not permenantly - IDs can be reused for temporary type objects like monsters

VitalStat vital

The Vital Statistic being updated.
VitalStat (DWORD)
The vital statistic to update, selected from the list.

0x02 | Current Health
0x04 | Current Stamina
0x06 | Current Mana

DWORD value | The new value.

# Unclassified Messages

F72B - Unknown.