Closed dbechrd closed 2 years ago
sucks. Here's a better one for free (note, you can remove the code block backticks to get a Markdown table if you prefer).
Client -> Server ID | Size | Effect | Usage ---|------|---------------------------------|--------------------------------- 01 | 5 | Walk | 01 [WORD x] [WORD y] 02 | 9 | Walk to entity | 02 [DWORD entity kind] [DWORD id] 03 | 5 | Run | 03 [WORD x] [WORD y] 04 | 9 | Run to entity | 04 [DWORD entity kind] [DWORD id] 05 | 5 | Shift Left Click Skill | 05 [WORD x] [WORD y] 06 | 9 | Left Skill on unit | 06 [DWORD entity kind] [DWORD id] 07 | 9 | Shift left skill on unit | 07 [DWORD entity kind] [DWORD id] 08 | 5 | Shift Left skill (hold) | 08 [WORD x] [WORD y] 09 | 9 | Left Skill on unit (hold) | 09 [DWORD entity kind] [DWORD id] 0a | 9 | Shift left skill unit (hold) | 0a [DWORD entity kind] [DWORD id] 0b | 1 | Unknown | 0b 0c | 5 | Right skill | 0c [WORD x] [WORD y] 0d | 9 | Right skill unit | 0d [DWORD entity kind] [DWORD id] 0e | 9 | Shift right skill unit | 0e [DWORD entity kind] [DWORD id] 0f | 5 | Right skill (hold) | 0f [WORD x] [WORD y] 10 | 9 | Right skill unit (hold) | 10 [DWORD entity kind] [DWORD id] 11 | 9 | Shift Right skill unit (hold) | 11 [DWORD entity kind] [DWORD id] 12 | 1 | Unknown | 12 13 | 9 | Interact (click) entity | 13 [DWORD entity kind] [DWORD id] 14 | * | Overhead Chat | 14 00 00 [*char message] 00 00 00 15 | * | Chat | 15 01 00 [*char message] 00 00 00 16 | 13 | Pick item (ground) | 16 04 00 00 00 [DWORD id] [DWORD inventory(0) or cursor (1)] 17 | 5 | Drop item (ground) | 17 [DWORD id] 18 | 17 | Insert item in buffer | 18 [DWORD id] [DWORD xpos] [DWORD ypos] [DWORD buffer] 19 | 5 | Remove item from buffer | 19 [DWORD id] 1a | 9 | Equip item | 1a [DWORD id] [WORD position] 00 00 1b | 9 | Swap 2 handed item | 1b [DWORD id] [WORD position] 00 00 1c | 3 | Remove body item | 1c [WORD position] 1d | 9 | Swap cursor item with body | 1d [DWORD id] [WORD position] 00 00 1e | 9 | Swap 2 1-handed with a 2-handed | 1e [DWORD unknown] [DWORD unknown] 1f | 17 | Swap cursor/buffer items | 1f [DWORD cursor item id] [DWORD buffer item id] [DWORD xpos] [DWORD ypos] 20 | 13 | Activate buffer item | 20 [DWORD id] [WORD x] 00 00 [WORD y] 00 00 21 | 9 | Stack items | 21 [DWORD item to stack id] [DWORD item where it stacks id] 22 | 5 | Unstack items | 22 [DWORD unknown] 23 | 9 | Item to belt | 23 [DWORD id] [WORD x] [WORD y] 24 | 5 | Item from belt | 24 [DWORD id] 25 | 9 | Switch belt item | 25 [DWORD cursor item][DWORD belt item] 26 | 13 | Use belt item | 26 [DWORD id] [DWORD shift key stats] [DWORD unknown] 27 | 9 | Identify item | 27 [DWORD item id] [DWORD scroll id] 28 | 9 | Socket item | 28 [DWORD item to socket id] [DWORD socketable item id] 29 | 9 | Scroll to book | 29 [DWORD scroll id] [DWORD book id] 2a | 9 | Item to cube (indirect) | 2a [DWORD item id] [DWORD cube id] 2b | -- | Unused | -- 2c | -- | Unused (Logged as hack) | -- 2d | -- | Unused (Logged as hack) | -- 2e | -- | Unknown | -- 2f | 9 | Initiate entity chat | 2f [DWORD entity kind] [DWORD id] 30 | 9 | Terminate entity chat | 30 [DWORD entity kind] [DWORD id] 31 | 9 | Quest message | 31 [DWORD id] [DWORD message] 32 | 17 | Buy item from NPC buffer | 32 [DWORD entity id] [DWORD item id] [DWORD tab] [DWORD cost] 33 | 17 | Sell item to NPC buffer | 33 [DWORD entity id] [DWORD item id] [DWORD tab] [DWORD cost] 34 | 5 | Identify items with NPC | 34 [DWORD entity id] 35 | 17 | Repair | 35 [DWORD entity id] [DWORD item id] [DWORD tab] [DWORD cost?] 36 | 9 | Hire merc | 36 [DWORD entity id] [DWORD merc id] 37 | 5 | Identify (from gamble) | 37 [DWORD item id] 38 | 13 | Entity action | 38 [DWORD action] [DWORD entity id] [DWORD complement] 39 | 5 | Purchase Life | 39 [DWORD NPC id] 3a | 3 | Add stat point | 3a [WORD stat] 3b | 3 | Add skill point | 3b [WORD skill] 3c | 9 | Select skill | 3c [WORD skill] 00 [BYTE left (80) or right 00) skill] FF FF FF FF 3d | 5 | Highlight a door | 3d [DWORD object id] (Logged as Mode (5) crash) 3e | 5 | Activate Scroll of Inifuss | 3e [DWORD scroll of infuss. id] 3f | 3 | Play audio | 3f [WORD sound message] 40 | 1 | Request Quest Data | 40 41 | 1 | Resurrect | 41 42 | -- | Unknown/Unused | -- 43 | -- | Unknown/Unused | -- 44 | 17 | Staff in orifice | 44 [DWORD orifice entity kind] [DWORD orifice id] [DWORD staff id] [DWORD entity state] 45 | 9 | Change TP Location | 45 [DWORD entity id] [WORD location] 00 00 (logged as hack) 46 | 13 | Have Merc Interact | 46 [DWORD merc id] [DWORD entity id][DWORD entity type] 47 | 13 | Move Merc | 47 [DWORD Merc ID] [WORD X] 00 00 [WORD Y] 00 00 48 | 1 | Turns off busy state | 48 49 | 9 | Take WP/Close WP | 49 [DWORD wp id] [BYTE destination] 00 00 00 4a | -- | Unused | -- 4b | 9 | Request Entity Update | 4b [DWORD entity type][DWORD entity id] 4c | 5 | Transmorgify | 4c [DWORD Object ID] 4d | 3 | Play NPC Message | 4d [WORD NPC Sound Message] 4e | -- | Unused | -- 4f | 7 | Click Button | 4f [WORD button id] [WORD unknown] [WORD complement] 50 | 9 | Drop Gold | 50 [DWORD player id] [DWORD gold pieces] 51 | 9 | Bind hotkey to skill | 51 [BYTE skill] [BYTE left (80) or right 00) skill] [WORD hotkey] FF FF FF FF 52 | 5 | Unknown | 52 [DWORD unknown] 53 | 1 | Turn stamina on (Not used) | 53 54 | 1 | Turn stamina off (Not used) | 54 55 | -- | Unused | -- 56 | -- | Unused | -- 57 | -- | Unused | -- 58 | 3 | Quest Completed | 58 [WORD Quest id] 59 | 17 | Make entity move | 59 [DWORD entity kind] [DWORD entity id] [WORD x] 00 00 [WORD y] 00 00 5a | -- | Unused | -- 5b | -- | Unused | -- 5c | -- | Unused | -- 5d | 7 | Squelch/Hostile | 5d [BYTE button] [BYTE toggle on/off] [DWORD player id] 5e | 6 | Invite Party | 5e [BYTE button] [DWORD player id] 5f | 5 | Update Player Pos | 5f [WORD x] [WORD y] 60 | 1 | Swap weapons | 60 61 | 3 | Drop/Pickup merc item | 61 [WORD position (00 to drop)] 62 | 5 | Resurrect Merc | 62 [DWORD npc id] 63 | 5 | Shift left-click item (to belt) | 63 [DWORD item] 64 | 9 | Hack Detection | 64 [DWORD unknown] [DWORD unknown] 65 | -- | Hack Detection | 65 66 | * | Warden Response | 66 [BYTE Data Length] 00 [VARIABLE Data] 67 | -- | | -- 68 | 37 | Game Join Request | 68 [DWORD Server Hash] [WORD Server Token] [BYTE Char Type] [DWORD VerByte (0x0d)] [DWORD Unknown] [DWORD Unknown] 00 [Char Name[15]] 00 69 | 1 | Leave Game | 69 6a | -- | | -- 6b | 1 | Join Game | 6b 6c | 262 | Upload Character Save | 6c [dwUnk] [dwUnk] [char[252] SaveFile] 6d | 13 | Ping | 6d [DWORD Tickcount] [DWORD Delay] [DWORD WardenResponse or 00000000] 6e | -- | Unknown/Unused | -- 6f | -- | Unknown/Unused | -- Server -> Client ID | Size | Effect | Usage ------|------|----------------------------|---------------------------- 00 | 1 | Game Loading | 00 01 | 8 | Game Flags | 01 [BYTE Difficulty] [WORD Unknown] [WORD Hardcore?] [BYTE Expansion] [BYTE Ladder] 02 | 1 | Load Successful | 02 03 | 12 | Load Act | 03 [BYTE Act] [DWORD Map ID] [WORD Area Id] [DWORD Unknown] 04 | 1 | Load Complete | 04 05 | 1 | Unload Complete | 05 06 | 1 | Game Exit Sucessful | 06 07 | 6 | Map Reveal | 07 [WORD Tile X] [WORD Tile Y] [BYTE Area Id] 08 | 6 | Map Hide | 08 [WORD Tile X] [WORD Tile Y] [BYTE Area Id] 09 | 12 | Assign Lvl Warp (Door) | 09 [BYTE Unit Type] [DWORD Unit Id] [WORD X] [WORD Y] [WORD Warp Id] 0a | 6 | Remove Object | 0a [BYTE Unit Type] [DWORD Unit Id] 0b | 6 | Game Handshake | 0b [BYTE Unit Type] [DWORD Unit Id] 0c | 9 | NPC Hit | 0c [BYTE Unit Type] [DWORD Unit Id] [WORD Animation Id] [BYTE Life] 0d | 13 | Player Stop | 0d [BYTE Unit Type] [DWORD Unit Id] [BYTE Unknown] [WORD Unit X] [WORD Unit Y] [BYTE Unknown] [BYTE Life] 0e | 12 | Object State | 0e [BYTE Unit Type] [DWORD Unit Id] [BYTE Unknown (0x03)] [BYTE 0x00 = Can't Change Back || 0x01 = Can Change Back] [DWORD Unit State] 0f | 16 | Player Move | 0f [BYTE Unit Type] [DWORD Unit Id] [BYTE 0x01 = Walk || 0x23 = Run || 0x20 = Knockback] [WORD Target X] [WORD Target Y] 00 [WORD Current X] [WORD Current Y] 10 | 16 | Player To Target | 10 [BYTE Unit Type] [DWORD Unit Id] [BYTE 0x02 = Walk || 0x24 = Run] [BYTE Target Type] [DWORD Target Id] [WORD Current X] [WORD Current Y] 11 | 8 | Report Kill | 11 [BYTE Unit Type] [DWORD Unit Id] [WORD Unknown] 12 | 26 | Unknown | -- 13 | 14 | Unknown | -- 14 | 18 | Unknown | -- 15 | 11 | Reassign Player | 15 [BYTE Unit Type] [DWORD Unit Id] [WORD X] [WORD Y] [BYTE 0x01 = True || 0x00 = False] 16 | * | Unknown | -- 17 | -- | Unused | -- 18 | 15 | Unknown | -- 19 | 2 | Gold to Inv. | 19 [BYTE Amount] 1a | 2 | Add Exp. | 1a [BYTE Amount] 1b | 3 | Add Exp. | 1b [WORD Amount] 1c | 5 | Add Exp. | 1c [DWORD Amount] 1d | 3 | Base Attribute | 1d [BYTE Attribute] [BYTE Amount] 1e | 4 | Base Attribute | 1e [BYTE Attribute] [WORD Amount] 1f | 6 | Base Attribute | 1f [BYTE Attribute] [DWORD Amount] 20 | 10 | Attribute Update | 20 [DWORD Unit Id] [BYTE Attribute] [DWORD Amount] 21 | 12 | Update Item Oskill | 21 [WORD Unknown] [DWORD Unit Id] [WORD Skill] [BYTE Base Level] [BYTE Bonus Amount] [BYTE Unknown] 22 | 12 | Update Item Skill | 22 [WORD Unknown (Unit Type?)] [DWORD Unit Id] [WORD Skill] [BYTE Amount] [WORD Unknown] 23 | 13 | Set Skill | 23 [BYTE Unit Type] [DWORD Unit Id] [Byte 0x00 = Right || Byte 0x01 = Left] [WORD Skill] FF FF FF FF 24 | 90 | Unknown | -- 25 | 90 | Unknown | -- 26 | * | Game Chat | 26 [WORD Chat Kind] [WORD Unknown (0x02)] 00 00 00 00 [BYTE 0x05 = Normal Chat || 0x01 = Whisper] [Char Name] 00 [Message] 00 26 05 | * | Overhead | 26 05 00 00 [BYTE Unit Type] [DWORD Unit Id] [WORD Unknown] 00 [Message] 00 27 | 40 | NPC Info | 27 [BYTE Unit Type] [DWORD Unit Id] [BYTES[34] Unknown] 28 | 103 | Quest Info | Research Incomplete 29 | 97 | Game Quest Info | Research Incomplete 2a | 15 | NPC Transaction | 2a [BYTE Trade Type] [BYTE Result? - 0x00 = Purchased || 0x01 = Sold || 0x0c = Insuffecient Gold] [DWORD Unknown] [DWORD Merchandise Id] [DWORD Gold in Inventory] 2b | -- | Unused | -- 2c | 8 | Play Sound | 2c [BYTE Unit Type] [DWORD Unit Id] [WORD Sound] 2d | -- | Unused | -- 2e | -- | Unused | -- 2f | -- | Unused | -- 30 | -- | Unused | -- 31 | -- | Unused | -- 32 | -- | Unused | -- 33 | -- | Unused | -- 34 | -- | Unused | -- 35 | -- | Unused | -- 36 | -- | Unused | -- 37 | -- | Unused | -- 38 | -- | Unused | -- 39 | -- | Unused | -- 3a | -- | Unused | -- 3b | -- | Unused | -- 3c | -- | Unused | -- 3d | -- | Unused | -- 3e | * | Update Item Stats | Research Incomplete 3f | 8 | Use Stackable Item | -- 40 | 13 | Unknown | -- 41 | -- | Unused | -- 42 | 6 | Clear Cursor | 42 [BYTE Unit Type] [DWORD Player Id] 43 | -- | Unused | -- 44 | -- | Unused | -- 45 | 13 | Unknown | -- 46 | -- | Unused | -- 47 | 11 | Relator 1 | 47 [WORD Param 1] [DWORD Unit Id] [DWORD Param 2] 48 | 11 | Relator 2 | 48 [WORD Param 1] [DWORD Unit Id] [DWORD Param 2] 49 | -- | Unused | -- 4a | -- | Unused | -- 4b | -- | Unused | -- 4c | 16 | Unit Skill on Target | 4c [BYTE Unit Type] [DWORD Unit Id] [WORD Skill] [BYTE Unknown] [BYTE Unknown] [DWORD Target Id] 00 00 4d | 17 | Unit Cast Skill | 4d [BYTE Unit Type] [DWORD Unit Id] [DWORD Skill] [BYTE Unknown] [WORD X] [WORD Y] 00 00 4e | 7 | Merc For Hire | 4e [WORD Merc Id?] [DWORD Unknown] 4f | 1 | Start Merc List | 4f 50 | 15 | Unknown | Needs Research 51 | 14 | Assign Object | 51 [BYTE Object Type] [DWORD Object Id] [WORD Object Code] [WORD X] [WORD Y] [BYTE State] [BYTE Interaction Type] 52 | 42 | Quest Log Info | Research Incomplete 53 | 10 | Player Slot Refresh | 53 [DWORD Slot #] [BYTE Unknown 0x00 || 0x80] [DWORD Tickcount?] 54 | 10 | Unknown | -- 55 | 3 | Unknown | -- 56 | -- | Unused | -- 57 | -- | Unused | -- 58 | 14 | Unknown | -- 59 | 26 | Assign Player | 59 [DWORD Unit Id] [BYTE Char Type] [NULLSTRING[16] Char Name] [WORD X] [WORD Y] 5a | 40 | Event Messages | * 5b | 36 | Player In Game | 5b [WORD Packet Length] [DWORD Player Id] [BYTE Char Type] [NULLSTRING[16] Char Name] [WORD Char Lvl] [WORD Party Id] 00 00 00 00 00 00 00 00 5c | 5 | Player Left Game | 5c [DWORD Player Id] 5d | 5 | Quest Item State | 5d [BYTE Unknown (Id?)] [DWORD State?] 5e | 38 | Unknown | -- 5f | 5 | Unknown | -- 60 | 7 | Townportal State | 60 [BYTE State] [BYTE Area Id] [DWORD Unit Id] 61 | 2 | Unknown | 61 [BYTE Unknown] 62 | 7 | Unknown | -- 63 | * | Waypoint Menu | 63 [DWORD Unit Id] [BYTES* Available Waypoints] 64 | -- | Unused | -- 65 | 7 | Player Kill Count | 65 [DWORD Player Id] [WORD Count] 66 | 7 | Unknown | -- 67 | 16 | NPC Move | 67 [DWORD Unit Id] [BYTE 0x01 = Walk || 0x17 = Run] [WORD X] [WORD Y] [WORD Unknown] [BYTE Unknown] [WORD Unknown] [BYTE Unknown] 68 | 21 | NPC Move to Target | 68 [DWORD Unit Id] [BYTE 0x00 = Walk || 0x18 = Run] [WORD X] [WORD Y] [BYTE Target Unit Type] [DWORD Target Id] [WORD Unknown] [BYTE Unknown] [WORD Unknown] [BYTE Unknown] 69 | 12 | NPC State | 69 [DWORD Unit Id] [BYTE State] [WORD X] [WORD Y] [BYTE Unit Life] [BYTE Unknown] 6a | 12 | Unknown | -- 6b | 16 | NPC Action | 6b [DWORD Unit Id] [BYTE Action] 00 00 00 00 00 00 [WORD X] [WORD Y] 6c | 16 | NPC Attack | 6c [DWORD Unit Id] [WORD Attack Type] [DWORD Target Id] [BYTE Target Type] [WORD X] [WORD Y] 6d | 10 | NPC Stop | 6d [DWORD Unit Id] [WORD X] [WORD Y] [BYTE Unit Life] 6e | 1 | Unknown | 6e 6f | 1 | Unknown | 6f 70 | 1 | Unknown | 70 71 | 1 | Unknown | 71 72 | 1 | Unknown | 72 73 | 32 | Unknown | -- 74 | 10 | Player Corpse Assign | 74 [BYTE Assign 0x00 = False || 0x01 True] [DWORD Owner Id] [DWORD Corpse Id] 75 | 13 | Player Party Info | 75 [DWORD Unit Id] [WORD Party Id] [WORD Char Level] [WORD Relationship] [WORD In Your Party? 0x00 = False || 0x01 = True] 76 | 6 | Player In Proximity | 76 [BYTE Unit Type] [BYTE Unit Id] 77 | 2 | Button Actions | 77 [BYTE Action] 78 | 21 | Trade Accepted | 78 [NULLSTRING[16] Char Name] [DWORD Unit Id] 79 | 6 | Gold in Trade | 79 [BYTE Gold Owner] [DWORD Amount] 7a | 13 | Pet Action | 7a [BYTE 0x00 = Unsummoned/Lost Sight || 0x01 = Summoned/Assign] [BYTE Skill] [WORD Pet Type] [DWORD Owner Id] [DWORD Pet Id] 7b | 8 | Assign Skill Hotkey | 7b [BYTE Slot] [BYTE Skill] [BYTE 0x00 = Right || 0x80 = Left] FF FF FF FF 7c | 6 | Use Scroll | 7c [BYTE Type] [DWORD Item Id] 7d | 18 | Set Item State | -- 7e | 5 | Unknown | -- 7f | 10 | Ally Party Info | 7f [BYTE Unit Type] [WORD Unit Life] [DWORD Unit Id] [DWORD Unit Area Id] 80 | -- | Unused | -- 81 | 20 | Assign Merc | 81 [BYTE Unknown] [WORD Merc Kind?] [DWORD Owner Id] [DWORD Merc Id] [DWORD Unknown] [DWORD Unknown] 82 | 29 | Portal Ownership | 82 [DWORD Owner Id] [NULLSTRING[16] Owner Name] [DWORD Local Id] [DWORD Remote Id] 83 | -- | Unused | -- 84 | -- | Unused | -- 85 | -- | Unused | -- 86 | -- | Unused | -- 87 | -- | Unused | -- 88 | -- | Unused | -- 89 | 2 | Special Quest Event | 89 [BYTE Event Id] 8a | 6 | NPC Wants to Interact | 8a [BYTE Unit Type] [DWORD Unit Id] 8b | 6 | Player Relationship | 8b [DWORD Unit Id] [BYTE 0x00 = No Party || 0x01 = In Party || 0x02 = Wants to Party] 8c | 11 | Relationship Update | 8c [DWORD Player 1 Id] [DWORD Player 2 Id] [WORD Relation State] 8d | 7 | Assign Player To Party | 8d [DWORD Player Id] [WORD Party Id] 8e | 10 | Corpse Assign | 8e [BYTE 0x00 = Unassign || 0x01 = Assign] [DWORD Owner Id] [DWORD Corpse Id] 8f | 33 | Pong | 8f [BYTES[32] 0x00] 90 | 13 | Party Automap Info | 90 [DWORD Player Id] [DWORD Player X] [DWORD Player Y] 91 | 26 | Unknown | -- 92 | 6 | Unknown | -- 93 | 8 | Unknown | -- 94 | * | Base Skill Levels | 94 [BYTE Amount of Skills] [DWORD Player Id] (for each skill-) [WORD Skill] [BYTE Level] 95 | 13 | Life and Mana Update | 95 [WORD Unit Life] [WORD Unit Mana] [WORD Unit Stamina] [WORD X] [WORD Y] [WORD Unknown] 96 | 9 | Walk Verify | 96 [WORD Stamina] [WORD X] [WORD Y] [WORD State] 97 | 1 | Weapon Switch | 97 98 | 7 | Unknown | -- 99 | 16 | Skill Triggered | -- 9a | 17 | Unknown | -- 9b | 7 | (Merc Related?) | Research Needed 9b [WORD Unknown] [DWORD Unknown] 9c | * | Item Action (World) | * 9d | * | Item Action (Owned) | * 9e | 7 | Merc Attribute | 9e [BYTE Attribute] [DWORD Merc Id] [BYTE Amount] 9f | 8 | Merc Attribute | 9f [BYTE Attribute] [DWORD Merc Id] [WORD Amount] a0 | 10 | Merc Attribute | a0 [BYTE Attribute] [DWORD Merc Id] [DWORD Amount] a1 | 7 | Merc Add Exp. | a1 [DWORD Merc Id] [BYTE Amount] a2 | 8 | Merc Add Exp. | a2 [DWORD Merc Id] [WORD Amount] a3 | 24 | Unknown | -- a4 | 3 | Unknown | -- a5 | 8 | Unknown | -- a6 | * | Unknown | -- a7 | 7 | Delayed State | a7 [BYTE Unit Type] [DWORD Unit Id] [BYTE State] a8 | * | Set State | a8 [BYTE Unit Type] [DWORD Unit Id] [BYTE Packet Length] [BYTE State] [VOID State Effects] a9 | 7 | End State | a9 [BYTE Unit Type] [DWORD Unit Id] [BYTE State] aa | * | Add Unit | aa [BYTE Unit Type] [DWORD Unit Id] [BYTE Packet Length] [VOID State Info] ab | 7 | NPC Heal | ab [BYTE Unit Type] [DWORD Unit Id] [BYTE Unit Life] ac | * | Assign NPC | ac [DWORD Unit Id] [WORD Unit Code] [WORD X] [WORD Y] [BYTE Unit Life] [BYTE Packet Length] [VOID State Info] ad | 9 | Unknown | -- ae | * | Warden Request | ae [WORD Packet Length Excluding Header] [VOID Data] af | 2 | Connection Info | af [BYTE ProtocolVer] b0 | 1 | Game Connection Terminated | b0 b1 | 53 | Unknown | -- b2 | * | Unknown | -- b3 | 5 | IP Ban? | b3 [DWORD Param?] b4 | * | Unknown | --
Thanks @dbechrd
https://github.com/MephisTools/diablo2-protocol/wiki/packets
sucks. Here's a better one for free (note, you can remove the code block backticks to get a Markdown table if you prefer).