This page aims to explain how packets are handled in terms of structure and functionality
Properties
A packet has several data properties, them being game and networking information as:
- Header - A byte that identifies the packet
- Data - The data that is being sent/received
- Sequence - A byte that signs if the packet is sequenced
On sending/receiving packets may be encrypted, check Network Encryption for more information
Structure
The packets have two different structures, constant and dynamic The goals of each type is predefined by the type of data handled
- Note: The sequence byte is always the last byte in a packet, no matter the structure and its optional
Constant
The constant packet structure follows the expected order of data:
Type | Size (bytes) | Description |
---|---|---|
Header | 1 Byte | The number identifier of the packet |
Data | X Bytes | The expected constant data values |
Sequence | 1 Byte | The sequence value which defines if this packet is sequenced (optional) |
Dynamic
The dynamic packet structure follows the expected order of data:
Type | Size (bytes) | Description |
---|---|---|
Header | 1 Byte | The number identifier of the packet |
Size | 2 Bytes | The size of the entire packet, Header + Size + Data (excluding sequence) |
Data | ? Bytes | The expected dynamic data values |
Sequence | 1 Byte | The sequence value which defines if this packet is sequenced (optional) |
Flow/Direction
The packets have different type denominations of directions regarding from who to who they are sent:
- CG(Client Game) - Client to Server
- GC(Game Client) - Server to Client
- GG(Game Game) - Server to Server
- GD(Game Database - Server to Database
- DG(Database Game) - Database to Server
Note: The meaning of 'Server' in this case is a server core such authentication/game core and the meaning of 'Database' is the database core
Known Packets
Here is a list table of the known packets and its directions:
Client to Server
Header Identification - Byte (Hex) | Description | Sequenced | Structure |
---|---|---|---|
1 (0x01) | Holds account credentials to perform a login | True | #CG Packet Login |
2 (0x02) | Holds target, attack and cube information to perform several actions | True | #CG Packet Attack |
3 (0x03) | Holds length and type of a chat string to perform a chat command | True | #CG Packet Chat |
4 (0x04) | Holds information to create a new character | True | #CG Packet Player Create |
5 (0x05) | Holds an index and a key to delete an existing character | True | #CG Packet Player Destroy |
6 (0x06) | Holds an index to select an existing character | True | #CG Packet Player Select |
7 (0x07) | Holds movement, positional and duration information to move the main character | True | #CG Packet Player Move |
8 (0x08) | Holds identification and positional information of entities to perform synchronization | True | #CG Packet Sync Position |
9 (0x09) | Holds account credentials and character index to perform a direct entrance in the game | True | #CG Packet Direct Enter |
10 (0xA) | Signals the server to enter the game world | True | #CG Packet Enter Game |
11 (0xB) | Holds inventory position to perform an item use | True | #CG Packet Item Use |
12 (0xC) | Holds inventory position and Elk(game currency) to perform an item/elk drop in the game world | True | #CG Packet Item Drop |
13 (0xD) | Holds source, target position and count to perform a item move inside the inventory | True | #CG Packet Item Move |
15 (0xF) | Holds position of game world item to perform a pickup | True | #CG Packet Pickup |
16 (0x10) | Holds position and quickslot information to perform a quickslot addition | True | #CG Packet Quickslot Add |
17 (0x11) | Holds position to perform a quickslot removal | True | #CG Packet Quickslot Delete |
18 (0x12) | Holds source and target position to perform a quickslot swap | True | #CG Packet Quickslot Swap |
19 (0x13) | Holds a chat string to perform a whisper action | True | #CG Packet Whisper |
20 (0x14) | Holds inventory position and Gold(game currency) to perform an item/gold drop in the game world | True | #CG Packet Item Drop 2 |
26 (0x1A) | Holds entity information to perform a click action | True | #CG Packet On Click |
28 (0x1C) | Holds character position information (undefined reason) | True | #CG Packet Character Position |
29 (0x1D) | Holds answer information for a script/quest | True | #CG Packet Script Answer |
30 (0x1E) | Holds an input string for a quest response | True | #CG Packet Quest Input String |
31 (0x1F) | Holds answer information for a quest confirmation | True | #CG Packet Quest Confirm |
Report Doc