Old Engine/Game Protocol
From RuneWiki
Client to Server Communication
| 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 |
TODO: I still need to describe every packet and their parameters.
Server to Client Communication
The values listed here are using 317's order, opcodes, and transformations.
| 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 |