|
|
(20 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{#revisionlist:}} | | [[File:Game Example.png|thumb|Example of a logged in player]]{{#revisionlist:}} |
| | |
| | I recently rewrote the content here to adopt the official nomenclature as much as possible. |
| | |
| | [https://www.runewiki.org/Old_Engine/Game_Protocol?revision=225 Check out the list for revision 225.] |
| | |
| | If you see any lowercase or hyphenated names in the un-versioned list, they're from my previous work in 317 and not used in 225. |
| | |
| | If you see a packet with an asterisk (*) next to it, it's an unofficial name. |
| | |
| | ==Resources== |
| | [[Data Types]] |
|
| |
|
| ==Client to Server Communication== | | ==Client to Server Communication== |
| | | This table is structured from the packet opcode lookup in the client. Sort by ID to see how packets are grouped, they all have reserved areas typically e.g. anticheat packets (randomly added during obfuscation) will exist from 60-75, player options will exist from 100-109, and so on. The "ID" column here is fixed across revisions. |
| TODO: I still need to describe every packet and their parameters.
| |
|
| |
|
| {{#clientprotocol:}} | | {{#clientprotocol:}} |
|
| |
|
| ==Server to Client Communication== | | ==Server to Client Communication== |
| | This table is manually described. |
| | |
| | {{#serverprotocol:}} |
|
| |
|
| The values listed here are using 317's order, opcodes, and transformations.
| | <br /> |
| {| class="wikitable"
| |
| !Opcode
| |
| !Name
| |
| !Size
| |
| !Length
| |
| !Format
| |
| |-
| |
| |1
| |
| |reset-animations
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |4
| |
| |interface-graphic
| |
| |Fixed
| |
| |6
| |
| |Byte, WordLE, Byte, WordLE
| |
| |-
| |
| |8
| |
| |interface-model
| |
| |Fixed
| |
| |4
| |
| |WordAddLE, Word
| |
| |-
| |
| |24
| |
| |interface-sidebar-flash
| |
| |Fixed
| |
| |1
| |
| |ByteSub
| |
| |-
| |
| |27
| |
| |interface-amount
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |34
| |
| |interface-item-slot
| |
| |Variable Word
| |
| |2+
| |
| |Word, Bytes
| |
| |-
| |
| |35
| |
| |camera-shake
| |
| |Fixed
| |
| |4
| |
| |Byte, Byte, Byte, Byte
| |
| |-
| |
| |36
| |
| |interface-setting
| |
| |Fixed
| |
| |3
| |
| |WordLE, ByteSigned
| |
| |-
| |
| |44
| |
| |ground-item-add
| |
| |Fixed
| |
| |5
| |
| |WordAdd, WordLE, Byte
| |
| |-
| |
| |50
| |
| |social-add-friend
| |
| |Fixed
| |
| |9
| |
| |Base37, Byte
| |
| |-
| |
| |53
| |
| |interface-item-array
| |
| |Variable Word
| |
| |4+
| |
| |Word, Word, Bytes
| |
| |-
| |
| |60
| |
| |process-group-packets
| |
| |Variable Word
| |
| |1+
| |
| |Bytes
| |
| |-
| |
| |61
| |
| |display-multi-icon
| |
| |Fixed
| |
| |1
| |
| |Byte
| |
| |-
| |
| |64
| |
| |ground-item-remove-all
| |
| |Fixed
| |
| |2
| |
| |ByteNeg, ByteSub
| |
| |-
| |
| |65
| |
| |update-npcs
| |
| |Variable Word
| |
| |1+
| |
| |Bytes
| |
| |-
| |
| |68
| |
| |interface-settings-reset
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |70
| |
| |interface-xy
| |
| |Fixed
| |
| |6
| |
| |Word, WordLE, Word
| |
| |-
| |
| |71
| |
| |interface-sidebar
| |
| |Fixed
| |
| |3
| |
| |Word, ByteAdd
| |
| |-
| |
| |72
| |
| |interface-items-clear
| |
| |Fixed
| |
| |2
| |
| |Word
| |
| |-
| |
| |73
| |
| |player-region
| |
| |Fixed
| |
| |4
| |
| |WordAdd, Word
| |
| |-
| |
| |74
| |
| |music
| |
| |Fixed
| |
| |2
| |
| |WordLE
| |
| |-
| |
| |75
| |
| |interface-npchead
| |
| |Fixed
| |
| |4
| |
| |WordAddLE, WordAddLE
| |
| |-
| |
| |78
| |
| |clear-walking-queue
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |79
| |
| |interface-scrollbar-position
| |
| |Fixed
| |
| |4
| |
| |Word, WordAddLE
| |
| |-
| |
| |81
| |
| |update-players
| |
| |Variable Word
| |
| |1+
| |
| |Bytes
| |
| |-
| |
| |84
| |
| |ground-item-update
| |
| |Fixed
| |
| |7
| |
| |Byte, WordLE, WordLE, Word
| |
| |-
| |
| |85
| |
| |player-position
| |
| |Fixed
| |
| |2
| |
| |ByteNeg, ByteNeg
| |
| |-
| |
| |97
| |
| |interface
| |
| |Fixed
| |
| |2
| |
| |Word
| |
| |-
| |
| |99
| |
| |player-minimap
| |
| |Fixed
| |
| |1
| |
| |Byte
| |
| |-
| |
| |101
| |
| |object-remove
| |
| |Fixed
| |
| |2
| |
| |ByteNeg, Byte
| |
| |-
| |
| |104
| |
| |player-set-action
| |
| |Variable Byte
| |
| |3+
| |
| |ByteNeg, ByteAdd, String
| |
| |-
| |
| |105
| |
| |sound-location
| |
| |Fixed
| |
| |4
| |
| |Byte, WordLE, Byte
| |
| |-
| |
| |106
| |
| |interface-sidebar-focus
| |
| |Fixed
| |
| |1
| |
| |ByteNeg
| |
| |-
| |
| |107
| |
| |camera-reset
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |109
| |
| |logout
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |110
| |
| |player-energy
| |
| |Fixed
| |
| |1
| |
| |Byte
| |
| |-
| |
| |114
| |
| |system-update
| |
| |Fixed
| |
| |2
| |
| |WordLE
| |
| |-
| |
| |117
| |
| |projectile
| |
| |Fixed
| |
| |13
| |
| |Byte, Word, WordLE, Byte, Byte, WordLE, WordLE, Byte, Byte
| |
| |-
| |
| |121
| |
| |music-queue
| |
| |Fixed
| |
| |4
| |
| |WordAdd, WordAddLE
| |
| |-
| |
| |122
| |
| |interface-color
| |
| |Fixed
| |
| |4
| |
| |WordAddLE, WordAddLE
| |
| |-
| |
| |126
| |
| |interface-text
| |
| |Variable Word
| |
| |3+
| |
| |String, WordAdd
| |
| |-
| |
| |134
| |
| |player-skill
| |
| |Fixed
| |
| |6
| |
| |Byte, DWordMEBig, Byte
| |
| |-
| |
| |142
| |
| |interface-inventory
| |
| |Fixed
| |
| |2
| |
| |Word
| |
| |-
| |
| |147
| |
| |player-to-object
| |
| |Fixed
| |
| |10
| |
| |ByteSub, WordLE, ByteSub, Word, ByteNeg, WordLE, ByteSub, Byte, WordLE, ByteNeg
| |
| |-
| |
| |151
| |
| |object-add
| |
| |Fixed
| |
| |4
| |
| |ByteAdd, Word, ByteSub
| |
| |-
| |
| |156
| |
| |ground-item-remove
| |
| |Fixed
| |
| |3
| |
| |ByteAdd, WordLE
| |
| |-
| |
| |160
| |
| |object-add-animated
| |
| |Fixed
| |
| |4
| |
| |ByteSub, ByteSub, WordAddLE
| |
| |-
| |
| |164
| |
| |interface-chatbox
| |
| |Fixed
| |
| |2
| |
| |WordLE
| |
| |-
| |
| |166
| |
| |camera-spin
| |
| |Fixed
| |
| |6
| |
| |Byte, Byte, Word, Byte, Byte
| |
| |-
| |
| |171
| |
| |interface-hover
| |
| |Fixed
| |
| |3
| |
| |Byte, Word
| |
| |-
| |
| |174
| |
| |sound
| |
| |Fixed
| |
| |5
| |
| |Word, Byte, Word
| |
| |-
| |
| |176
| |
| |interface-welcome
| |
| |Fixed
| |
| |10
| |
| |ByteNeg, WordAdd, Byte, DWordMELittle, Word
| |
| |-
| |
| |177
| |
| |camera-cutscene
| |
| |Fixed
| |
| |6
| |
| |Byte, Byte, WordLE, Byte, Byte
| |
| |-
| |
| |185
| |
| |interface-playerhead
| |
| |Fixed
| |
| |2
| |
| |WordAddLE
| |
| |-
| |
| |187
| |
| |interface-name
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |196
| |
| |social-message
| |
| |Variable Byte
| |
| |16+
| |
| |Base37, DWord, Byte, Bytes
| |
| |-
| |
| |200
| |
| |interface-animate
| |
| |Fixed
| |
| |4
| |
| |Word, Word
| |
| |-
| |
| |206
| |
| |interface-privacy
| |
| |Fixed
| |
| |3
| |
| |Byte, Byte, Byte
| |
| |-
| |
| |208
| |
| |interface-walkable
| |
| |Fixed
| |
| |2
| |
| |WordLE
| |
| |-
| |
| |214
| |
| |social-add-ignore
| |
| |Variable Word
| |
| |8+
| |
| |Bytes
| |
| |-
| |
| |215
| |
| |ground-item-add-other
| |
| |Fixed
| |
| |7
| |
| |WordAddLE, ByteSub, WordAddLE, WordLE
| |
| |-
| |
| |218
| |
| |interface-dialogue
| |
| |Fixed
| |
| |2
| |
| |WordAddLE
| |
| |-
| |
| |219
| |
| |interface-clear
| |
| |Fixed
| |
| |0
| |
| |N/A
| |
| |-
| |
| |221
| |
| |social-status
| |
| |Fixed
| |
| |1
| |
| |Byte
| |
| |-
| |
| |230
| |
| |interface-model-zoom
| |
| |Fixed
| |
| |8
| |
| |WordAdd, Word, Word, WordAddLE
| |
| |-
| |
| |240
| |
| |player-weight
| |
| |Fixed
| |
| |2
| |
| |Word
| |
| |-
| |
| |241
| |
| |player-region-construct
| |
| |Variable Word
| |
| |1+
| |
| |Bytes
| |
| |-
| |
| |246
| |
| |interface-item-model
| |
| |Fixed
| |
| |6
| |
| |WordLE, Word, Word
| |
| |-
| |
| |248
| |
| |interface-child
| |
| |Fixed
| |
| |4
| |
| |WordAddLE, WordLE
| |
| |-
| |
| |249
| |
| |player-info
| |
| |Fixed
| |
| |3
| |
| |ByteAdd, WordAdd
| |
| |-
| |
| |253
| |
| |server-message
| |
| |Variable Byte
| |
| |1+
| |
| |String
| |
| |-
| |
| |254
| |
| |mob-hint
| |
| |Fixed
| |
| |3
| |
| |Byte, WordLE
| |
| |}
| |
Example of a logged in player
I recently rewrote the content here to adopt the official nomenclature as much as possible.
Check out the list for revision 225.
If you see any lowercase or hyphenated names in the un-versioned list, they're from my previous work in 317 and not used in 225.
If you see a packet with an asterisk (*) next to it, it's an unofficial name.
Resources
Data Types
Client to Server Communication
This table is structured from the packet opcode lookup in the client. Sort by ID to see how packets are grouped, they all have reserved areas typically e.g. anticheat packets (randomly added during obfuscation) will exist from 60-75, player options will exist from 100-109, and so on. The "ID" column here is fixed across revisions.
Client Packets
ID
|
Name
|
4
|
MAP_REQUEST_AREAS*
|
6
|
NO_TIMEOUT
|
30
|
IDLE_TIMER
|
31
|
mouse-clicked
|
32
|
player-flagged-data
|
33
|
client-focus
|
34
|
EVENT_TRACKING*
|
35
|
EVENT_CAMERA_POSITION
|
36
|
client-running-as-frame
|
80
|
OPOBJ1
|
81
|
OPOBJ2
|
82
|
OPOBJ3
|
83
|
OPOBJ4
|
84
|
OPOBJ5
|
88
|
OPOBJT
|
89
|
OPOBJU
|
100
|
OPNPC1
|
101
|
OPNPC2
|
102
|
OPNPC3
|
103
|
OPNPC4
|
104
|
OPNPC5
|
108
|
OPNPCT
|
109
|
OPNPCU
|
120
|
OPLOC1
|
121
|
OPLOC2
|
122
|
OPLOC3
|
123
|
OPLOC4
|
124
|
OPLOC5
|
128
|
OPLOCT
|
129
|
OPLOCU
|
140
|
OPPLAYER1
|
141
|
OPPLAYER2
|
142
|
OPPLAYER3
|
143
|
OPPLAYER4
|
144
|
player-action-5
|
148
|
OPPLAYERT
|
149
|
OPPLAYERU
|
160
|
OPHELD1
|
161
|
OPHELD2
|
162
|
OPHELD3
|
163
|
OPHELD4
|
164
|
OPHELD5
|
168
|
OPHELDT
|
169
|
OPHELDU
|
190
|
IF_BUTTON1
|
191
|
IF_BUTTON2
|
192
|
IF_BUTTON3
|
193
|
IF_BUTTON4
|
194
|
IF_BUTTON5
|
200
|
IF_BUTTON
|
201
|
RESUME_PAUSEBUTTON
|
202
|
CLOSE_MODAL
|
203
|
RESUME_P_COUNTDIALOG
|
204
|
IF_FLASHING_TAB*
|
205
|
interface-enter-name
|
241
|
region-loaded
|
242
|
MOVE_OPCLICK*
|
243
|
BUG_REPORT
|
244
|
MOVE_MINIMAPCLICK
|
245
|
IF_BUTTOND
|
246
|
IGNORELIST_DEL
|
247
|
IGNORELIST_ADD
|
248
|
IF_DESIGN*
|
249
|
CHAT_SETMODE
|
250
|
MESSAGE_PRIVATE
|
251
|
FRIENDLIST_DEL
|
252
|
FRIENDLIST_ADD
|
253
|
CLIENT_CHEAT
|
254
|
MESSAGE_PUBLIC
|
255
|
MOVE_GAMECLICK
|
Server to Client Communication
This table is manually described.
Please select a revision.