Merge pull request #2 from dozmus/master

Fix 317 pages
This commit is contained in:
Deniz Ozmus 2018-10-13 14:52:38 +01:00 committed by GitHub
commit 821175a26a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
109 changed files with 2148 additions and 1932 deletions

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Add # Add Friend
friend\|description=Sent when a player adds a friend to their friends
list.\|opcode=188\|type=Fixed\|length=8\|revision=317}} == Add Friend ==
=== Description ===
This packet is sent when a player adds a friend to their friends list. This packet is sent when a player adds a friend to their friends list.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID. | Key | Value |
\|- \|} |--|--|
| Name | Add friend |
| Description | Sent when a player adds a friend to their friends list. |
| Opcode | 188 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Add # Add Ignore
ignore\|description=Sent when a player adds another player to their This packet is sent when a player adds another player to their ignore list.
ignore list.\|opcode=133\|type=Fixed\|length=8\|revision=317}} == Add
Ignore ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Add ignore |
| Description | Sent when a player adds another player to their ignore list. |
| Opcode | 133 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player adds another player to their ignore ## Packet Structure
list. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Long](/Data-Types.html#common-data-types) | The other players ID. |
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
\|- \|}

View File

@ -1,20 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Alternate Item Option 2
{{packet\|name=Alternate Item Option 2\|description=Sent when the player This packet is sent when a player clicks the alternate second option of an item.
clicks the alternate second option of an
item.\|opcode=16\|type=Fixed\|length=6\|revision=317}} == Alternate Item
Option 2 ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Alternate Item Option 2 |
| Description | Sent when the player clicks the alternate second option of an item. |
| Opcode | 16 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the alternate second option of ## Packet Structure
an item. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The ID of the item. |
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot the item is in. |
Standard Data Types\|Special A\]\] \| The ID of the item. \|- \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The slot the item is in. \|- \|- \| \[\[Data
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| The frame ID. \|- \|}

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Animation Reset
{{packet\|name=Animation reset\|description=Resets all animations in the
immediate area. \|opcode=1\|type=Fixed\|length=0\|revision=317}} ==
Animation Reset ==
=== Description ===
Resets all animations for players and npcs in the surrounding area. Resets all animations for players and npcs in the surrounding area.
## Packet Details
| Key | Value |
|--|--|
| Name | Animation reset |
| Description | Resets all animations in the immediate area. |
| Opcode | 1 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Description
{{packet\|name=Attack (NPC)\|description=Sent when a player attacks an
NPC\|opcode=72\|type=Fixed\|length=2\|revision=317}} == Attack (NPC) ==
=== Description ===
This packet is sent when a player attacks an NPC. This packet is sent when a player attacks an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data | Key | Value |
Types\#Non Standard Data Types\|Special A\]\] \| The NPC ID. \|- \|} |--|--|
| Name | Attack (NPC) |
| Description | Sent when a player attacks an NPC |
| Opcode | 72 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC ID. |

View File

@ -1,13 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Audio
{{packet\|name=Audio\|description=Sets what audio/sound is to play at a
certain moment.\|opcode=147\|type=Fixed\|length=N/A\|revision=317}} ==
Audio ==
=== Description ===
Sets what audio/sound is to play at a certain moment. Sets what audio/sound is to play at a certain moment.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Word\|Word\]\] \| The sound id. \|- \| \[\[Data | Key | Value |
Types\#Byte\|Byte\]\] \| The volume. \|- \| \[\[Data |--|--|
Types\#Word\|Word\]\] \| The delay. \|- \|} | Name | Audio |
| Description | Sets what audio/sound is to play at a certain moment. |
| Opcode | 147 |
| Type | Fixed |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The sound id. |
| [Byte](/Data-Types.html#common-data-types) | The volume. |
| [Short](/Data-Types.html#common-data-types) | The delay. |

View File

@ -1,18 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank # Bank 10 Items
10 items\|description=Sent when a player banks 10 of a certain This packet is sent when the player attempts to bank 10 of a certain item.
item.\|opcode=43\|type=Fixed\|length=6\|revision=317}} == Bank 10 Items
==
=== Description === Note: This packet is also used for selling/buying 5 of an item from a shop.
This packet is sent when the player attempts to bank 10 of a certain ## Packet Details
item.<br> '''Note:''' This packet is also used for selling/buying 5 of | Key | Value |
an item from a shop. |--|--|
| Name | Bank 10 items |
| Description | Sent when a player banks 10 of a certain item. |
| Opcode | 43 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Data Type | Description |
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data |--|--|
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The frame ID. |
Types\|Special A\]\] \| The item ID. \|- \| \[\[Data Types\#Standard | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot ID. |
A\]\] \| The slot ID. \|}

View File

@ -1,19 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank # Bank 5 Items
5 items\|description=Sent when a player attempts to bank 5 of a certain This packet is sent when a player attempts to bank 5 of a certain item.
item.\|opcode=117\|type=Fixed\|length=6\|revision=317}} == Bank 5 Items
==
=== Description === Note: This packet is also used for buying/selling 1 of an item from a shop.
This packet is sent when a player attempts to bank 5 of a certain ## Packet Details
item.<br> '''Note:''' This packet is also used for buying/selling 1 of | Key | Value |
an item from a shop. |--|--|
| Name | Bank 5 items |
| Description | Sent when a player attempts to bank 5 of a certain item. |
| Opcode | 117 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Data Type | Description |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data |--|--|
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Little | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The item ID. | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The slot ID. |
\|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The slot ID. \|- \|}

View File

@ -1,16 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank # Bank X Items Part-1
x items part-1\|description=Sent when a player requests to bank an X
amount of items.\|opcode=135\|type=Fixed\|length=6\|revision=317}} ==
Bank X Items Part-1 ==
=== Description ===
This packet is sent when a player requests to bank an X amount of items. This packet is sent when a player requests to bank an X amount of items.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \| The items slot. \|- \| Unsigned |--|--|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | Name | Bank x items part-1 |
Standard Data Types\|Special A\]\] \| The interface ID. \|- \| \[\[Data | Description | Sent when a player requests to bank an X amount of items. |
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data | Opcode | 135 |
types\|Short\]\] \| The item ID. \|- \|} | Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items slot. |
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The item ID. |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=bank # Bank X Items Part-2
x items part-2\|description=Sent when a player enters an X amount of This packet is sent when a player enters an X amount of items they want to bank.
items they want to
bank.\|opcode=208\|type=Fixed\|length=4\|revision=317}} == Bank X Items
Part-2 ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | bank x items part-2 |
| Description | Sent when a player enters an X amount of items they want to bank. |
| Opcode | 208 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
This packet is sent when a player enters an X amount of items they want ## Packet Structure
to bank. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Int](/Data-Types.html#common-data-types) | The amount of the item you want to bank. |
\[\[Data Types\#Standard data types\|Integer\]\] \| The amount of the
item you want to bank. \|- \|}

View File

@ -1,19 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank # Bank 10 Items
all items\|description=Sent when a player banks all of a certain item This packet is sent when a player banks all of a certain item they have in their inventory.
they have in their
inventory.\|opcode=129\|type=Fixed\|length=6\|revision=317}} == Bank 10
Items ==
=== Description === Note: This packet is also used for selling/buying 10 items at a shop.
This packet is sent when a player banks all of a certain item they have ## Packet Details
in their inventory. <br> '''Note:''' This packet is also used for | Key | Value |
selling/buying 10 items at a shop. |--|--|
| Name | Bank all items |
| Description | Sent when a player banks all of a certain item they have in their inventory. |
| Opcode | 129 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data | Data Type | Description |
Types\#Non Standard Data Types\|Special A\]\] \| The items slot ID. \|- |--|--|
\| Unsigned \[\[Data Types\#Standard data types\|Short\]\] \| The | Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The items slot ID. |
interface ID. \|- \| Unsigned \[\[Data Types\#Standard data | Unsigned [Short](/Data-Types.html#common-data-types) | The interface ID. |
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\] | Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
\| The item ID. \|- \|}

View File

@ -1,6 +1,2 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Player Updating # Player Updating
==
=== Description ===
This packet begins the player updating. This packet begins the player updating.

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Button click
{{packet\|name=Button click\|description=Sent when a player clicks an This is sent when a player clicks a button in-game, with the id of the button being clicked.
in-game button.\|opcode=185\|type=Fixed\|length=2\|revision=317}} ==
Button click ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Button click |
| Description | Sent when a player clicks an in-game button. |
| Opcode | 185 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
This is sent when a player clicks a button in-game, with the id of the ## Packet Structure
button being clicked. | Data Type | Description |
|--|--|
=== Packet Structure === | [Short](/Data-Types.html#common-data-types) | The button id. |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \| The button id. \|- \|}

View File

@ -1,14 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Camera Movement
{{packet\|name=Camera movement\|description=Sent when the player moves
the camera.\|opcode=86\|type=Fixed\|length=4\|revision=317}} == Camera
Movement ==
=== Description ===
This packet is sent when a player moves their game camera. This packet is sent when a player moves their game camera.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \| The Y coordinate of | Key | Value |
the camera. \|- \| \[\[Data Types\#Standard data types\|Short\]\] |--|--|
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The X | Name | Camera movement |
coordinate of the camera. \|- \|} | Description | Sent when the player moves the camera. |
| Opcode | 86 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The Y coordinate of the camera. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The X coordinate of the camera. |

View File

@ -1,56 +1,70 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Camera oscillate
{{packet\|name=Camera oscillate\|description=Begin camera Begins camera oscillation, which is implemented using a configurable sinusoidal oscillator to offset a specific degree of freedom.
oscillation\|opcode=35\|type=Fixed\|length=4\|revision=317}} == Camera
oscillate ==
=== Description === Begins camera oscillation, which is implemented ## Packet Details
using a configurable sinusoidal oscillator to offset a specific degree | Key | Value |
of freedom. |--|--|
| Name | Camera oscillate |
| Description | Begin camera oscillation. |
| Opcode | 35 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
=== Packet Structure === ## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Parameter (camera X, Z, Y, yaw, pitch) |
| [Byte](/Data-Types.html#common-data-types) | Jitter (for randomization) |
| [Byte](/Data-Types.html#common-data-types) | Amplitude |
| [Byte](/Data-Types.html#common-data-types) | Frequency (scaled by 100) |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard ## Other Information
data types\|Byte\]\] \| Parameter (camera X, Z, Y, yaw, pitch) \|- \| The oscillate event enables the client to oscillate one of 5 of it's position parameters.
\[\[Data Types\#Standard data types\|Byte\]\] \| Jitter - for i.e. corresponding to the camera's degrees of freedom; parameters 0, 1, and 2 refer to the location of the camera, while 3 and 4 deal with the camera's orientation.
randomization \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| Together, these enable complex effects involving manipulation of the camera position to give rise to simulated earth-quakes and camera shock.
Amplitude \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \|
Frequency (scaled by 100) \|- \|}
=== Other Information === The oscillate event enables the client to | Parameter | Description |
oscillate one of 5 of it's position parameters, i.e. corresponding to |--|--|
the camera's degrees of freedom; parameters 0, 1, and 2 refer to the | 0 | Camera location along world X axis (a horizontal axis, aligned with map grid X) |
location of the camera, while 3 and 4 deal with the camera's | 1 | Camera location along world Z axis (vertical axis) |
orientation. Together, these enable complex effects involving | 2 | Camera location along world Y axis (a horizontal axis, aligned with map grid Y) |
manipulation of the camera position to give rise to simulated | 3 | Camera orientation in world X plane w.r.t. world Z axis, i.e. yaw |
earth-quakes and camera shock. {\| border=2 ! Parameter ! Description | 4 | Camera orientation in world Z plane w.r.t. world X axis, i.e. pitch |
\|- \| 0 \| Camera location along world X axis (a horizontal axis,
aligned with map grid X) \|- \| 1 \| Camera location along world Z axis
(vertical axis) \|- \| 2 \| Camera location along world Y axis (a
horizontal axis, aligned with map grid Y) \|- \| 3 \| Camera orientation
in world X plane w.r.t. world Z axis, i.e. yaw \|- \| 4 \| Camera
orientation in world Z plane w.r.t. world X axis, i.e. pitch \|- \|}
Note there is no built-in way to manipulate camera roll, as this is not
one of the camera's degrees of freedom.
=== What it's doing === Every time the world is rendered, each camera Note there is no built-in way to manipulate camera roll, as this is not one of the camera's degrees of freedom.
parameter that is enabled for oscillation is offset by a value computed
as follows: {\| border=2 ! Calculation ! Formula \|- \| Delta \| (int)
((Math.random() \* (double) (jitter \* 2 + 1) - (double) jitter) +
Math.sin((double) phase \* ((double) frequency / 100D)) \* (double)
amplitude); \|- \|} Each parameter's phase accumulator (phase) is
incremented by 1 each logic update.
=== Parameter === The offset itself is detailed as follows for each ## What it's doing
parameter: {\| border=2 ! Parameter ! Action \|- \| 0 \| camera\_x += Every time the world is rendered, each camera parameter that is enabled for oscillation is offset by a value computed as follows:
delta \|- \| 1 \| camera\_z += delta \|- \| 2 \| camera\_y += delta \|-
\| 3 \| camera\_yaw = camera\_yaw + delta & 0x7ff; \|- \| 4 \|
camera\_pitch += delta \|- \|} Note that the camera's yaw is corrected
modulo 0x7ff, or 2048, which is equivalent to 2{{{pi}}} radians in
Jagex's binary angle system. This is not done to the camera pitch, which
is instead clamped (see below).
=== Note === For oscillating the camera pitch, clamping is done to | Calculation | Formula |
ensure the angle not out of bounds: {\| border=2 \|- \|if (camera\_pitch |--|--|
\< 128) then camera\_pitch = 128 \|- \|if (camera\_pitch \> 383) then | Delta | `(int) ((Math.random() * (double) (jitter * 2 + 1) - (double) jitter) + Math.sin((double) phase * ((double) frequency / 100D)) * (double) amplitude);` |
camera\_pitch = 383 \|- \|} This is do to Jagex restricting the possible
range of orientations the camera may take. Each parameter's phase accumulator (phase) is incremented by 1 each logic update.
## Parameter
The offset itself is detailed as follows for each parameter:
| Parameter | Action |
|--|--|
| 0 | `camera_x += delta` |
| 1 | `camera_z += delta` |
| 2 | `camera_y += delta` |
| 3 | `camera_yaw = camera_yaw + delta & 0x7ff;` |
| 4 | `camera_pitch += delta` |
Note that the camera's yaw is corrected modulo 0x7ff, or 2048, which is equivalent to 2 \pi radians in Jagex's binary angle system.
This is not done to the camera pitch, which is instead clamped (see below).
## Note
For oscillating the camera pitch, clamping is done to ensure the angle not out of bounds:
```java
if (camera_pitch < 128)
camera_pitch = 128
if (camera_pitch > 383)
camera_pitch = 383
```
This is due to Jagex restricting the possible range of orientations the camera may take.

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Chat # Chat interface click
interface click\|description=Received when a button is pressed, in a Received by the server when a button is pressed in a [Chat interface](Chat-interface.html).
chat interface.\|opcode=40\|type=Fixed\|length=2\|revision=317}} == Chat
interface click ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Chat interface click |
| Description | Received when a button is pressed, in a chat interface. |
| Opcode | 40 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Received by the server when a button is pressed in a chat interface ## Packet Structure
\[http://rswiki.moparisthebest.com/index.php?title=317:Chat\_interface\]. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Short](/Data-Types.html#common-data-types) | Frame ID. |
\[\[Data Types\#Standard data types\|Short\]\] \| Frame ID. \|- \|}

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Chat # Chat Interface
interface\|description=Shows an interface in the chat
box.\|opcode=164\|type=Fixed\|length=2\|revision=317}} == Chat Interface
==
=== Description ===
This packet attaches an interface to the chat box. This packet attaches an interface to the chat box.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|} |--|--|
| Name | Chat interface |
| Description | Shows an interface in the chat box. |
| Opcode | 164 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Chat # Chat Settings
settings\|description=Sends the chat privacy
settings\|opcode=206\|type=Fixed\|length=3\|revision=317}} == Chat
Settings ==
=== Description ===
This packet sends the chat privacy settings. This packet sends the chat privacy settings.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Byte\]\] \| Public chat setting. | Key | Value |
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| Private chat |--|--|
setting. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| Trade | Name | Chat settings |
setting. \|- \|} | Description | Sends the chat privacy settings |
| Opcode | 206 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Public chat setting. |
| [Byte](/Data-Types.html#common-data-types) | Private chat setting. |
| [Byte](/Data-Types.html#common-data-types) | Trade setting. |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Clear # Clear inventory
Inventory\|description=Used to set all of the items and item stacks in Clears a given inventory, by setting all of its item ids to negative one and its item stacks to zero.
an inventory to
nothing.\|opcode=72\|type=Fixed\|length=2\|revision=317}} == Clear
inventory ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Clear Inventory |
| Description | Used to set all of the items and item stacks in an inventory to nothing. |
| Opcode | 72 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
This packet creates a loop through a given inventory interface id and ## Packet Structure
sets the item ids to negative one and the item stacks to zero. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|}

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Clear # Clear Screen
screen\|description=Clears the screen of all open
interfaces.\|opcode=219\|type=Fixed\|length=0\|revision=317}} == Clear
Screen ==
=== Description ===
Removes all open interfaces from the players screen. Removes all open interfaces from the players screen.
## Packet Details
| Key | Value |
|--|--|
| Name | Clear screen |
| Description | Clears the screen of all open interfaces. |
| Opcode | 219 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,10 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Close # Close Window
window\|description=Sent when a player presses the close, exit or cancel This packet is sent when a player presses the close, exit or cancel button on an interface.
button on an
interface.\|opcode=130\|type=Fixed\|length=0\|revision=317}} == Close
Window ==
=== Description === ## Packet Details
| Key | Value |
This packet is sent when a player presses the close, exit or cancel |--|--|
button on an interface. | Name | Close window |
| Description | Sent when a player presses the close, exit or cancel button on an interface. |
| Opcode | 130 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,37 +1,39 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Construct Map Region
{{packet\|name=Construct map region\|description=Constructs a new map The construct map region packet sends a dynamic map region that is constructed by using groups of 8x8 tiles.
region from a palette of 8x8 tiles.\|opcode=241\|type=Variable It is generally used for instanced areas, such as fight caves, and in later revisions, player owned houses.
Short\|length=N/A\|revision=317}} == Construct Map Region ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Construct map region |
| Description | Constructs a new map region from a palette of 8x8 tiles. |
| Opcode | 241 |
| Type | Variable Short |
| Length | N/A |
| Revision | 317 |
The construct map region packet sends a dynamic map region that is ## Packet Structure
constructed by using groups of 8\*8 tiles. It is generally used for | Data Type | Description |
instanced areas, such as fight caves, and in later revisions, player |--|--|
owned houses. | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The region Y coordinate (absolute Y coordinate / 8), plus 6. |
| Bit block | See below. |
| [Short](/Data-Types.html#common-data-types) | The region X coordinate (absolute X coordinate / 8), plus 6. |
=== Packet Structure === ## Bit block
The bit block contains the 'palette' of map regions to make up the new region.
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard A loop is used to construct it, as follows:
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
A\]\] \| The region Y coordinate (absolute Y coordinate / 8), plus 6.
\|- \| \[\[\#Bit block\|Bit block\]\] \| See below. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| The region X coordinate
(absolute X coordinate / 8), plus 6. \|}
==== Bit block ==== ```java
for (int z = 0; z < 4; z++) {
The bit block actually contains the 'palette' of map regions to make up for(int x = 0; x < 13; x++) {
the new region. for(int y = 0; y < 13; y++) {
// data for this region
There is a loop, like this, used to construct it: }
}
for(int z = 0; z \< 4; z++) { for(int x = 0; x \< 13; x++) { for(int y = }
0; y \< 13; y++) { // data for this region } } } ```
The individual format in each iteration of the loop is: The individual format in each iteration of the loop is:
* 1 bit - set to 0 to indicate to display nothing, 1 to display a region
- '''1 bit''' - set to 0 to indicate to display nothing, 1 to display * 26 bits - if the flag above is set to 1: `region_x << 14 | region_y << 3`
a region
- '''26 bits''' - if the flag above is set to 1 - region x \<\< 14 \|
region y \<\< 3

View File

@ -1,22 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Create Projectile # Create Projectile
==
=== Description ===
Creates a projectile. Creates a projectile.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
\[\[Data Types\#Standard data types\|Byte\]\] \| Position offset \|- \| | Data Type | Description |
\[\[Data Types\#Standard data types\|Byte\]\] \| Second X offset \|- \| |--|--|
\[\[Data Types\#Standard data types\|Byte\]\] \| Second Y offset \|- \| | [Byte](/Data-Types.html#common-data-types) | Position offset |
\[\[Data Types\#Standard data types\|Short\]\] \| Target \|- \| \[\[Data | [Byte](/Data-Types.html#common-data-types) | Second X offset |
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data | [Byte](/Data-Types.html#common-data-types) | Second Y offset |
types\|Short\]\] \| Graphic ID \|- \| \[\[Data Types\#Standard data | [Short](/Data-Types.html#common-data-types) | Target |
types\|Byte\]\] \| Starting height \|- \| \[\[Data Types\#Standard data | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Graphic ID |
types\|Byte\]\] \| Ending height \|- \| \[\[Data Types\#Little | [Byte](/Data-Types.html#common-data-types) | Starting height |
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | [Byte](/Data-Types.html#common-data-types) | Ending height |
\| Starting time \|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Starting time |
\[\[Data Types\#Standard data types\|Short\]\] \| Speed \|- \| \[\[Data | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Speed |
Types\#Standard data types\|Byte\]\] \| Initial slope \|- \| \[\[Data | [Byte](/Data-Types.html#common-data-types) | Initial slope |
Types\#Standard data types\|Byte\]\] \| Initial distance from source \|- | [Byte](/Data-Types.html#common-data-types) | Initial distance from source |
\|}

View File

@ -1,28 +1,29 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Design Screen
{{packet\|name=Design screen\|description=Sent when a player is choosing This packet is sent when a player is choosing their character design options.
their character design
options.\|opcode=101\|type=Fixed\|length=13\|revision=317}} == Design
Screen ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Design screen |
| Description | Sent when a player is choosing their character design options. |
| Opcode | 101 |
| Type | Fixed |
| Length | 13 |
| Revision | 317 |
This packet is sent when a player is choosing their character design ## Packet Structure
options. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Byte](/Data-Types.html#common-data-types) | The players gender. |
\[\[Data Types\#Standard data types\|Byte\]\] \| The players gender. \|- | [Byte](/Data-Types.html#common-data-types) | The players head model. |
\| \[\[Data Types\#Standard data types\|Byte\]\] \| The players head | [Byte](/Data-Types.html#common-data-types) | The players beard model. |
model. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The | [Byte](/Data-Types.html#common-data-types) | The players torso model. |
players beard model. \|- \| \[\[Data Types\#Standard data | [Byte](/Data-Types.html#common-data-types) | The players arm model. |
types\|Byte\]\] \| The players torso model. \|- \| \[\[Data | [Byte](/Data-Types.html#common-data-types) | The players hand model. |
Types\#Standard data types\|Byte\]\] \| The players arm model. \|- \| | [Byte](/Data-Types.html#common-data-types) | The players leg model |
\[\[Data Types\#Standard data types\|Byte\]\] \| The players hand model. | [Byte](/Data-Types.html#common-data-types) | The players foot model. |
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The players leg | [Byte](/Data-Types.html#common-data-types) | The players hair color. |
model \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The | [Byte](/Data-Types.html#common-data-types) | The players torso color. |
players foot model. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] | [Byte](/Data-Types.html#common-data-types) | The players leg color. |
\| The players hair color. \|- \| \[\[Data Types\#Standard data | [Byte](/Data-Types.html#common-data-types) | The players foot color. |
types\|Byte\]\] \| The players torso color. \|- \| \[\[Data | [Byte](/Data-Types.html#common-data-types) | The players skin color. |
Types\#Standard data types\|Byte\]\] \| The players leg color. \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| The players foot color.
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The players skin
color. \|- \|}

View File

@ -1,31 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Display Hint Icon
{{packet\|name=Display hint icon\|description=Display a hint icon to the
player.\|opcode=254\|type=Variable Byte\|length=N/A\|revision=317}}
== Display Hint Icon ==
=== Description ===
Displays a hint icon. Displays a hint icon.
=== Packet Structure === ## Packet Details
| Key | Value |
|--|--|
| Name | Display hint icon |
| Description | Display a hint icon to the player. |
| Opcode | 254 |
| Type | Variable Byte |
| Length | N/A |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard ## Packet Structure
data types\|Byte\]\] \| The Icon type \|- \|} | Data Type | Description |
|--|--|
=== if type == 1 === | [Byte](/Data-Types.html#common-data-types) | The Icon type |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data type\|Short\]\] \| Icon NPC target \|- \|}
=== if type \>= 2 && type \<= 6 ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data type\|Short\]\] \| Icon X \|- \| \[\[Data Types\#Standard data
type\|Short\]\] \| Icon Y \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| Icon draw height \|- \|}
=== if type == 10 ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data type\|Short\]\] \| Icon player target \|- \|}

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Drop # Drop Item
item\|description=Sent when a player wants to drop an item onto the
ground.\|opcode=87\|type=Fixed\|length=6\|revision=317}} == Drop Item ==
=== Description ===
This packet is sent when a player wants to drop an item onto the ground. This packet is sent when a player wants to drop an item onto the ground.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | Key | Value |
Standard Data Types\|Special A\]\] \| The item ID. \|- \| \[\[Data |--|--|
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data | Name | Drop item |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data | Description | Sent when a player wants to drop an item onto the ground. |
Types\|Special A\]\] \| The slot ID. \|- \|} | Opcode | 87 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
| [Short](/Data-Types.html#common-data-types) | The frame ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot ID. |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Enter # Enter name
name\|description=Opens up the name entry interface. Sending the packet to the client will make the client open up the "Enter name" interface for things such as friend-adding.
\|opcode=187\|type=Fixed\|length=0\|revision=317}} == Enter name ==
=== Description === ## Packet Details
| Key | Value |
Sending the packet to the client will make the client open up the "Enter |--|--|
name" interface for things such as friend-adding. | Name | Enter name |
| Description | Opens up the name entry interface. |
| Opcode | 187 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,17 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Equip # Equip Item
item\|description=Sent when a player equips an
item.\|opcode=41\|type=Fixed\|length=6\|revision=317}} == Equip Item ==
=== Description ===
This is sent when a player equips an item in-game. This is sent when a player equips an item in-game.
=== Packet Structure === ## Packet Details
| Key | Value |
|--|--|
| Name | Equip item |
| Description | Sent when a player equips an item. |
| Opcode | 41 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| Unsigned \[\[Data ## Packet Structure
Types\#Standard data types\|Short\]\] \| The ID of the item. \|- \| | Data Type | Description |
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data |--|--|
Types\#Non Standard Data Types\|Special A\]\] \| The slot of the item. | Unsigned [Short](/Data-Types.html#common-data-types) | The ID of the item. |
\|- \| Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data | Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot of the item. |
Types\#Non Standard Data Types\|Special A\]\] \| The ID of the | Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The ID of the interface. |
interface. \|- \|}

View File

@ -1,20 +1,35 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Flash # Flash sidebar
sidebar\|description=Causes a sidebar icon to start
flashing.\|opcode=24\|type=Fixed\|length=1\|revision=317}} == Flash
sidebar ==
=== Description ===
This packet causes a sidebar icon to start flashing. This packet causes a sidebar icon to start flashing.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non | Key | Value |
Standard data types\|Special S\]\] \| The sidebar ID. \|- \|} |--|--|
| Name | Flash sidebar |
| Description | Causes a sidebar icon to start flashing. |
| Opcode | 24 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
==== Values ==== The below are the different values for this packet. {\| ## Packet Structure
border=2 ! Value ! Icon \|- \| 0 \|\| Attack type \|- \| -1 \|\| Stats | Data Type | Description |
\|- \| -2 \|\| Quests \|- \| -3 \|\| Inventory \|- \| -4 \|\| Wearing |--|--|
\|- \| -5 \|\| Prayer \|- \| -6 \|\| Magic \|- \| -7 \|\| '''EMPTY''' | [Byte](/Data-Types.html#common-data-types) [Special S](/Data-Types.html#bespoke-data-types) | The sidebar ID. |
\|- \| -8 \|\| Friends list \|- \| -9 \|\| Ignore list \|- \| -10 \|\|
Log out \|- \| -11 \|\| Settings \|- \| -12 \|\| Emotes \|- \| -13 \|\| ## Values
Music \|- \|} | Sidebar ID | Icon |
|--|--|
| 0 | Attack type |
| -1 | Stats |
| -2 | Quests |
| -3 | Inventory |
| -4 | Wearing |
| -5 | Prayer |
| -6 | Magic |
| -7 | *EMPTY* |
| -8 | Friends list |
| -9 | Ignore list |
| -10 | Log out |
| -11 | Settings |
| -12 | Emotes |
| -13 | Music |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Focus # Focus Change
change\|description=Sent when the game client window goes in and out of This packet is sent when the game client window goes in and out of focus. The payload consists of one byte that is either 1 or 0; 1 if the client is in focus and 0 if not.
focus.\|opcode=3\|type=Fixed\|length=1\|revision=317}} == Focus Change
==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Focus change |
| Description | Sent when the game client window goes in and out of focus. |
| Opcode | 3 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
This packet is sent when the game client window goes in and out of ## Packet Structure
focus. The payload consists of one byte that is either 1 or 0; 1 if the | Data Type | Description |
client is in focus and 0 if not. |--|--|
| [Byte](/Data-Types.html#common-data-types) | Whether or not the client is in focus. |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Whether or not the
client is in focus. \|- \|}

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Follow
{{packet\|name=Follow\|description=Sent when a player clicks the follow This packet is sent when a player clicks the follow option on another player.
option on another
player\|opcode=39\|type=Fixed\|length=2\|revision=317}} == Follow ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Follow |
| Description | Sent when a player clicks the follow option on another player |
| Opcode | 39 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
This packet is sent when a player clicks the follow option on another ## Packet Structure
player. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | Unsigned [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The other players ID. |
Unsigned \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The other players ID. \|- \|}

View File

@ -1,22 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Force # Force Client Setting
client setting\|description=Forcefully alters a client setting value and The client stores various user settings in an array, the default values are also stored in another array. This packet changes the default value for a setting and its current value to the one given.
default value to some supplied
value.\|opcode=36\|type=Fixed\|length=3\|revision=317}} == Force Client
Setting ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Force client setting |
| Description | Forcefully alters a client setting value and default value to some supplied value. |
| Opcode | 36 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
The client stores various user settings in an array, the default values ## Packet Structure
are also stored in another array. This packet changes the default value | Data Type | Description |
for a setting and its current value to the one given. |--|--|
| [Short](/Data-Types.html#common-data-types) [Little Endian](/Data-Types.html#little-endian) | Setting ID number. |
| [Byte](/Data-Types.html#common-data-types) | New value (and default value) for the setting. |
=== Packet Structure === ## Other Information
Opcode 87 (length 6) is extremely similar in structure, but the new value is received as an Middle Endian Small Int.
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \[\[Data Types\#Byte Order\|Little Endian\]\] \|
Setting ID number. \|- \| \[\[Data Types\#Standard data types\|Byte\]\]
\| New value (and default value) for the setting. \|- \|}
=== Other Information === Opcode 87 (length 6) is extremely similar in
structure, but the new value is received as an Middle Endian Small Int.
This suggests its for use with bigger setting values. This suggests its for use with bigger setting values.

View File

@ -1,16 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Friends List Status
{{packet\|name=Friends list status\|description=Sends the friends list
load status\|opcode=221\|type=Fixed\|length=1\|revision=317}} == Friends
List Status ==
=== Description ===
This packet sends the first list load status. This packet sends the first list load status.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Byte\]\] \| The status of the | Key | Value |
friends list. \|- \|} |--|--|
| Name | Friends list status |
| Description | Sends the friends list load status |
| Opcode | 221 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
==== Values ==== The below are the different values for this packet. {\| ## Packet Structure
border=2 ! Value ! Response \|- \| 0 \| Loading \|- \| 1 \| Connecting | Data Type | Description |
\|- \| 2 \| Loaded \|- \|} |--|--|
| [Byte](/Data-Types.html#common-data-types) | The status of the friends list. |

View File

@ -1,13 +1,9 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Ground Item # Ground Item Action
Action == This packet is sent when a player clicks the first option on a ground item.
=== Description === ## Packet Structure
| Data Type | Description |
This packet is sent when a player clicks the first option on a ground |--|--|
item. === Packet Structure === {\|border=2 ! Data Type ! Description \|- | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items X coordinate. |
\| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Additional [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items Y coordinate. |
Types\#Standard data types\|Short\]\] \| The items X coordinate. \|- \| | Additional [Short](/Data-Types.html#common-data-types) | The item ID. |
Additional \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The items Y coordinate. \|- \|
Additional \[\[Data Types\#Standard data types\|Short\]\] \| The item
ID. \|- \|}

View File

@ -1,15 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Hidden Interface
{{packet\|name=Hidden interface\|description=Sets an interface to be
hidden until hovered
over.\|opcode=171\|type=Fixed\|length=3\|revision=317}}
== Hidden Interface ==
=== Description ===
Sets an interface to be hidden until hovered over. Sets an interface to be hidden until hovered over.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Byte\]\] \| Hidden until hovered | Key | Value |
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| Interface Id |--|--|
\|- \|} | Name | Hidden interface |
| Description | Sets an interface to be hidden until hovered over. |
| Opcode | 171 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Hidden until hovered |
| [Short](/Data-Types.html#common-data-types) | Interface Id |

View File

@ -1,10 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Idle # Idle logout
logout\|description=Sent when the player has become idle and should be This is sent when the player becomes idle and should be logged out. This is sent after the player is idle for 60 seconds, after that it is sent every 10 seconds as long as the player is idle.
logged out. \|opcode=202\|type=Fixed\|length=0\|revision=317}} == Idle
logout ==
=== Description === ## Packet Details
| Key | Value |
This is sent when the player becomes idle and should be logged out. This |--|--|
is sent after the player is idle for 60 seconds, after that it is sent | Name | Idle logout |
every 10 seconds as long as the player is idle. | Description | Sent when the player has become idle and should be logged out. |
| Opcode | 202 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Idle
{{packet\|name=Idle\|description=Idle Sent when the player is idle for the current cycle, and acts as a "ping" packet.
packet..\|opcode=0\|type=Fixed\|length=0\|revision=317}} == Idle ==
=== Description === ## Packet Details
| Key | Value |
Sent when the player is idle for the current cycle, and acts as a "ping" |--|--|
packet. | Name | Idle |
| Description | Idle packet.. |
| Opcode | 0 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,18 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Initialize Player
{{packet\|name=Initialize player\|description=Sends the player's
membership status and their current index on the server's player
list.\|opcode=249\|type=Fixed\|length=3\|revision=317}} == Initialize
Player ==
=== Description ===
Sends the player membership flag and player list index. Sends the player membership flag and player list index.
=== Packet Structure === ## Packet Details
| Key | Value |
|--|--|
| Name | Initialize player |
| Description | Sends the player's membership status and their current index on the server's player list. |
| Opcode | 249 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard ## Packet Structure
data types\|Byte\]\] \[\[Data Types\#Non Standard Data Types\|Special | Data Type | Description |
A\]\] \| Membership flag (1 = member, 0 = free). \|- \| \[\[Data |--|--|
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data | [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Membership flag (1 = member, 0 = free). |
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\] | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Player list index. |
\| Player list index. \|- \|}

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Input # Input amount
amount\|description=Opens up the amount input interface. Sending the packet to the client will make the client open up the "Input amount" interface over the chatbox for things such as Buy X and Bank X.
\|opcode=27\|type=Fixed\|length=0\|revision=317}} == Input amount ==
=== Description === ## Packet Details
| Key | Value |
Sending the packet to the client will make the client open up the "Input |--|--|
amount" interface over the chatbox for things such as Buy X and Bank X. | Name | Input amount |
| Description | Opens up the amount input interface. |
| Opcode | 27 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,13 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Interface animation
{{packet\|name=Interface animation\|description=Sets an interface's
model animation\|opcode=200\|type=Fixed\|length=4\|revision=317}} ==
Interface animation ==
=== Description ===
Sets an interface's model animation. Sets an interface's model animation.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \| The interface ID \|- | Key | Value |
\| \[\[Data Types\#Standard data types\|Short\]\] \| The animation ID |--|--|
\|- \|} | Name | Interface animation |
| Description | Sets an interface's model animation |
| Opcode | 200 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The interface ID |
| [Short](/Data-Types.html#common-data-types) | The animation ID |

View File

@ -1,23 +1,27 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Interface Color
{{packet\|name=Interface color\|description=This packet changes the
color of an interface that is
text.\|opcode=122\|type=Fixed\|length=4\|revision=317}} == Interface
Color ==
=== Description ===
This packet changes the color of an interface that is text. This packet changes the color of an interface that is text.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data |--|--|
Types\|Special A\]\] \| The interface ID. \|- \| \[\[Data Types\#Little | Name | Interface color |
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | Description | This packet changes the color of an interface that is text. |
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The color. \|- | Opcode | 122 |
\|} | Type | Fixed |
| Length | 4 |
| Revision | 317 |
=== Information === You use this packet to change the color of text in ## Packet Structure
an interface. | Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The color. |
{\|border=2 ! Color ! Code \|- \| Green \| 0x3366 \|- \| Yellow \| ## Information
0x33FF66 \|- \| Red \| 0x6000 \|- \|} You use this packet to change the color of text in an interface.
| Color | Code |
|--|--|
| Green | 0x3366 |
| Yellow | 0x33FF66 |
| Red | 0x6000 |

View File

@ -1,16 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Interface Item
{{packet\|name=Interface item\|description=Displays an item model inside
an interface.\|opcode=246\|type=Fixed\|length=6\|revision=317}} ==
Interface Item ==
=== Description ===
Displays an item model inside an interface. Displays an item model inside an interface.
=== Packet Structure === ## Packet Details
| Key | Value |
|--|--|
| Name | Interface item |
| Description | Displays an item model inside an interface. |
| Opcode | 246 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Little ## Packet Structure
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | Data Type | Description |
\|\| Interface ID. \|- \| \[\[Data Types\#Standard data types\|Short\]\] |--|--|
\|\| The item's model zoom. \|- \| \[\[Data Types\#Standard data | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Interface ID. |
types\|Short\]\] \|\| The item ID. \|} | [Short](/Data-Types.html#common-data-types) | The item's model zoom. |
| [Short](/Data-Types.html#common-data-types) | The item ID. |

View File

@ -1,18 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Interface Color
{{packet\|name=Interface model rotation\|description=Changes the zoom
and rotation of the interface id's media
given.\|opcode=230\|type=Fixed\|length=8\|revision=317}} == Interface
Color ==
=== Description ===
Changes the zoom and rotation of the interface id's media given. Changes the zoom and rotation of the interface id's media given.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Word\]\] \[\[Data Types\#Non | Key | Value |
Standard Data Types\|Special A\]\] \| The zoom. \|- \| \[\[Data |--|--|
Types\#Standard data types\|Word\]\] \| The interface id. \|- \| | Name | Interface model rotation |
\[\[Data Types\#Standard data types\|Word\]\] \| The rotation1. \|- \| | Description | Changes the zoom and rotation of the interface id's media given. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Opcode | 230 |
Types\#Standard data types\|Word\]\] \[\[Data Types\#Non Standard data | Type | Fixed |
types\|Special A\]\] \| The rotation2. \|- \|} | Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The zoom. |
| [Short](/Data-Types.html#common-data-types) | The interface id. |
| [Short](/Data-Types.html#common-data-types) | The rotation1. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The rotation2. |

View File

@ -1,15 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Interface offset
{{packet\|name=Interface offset\|description=Sets the offset for drawing
of an interface\|opcode=70\|type=Fixed\|length=6\|revision=317}} ==
Interface offset ==
=== Description ===
Sets the offset for drawing of an interface. Sets the offset for drawing of an interface.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \| The X offset \|- \| | Key | Value |
\[\[Data Types\#Byte Order\|Little Endian\]\] \[\[Data Types\#Standard |--|--|
data types\|Short\]\] \| The Y offset \|- \| \[\[Data Types\#Byte | Name | Interface offset |
Order\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | Description | Sets the offset for drawing of an interface |
\| The interface ID \|- \|} | Opcode | 70 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The X offset |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The Y offset |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Open Welcome Screen
{{packet\|name=Interface over tab\|description=Draws an interface over
the tab area.\|opcode=106\|type=Fixed\|length=1\|revision=317}} == Open
Welcome Screen ==
=== Description ===
This packet draws an interface over the tab area. This packet draws an interface over the tab area.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data type\|Byte\]\] \[\[Data Types\#Non | Key | Value |
Standard data types\|Special C\]\] \| Interface ID \|- \|} |--|--|
| Name | Interface over tab |
| Description | Draws an interface over the tab area. |
| Opcode | 106 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | Interface ID |

View File

@ -1,22 +1,24 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Child Frame
{{packet\|name=Inventory Overlay\|description=Overlays an interface on This packet overlays an interface in the inventory area. This is used in trading and staking.
the inventory\|opcode=248\|type=Fixed\|length=4\|revision=317}} == Child
Frame ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Inventory Overlay |
| Description | Overlays an interface on the inventory |
| Opcode | 248 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
This packet overlays an interface in the inventory area. This is used in ## Packet Structure
trading and staking. | Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface to open. |
| [Short](/Data-Types.html#common-data-types) | The interface to overlay the inventory area. |
=== Example === ## Example
`sendFrame248(3323, 3321);`
<pre>sendFrame248(3323, 3321);</pre> That will set the open interface to interface 3323, which is the trade interface.
That will set the open interface to interface 3323, which is the trade With the inventory overlay interface as 3321, which is an inventory type interface with offer actions.
interface, with the inventory overlay interface as 3321, which is an
inventory type interface with offer actions.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard data types\|Special A\]\] \| The interface to open. \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The interface to
overlay the inventory area. \|- \|}

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item # Item Action 1
action 1\|description=Sent when the player clicks the first option of an This packet is sent when a player clicks the first option of an item, such as "Bury" for bones or "Eat" for food.
item.\|opcode=122\|type=Fixed\|length=6\|revision=317}} == Item Action 1
==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Item action 1 |
| Description | Sent when the player clicks the first option of an item. |
| Opcode | 122 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the first option of an item, ## Packet Structure
such as "Bury" for bones or "Eat" for food. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot the item is in. |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The ID of the item. |
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
A\]\] \| The slot the item is in. \|- \| \[\[Data Types\#LITTLE
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\| The ID of the item. \|- \|}

View File

@ -1,23 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item # Description
on floor\|description=Sent when a player uses an item on another item This packet is sent when a player uses an item on another item thats on the floor.
thats on the floor.\|opcode=25\|type=Fixed\|length=10\|revision=317}} ==
Item on Floor==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Item on floor |
| Description | Sent when a player uses an item on another item thats on the floor. |
| Opcode | 25 |
| Type | Fixed |
| Length | 10 |
| Revision | 317 |
This packet is sent when a player uses an item on another item thats on ## Packet Structure
the floor. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item being used ID. |
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \| | [Short](/Data-Types.html#common-data-types) | The floor items ID. |
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data | Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The Y coordinate of the item. |
Types\#Non Standard Data Types\|Special A\]\] \| The item being used ID. | Unsigned [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The items slot ID. |
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The floor items | [Short](/Data-Types.html#common-data-types) | The X coordinate of the item. |
ID. \|- \| Unsigned \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The Y
coordinate of the item. \|- \| Unsigned \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The items slot
ID. \|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The X
coordinate of the item. \|- \|}

View File

@ -1,14 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item # Item on Item
on item\|description=Sent when a player uses an item on another
item.\|opcode=53\|type=Fixed\|length=4\|revision=317}} == Item on Item
==
=== Description ===
This packet is sent when a player uses an item on another item. This packet is sent when a player uses an item on another item.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \| The item being used | Key | Value |
on's slot. \|- \| \[\[Data Types\#Standard data types\|Short\]\] |--|--|
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The item being | Name | Item on item |
used's slot. \|- \|} | Description | Sent when a player uses an item on another item. |
| Opcode | 53 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The item being used on's slot. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item being used's slot. |

View File

@ -1,22 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item # Item on Object
on object\|description=Sent when a player uses an item on an
objet.\|opcode=192\|type=Fixed\|length=12\|revision=317}} == Item on
Object ==
=== Description ===
This packet is sent when a player uses an item on object. This packet is sent when a player uses an item on object.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | Key | Value |
Standard Data Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data |--|--|
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data | Name | Item on object |
types\|Short\]\] \| The object ID. \|- \| \[\[Data Types\#Big | Description | Sent when a player uses an item on an objet. |
Endian\|Big Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | Opcode | 192 |
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The objects Y | Type | Fixed |
coordinate. \|- \| \[\[Data Types\#Big Endian\|Big Endian\]\] \[\[Data | Length | 12 |
Types\#Standard data types\|Short\]\] \| The items slot ID. \|- \| | Revision | 317 |
\[\[Data Types\#Big Endian\|Big Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\] ## Packet Structure
\| The objects X coordinate. \|- \| \[\[Data Types\#Standard data | Data Type | Description |
types\|Short\]\] \| The item ID. \|- \|} |--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The object ID. |
| [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects Y coordinate. |
| [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) | The items slot ID. |
| [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects X coordinate. |
| [Short](/Data-Types.html#common-data-types) | The item ID. |

View File

@ -1,16 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item # Item on Player
on player\|description=Sent when a player uses an item on another
player.\|opcode=14\|type=Fixed\|length=8\|revision=317}} == Item on
Player ==
=== Description ===
This packet is sent when a player uses an item on another player. This packet is sent when a player uses an item on another player.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | Key | Value |
Standard Data Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data |--|--|
Types\#Standard data types\|Short\]\] \| The other players ID. \|- \| | Name | Item on player |
\[\[Data Types\#Standard data types\|Short\]\] \| The item ID. \|- \| | Description | Sent when a player uses an item on another player. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Opcode | 14 |
Types\#Standard data types\|Short\]\] \| The items slot ID. \|- \|} | Type | Fixed |
| Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
| [Short](/Data-Types.html#common-data-types) | The other players ID. |
| [Short](/Data-Types.html#common-data-types) | The item ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items slot ID. |

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Light # Light Item
item\|description=Sent when a player attempts to light logs on
fire.\|opcode=79\|type=Fixed\|length=6\|revision=317}} == Light Item ==
=== Description ===
This packet is sent when a player attempts to light logs on fire. This packet is sent when a player attempts to light logs on fire.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \| The items Y | Key | Value |
coordinate. \|- \| Unsigned \[\[Data Types\#Standard data |--|--|
types\|Short\]\] \| The item ID. \|- \| \[\[Data Types\#Little | Name | Light item |
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | Description | Sent when a player attempts to light logs on fire. |
\| The items X coordinate. \|- \|} | Opcode | 79 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The items Y coordinate. |
| Unsigned [Short](/Data-Types.html#common-data-types) | The item ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items X coordinate. |

View File

@ -1,23 +1,27 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Load # Load Map Region
map region\|description=Makes the client load the specified map
region.\|opcode=73\|type=Fixed\|length=4\|revision=317}} == Load Map
Region ==
=== Description ===
Makes the client load the specified map region. Makes the client load the specified map region.
=== Packet Structure === ## Packet Details
| Key | Value |
|--|--|
| Name | Load map region |
| Description | Makes the client load the specified map region. |
| Opcode | 73 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard ## Packet Structure
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special | Data Type | Description |
A\]\] \| Region X coordinate (absolute X / 8) plus 6. \|- \| \[\[Data |--|--|
Types\#Standard data types\|Short\]\] \| Region Y coordinate (absolute Y | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Region X coordinate (absolute X / 8) plus 6. |
/ 8) plus 6. \|- \|} | [Short](/Data-Types.html#common-data-types) | Region Y coordinate (absolute Y / 8) plus 6. |
=== Other Information === There are various loops/arrays within the map ## Other Information
region loading functionality of the client which have been misunderstood There are various loops/arrays within the map region loading functionality of the client which have been misunderstood by many.
by many. {\| border=2 ! Loop type ! Description \|- \| 104 x 104 \|
Maximum size of the client's load area \|- \| 8 x 8 \| Load blocks to | Loop type | Description |
speed up loading NPCs, Items and Objects \|- \| 13 x 13 \| Number of |--|--|
load blocks to load \|- \|} | 104 x 104 | Maximum size of the client's load area |
| 8 x 8 | Load blocks to speed up loading NPCs, Items and Objects |
| 13 x 13 | Number of load blocks to load |

View File

@ -1,9 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Loading Finished
{{packet\|name=Loading finished\|description=Sent when the player is
finished loading a map
region\|opcode=121\|type=Fixed\|length=0\|revision=317}} == Loading
Finished ==
=== Description ===
This packet is sent when a player is finished loading a new map region. This packet is sent when a player is finished loading a new map region.
## Packet Details
| Key | Value |
|--|--|
| Name | Loading finished |
| Description | Sent when the player is finished loading a map region |
| Opcode | 121 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Logout
{{packet\|name=Logout\|description=Forces the client to Forces the client to logout cleanly and return to the login screen, without attempting a reconnection.
logout.\|opcode=109\|type=Fixed\|length=0\|revision=317}} == Logout ==
=== Description === ## Packet Details
| Key | Value |
Forces the client to logout cleanly and return to the login screen, |--|--|
without attempting a reconnection. | Name | Logout |
| Description | Forces the client to logout. |
| Opcode | 109 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,10 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Mage # Mage NPC
NPC\|description=Sent when a player attempts to use a magic attack on an Sent when a player attempts to use a magic attack on an NPC.
NPC.\|opcode=131\|type=Fixed\|length=4\|revision=317}} == Mage NPC ==
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Non Standard Data Types\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data |--|--|
Types\|Special A\]\] \| ? \|- \| \[\[Data Types\#Standard data | Name | Mage NPC |
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\] | Description | Sent when a player attempts to use a magic attack on an NPC. |
\| ? \|- \|} | Opcode | 131 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | ? |
| [Little Endian](/Data-Types.html#little-endian) [Special A](/Data-Types.html#bespoke-data-types) | ? |

View File

@ -1,17 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Magic # Magic on Items
on items\|description=Sent when a player casts magic on the items in This packet is sent when a player casts magic (i.e. High Level Alchemy) on the items in their inventory.
their inventory.\|opcode=237\|type=Fixed\|length=8\|revision=317}} ==
Magic on Items ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Magic on items |
| Description | Sent when a player casts magic on the items in their inventory. |
| Opcode | 237 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player casts magic (i.e. High Level Alchemy) ## Packet Structure
on the items in their inventory. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Short](/Data-Types.html#common-data-types) | The items slot ID. |
\[\[Data Types\#Standard data types\|Short\]\] \| The items slot ID. \|- | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
\| \[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | [Short](/Data-Types.html#common-data-types) | The frame ID. |
Standard Data Types\|Special A\]\] \| The item ID. \|- \| \[\[Data | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The spell ID. |
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The spell ID. \|- \|}

View File

@ -1,13 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Magic on Player
This packet is sent when the player attempts to cast magic onto another.
{{packet\|name=Magic on player\|description=This packet is send when a ## Packet Details
player attempts to cast magic on | Key | Value |
another\|opcode=249\|type=Fixed\|length=4\|revision=317}} == Magic on |--|--|
Player == === Description === This packet is sent when the player | Name | Magic on player |
attempts to cast magic onto another. | Description | This packet is send when a player attempts to cast magic on another |
| Opcode | 249 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | Data Type | Description |
Standard Data Types\|Special A\]\] \| The player index. \|- \| \[\[Data |--|--|
Types\#Standard data types\|Short\]\] \[\[Data Types\#Byte | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The player index. |
Order\|Little\]\] \| The spell ID. \|- \|} | [Short](/Data-Types.html#common-data-types) [Little Endian](/Data-Types.html#little-endian) | The spell ID. |

View File

@ -1,15 +1,24 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Minimap State
{{packet\|name=Minimap State\|description=Sets the state of the clients This packet sets the Minimaps state, possible values are shown below.
minimap.\|opcode=99\|type=Fixed\|length=1\|revision=317}} == Minimap
State ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Minimap State |
| Description | Sets the state of the clients minimap. |
| Opcode | 99 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
This packet sets the Minimaps state ## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The state. |
'''States:''' \* 0 - '''Active''': Clickable and viewable \* 1 ## Values
-'''Locked''': viewable but not clickable \* 2 -'''Blacked-out''': | State | Description |
Minimap is replaced with black background |--|--|
| 0 | **Active**: Clickable and viewable |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | 1 | **Locked**: viewable but not clickable |
\[\[Data Types\#byte\|byte\]\] \| The state. \|- \|} | 2 | **Blacked-out**: Minimap is replaced with black background |

View File

@ -1,5 +1,2 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Mouse click == # Mouse click
=== Description ===
This packet is sent when a player clicks somewhere on the game screen. This packet is sent when a player clicks somewhere on the game screen.

View File

@ -1,19 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Move # Move Item
item\|description=Sent when the player moves an item from one slot to This packet is sent when a player moves an item from one slot to another.
another.\|opcode=214\|type=Fixed\|length=7\|revision=317}} == Move Item
==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Move item |
| Description | Sent when the player moves an item from one slot to another. |
| Opcode | 214 |
| Type | Fixed |
| Length | 7 |
| Revision | 317 |
This packet is sent when a player moves an item from one slot to ## Packet Structure
another. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | [Byte](/Data-Types.html#common-data-types) | Insert mode. |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Starting slot. |
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Standard | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | New slot. |
data types\|Byte\]\] \| Insert mode. \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| Starting slot.
\|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| New slot. \|- \|}

View File

@ -1,12 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Audio
{{packet\|name=Audio\|description=Sets the audio to
play.\|opcode=174\|type=Fixed\|length=N/A\|revision=317}} == Audio ==
=== Description ===
Sets what audio to play at a certain moment. Sets what audio to play at a certain moment.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Word\|Word\]\] \| The sound id. \|- \| \[\[Data | Key | Value |
Types\#Byte\|Byte\]\] \| The volume. \|- \| \[\[Data |--|--|
Types\#Word\|Word\]\] \| The delay. \|- \|} | Name | Audio |
| Description | Sets the audio to play. |
| Opcode | 174 |
| Type | Fixed |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The sound id. |
| [Byte](/Data-Types.html#common-data-types) | The volume. |
| [Short](/Data-Types.html#common-data-types) | The delay. |

View File

@ -1,6 +1,2 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == NPC Dialogue == # NPC Dialogue
This packet is what handles when the player hits the "Click here to continue".
=== Description ===
This packet is what handles when the player hits the "Click here to
continue".

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC # NPC Action 1
action 1\|description=Sent when a player clicks the first option of an
NPC.\|opcode=155\|type=Fixed\|length=2\|revision=317}} == NPC Action 1
==
=== Description ===
This packet is sent when a player clicks the first option of an NPC. This packet is sent when a player clicks the first option of an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \| The NPC index. \|} |--|--|
| Name | NPC action 1 |
| Description | Sent when a player clicks the first option of an NPC. |
| Opcode | 155 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The NPC index. |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC # NPC Action 2
action 2\|description=Sent when a player clicks the second action of an
NPC.\|opcode=17\|type=Fixed\|length=2\|revision=317}} == NPC Action 2 ==
=== Description ===
This packet is sent when a player clicks the second action of an NPC. This packet is sent when a player clicks the second action of an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data |--|--|
Types\|Special A\]\] \| The NPC index. \|- \|} | Name | NPC action 2 |
| Description | Sent when a player clicks the second action of an NPC. |
| Opcode | 17 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC index. |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC # NPC Action 3
action 3\|description=Sent when a player clicks the third option of an
NPC.\|opcode=21\|type=Fixed\|length=2\|revision=317}} == NPC Action 3 ==
=== Description ===
This packet is sent when a player clicks the third option of an NPC. This packet is sent when a player clicks the third option of an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
Unsigned \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data |--|--|
Types\|Special A\]\] \| The NPC index. \|- \|} | Name | NPC action 3 |
| Description | Sent when a player clicks the third option of an NPC. |
| Opcode | 21 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC index. |

View File

@ -1,16 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC # NPC head on interface
head on interface\|description=Places the head of an NPC on an
interface\|opcode=75\|type=Fixed\|length=4\|revision=317}} == NPC head
on interface ==
=== Description ===
Places the head of an NPC on an interface Places the head of an NPC on an interface
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data |--|--|
Types\|Special A\]\] \| The NPC ID \|- \| \[\[Data Types\#Little | Name | NPC head on interface |
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] | Description | Places the head of an NPC on an interface |
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The 'slot' ID | Opcode | 75 |
for where you wish to place the head \|- \|} | Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC ID |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The 'slot' ID for where you wish to place the head |

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Object Action 1
{{packet\|name=Object action 1\|description=Sent when the player clicks This packet is sent when a player clicks the first option of an object, such as "Cut" for trees or "Mine" for rocks.
the first option of an
object.\|opcode=132\|type=Fixed\|length=6\|revision=317}} == Object
Action 1 ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Object action 1 |
| Description | Sent when the player clicks the first option of an object. |
| Opcode | 132 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the first option of an object, ## Packet Structure
such as "Cut" for trees or "Mine" for rocks. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects X coordinate. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | [Short](/Data-Types.html#common-data-types) | The objects ID. |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects Y coordinate. |
Types\|Special A\]\] \| The objects X coordinate. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| The objects ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The objects Y coordinate. \|- \|}

View File

@ -1,19 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Object action 2
{{packet\|name=Object action 2\|description=Sent when the player clicks This packet is sent when a player clicks the second option available of an object, such as "Prospect" for rocks.
the second option available for an an
object.\|opcode=252\|type=Fixed\|length=6\|revision=317}} == Object
action 2 ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Object action 2 |
| Description | Sent when the player clicks the second option available for an an object. |
| Opcode | 252 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the second option available of ## Packet Structure
an object, such as "Prospect" for rocks. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The objects Y coordinate. |
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data | [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects X coordinate. |
Types\|Special A\]\] \| The objects ID. \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\| The objects Y coordinate. \|- \| \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| The objects X coordinate. \|}

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Object Action 3
{{packet\|name=Object action 3\|description=Sent when a player clicks This packet is sent when a player clicks the third action available for an object.
the third action available for an
object.\|opcode=70\|type=Fixed\|length=6\|revision=317}} == Object
Action 3 ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Object action 3 |
| Description | Sent when a player clicks the third action available for an object. |
| Opcode | 70 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the third action available for ## Packet Structure
an object. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The X coordinate of the object. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | [Short](/Data-Types.html#common-data-types) | The Y coordinate of the object. |
Types\#Standard data types\|Short\]\] \| The X coordinate of the object. | [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The object ID. |
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The Y
coordinate of the object. \|- \| \[\[Data Types\#Big Endian\|Big
Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
Types\#Non Standard Data Types\|Special A\]\] \| The object ID. \|}

View File

@ -1,9 +1,8 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Object removal == # Object removal
=== Description ===
This packet requests the client to remove an object. This packet requests the client to remove an object.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
Negated \[\[Data Types\#byte\|byte\]\] \| object type \<\< 2 + object | Data Type | Description |
rotation & 3 \|- \| \[\[Data Types\#byte\|byte\]\] \| 0 \|- \|} |--|--|
| Unsigned [Byte](/Data-Types.html#common-data-types) | `object_type << 2 + object_rotation & 3` |
| [Byte](/Data-Types.html#common-data-types) | `0` |

View File

@ -1,11 +1,9 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Object spawn == # Object spawn
=== Description ===
This packet requests the client to spawn an object. This packet requests the client to spawn an object.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
subtrahend \[\[Data Types\#byte\|byte\]\] \| 0 \|- \| Little endian | Data Type | Description |
\[\[Data Types\#byte\|byte\]\] \| ObjectID \|- \| subtrahend \[\[Data |--|--|
Types\#byte\|byte\]\] \| object type \<\< 2 + object rotation & 3 \|- | Subtrahend [Byte](/Data-Types.html#common-data-types) | 0 |
\|} | [Little Endian](/Data-Types.html#little-endian) [Byte](/Data-Types.html#common-data-types) | Object ID |
| Subtrahend [Byte](/Data-Types.html#common-data-types) | `object_type << 2 + object_rotation & 3` |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Open # Open chatbox interface
chatbox interface\|description=Displays an interface over the Sending this packet to the client will cause the client to open an interface over the chatbox.
chatbox.\|opcode=218\|type=Fixed\|length=2\|revision=317}} == Open
chatbox interface ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Open chatbox interface |
| Description | Displays an interface over the chatbox. |
| Opcode | 218 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Sending this packet to the client will cause the client to open an ## Packet Structure
interface over the chatbox. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Interface ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard data
types\|Special A\]\] \| Interface ID. \|- \|}

View File

@ -1,20 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Open # Open Welcome Screen
welcome screen\|description=Displays the welcome
screen.\|opcode=176\|type=Fixed\|length=10\|revision=317}} == Open
Welcome Screen ==
=== Description ===
This packet displays the welcome screen. This packet displays the welcome screen.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data type\|Byte\]\] \[\[Data Types\#Non | Key | Value |
Standard data types\|Special C\]\] \| Days since last recovery change |--|--|
(200 for not yet set, 201 for members server). \|- \| \[\[Data | Name | Open welcome screen |
Types\#Standard data type\|Short\]\] \[\[Data Types\#Non Standard data | Description | Displays the welcome screen. |
types\|Special A\]\] \| Number of unread messages. \|- \| \[\[Data | Opcode | 176 |
Types\#Standard data types\|Byte\]\] \| Member warning (1 for member, 0 | Type | Fixed |
for non-member). \|- \| \[\[Data Types\#Non Standard data | Length | 10 |
types\|Middle-Endian Big Integer\]\] \| Last logged IP. \|- \| \[\[Data | Revision | 317 |
Types\#Standard data types\|Short\]\] \| Last logged successful log-n.
\|- \|} ## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | Days since last recovery change (200 for not yet set, 201 for members server). |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Number of unread messages. |
| [Byte](/Data-Types.html#common-data-types) | Member warning (1 for member, 0 for non-member). |
| [Middle-Endian Big Integer](/Data-Types.html#middle-endian-big-integer) | Last logged IP. |
| [Short](/Data-Types.html#common-data-types) | Last logged successful log-in. |

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Pickup Ground Item
{{packet\|name=Pickup ground item\|description=Sent when the player This packet is sent when a player clicks the "Pick Up" option on an item when its on the ground.
picks up an item from the
ground.\|opcode=236\|type=Fixed\|length=6\|revision=317}} == Pickup
Ground Item ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Pickup ground item |
| Description | Sent when the player picks up an item from the ground. |
| Opcode | 236 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the "Pick Up" option on an item ## Packet Structure
when its on the ground. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The Y coordinate of the item. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | [Short](/Data-Types.html#common-data-types) | The item ID. |
Types\#Standard data types\|Short\]\] \| The Y coordinate of the item. | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The X coordinate of the item. |
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The item ID.
\|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The X coordinate of the item.
\|- \|}

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Play # Play song
song\|description=Starts playing a Sending this packet to the client will cause the client to start playing a song.
song.\|opcode=74\|type=Fixed\|length=2\|revision=317}} == Play song ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Play song |
| Description | Starts playing a song. |
| Opcode | 74 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Sending this packet to the client will cause the client to start playing ## Packet Structure
a song. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The song ID. |
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The song ID. \|- \|}

View File

@ -1,10 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Player Option
{{packet\|name=Player Option\|description=Adds an option to a player's Adds an option to a player's right click context menu.
right click context
menu.\|opcode=104\|type=Variable\|length=N/A\|revision=317}} == Player
Option ==
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Byte\]\] C \| The option position. | Key | Value |
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] A \| Flag \|- \| |--|--|
\[\[Data Types\#Standard data types\|String\]\] \| Action text. \|- \|} | Name | Player Option |
| Description | Adds an option to a player's right click context menu. |
| Opcode | 104 |
| Type | Variable |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | The option position. |
| [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Flag |
| [String](/Data-Types.html#common-data-types) | Action text. |

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Player Command
{{packet\|name=Player command\|description=Sent when a player types a This packet is sent when a player types a message with the prefix '::', the message is then sent to the server and an appropriate action is taken (e.g. spawning an item).
command in the chat box.\|opcode=103\|type=Variable
Byte\|length=N/A\|revision=317}} == Player Command ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Player command |
| Description | Sent when a player types a command in the chat box. |
| Opcode | 103 |
| Type | Variable Byte |
| Length | N/A |
| Revision | 317 |
This packet is sent when a player types a message with the prefix '::', ## Packet Structure
the message is then sent to the server and an appropriate action is | Data Type | Description |
taken (e.g. spawning an item). |--|--|
| [RS String](/RS-String.html) | The command name and parameters. |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[RS String\|RS String\]\] \| The command name and parameters. \|}

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send # Send player head model to an interface
head model to interface.\|description=Sends the player head model to an
interface.\|opcode=185\|type=Fixed\|length=2\|revision=317}} == Send
player head model to an interface ==
=== Description ===
This packet sends a players head to an interface This packet sends a players head to an interface
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Little Endian Short A\]\] \| The interface ID. \|- \|} | Key | Value |
|--|--|
| Name | Send head model to interface. |
| Description | Sends the player head model to an interface. |
| Opcode | 185 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |

View File

@ -1,16 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Privacy Options
{{packet\|name=Privacy options\|description=Sent when a player changes This packet is sent when a player changes their privacy options (i.e. public chat).
their privacy options.\|opcode=95\|type=Fixed\|length=3\|revision=317}}
== Privacy Options ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Privacy options |
| Description | Sent when a player changes their privacy options. |
| Opcode | 95 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
This packet is sent when a player changes their privacy options ## Packet Structure
(i.e. public chat). | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | Unsigned [Byte](/Data-Types.html#common-data-types) | The public chat options. |
Unsigned \[\[Data Types\#Standard data types\|Byte\]\] \| The public | Unsigned [Byte](/Data-Types.html#common-data-types) | The private chat options. |
chat options. \|- \| Unsigned \[\[Data Types\#Standard data | Unsigned [Byte](/Data-Types.html#common-data-types) | The trade/compete options. |
types\|Byte\]\] \| The private chat options. \|- \| Unsigned \[\[Data
Types\#Standard data types\|Byte\]\] \| The trade/compete options. \|-
\|}

View File

@ -1,42 +1,42 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] \[\[Category RS2\]\] # 317 Protocol
== '''Packet structure''' == When the client sends a packet to the ## Packet structure
server, the first byte encapsulates its When the client sends a packet to the server, the first byte encapsulates its [opcode](http://en.wikipedia.org/wiki/Opcode).
\[http://en.wikipedia.org/wiki/Opcode opcode\]. This specific opcode is
encrypted with a value generated by the
\[http://en.wikipedia.org/wiki/ISAAC\_(cipher) ISAAC\]
\[http://en.wikipedia.org/wiki/Pseudorandom\_number\_generator PRNG\]
seeded with a dynamically server generated key during the login block.
The server decrypts it and associates the opcode to the packet's
respective predefined size. If the packet does not contain a fixed size,
the opcode will be followed by either a byte or a word - varying per
packet - for its proper size. This is then followed by the
\[http://en.wikipedia.org/wiki/Payload\_(software) payload\].
A list of the 317 Packets may be found This specific opcode is encrypted with a value generated by the [ISAAC](http://en.wikipedia.org/wiki/ISAAC_(cipher)) [PRNG](http://en.wikipedia.org/wiki/Pseudorandom_number_generator), seeded with a dynamically server generated key during the login block.
\[http://rswiki.moparisthebest.com/index.php?title=Category:Packet:317
here\].
== '''Login Protocol Overview''' == Every connection to the main The server decrypts it and associates the opcode to the packet's respective predefined size.
'gateway' server sends a single byte of data, mostly well known as the If the packet does not contain a fixed size, the opcode will be followed by either a byte or a word - varying per packet - for its proper size.
connection type. The connection type tells the main server which type of This is then followed by the [payload](http://en.wikipedia.org/wiki/Payload_(software)).
connection you wish to initiate. The old engine list consists of: \*
Login request - connection type 14 \* Update - connection type 15 \* New
connection login - connection type 16 \* Reconnecting login - connection
type 18
The connection type we will cover in the following paragraphs is the ## Login Protocol Overview
login connection type, 14. After the login handshake initiating Every connection to the main 'gateway' server sends a single byte of data, mostly well known as the connection type.
connection type, the client writes hash derived from the logging in The connection type tells the main server which type of connection you wish to initiate.
player's username. This is believed to help select the appropriate login
server. On successful handshake, the server sends back 8 ignored bytes.
<pre>long encodedUsername = TextUtils.encodeAsBase37Integer(username); The old engine list consists of:
| ID | Description |
|--|--|
| 14 | Login request |
| 15 | Update |
| 16 | New connection login |
| 18 | Reconnecting login |
The connection type we will cover in the following paragraphs is the login connection type, 14. After the login handshake initiating connection type, the client writes hash derived from the logging in player's username.
This is believed to help select the appropriate login server.
On successful handshake, the server sends back 8 ignored bytes.
```java
long encodedUsername = encode_base37(username);
int usernameHash = (int) (encodedUsername >> 16 & 31L); int usernameHash = (int) (encodedUsername >> 16 & 31L);
out.offset = 0; out.offset = 0;
out.writeByte(14); // Initiate connection type out.writeByte(14); // Connection type
out.writeByte(usernameHash); out.writeByte(usernameHash);
in.queueBytes(2, out.payload); in.queueBytes(2, out.payload);
for (int j = 0; j < 8; j++) in.read();</pre>
for (int j = 0; j < 8; j++)
in.read();
```
At this point, the client reads in one byte, called the status code. The At this point, the client reads in one byte, called the status code. The
status code 0 is expected to start the login protocol correctly. If the status code 0 is expected to start the login protocol correctly. If the
status code is 0, the client reads a long, dubbed by many as the server status code is 0, the client reads a long, dubbed by many as the server
@ -52,7 +52,7 @@ longs. After the session keys, the session's UID (unique identifier or
user identifier) is written to the block. This is used to distinguish user identifier) is written to the block. This is used to distinguish
between multiple sessions. Trailing behind the UID comes the client's between multiple sessions. Trailing behind the UID comes the client's
username and password written as modified C-strings that are rather username and password written as modified C-strings that are rather
terminated with a 10 byte than a NUL byte. This block is then RSA terminated with a 10 byte than a NULL byte. This block is then RSA
encrypted and stored for later use. encrypted and stored for later use.
Now starts the login request packet. It starts off with a flag telling Now starts the login request packet. It starts off with a flag telling
@ -73,91 +73,85 @@ The ISAAC ciphers are seeded for packet opcode masking after adding 50
to each int of the session keys, and the status code is reread. This to each int of the session keys, and the status code is reread. This
finishes the login protocol. finishes the login protocol.
== '''Login Protocol Breakdown''' == The login is comprised of four ## Login Protocol Breakdown
stages in which the client and server switch in regards to which one is The login is comprised of four stages in which the client and server switch in regards to which one is reading and which one is writing.
reading and which one is writing. <br/> ===Variables:=== The login
process has a lot of variable data, compiled here is a list of the ### Variables
variables and their different values. ====Name Hash==== A hash of the The login process has a lot of variable data, compiled here is a list of the variables and their different values.
player name, thought to be used to select an appropriate login server.
**Name Hash**:
A hash of the player name, thought to be used to select an appropriate login server.
This has no use in current private servers. This has no use in current private servers.
====Server Session Key==== The server-session-key is one of two ciphers **Server Session Key**:
used to encrypt the game protocol, using the ISAAC algorithms. <br/> The server-session-key is one of two seeds used to encrypt the game protocol communications, using the ISAAC algorithm instances.
===="Data File Version"==== <!-- Colby --> The CRC checks for the cache
files. <br/>
====User ID==== A client-side randomly generated integer. This could be **Data File Version**:
used in reassigning sessions to players that have lost connection. It is The CRC checks for the cache files.
stored as a packed integer in a file named 'uid.dat' in the cache
directory. <br/>
====Username==== The username of the player, used to identify their **User ID**:
account. <br/> ====Password==== The password of the player account, used A client-side randomly generated integer.
so only they can log into their account. <br/> ====Client Session This could be used in reassigning sessions to players that have lost connection.
Key==== The client-session-key is one of two ciphers used to encrypt the It is stored as a packed integer in a file named 'uid.dat' in the cache directory.
game protocol, using the ISAAC algorithms. <br/> ====Connect Status====
The status of the connection. {\|border=2 ! Value ! Status \|- \| 16 \|
Signifies that the connection is new. \|- \| 18 \| Signifies that the
session is reconnecting a previously lost connection. \|- \|}
====Size==== The size of the unencrypted login packet, used to determine **Username**: The username of the player, used to identify their account.
how many bytes need to be read from the stream by the server. <br/>
====Client Version==== The memory-version of the game client.
{\|border=2 ! Value ! Status \|- \| 0 \| Signifies the client is a
low-memory client. \|- \| 1 \| Signifies that the client is a
high-memory client. \|- \|}
====CRC Values==== 9 4-byte values, Each containing the CRC of their **Password**: The password of the player account, used so only they can log into their account.
respective cache files. Used by the server to verify client is up to
date. <br/>
====Player Status==== The in-game player status - player, player **Client Session Key**: The client-session-key is one of two seeds used to encrypt the game protocol communications, using the ISAAC algorithm instances.
moderator, or administrator. <br/> {\|border=2 ! Value ! Status \|- \| 0
\| Signifies that this player is a normal player. \|- \| 1 \| Signifies
that this player is a player moderator. \|- \| 2 \| Signifies that this
player is an administrator. \|- \|}
====Flagged==== If set to 1, information about mouse movements etc. are **Connect Status**: The status of the connection (16 if new, 18 if reconnecting).
sent to the server. Suspected bot accounts are flagged. <br/>
====Response Codes==== At the beginning and end of the login procedure,
we send different values to the client to allow or deny a login. The
various values show different messages on the login box on the client or
do something internally. <br/> {\| border=2 ! Value ! Response \|- \| -1
\| Waits for 2000ms and tries again while counting failures. \|- \| 0 \|
Exchanges session keys, player name, password, etc. \|- \| 1 \| Waits
for 2000ms and tries again. \|- \| 2 \| Client made a successful login.
\|- \| 3 \| "Invalid username or password." \|- \| 4 \| "Your account
has been disabled. Please check your message-center for details." \|- \|
5 \| "Your account is already logged in. Please try again in 60 secs..."
\|- \| 6 \| "RuneScape has been updated! Please reload this page." \|-
\| 7 \| "This world is full. Please use a different world." \|- \| 8 \|
"Unable to connect. Login server offline." \|- \| 9 \| "Login limit
exceeded. Too many connections from your address." \|- \| 10 \| "Unable
to connect. Bad session ID." \|- \| 11 \| "Login server rejected
session. Please try again." \|- \| 12 \| "You need a members account to
login to this world. Please subscribe, or use a different world." \|- \|
13 \| "Could not complete login. Please try using a different world."
\|- \| 14 \| "The server is being updated. Please wait 1 minute and try
again." \|- \| 15 \| See the \[\[\#Regarding response code 15\|notes
below\]\]. \|- \| 16 \| "Login attempts exceeded. Please wait 1 minute
and try again." \|- \| 17 \| "You are standing in a members-only area.
To play on this world move to a free area first." \|- \| 20 \| "Invalid
loginserver requested. Please try using a different world." \|- \| 21 \|
"You have only just left another world. Your profile will be transferred
in: (number) seconds." \|- \| None of the above \| "Unexpected server
response. Please try using a different world." \|- \|}
==== Regarding response code 15 ==== On the server, players are not **Size**: The size of the unencrypted login packet, used to determine how many bytes need to be read from the stream by the server.
unregistered for quite some time. This can be best witnessed when the
client forcefully closes the connection while in combat. If you're quick **Client Version**: The memory-version of the game client (0 if low-memory client, 1 if high-memory client).
enough before the player dies or kills the NPC, login attempts during
that time return that the account is already logged in. This probably **CRC Values**: Nine 4-byte values, Each containing the CRC of their respective cache files.
explains why the message says "try again in 60 seconds", and they just Used by the server to verify client is up to date.
reused the response when the player is truly logged in.
**Player Status**: The in-game player privilege status - regular (0), player moderator (1), or administrator (2).
**Flagged**: If set to 1, information about mouse movements etc. are sent to the server.
Suspected bot accounts are flagged.
**Response Codes**:
At the beginning and end of the login procedure, we send different values to the client to allow or deny a login.
The various values show different messages on the login box on the client or do something internally.
| Value | Response |
|--|--|
| -1 | Waits for 2000ms and tries again while counting failures. |
| 0 | Exchanges session keys, player name, password, etc. |
| 1 | Waits for 2000ms and tries again. |
| 2 | Client made a successful login. |
| 3 | "Invalid username or password." |
| 4 | "Your account has been disabled. Please check your message-center for details." |
| 5 | "Your account is already logged in. Please try again in 60 secs..." |
| 6 | "RuneScape has been updated! Please reload this page." |
| 7 | "This world is full. Please use a different world." |
| 8 | "Unable to connect. Login server offline." |
| 9 | "Login limit exceeded. Too many connections from your address." |
| 10 | "Unable to connect. Bad session ID." |
| 11 | "Login server rejected session. Please try again." |
| 12 | "You need a members account to login to this world. Please subscribe, or use a different world." |
| 13 | "Could not complete login. Please try using a different world." |
| 14 | "The server is being updated. Please wait 1 minute and try again." |
| 15 | See the notes regarding login response code 15 below. |
| 16 | "Login attempts exceeded. Please wait 1 minute and try again." |
| 17 | "You are standing in a members-only area. To play on this world move to a free area first." |
| 20 | "Invalid loginserver requested. Please try using a different world." |
| 21 | "You have only just left another world. Your profile will be transferred in: (number) seconds."
| None of the above | "Unexpected server response. Please try using a different world." |
**Regarding response code 15** On the server, players are not unregistered for quite some time.
This can be best witnessed when the client forcefully closes the connection while in combat.
If you're quick enough before the player dies or kills the NPC, login attempts during that time return that the account is already logged in.
This probably explains why the message says "try again in 60 seconds", and they just reused the response when the player is truly logged in.
Going along with this "players aren't offline yet" idea, when the client Going along with this "players aren't offline yet" idea, when the client
experiences some lag and performs a reconnect, it sends byte 18 as it's experiences some lag and performs a reconnect, it sends byte 18 as it's
\[\[\#Connect Status\|connection type\]\] to the server. *Connect Status* to the server.
The server most likely saves this as a boolean (reconnect = var == 18;). The server most likely saves this as a boolean (reconnect = var == 18;).
When the login is entirely validated, meaning the password's are okay When the login is entirely validated, meaning the password's are okay
@ -166,69 +160,87 @@ and the server isn't full, it can either send back the normal response,
But why 15? If you look at the client code, you'll see that the chat But why 15? If you look at the client code, you'll see that the chat
messages aren't cleared. If you've ever had a poor connection you've messages aren't cleared. If you've ever had a poor connection you've
noticed that your chat stays there upon a reconnect, and this is exactly noticed that your chat stays there upon a reconnect, and this is exactly why.
why. <!-- thanks to Colby for this contribution--> When you implement When you implement response code 15 though, you do NOT need to send the "player status" or the "flagged" bytes.
response code 15 though, you do NOT need to send the "player status" or
the "flagged" bytes.
===Login Process:=== ====Stage 1: Client -\> Server==== {\| border=2 \|- ## Login Process
! Data Type ! Value \|- \| ubyte \| 14 \|- \| ubyte \| "name hash" \|- ### Stage 1: Client -> Server
\|} <br/> | Data Type | Value |
|--|--|
| Unsigned [Byte](/Data-Types.html#common-data-types) | 14 |
| Unsigned [Byte](/Data-Types.html#common-data-types) | "name hash" |
====Stage 2: Server -\> Client==== {\| border=2 \|- ! Data Type ! Value ### Stage 2: Server -> Client
\|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- | Data Type | Value |
\| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \| |--|--|
byte \| "response code" \|- \| \[\[QWord\|long\]\] \| "server session | [Byte](/Data-Types.html#common-data-types) | 0 |
key" \|- \|} <br/> | [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | "response code" |
| [Long](/Data-Types.html#common-data-types) | Server session key |
====Stage 3: Client -\> Server==== {\| border=2 \|- ! Data Type ! Value ### Stage 3: Client -> Server
\|- \| byte \| "connect status" \|- \| byte \| "size" \|- \| byte \| 255 | Data Type | Value |
\|- \| \[\[Word\|short\]\] \| 317 \|- \| byte \| "client version" \|- \| |--|--|
\[\[DWord\|int\]\] \| "crc values"\[0\] \|- \| \[\[DWord\|int\]\] \| | [Byte](/Data-Types.html#common-data-types) | Connect status |
"crc values"\[1\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[2\] \|- \| | [Byte](/Data-Types.html#common-data-types) | Size |
\[\[DWord\|int\]\] \| "crc values"\[3\] \|- \| \[\[DWord\|int\]\] \| | [Byte](/Data-Types.html#common-data-types) | 255 |
"crc values"\[4\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[5\] \|- \| | [Short](/Data-Types.html#common-data-types) | 317 (Client version) |
\[\[DWord\|int\]\] \| "crc values"\[6\] \|- \| \[\[DWord\|int\]\] \| | [Int](/Data-Types.html#common-data-types) | crc values [0] |
"crc values"\[7\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[8\] \|- \| | [Int](/Data-Types.html#common-data-types) | crc values [1] |
byte \| 10 \|- \| \[\[QWord\|long\]\] \| "client session key" \|- \| | [Int](/Data-Types.html#common-data-types) | crc values [2] |
\[\[QWord\|long\]\] \| "server session key" \|- \| \[\[DWord\|int\]\] \| | [Int](/Data-Types.html#common-data-types) | crc values [3] |
"user id" \|- \| \[\[RS String\|RS String\]\] \| "username" \|- \| | [Int](/Data-Types.html#common-data-types) | crc values [4] |
\[\[RS String\|RS String\]\] \| "password" \|- \|} <br/> | [Int](/Data-Types.html#common-data-types) | crc values [5] |
| [Int](/Data-Types.html#common-data-types) | crc values [6] |
| [Int](/Data-Types.html#common-data-types) | crc values [7] |
| [Int](/Data-Types.html#common-data-types) | crc values [8] |
| [Byte](/Data-Types.html#common-data-types) | 10 |
| [Long](/Data-Types.html#common-data-types) | Client session key |
| [Long](/Data-Types.html#common-data-types) | Server session key |
| [Int](/Data-Types.html#common-data-types) | User id |
| [RS String](/RS-String.html) | Username |
| [RS String](/RS-String.html) | Password |
====Stage 4: Server -\> Client==== {\| border=2 \|- ! Data Type ! Value ### Stage 4: Server -> Client
\|- \| byte \| "response code" \|- \| byte \| "player status" \|- \| | Data Type | Value |
byte \| "flagged" \|- \|} <br/> |--|--|
| [Byte](/Data-Types.html#common-data-types) | Response code |
| [Byte](/Data-Types.html#common-data-types) | Player status |
| [Byte](/Data-Types.html#common-data-types) | Flagged |
== '''Player Updating''' == The player updating process consists of 4 ### Player Updating
parts: \* a) Our player movement updates \* b) Other player movement The player updating process consists of 4 parts:
updates \* c) Player list updating \* c.a) Apperance updating \* c.b)
Location updating \* d) Player update block flag-based updates
'''Our player movement updates''' a. Our player movement updates
b. Other player movement updates
c. Player list updating
c.a. Apperance updating
c.b. Location updating
d. Player update block flag-based updates
### Our player movement updates
The client begins by reading 1 bit. This bit tells the client whether or The client begins by reading 1 bit. This bit tells the client whether or
not it is currently updating 'our player', or the player the client is not it is currently updating 'our player', or the player the client is
controlling. If it's not updating our player, it exits and goes onto controlling.
step b. If it is, it then reads 2 bits. The value is called the movement If it's not updating our player, it exits and goes onto step b.
update type. There are 4 recognized movement update types: If it is, it then reads 2 bits. The value is called the movement update type.
- Type 0 basically tells the client there is nothing to update for our There are 4 recognized movement update types:
player, just add its index to the local updating list. * Type 0 basically tells the client there is nothing to update for our player, just add its index to the local updating list.
* Type 1 tells the client you moved in one direction.
- Type 1 tells the client you moved in one direction. The client reads The client reads 3 bits, which represents the direction you moved in, and then 1 bit, which states whether further update is required.
3 bits, which represents the direction you moved in, and then 1 bit, If so, it adds it to the updating list. This is used in walking.
which states whether further update is required. If so, it adds it * Type 2 functions in much of the same way as its previous, only this time it reads two 3 bit values. The first represents the player's last direction, and the second it's current direction.
to the updating list. This is used in walking. Trailing behind it is also the 1 bit 'update required' flag as type 1. This is used in running.
* Type 3 on the other hand is different.
- Type 2 functions in much of the same way as its previous, only this It reads in 2 bits which represents our player's plane, or its level of height, in the game world.
time it reads two 3 bit values. The first represents the player's
last direction, and the second it's current direction. Trailing
behind it is also the 1 bit 'update required' flag as type 1. This
is used in running.
- Type 3 on the other hand is different. It reads in 2 bits which
represents our player's plane, or its level of height, in the game
world.
Only 0-3 inclusive are appropriate planes supported by the client. It Only 0-3 inclusive are appropriate planes supported by the client. It
then reads 1 bit, which describes whether or not to clear the then reads 1 bit, which describes whether or not to clear the
@ -240,7 +252,7 @@ and relative Y coordinates of our player to our current map region's
origin. It then sets our players position to the plane, x, and y origin. It then sets our players position to the plane, x, and y
positions as told to. positions as told to.
'''Other player movement updates''' ### Other player movement updates
The client begins by reading an 8 bit value telling the client how many The client begins by reading an 8 bit value telling the client how many
players there are to update. It then enters a loop for each player there players there are to update. It then enters a loop for each player there
@ -250,30 +262,19 @@ Inside this loop, the client reads 1 bit. This is the movement update
required flag. If the flag is 0, it sets the current updating player's required flag. If the flag is 0, it sets the current updating player's
last update cycle time to the current game logic loop cycle time, and last update cycle time to the current game logic loop cycle time, and
adds the player to the local player list. If the flag is not 0, it then adds the player to the local player list. If the flag is not 0, it then
reads the movement update type, which is a 2 bit quantity. The following reads the movement update type, which is a 2 bit quantity.
known types are:
- 0, the client updates the current player's last update cycle time, The following known types are:
adds the current player to the local player list, and adds it to the
updating list.
- 1, the client updates the current player's last update cycle time * 0, the client updates the current player's last update cycle time, adds the current player to the local player list, and adds it to the updating list.
and adds the current player to the local player list as well, but * 1, the client updates the current player's last update cycle time and adds the current player to the local player list as well, but also reads in 3 bit quantity.
also reads in 3 bit quantity. This represents the current player's This represents the current player's direction it walked to.
direction it walked to. It then reads the a 1 bit value that It then reads the a 1 bit value that specifies whether or not to add the player to the updating list.
specifies whether or not to add the player to the updating list. * 2, the client does the exact same thing as the type 2 update, except it reads in two of the 3 bit quantities.
The first represents the current player's last direction, and the second its current direction running.
* 3, the client queues to remove the player from the list of players to be updated but it is possible such as in the instances for when players teleport to add them back to the list of players to be updated during the populate update.
- 2, the client does the exact same thing as the type 2 update, except ### Player list updating
it reads in two of the 3 bit quantities. The first represents the
current player's last direction, and the second its current
direction running.
- 3, the client queues to remove the player from the list of players
to be updated but it is possible such as in the instances for when
players teleport to add them back to the list of players to be
updated during the populate update.
'''Player list updating'''
The next step in the player updating procedure is the player list The next step in the player updating procedure is the player list
updating, or where the client recieves data on every player in its local updating, or where the client recieves data on every player in its local
@ -285,7 +286,7 @@ player in the updated list to be informed about. The clietn then checks
if it has a cached buffer for that player's updating, and if it does, it if it has a cached buffer for that player's updating, and if it does, it
updates the player appearance. updates the player appearance.
'''Appearance updating''' ### Appearance updating
Appearance updating starts off by first reading an unsigned byte that Appearance updating starts off by first reading an unsigned byte that
represents the current player's gender. Then it reads another unsigned represents the current player's gender. Then it reads another unsigned
@ -306,19 +307,23 @@ coloured body part. In each loop, the client reads an unsigned short and
assigns it as the color of the current loop idx (which represents the assigns it as the color of the current loop idx (which represents the
body part). body part).
Finally, after the color loop, the client reads 7 unsigned shorts Finally, after the color loop, the client reads 7 unsigned shorts representing animation indices; the animations belong to:
representing animation indices; the animations belong to: \* Standing
still \* Turning while standing \* Walking \* Turning around (backwards) * Standing still
\* Turning a quarter-way clockwise \* Turning a quarter-way counter * Turning while standing
clockwise \* Running * Walking
* Turning around (backwards)
* Turning a quarter-way clockwise
* Turning a quarter-way counter clockwise
* Running
After these animation indices are read, a long representing the player's After these animation indices are read, a long representing the player's
name is read, an unsigned byte representing the combat level, and an name is read, an unsigned byte representing the combat level, and an
unsigned short representing the players skill level (for things where unsigned short representing the players skill level (for things where
players arent ranked by levels, such as where it states '<player name> players arent ranked by levels, such as where it states
(skill <skill>)' as an action menu text). `<player name> (skill <skill>)` as an action menu text).
'''Location updating''' ### Location updating
After the appearance updating, the client starts to update that player's After the appearance updating, the client starts to update that player's
location relative to our player. The player is added to the local player location relative to our player. The player is added to the local player
@ -333,7 +338,7 @@ subtracted from it to signify the player is on the other side of ours.
The client then sets the player's position, ending the player list The client then sets the player's position, ending the player list
updating process. updating process.
'''Update block flag-based updating''' #### Update block flag-based updating
The following is what most people think of when they say 'update mask' The following is what most people think of when they say 'update mask'
and 'update flag'. This process of the updating procedure is very and 'update flag'. This process of the updating procedure is very
@ -352,10 +357,10 @@ player's flag, and if the mask is set, logic is performed. These masks
are frequently called update masks. A list of player update masks are are frequently called update masks. A list of player update masks are
below: below:
- '''0x400''' The 0x400 mask is used to update the player so they * **0x400**: The 0x400 mask is used to update the player so they
appear to be asynchronously animating and walking. This mask is appear to be asynchronously animating and walking. This mask is
often used for the \[http://runescape.wikia.com/wiki/Agility often used for the [Agility](http://runescape.wikia.com/wiki/Agility) skill.
Agility\] skill. The data associated goes in order of: byte (type C) The data associated goes in order of: byte (type C)
which is the first location's X coordinate value, byte (type S) which is the first location's X coordinate value, byte (type S)
which is the first location's Y coordinate value, byte (type S) which is the first location's Y coordinate value, byte (type S)
which is the second location's X coordinate value, byte (type C) the which is the second location's X coordinate value, byte (type C) the
@ -366,21 +371,21 @@ below:
position 2 to position 1. Finally one byte is written to end the position 2 to position 1. Finally one byte is written to end the
mask block, which marks the direction. mask block, which marks the direction.
- '''0x100''' The 0x100 mask is responsible for player graphics * **0x100**: The 0x100 mask is responsible for player graphics
updating. The data associated is a little-endian unsigned short updating. The data associated is a little-endian unsigned short
which represents the graphics id, and an int which is the graphics which represents the graphics id, and an int which is the graphics
delay. delay.
- '''0x8''' Animations are handled by the 0x8 mask. The payload for * **0x8**: Animations are handled by the 0x8 mask. The payload for
this update is a little-endian unsigned short that is the animation this update is a little-endian unsigned short that is the animation
id, and an unsigned inversed byte (Special C) which states the id, and an unsigned inversed byte (Special C) which states the
animation's delay. animation's delay.
- '''0x4''' The beloved 0x4 mask takes care of forced player text that * **0x4**: The beloved 0x4 mask takes care of forced player text that
is only displayed above the player's model. The only data associated is only displayed above the player's model. The only data associated
with this is a jagex ASCII string with a terminator of 10. with this is a jagex ASCII string with a terminator of 10.
- '''0x80''' Unlike the previous, the 0x80 mask handles normal player * **0x80**: Unlike the previous, the 0x80 mask handles normal player
chat text. The client will read a little-endian unsigned short which chat text. The client will read a little-endian unsigned short which
holds chat text attributes. It holds the text color and chat holds chat text attributes. It holds the text color and chat
effects. Next, the client reads an unsigned byte which states the effects. Next, the client reads an unsigned byte which states the
@ -391,283 +396,171 @@ below:
text characters become indexes into a valid character table and are text characters become indexes into a valid character table and are
written as nibbles (4 bit quantities). written as nibbles (4 bit quantities).
- '''0x1''' Updating the player's current interacting-entity is done * **0x1**: Updating the player's current interacting-entity is done
via mask 0x1. The entity id is written as a little-endian unsigned via mask 0x1. The entity id is written as a little-endian unsigned
short. short.
- '''0x10''' The 0x10 mask updates appearance of the player in exact * **0x10**: The 0x10 mask updates appearance of the player in exact
same way as in updating player list. Only difference is that same way as in updating player list. Only difference is that
appearance is updated from a set-sized buffer filled from the appearance is updated from a set-sized buffer filled from the
current buffer. An unsigned inversed byte is read first which current buffer. An unsigned inversed byte is read first which
describes appearance buffer size, and the buffer is filled. describes appearance buffer size, and the buffer is filled.
- '''0x2''' Facing coordinate updating is signified by the 0x2 mask. * **0x2**: Facing coordinate updating is signified by the 0x2 mask.
The player's facing-towards X and Y are set to read values; The player's facing-towards X and Y are set to read values;
specifically, an unsigned lower-inverted short and little-endian specifically, an unsigned lower-inverted short and little-endian
unsigned short, respectively. unsigned short, respectively.
- '''0x20''' Notifying client's of a player's health is done via the * **0x20**: Notifying client's of a player's health is done via the
0x20 mask. The hitpoint damage done to the player is sent as an 0x20 mask. The hitpoint damage done to the player is sent as an
unsigned byte, followed by the hit type as a positive inverted byte. unsigned byte, followed by the hit type as a positive inverted byte.
The player's current and max health are read as an unsigned inverted The player's current and max health are read as an unsigned inverted
byte and unsigned byte, respectively. byte and unsigned byte, respectively.
- '''0x200''' The 0x200 mask acts in the same way as the 0x20 mask and * **0x200**: The 0x200 mask acts in the same way as the 0x20 mask and
is most likely associated with special attacks from weapons that is most likely associated with special attacks from weapons that
have the ability to hit twice at the same time. Hitpoint damage is have the ability to hit twice at the same time. Hitpoint damage is
an unsigned byte, the hit type an unsigned inverted byte, and the an unsigned byte, the hit type an unsigned inverted byte, and the
current and maximum health being an unsigned byte and unsigned current and maximum health being an unsigned byte and unsigned
inverted byte, respectively. inverted byte, respectively.
After the client processes every single player in the update player After the client processes every single player in the update player list, it ends player updating.
list, it ends player updating.
==Game Protocol== The game protocol is the in-game communication of ## Game Protocol
player actions between the server and client. <br/> ===Server -\> Client The game protocol is the in-game communication of player actions between the server and client.
Packets===
{ ## Server -> Client Packets
--- | Opcode | Type | Length (bytes) | Name | Description
|--|--|--|--|--|
| 1 | FIXED | 0 | [Animation reset](/317/317-Animation-reset.html) | Resets all animations in the immediate area. |
| 4 | FIXED | 6 | [Draw graphic at position](/317/317-Draw-graphic-at-position.html) | Draw a graphic at a given x/y position after a delay. |
| 8 | FIXED | 4 | [Set interface model](/317/317-Set-interface-model.html) | Draw a given model on a given interface. |
| 24 | FIXED | 1 | [Flash sidebar](/317/317-Flash-sidebar.html) | Causes a sidebar icon to start flashing. |
| 27 | FIXED | 0 | [Input amount](/317/317-Input-amount.html) | Displays the "Input amount" interface. |
| 34 | VARIABLE_SHORT | N/A | [Draw items on interface](/317/317-Draw-items-on-interface.html) | Draw a collection of items on an interface. |
| 35 | FIXED | 4 | [Camera shake](/317/317-Camera-shake.html) | Causes the camera to shake. |
| 36 | FIXED | 3 | [Force client setting](/317/317-Force-client-setting.html) | Forcefully changes a client's setting's value. Also changes the default value for that setting. |
| 44 | FIXED | 5 | [Send ground item](/317/317-Send-ground-item.html) | Place an item stack on the ground. |
| 50 | FIXED | 9 | [Send add friend](/317/317-Send-add-friend.html) | Sends a friend to the friend list. |
| 53 | VARIABLE_SHORT | N/A | [Draw items on interface](/317/317-Draw-items-on-interface.html) | Draw a collection of items on an interface. |
| 60 | VARIABLE_SHORT | N/A | [Begin processing position related packets](/317/317-Begin-processing-position-related-packets.html) | Begin processing position related packets. |
| 61 | FIXED | 1 | [Show multi-combat](/317/317-Show-multi-combat.html) | Shows the player that they are in a multi-combat zone. |
| 64 | FIXED | 2 | [Delete ground item](/317/317-Delete-ground-item.html) | Delete ground item. |
| 65 | VARIABLE_SHORT | N/A | [NPC updating](/317/317-NPC-updating.html) | NPC updating |
| 68 | FIXED | 0 | [Reset button state](/317/317-Reset-button-state.html) | Resets the button state for all buttons. |
| 70 | FIXED | 6 | [Interface offset](/317/317-Interface-offset.html) | Sets the offset for drawing of an interface. |
| 71 | FIXED | 3 | [Send sidebar interface](/317/317-Send-sidebar-interface.html) | Assigns an interface to one of the tabs in the game sidebar. |
| 72 | FIXED | 2 | [Clear inventory](/317/317-Clear-inventory.html) | Clears an interface's inventory. |
| 73 | FIXED | 4 | [Load map region](/317/317-Load-map-region.html) | Loads a new map region. |
| 74 | FIXED | 4 | [Play song](/317/317-Play-song.html) | Starts playing a song. |
| 75 | FIXED | 4 | [NPC head on interface](/317/317-NPC-head-on-interface.html) | Place the head of an NPC on an interface |
| 78 | FIXED | 0 | [Reset destination](/317/317-Reset-destination.html) | Resets the players' destination. |
| 79 | FIXED | 4 | [Scroll position](/317/317-Scroll-position.html) | Sets the scrollbar position of an interface. |
| 81 | VARIABLE | N/A | [Begin player updating](/317/317-Begin-player-updating.html) | Begins the player update procedure |
| 84 | FIXED | 7 | [Edit ground item amount](/317/317-Edit-ground-item-amount.html) | Edit ground item amount |
| 85 | FIXED | 2 | [Set local player coordinates](/317/317-Set-local-player-coordinates.html) | Set local player coordinates |
| 87 | FIXED | 7 | [Force client setting](/317/317-Force-client-setting.html) | Forcefully changes a client's setting's value. Also changes the default value for that setting. |
| 97 | FIXED | 2 | [Show interface](/317/317-Show-interface.html) | Displays a normal interface. |
| 99 | FIXED | 1 | [Minimap State](/317/317-Minimap-State.html) | Sets the mini map's state. |
| 101 | FIXED | 3 | [Object removal](/317/317-Object-removal.html) | Sends an object removal request to the client. |
| 104 | VARIABLE | N/A | [Player Option](/317/317-Player-Option.html) | Adds a player option to the right click menu of player(s). |
| 105 | FIXED | 4 | [Play sound in location](/317/317-Play-sound-in-location.html) | Play sound in location. |
| 106 | FIXED | 1 | [Interface over tab](/317/317-Interface-over-tab.html) | Draws an interface over the tab area. |
| 107 | FIXED | 0 | [Reset camera](/317/317-Reset-camera.html) | Resets the camera position. |
| 109 | FIXED | 0 | [Logout](/317/317-Logout.html) | Disconnects the client from the server. |
| 110 | FIXED | 1 | [Run energy](/317/317-Run-energy.html) | Sends the players run energy level. |
| 114 | FIXED | 2 | [System update](/317/317-System-update.html) | Sends how many seconds until a 'System Update.' |
| 117 | N/A | N/A | [Create Projectile](/317/317-Create-Projectile.html) | Creates a projectile. |
| 121 | FIXED | 4 | [Song Queue](/317/317-Song-Queue.html) | Queues a song to be played next. |
| 122 | FIXED | 4 | [Interface color](/317/317-Interface-color.html) | Changes the color of an interface. |
| 126 | VARIABLE_SHORT | N/A | [Set interface text](/317/317-Set-interface-text.html) | Attaches text to an interface. |
| 134 | FIXED | 6 | [Skill level](/317/317-Skill-level.html) | Sends a skill level to the client. |
| 142 | FIXED | 2 | [Show inventory interface](/317/317-Show-inventory-interface.html) | Show inventory interface |
| 147 | FIXED | 14 | [Player to object transformation](/317/317-Player-to-object-transformation.html) | Player to object transformation |
| 151 | FIXED | 5 | [Object spawn](/317/317-Object-spawn.html) | Sends an object spawn request to the client. |
| 156 | FIXED | 3 | [Remove non-specified ground items???](/317/317-Remove-non-specified-ground-items???.html) | Remove non-specified ground items?????? |
| 160 | FIXED | 4 | [Spawn an animated object???](/317/317-Spawn-an-animated-object???.html) | Shows an interface in the chat box?????? |
| 164 | FIXED | 2 | [Chat interface](/317/317-Chat-interface.html) | Shows an interface in the chat box. |
| 166 | FIXED | 6 | [Spin camera](/317/317-Spin-camera.html) | Spin camera |
| 171 | FIXED | 3 | [Hidden Interface](/317/317-Hidden-Interface.html) | Sets an interface to be hidden until hovered over. |
| 174 | FIXED | N/A | [Audio](/317/317-Audio.html) | Sets what audio/sound is to play at a certain time. |
| 176 | FIXED | 10 | [Open welcome screen](/317/317-Open-welcome-screen.html) | Displays the welcome screen. |
| 177 | FIXED | 6 | [Set cutscene camera](/317/317-Set-cutscene-camera.html) | Set cutscene camera |
| 185 | FIXED | 2 | [Player head to interface](/317/317-Player-head-to-interface.html) | Sends the players head model to an interface |
| 187 | FIXED | 0 | [Enter name](/317/317-Enter-name.html) | Displays the "Enter name" interface. |
| 196 | VARIABLE_BYTE | N/A | [Send private message](/317/317-Send-private-message.html) | Sends a private message to another player. |
| 200 | FIXED | 4 | [Interface animation](/317/317-Interface-animation.html) | Sets an interface's model animation. |
| 206 | FIXED | 3 | [Chat settings](/317/317-Chat-settings.html) | Sends the chat privacy settings. |
| 208 | FIXED | 2 | [Walkable interface](/317/317-Walkable-interface.html) | Displays an interface in walkable mode. |
| 214 | VARIABLE_SHORT | N/A | [Send add ignore](/317/317-Send-add-ignore.html) | Sends a ignored player to the ignore list. |
| 215 | FIXED | 7 | [Spawn ground item for all except specified player](/317/317-Spawn-ground-item-for-all-except-specified-player.html) | Spawn ground item for all except specified player |
| 218 | FIXED | 2 | [Open chatbox interface](/317/317-Open-chatbox-interface.html) | Opens an interface over the chatbox. |
| 219 | FIXED | 0 | [Clear screen](/317/317-Clear-screen.html) | Clears the screen of all open interfaces. |
| 221 | FIXED | 1 | [Friends list status](/317/317-Friends-list-status.html) | Friends list load status. |
| 230 | FIXED | 8 | [Interface model rotation](/317/317-Interface-model-rotation.html) | Sets an interface's model rotation and zoom |
| 240 | FIXED | 2 | [Weight](/317/317-Weight.html) | Sends the players weight amount. |
| 241 | VARIABLE_SHORT | N/A | [Construct map region](/317/317-Construct-map-region.html) | Constructs a dynamic map region using a palette of 8*8 tiles. |
| 246 | FIXED | 6 | [Interface item](/317/317-Interface-item.html) | Displays an item model inside an interface. |
| 248 | FIXED | 4 | [Inventory overlay](/317/317-Inventory-overlay.html) | Displays an interface over the sidebar area. |
| 249 | FIXED | 3 | [Initialize player](/317/317-Initialize-player.html) | Sends the player's membership status and their current index on the server's player list. |
| 253 | VARIABLE_BYTE | N/A | [Send message](/317/317-Send-message.html) | Sends a server message (e.g. 'Welcome to RuneScape') or trade/duel request. |
| 254 | VARIABLE_BYTE | N/A | [Display hint icon](/317/317-Display-hint-icon.html) | Displays a hint icon. |
! Opcode ! Type ! Length (bytes) ! Name ! Description \|- \| 1 \| FIXED ## Client -> Server Packets
\| 0 \| \[\[317 Animation reset\|Animation reset\]\] \| Resets all | Opcode | Type | Length (bytes) | Name | Description
animations in the immediate area. \|- \| 4 \| FIXED \| 6 \| \[\[317 Draw |--|--|--|--|--|
graphic at position\|Draw graphic at position\]\] \| Draw a graphic at a | 0 | FIXED | 0 | [Idle](/317/317-Idle.html) | Sent when there are no actions being performed by the player for this cycle. |
given x/y position after a delay. \|- \| 8 \| FIXED \| 4 \| \[\[317 Set | 3 | FIXED | 1 | [Focus change](/317/317-Focus-change.html) | Sent when the game client window goes out of focus. |
interface model\|Set interface model\]\] \| Draw a given model on a | 4 | VARIABLE BYTE | N/A | [Chat](/317/317-Chat.html) | Sent when the player enters a chat message. |
given interface. \|- \| 24 \| FIXED \| 1 \| \[\[317 Flash sidebar\|Flash | 14 | FIXED | 8 | [Item on player](/317/317-Item-on-player.html) | Sent when a player uses an item on another player. |
sidebar\]\] \| Causes a sidebar icon to start flashing. \|- \| 27 \| | 16 | FIXED | 1 | [Alternate item option 2](/317/317-Alternate-item-option-2.html) | Sent when a player uses an item. This is an alternate item option. |
FIXED \| 0 \| \[\[317 Input amount\|Input amount\]\] \| Displays the | 17 | FIXED | 2 | [NPC action 2](/317/317-NPC-action-2.html) | Sent when a player clicks the second option of an NPC. |
"Input amount" interface. \|- \| 34 \| VARIABLE\_SHORT \| N/A \| \[\[317 | 18 | FIXED | 2 | [NPC action 4](/317/317-NPC-action-4.html) | Sent when a player clicks the fourth option of an NPC. |
Draw items on interface\|Draw items on interface\]\] \| Draw a | 21 | FIXED | 2 | [NPC action 3](/317/317-NPC-action-3.html) | Sent when a player clicks the third option of an NPC. |
collection of items on an interface. \|- \| 35 \| FIXED \| 4 \| \[\[317 | 25 | FIXED | 10 | [Item on floor](/317/317-Item-on-floor.html) | Sent when a player uses an item on another item thats on the floor. |
Camera shake\|Camera shake\]\] \| Causes the camera to shake. \|- \| 36 | 39 | FIXED | 2 | [Trade answer](/317/317-Trade-answer.html) | Sent when a player answers a trade request from another player. |
\| FIXED \| 3 \| \[\[317 Force client setting\|Force client setting\]\] | 40 | FIXED | N/A | [NpcDialogue](/317/317-NPC-Dialogue.html) | Sent when a player clicks the "Click here to continue" on any dialogue. |
\| Forcefully changes a client's setting's value. Also changes the | 41 | FIXED | 6 | [Equip item](/317/317-Equip-item.html) | Sent when a player equips an item. |
default value for that setting. \|- \| 44 \| FIXED \| 5 \| \[\[317 Send | 43 | FIXED | 6 | [Bank 10 items](/317/317-Bank-10-items.html) | Sent when a player banks 10 of a certain item. |
ground item\|Send ground item\]\] \| Place an item stack on the ground. | 53 | FIXED | 4 | [Item on item](/317/317-Item-on-item.html) | Sent when a player uses an item with another item. |
\|- \| 50 \| FIXED \| 9 \| \[\[317 Send add friend\|Send add friend\]\] | 70 | FIXED | 6 | [Object action 3](/317/317-Object-action-3.html) | Sent when the player clicks the third action available for an object. |
\| Sends a friend to the friend list. \|- \| 53 \| VARIABLE\_SHORT \| | 72 | FIXED | 2 | [Attack (NPC)](/317/317-Attack-(NPC).html) | Sent when a player attacks an NPC. |
N/A \| \[\[317 Draw items on interface\|Draw items on interface\]\] \| | 73 | FIXED | 2 | [Trade request](/317/317-Trade-request.html) | Sent when a player requests a trade with another player. |
Draw a collection of items on an interface. \|- \| 60 \| VARIABLE\_SHORT | 74 | FIXED | 8 | [Remove ignore](/317/317-Remove-ignore.html) | Sent when a player removes a player from their ignore list. |
\| N/A \| \[\[317 Begin processing position related packets\|Begin | 79 | FIXED | 6 | [Light item](/317/317-Light-item.html) | Sent when a player attempts to light logs on fire. |
processing position related packets\]\] \| Begin processing position | 86 | FIXED | 4 | [Camera movement](/317/317-Camera-movement.html) | Sent when the player moves the camera. |
related packets. \|- \| 61 \| FIXED \| 1 \| \[\[317 Show | 87 | FIXED | 6 | [Drop item](/317/317-Drop-item.html) | Sent when a player wants to drop an item onto the ground. |
multi-combat\|Show multi-combat\]\] \| Shows the player that they are in | 95 | FIXED | 3 | [Privacy options](/317/317-Privacy-options.html) | Sent when a player changes their privacy options (i.e. public chat). |
a multi-combat zone. \|- \| 64 \| FIXED \| 2 \| \[\[317 Delete ground | 98 | VARIABLE_BYTE | N/A | [Walk on command](/317/317-Walk-on-command.html) | Sent when the player should walk somewhere according to a certain action performed, such as clicking an object. |
item\|Delete ground item\]\] \| Delete ground item. \|- \| 65 \| | 101 | FIXED | 13 | [Design screen](/317/317-Design-screen.html) | Sent when a player is choosing their character design options. |
VARIABLE\_SHORT \| N/A \| \[\[317 NPC updating\|NPC updating\]\] \| NPC | 103 | VARIABLE_BYTE | N/A | [Player command](/317/317-Player-command.html) | Sent when the player enters a command in the chat box (e.g. "::command") |
updating \|- \| 68 \| FIXED \| 0 \| \[\[317 Reset button state\|Reset | 117 | FIXED | 6 | [Bank 5 items](/317/317-Bank-5-items.html) | Sent when a player banks 5 of a certain item. |
button state\]\] \| Resets the button state for all buttons. \|- \| 70 | 121 | FIXED | 0 | [Loading finished](/317/317-Loading-finished.html) | Sent when the client finishes loading a map region. |
\| FIXED \| 6 \| \[\[317 Interface offset\|Interface offset\]\] \| Sets | 122 | FIXED | 6 | [Item action 1](/317/317-Item-action-1.html) | Sent when the player clicks the first option of an item, such as "Bury" for bones. |
the offset for drawing of an interface. \|- \| 71 \| FIXED \| 3 \| | 126 | VARIABLE BYTE | N/A | [Private message](/317/317-Private-message.html) | Sent when a player sends a private message to another player. |
\[\[317 Send sidebar interface\|Send sidebar interface\]\] \| Assigns an | 129 | FIXED | 6 | [Bank all items](/317/317-Bank-all-items.html) | Sent when a player banks all of a certain item that they have in their inventory. |
interface to one of the tabs in the game sidebar. \|- \| 72 \| FIXED \| | 130 | FIXED | 0 | [Close window](/317/317-Close-window.html) | Sent when a player presses the close, exit or cancel button on an interface. |
2 \| \[\[317 Clear inventory\|Clear inventory\]\] \| Clears an | 131 | FIXED | 4 | [Mage NPC](/317/317-Mage-NPC.html) | Sent when a player uses magic attacks on an NPC. |
interface's inventory. \|- \| 73 \| FIXED \| 4 \| \[\[317 Load map | 132 | FIXED | 6 | [Object action 1](/317/317-Object-action-1.html) | Sent when the player clicks the first option of an object, such as "Cut" for trees. |
region\|Load map region\]\] \| Loads a new map region. \|- \| 74 \| | 133 | FIXED | 8 | [Add ignore](/317/317-Add-ignore.html) | Sent when a player adds a player to their ignore list. |
FIXED \| 4 \| \[\[317 Play song\|Play song\]\] \| Starts playing a song. | 135 | FIXED | 6 | [Bank X items part-1](/317/317-Bank-X-items-part-1.html) | Sent when a player requests to bank an X amount of items. |
\|- \| 75 \| FIXED \| 4 \| \[\[317 NPC head on interface\|NPC head on | 139 | FIXED | 2 | [Follow](/317/317-Follow.html) | Sent when a player clicks the follow option on another player. |
interface\]\] \| Place the head of an NPC on an interface \|- \| 78 \| | 145 | FIXED | 6 | [Unequip item](/317/317-Unequip-item.html) | Sent when a player unequips an item. |
FIXED \| 0 \| \[\[317 Reset destination\|Reset destination\]\] \| Resets | 155 | FIXED | 2 | [NPC action 1](/317/317-NPC-action-1.html) | Sent when a player clicks first option of an NPC, such as "Talk." |
the players' destination. \|- \| 79 \| FIXED \| 4 \| \[\[317 Scroll | 164 | VARIABLE_BYTE | N/A | [Regular walk](/317/317-Regular-walk.html) | Sent when the player walks regularly. |
position\|Scroll position\]\] \| Sets the scrollbar position of an | 185 | FIXED | 2 | [Button click](/317/317-Button-click.html) | Sent when a player clicks an in-game button. |
interface. \|- \| 81 \| VARIABLE \| N/A \| \[\[317 Begin player | 188 | FIXED | 8 | [Add friend](/317/317-Add-friend.html) | Sent when a player adds a friend to their friend list. |
updating\|Begin player updating\]\] \| Begins the player update | 192 | FIXED | 12 | [Item on object](/317/317-Item-on-object.html) | Sent when a a player uses an item on an object. |
procedure \|- \| 84 \| FIXED \| 7 \| \[\[317 Edit ground item | 202 | FIXED | 0 | [Idle logout](/317/317-Idle-logout.html) | Sent when the player has become idle and should be logged out. |
amount\|Edit ground item amount\]\] \| Edit ground item amount \|- \| 85 | 208 | FIXED | 4 | [Bank X items part-2](/317/317-Bank-X-items-part-2.html) | Sent when a player enters an X amount of items they want to bank. |
\| FIXED \| 2 \| \[\[317 Set local player coordinates\|Set local player | 210 | FIXED | 0 | [Region change](/317/317-Region-change.html) | Sent when a player enters a new map region. |
coordinates\]\] \| Set local player coordinates \|- \| 87 \| FIXED \| 7 | 214 | FIXED | 7 | [Move item](/317/317-Move-item.html) | Sent when a player moves an item from one slot to another. |
\| \[\[317 Force client setting\|Force client setting\]\] \| Forcefully | 215 | FIXED | 8 | [Remove friend](/317/317-Remove-friend.html) | Sent when a player removes a friend from their friend list. |
changes a client's setting's value. Also changes the default value for | 218 | FIXED | 8 | [Report player](/317/317-Report-player.html) | Sent when a player reports another player. |
that setting. \|- \| 97 \| FIXED \| 2 \| \[\[317 Show interface\|Show | 236 | FIXED | 6 | [Pickup ground item](/317/317-Pickup-ground-item.html) | Sent when the player picks up an item from the ground. |
interface\]\] \| Displays a normal interface. \|- \| 99 \| FIXED \| 1 \| | 237 | FIXED | 8 | [Magic on items](/317/317-Magic-on-items.html) | Sent when a player casts magic on the items in their inventory. |
\[\[317 Minimap State\|Minimap State\]\] \| Sets the mini map's state. | 241 | FIXED | 4 | [Mouse click](/317/317-Mouse-click.html) | Sent when the player clicks somewhere on the game screen. |
\|- \| 101 \| FIXED \| 3 \| \[\[317 Object removal\|Object removal\]\] | 248 | VARIABLE_BYTE | N/A | [Map walk](/317/317-Map-walk.html) | Sent when the player walks using the map. Has 14 additional (assumed to be anticheat) bytes added to the end of it that are ignored. |
\| Sends an object removal request to the client. \|- \| 104 \| VARIABLE | 249 | FIXED | 4 | [Magic on player](/317/317-Magic-on-player.html) | Sent when a player attempts to cast magic on another player. |
\| N/A \| \[\[317 Player Option\|Player Option\]\] \| Adds a player | 252 | FIXED | 6 | [Object action 2](/317/317-Object-action-2.html) | Sent when the player clicks the second option available for an object. |
option to the right click menu of player(s). \|- \| 105 \| FIXED \| 4 \| | 253 | FIXED | 6 | [Ground Item Action](/317/317-Ground-Item-Action.html) | Sent when the player clicks the first option for a ground item (i.e. 'Light Logs') |
\[\[317 Play sound in location\|Play sound in location\]\] \| Play sound
in location. \|- \| 106 \| FIXED \| 1 \| \[\[317 Interface over
tab\|Interface over tab\]\] \| Draws an interface over the tab area. \|-
\| 107 \| FIXED \| 0 \| \[\[317 Reset camera\|Reset camera\]\] \| Resets
the camera position. \|- \| 109 \| FIXED \| 0 \| \[\[317
Logout\|Logout\]\] \| Disconnects the client from the server. \|- \| 110
\| FIXED \| 1 \| \[\[317 Run energy\|Run energy\]\] \| Sends the players
run energy level. \|- \| 114 \| FIXED \| 2 \| \[\[317 System
update\|System update\]\] \| Sends how many seconds until a 'System
Update.' \|- \| 117 \| N/A \| N/A \| \[\[317 Create Projectile\|Create
Projectile\]\] \| Creates a projectile. \|- \| 121 \| FIXED \| 4 \|
\[\[317 Song Queue\|Song Queue\]\] \| Queues a song to be played next.
\|- \| 122 \| FIXED \| 4 \| \[\[317 Interface color\|Interface color\]\]
\| Changes the color of an interface. \|- \| 126 \| VARIABLE\_SHORT \|
N/A \| \[\[317 Set interface text\|Set interface text\]\] \| Attaches
text to an interface. \|- \| 134 \| FIXED \| 6 \| \[\[317 Skill
level\|Skill level\]\] \| Sends a skill level to the client. \|- \| 142
\| FIXED \| 2 \| \[\[317 Show inventory interface\|Show inventory
interface\]\] \| Show inventory interface \|- \| 147 \| FIXED \| 14 \|
\[\[317 Player to object transformation\|Player to object
transformation\]\] \| Player to object transformation \|- \| 151 \|
FIXED \| 5 \| \[\[317 Object spawn\|Object spawn\]\] \| Sends an object
spawn request to the client. \|- \| 156 \| FIXED \| 3 \| \[\[317 Remove
non-specified ground items???\|Remove non-specified ground items???\]\]
\| Remove non-specified ground items?????? \|- \| 160 \| FIXED \| 4 \|
\[\[317 Spawn an animated object???\|Spawn an animated object???\]\] \|
Shows an interface in the chat box?????? \|- \| 164 \| FIXED \| 2 \|
\[\[317 Chat interface\|Chat interface\]\] \| Shows an interface in the
chat box. \|- \| 166 \| FIXED \| 6 \| \[\[317 Spin camera\|Spin
camera\]\] \| Spin camera \|- \| 171 \| FIXED \| 3 \| \[\[317 Hidden
Interface\|Hidden Interface\]\] \| Sets an interface to be hidden until
hovered over. \|- \| 174 \| FIXED \| N/A \| \[\[317 Audio\|Audio\]\] \|
Sets what audio/sound is to play at a certain time. \|- \| 176 \| FIXED
\| 10 \| \[\[317 Open welcome screen\|Open welcome screen\]\] \|
Displays the welcome screen. \|- \| 177 \| FIXED \| 6 \| \[\[317 Set
cutscene camera\|Set cutscene camera\]\] \| Set cutscene camera \|- \|
185 \| FIXED \| 2 \| \[\[317 Player head to interface\|Player head to
interface\]\] \| Sends the players head model to an interface \|- \| 187
\| FIXED \| 0 \| \[\[317 Enter name\|Enter name\]\] \| Displays the
"Enter name" interface. \|- \| 196 \| VARIABLE\_BYTE \| N/A \| \[\[317
Send private message\|Send private message\]\] \| Sends a private
message to another player. \|- \| 200 \| FIXED \| 4 \| \[\[317 Interface
animation\|Interface animation\]\] \| Sets an interface's model
animation. \|- \| 206 \| FIXED \| 3 \| \[\[317 Chat settings\|Chat
settings\]\] \| Sends the chat privacy settings. \|- \| 208 \| FIXED \|
2 \| \[\[317 Walkable interface\|Walkable interface\]\] \| Displays an
interface in walkable mode. \|- \| 214 \| VARIABLE\_SHORT \| N/A \|
\[\[317 Send add ignore\|Send add ignore\]\] \| Sends a ignored player
to the ignore list. \|- \| 215 \| FIXED \| 7 \| \[\[317 Spawn ground
item for all except specified player\|Spawn ground item for all except
specified player\]\] \| Spawn ground item for all except specified
player \|- \| 218 \| FIXED \| 2 \| \[\[317 Open chatbox interface\|Open
chatbox interface\]\] \| Opens an interface over the chatbox. \|- \| 219
\| FIXED \| 0 \| \[\[317 Clear screen\|Clear screen\]\] \| Clears the
screen of all open interfaces. \|- \| 221 \| FIXED \| 1 \| \[\[317
Friends list status\|Friends list status\]\] \| Friends list load
status. \|- \| 230 \| FIXED \| 8 \| \[\[317 Interface model
rotation\|Interface model rotation\]\] \| Sets an interface's model
rotation and zoom \|- \| 240 \| FIXED \| 2 \| \[\[317 Weight\|Weight\]\]
\| Sends the players weight amount. \|- \| 241 \| VARIABLE\_SHORT \| N/A
\| \[\[317 Construct map region\|Construct map region\]\] \| Constructs
a dynamic map region using a palette of 8\*8 tiles. \|- \| 246 \| FIXED
\| 6 \| \[\[317 Interface item\|Interface item\]\] \| Displays an item
model inside an interface. \|- \| 248 \| FIXED \| 4 \| \[\[317 Inventory
overlay\|Inventory overlay\]\] \| Displays an interface over the sidebar
area. \|- \| 249 \| FIXED \| 3 \| \[\[317 Initialize player\|Initialize
player\]\] \| Sends the player's membership status and their current
index on the server's player list. \|- \| 253 \| VARIABLE\_BYTE \| N/A
\| \[\[317 Send message\|Send message\]\] \| Sends a server message
(e.g. 'Welcome to RuneScape') or trade/duel request. \|- \| 254 \|
VARIABLE\_BYTE \| N/A \| \[\[317 Display hint icon\|Display hint
icon\]\] \| Displays a hint icon. \|- \|}
===Client -\> Server Packets===
{
---
! Opcode ! Type ! Length (bytes) ! Name ! Description \|- \| 0 \| FIXED
\| 0 \| \[\[317 Idle\|Idle\]\] \| Sent when there are no actions being
performed by the player for this cycle. \|- \| 3 \| FIXED \| 1 \|
\[\[317 Focus change\|Focus change\]\] \| Sent when the game client
window goes out of focus. \|- \| 4 \| VARIABLE BYTE \| N/A \| \[\[317
Chat\|Chat\]\] \| Sent when the player enters a chat message. \|- \| 14
\| FIXED \| 8 \| \[\[317 Item on player\|Item on player\]\] \| Sent when
a player uses an item on another player. \|- \| 16 \| FIXED \| 1 \|
\[\[317 Alternate item option 2\|Alternate item option 2\]\] \| Sent
when a player uses an item. This is an alternate item option. \|- \| 17
\| FIXED \| 2 \| \[\[317 NPC action 2\|NPC action 2\]\] \| Sent when a
player clicks the second option of an NPC. \|- \| 18 \| FIXED \| 2 \|
\[\[317 NPC action 4\|NPC action 4\]\] \| Sent when a player clicks the
fourth option of an NPC. \|- \| 21 \| FIXED \| 2 \| \[\[317 NPC action
3\|NPC action 3\]\] \| Sent when a player clicks the third option of an
NPC. \|- \| 25 \| FIXED \| 10 \| \[\[317 Item on floor\|Item on
floor\]\] \| Sent when a player uses an item on another item thats on
the floor. \|- \| 39 \| FIXED \| 2 \| \[\[317 Trade answer\|Trade
answer\]\] \| Sent when a player answers a trade request from another
player. \|- \| 40 \| FIXED \| N/A \| \[\[317 NPC
Dialogue\|NpcDialogue\]\] \| Sent when a player clicks the "Click here
to continue" on any dialogue. \|- \| 41 \| FIXED \| 6 \| \[\[317 Equip
item\|Equip item\]\] \| Sent when a player equips an item. \|- \| 43 \|
FIXED \| 6 \| \[\[317 Bank 10 items\|Bank 10 items\]\] \| Sent when a
player banks 10 of a certain item. \|- \| 53 \| FIXED \| 4 \| \[\[317
Item on item\|Item on item\]\] \| Sent when a player uses an item with
another item. \|- \| 70 \| FIXED \| 6 \| \[\[317 Object action 3\|Object
action 3\]\] \| Sent when the player clicks the third action available
for an object. \|- \| 72 \| FIXED \| 2 \| \[\[317 Attack (NPC)\|Attack
(NPC)\]\] \| Sent when a player attacks an NPC. \|- \| 73 \| FIXED \| 2
\| \[\[317 Trade request\|Trade request\]\] \| Sent when a player
requests a trade with another player. \|- \| 74 \| FIXED \| 8 \| \[\[317
Remove ignore\|Remove ignore\]\] \| Sent when a player removes a player
from their ignore list. \|- \| 79 \| FIXED \| 6 \| \[\[317 Light
item\|Light item\]\] \| Sent when a player attempts to light logs on
fire. \|- \| 86 \| FIXED \| 4 \| \[\[317 Camera movement\|Camera
movement\]\] \| Sent when the player moves the camera. \|- \| 87 \|
FIXED \| 6 \| \[\[317 Drop item\|Drop item\]\] \| Sent when a player
wants to drop an item onto the ground. \|- \| 95 \| FIXED \| 3 \|
\[\[317 Privacy options\|Privacy options\]\] \| Sent when a player
changes their privacy options (i.e. public chat). \|- \| 98 \|
VARIABLE\_BYTE \| N/A \| \[\[317 Walk on command\|Walk on command\]\] \|
Sent when the player should walk somewhere according to a certain action
performed, such as clicking an object. \|- \| 101 \| FIXED \| 13 \|
\[\[317 Design screen\|Design screen\]\] \| Sent when a player is
choosing their character design options. \|- \| 103 \| VARIABLE\_BYTE \|
N/A \| \[\[317 Player command\|Player command\]\] \| Sent when the
player enters a command in the chat box (e.g. "::command") \|- \| 117 \|
FIXED \| 6 \| \[\[317 Bank 5 items\|Bank 5 items\]\] \| Sent when a
player banks 5 of a certain item. \|- \| 121 \| FIXED \| 0 \| \[\[317
Loading finished\|Loading finished\]\] \| Sent when the client finishes
loading a map region. \|- \| 122 \| FIXED \| 6 \| \[\[317 Item action
1\|Item action 1\]\] \| Sent when the player clicks the first option of
an item, such as "Bury" for bones. \|- \| 126 \| VARIABLE BYTE \| N/A \|
\[\[317 Private message\|Private message\]\] \| Sent when a player sends
a private message to another player. \|- \| 129 \| FIXED \| 6 \| \[\[317
Bank all items\|Bank all items\]\] \| Sent when a player banks all of a
certain item that they have in their inventory. \|- \| 130 \| FIXED \| 0
\| \[\[317 Close window\|Close window\]\] \| Sent when a player presses
the close, exit or cancel button on an interface. \|- \| 131 \| FIXED \|
4 \| \[\[317 Mage NPC\|Mage NPC\]\] \| Sent when a player uses magic
attacks on an NPC. \|- \| 132 \| FIXED \| 6 \| \[\[317 Object action
1\|Object action 1\]\] \| Sent when the player clicks the first option
of an object, such as "Cut" for trees. \|- \| 133 \| FIXED \| 8 \|
\[\[317 Add ignore\|Add ignore\]\] \| Sent when a player adds a player
to their ignore list. \|- \| 135 \| FIXED \| 6 \| \[\[317 Bank X items
part-1\|Bank X items part-1\]\] \| Sent when a player requests to bank
an X amount of items. \|- \| 139 \| FIXED \| 2 \| \[\[317
Follow\|Follow\]\] \| Sent when a player clicks the follow option on
another player. \|- \| 145 \| FIXED \| 6 \| \[\[317 Unequip
item\|Unequip item\]\] \| Sent when a player unequips an item. \|- \|
155 \| FIXED \| 2 \| \[\[317 NPC action 1\|NPC action 1\]\] \| Sent when
a player clicks first option of an NPC, such as "Talk." \|- \| 164 \|
VARIABLE\_BYTE \| N/A \| \[\[317 Regular walk\|Regular walk\]\] \| Sent
when the player walks regularly. \|- \| 185 \| FIXED \| 2 \| \[\[317
Button click\|Button click\]\] \| Sent when a player clicks an in-game
button. \|- \| 188 \| FIXED \| 8 \| \[\[317 Add friend\|Add friend\]\]
\| Sent when a player adds a friend to their friend list. \|- \| 192 \|
FIXED \| 12 \| \[\[317 Item on object\|Item on object\]\] \| Sent when a
a player uses an item on an object. \|- \| 202 \| FIXED \| 0 \| \[\[317
Idle logout\|Idle logout\]\] \| Sent when the player has become idle and
should be logged out. \|- \| 208 \| FIXED \| 4 \| \[\[317 Bank X items
part-2\|Bank X items part-2\]\] \| Sent when a player enters an X amount
of items they want to bank. \|- \| 210 \| FIXED \| 0 \| \[\[317 Region
change\|Region change\]\] \| Sent when a player enters a new map region.
\|- \| 214 \| FIXED \| 7 \| \[\[317 Move item\|Move item\]\] \| Sent
when a player moves an item from one slot to another. \|- \| 215 \|
FIXED \| 8 \| \[\[317 Remove friend\|Remove friend\]\] \| Sent when a
player removes a friend from their friend list. \|- \| 218 \| FIXED \| 8
\| \[\[317 Report player\|Report player\]\] \| Sent when a player
reports another player. \|- \| 236 \| FIXED \| 6 \| \[\[317 Pickup
ground item\|Pickup ground item\]\] \| Sent when the player picks up an
item from the ground. \|- \| 237 \| FIXED \| 8 \| \[\[317 Magic on
items\|Magic on items\]\] \| Sent when a player casts magic on the items
in their inventory. \|- \| 241 \| FIXED \| 4 \| \[\[317 Mouse
click\|Mouse click\]\] \| Sent when the player clicks somewhere on the
game screen. \|- \| 248 \| VARIABLE\_BYTE \| N/A \| \[\[317 Map
walk\|Map walk\]\] \| Sent when the player walks using the map. Has 14
additional (assumed to be anticheat) bytes added to the end of it that
are ignored. \|- \| 249 \| FIXED \| 4 \| \[\[317 Magic on player\|Magic
on player\]\] \| Sent when a player attempts to cast magic on another
player. \|- \| 252 \| FIXED \| 6 \| \[\[317 Object action 2\|Object
action 2\]\] \| Sent when the player clicks the second option available
for an object. \|- \| 253 \| FIXED \| 6 \| \[\[317 Ground Item
Action\|Ground Item Action\]\] \| Sent when the player clicks the first
option for a ground item (I.E. 'Light Logs') \|- \|}

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Region Change
{{packet\|name=Region change\|description=Sent when a player enters a
new map region.\|opcode=210\|type=Fixed\|length=0\|revision=317}} ==
Region Change ==
=== Description ===
This packet is sent when a player enters a new map region. This packet is sent when a player enters a new map region.
## Packet Details
| Key | Value |
|--|--|
| Name | Region change |
| Description | Sent when a player enters a new map region. |
| Opcode | 210 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Remove Friend
{{packet\|name=Remove friend\|description=Sent when a player removes a This packet is sent when a player removes a friend from their friends list.
friend from their friend
list.\|opcode=215\|type=Fixed\|length=8\|revision=317}} == Remove Friend
==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Remove friend |
| Description | Sent when a player removes a friend from their friend list. |
| Opcode | 215 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player removes a friend from their friends ## Packet Structure
list. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Long](/Data-Types.html#common-data-types) | The other players ID. |
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
\|- \|}

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Remove Ignore
{{packet\|name=Remove ignore\|description=Sent when a player removes This packet is sent when a player removes another player from their ignore list.
another player from their ignore
list.\|opcode=74\|type=Fixed\|length=8\|revision=317}} == Remove Ignore
==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Remove ignore |
| Description | Sent when a player removes another player from their ignore list. |
| Opcode | 74 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player removes another player from their ## Packet Structure
ignore list. | Data Type | Description |
|--|--|
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| | [Long](/Data-Types.html#common-data-types) | The other players ID. |
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
\|- \|}

View File

@ -1,15 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Report Player
{{packet\|name=Report player\|description=Sent when a player reports
another player.\|opcode=218\|type=Fixed\|length=8\|revision=317}} ==
Report Player ==
=== Description ===
This packet is sent when a player reports another player. This packet is sent when a player reports another player.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Long\]\] \| The players name as a | Key | Value |
long. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The rule |--|--|
that's being reported \|- \| \[\[Data Types\#Standard data | Name | Report player |
types\|Byte\]\] \| Mute for 48 hours - Sent as either 1 or 0 for a | Description | Sent when a player reports another player. |
boolean client-side \|} | Opcode | 218 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | The players name as a long. |
| [Byte](/Data-Types.html#common-data-types) | The rule that's being reported |
| [Byte](/Data-Types.html#common-data-types) | Mute for 48 hours - Sent as either 1 or 0 for a boolean client-side |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Reset # Reset setting states
setting states\|description=Resets the states for all
settings.\|opcode=68\|type=Fixed\|length=0\|revision=317}} == Reset
setting states ==
=== Description ===
This packet resets the states for all user settings (inc. buttons). This packet resets the states for all user settings (inc. buttons).
## Packet Details
| Key | Value |
|--|--|
| Name | Reset setting states |
| Description | Resets the states for all settings. |
| Opcode | 68 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Reset # Reset Camera
camera\|description=Resets the camera
position.\|opcode=107\|type=Fixed\|length=0\|revision=317}} == Reset
Camera ==
=== Description ===
Resets the game's camera position to the client default. Resets the game's camera position to the client default.
## Packet Details
| Key | Value |
|--|--|
| Name | Reset camera |
| Description | Resets the camera position. |
| Opcode | 107 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,9 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Reset # Reset destination
destination\|description=Resets the player's Sending the packet to the client will make the client reset the player's destination and effectively stop them from walking.
destination.\|opcode=78\|type=Fixed\|length=0\|revision=317}} == Reset
destination ==
=== Description === ## Packet Details
| Key | Value |
Sending the packet to the client will make the client reset the player's |--|--|
destination and effectively stop them from walking. | Name | Reset destination |
| Description | Resets the player's destination. |
| Opcode | 78 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Run # Run Energy
energy\|description=Sends the players run energy
level.\|opcode=110\|type=Fixed\|length=1\|revision=317}} == Run Energy
==
=== Description ===
Sends how much run energy the player currently has. Sends how much run energy the player currently has.
=== Packet Structure === ## Packet Details
| Key | Value |
|--|--|
| Name | Run energy |
| Description | Sends the players run energy level. |
| Opcode | 110 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard ## Packet Structure
data types\|Byte\]\] \| The energy level. \|- \|} | Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The energy level. |

View File

@ -1,15 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Scroll Position
{{packet\|name=Scroll position\|description=Sets the scrollbar position
of an interface.\|opcode=79\|type=Fixed\|length=4\|revision=317}} ==
Scroll Position ==
=== Description ===
This packet sets the scrollbar position of an interface. This packet sets the scrollbar position of an interface.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data | Key | Value |
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \| |--|--|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non | Name | Scroll position |
Standard data types\|Special A\]\] \| The position of the scrollbar. \|- | Description | Sets the scrollbar position of an interface. |
\|} | Opcode | 79 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The position of the scrollbar. |

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send # Send Skill
Skill\|description=Sends a specific
skill\|opcode=154\|type=Fixed\|length=N/A\|revision=317}} == Send Skill
==
=== Description ===
This packet sends a specific skill. This packet sends a specific skill.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Byte\]\] \| The skill you want to | Key | Value |
send. \|- \| \[\[Data Types\#Standard data types\|Int\]\] \| The |--|--|
experience of that skill. \|- \| \[\[Data Types\#Standard data | Name | Send Skill |
types\|Byte\]\] \| The level of that skill. \|- \|} | Description | Sends a specific skill |
| Opcode | 154 |
| Type | Fixed |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The skill you want to send. |
| [Int](/Data-Types.html#common-data-types) | The experience of that skill. |
| [Byte](/Data-Types.html#common-data-types) | The level of that skill. |

View File

@ -1,37 +1,10 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] # Send Add Friend
<h3>
[ Description ]{.mw-headline}
</h3>
<p>
Sends friend data to the client Sends friend data to the client
Attempts to update player node, if player isn't in the friends list and Attempts to update player node, if player isn't in the friends list and there is space, the player is added to the friend list.
there is space, the player is added to the friend list.
</p> ## Packet Structure
<h3> | Data type | Description |
[ Packet Structure ]{.mw-headline} |--|--|
</h3> | [Long](/Data-Types.html#common-data-types) | Player name |
<table border="2"> | [Byte](/Data-Types.html#common-data-types) | The world (10 = "online" in world 1, 0 = logged out) |
<tr>
<th>
Data type
</th>
<th>
Description
</th>
</tr>
<tr>
<td>
Long
</td>
<td>
The player name
</td>
</tr>
<td>
Byte
</td>
<td>
The world (10 = "online" for most clients, 0 = logged out)
</td>
</table>

View File

@ -1,22 +1,31 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send # Send ignored users
ignored users\|description=Sends a list of all the ignored player
IDs\|opcode=214\|type=VARIABLE\_SHORT\|length=N/A\|revision=317}} ==
Send ignored users ==
=== Description ===
Sends the IDs of all the users that this player has in their ignore. Sends the IDs of all the users that this player has in their ignore.
Note: By looking at the rest of the 317 protocol, there doesn't seem to be a way to change the list dynamically.
It seems as though that whenever the player decides to add or remove a player from their list, it must send all the values again.
## Packet Details
| Key | Value |
|--|--|
| Name | Send ignored users |
| Description | Sends a list of all the ignored player IDs |
| Opcode | 214 |
| Type | VARIABLE_SHORT |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| Long block (see blow) | Player name |
## Long block
This packet has a slightly different structure than the other packets. This packet has a slightly different structure than the other packets.
int entries = packetSize / 8; for (int i = 0; i \< entries; i++) { ```java
ignoreList\[i\] = stream.readLong(); } int entries = packetSize / 8;
By looking at the rest of the 317 protocol, there doesn't seem to be a for (int i = 0; i < entries; i++) {
way to change the list dynamically. It seems as though that whenever the ignoreList[i] = stream.readLong();
player decides to add or remove a player from their list, it must send }
all the values again. ```
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard Data Types\|Long\]\] \| The Unique Identifier
of the player(s) (possibly determined by their username). \|- \|}

View File

@ -1,19 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send # Send Message
message\|description=Sends a server message, trade or duel request to Sends a server side message (e.g. 'Welcome to RuneScape'), or a trade/duel/challenge request.
the client's chat panel.\|opcode=253\|type=Variable
Byte\|length=N/A\|revision=317}} == Send Message ==
=== Description === The format for sending such requests is: `[player name][request type]`.
Where `[request type]` is one of `:duelreq:`, `:chalreq:`, or `:tradereq:`.
Sends a server side message (e.g. 'Welcome to RuneScape'), or Example: Trading a player called 'mopar': `mopar:tradereq:`.
trade/duel/challenge request.
The format for sending such requests is: '\[player name\]\[request ## Packet Details
type\]'. Where request type can be one of the following: ':duelreq:', | Key | Value |
':chalreq:' or ':tradereq:'. An example for trading the player 'mopar' |--|--|
would be: 'mopar:tradereq:'. | Name | Send message |
| Description | Sends a server message, trade or duel request to the client's chat panel. |
| Opcode | 253 |
| Type | Variable Byte |
| Length | N/A |
| Revision | 317 |
=== Packet Structure === ## Packet Structure
| Data Type | Description |
{\| border=2 ! Data type ! Description \|- \| \[\[RS String\|RS |--|--|
String\]\] \| The message. \|- \|} | [RS String](/RS-String.html) | The message. |

View File

@ -1,15 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Send Private # Send Private Message
Message == {\| style="float:right;margin:1em; width:250px;"
cellpadding="3" cellspacing="0" border="1" \|- ! scope="col" colspan="2"
style="background-color:\#3c5;" \| Send Message Sends Message to another
user. \|- ! scope="row"\| Opcode \| 196 \|- ! scope="row"\| Type \|
VARIABLE\_SHORT \|- ! scope="row"\| Length \| N/A \|}
=== Description ===
Sending a private message to another user on the server. Sending a private message to another user on the server.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Long\]\] \| Player name. \|- \| | Key | Value |
\[\[Data Types\#Standard data types\|Int\]\] \| ? \|- \| \[\[Data |--|--|
Types\#Standard data types\|Byte\]\] \| Player rights. \|- \|} | Name | Sending private message |
| Description | Send Message Sends Message to another user. |
| Opcode | 196 |
| Type | VARIABLE_SHORT |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | Player name. |
| [Int](/Data-Types.html#common-data-types) | Global message counter. |
| [Byte](/Data-Types.html#common-data-types) | Player rights. |

View File

@ -1,22 +1,38 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send # Send Sidebar Interface
sidebar interface\|description=Assigns an interface to on of the tabs in
the game sidebar.\|opcode=71\|type=Fixed\|length=3\|revision=317}} ==
Send Sidebar Interface ==
=== Description ===
This packet assigns an interface to one of the tabs in the game sidebar. This packet assigns an interface to one of the tabs in the game sidebar.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Standard data types\|Short\]\] \| The sidebar ID. \|- \| | Key | Value |
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non |--|--|
Standard Data Types\|Special A\]\] \| The interface ID. \|- \|} | Name | Send sidebar interface |
| Description | Assigns an interface to on of the tabs in the game sidebar. |
| Opcode | 71 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
=== Values === The below are the different values for this packet. {\| ## Packet Structure
border=2 ! Value ! Icon ! Norm. ID \|- \| 0 \|\| Attack type \|\| 2433 | Data Type | Description |
\|- \| 1 \|\| Stats \|\| 3917 \|- \| 2 \|\| Quests \|\| 638 \|- \| 3 |--|--|
\|\| Inventory \|\| 3213 \|- \| 4 \|\| Wearing \|\| 1644 \|- \| 5 \|\| | [Short](/Data-Types.html#common-data-types) | The sidebar ID. |
Prayer \|\| 5608 \|- \| 6 \|\| Magic \|\| 1151 \|- \| 7 \|\| '''EMPTY''' | [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |
\|- \| 8 \|\| Friends list \|\| 5065 \|- \| 9 \|\| Ignore list \|\| 5715
\|- \| 10 \|\| Log out \|\| 2449 \|- \| 11 \|\| Settings \|\| 4445 \|- ## Values
\| 12 \|\| Emotes \|\| 147 \|- \| 13 \|\| Music \|\| 6299 \|- \|} The below are the different values for this packet.
| Value | Icon | Norm. ID |
|--|--|--|
| 0 | Attack type | 2433 |
| 1 | Stats | 3917 |
| 2 | Quests | 638 |
| 3 | Inventory | 3213 |
| 4 | Wearing | 1644 |
| 5 | Prayer | 5608 |
| 6 | Magic | 1151 |
| 7 | *EMPTY* | N/A |
| 8 | Friends list | 5065 |
| 9 | Ignore list | 5715 |
| 10 | Log out | 2449 |
| 11 | Settings | 4445 |
| 12 | Emotes | 147 |
| 13 | Music | 6299 |

View File

@ -1,17 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Set # Set Interface Text
interface text\|description=Sets the text for a specified
interface\|opcode=126\|type=VARIABLE\_SHORT\|length=N/A\|revision=317}}
== Set Interface Text ==
=== Description ===
Sets the text for the specific interface. Sets the text for the specific interface.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Details
\[\[Data Types\#Non Standard Data Types\|RS\_String\]\] \| The new text | Key | Value |
for the interface \|- \| \[\[Data Types\#Non Standard Data Types\|Short |--|--|
A\]\] \| The interface id \|- \|} | Name | Set interface text |
| Description | Sets the text for a specified interface |
| Opcode | 126 |
| Type | VARIABLE_SHORT |
| Length | N/A |
| Revision | 317 |
=== Information === I do not recommend you use this to change the text ## Packet Structure
color. I refer you to \[\[317 Interface color\|Interface Color\]\] for | Data Type | Description |
the proper way to do so. |--|--|
| [RS String](/RS-String.html) | The new text for the interface |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface id |
## Information
I do not recommend you use this to change the text color.
I refer you to [Interface Color](317-Interface-color.html) packet for the proper way to do so.

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show # Show Interface
interface\|description=Displays a normal Displays a normal non-walkable interface.
interface.\|opcode=97\|type=Fixed\|length=2\|revision=317}} == Show
Interface ==
=== Description === ## Packet Details
| Key | Value |
|--|--|
| Name | Show interface |
| Description | Displays a normal interface. |
| Opcode | 97 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Displays a normal non-walkable \[\[Interfaces\|interface\]\] with the ## Packet Structure
given id. | Data Type | Description |
|--|--|
=== Packet Structure === | [Short](/Data-Types.html#common-data-types) | The interface id. |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \| The interface id. \|- \|}

View File

@ -1,15 +1,24 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show # Show multi-combat
multi-combat\|description=Shows the player if they are in a multi-combat Sending this packet to the client will make the client show the player if they are in a multi-combat zone.
zone.\|opcode=61\|type=Fixed\|length=1\|revision=317}} == Show
multi-combat ==
=== Description === States:
Sending this packet to the client will make the client show the player | ID | Name |
if they are in a multi-combat zone. |--|--|
| 0 | Not in a multi-combat zone (i.e. no crossbones in bottom-right). |
| 1 | In a multi-combat zone (i.e. crossbones in bottom-right). |
'''States:''' \* 0 - Not in a multi-combat zone, no crossbones in ## Packet Details
bottom-right. \* 1 - In a multi-combat zone, crossbones in bottom-right. | Key | Value |
|--|--|
| Name | Show multi-combat |
| Description | Shows the player if they are in a multi-combat zone. |
| Opcode | 61 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| ## Packet Structure
\[\[Data Types\#byte\|byte\]\] \| The state. \|- \|} | Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The state. |

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show # Show Tab
Tab\|description=Shows the given
tab.\|opcode=106\|type=Fixed\|length=1\|revision=317}} == Show Tab ==
=== Description ===
Shows the given tab id. Shows the given tab id.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| U ## Packet Details
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non | Key | Value |
Standard Data Types\|Special C\]\] \| Tab ID. \|- \|} |--|--|
| Name | Show Tab |
| Description | Shows the given tab. |
| Opcode | 106 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| U [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | Tab ID. |

Some files were not shown because too many files have changed in this diff Show More