Actions

Old Engine/Game Protocol

From RuneWiki

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 for 225
Opcode ID Name Size Length Format
2 67 ANTICHEAT_OPPLAYER2* Fixed 2 (read len and ignore)
4 253 CLIENT_CHEAT Variable Byte pjstr
6 194 IF_BUTTON5 Fixed 6 p2, p2, p2
7 60 ANTICHEAT_OPLOC4* Fixed 4 (read len and ignore)
8 101 OPNPC2 Fixed 2 p2
9 128 OPLOCT Fixed 8 p2, p2, p2, p2
11 251 FRIENDLIST_DEL Fixed 8 p8(base37(name))
17 66 ANTICHEAT_IF_BUTTON5* Fixed 4 (read len and ignore)
27 102 OPNPC3 Fixed 2 p2
30 62 ANTICHEAT_OPHELD1* Fixed 3 (read len and ignore)
31 190 IF_BUTTON1 Fixed 6 p2, p2, p2
38 193 IF_BUTTON4 Fixed 6 p2, p2, p2
40 81 OPOBJ2 Fixed 6 p2, p2, p2
48 168 OPHELDT Fixed 8 p2, p2, p2, p2
52 248 IF_DESIGN* Fixed 13 p1, pdata[7], pdata[5]
53 141 OPPLAYER2 Fixed 2 p2
59 191 IF_BUTTON2 Fixed 6 p2, p2, p2
66 65 ANTICHEAT_OPLOC5* Fixed 4 (read len and ignore)
70 30 IDLE_TIMER Fixed 0 (empty)
71 161 OPHELD2 Fixed 6 p2, p2, p2
75 129 OPLOCU Fixed 12 p2, p2, p2, p2, p2, p2
79 247 IGNORELIST_ADD Fixed 8 p8(base37(name))
81 34 EVENT_TRACKING* Variable Word pdata(inputs)
85 75 ANTICHEAT_UPDATE_LOCS* Fixed 0 (read len and ignore)
88 61 ANTICHEAT_OPNPC3* Fixed 4 (read len and ignore)
93 242 MOVE_OPCLICK* Variable Byte p1, p2, p2, pdata(p1, p1)
96 122 OPLOC3 Fixed 6 p2, p2, p2
97 123 OPLOC4 Fixed 6 p2, p2, p2
100 104 OPNPC5 Fixed 2 p2
108 6 NO_TIMEOUT Fixed 0 (empty)
113 103 OPNPC4 Fixed 2 p2
116 124 OPLOC5 Fixed 6 p2, p2, p2
118 252 FRIENDLIST_ADD Fixed 8 p8(base37(name))
130 169 OPHELDU Fixed 12 p2, p2, p2, p2, p2, p2
133 162 OPHELD3 Fixed 6 p2, p2, p2
134 108 OPNPCT Fixed 4 p2, p2
138 88 OPOBJT Fixed 8 p2, p2, p2, p2
140 80 OPOBJ1 Fixed 6 p2, p2, p2
146 71 ANTICHEAT_DRAW* Variable Byte (read len and ignore)
148 250 MESSAGE_PRIVATE Variable Byte p8(base37(name)), pdata(encode(message))
150 4 MAP_REQUEST_AREAS* Variable Byte pdata(pdata(p1, p1, p1), pdata(p1, p1, p1))
155 200 IF_BUTTON Fixed 2 p2
157 163 OPHELD4 Fixed 6 p2, p2, p2
158 254 MESSAGE_PUBLIC Variable Byte p1, p1, pdata(encode(message))
159 245 IF_BUTTOND Fixed 6 p2, p2, p2
164 140 OPPLAYER1 Fixed 2 p2
165 244 MOVE_MINIMAPCLICK Variable Byte p1, p2, p2, pdata(p1, p1)
171 246 IGNORELIST_DEL Fixed 8 p8(base37(name))
172 121 OPLOC2 Fixed 6 p2, p2, p2
175 204 IF_FLASHING_TAB* Fixed 1 p1
176 63 ANTICHEAT_OPNPC5* Fixed 2 (read len and ignore)
177 148 OPPLAYERT Fixed 4 p2, p2
178 83 OPOBJ4 Fixed 6 p2, p2, p2
181 255 MOVE_GAMECLICK Variable Byte p1, p2, p2, pdata(p1, p1)
185 142 OPPLAYER3 Fixed 2 p2
189 35 EVENT_CAMERA_POSITION Fixed 6 p2, p2, p1, p1
190 243 BUG_REPORT Fixed 10 p8(base37(name)), p1, p1
194 100 OPNPC1 Fixed 2 p2
195 160 OPHELD1 Fixed 6 p2, p2, p2
200 82 OPOBJ3 Fixed 6 p2, p2, p2
202 109 OPNPCU Fixed 8 p2, p2, p2, p2
206 143 OPPLAYER4 Fixed 2 p2
211 164 OPHELD5 Fixed 6 p2, p2, p2
212 192 IF_BUTTON3 Fixed 6 p2, p2, p2
215 74 ANTICHEAT_UPDATE* Fixed 3 (read len and ignore)
219 73 ANTICHEAT_UPDATE_PLAYERS* Variable Byte (read len and ignore)
220 64 ANTICHEAT_OPHELD4* Fixed 0 (read len and ignore)
231 202 CLOSE_MODAL Fixed 0 (empty)
233 70 ANTICHEAT_SIDEBAR_INPUT* Fixed 1 (read len and ignore)
235 201 RESUME_PAUSEBUTTON Fixed 2 p2
236 72 ANTICHEAT_UPDATE2* Fixed 4 (read len and ignore)
237 203 RESUME_P_COUNTDIALOG Fixed 4 p4
238 68 ANTICHEAT_IF_BUTTON4* Fixed 1 (read len and ignore)
239 89 OPOBJU Fixed 12 p2, p2, p2, p2, p2, p2
244 249 CHAT_SETMODE Fixed 3 p1, p1, p1
245 120 OPLOC1 Fixed 6 p2, p2, p2
247 84 OPOBJ5 Fixed 6 p2, p2, p2
248 149 OPPLAYERU Fixed 8 p2, p2, p2, p2

Server to Client Communication

This table is manually described.

Server Packets for 225
Opcode Name Size Length Format
1 NPC_INFO Variable Word pdata
2 IF_SETCOLOUR Fixed 4 p2, p2
3 CAM_FORCEANGLE Fixed 6 p1, p1, p2, p1, p1
4 MESSAGE_GAME Variable Byte pjstr
7 UPDATE_ZONE_PARTIAL_FOLLOWS Fixed 2 p1, p1
12 SYNTH_SOUND Fixed 5 p2, p1, p2
13 CAM_SHAKE Fixed 4 p1, p1, p1, p1
14 IF_OPENBOTTOM* Fixed 2 p2
15 UPDATE_INV_CLEAR* Fixed 2 p2
19 CLEAR_WALKING_QUEUE Fixed 0
20 DATA_LOC_DONE* Fixed 2 p1, p1
21 UPDATE_IGNORELIST Variable Word pdata(p8)
22 UPDATE_RUNWEIGHT Fixed 2 p2
23 LOC_ADD_CHANGE Fixed 14 p1, p1, p2, p2, p2, p2, p1, p1, p1, p1
25 HINT_ARROW Fixed 6 p1, (p2)/(p2, p2, p1)/(p2)
26 IF_SETHIDE Fixed 3 p2, p1
28 IF_OPENSUB Fixed 4 p2, p2
32 CHAT_FILTER_SETTINGS Fixed 3 p1, p1, p1
41 MESSAGE_PRIVATE Variable Byte p8, p4, p1, pdata(encode(message))
42 LOC_ANIM Fixed 4 p1, p1, p2
43 UPDATE_REBOOT_TIMER Fixed 2 p2
44 UPDATE_STAT Fixed 6 p1, p4, p1
46 IF_SETOBJECT Fixed 6 p2, p2, p2
49 OBJ_DEL Fixed 3 p1, p2
50 OBJ_ADD Fixed 7 p1, p2, p2, p2
54 MIDI_SONG Variable Byte pjstr, p4, p4
59 LOC_ADD Fixed 4 p1, p1, p2
68 UPDATE_RUNENERGY Fixed 1 p1
69 MAP_PROJANIM Fixed 15 p1, p1, p1, p2, p2, p1, p1, p2, p2, p1, p1
74 CAM_MOVETO Fixed 6 p1, p1, p2, p1, p1
76 LOC_DEL Fixed 2 p1, p1
80 DATA_LAND_DONE* Fixed 2 p1, p1
84 IF_SETTAB_ACTIVE* Fixed 1 p1
87 IF_SETMODEL Fixed 4 p2, p2
98 UPDATE_INV_FULL* Variable Word p2, p1, pdata(p2, p1/p4)
103 IF_SETMODEL_COLOUR Fixed 6 p2, p2, p2
126 IF_SETTAB_FLASH* Fixed 1 p1
129 IF_CLOSESUB Fixed 0
132 DATA_LAND* Variable Word p1, p1, p2, p2, pdata
133 FINISH_TRACKING* Fixed 0
135 UPDATE_ZONE_FULL_FOLLOWS Fixed 2 p1, p1
136 RESET_ANIMS Fixed 0
139 UPDATE_UID192 Fixed 2 p2
140 LAST_LOGIN_INFO Fixed 9 p4, p2, p1, p2
142 LOGOUT Fixed 0
146 IF_SETANIM Fixed 4 p2, p2
150 VARP_SMALL Fixed 3 p2, p1
151 OBJ_COUNT Fixed 7 p1, p2, p2, p2
152 UPDATE_FRIENDLIST Fixed 9 p8, p1
162 UPDATE_ZONE_PARTIAL_ENCLOSED Variable Word p1, p1, pdata(zonePackets)
167 IF_SETTAB* Fixed 3 p2, p1
168 IF_OPENTOP Fixed 2 p2
175 VARP_LARGE Fixed 6 p2, p4
184 PLAYER_INFO Variable Word pdata
185 IF_OPENSTICKY* Fixed 2 p2
191 SPOTANIM_SPECIFIC Fixed 6 p1, p2, p1, p2
193 RESET_CLIENT_VARCACHE Fixed 0
195 IF_OPENSIDEBAR* Fixed 2 p2
197 IF_SETPLAYERHEAD Fixed 2 p2
201 IF_SETTEXT Variable Word p1, pjstr
204 IF_SETNPCHEAD Fixed 4 p2, p2
209 IF_SETPOSITION Fixed 6 p2, p2, p2
212 MIDI_JINGLE Variable Word p2, p4, pdata
213 UPDATE_INV_PARTIAL* Variable Word p2, pdata(p1, p2, p1/p4)
220 DATA_LOC* Variable Word p1, p1, p2, p2, pdata
223 OBJ_REVEAL Fixed 5 p1, p2, p2
226 ENABLE_TRACKING* Fixed 0
237 LOAD_AREA Variable Word p2, p2, pdata(p1, p1, p4, p4)
239 CAM_RESET Fixed 0
243 IF_IAMOUNT* Fixed 0
254 IF_MULTIZONE* Fixed 1 p1