Welcome to PenUltima Online. Click to login or register.
Downloadable Version (2010-01-09)

Description

Packet Name: General Information Packet
Last Modified: 2010-11-01 11:32:36
Modified By: Tomi


Packet: 0xBF
Sent By: Both
Size: Variable


Packet Build
BYTE[1] Command
BYTE[2] Length
BYTE[2] Subcommand
BYTE[length-5] Subcommand details


Subcommand Build
Subcommand 1: Initialize Fast Walk Prevention
BYTE[4] key1
BYTE[4] key2
BYTE[4] key3
BYTE[4] key4
BYTE[4] key5
BYTE[4] key6

Subcommand 2: Add key to Fast Walk Stack
BYTE[4] newkey

Subcommand 4: "Close Generic Gump"
BYTE[4] dialogID // which gump to destroy (second ID in 0xB0 packet)
BYTE[4] buttonId // response buttonID for packet 0xB1

Subcommand 5: Screen size
BYTE[2] unknown1 , always 0 ?
BYTE[2] X
BYTE[2] Y
BYTE[2] unknown2

---- Start of Subcommand 0x6 ----
Subcommand 6: Party System
Subsubcommands for 6:
Subsubcommand 1: Add a party member (4 bytes)
BYTE[4] id (if 0, a targeting cursor appears)Client Message

Subsubcommand 1: Add party member(s) (1+ numMembers*4)
BYTE[1] number of Members (total number of members in the party)
Then, for each member in numMembers:
BYTE[4] id
Server Message

Subsubcommand 2: Remove a party member (4 bytes)
BYTE[4] id (if 0, a targeting cursor appears)
Client message

Subsubcommand 2: Remove a party member (? Bytes)
BYTE[1] number of Members (total number of members in the new party)
BYTE[4] idofPlayerRemoved
Then, for each member in numMembers:
BYTE[4] id
Server message

Subsubcommand 3: Tell party member a message (Variable # of bytes)
BYTE[4] id (of target, from client, of source, from server)
BYTE[n][2] Null terminated Unicode message.
Client & Server Message

Subsubcommand 4: Tell full party a message (Variable # of bytes)
BYTE[n][2] Null terminated Unicode message.
Client Message.

Subsubcommand 4: Tell full party a message (Variable # of bytes)
BYTE[4] id (of source)
BYTE[n][2] Null terminated Unicode message.
Server Message

Subsubcommand 6: Party Can Loot Me? (1 byte)
BYTE[1] canloot (0=no, 1=yes)
Client message

Subsubcommand 7: party invitation?
BYTE[4] serial (party leader)

Subsubcommand 8: Accept join party invitation (4 bytes)
BYTE[4] serial (party leader)
Client message

Subsubcommand 9: Decline join party invitation (4 bytes)
BYTE[4] serial (party leader)
Client message
---- End of Subcommand 0x6 ----

Subcommand 8: Set cursor hue / Set MAP
BYTE[1] hue (0 = Felucca, unhued / BRITANNIA map. 1 = Trammel, hued gold / BRITANNIA map, 2 = (switch to) ILSHENAR map)

Subcommand 0x0a: wrestling stun
Sent by using the client Wrestle Stun Macro key in Options. This is no longer used since AoS was introduced. The Macro selection that used it was removed.

Subcommand 0x0b: Client Language
BYTE[3] language (ENU, for English)

Subcommand 0x0c: Closed Status Gump
BYTE[4] id (character id)

Subcommand 0x0e: 3D Client Action
BYTE[4] Animation ID. See Notes for list.

Subcommand 0x0f: ClientType , send once at login
BYTE[1] unk1 0x0a
BYTE[4] clienttype flag (like char create/login)

Subcommand 0x10: unknown, related to 0xD6 Mega Cliloc somehow
BYTE[4] Item ID
BYTE[4] Unknown

Subcommand 0x13: Request popup menu
BYTE[4] id (character id)

Subcommand 0x14: Display Popup/context menu (2D and KR)
BYTE[1] unknown (0x00)
BYTE[1] subsubcommand (0x01 for 2D, 0x02 for KR)
BYTE[4] Serial
BYTE[1] Number of entries in the popup/context

2D-client:
loop Entries
BYTE[2] Unique ID (returned by client)
BYTE[2] Cliloc ID (ID is Cliloc - 3000000)
BYTE[2] Flags 0x00=enabled, 0x01=disabled, 0x02=arrow, 0x20 = color
If (Flags = 0x20)
BYTE[2] color/hue; // rgb 1555 color (ex, 0 = transparent, 0x8000 = solid black, 0x1F = blue, 0x3E0 = green, 0x7C00 = red)
Endif
endloop(entries)

KR-client:
loop Entries
BYTE[4] Text ID Number?
BYTE[2] Index of entry (entry tag)?
BYTE[2] Flags 0x00=enabled, 0x01=disabled, 0x04 = highlighted
endloop(entries)

Subcommand 0x15: Popup Entry Selection
BYTE[4] Character ID
BYTE[2] Entry Tag for line selected provided in subcommand 0x14

Subcommand 0x16: Close User Interface Windows
BYTE[4] Window ID

Window ID:s
0x01: Paperdoll
0x02: Status
0x08: Character Profile
0x0C: Container

BYTE[4] if ( Window ID == 0x0C ) Container Serial, Else character serial

Subcommand 0x17: Codex of wisdom
BYTE[1] unknown, always 1. if not 1, packet seems to have no effect
BYTE[4] msg number
BYTE[1] presentation (0: flashing, 1: directly opening)

Subcommand 0x18: Enable map-diff (files)
BYTE[4] Number of maps
For each map

  • BYTE[4] Number of map patches in this map
  • BYTE[4] Number of static patches in this map

Subcommand: 0x19: Extended stats
BYTE[1] subsubcommand (0x2 for 2D client, 0x5 for KR client)
BYTE[4] serial
BYTE[1] unknown (always 0)
BYTE[1] Lock flags (0 = up, 1 = down, 2 = locked, FF = update mobile status animation ( KR only )

Lock flags = 00SSDDII ( in binary )
00 = up
01 = down
10 = locked

If(subsubcommand = 0x05 (KR))

If(Lock flags = 0xFF) //Update mobile status animation
BYTE[1] Status // Unveryfied if lock flags == FF the locks will be handled here
BYTE[1] unknown (0x00)
BYTE[1] Animation
BYTE[1] unknown (0x00)
BYTE[1] Frame
else
BYTE[1] unknown (0x00)
BYTE[4] unknown (0x00000000)
endif

endif

Subcommand: 0x1a: Extended stats
BYTE[1] stat // 0: str, 1: dex, 2:int
BYTE[1] status // 0: up, 1:down, 2: locked

Subcommand 0x1b: New Spellbook
BYTE[2] unknown, always 1
BYTE[4] Spellbook serial
BYTE[2] Item Id
BYTE[2] scroll offset // 1==regular, 101=necro, 201=paladin, 401=bushido, 501=ninjitsu, 601=spellweaving
BYTE[8] spellbook content // first bit of first byte = spell #1, second bit of first byte = spell #2, first bit of second byte = spell #8, etc

Subcommand 0x1c: Spell selected, client side
BYTE[2] unknown, always 2
BYTE[2] selected spell(0-indexed)+scroll offset from sub 0x1b

Subcommand 0x1D: Send House Revision State
byte[4] houseserial
byte[4] revision state

Subcommand 0x1E:
byte[4] houseserial

Subcommand 0x20: Custom Housing.
BYTE[4] houseserial
BYTE[1] type ( 0x01=Update, 0x04=Begin, 0x05=End )

if ( type == Update )
BYTE[2] Tile graphic
BYTE[2] X
BYTE[2] Y
BYTE[1] Z
else
BYTE[2] 0x00
BYTE[4] 0xFFFFFFFF
BYTE[1] 0xFF

Subcommand 0x21: (AOS) Ability icon confirm.
Note: no data, just (bf 00 05 21)

Subcommand 0x22: Damage
BYTE[2] unknown, always 1
BYTE[4] Serial
BYTE[1] Damage // how much damage was done ?

Subcommand 0x24: UnKnown
BYTE[1] unknown. UOSE Introduced

Subcommand 0x25: SE Ability Change
BYTE[1] Ability ID
BYTE[1] 0/1 On/Off

Subcommand 0x26: Mount Speed
BYTE[1] 0=normal,1=fast,2=slow, >2=Hybrid movement?

Subcommand 0x2A: Change Race Request (only 2D, Server packet)
BYTE[1] Female (1=true, 0=false)
BYTE[1] Race (1=human, 2=elf, 3=gargoyle, 255=error)

Subcommand 0x2A: Change Race Response (only 2D, Client packet)
BYTE[2] Skin color
BYTE[2] Hair style
BYTE[2] Hair color
BYTE[2] Beard style
BYTE[2] Beard color

Subcommand 0x2C: Use targeted item (client side packet)
Byte[4] Item Serial
Byte[4] Target Serial

Subcommand 0x2D: Cast targeted spell (client side packet)
Byte[2] Spell ID
Byte[4] Target Serial

Subcommand 0x2E: Use targeted skill (client side packet)
Byte[2] Skill ID (1 to 55, if Skill Id = 0 -> last skill)
Byte[4] Target Serial

Subcommand 0x2F: KR House Menu Gump
todo: there are a lot of subsub commands...

Subcommand 0x32: Toggle gargoyle flying
Byte[4] unk1 (always 0x0100)
Byte[2] unk2 (always 0x0)


Notes
Subcommand 1: Server Sent. This sets up stack on the client and whenever it moves, it takes the top value from this stack and uses it. (key1 starts at the top, key6 at the bottom)

Subcommand 2: Server Sent. This key is added to the top of the stack. In other words, it's the one that will be used next. Basically, the other 5 only get used when the client is sending moves faster than the server is responding.

Subcommand 4: Server Sent.

Subcommand 5: Client Sent.

Subcommand 6: Sent by both. Contains subcommands for 0x6 for the party system. Be sure you check the packet listing good before attempting these.

Subcommand 8: Server Sent.

Subcommand a: Read above. Client Sent.

Subcommand b: Client Sent once at login of character.

Subcommand c: Client Sent when they close their status bar.

Subcommand e: Client Sent. Server responds with Play Animation packets.
List of animation IDs:
00 00 00 06 - Yawn
00 00 00 15 - Faint
00 00 00 20 - Bow
00 00 00 21 - Salute
00 00 00 64 - Applaud
00 00 00 66 - Argue
00 00 00 68 - Blow Kiss
00 00 00 69 - Formal Bow
00 00 00 6B - Cover Ears
00 00 00 6C - Curtsey
00 00 00 6D - Jig
00 00 00 6E - Folk Dance
00 00 00 6F - Dance
00 00 00 70 - Tribal Dance
00 00 00 71 - Fold Arms
00 00 00 72 - Impatient
00 00 00 73 - Lecture
00 00 00 74 - Nod
00 00 00 75 - Point
00 00 00 77 - Greet Salute
00 00 00 79 - Shake Head
00 00 00 7B - Victory
00 00 00 7C - Celebrate
00 00 00 7D - Wave
00 00 00 7E - Two Handed Wave
00 00 00 7F - Long Distance Wave
00 00 00 80 - What?

Subcommand f: Client Sent.

Subcommand 13: Client Sent.

Subcommand 14: Server Sent. TextID is broken into two decimal parts:
stringID / 1000: intloc fileID
stringID % 1000: text index

So, say you want the 123rd text entry of intloc06, the stringID would be 6123. Newer clients without the intloc files, that use single Cliloc files, use the math ID - 3000000 for the ID to send.

Subcommand 15: Client Sent.

Subcommand 16: Server Sent.

Subcommand 17: Server Sent. Shows codex of wisdom's text #msg. (msg is linearised (including sub indices) index number starting with 1).

Subcommand 18: Server Sent. Number of maps: currently 3 (0 = Fellucca, 1 = Trammel, and 2 = Ilshenar). This packet is sent by the server to the client, telling the client to use the mapdif* and stadif* files for patching map and statics.

Subcommand 19: Server Sent. Is sent after the 0x11 packet to enable the stat locks and show their states on 4.x+ clients.

Subcommand 1a: Client Sent. Stat Lock change packet. Sent when client changes the lock state for a stat on the status bar.

Subcommand 1b: Server Sent. Related to new spell packet 0xBF Subcommand 0x1C.

Subcommand 1c: Client Sent. Related to new spellbook packet 0xBF Subcommand 0x1b.

Subcommand 1d: Server Sent. Part of AoS Custom Housing. Sends a house Revision number for handling client multi cache. If revision is newer than what client has it asks for the new multi packets to cache it.

Subcommand 1e: Client Sent. Part of AoS Custom Housing. Sends a houses ID number back after recieving the 0x1D subcommand

Subcommand 0x20: Server Sent.

Subcommand 21: Server Sent. This is sent to reset the color of the icons, and also sent when the server denies the ability attempt (not enough skill or mana).

Subcommand 22: Server Sent. Packet for displaying damage dealt above the mobs head.

Subcommand 24: Client Sent. Unknown.

Subcommand 0x25: Server Sent. Toggles SE Abilities.

Subcommand 0x26: Server Sent. Toggles Running at mount speed, even when not mounted.

Subcommand 0x2C: Client Sent. For use with the new Bandage Self client macro. Introduced in 5.0.4x

Subcommand 0x2D: Spell Ids
0x01 - 0x40 - Mage Spells
0x65 - 0x75 - Necromancer Spells
0xC9 - 0xD2 - Paladin Spells
0x91 - 0x96 - Samurai Spells
0xF5 - 0xFC - Ninja Spells
0x59 - 0x68 - Spellweaving Spells

Packets

Show All
Sort By ID

Both
[0x0C] Edit Tile Data (God Client)
[0x15] Follow
[0x22] Character Move ACK/ Resync Request
[0x2C] Resurrection Menu
[0x39] Remove (Group)
[0x3A] Send Skills
[0x56] Map Packet (cartography/treasure)
[0x66] Books (Pages)
[0x6C] Target Cursor Commands
[0x6F] Secure Trading
[0x71] Bulletin Board Messages
[0x72] Request War Mode
[0x73] Ping Message
[0x93] Book Header ( Old )
[0x95] Dye Window
[0x98] All Names (3D Client Only)
[0x99] Give Boat/House Placement View
[0x9A] Console Entry Prompt
[0xB8] Request/Char Profile
[0xBB] Ultima Messenger
[0xBD] Client Version
[0xBE] Assist Version
> [0xBF] General Information Packet
[0xC2] Unicode TextEntry
[0xC8] Client View Range
[0xC9] Get Area Server Ping (God Client)
[0xCA] Get User Server Ping (God Client)
[0xD0] Configuration File
[0xD1] Logout Status
[0xD4] Book Header ( New )
[0xD6] Mega Cliloc
[0xD7] Generic AOS Commands
[0xF1] Freeshard List

Client
[0x00] Create Character
[0x01] Disconnect Notification
[0x02] Move Request
[0x03] Talk Request
[0x04] Request God Mode (God Client)
[0x05] Request Attack
[0x06] Double Click
[0x07] Pick Up Item
[0x08] Drop Item
[0x09] Single Click
[0x0A] Edit (God Client)
[0x12] Request Skill etc use
[0x13] Drop->Wear Item
[0x14] Send Elevation (God Client)
[0x1E] Control Animation
[0x34] Get Player Status
[0x35] Add Resource (God Client)
[0x37] Move Item (God Client)
[0x38] Pathfinding in Client
[0x3B] Buy Item(s)
[0x45] Version OK
[0x46] New Artwork
[0x47] New Terrain
[0x48] New Animation
[0x49] New Hues
[0x4A] Delete Art
[0x4B] Check Client Version
[0x4C] Script Names
[0x4D] Edit Script File
[0x50] Board Header
[0x51] Board Message
[0x52] Board Post Message
[0x57] Update Regions
[0x58] Add Region
[0x59] New Context FX
[0x5A] Update Context FX
[0x5C] Restart Version
[0x5D] Login Character
[0x5E] Server Listing
[0x5F] Server List Add Entry
[0x60] Server List Remove Entry
[0x61] Remove Static Object
[0x62] Move Static Object
[0x63] Load Area
[0x64] Load Area Request
[0x69] Change Text/Emote Colors
[0x75] Rename Character
[0x7D] Response To Dialog Box
[0x80] Login Request
[0x83] Delete Character
[0x8D] Character Creation ( KR + SA 3D clients only )
[0x91] Game Server Login
[0x9B] Request Help
[0x9F] Sell List Reply
[0xA0] Select Server
[0xA4] Client Spy
[0xA7] Request Tip/Notice Window
[0xAC] Gump Text Entry Dialog Reply
[0xAD] Unicode/Ascii speech request
[0xB1] Gump Menu Selection
[0xB3] Chat Text
[0xB5] Open Chat Window
[0xB6] Send Help/Tip Request
[0xC5] Invalid Map (Request?)
[0xD9] Spy On Client
[0xE0] Bug Report (KR)
[0xE1] Client Type (KR/SA)
[0xEC] Equip Macro (KR)
[0xED] Unequip Item Macro (KR)
[0xEF] KR/2D Client Login/Seed
[0xF8] Character Creation ( 7.0.16.0 )

Server
[0x0B] Damage
[0x11] Status Bar Info
[0x16] New Health bar status update (SA)
[0x17] Health bar status update (KR)
[0x1A] Object Info
[0x1B] Char Locale and Body
[0x1C] Send Speech
[0x1D] Delete Object
[0x1F] Explosion
[0x20] Draw Game Player
[0x21] Char Move Rejection
[0x23] Dragging Of Item
[0x24] Draw Container
[0x25] Add Item To Container
[0x26] Kick Player
[0x27] Reject Move Item Request
[0x28] Drop Item Failed/Clear Square (God Client?)
[0x29] Drop Item Approved
[0x2A] Blood
[0x2B] God Mode (God Client)
[0x2D] Mob Attributes
[0x2E] Worn Item
[0x2F] Fight Occuring
[0x30] Attack Ok
[0x31] Attack Ended
[0x32] Unknown
[0x33] Pause Client
[0x36] Resource Tile Data (God Client
[0x3C] Add multiple Items In Container
[0x3E] Versions (God Client)
[0x3F] Update Statics (God Client)
[0x4E] Personal Light Level
[0x4F] Overall Light Level
[0x53] Reject Character Logon
[0x54] Play Sound Effect
[0x55] Login Complete
[0x5B] Time
[0x65] Set Weather
[0x6D] Play Midi Music
[0x6E] Character Animation
[0x70] Graphical Effect
[0x74] Open Buy Window
[0x76] New Subserver
[0x77] Update Player
[0x78] Draw Object
[0x7C] Open Dialog Box
[0x82] Login Denied
[0x86] Resend Characters After Delete
[0x88] Open Paperdoll
[0x89] Corpse Clothing
[0x8C] Connect To Game Server
[0x90] Map Message
[0x97] Move Player
[0x9C] Request Assistance
[0x9E] Sell List
[0xA1] Update Current Health
[0xA2] Update Current Mana
[0xA3] Update Current Stamina
[0xA5] Open Web Browser
[0xA6] Tip/Notice Window
[0xA8] Game Server List
[0xA9] Characters / Starting Locations
[0xAA] Allow/Refuse Attack
[0xAB] Gump Text Entry Dialog
[0xAE] Unicode Speech message
[0xAF] Display Death Action
[0xB0] Send Gump Menu Dialog
[0xB2] Chat Message
[0xB7] Help/Tip Data
[0xB9] Enable locked client features
[0xBA] Quest Arrow
[0xBC] Seasonal Information
[0xC0] Graphical Effect
[0xC1] Cliloc Message
[0xC4] Semivisible (Smurf it!)
[0xC6] Invalid Map Enable
[0xC7] 3D Particle Effect
[0xCB] Global Que Count
[0xCC] Cliloc Message Affix
[0xD2] Extended 0x20
[0xD3] Extended 0x78
[0xD8] Send Custom House
[0xDB] Character Transfer Log
[0xDC] SE Introduced Revision
[0xDD] Compressed Gump
[0xDE] Update Mobile Status
[0xDF] Buff/Debuff System
[0xE2] New Character Animation (KR)
[0xE3] KR Encryption Response
[0xF0] Krrios client special
[0xF3] Object Information (SA)
[0xF5] New Map Message