Open-source multiplayer game server compatible with the RuneScape client
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
openrs2/share/doc/protocol/game.md

26 KiB

Game protocol

Upstream

Opcode Length Jagex name Description
0 12 IF_BUTTOND Drag component
3 7 OPOBJ5 ObjStack operation 5
4 3 OPPLAYER8 Player operation 8
6 9 OPHELDD Drag obj
7 6 IF_BUTTON6 Component operation 6
8 7 OPOBJ3 ObjStack operation 3
10 6 IF_BUTTON10 Component operation 10
12 3 OPNPC2 NPC operation 2
26 8 FRIENDLIST_ADD Add friend
28 13 OPOBJT Use component on ObjStack
30 6 IF_BUTTON3 Component operation 3
33 3 OPNPC4 NPC operation 4
37 3 OPNPC3 NPC operation 3
40 12 IF_BUTTONT Use component on component
42 Variable byte MESSAGE_QUICKCHAT_PRIVATE Send private quickchat message
48 7 OPLOC2 Loc operation 2
52 3 OPPLAYER7 Player operation 7
53 3 OPNPC5 NPC operation 5
54 7 OPOBJ1 ObjStack operation 1
58 16 OPHELDU Use obj on obj
60 7 OPLOC5 Operation 5 for loc
61 6 IF_BUTTON4 Component operation 4
65 2 Unknown NPC examine
66 6 IF_BUTTON5 Component operation 5
72 2 Unknown Obj examine
75 8 CLAN_KICKUSER Kick user from clan chat
77 3 OPPLAYER6 Player operation 6
78 Variable byte REFLECTION_CHECK_REPLY Send reflection check results
81 8 OPHELD1 Obj operation 1
85 4 FACE_SQUARE Face tile
86 6 WINDOW_STATUS Send display mode, width, height and anti-aliasing mode
88 8 OPHELD10 Obj operation 10
89 13 OPLOCT Use component on loc
90 10 SEND_SNAPSHOT Send abuse report
91 0 Unknown Idle logout
92 7 OPLOC1 Loc operation 1
94 6 IF_BUTTON1 Component operation 1
95 8 OPHELD8 Obj operation 8
96 3 OPPLAYER5 Player operation 5
97 6 IF_BUTTON9 Component operation 9
102 8 OPHELD9 Obj operation 9
103 8 OPHELD7 Obj operation 7
105 3 OPPLAYER4 Player operation 4
108 6 IF_BUTTON7 Component operation 7
113 0 MAP_BUILD_COMPLETE Sent after map build complete
116 15 OPLOCU Use obj on loc
119 15 OPOBJU Use obj on ObjStack
120 4 CLIENT_DETAILOPTIONS_STATUS Send graphics and audio options
123 11 OPPLAYERU Use obj on player
124 8 OPHELD2 Obj operation 2
134 7 OPLOC4 Loc operation 4
137 0 NO_TIMEOUT Sent periodically to ensure TCP connection does not time out
140 4 EVENT_CAMERA_POSITION Sent periodically when camera rotates
142 8 IGNORELIST_DEL Delete ignore
145 8 OPHELD5 Obj operation 5
148 3 OPPLAYER2 Player operation 2
149 8 RESUME_P_NAMEDIALOG Enter player name in dialog box
155 9 OPNPCT Use component on NPC
156 2 TRANSMITVAR_VERIFYID Sent after verify ID variable changes
157 Variable byte MESSAGE_PRIVATE Send private message
158 4 Unknown Click on If1 component
159 7 OPLOC3 Loc operation 3
160 11 OPNPCU Use obj on NPC
164 Variable byte RESUME_P_STRINGDIALOG Enter string in dialog box
172 8 FRIENDLIST_DEL Delete friend
176 2 Unknown Loc examine
177 14 OPHELDT Use component on obj
178 6 RESUME_PAUSEBUTTON Click/hit spacebar to continue past dialog box
186 Variable byte MESSAGE_PUBLIC Send public message
189 0 CLOSE_MODAL Sent after modal dialog closed
197 8 IGNORELIST_ADD Add ignore
199 Variable byte EVENT_MOUSE_MOVE Sent periodically when mouse is moved or clicked
200 6 EVENT_MOUSE_CLICK Sent when mouse is clicked
201 6 IF_BUTTON2 Component operation 2
204 10 APCOORDT Use component on tile
205 8 OPHELD4 Obj operation 4
207 20 MOVE_MINIMAPCLICK Walk/run to coordinate picked using the minimap
212 3 OPPLAYER1 Player operation 1
214 8 OPHELD6 Obj operation 6
215 9 FRIEND_SETRANK Set clan member rank
216 Variable byte CLIENT_CHEAT Run :: command
218 8 CLAN_JOINCHAT_LEAVECHAT Join or leave clan chat
219 4 RESUME_P_COUNTDIALOG Enter number in dialog box
222 Variable byte MESSAGE_QUICKCHAT_PUBLIC Send public quickchat message
223 3 OPPLAYER3 Player operation 3
224 9 OPPLAYERT Use component on player
227 7 OPOBJ2 ObjStack operation 2
230 6 MOVE_GAMECLICK Walk/run to coordinate picked using the 3D viewport
231 2 RESUME_P_OBJDIALOG Enter obj in dialog box
232 7 OPOBJ4 ObjStack operation 4
234 3 SET_CHATFILTERSETTINGS Set public chat, private chat and trade filter settings
236 4 DETECT_MODIFIED_CLIENT Sent if the client is running in a window
242 8 OPHELD3 Obj operation 3
243 Variable byte URL_REQUEST Request server construct and open URL from hostname and path
245 3 OPNPC1 NPC operation 1
248 1 EVENT_APPLET_FOCUS Sent after window/applet focus changes
250 4 SOUND_SONGEND Sent after song ends
251 4 CLICKWORLDMAP Click on world map
255 6 IF_BUTTON8 Component operation 8

Downstream

Opcode Length Jagex name Description
1 Variable short IF_SETTEXT Set component text
2 Variable short UPDATE_FRIENDCHAT_CHANNEL_FULL Update full list of clan members
4 1 FRIENDLIST_LOADED Set friendserver connection status
8 1 UPDATE_RUNENERGY Update player's run energy
10 6 VARP_LARGE Set player variable (32-bit)
11 8 IF_SETCOLOUR Set component colour
17 15 MAP_PROJANIM_HALFSQ Start a ProjAnim using half-tile coordinates
18 8 IF_SETNPCHEAD Show NPC head on component
19 20 UPDATE_STOCKMARKET_SLOT Update Grand Exchange slot
23 3 CHAT_FILTER_SETTINGS Set public chat, private chat and trade filter settings
25 Variable short PLAYER_INFO Player update
26 4 Unknown Clear objs shown on a component
30 Variable byte URL_OPEN Open URL in player's web browser
31 12 IF_SETTARGETPARAM Set target param of created componets
33 3 SET_MAP_FLAG Set minimap flag coordinates
34 Variable short UPDATE_INV_PARTIAL Update partial inventory
35 9 IF_OPENSUB Open sub-interface
38 3 VARP_SMALL Set player variable (8-bit)
40 7 IF_SETHIDE Set component hidden flag
42 6 CAM_FORCEANGLE Rotate camera
43 Variable short UPDATE_IGNORELIST Update ignore list
44 Variable byte MESSAGE_PRIVATE Received private message
46 8 CAM_SHAKE Shake camera
47 7 OBJ_REVEAL Reveal ObjStack belonging to another player to this player
49 Variable short REBUILD_NORMAL Rebuild map build area
52 2 CAM_RESET Reset camera immediately
53 Variable short UPDATE_ZONE_PARTIAL_ENCLOSED Set current zone and enclose multiple zone update packets
54 Variable byte SET_MOVEACTION Change 'Walk here' text
55 1 MINIMAP_TOGGLE Set minimap state (rotation lock, compass blackout and map blackout)
59 Variable byte MESSAGE_GAME Game message
60 5 OBJ_ADD Add ObjStack
63 7 LOC_ANIM_SPECIFIC Animate loc for this player only
65 10 IF_SETPOSITION Set position of component
72 2 UPDATE_REBOOT_TIMER Show 'System update in' countdown
75 Variable byte CLIENT_SETVARCSTR_SMALL Set client string variable (<= 250 bytes)
78 0 RESET_CLIENT_VARCACHE Reset all player variables to zero
86 Variable byte UPDATE_SITESETTINGS Update website settings cookie
87 8 IF_SETMODEL Show model on a component
89 10 IF_MOVESUB Move sub-interface to another component
90 12 IF_SETANGLE Rotate model shown on a component
93 8 CAM_LOOKAT Rotate camera to look at coordinates
95 2 UPDATE_RUNWEIGHT Update weight of player's inventory
96 0 TRIGGER_ONDIALOGABORT Close the currently open dialog interface
97 2 UPDATE_ZONE_PARTIAL_FOLLOWS Set current zone
99 Variable byte MESSAGE_QUICKCHAT_FRIENDCHANNEL Clan chat quickchat message
100 3 MIDI_SONG Play song
103 4 LAST_LOGIN_INFO Set IP address of last login
104 Variable byte MESSAGE_PRIVATE_ECHO Sent private message
105 15 MAP_PROJANIM Start a ProjAnim
111 17 Unknown Start a ProjAnim, adjusting the coordinates based on the source's BAS
113 12 IF_SET_PLAYERHEAD_IGNOREWORN Show player head (excluding equipment) on component
114 7 OBJ_COUNT Update ObjStack count
115 3 LOC_PREFETCH Prefetch a loc and its models from the JS5 server
116 Variable short CLIENT_SETVARCSTR_LARGE Set client string variable (<= 65,530 bytes)
120 3 OBJ_DEL Delete ObjStack
126 Variable byte SET_PLAYER_OP Change player op text, cursor and priority
130 3 Unknown Teleport player
131 4 LOC_ADD_CHANGE Adds or changes a loc
133 14 Unknown Attach loc to PathingEntity
135 6 IF_CLOSESUB Close sub-interface
136 Variable short NPC_INFO NPC update
137 3 VARBIT_SMALL Set player bit variable (up to 8 bits)
138 6 VARBIT_LARGE Set player bit variable (up to 32 bits)
144 6 SOUND_AREA Play sound at specified coordinate with radius
147 2 UPDATE_ZONE_FULL_FOLLOWS Set current zone and clear it to prepare for full update
148 8 CLIENT_SETVARC_LARGE Set client variable (32-bit)
150 5 NPC_ANIM_SPECIFIC Animate NPC for this player only
151 8 CAM_MOVETO Move camera
152 10 IF_SPINMODEL Set rotation speed of model shown on a component
153 6 SYNTH_SOUND Play sound
155 Variable short REBUILD_REGION Rebuild map build area (instanced)
156 2 CAM_SMOOTHRESET Reset camera smoothly
158 6 MAP_ANIM Start a SpotAnim
162 14 IF_SETCLICKMASK Set click masks of created components
163 0 Unknown Reset client predictions of all player variables
164 6 UPDATE_STAT Update player's level and experience in a skill
166 28 UPDATE_UID192 Update the computer/user's unique ID and write to random.dat
168 2 UPDATE_INV_STOP_TRANSMIT Delete local copy of inventory used by CS2 scripts
172 8 IF_SETANIM Animate model shown on a component
173 Variable short REFLECTION_CHECKER Perform reflection check
174 Variable byte UPDATE_FRIENDCHAT_CHANNEL_SINGLEUSER Update single clan member
176 5 CLIENT_SETVARC_SMALL Set client variable (8-bit)
177 11 HINT_ARROW Add, change or delete a hint arrow
179 4 LOC_ANIM Animate loc
182 Variable byte UPDATE_FRIENDLIST Update single friend
183 12 IF_SETOBJ Show obj on component
192 0 LOGOUT Logout
194 Variable short UPDATE_INV_FULL Update full inventory
199 6 IF_SETPLAYERHEAD Show player head (including equipment) on component
206 6 MIDI_JINGLE Play jingle
221 Variable byte MESSAGE_QUICKCHAT_PRIVATE_ECHO Sent private quickchat message
222 Variable byte MESSAGE_QUICKCHAT_PRIVATE Received private quickchat message
225 5 IF_SETTOP Set top-level interface
229 0 RESET_ANIMS Stop all player/NPC animations
232 2 LOC_DEL Delete loc
237 10 SPOTANIM_SPECIFIC Start a SpotAnim for this player only
242 3 SETDRAWORDER Set player/NPC render priority
243 8 IF_SETSCROLLPOS Set component scroll position
246 Variable byte MESSAGE_FRIENDCHANNEL Clan chat message
253 Variable byte RUNCLIENTSCRIPT Run CS2 script