<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://runewiki.lostcity.rs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pazaz</id>
	<title>RuneWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://runewiki.lostcity.rs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pazaz"/>
	<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/Special:Contributions/Pazaz"/>
	<updated>2026-07-18T04:42:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Main_Page&amp;diff=497</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Main_Page&amp;diff=497"/>
		<updated>2024-12-18T23:20:09Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''RuneWiki will be shutting down at the end of the year! The archive has moved to: [https://archive.lostcity.rs archive.lostcity.rs]'''&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Main_Page&amp;diff=496</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Main_Page&amp;diff=496"/>
		<updated>2024-12-18T23:08:17Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''RuneWiki will be shutting down at the end of the year! We are moving the archive to: archive.lostcity.rs'''&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Rsync_Instructions&amp;diff=495</id>
		<title>Rsync Instructions</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Rsync_Instructions&amp;diff=495"/>
		<updated>2024-11-10T09:18:22Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The server is being migrated to a new hosting configuration and this page is not up-to-date.&lt;br /&gt;
&lt;br /&gt;
==== Old ====&lt;br /&gt;
&amp;lt;code&amp;gt;rsync -raP --exclude '/mirror/' --exclude '/scraped/' --delete rsync://104.167.241.86/archive ./&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
r: recursive&lt;br /&gt;
&lt;br /&gt;
a: preserve timestamps&lt;br /&gt;
&lt;br /&gt;
P: print progress&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The mirror directory mirrors other domains and is relatively large.&lt;br /&gt;
&lt;br /&gt;
The scraped directory is a collection of files automatically downloaded by filtering through old forum threads for links.&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Known_File_Info&amp;diff=494</id>
		<title>Known File Info</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Known_File_Info&amp;diff=494"/>
		<updated>2024-07-28T14:23:31Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* Licensed Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page was put together using publicly available information sourced from old OSRS livestreams and search engine results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;src/models/&amp;lt;/code&amp;gt; is used for skeletons, animations, and models.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;src/scripts/&amp;lt;/code&amp;gt; is used for configs, interfaces, and runescripts.&lt;br /&gt;
&lt;br /&gt;
===Licensed Tools===&lt;br /&gt;
Photoshop&lt;br /&gt;
&lt;br /&gt;
3ds Max (&amp;lt;2022) / Maya (2022+)&lt;br /&gt;
&lt;br /&gt;
ZBrush&lt;br /&gt;
&lt;br /&gt;
===Internal Tools===&lt;br /&gt;
ScriptEd - Script/config editor&lt;br /&gt;
&lt;br /&gt;
MapEd - Map editor&lt;br /&gt;
&lt;br /&gt;
IconEd - Item sprite editor&lt;br /&gt;
&lt;br /&gt;
JagEd - Model editor&lt;br /&gt;
&lt;br /&gt;
JagFx - Sound editor&lt;br /&gt;
&lt;br /&gt;
Interface Editor&lt;br /&gt;
&lt;br /&gt;
Patch Editor (Music)&lt;br /&gt;
&lt;br /&gt;
Sample Loop Editor (Music)&lt;br /&gt;
&lt;br /&gt;
===Web Services===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
account-creation&lt;br /&gt;
account-creation-reports&lt;br /&gt;
account-association&lt;br /&gt;
accountappeal&lt;br /&gt;
adventurers-log&lt;br /&gt;
adventurers-log-updater&lt;br /&gt;
auth-reports&lt;br /&gt;
authentication-server&lt;br /&gt;
avatar-rs&lt;br /&gt;
beta-clanserver&lt;br /&gt;
beta-gamelogclienterror&lt;br /&gt;
beta-save-converter&lt;br /&gt;
beta-stockmarket&lt;br /&gt;
beta-usergame&lt;br /&gt;
billing-antifraud&lt;br /&gt;
billing-blackhawk&lt;br /&gt;
billing-boku&lt;br /&gt;
billing-bonds&lt;br /&gt;
billing-incomm&lt;br /&gt;
billing-paypal&lt;br /&gt;
billing-scstaff&lt;br /&gt;
billing-supersonic&lt;br /&gt;
billing-voucher&lt;br /&gt;
billing_amazonddd&lt;br /&gt;
billing_axeso&lt;br /&gt;
billing_ayden&lt;br /&gt;
billing_contact&lt;br /&gt;
billing_core&lt;br /&gt;
billing_derived&lt;br /&gt;
billing_iris_bridge&lt;br /&gt;
billing_jcoins&lt;br /&gt;
billing_membership&lt;br /&gt;
billing_realtime&lt;br /&gt;
billing_uol&lt;br /&gt;
billproxy&lt;br /&gt;
bugtracker-pw&lt;br /&gt;
caseload&lt;br /&gt;
clan-forum&lt;br /&gt;
clan-hiscores&lt;br /&gt;
clan-home&lt;br /&gt;
clan-reports&lt;br /&gt;
clanloginserver&lt;br /&gt;
clanloginserver_oldscape&lt;br /&gt;
clanserver&lt;br /&gt;
clanserver_oldscape&lt;br /&gt;
comment&lt;br /&gt;
commercial-crm&lt;br /&gt;
config-manager&lt;br /&gt;
configviewer&lt;br /&gt;
crscore&lt;br /&gt;
displaynames&lt;br /&gt;
dob&lt;br /&gt;
dodgymark&lt;br /&gt;
email-register&lt;br /&gt;
email-send&lt;br /&gt;
feature-signup&lt;br /&gt;
forum&lt;br /&gt;
forum_de&lt;br /&gt;
forum_fr&lt;br /&gt;
forum_pt&lt;br /&gt;
forum-escalations&lt;br /&gt;
friend-referral&lt;br /&gt;
friendloader&lt;br /&gt;
friendserver&lt;br /&gt;
fulfilment_gateway&lt;br /&gt;
gamelogclienterror&lt;br /&gt;
gamelogevent&lt;br /&gt;
gamelogeventflume&lt;br /&gt;
gamelogsession&lt;br /&gt;
gamelogsession_sa&lt;br /&gt;
gamelogspecs&lt;br /&gt;
gamelogtrade&lt;br /&gt;
gamelogtrade_oldschool&lt;br /&gt;
gamenote&lt;br /&gt;
global-variables-rt5&lt;br /&gt;
grouping-system&lt;br /&gt;
hijackscore_sa&lt;br /&gt;
hiscore&lt;br /&gt;
hiscore_ironman&lt;br /&gt;
hiscore_hardcore_ironman&lt;br /&gt;
hiscore_oldschool&lt;br /&gt;
hiscore_oldschool_ironman&lt;br /&gt;
hiscore_oldschool_hardmore_ironman&lt;br /&gt;
hiscore_oldschool_ultimate&lt;br /&gt;
hiscore_oldschool_deadman&lt;br /&gt;
hiscore_oldschool_seasonal&lt;br /&gt;
hiscore_oldschool_tournament&lt;br /&gt;
icuq&lt;br /&gt;
identity_service&lt;br /&gt;
instance-manager&lt;br /&gt;
iplog&lt;br /&gt;
iplogip&lt;br /&gt;
iploguid&lt;br /&gt;
iploguser&lt;br /&gt;
iplogusergame&lt;br /&gt;
iplogweblogin&lt;br /&gt;
item-grant&lt;br /&gt;
itemcodes&lt;br /&gt;
itemdb_oldschool&lt;br /&gt;
itemdb_rs&lt;br /&gt;
launcher-v4-bridge&lt;br /&gt;
lock&lt;br /&gt;
loginserver&lt;br /&gt;
loyalty-points&lt;br /&gt;
main&lt;br /&gt;
metric-collection&lt;br /&gt;
mtxn_config&lt;br /&gt;
mtxn_rs_shop&lt;br /&gt;
mtxn_sync_shop&lt;br /&gt;
namecache&lt;br /&gt;
news&lt;br /&gt;
offence-appeal&lt;br /&gt;
offence-derived-effects&lt;br /&gt;
offence-mute-receiver&lt;br /&gt;
offence-receiver&lt;br /&gt;
offence-viewer&lt;br /&gt;
oldschool_gim_hiscores&lt;br /&gt;
oldschool_hardcore_gim_hiscores&lt;br /&gt;
password_history&lt;br /&gt;
platform&lt;br /&gt;
player-categorisation&lt;br /&gt;
playerwatch&lt;br /&gt;
pmod&lt;br /&gt;
poll&lt;br /&gt;
profile-editor&lt;br /&gt;
prp&lt;br /&gt;
pvpkills&lt;br /&gt;
recovery_questions&lt;br /&gt;
rs2-broadcast&lt;br /&gt;
sn-integration&lt;br /&gt;
snapshot-incoming&lt;br /&gt;
snapshot-scheduler&lt;br /&gt;
snapshot2-core&lt;br /&gt;
sportal&lt;br /&gt;
sso-store&lt;br /&gt;
staff_admin&lt;br /&gt;
stockmarket&lt;br /&gt;
stockmarket_oldschool&lt;br /&gt;
stockmarket_oldschool_deadman&lt;br /&gt;
stockmarket_oldschool_seasonal&lt;br /&gt;
stockmarket_oldschool_tournament&lt;br /&gt;
telemetry-ingress&lt;br /&gt;
temp-hiscores&lt;br /&gt;
ticketing&lt;br /&gt;
totp-authenticator&lt;br /&gt;
translate-de&lt;br /&gt;
translate-fr&lt;br /&gt;
translate-pt&lt;br /&gt;
trial-membership&lt;br /&gt;
twitter-bot&lt;br /&gt;
uid-passport&lt;br /&gt;
username&lt;br /&gt;
weblogin&lt;br /&gt;
website-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Data Extensions===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.base:&lt;br /&gt;
File Explorer description is &amp;quot;Animation template file&amp;quot;&lt;br /&gt;
This file represents animation skeletons and possibly some other metadata.&lt;br /&gt;
&lt;br /&gt;
.anim:&lt;br /&gt;
Animation frames. This gets applied to a skeleton + model.&lt;br /&gt;
&lt;br /&gt;
.jgd:&lt;br /&gt;
File Explorer description is &amp;quot;JGD text file&amp;quot;&lt;br /&gt;
This file is used in Jaged Mesh Editor (Jaged = &amp;quot;Jagex Editor&amp;quot;) as an intermediary format before packing to ob3.&lt;br /&gt;
&lt;br /&gt;
.ob3:&lt;br /&gt;
File Explorer description is &amp;quot;Jagex model file&amp;quot;&lt;br /&gt;
Current model format.&lt;br /&gt;
&lt;br /&gt;
.ob2:&lt;br /&gt;
Legacy model format, seen on models from 2007 and before.&lt;br /&gt;
&lt;br /&gt;
.jm2:&lt;br /&gt;
Internal map format e.g. &amp;quot;m50_50.jm2&amp;quot;&lt;br /&gt;
May stand for Jagex Map 2?&lt;br /&gt;
&lt;br /&gt;
.synth:&lt;br /&gt;
Synthesized sound effects.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Config Extensions===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.area&lt;br /&gt;
&lt;br /&gt;
.constant / .macro&lt;br /&gt;
&lt;br /&gt;
.cs2:&lt;br /&gt;
ClientScript&lt;br /&gt;
&lt;br /&gt;
.enum:&lt;br /&gt;
Enumerations&lt;br /&gt;
&lt;br /&gt;
.flo:&lt;br /&gt;
Floor overlay&lt;br /&gt;
&lt;br /&gt;
.flu:&lt;br /&gt;
Floor underlay&lt;br /&gt;
&lt;br /&gt;
.headbar&lt;br /&gt;
&lt;br /&gt;
.hitmark&lt;br /&gt;
&lt;br /&gt;
.hunt:&lt;br /&gt;
Hunt mode&lt;br /&gt;
&lt;br /&gt;
.idk:&lt;br /&gt;
Identity kit (player models)&lt;br /&gt;
&lt;br /&gt;
.inv:&lt;br /&gt;
Inventory&lt;br /&gt;
&lt;br /&gt;
.loc:&lt;br /&gt;
Location&lt;br /&gt;
&lt;br /&gt;
.npc:&lt;br /&gt;
Npc&lt;br /&gt;
&lt;br /&gt;
.obj:&lt;br /&gt;
Object&lt;br /&gt;
&lt;br /&gt;
.param:&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
.rs2:&lt;br /&gt;
RuneScript&lt;br /&gt;
&lt;br /&gt;
.seq:&lt;br /&gt;
Sequence&lt;br /&gt;
&lt;br /&gt;
.spotanim:&lt;br /&gt;
Spot animation&lt;br /&gt;
&lt;br /&gt;
.varp:&lt;br /&gt;
Player variables&lt;br /&gt;
&lt;br /&gt;
.varbit:&lt;br /&gt;
Player bit variables&lt;br /&gt;
&lt;br /&gt;
.varn:&lt;br /&gt;
Npc variables&lt;br /&gt;
&lt;br /&gt;
.varnbit:&lt;br /&gt;
Npc bit variables&lt;br /&gt;
&lt;br /&gt;
.vars:&lt;br /&gt;
Shared (world) variables&lt;br /&gt;
&lt;br /&gt;
.varsbit:&lt;br /&gt;
Shared (world) bit variables. Not sure that this exists.&lt;br /&gt;
&lt;br /&gt;
.varobj:&lt;br /&gt;
Object variables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Config Counts===&lt;br /&gt;
varbit was added before/with 254.&lt;br /&gt;
&lt;br /&gt;
mes, mesanim, and param were added before/with 274.&lt;br /&gt;
hunt was included with the 274-289 caches but contained no entries.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Revision&lt;br /&gt;
!flo&lt;br /&gt;
!idk&lt;br /&gt;
!loc&lt;br /&gt;
!npc&lt;br /&gt;
!obj&lt;br /&gt;
!seq&lt;br /&gt;
!spotanim&lt;br /&gt;
!varp&lt;br /&gt;
!mes&lt;br /&gt;
!mesanim&lt;br /&gt;
!param&lt;br /&gt;
!varbit&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|75&lt;br /&gt;
|72&lt;br /&gt;
|2976&lt;br /&gt;
|881&lt;br /&gt;
|1408&lt;br /&gt;
|760&lt;br /&gt;
|151&lt;br /&gt;
|288&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|2995&lt;br /&gt;
|941&lt;br /&gt;
|2481&lt;br /&gt;
|914&lt;br /&gt;
|238&lt;br /&gt;
|281&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|3371&lt;br /&gt;
|1008&lt;br /&gt;
|2859&lt;br /&gt;
|1007&lt;br /&gt;
|240&lt;br /&gt;
|293&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|3387&lt;br /&gt;
|1017&lt;br /&gt;
|2886&lt;br /&gt;
|1027&lt;br /&gt;
|244&lt;br /&gt;
|295&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|101&lt;br /&gt;
|82&lt;br /&gt;
|3855&lt;br /&gt;
|1162&lt;br /&gt;
|3142&lt;br /&gt;
|1191&lt;br /&gt;
|282&lt;br /&gt;
|320&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|103&lt;br /&gt;
|82&lt;br /&gt;
|4671&lt;br /&gt;
|1359&lt;br /&gt;
|3894&lt;br /&gt;
|1363&lt;br /&gt;
|301&lt;br /&gt;
|359&lt;br /&gt;
|4&lt;br /&gt;
|18&lt;br /&gt;
|45&lt;br /&gt;
|71&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|103&lt;br /&gt;
|82&lt;br /&gt;
|5116&lt;br /&gt;
|1596&lt;br /&gt;
|4089&lt;br /&gt;
|1504&lt;br /&gt;
|324&lt;br /&gt;
|394&lt;br /&gt;
|4&lt;br /&gt;
|18&lt;br /&gt;
|54&lt;br /&gt;
|179&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|116&lt;br /&gt;
|82&lt;br /&gt;
|5836&lt;br /&gt;
|1805&lt;br /&gt;
|4484&lt;br /&gt;
|1756&lt;br /&gt;
|342&lt;br /&gt;
|423&lt;br /&gt;
|7&lt;br /&gt;
|18&lt;br /&gt;
|63&lt;br /&gt;
|260&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|116&lt;br /&gt;
|82&lt;br /&gt;
|5836&lt;br /&gt;
|1805&lt;br /&gt;
|4484&lt;br /&gt;
|1756&lt;br /&gt;
|342&lt;br /&gt;
|423&lt;br /&gt;
|7&lt;br /&gt;
|18&lt;br /&gt;
|63&lt;br /&gt;
|260&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|118&lt;br /&gt;
|82&lt;br /&gt;
|6628&lt;br /&gt;
|1978&lt;br /&gt;
|4677&lt;br /&gt;
|1990&lt;br /&gt;
|393&lt;br /&gt;
|444&lt;br /&gt;
|8&lt;br /&gt;
|19&lt;br /&gt;
|73&lt;br /&gt;
|397&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|122&lt;br /&gt;
|84&lt;br /&gt;
|7199&lt;br /&gt;
|2266&lt;br /&gt;
|5553&lt;br /&gt;
|2195&lt;br /&gt;
|408&lt;br /&gt;
|493&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|627&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|125&lt;br /&gt;
|84&lt;br /&gt;
|7389&lt;br /&gt;
|2291&lt;br /&gt;
|5614&lt;br /&gt;
|2260&lt;br /&gt;
|409&lt;br /&gt;
|499&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|693&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|126&lt;br /&gt;
|84&lt;br /&gt;
|7397&lt;br /&gt;
|2304&lt;br /&gt;
|5615&lt;br /&gt;
|2267&lt;br /&gt;
|410&lt;br /&gt;
|500&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|693&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9006&lt;br /&gt;
|2483&lt;br /&gt;
|6211&lt;br /&gt;
|2380&lt;br /&gt;
|427&lt;br /&gt;
|532&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|885&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9159&lt;br /&gt;
|2580&lt;br /&gt;
|6453&lt;br /&gt;
|2564&lt;br /&gt;
|436&lt;br /&gt;
|552&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|961&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9293&lt;br /&gt;
|2591&lt;br /&gt;
|6512&lt;br /&gt;
|2581&lt;br /&gt;
|436&lt;br /&gt;
|556&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|994&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9399&lt;br /&gt;
|2633&lt;br /&gt;
|6541&lt;br /&gt;
|2662&lt;br /&gt;
|452&lt;br /&gt;
|566&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1016&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|129&lt;br /&gt;
|84&lt;br /&gt;
|9744&lt;br /&gt;
|2734&lt;br /&gt;
|6562&lt;br /&gt;
|2715&lt;br /&gt;
|452&lt;br /&gt;
|571&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1051&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|129&lt;br /&gt;
|84&lt;br /&gt;
|9746&lt;br /&gt;
|2747&lt;br /&gt;
|6587&lt;br /&gt;
|2720&lt;br /&gt;
|454&lt;br /&gt;
|571&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1051&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|133&lt;br /&gt;
|84&lt;br /&gt;
|10042&lt;br /&gt;
|2790&lt;br /&gt;
|6654&lt;br /&gt;
|2750&lt;br /&gt;
|456&lt;br /&gt;
|595&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1332&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|133&lt;br /&gt;
|84&lt;br /&gt;
|10285&lt;br /&gt;
|2941&lt;br /&gt;
|6766&lt;br /&gt;
|2894&lt;br /&gt;
|484&lt;br /&gt;
|606&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1395&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11196&lt;br /&gt;
|3153&lt;br /&gt;
|7005&lt;br /&gt;
|3108&lt;br /&gt;
|541&lt;br /&gt;
|644&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1621&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11998&lt;br /&gt;
|3299&lt;br /&gt;
|7408&lt;br /&gt;
|3246&lt;br /&gt;
|568&lt;br /&gt;
|671&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1803&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|12131&lt;br /&gt;
|3323&lt;br /&gt;
|7412&lt;br /&gt;
|3280&lt;br /&gt;
|570&lt;br /&gt;
|673&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1838&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|12734&lt;br /&gt;
|3509&lt;br /&gt;
|7620&lt;br /&gt;
|3547&lt;br /&gt;
|604&lt;br /&gt;
|700&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1954&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|12734&lt;br /&gt;
|3509&lt;br /&gt;
|7620&lt;br /&gt;
|3547&lt;br /&gt;
|604&lt;br /&gt;
|700&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1954&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|13005&lt;br /&gt;
|3580&lt;br /&gt;
|7671&lt;br /&gt;
|3573&lt;br /&gt;
|610&lt;br /&gt;
|709&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2010&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|13874&lt;br /&gt;
|3636&lt;br /&gt;
|7804&lt;br /&gt;
|3804&lt;br /&gt;
|630&lt;br /&gt;
|709&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2010&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14004&lt;br /&gt;
|3670&lt;br /&gt;
|7810&lt;br /&gt;
|3840&lt;br /&gt;
|642&lt;br /&gt;
|714&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2043&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14210&lt;br /&gt;
|3727&lt;br /&gt;
|7934&lt;br /&gt;
|3878&lt;br /&gt;
|646&lt;br /&gt;
|718&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2086&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14416&lt;br /&gt;
|3803&lt;br /&gt;
|7939&lt;br /&gt;
|3940&lt;br /&gt;
|659&lt;br /&gt;
|721&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2092&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14882&lt;br /&gt;
|3820&lt;br /&gt;
|7941&lt;br /&gt;
|3970&lt;br /&gt;
|662&lt;br /&gt;
|723&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2098&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14974&lt;br /&gt;
|3852&lt;br /&gt;
|7956&lt;br /&gt;
|3997&lt;br /&gt;
|666&lt;br /&gt;
|725&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2113&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
Game features are broken up into folders (organization arbitrarily chosen by the dev working on it).&lt;br /&gt;
&lt;br /&gt;
Configs and scripts are loaded recursively from every folder inside src/scripts.&lt;br /&gt;
&lt;br /&gt;
Models and animations are exposed to configs by their filename minus extension inside src/models.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;packing order&amp;quot; (client-facing IDs) are sequentially incremented any time a new file/config is detected. Occasionally, this packing order is reset. For example, NPCs may not be in the same order from one revision to another. It just forces the client to redownload those cache archives.&lt;br /&gt;
&lt;br /&gt;
Configs are structured pretty similarly to ini (not a true parser) where sections start with [] and contain key=value pairs:&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
// would be in something like example.npc&lt;br /&gt;
&lt;br /&gt;
[example_npc]&lt;br /&gt;
name=Example NPC&lt;br /&gt;
desc=Showing off a NPC config!&lt;br /&gt;
model1=man_head_bald&lt;br /&gt;
model2=man_jaw_moustache&lt;br /&gt;
&lt;br /&gt;
// would be in something like example.obj&lt;br /&gt;
&lt;br /&gt;
[example_obj]&lt;br /&gt;
name=Example Object&lt;br /&gt;
desc=Now showing off an Obj config!&lt;br /&gt;
model=inv_example_object&lt;br /&gt;
2dzoom=780&lt;br /&gt;
2dxof=-3&lt;br /&gt;
2dyof=-3&lt;br /&gt;
2dxan=432&lt;br /&gt;
2dyan=104&lt;br /&gt;
members=yes&lt;br /&gt;
&lt;br /&gt;
// would be in something like example.loc&lt;br /&gt;
&lt;br /&gt;
[example_loc]&lt;br /&gt;
name=Example Location&lt;br /&gt;
desc=Now showing off a Loc config!&lt;br /&gt;
// example_door would have multiple file names like example_door_0.ob2, example_door_Q.ob2&lt;br /&gt;
model=example_door&lt;br /&gt;
active=yes&lt;br /&gt;
recol1s=2&lt;br /&gt;
recol1d=0&lt;br /&gt;
recol2s=24&lt;br /&gt;
recol2d=4762&lt;br /&gt;
op1=Open&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;These configs would then be exposed to runescript and be given client-facing IDs when packing. The server scripts don't need to explicitly know any IDs because they get converted by the engine based on the packing order.&lt;br /&gt;
&lt;br /&gt;
===Folders===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pack/ - OSRS&lt;br /&gt;
&lt;br /&gt;
packconversion/ - RS3&lt;br /&gt;
&lt;br /&gt;
src/&lt;br /&gt;
src/animations/ - RS3&lt;br /&gt;
src/billboards/ - RS3&lt;br /&gt;
src/binary/&lt;br /&gt;
src/defaults/ - OSRS&lt;br /&gt;
src/interfaces/&lt;br /&gt;
src/maps/&lt;br /&gt;
src/maps/worldmap/&lt;br /&gt;
src/materials/ - RS3&lt;br /&gt;
src/mediastreams/ - RS3&lt;br /&gt;
src/models/&lt;br /&gt;
src/models/agility_shortcuts/&lt;br /&gt;
src/models/area_abyssal_space/&lt;br /&gt;
src/models/area_aide/&lt;br /&gt;
src/models/area_brimhaven_dungeon/&lt;br /&gt;
src/models/area_clanwars/&lt;br /&gt;
src/models/area_dagganoth_dungeon/&lt;br /&gt;
src/models/area_dorgesh/&lt;br /&gt;
src/models/area_falador/&lt;br /&gt;
src/models/area_fossil/&lt;br /&gt;
src/models/area_fossil/fossil_underwater/&lt;br /&gt;
src/models/area_fremennik/&lt;br /&gt;
src/models/area_goblin_caves/&lt;br /&gt;
src/models/area_godwars/&lt;br /&gt;
src/models/area_grand_exchange/&lt;br /&gt;
src/models/area_harmless/&lt;br /&gt;
src/models/area_hellhound_lair/&lt;br /&gt;
src/models/area_ice/&lt;br /&gt;
src/models/area_mage_arena/&lt;br /&gt;
src/models/area_mor_ul_rek/&lt;br /&gt;
src/models/area_nexus/&lt;br /&gt;
src/models/area_rimmington/&lt;br /&gt;
src/models/area_rogues_den/&lt;br /&gt;
src/models/area_sanguine/&lt;br /&gt;
src/models/area_sos/&lt;br /&gt;
src/models/area_tasks/&lt;br /&gt;
src/models/area_tbow_cleanup/&lt;br /&gt;
src/models/area_vm/&lt;br /&gt;
src/models/area_warguild/&lt;br /&gt;
src/models/area_wilderness/&lt;br /&gt;
src/models/area_zeah/&lt;br /&gt;
src/models/bounty_hunter/&lt;br /&gt;
src/models/canoeing/&lt;br /&gt;
src/models/chathead/&lt;br /&gt;
src/models/deadman/&lt;br /&gt;
src/models/game_agilityarena/&lt;br /&gt;
src/models/game_agilitypyramid/&lt;br /&gt;
src/models/game_aluft_aloft/&lt;br /&gt;
src/models/game_barbassault/&lt;br /&gt;
src/models/game_barrows/&lt;br /&gt;
src/models/game_battle_royale/&lt;br /&gt;
src/models/game_blast_furnace/&lt;br /&gt;
src/models/game_boardgames/&lt;br /&gt;
src/models/game_brew/&lt;br /&gt;
src/models/game_castlewars/&lt;br /&gt;
src/models/game_cba/&lt;br /&gt;
src/models/game_champion/&lt;br /&gt;
src/models/game_clanwars/&lt;br /&gt;
src/models/game_ii/&lt;br /&gt;
src/models/game_mole/&lt;br /&gt;
src/models/game_ntk/&lt;br /&gt;
src/models/game_pest/&lt;br /&gt;
src/models/game_templetrek/&lt;br /&gt;
src/models/game_templetrek_2/&lt;br /&gt;
src/models/game_tob/&lt;br /&gt;
src/models/game_tog/&lt;br /&gt;
src/models/game_trail/&lt;br /&gt;
src/models/game_trick_or_treat/&lt;br /&gt;
src/models/game_tzhaar/&lt;br /&gt;
src/models/game_werewolfagility/&lt;br /&gt;
src/models/holiday_events/&lt;br /&gt;
src/models/human/&lt;br /&gt;
src/models/human/anim/&lt;br /&gt;
src/models/human/anim/100_guide/&lt;br /&gt;
src/models/human/anim/100_james/&lt;br /&gt;
src/models/human/anim/100_op/&lt;br /&gt;
src/models/human/anim/100_pirate/&lt;br /&gt;
src/models/human/anim/100_sir/&lt;br /&gt;
src/models/human/anim/action - common/&lt;br /&gt;
src/models/human/anim/action - rare/&lt;br /&gt;
src/models/human/anim/agility_shortcuts/&lt;br /&gt;
src/models/human/anim/aluft_aloft/&lt;br /&gt;
src/models/human/anim/area_abyssal/&lt;br /&gt;
src/models/human/anim/area_aide/&lt;br /&gt;
src/models/human/anim/area_dorgesh/&lt;br /&gt;
src/models/human/anim/area_fossil/&lt;br /&gt;
src/models/human/anim/area_fremmenik/&lt;br /&gt;
src/models/human/anim/area_goblin_caves/&lt;br /&gt;
src/models/human/anim/area_godwars/&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/&lt;br /&gt;
src/models/human/anim/area_harmless/&lt;br /&gt;
src/models/human/anim/area_hellhound_lair_anim/&lt;br /&gt;
src/models/human/anim/area_keldagrim/&lt;br /&gt;
src/models/human/anim/area_roguesden/&lt;br /&gt;
src/models/human/anim/area_sos/&lt;br /&gt;
src/models/human/anim/area_tbow_cleanup/ [blurry]&lt;br /&gt;
src/models/human/anim/area_tzhaarcaves/&lt;br /&gt;
src/models/human/anim/area_zeah/&lt;br /&gt;
src/models/human/anim/area_zeah/dclaws_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/&lt;br /&gt;
src/models/human/anim/area_zeah/dsword_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dtaxe_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dtknives_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/elder_maul/&lt;br /&gt;
src/models/human/anim/basic + tutorial/&lt;br /&gt;
src/models/human/anim/black_knights_fortress/&lt;br /&gt;
src/models/human/anim/brain_robbery/&lt;br /&gt;
src/models/human/anim/burgh_anims/&lt;br /&gt;
src/models/human/anim/canoeing/&lt;br /&gt;
src/models/human/anim/cluefest/&lt;br /&gt;
src/models/human/anim/combat - free/&lt;br /&gt;
src/models/human/anim/combat - members/&lt;br /&gt;
src/models/human/anim/diary_teleports/&lt;br /&gt;
src/models/human/anim/dmm_anims/&lt;br /&gt;
src/models/human/anim/doric/&lt;br /&gt;
src/models/human/anim/dragon_tools/&lt;br /&gt;
src/models/human/anim/dragon_warhammer/&lt;br /&gt;
src/models/human/anim/drilldemon/&lt;br /&gt;
src/models/human/anim/ectophial_teleport/&lt;br /&gt;
src/models/human/anim/emote/&lt;br /&gt;
src/models/human/anim/fai_falador/&lt;br /&gt;
src/models/human/anim/fai_varrock/&lt;br /&gt;
src/models/human/anim/fishing_contest/&lt;br /&gt;
src/models/human/anim/game - agilityarena/&lt;br /&gt;
src/models/human/anim/game_agilitypyramid/&lt;br /&gt;
src/models/human/anim/game_barbassault/&lt;br /&gt;
src/models/human/anim/game_barrows/&lt;br /&gt;
src/models/human/anim/game_blast_furnace/&lt;br /&gt;
src/models/human/anim/game_boardgames/&lt;br /&gt;
src/models/human/anim/game_brew/&lt;br /&gt;
src/models/human/anim/game_castlewars/&lt;br /&gt;
src/models/human/anim/game_champion/&lt;br /&gt;
src/models/human/anim/game_clue_scroll/&lt;br /&gt;
src/models/human/anim/Game_ii/&lt;br /&gt;
src/models/human/anim/game_ntk/&lt;br /&gt;
src/models/human/anim/game_pest/&lt;br /&gt;
src/models/human/anim/game_templetrek/&lt;br /&gt;
src/models/human/anim/game_tob/&lt;br /&gt;
src/models/human/anim/game_tog/&lt;br /&gt;
src/models/human/anim/game_trial/&lt;br /&gt;
src/models/human/anim/ghoul/&lt;br /&gt;
src/models/human/anim/goblin_diplomacy/&lt;br /&gt;
src/models/human/anim/gravedigger_macro/&lt;br /&gt;
src/models/human/anim/holiday_events/&lt;br /&gt;
src/models/human/anim/horsey/&lt;br /&gt;
src/models/human/anim/macro_mind/&lt;br /&gt;
src/models/human/anim/macroevent/&lt;br /&gt;
src/models/human/anim/movement/&lt;br /&gt;
src/models/human/anim/magic - free/&lt;br /&gt;
src/models/human/anim/magic - members/&lt;br /&gt;
src/models/human/anim/magic_carpet/&lt;br /&gt;
src/models/human/anim/magictraining/&lt;br /&gt;
src/models/human/anim/max_cape/&lt;br /&gt;
src/models/human/anim/mud_skipper/&lt;br /&gt;
src/models/human/anim/necro_plant_res/&lt;br /&gt;
src/models/human/anim/necro_teleport/&lt;br /&gt;
src/models/human/anim/Npc_improvement/&lt;br /&gt;
src/models/human/anim/addskull/&lt;br /&gt;
src/models/human/anim/petrock/&lt;br /&gt;
src/models/human/anim/plague_city/&lt;br /&gt;
src/models/human/anim/poh/&lt;br /&gt;
src/models/human/anim/poh2/&lt;br /&gt;
src/models/human/anim/poh3/&lt;br /&gt;
src/models/human/anim/poh4/&lt;br /&gt;
src/models/human/anim/qp_cook/&lt;br /&gt;
src/models/human/anim/qp_demon_slayer/&lt;br /&gt;
src/models/human/anim/qp_digsite/&lt;br /&gt;
src/models/human/anim/qp_dragon_slayer/&lt;br /&gt;
src/models/human/anim/qp_dwarf_mcannon/&lt;br /&gt;
src/models/human/anim/qp_elem1/&lt;br /&gt;
src/models/human/anim/Qp_observatory/&lt;br /&gt;
src/models/human/anim/qp_quest_impcatcher/&lt;br /&gt;
src/models/human/anim/quest - deathplateau/&lt;br /&gt;
src/models/human/anim/quest - druidic_spirit/&lt;br /&gt;
src/models/human/anim/quest - regicide/&lt;br /&gt;
src/models/human/anim/quest_animal_magnitism/&lt;br /&gt;
src/models/human/anim/quest_burgh/&lt;br /&gt;
src/models/human/anim/quest_digsite/&lt;br /&gt;
src/models/human/anim/quest_dragon_slayer_2/&lt;br /&gt;
src/models/human/anim/quest_dragonslayer2/&lt;br /&gt;
src/models/human/anim/quest_legendarysword/&lt;br /&gt;
src/models/human/anim/quest_legendarysword2/&lt;br /&gt;
src/models/human/anim/quest_LOTR/&lt;br /&gt;
src/models/human/anim/quest_lunar/&lt;br /&gt;
src/models/human/anim/quest_mdaughter/&lt;br /&gt;
src/models/human/anim/quest_mm2/&lt;br /&gt;
src/models/human/anim/quest_myreque_4/&lt;br /&gt;
src/models/human/anim/quest_plaguecity/&lt;br /&gt;
src/models/human/anim/quest_ratcatcher/&lt;br /&gt;
src/models/human/anim/quest_summoning/&lt;br /&gt;
src/models/human/anim/quest_tbwt/&lt;br /&gt;
src/models/human/anim/quest_the_feud/&lt;br /&gt;
src/models/human/anim/quest_tourtrap/&lt;br /&gt;
src/models/human/anim/quest_tower_of_life/&lt;br /&gt;
src/models/human/anim/quest_troll_rescue/&lt;br /&gt;
src/models/human/anim/quest_trollromance/&lt;br /&gt;
src/models/human/anim/quest_twocats/&lt;br /&gt;
src/models/human/anim/quest_vampires/&lt;br /&gt;
src/models/human/anim/quest_vampireslayer/&lt;br /&gt;
src/models/human/anim/quest_vampirewarrior/&lt;br /&gt;
src/models/human/anim/quest_varock_museum/&lt;br /&gt;
src/models/human/anim/quest_viking/&lt;br /&gt;
src/models/human/anim/quest_wanted/&lt;br /&gt;
src/models/human/anim/quest_watchtower/&lt;br /&gt;
src/models/human/anim/quest_werewolf_agility_arena/&lt;br /&gt;
src/models/human/anim/quest_zogre/&lt;br /&gt;
src/models/human/anim/raids/&lt;br /&gt;
src/models/human/anim/romeo_juliet/&lt;br /&gt;
src/models/human/anim/rum_deal/&lt;br /&gt;
src/models/human/anim/sandwichlady/&lt;br /&gt;
src/models/human/anim/secret_ghosts/&lt;br /&gt;
src/models/human/anim/skill - free/&lt;br /&gt;
src/models/human/anim/skill - members/&lt;br /&gt;
src/models/human/anim/skill_brutal/&lt;br /&gt;
src/models/human/anim/skill_cooking/&lt;br /&gt;
src/models/human/anim/skill_crafting/&lt;br /&gt;
src/models/human/anim/skill_farming/&lt;br /&gt;
src/models/human/anim/skill_hunting/&lt;br /&gt;
src/models/human/anim/skill_ranging/&lt;br /&gt;
src/models/human/anim/skill_slayer/&lt;br /&gt;
src/models/human/anim/skill_slayer/&lt;br /&gt;
src/models/human/anim/skillcapes/&lt;br /&gt;
src/models/human/anim/skilling_anims/&lt;br /&gt;
src/models/human/anim/soulbane/&lt;br /&gt;
src/models/human/anim/suroks_revenge/&lt;br /&gt;
src/models/human/anim/town_crier/&lt;br /&gt;
src/models/human/anim/trans/&lt;br /&gt;
src/models/human/anim/trick_or_treat/&lt;br /&gt;
src/models/human/anim/warguild/&lt;br /&gt;
src/models/human/anim/wilderness_capes/&lt;br /&gt;
src/models/human/anim/zmi_altar/&lt;br /&gt;
src/models/human/man/&lt;br /&gt;
src/models/human/man/arms/&lt;br /&gt;
src/models/human/man/deadman_mode/&lt;br /&gt;
src/models/human/man/feet/&lt;br /&gt;
src/models/human/man/fullbody/&lt;br /&gt;
src/models/human/man/hands/&lt;br /&gt;
src/models/human/man/hat/&lt;br /&gt;
src/models/human/man/hat/hat_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/head/&lt;br /&gt;
src/models/human/man/head/2017_new_hair/&lt;br /&gt;
src/models/human/man/head/head_pvp_armours/&lt;br /&gt;
src/models/human/man/head/head_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/head/New Folder/&lt;br /&gt;
src/models/human/man/head/slayer/&lt;br /&gt;
src/models/human/man/headextra/&lt;br /&gt;
src/models/human/man/jaw/&lt;br /&gt;
src/models/human/man/legs/&lt;br /&gt;
src/models/human/man/necklaces/&lt;br /&gt;
src/models/human/man/torso/&lt;br /&gt;
src/models/human/man/torsoextra/ [capes]&lt;br /&gt;
src/models/human/man/torsoextra/cluescrolls/&lt;br /&gt;
src/models/human/man/torsoextra/torsoextra_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/wild_armour/&lt;br /&gt;
src/models/human/weapons/&lt;br /&gt;
src/models/human/weapons/fossil_agility_test/&lt;br /&gt;
src/models/human/weapons/poh_heraldic/&lt;br /&gt;
src/models/human/weapons/pvp_weapons/&lt;br /&gt;
src/models/human/weapons/raidsrewards/&lt;br /&gt;
src/models/human/weapons/weapons_treasure_trail_2016/&lt;br /&gt;
src/models/human/weaponsextra/&lt;br /&gt;
src/models/human/woman/&lt;br /&gt;
src/models/interface/&lt;br /&gt;
src/models/inv/&lt;br /&gt;
src/models/macroevents/&lt;br /&gt;
src/models/magic_carpet/&lt;br /&gt;
src/models/max_cape/&lt;br /&gt;
src/models/music_cape/&lt;br /&gt;
src/models/npc/&lt;br /&gt;
src/models/ogre_area/&lt;br /&gt;
src/models/opening_chests/&lt;br /&gt;
src/models/player_owned_house/&lt;br /&gt;
src/models/projectiles/&lt;br /&gt;
src/models/quest_afr/&lt;br /&gt;
src/models/quest_ahoy/&lt;br /&gt;
src/models/quest_animal_magnetism/&lt;br /&gt;
src/models/quest_augers_eye/&lt;br /&gt;
src/models/quest_black_knights_fortress/&lt;br /&gt;
src/models/quest_brain_robbery/&lt;br /&gt;
src/models/quest_burgh/&lt;br /&gt;
src/models/quest_contact/&lt;br /&gt;
src/models/quest_cook/&lt;br /&gt;
src/models/quest_death/&lt;br /&gt;
src/models/quest_demon_slayer_rework/&lt;br /&gt;
src/models/quest_deserttreasure/&lt;br /&gt;
src/models/quest_devious/&lt;br /&gt;
src/models/quest_digsite/&lt;br /&gt;
src/models/quest_dragon_slayer_qip/&lt;br /&gt;
src/models/quest_dragonslayer2/&lt;br /&gt;
src/models/Quest_dream_mentor/&lt;br /&gt;
src/models/quest_dtt_dorgeshuun/&lt;br /&gt;
src/models/quest_dwarf_rock/&lt;br /&gt;
src/models/quest_eadgar/&lt;br /&gt;
src/models/quest_easglepeak/&lt;br /&gt;
src/models/quest_elem2/&lt;br /&gt;
src/models/quest_elementalworkshop/&lt;br /&gt;
src/models/quest_elid/&lt;br /&gt;
src/models/quest_enakh/&lt;br /&gt;
src/models/quest_eye_of_glouphrie/&lt;br /&gt;
src/models/quest_fairy/&lt;br /&gt;
src/models/quest_fairytale2/&lt;br /&gt;
src/models/quest_fenkenstrain/&lt;br /&gt;
src/models/quest_fever/&lt;br /&gt;
src/models/quest_fishing_contest/&lt;br /&gt;
src/models/quest_forgettable/&lt;br /&gt;
src/models/quest_fourdiamonds/&lt;br /&gt;
src/models/quest_gertrudes_cat/&lt;br /&gt;
src/models/quest_goblin_diplomacy/&lt;br /&gt;
src/models/quest_golem/&lt;br /&gt;
src/models/quest_grim/&lt;br /&gt;
src/models/quest_handsand/&lt;br /&gt;
src/models/quest_hauntedmine/&lt;br /&gt;
src/models/quest_horror/&lt;br /&gt;
src/models/quest_hundred/&lt;br /&gt;
src/models/quest_icthalarins/&lt;br /&gt;
src/models/quest_impcatcher/&lt;br /&gt;
src/models/quest_kalphite/&lt;br /&gt;
src/models/quest_karam_dungeon/&lt;br /&gt;
src/models/quest_kings_randsom/&lt;br /&gt;
src/models/quest_led_zep/&lt;br /&gt;
src/models/quest_legendsword_2/&lt;br /&gt;
src/models/quest_LOTR/&lt;br /&gt;
src/models/quest_lovakengj/&lt;br /&gt;
src/models/quest_lunar/&lt;br /&gt;
src/models/quest_makinghistory/&lt;br /&gt;
src/models/quest_mcannon/&lt;br /&gt;
src/models/quest_mdaughter/&lt;br /&gt;
src/models/quest_misc/&lt;br /&gt;
src/models/quest_mm/&lt;br /&gt;
src/models/quest_mm2/&lt;br /&gt;
src/models/quest_mourning/&lt;br /&gt;
src/models/quest_murder_mystery/&lt;br /&gt;
src/models/quest_my2arm/&lt;br /&gt;
src/models/quest_myarm/&lt;br /&gt;
src/models/quest_myreque_pa [incomplete name]&lt;br /&gt;
src/models/quest_naturespirit/&lt;br /&gt;
src/models/quest_observatory/&lt;br /&gt;
src/models/quest_slug2/&lt;br /&gt;
src/models/quest_soulbane/&lt;br /&gt;
src/models/quest_summoning/&lt;br /&gt;
src/models/quest_suroks_revenge/&lt;br /&gt;
src/models/quest_swansong/&lt;br /&gt;
src/models/quest_tbwt/&lt;br /&gt;
src/models/quest_the_feud/&lt;br /&gt;
src/models/quest_tourtrap/&lt;br /&gt;
src/models/quest_tower_of_life/&lt;br /&gt;
src/models/quest_tranquility/&lt;br /&gt;
src/models/quest_troll/&lt;br /&gt;
src/models/quest_trollrescue/&lt;br /&gt;
src/models/quest_trollromance/&lt;br /&gt;
src/models/quest_twocats/&lt;br /&gt;
src/models/quest_vampires/&lt;br /&gt;
src/models/quest_vampirewarrior/&lt;br /&gt;
src/models/quest_viking/&lt;br /&gt;
src/models/quest_wanted/&lt;br /&gt;
src/models/quest_watchtower/&lt;br /&gt;
src/models/quest_zogre/&lt;br /&gt;
src/models/reward_darkbow/&lt;br /&gt;
src/models/scene/&lt;br /&gt;
src/models/skill_brutal/&lt;br /&gt;
src/models/skill_cooking/&lt;br /&gt;
src/models/skill_farming/&lt;br /&gt;
src/models/skill_fishing/&lt;br /&gt;
src/models/skill_hunting/&lt;br /&gt;
src/models/skill_lore/&lt;br /&gt;
src/models/skill_mining/&lt;br /&gt;
src/models/skill_ranging/&lt;br /&gt;
src/models/skill_slayer/&lt;br /&gt;
src/models/skill_slayer/interface/&lt;br /&gt;
src/models/skill_slayer/inventory/&lt;br /&gt;
src/models/skill_slayer/location/&lt;br /&gt;
src/models/skill_slayer/npc/&lt;br /&gt;
src/models/skill_slayer/npc/abyssal/&lt;br /&gt;
src/models/skill_slayer/npc/banshee/&lt;br /&gt;
src/models/skill_slayer/npc/basilisk/&lt;br /&gt;
src/models/skill_slayer/npc/bloodveld/&lt;br /&gt;
src/models/skill_slayer/npc/cave_crawler/&lt;br /&gt;
src/models/skill_slayer/npc/cockatrice/&lt;br /&gt;
src/models/skill_slayer/npc/crawling_hand/&lt;br /&gt;
src/models/skill_slayer/npc/demon/&lt;br /&gt;
src/models/skill_slayer/npc/dustdevil/&lt;br /&gt;
src/models/skill_slayer/npc/gargoyle/&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/grotesque_guardian_animations/&lt;br /&gt;
src/models/skill_slayer/npc/jelly/&lt;br /&gt;
src/models/skill_slayer/npc/killerwatt/&lt;br /&gt;
src/models/skill_slayer/npc/kursk/&lt;br /&gt;
src/models/skill_slayer/npc/pyrefiend/&lt;br /&gt;
src/models/skill_slayer/npc/rockslug/&lt;br /&gt;
src/models/skill_slayer/npc/screaming_banshee/&lt;br /&gt;
src/models/skill_slayer/npc/slayer_bugs/&lt;br /&gt;
src/models/skill_slayer/npc/slayer_lizard/&lt;br /&gt;
src/models/skill_slayer/npc/spectre/&lt;br /&gt;
src/models/skill_slayer/npc/turoth/&lt;br /&gt;
src/models/skill_slayer/npc/wyvern/&lt;br /&gt;
src/models/skill_slayer/npc/zygomite/&lt;br /&gt;
src/models/skill_slayer/projectiles/&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/&lt;br /&gt;
src/models/skill_slayer/spotanim/&lt;br /&gt;
src/models/skill_slayer/spotanims/&lt;br /&gt;
src/models/skill_woodcutting/&lt;br /&gt;
src/models/skillcapes/&lt;br /&gt;
src/models/spells/&lt;br /&gt;
src/models/town_crier/&lt;br /&gt;
src/models/transilvania_area/&lt;br /&gt;
src/models/update_shadow_maj/&lt;br /&gt;
src/models/zmi_altar/&lt;br /&gt;
src/particles/ - RS3&lt;br /&gt;
src/scripts/&lt;br /&gt;
src/scripts/areas/&lt;br /&gt;
src/scripts/areas/Area_Abyssal_space/&lt;br /&gt;
src/scripts/areas/area_aide/&lt;br /&gt;
src/scripts/areas/area_battlefield/&lt;br /&gt;
src/scripts/areas/area_dagganoth_dungeon/&lt;br /&gt;
src/scripts/areas/area_desert/&lt;br /&gt;
src/scripts/areas/area_dorgesh_kaan/&lt;br /&gt;
src/scripts/areas/area_fossil/&lt;br /&gt;
src/scripts/areas/area_fossil/config/&lt;br /&gt;
src/scripts/areas/area_fossil/script/&lt;br /&gt;
src/scripts/areas/area_gnome/&lt;br /&gt;
src/scripts/areas/area_goblin_caves/&lt;br /&gt;
src/scripts/areas/area_godwars_dungeon/&lt;br /&gt;
src/scripts/areas/Area_HAM_Fanatics/&lt;br /&gt;
src/scripts/areas/area_harmless/&lt;br /&gt;
src/scripts/areas/Area_karam_dungeon/&lt;br /&gt;
src/scripts/areas/area_keldagrim/&lt;br /&gt;
src/scripts/areas/area_mage_arena/&lt;br /&gt;
src/scripts/areas/area_nexus/&lt;br /&gt;
src/scripts/areas/area_rimmington/&lt;br /&gt;
src/scripts/areas/area_roguesden/&lt;br /&gt;
src/scripts/areas/area_sos/&lt;br /&gt;
src/scripts/areas/kebos/&lt;br /&gt;
src/scripts/areas/kebos/brimstone/&lt;br /&gt;
src/scripts/areas/monastery/&lt;br /&gt;
src/scripts/areas/Morytania/&lt;br /&gt;
src/scripts/areas/morytania_vampires/&lt;br /&gt;
src/scripts/areas/Werewolf_Village/&lt;br /&gt;
src/scripts/areas/zeah/&lt;br /&gt;
src/scripts/bonds/&lt;br /&gt;
src/scripts/clanchat/&lt;br /&gt;
src/scripts/deadman/&lt;br /&gt;
src/scripts/doors/&lt;br /&gt;
src/scripts/drop tables/&lt;br /&gt;
src/scripts/floors/&lt;br /&gt;
src/scripts/follower_cat/&lt;br /&gt;
src/scripts/general_follower/&lt;br /&gt;
src/scripts/general_use/&lt;br /&gt;
src/scripts/grand_exchange/&lt;br /&gt;
src/scripts/holiday_events/&lt;br /&gt;
src/scripts/interface_banks/&lt;br /&gt;
src/scripts/interface_boat/&lt;br /&gt;
src/scripts/interface_chat/&lt;br /&gt;
src/scripts/interface_chatsystem/&lt;br /&gt;
src/scripts/interface_map/&lt;br /&gt;
src/scripts/interface_options/&lt;br /&gt;
src/scripts/interface_polls/&lt;br /&gt;
src/scripts/interface_quest_journal/&lt;br /&gt;
src/scripts/interface_reportabuse/&lt;br /&gt;
src/scripts/interface_reusable_components/&lt;br /&gt;
src/scripts/interface_shops/&lt;br /&gt;
src/scripts/interface_skill_advance_guide_v2/&lt;br /&gt;
src/scripts/interface_skills/&lt;br /&gt;
src/scripts/interface_toplevel/&lt;br /&gt;
src/scripts/interface_trade/&lt;br /&gt;
src/scripts/interface_wear/&lt;br /&gt;
src/scripts/interface_welcomescreen/&lt;br /&gt;
src/scripts/interface_worldmap/&lt;br /&gt;
src/scripts/interface_worldswitcher/&lt;br /&gt;
src/scripts/ladders+stairs/&lt;br /&gt;
src/scripts/levelrequire/&lt;br /&gt;
src/scripts/macro events/&lt;br /&gt;
src/scripts/minigames/&lt;br /&gt;
src/scripts/minigames/game_nzone/&lt;br /&gt;
src/scripts/minigames/game_osman-sorceress/&lt;br /&gt;
src/scripts/minigames/game_partyroom/&lt;br /&gt;
src/scripts/minigames/game_pest/&lt;br /&gt;
src/scripts/minigames/game_pyramid_plunder/&lt;br /&gt;
src/scripts/minigames/game_tears_of_guthix/&lt;br /&gt;
src/scripts/minigames/game_temple_trek/&lt;br /&gt;
src/scripts/minigames/game_trail/&lt;br /&gt;
src/scripts/minigames/game_trawler/&lt;br /&gt;
src/scripts/minigames/grouping/&lt;br /&gt;
src/scripts/minigames/livestreams/&lt;br /&gt;
src/scripts/minigames/game_clanwars/&lt;br /&gt;
src/scripts/music/&lt;br /&gt;
src/scripts/npc/&lt;br /&gt;
src/scripts/objects/&lt;br /&gt;
src/scripts/player/&lt;br /&gt;
src/scripts/quests/&lt;br /&gt;
src/scripts/quests/quest_upass/&lt;br /&gt;
src/scripts/quests/quest_upass/upass_traps/&lt;br /&gt;
src/scripts/scenery/&lt;br /&gt;
src/scripts/skill_agility/&lt;br /&gt;
src/scripts/skill_brutal/&lt;br /&gt;
src/scripts/skill_combat/&lt;br /&gt;
src/scripts/skill_construction/&lt;br /&gt;
src/scripts/skill_cooking/&lt;br /&gt;
src/scripts/skill_crafting/&lt;br /&gt;
src/scripts/skill_farming/&lt;br /&gt;
src/scripts/skill_firemaking/&lt;br /&gt;
src/scripts/skill_fishing/&lt;br /&gt;
src/scripts/skill_fletching/&lt;br /&gt;
src/scripts/skill_general/&lt;br /&gt;
src/scripts/skill_herblore/&lt;br /&gt;
src/scripts/skill_hunting/&lt;br /&gt;
src/scripts/skill_magic/&lt;br /&gt;
src/scripts/skill_magic/Lunar Spells/&lt;br /&gt;
src/scripts/skill_magic/spell list/&lt;br /&gt;
src/scripts/skill_magic/Zaros Spells/&lt;br /&gt;
src/scripts/skill_mining/&lt;br /&gt;
src/scripts/skill_prayer/&lt;br /&gt;
src/scripts/skill_runecraft/&lt;br /&gt;
src/scripts/skill_slayer/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/script/&lt;br /&gt;
src/scripts/skill_slayer/location scripts/&lt;br /&gt;
src/scripts/skill_slayer/monster scripts/&lt;br /&gt;
src/scripts/skill_slayer/npcs/&lt;br /&gt;
src/scripts/skill_slayer/rewards/&lt;br /&gt;
src/scripts/skill_slayer/superior_slayer_encounters/&lt;br /&gt;
src/scripts/skill_slayer/Zygomites/&lt;br /&gt;
src/scripts/skill_smithing/&lt;br /&gt;
src/scripts/skill_thieving/&lt;br /&gt;
src/scripts/skill_woodcutting/&lt;br /&gt;
src/scripts/test_connor/&lt;br /&gt;
src/scripts/transportation/&lt;br /&gt;
src/scripts/tutorial/&lt;br /&gt;
src/scripts/warning_system/&lt;br /&gt;
src/skeletons/ - RS3&lt;br /&gt;
src/sounds/&lt;br /&gt;
src/sprites/&lt;br /&gt;
src/streaming/ - RS3&lt;br /&gt;
src/webscripts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/rs2_v4.engine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/maps/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/maps/keynames.txt&lt;br /&gt;
src/maps/labels_dungeon.txt&lt;br /&gt;
src/maps/labels_extra.txt&lt;br /&gt;
src/maps/labels_main.txt&lt;br /&gt;
[src/maps/*.jm2 e.g. m50_50.jm2 for Lumbridge]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/area_fossil/fossil_underwater/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_anchor1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_clam1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_2.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_3.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_5.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_2.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_5.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_top.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_godwars/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_death.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_ready.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_readyanim.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_armadyl.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_bandos.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_saradomin.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_zamorak.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_gong_hammer.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_player_move_boulder.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_player_move_bolder_south.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_saradomin_sword_attack.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_attack.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_death.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_defend.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_forward.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_ready.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_godwars/godwars_sword_update/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_armadyl_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_bandos_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_block.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_chop.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_defend.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_dragon_2H.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_ready.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_run.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_saradomin_god_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_saradomin_special.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_slash.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_smash.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_turnonspot.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk_left.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk_right.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_zamorak_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_run.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_turnonspot.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walk.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walkleft.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walkright.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_bash.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_block.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_crush.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_run.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_walk.anim&lt;br /&gt;
src/models/human/anim/area_zeah/human_dead_poses.anim&lt;br /&gt;
src/models/human/anim/area_zeah/ready_bulwark.anim&lt;br /&gt;
src/models/human/anim/area_zeah/ready_sheathed.anim&lt;br /&gt;
src/models/human/anim/area_zeah/xeric_pose.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/dclaws_spec/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/dclaws_spec/dclaws_human_spec.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/dhunter_lance/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/dhunter_lance_crush.anim&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/dhunter_lance_stab.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/basic + tutorial/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/basic + tutorial/cast_chargeorb.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/cast_teleport.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/closedoorl.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/closedoorr.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/cooking.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-block.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-def.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-hack.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-lunge.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/death.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_sword_ready.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_sword_run.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_word_walk.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/eat.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/fa_furnace.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/firecooking.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/furnace.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/lightfire.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/lobsterpot.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/milk.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update_looped.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update_wall_closer.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/newwalkleft.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/newwalkright.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoor.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoorl.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoorr.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/pickupfloor.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/pray.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/reachforladder.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ready.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/running.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/shield_defence.nim&lt;br /&gt;
src/models/human/anim/basic + tutorial/smithing.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/sword-block.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/sword-def.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/ds2_fleet_boat_paladin_steeringwheel.ob3&lt;br /&gt;
src/models/human/man/ds2_fleet_boat_whiteknight_steeringwheel.ob3&lt;br /&gt;
src/models/human/man/skill_slayer_npc_infernal_mage.ob3&lt;br /&gt;
src/models/human/man/tob_stranger.ob3&lt;br /&gt;
src/models/human/man/wildy_cave_revenant_knight.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/hat/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/hat/AncientsI_Mitre_Male.ob3&lt;br /&gt;
src/models/human/man/hat/Armadyl_Male_Mitre.ob3&lt;br /&gt;
src/models/human/man/hat/Bandos_Mitre_Male.ob3&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm1.ob2&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm2.ob2&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm3.ob2&lt;br /&gt;
src/models/human/man/hat/Cat_Mask_Male.ob3&lt;br /&gt;
src/models/human/man/hat/DragonMask_Male_Mask.ob3&lt;br /&gt;
src/models/human/man/hat/druidwreath_summerevent2014_man.ob3&lt;br /&gt;
src/models/human/man/hat/Explorers_Hat_Male.ob3&lt;br /&gt;
src/models/human/man/hat/game_pest_archer_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/game_pest_mage_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/grim_helm.ob2&lt;br /&gt;
src/models/human/man/hat/grim_stylus_hat.ob2&lt;br /&gt;
src/models/human/man/hat/gub_reindeer_hat_male.ob2&lt;br /&gt;
src/models/human/man/hat/guthix_halo_male.ob3&lt;br /&gt;
src/models/human/man/hat/hunter_pushorn_hat_man.ob2&lt;br /&gt;
src/models/human/man/hat/lavadragon_mask.ob3&lt;br /&gt;
src/models/human/man/hat/Leprechaun_Hat_Male.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_100_pirate_fishbowl.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_4th_bday.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_aide_fisher.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ancestral_hat.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_angler.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_arabian.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_drill.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_01.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_02.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_03.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_army.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_fighter.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_healer.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_ranger.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_runner.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel1.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel4.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel5.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrows_skeleton.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_battered_mining_helmet.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bee_keeper.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_beret_artist.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_berret.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_birdseye.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bounty_hunter.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_bounty_rogue.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_bowler.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_brew_tricorn.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bunnyears.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_butlers.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_cavalier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_cave_goblin_mining.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_gave_goblin_mining_unli.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_chef_poh.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_chefs.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_darkmage.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_darktrooper.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_doctors.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_drill_camoflage.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elem_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elf.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elfhat2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elfpriest.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_enviro_suit_helmet.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband1.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fedora.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fez.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fishing_contest.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fris_kinglyhat.ob2 [Helm of neitiznot]&lt;br /&gt;
src/models/human/man/hat/man_hat_fris_town_crier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_frisb_jester.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_frog_crown.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_cavalier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_[unable to transcribe].ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_sailor.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_wizard.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_glassblower.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_granite_helm.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_gravedigger_head.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_headband.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_hunting.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_jester.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lederhosen.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lumberjack_checker.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lunar_moonclan.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lunar_moonclan_headgear.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/head/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/head/Afro_Male.ob3&lt;br /&gt;
src/models/human/man/head/antisanta_head.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_elite_male.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_hard_male.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_medium_male.ob3&lt;br /&gt;
src/models/human/man/head/bh_trader.ob3&lt;br /&gt;
src/models/human/man/head/Bronze_Male_FullHelmet_trimmed_Trail.ob3&lt;br /&gt;
src/models/human/man/head/brut_ascending_spirit_hat.ob2&lt;br /&gt;
src/models/human/man/head/brut_ascending_spirit_head.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm1.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm2.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm3.ob2&lt;br /&gt;
src/models/human/man/head/brut_full_dragon_helm.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male1.ob3&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male2.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male3.ob3&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male4.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male5.ob2&lt;br /&gt;
src/models/human/man/head/child.ob2&lt;br /&gt;
src/models/human/man/head/contract_all_head.ob2&lt;br /&gt;
src/models/human/man/head/cwars_mage_heaed.ob3&lt;br /&gt;
src/models/human/man/head/deadman_head.ob3&lt;br /&gt;
src/models/human/man/head/dragon_slayer_qp_ghost_head_man.ob2&lt;br /&gt;
src/models/human/man/head/dragon_slayer_qp_ghost_head_man2.ob2&lt;br /&gt;
src/models/human/man/head/dream_helm.ob2&lt;br /&gt;
src/models/human/man/head/easter07_chicken_head.ob2&lt;br /&gt;
src/models/human/man/head/elder_druid_head.ob3&lt;br /&gt;
src/models/human/man/head/fai_varrock_afro.ob2&lt;br /&gt;
src/models/human/man/head/fight_arena_general_khazard_skull.ob2&lt;br /&gt;
src/models/human/man/head/fight_arena_general_khazard_helm.ob2&lt;br /&gt;
src/models/human/man/head/game_pest_melee_helm_male.ob2&lt;br /&gt;
src/models/human/man/head/GoblinManHead.ob3&lt;br /&gt;
src/models/human/man/head/godwars_armadyl_helmet_male.ob2&lt;br /&gt;
src/models/human/man/head/godwars_dying_paladin_head.ob2&lt;br /&gt;
src/models/human/man/head/godwars_knight_head.ob2&lt;br /&gt;
src/models/human/man/head/godwars_knight_head2.ob2&lt;br /&gt;
src/models/human/man/head/godwarsr_saradomin_wizard_head.ob2&lt;br /&gt;
src/models/human/man/head/graceful_hoods_male.ob3&lt;br /&gt;
src/models/human/man/head/hunter_pushorn_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hunter_sabretooth_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hunter_spikeride_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hw06_jack_o_lantern_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hw06_skel_cow_head.ob2&lt;br /&gt;
src/models/human/man/head/hw07_grim_head_male.ob2&lt;br /&gt;
src/models/human/man/head/hw15_gravedigger_head.ob3&lt;br /&gt;
src/models/human/man/head/ImpHat_Male.ob3&lt;br /&gt;
src/models/human/man/head/Iron_G_FullHelm_Male.ob3&lt;br /&gt;
src/models/human/man/head/Iron_T_fullHelm_male.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm_h.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm_u.ob3&lt;br /&gt;
src/models/human/man/head/jersey_collar_bald.ob2&lt;br /&gt;
src/models/human/man/head/keeperofkeys_head.ob3&lt;br /&gt;
src/models/human/man/head/lz_arthur_bronze_helm.ob2&lt;br /&gt;
src/models/human/man/head/lz_prosecutor_head.ob2&lt;br /&gt;
src/models/human/man/head/mac_head.ob3&lt;br /&gt;
src/models/human/man/head/Male_Bronze_T_Fullhelm.ob3&lt;br /&gt;
src/models/human/man/head/man_hat_mage_pizzaz.ob2&lt;br /&gt;
src/models/human/man/head/man_head_100_pirate_fishbowl.ob2&lt;br /&gt;
src/models/human/man/head/man_head_5oclock_shadow.ob2&lt;br /&gt;
src/models/human/man/head/man_head_anvas_headgear.ob3&lt;br /&gt;
src/models/human/man/head/man_head_arabian.ob2&lt;br /&gt;
src/models/human/man/head/man_head_arabian2.ob2&lt;br /&gt;
src/models/human/man/head/man_head_architect_hos.ob3&lt;br /&gt;
src/models/human/man/head/man_head_architect_pisc.ob3&lt;br /&gt;
src/models/human/man/head/man_head_baboon.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bald.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bald_fat.ob2&lt;br /&gt;
src/models/human/man/head/man_head_balder.ob2&lt;br /&gt;
src/models/human/man/head/man_head_banshee_mask.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbarian_chef.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barbarian_chief.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barbary_1.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_2.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_3.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_4.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barrow_dharok.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barrow_dharok_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_guthan.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_guthan_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_karil.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_torag.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_torag_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_verac.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bridgelum_consult.ob2&lt;br /&gt;
src/models/human/man/head/man_head_castlewars_hood.ob2&lt;br /&gt;
src/models/human/man/head/man_head_chaos_necro.ob3&lt;br /&gt;
src/models/human/man/head/man_head_clown_mask.ob3&lt;br /&gt;
src/models/human/man/head/man_head_coif.ob2&lt;br /&gt;
src/models/human/man/head/man_head_contact_sopanem_guard.ob2&lt;br /&gt;
src/models/human/man/head/man_head_crab_helmet.ob2&lt;br /&gt;
src/models/human/man/head/man_head_croc_ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_highlight.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_long.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_long_highlight.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/jaw/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/jaw/brut_ascending_spirit_jaw.ob2&lt;br /&gt;
src/models/human/man/jaw/keeperofkeys_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_5oclock_shadow.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian2_fakebeard.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbarian_beard.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbary_1.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbary_2.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_chaos_necro.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_dali_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_egyption.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_facemask.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_goaty.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_handlebar_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_king.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_medium.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache3.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache4_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_muttonchips_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_muttonfull_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_none.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_ragged_beard.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_santa.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short2_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_split.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_vampyre.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_vc_moustache.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_very_long_ragged.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_very_long_ragged_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_visser_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_waxed_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/Patchy_Beard.ob2&lt;br /&gt;
src/models/human/man/jaw/prospector_pete_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/qp_soa_jonny_the_beard_beard.ob2&lt;br /&gt;
src/models/human/man/jaw/qp_watchtower_wizard_very_long.ob2&lt;br /&gt;
src/models/human/man/jaw/slug2_mayor3.ob2&lt;br /&gt;
src/models/human/man/jaw/town_crier_beard.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/torsoextra/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/torsoextra/3acloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/AncientsI_Cloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_iron_man.ob2&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_steel_man.ob2&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_vorkath_man.ob3&lt;br /&gt;
src/models/human/man/torsoextra/Armadyl_MainCloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_easy_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_elite_main.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_hard_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_medium_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/Bandos_Cloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/championscloak_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/cwars_range_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/deadman_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/dragon_slayer_qp_oracle_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/dragon_slayer_qp_ozaich_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/Explorers_Backpack_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/fight_arena_general_khazard_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/fight_arena_general_khazard_giant.ob2&lt;br /&gt;
src/models/human/man/torsoextra/game_pest_teleport_badge.ob2&lt;br /&gt;
src/models/human/man/torsoextra/ghost_hat_back.ob2&lt;br /&gt;
src/models/human/man/torsoextra/godwars_knight_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/graceful_cape_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/keeperofkeys_sack.ob3&lt;br /&gt;
src/models/human/man/torsoextra/lotr_shylock_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/lunar_seal_of_passage.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books1.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books3.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books4.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books5.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_pirate_breathing_apparatus.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ancientsymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_apron.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_apron_qui_pocket.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_armadylsymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bandossymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_chest_rap.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_hairy_chet.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_shoulder_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_shoulder_pads_army.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_attacker_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_collector_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_defender_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_healer_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bards_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barrow_wraith_cloak2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barrows_skeleton_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bloodsplalts.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bloodsplats_notfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bone_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bone_sack_player_m.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buff_for_plate.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttons.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttons2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttonsfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttonsfat2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_camoflauge_robe.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_castlewars_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cheap_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_dwarf_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_elf_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_skeleton_armour.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_for_hood2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_for_hood2_no_head.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_of_darkness.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_plane.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_plain_sit_floor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_contact_menaphos_guards_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_contact_menaphos_guards_skirt.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier1_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier2_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier3_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier4_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier5_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_dark_wizard_decor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_dark_wizard_leg_decor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_darkelf_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_drilldemon_star.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_eagle_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_elfpriestdecor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_enviro_suit_tank.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_favour_ham_logo.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_favour_ham_logo_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fever_scars.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fever_stitches.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fire_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fire_cape_dummy.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fishsack.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fris_kinglycape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ghost_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ghost_sailor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_glassblower_apron.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_grain_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guard_shoulder_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guide_backpack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guidedecor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guthix_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guthixsymbol.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_herquin_pocket_watch.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_herquin_toolbelt.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_hoode.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_infernalcape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_infernalcape_dummy.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_invisible_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jacket.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jacketfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jester_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_lab_coat.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_laderhosen_straps.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_lon_for_platemail.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/weapons/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/weapons/3A_Bow_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/3A_Broadsword_MaleWeapon.ob3&lt;br /&gt;
src/models/human/weapons/3A_hatchet.ob3&lt;br /&gt;
src/models/human/weapons/3A_hatchet_woman.ob3&lt;br /&gt;
src/models/human/weapons/3A_pickaxe.ob3&lt;br /&gt;
src/models/human/weapons/3A_pickaxe_woman.ob3&lt;br /&gt;
src/models/human/weapons/3A_Wand_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/aaaaaaaa.ob3&lt;br /&gt;
src/models/human/weapons/abyssal_tentacle.ob3&lt;br /&gt;
src/models/human/weapons/amethyst_crafting.ob3&lt;br /&gt;
src/models/human/weapons/Ancientsl_Crozier_Male.ob3&lt;br /&gt;
src/models/human/weapons/anma_axe.ob2&lt;br /&gt;
src/models/human/weapons/anma_iron.ob2&lt;br /&gt;
src/models/human/weapons/anmasack_empty.ob2&lt;br /&gt;
src/models/human/weapons/anma_sack_full.ob2&lt;br /&gt;
src/models/human/weapons/arcane_shield.ob3&lt;br /&gt;
src/models/human/weapons/area_aide_kiteshield.ob2&lt;br /&gt;
src/models/human/weapons/Armadyl_Male_Crozier.ob3&lt;br /&gt;
src/models/human/weapons/ash_mug.ob3&lt;br /&gt;
src/models/human/weapons/Bandos_Crozier.ob3&lt;br /&gt;
src/models/human/weapons/barbarian_axe_for_man.ob2&lt;br /&gt;
src/models/human/weapons/bbbbbbbb.ob3&lt;br /&gt;
src/models/human/weapons/blessed_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/br_halberd.ob3&lt;br /&gt;
src/models/human/weapons/brain_anchor.ob2&lt;br /&gt;
src/models/human/weapons/brain_weapons_open_book.ob2&lt;br /&gt;
src/models/human/weapons/brain_ewapons_open_saradomin_book.ob2&lt;br /&gt;
src/models/human/weapons/Bronze_Male_Kiteshield_trimmed_Trail.ob3&lt;br /&gt;
src/models/human/weapons/brut_firemaking_daganoth_bow.ob2&lt;br /&gt;
src/models/human/weapons/brut_firemaking_longbow.ob2&lt;br /&gt;
src/models/human/weapons/brut_firemaking_shortbow.ob2&lt;br /&gt;
src/models/human/weapons/brut_fishing_rod.ob2&lt;br /&gt;
src/models/human/weapons/brut_net.ob2&lt;br /&gt;
src/models/human/weapons/brut_pspear.ob2&lt;br /&gt;
src/models/human/weapons/brut_shark.ob2&lt;br /&gt;
src/models/human/weapons/brut_spear.ob2&lt;br /&gt;
src/models/human/weapons/brut_swordfish.ob2&lt;br /&gt;
src/models/human/weapons/brut_tuna.ob2&lt;br /&gt;
src/models/human/weapons/Cane_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/chronicle_man.ob3&lt;br /&gt;
src/models/human/weapons/chronical_woman.ob3&lt;br /&gt;
src/models/human/weapons/contact_sophanem_spear.ob2&lt;br /&gt;
src/models/human/weapons/contact_sophanem_spear_woman.ob2&lt;br /&gt;
src/models/human/weapons/darkbow_darkbow.ob2&lt;br /&gt;
src/models/human/weapons/deadman_sword.ob3&lt;br /&gt;
src/models/human/weapons/dorgesh_whirly_scanner.ob2&lt;br /&gt;
src/models/human/weapons/Dragon_Cane.ob3&lt;br /&gt;
src/models/human/weapons/dragon_claws.ob3&lt;br /&gt;
src/models/human/weapons/dream_magic_shortbow.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_bunny.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_green.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_orange.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_yellow.ob2&lt;br /&gt;
src/models/human/weapons/eek_female.ob3&lt;br /&gt;
src/models/human/weapons/eek_male.ob3&lt;br /&gt;
src/models/human/weapons/elysian_shield.ob3&lt;br /&gt;
src/models/human/weapons/eyeglo_crystal_axe.ob2&lt;br /&gt;
src/models/human/weapons/fai_ikov_lucien_staff.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_broom_woman.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_shield.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_sword.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_wateringcan.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_halbard.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_half_bench.ob2&lt;br /&gt;
src/models/human/weapons/female_arcane_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_blessed_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_elysian_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_spectral_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/fight_arena_general_khazard_sword.ob2&lt;br /&gt;
src/models/human/weapons/fns_arctic_pine_log_lhand.ob2&lt;br /&gt;
src/models/human/weapons/fns_viking_axe.ob2&lt;br /&gt;
src/models/human/weapons/goblin_paint_cannon.ob3&lt;br /&gt;
src/models/human/weapons/godwars_armadyl_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_armadyl_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_bandos_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_bandos_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_knight_axe.ob2&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword.ob2&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_wizard_cane.ob2&lt;br /&gt;
src/models/human/weapons/godwars_water_trident_player.ob2&lt;br /&gt;
src/models/human/weapons/godwars_zamorak_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_zamokak_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_zamorak_spear_player.ob2&lt;br /&gt;
src/models/human/weapons/grim_potion_vial.ob2&lt;br /&gt;
src/models/human/weapons/grim_sylius_walking_stick.ob2&lt;br /&gt;
src/models/human/weapons/gub_xmas_2006_player_held_snowball.ob2&lt;br /&gt;
src/models/human/weapons/hand_scroll_teleport.ob3&lt;br /&gt;
src/models/human/weapons/heavy_ballista.ob3&lt;br /&gt;
src/models/human/weapons/hillgiant_club.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_100_brulee_pot.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_chair_mohogany.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_egg_whisk.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_frying_pan.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_kebab_skewer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_large_spatula.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_meat_cleaver.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_meat_tenderiser.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_rolling_pin.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_spork.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_sushi_knife.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_wooden_spoon.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100guide_egg_bottom.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_dagger.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_dagger_p.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_whip.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aide_stick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aide_woodsman_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aivas_crossbow.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_axe_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_mace_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_spear_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_sword_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_antidragonshield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_antidragonshield_update.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aquarium_net.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_arceeus_essence_block.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_arclight.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_armour_leopard_toy.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_easy.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_elite.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_hard.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_medium.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_aws.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bag_of_salt.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_baguette.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bannana.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bannana_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_hammer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_hammer.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_longbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_spiky_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbassault_vial.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_dharok_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_dharok_wraith_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_guthan_mstar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_guthan_wraith_mstar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_quarterstaff.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_quarterstaff_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_torag_hammers.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_torag_wraith_hammers.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_verac_warspear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_verac_wraith_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_basket_of_easter_eggs.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bday_balloons.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_beer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beer_glass_empty.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beer_glass_full.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beerkeg.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bench.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bird_caller.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_black_knight_dossier.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack_assault_rogue_trader.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack_defend_rogue_trader.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blast_furnace_air_pump.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blast_furnace_conveyer_cycle.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_chiginki.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_scythe.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_scythe_uncharged.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_bludgeon.b3&lt;br /&gt;
src/models/human/weapons/human_weapons_blueritesword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bobcat.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_bone_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bone_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_book.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_book_staff.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_boomerrang.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bucket_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bucket_tar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bug_lantern.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bug_lantern_glow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_burgh_rod_control.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_butterfly_jar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_butterfly_net.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_book.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_mage.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_overhead.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_calquat_keg.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_calquat_keg_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_camorras_axe.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_canoeing_paddle.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewars_banner_green.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewars_banner_saradomin.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewaras_banner_zamorak.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cattleprod.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chair.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chapion_ghoul_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_champion_skeleton_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_champion_zombie_arm.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_charcoal.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cherican.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_chicken.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chicken_drumstick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chinchompa.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chisel.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chocolate_bar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clawhammer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cleaver.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clipboard.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clipboardandpen.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_kerris.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_kerris_poison.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_sophanem_guards_cutlass_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_crab_claw.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_craws_bow.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_craws_bow_charged.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_crystal_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_crystal_shield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cudgel.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dagannoth_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dagannoth_bow_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dh_sword_ornate.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dh-sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dibber.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dk_witch_broomstick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_dagger.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_defender.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_defender_woman.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_halberd.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_hasta.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_kiteshield.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_kiteshield_female.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_mace.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_scimitar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe_broke.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe_handle_macro.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_sq_shield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_tknife.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_tknife_off.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_two_handed_sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_warhammer.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonaxe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonfire_ward.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonfireshield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonhunter_lance.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonsword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_drive_throne.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_crossbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_dagger.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_dagger_p.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_crate.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_ham_goblet.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_ham_goblet_rhand.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_zanik_bone_crossbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_zanik_tog_bowl.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dualclaws.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dust_staff.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_blunt_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_chair.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_sharp_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dye_bottle_ft.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dye_bottle_night.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_earthwarriormace.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_ectophial_teleport.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/skill_slayer/npc/grotesque_guardians/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/grotesque_guardians.base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_corner_01_2.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_02_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_03_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_corner_02.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_01_2.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_straight_02_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_straight_02_1.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/allowlogin.rs2&lt;br /&gt;
src/scripts/calcqp.rs2&lt;br /&gt;
src/scripts/drop.rs2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/areas/area_fossil/config/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.area&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.constant&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.enum&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.inv&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.npc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.obj&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.seq&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.spotanim&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.varbit&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.varp&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_npc.seq&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_pvn.npc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_reward.obj&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_scene.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_underwater.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/wyvern_shield.varobj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/areas/kebos/brimstone/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/areas/kebos/brimstone/brimstone.obj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/drop tables/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/drop tables/_drops.rs2&lt;br /&gt;
src/scripts/drop tables/bandit_leader.rs2&lt;br /&gt;
src/scripts/drop tables/barbarian.rs2&lt;br /&gt;
src/scripts/drop tables/battle_tortoises_drops.rs2&lt;br /&gt;
src/scripts/drop tables/bear.rs2&lt;br /&gt;
src/scripts/drop tables/bearded_dark_wizard.rs2&lt;br /&gt;
src/scripts/drop tables/black_demon.rs2&lt;br /&gt;
src/scripts/drop tables/black_dragon.rs2&lt;br /&gt;
src/scripts/drop tables/black_knight.rs2&lt;br /&gt;
src/scripts/drop tables/brawling_bandit.rs2&lt;br /&gt;
src/scripts/drop tables/bronzedragon.rs2&lt;br /&gt;
src/scripts/drop tables/cave_goblins.rs2&lt;br /&gt;
src/scripts/drop tables/chaos_druid.rs2&lt;br /&gt;
src/scripts/drop tables/chaos_druid_warrior.rs2&lt;br /&gt;
src/scripts/drop tables/chicken.rs2&lt;br /&gt;
src/scripts/drop tables/citizens.rs2&lt;br /&gt;
src/scripts/drop tables/cosmic_entity.rs2&lt;br /&gt;
src/scripts/drop tables/cow.rs2&lt;br /&gt;
src/scripts/drop tables/dagganoths.rs2&lt;br /&gt;
src/scripts/drop tables/dark_warrior.rs2&lt;br /&gt;
src/scripts/drop tables/deal_pirate_drops.rs2&lt;br /&gt;
src/scripts/drop tables/druid.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_chaos.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_mountain.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_normal.rs2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/floors/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/floors/overlay.flo&lt;br /&gt;
src/scripts/floors/underlay.flu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/skill_slayer/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/skill_slayer/kill_log.if3&lt;br /&gt;
src/scripts/skill_slayer/slayer.area&lt;br /&gt;
src/scripts/skill_slayer/slayer.constant&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/gargoyle_boss/config/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.constant&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.controller&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.npc&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.obj&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.varbit&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.varp&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.vars&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/grotesque_guardians.seq&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/slayer_tower_roof.loc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Known_File_Info&amp;diff=493</id>
		<title>Known File Info</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Known_File_Info&amp;diff=493"/>
		<updated>2024-07-28T14:23:00Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page was put together using publicly available information sourced from old OSRS livestreams and search engine results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;src/models/&amp;lt;/code&amp;gt; is used for skeletons, animations, and models.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;src/scripts/&amp;lt;/code&amp;gt; is used for configs, interfaces, and runescripts.&lt;br /&gt;
&lt;br /&gt;
===Licensed Tools===&lt;br /&gt;
Photoshop&lt;br /&gt;
&lt;br /&gt;
3ds Max / Maya&lt;br /&gt;
&lt;br /&gt;
ZBrush&lt;br /&gt;
&lt;br /&gt;
===Internal Tools===&lt;br /&gt;
ScriptEd - Script/config editor&lt;br /&gt;
&lt;br /&gt;
MapEd - Map editor&lt;br /&gt;
&lt;br /&gt;
IconEd - Item sprite editor&lt;br /&gt;
&lt;br /&gt;
JagEd - Model editor&lt;br /&gt;
&lt;br /&gt;
JagFx - Sound editor&lt;br /&gt;
&lt;br /&gt;
Interface Editor&lt;br /&gt;
&lt;br /&gt;
Patch Editor (Music)&lt;br /&gt;
&lt;br /&gt;
Sample Loop Editor (Music)&lt;br /&gt;
&lt;br /&gt;
===Web Services===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
account-creation&lt;br /&gt;
account-creation-reports&lt;br /&gt;
account-association&lt;br /&gt;
accountappeal&lt;br /&gt;
adventurers-log&lt;br /&gt;
adventurers-log-updater&lt;br /&gt;
auth-reports&lt;br /&gt;
authentication-server&lt;br /&gt;
avatar-rs&lt;br /&gt;
beta-clanserver&lt;br /&gt;
beta-gamelogclienterror&lt;br /&gt;
beta-save-converter&lt;br /&gt;
beta-stockmarket&lt;br /&gt;
beta-usergame&lt;br /&gt;
billing-antifraud&lt;br /&gt;
billing-blackhawk&lt;br /&gt;
billing-boku&lt;br /&gt;
billing-bonds&lt;br /&gt;
billing-incomm&lt;br /&gt;
billing-paypal&lt;br /&gt;
billing-scstaff&lt;br /&gt;
billing-supersonic&lt;br /&gt;
billing-voucher&lt;br /&gt;
billing_amazonddd&lt;br /&gt;
billing_axeso&lt;br /&gt;
billing_ayden&lt;br /&gt;
billing_contact&lt;br /&gt;
billing_core&lt;br /&gt;
billing_derived&lt;br /&gt;
billing_iris_bridge&lt;br /&gt;
billing_jcoins&lt;br /&gt;
billing_membership&lt;br /&gt;
billing_realtime&lt;br /&gt;
billing_uol&lt;br /&gt;
billproxy&lt;br /&gt;
bugtracker-pw&lt;br /&gt;
caseload&lt;br /&gt;
clan-forum&lt;br /&gt;
clan-hiscores&lt;br /&gt;
clan-home&lt;br /&gt;
clan-reports&lt;br /&gt;
clanloginserver&lt;br /&gt;
clanloginserver_oldscape&lt;br /&gt;
clanserver&lt;br /&gt;
clanserver_oldscape&lt;br /&gt;
comment&lt;br /&gt;
commercial-crm&lt;br /&gt;
config-manager&lt;br /&gt;
configviewer&lt;br /&gt;
crscore&lt;br /&gt;
displaynames&lt;br /&gt;
dob&lt;br /&gt;
dodgymark&lt;br /&gt;
email-register&lt;br /&gt;
email-send&lt;br /&gt;
feature-signup&lt;br /&gt;
forum&lt;br /&gt;
forum_de&lt;br /&gt;
forum_fr&lt;br /&gt;
forum_pt&lt;br /&gt;
forum-escalations&lt;br /&gt;
friend-referral&lt;br /&gt;
friendloader&lt;br /&gt;
friendserver&lt;br /&gt;
fulfilment_gateway&lt;br /&gt;
gamelogclienterror&lt;br /&gt;
gamelogevent&lt;br /&gt;
gamelogeventflume&lt;br /&gt;
gamelogsession&lt;br /&gt;
gamelogsession_sa&lt;br /&gt;
gamelogspecs&lt;br /&gt;
gamelogtrade&lt;br /&gt;
gamelogtrade_oldschool&lt;br /&gt;
gamenote&lt;br /&gt;
global-variables-rt5&lt;br /&gt;
grouping-system&lt;br /&gt;
hijackscore_sa&lt;br /&gt;
hiscore&lt;br /&gt;
hiscore_ironman&lt;br /&gt;
hiscore_hardcore_ironman&lt;br /&gt;
hiscore_oldschool&lt;br /&gt;
hiscore_oldschool_ironman&lt;br /&gt;
hiscore_oldschool_hardmore_ironman&lt;br /&gt;
hiscore_oldschool_ultimate&lt;br /&gt;
hiscore_oldschool_deadman&lt;br /&gt;
hiscore_oldschool_seasonal&lt;br /&gt;
hiscore_oldschool_tournament&lt;br /&gt;
icuq&lt;br /&gt;
identity_service&lt;br /&gt;
instance-manager&lt;br /&gt;
iplog&lt;br /&gt;
iplogip&lt;br /&gt;
iploguid&lt;br /&gt;
iploguser&lt;br /&gt;
iplogusergame&lt;br /&gt;
iplogweblogin&lt;br /&gt;
item-grant&lt;br /&gt;
itemcodes&lt;br /&gt;
itemdb_oldschool&lt;br /&gt;
itemdb_rs&lt;br /&gt;
launcher-v4-bridge&lt;br /&gt;
lock&lt;br /&gt;
loginserver&lt;br /&gt;
loyalty-points&lt;br /&gt;
main&lt;br /&gt;
metric-collection&lt;br /&gt;
mtxn_config&lt;br /&gt;
mtxn_rs_shop&lt;br /&gt;
mtxn_sync_shop&lt;br /&gt;
namecache&lt;br /&gt;
news&lt;br /&gt;
offence-appeal&lt;br /&gt;
offence-derived-effects&lt;br /&gt;
offence-mute-receiver&lt;br /&gt;
offence-receiver&lt;br /&gt;
offence-viewer&lt;br /&gt;
oldschool_gim_hiscores&lt;br /&gt;
oldschool_hardcore_gim_hiscores&lt;br /&gt;
password_history&lt;br /&gt;
platform&lt;br /&gt;
player-categorisation&lt;br /&gt;
playerwatch&lt;br /&gt;
pmod&lt;br /&gt;
poll&lt;br /&gt;
profile-editor&lt;br /&gt;
prp&lt;br /&gt;
pvpkills&lt;br /&gt;
recovery_questions&lt;br /&gt;
rs2-broadcast&lt;br /&gt;
sn-integration&lt;br /&gt;
snapshot-incoming&lt;br /&gt;
snapshot-scheduler&lt;br /&gt;
snapshot2-core&lt;br /&gt;
sportal&lt;br /&gt;
sso-store&lt;br /&gt;
staff_admin&lt;br /&gt;
stockmarket&lt;br /&gt;
stockmarket_oldschool&lt;br /&gt;
stockmarket_oldschool_deadman&lt;br /&gt;
stockmarket_oldschool_seasonal&lt;br /&gt;
stockmarket_oldschool_tournament&lt;br /&gt;
telemetry-ingress&lt;br /&gt;
temp-hiscores&lt;br /&gt;
ticketing&lt;br /&gt;
totp-authenticator&lt;br /&gt;
translate-de&lt;br /&gt;
translate-fr&lt;br /&gt;
translate-pt&lt;br /&gt;
trial-membership&lt;br /&gt;
twitter-bot&lt;br /&gt;
uid-passport&lt;br /&gt;
username&lt;br /&gt;
weblogin&lt;br /&gt;
website-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Data Extensions===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.base:&lt;br /&gt;
File Explorer description is &amp;quot;Animation template file&amp;quot;&lt;br /&gt;
This file represents animation skeletons and possibly some other metadata.&lt;br /&gt;
&lt;br /&gt;
.anim:&lt;br /&gt;
Animation frames. This gets applied to a skeleton + model.&lt;br /&gt;
&lt;br /&gt;
.jgd:&lt;br /&gt;
File Explorer description is &amp;quot;JGD text file&amp;quot;&lt;br /&gt;
This file is used in Jaged Mesh Editor (Jaged = &amp;quot;Jagex Editor&amp;quot;) as an intermediary format before packing to ob3.&lt;br /&gt;
&lt;br /&gt;
.ob3:&lt;br /&gt;
File Explorer description is &amp;quot;Jagex model file&amp;quot;&lt;br /&gt;
Current model format.&lt;br /&gt;
&lt;br /&gt;
.ob2:&lt;br /&gt;
Legacy model format, seen on models from 2007 and before.&lt;br /&gt;
&lt;br /&gt;
.jm2:&lt;br /&gt;
Internal map format e.g. &amp;quot;m50_50.jm2&amp;quot;&lt;br /&gt;
May stand for Jagex Map 2?&lt;br /&gt;
&lt;br /&gt;
.synth:&lt;br /&gt;
Synthesized sound effects.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Config Extensions===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.area&lt;br /&gt;
&lt;br /&gt;
.constant / .macro&lt;br /&gt;
&lt;br /&gt;
.cs2:&lt;br /&gt;
ClientScript&lt;br /&gt;
&lt;br /&gt;
.enum:&lt;br /&gt;
Enumerations&lt;br /&gt;
&lt;br /&gt;
.flo:&lt;br /&gt;
Floor overlay&lt;br /&gt;
&lt;br /&gt;
.flu:&lt;br /&gt;
Floor underlay&lt;br /&gt;
&lt;br /&gt;
.headbar&lt;br /&gt;
&lt;br /&gt;
.hitmark&lt;br /&gt;
&lt;br /&gt;
.hunt:&lt;br /&gt;
Hunt mode&lt;br /&gt;
&lt;br /&gt;
.idk:&lt;br /&gt;
Identity kit (player models)&lt;br /&gt;
&lt;br /&gt;
.inv:&lt;br /&gt;
Inventory&lt;br /&gt;
&lt;br /&gt;
.loc:&lt;br /&gt;
Location&lt;br /&gt;
&lt;br /&gt;
.npc:&lt;br /&gt;
Npc&lt;br /&gt;
&lt;br /&gt;
.obj:&lt;br /&gt;
Object&lt;br /&gt;
&lt;br /&gt;
.param:&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
.rs2:&lt;br /&gt;
RuneScript&lt;br /&gt;
&lt;br /&gt;
.seq:&lt;br /&gt;
Sequence&lt;br /&gt;
&lt;br /&gt;
.spotanim:&lt;br /&gt;
Spot animation&lt;br /&gt;
&lt;br /&gt;
.varp:&lt;br /&gt;
Player variables&lt;br /&gt;
&lt;br /&gt;
.varbit:&lt;br /&gt;
Player bit variables&lt;br /&gt;
&lt;br /&gt;
.varn:&lt;br /&gt;
Npc variables&lt;br /&gt;
&lt;br /&gt;
.varnbit:&lt;br /&gt;
Npc bit variables&lt;br /&gt;
&lt;br /&gt;
.vars:&lt;br /&gt;
Shared (world) variables&lt;br /&gt;
&lt;br /&gt;
.varsbit:&lt;br /&gt;
Shared (world) bit variables. Not sure that this exists.&lt;br /&gt;
&lt;br /&gt;
.varobj:&lt;br /&gt;
Object variables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Config Counts===&lt;br /&gt;
varbit was added before/with 254.&lt;br /&gt;
&lt;br /&gt;
mes, mesanim, and param were added before/with 274.&lt;br /&gt;
hunt was included with the 274-289 caches but contained no entries.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Revision&lt;br /&gt;
!flo&lt;br /&gt;
!idk&lt;br /&gt;
!loc&lt;br /&gt;
!npc&lt;br /&gt;
!obj&lt;br /&gt;
!seq&lt;br /&gt;
!spotanim&lt;br /&gt;
!varp&lt;br /&gt;
!mes&lt;br /&gt;
!mesanim&lt;br /&gt;
!param&lt;br /&gt;
!varbit&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|75&lt;br /&gt;
|72&lt;br /&gt;
|2976&lt;br /&gt;
|881&lt;br /&gt;
|1408&lt;br /&gt;
|760&lt;br /&gt;
|151&lt;br /&gt;
|288&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|2995&lt;br /&gt;
|941&lt;br /&gt;
|2481&lt;br /&gt;
|914&lt;br /&gt;
|238&lt;br /&gt;
|281&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|3371&lt;br /&gt;
|1008&lt;br /&gt;
|2859&lt;br /&gt;
|1007&lt;br /&gt;
|240&lt;br /&gt;
|293&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|3387&lt;br /&gt;
|1017&lt;br /&gt;
|2886&lt;br /&gt;
|1027&lt;br /&gt;
|244&lt;br /&gt;
|295&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|101&lt;br /&gt;
|82&lt;br /&gt;
|3855&lt;br /&gt;
|1162&lt;br /&gt;
|3142&lt;br /&gt;
|1191&lt;br /&gt;
|282&lt;br /&gt;
|320&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|103&lt;br /&gt;
|82&lt;br /&gt;
|4671&lt;br /&gt;
|1359&lt;br /&gt;
|3894&lt;br /&gt;
|1363&lt;br /&gt;
|301&lt;br /&gt;
|359&lt;br /&gt;
|4&lt;br /&gt;
|18&lt;br /&gt;
|45&lt;br /&gt;
|71&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|103&lt;br /&gt;
|82&lt;br /&gt;
|5116&lt;br /&gt;
|1596&lt;br /&gt;
|4089&lt;br /&gt;
|1504&lt;br /&gt;
|324&lt;br /&gt;
|394&lt;br /&gt;
|4&lt;br /&gt;
|18&lt;br /&gt;
|54&lt;br /&gt;
|179&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|116&lt;br /&gt;
|82&lt;br /&gt;
|5836&lt;br /&gt;
|1805&lt;br /&gt;
|4484&lt;br /&gt;
|1756&lt;br /&gt;
|342&lt;br /&gt;
|423&lt;br /&gt;
|7&lt;br /&gt;
|18&lt;br /&gt;
|63&lt;br /&gt;
|260&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|116&lt;br /&gt;
|82&lt;br /&gt;
|5836&lt;br /&gt;
|1805&lt;br /&gt;
|4484&lt;br /&gt;
|1756&lt;br /&gt;
|342&lt;br /&gt;
|423&lt;br /&gt;
|7&lt;br /&gt;
|18&lt;br /&gt;
|63&lt;br /&gt;
|260&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|118&lt;br /&gt;
|82&lt;br /&gt;
|6628&lt;br /&gt;
|1978&lt;br /&gt;
|4677&lt;br /&gt;
|1990&lt;br /&gt;
|393&lt;br /&gt;
|444&lt;br /&gt;
|8&lt;br /&gt;
|19&lt;br /&gt;
|73&lt;br /&gt;
|397&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|122&lt;br /&gt;
|84&lt;br /&gt;
|7199&lt;br /&gt;
|2266&lt;br /&gt;
|5553&lt;br /&gt;
|2195&lt;br /&gt;
|408&lt;br /&gt;
|493&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|627&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|125&lt;br /&gt;
|84&lt;br /&gt;
|7389&lt;br /&gt;
|2291&lt;br /&gt;
|5614&lt;br /&gt;
|2260&lt;br /&gt;
|409&lt;br /&gt;
|499&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|693&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|126&lt;br /&gt;
|84&lt;br /&gt;
|7397&lt;br /&gt;
|2304&lt;br /&gt;
|5615&lt;br /&gt;
|2267&lt;br /&gt;
|410&lt;br /&gt;
|500&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|693&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9006&lt;br /&gt;
|2483&lt;br /&gt;
|6211&lt;br /&gt;
|2380&lt;br /&gt;
|427&lt;br /&gt;
|532&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|885&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9159&lt;br /&gt;
|2580&lt;br /&gt;
|6453&lt;br /&gt;
|2564&lt;br /&gt;
|436&lt;br /&gt;
|552&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|961&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9293&lt;br /&gt;
|2591&lt;br /&gt;
|6512&lt;br /&gt;
|2581&lt;br /&gt;
|436&lt;br /&gt;
|556&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|994&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9399&lt;br /&gt;
|2633&lt;br /&gt;
|6541&lt;br /&gt;
|2662&lt;br /&gt;
|452&lt;br /&gt;
|566&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1016&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|129&lt;br /&gt;
|84&lt;br /&gt;
|9744&lt;br /&gt;
|2734&lt;br /&gt;
|6562&lt;br /&gt;
|2715&lt;br /&gt;
|452&lt;br /&gt;
|571&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1051&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|129&lt;br /&gt;
|84&lt;br /&gt;
|9746&lt;br /&gt;
|2747&lt;br /&gt;
|6587&lt;br /&gt;
|2720&lt;br /&gt;
|454&lt;br /&gt;
|571&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1051&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|133&lt;br /&gt;
|84&lt;br /&gt;
|10042&lt;br /&gt;
|2790&lt;br /&gt;
|6654&lt;br /&gt;
|2750&lt;br /&gt;
|456&lt;br /&gt;
|595&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1332&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|133&lt;br /&gt;
|84&lt;br /&gt;
|10285&lt;br /&gt;
|2941&lt;br /&gt;
|6766&lt;br /&gt;
|2894&lt;br /&gt;
|484&lt;br /&gt;
|606&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1395&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11196&lt;br /&gt;
|3153&lt;br /&gt;
|7005&lt;br /&gt;
|3108&lt;br /&gt;
|541&lt;br /&gt;
|644&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1621&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11998&lt;br /&gt;
|3299&lt;br /&gt;
|7408&lt;br /&gt;
|3246&lt;br /&gt;
|568&lt;br /&gt;
|671&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1803&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|12131&lt;br /&gt;
|3323&lt;br /&gt;
|7412&lt;br /&gt;
|3280&lt;br /&gt;
|570&lt;br /&gt;
|673&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1838&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|12734&lt;br /&gt;
|3509&lt;br /&gt;
|7620&lt;br /&gt;
|3547&lt;br /&gt;
|604&lt;br /&gt;
|700&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1954&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|12734&lt;br /&gt;
|3509&lt;br /&gt;
|7620&lt;br /&gt;
|3547&lt;br /&gt;
|604&lt;br /&gt;
|700&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1954&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|13005&lt;br /&gt;
|3580&lt;br /&gt;
|7671&lt;br /&gt;
|3573&lt;br /&gt;
|610&lt;br /&gt;
|709&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2010&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|13874&lt;br /&gt;
|3636&lt;br /&gt;
|7804&lt;br /&gt;
|3804&lt;br /&gt;
|630&lt;br /&gt;
|709&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2010&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14004&lt;br /&gt;
|3670&lt;br /&gt;
|7810&lt;br /&gt;
|3840&lt;br /&gt;
|642&lt;br /&gt;
|714&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2043&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14210&lt;br /&gt;
|3727&lt;br /&gt;
|7934&lt;br /&gt;
|3878&lt;br /&gt;
|646&lt;br /&gt;
|718&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2086&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14416&lt;br /&gt;
|3803&lt;br /&gt;
|7939&lt;br /&gt;
|3940&lt;br /&gt;
|659&lt;br /&gt;
|721&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2092&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14882&lt;br /&gt;
|3820&lt;br /&gt;
|7941&lt;br /&gt;
|3970&lt;br /&gt;
|662&lt;br /&gt;
|723&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2098&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14974&lt;br /&gt;
|3852&lt;br /&gt;
|7956&lt;br /&gt;
|3997&lt;br /&gt;
|666&lt;br /&gt;
|725&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2113&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
Game features are broken up into folders (organization arbitrarily chosen by the dev working on it).&lt;br /&gt;
&lt;br /&gt;
Configs and scripts are loaded recursively from every folder inside src/scripts.&lt;br /&gt;
&lt;br /&gt;
Models and animations are exposed to configs by their filename minus extension inside src/models.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;packing order&amp;quot; (client-facing IDs) are sequentially incremented any time a new file/config is detected. Occasionally, this packing order is reset. For example, NPCs may not be in the same order from one revision to another. It just forces the client to redownload those cache archives.&lt;br /&gt;
&lt;br /&gt;
Configs are structured pretty similarly to ini (not a true parser) where sections start with [] and contain key=value pairs:&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
// would be in something like example.npc&lt;br /&gt;
&lt;br /&gt;
[example_npc]&lt;br /&gt;
name=Example NPC&lt;br /&gt;
desc=Showing off a NPC config!&lt;br /&gt;
model1=man_head_bald&lt;br /&gt;
model2=man_jaw_moustache&lt;br /&gt;
&lt;br /&gt;
// would be in something like example.obj&lt;br /&gt;
&lt;br /&gt;
[example_obj]&lt;br /&gt;
name=Example Object&lt;br /&gt;
desc=Now showing off an Obj config!&lt;br /&gt;
model=inv_example_object&lt;br /&gt;
2dzoom=780&lt;br /&gt;
2dxof=-3&lt;br /&gt;
2dyof=-3&lt;br /&gt;
2dxan=432&lt;br /&gt;
2dyan=104&lt;br /&gt;
members=yes&lt;br /&gt;
&lt;br /&gt;
// would be in something like example.loc&lt;br /&gt;
&lt;br /&gt;
[example_loc]&lt;br /&gt;
name=Example Location&lt;br /&gt;
desc=Now showing off a Loc config!&lt;br /&gt;
// example_door would have multiple file names like example_door_0.ob2, example_door_Q.ob2&lt;br /&gt;
model=example_door&lt;br /&gt;
active=yes&lt;br /&gt;
recol1s=2&lt;br /&gt;
recol1d=0&lt;br /&gt;
recol2s=24&lt;br /&gt;
recol2d=4762&lt;br /&gt;
op1=Open&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;These configs would then be exposed to runescript and be given client-facing IDs when packing. The server scripts don't need to explicitly know any IDs because they get converted by the engine based on the packing order.&lt;br /&gt;
&lt;br /&gt;
===Folders===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pack/ - OSRS&lt;br /&gt;
&lt;br /&gt;
packconversion/ - RS3&lt;br /&gt;
&lt;br /&gt;
src/&lt;br /&gt;
src/animations/ - RS3&lt;br /&gt;
src/billboards/ - RS3&lt;br /&gt;
src/binary/&lt;br /&gt;
src/defaults/ - OSRS&lt;br /&gt;
src/interfaces/&lt;br /&gt;
src/maps/&lt;br /&gt;
src/maps/worldmap/&lt;br /&gt;
src/materials/ - RS3&lt;br /&gt;
src/mediastreams/ - RS3&lt;br /&gt;
src/models/&lt;br /&gt;
src/models/agility_shortcuts/&lt;br /&gt;
src/models/area_abyssal_space/&lt;br /&gt;
src/models/area_aide/&lt;br /&gt;
src/models/area_brimhaven_dungeon/&lt;br /&gt;
src/models/area_clanwars/&lt;br /&gt;
src/models/area_dagganoth_dungeon/&lt;br /&gt;
src/models/area_dorgesh/&lt;br /&gt;
src/models/area_falador/&lt;br /&gt;
src/models/area_fossil/&lt;br /&gt;
src/models/area_fossil/fossil_underwater/&lt;br /&gt;
src/models/area_fremennik/&lt;br /&gt;
src/models/area_goblin_caves/&lt;br /&gt;
src/models/area_godwars/&lt;br /&gt;
src/models/area_grand_exchange/&lt;br /&gt;
src/models/area_harmless/&lt;br /&gt;
src/models/area_hellhound_lair/&lt;br /&gt;
src/models/area_ice/&lt;br /&gt;
src/models/area_mage_arena/&lt;br /&gt;
src/models/area_mor_ul_rek/&lt;br /&gt;
src/models/area_nexus/&lt;br /&gt;
src/models/area_rimmington/&lt;br /&gt;
src/models/area_rogues_den/&lt;br /&gt;
src/models/area_sanguine/&lt;br /&gt;
src/models/area_sos/&lt;br /&gt;
src/models/area_tasks/&lt;br /&gt;
src/models/area_tbow_cleanup/&lt;br /&gt;
src/models/area_vm/&lt;br /&gt;
src/models/area_warguild/&lt;br /&gt;
src/models/area_wilderness/&lt;br /&gt;
src/models/area_zeah/&lt;br /&gt;
src/models/bounty_hunter/&lt;br /&gt;
src/models/canoeing/&lt;br /&gt;
src/models/chathead/&lt;br /&gt;
src/models/deadman/&lt;br /&gt;
src/models/game_agilityarena/&lt;br /&gt;
src/models/game_agilitypyramid/&lt;br /&gt;
src/models/game_aluft_aloft/&lt;br /&gt;
src/models/game_barbassault/&lt;br /&gt;
src/models/game_barrows/&lt;br /&gt;
src/models/game_battle_royale/&lt;br /&gt;
src/models/game_blast_furnace/&lt;br /&gt;
src/models/game_boardgames/&lt;br /&gt;
src/models/game_brew/&lt;br /&gt;
src/models/game_castlewars/&lt;br /&gt;
src/models/game_cba/&lt;br /&gt;
src/models/game_champion/&lt;br /&gt;
src/models/game_clanwars/&lt;br /&gt;
src/models/game_ii/&lt;br /&gt;
src/models/game_mole/&lt;br /&gt;
src/models/game_ntk/&lt;br /&gt;
src/models/game_pest/&lt;br /&gt;
src/models/game_templetrek/&lt;br /&gt;
src/models/game_templetrek_2/&lt;br /&gt;
src/models/game_tob/&lt;br /&gt;
src/models/game_tog/&lt;br /&gt;
src/models/game_trail/&lt;br /&gt;
src/models/game_trick_or_treat/&lt;br /&gt;
src/models/game_tzhaar/&lt;br /&gt;
src/models/game_werewolfagility/&lt;br /&gt;
src/models/holiday_events/&lt;br /&gt;
src/models/human/&lt;br /&gt;
src/models/human/anim/&lt;br /&gt;
src/models/human/anim/100_guide/&lt;br /&gt;
src/models/human/anim/100_james/&lt;br /&gt;
src/models/human/anim/100_op/&lt;br /&gt;
src/models/human/anim/100_pirate/&lt;br /&gt;
src/models/human/anim/100_sir/&lt;br /&gt;
src/models/human/anim/action - common/&lt;br /&gt;
src/models/human/anim/action - rare/&lt;br /&gt;
src/models/human/anim/agility_shortcuts/&lt;br /&gt;
src/models/human/anim/aluft_aloft/&lt;br /&gt;
src/models/human/anim/area_abyssal/&lt;br /&gt;
src/models/human/anim/area_aide/&lt;br /&gt;
src/models/human/anim/area_dorgesh/&lt;br /&gt;
src/models/human/anim/area_fossil/&lt;br /&gt;
src/models/human/anim/area_fremmenik/&lt;br /&gt;
src/models/human/anim/area_goblin_caves/&lt;br /&gt;
src/models/human/anim/area_godwars/&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/&lt;br /&gt;
src/models/human/anim/area_harmless/&lt;br /&gt;
src/models/human/anim/area_hellhound_lair_anim/&lt;br /&gt;
src/models/human/anim/area_keldagrim/&lt;br /&gt;
src/models/human/anim/area_roguesden/&lt;br /&gt;
src/models/human/anim/area_sos/&lt;br /&gt;
src/models/human/anim/area_tbow_cleanup/ [blurry]&lt;br /&gt;
src/models/human/anim/area_tzhaarcaves/&lt;br /&gt;
src/models/human/anim/area_zeah/&lt;br /&gt;
src/models/human/anim/area_zeah/dclaws_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/&lt;br /&gt;
src/models/human/anim/area_zeah/dsword_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dtaxe_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dtknives_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/elder_maul/&lt;br /&gt;
src/models/human/anim/basic + tutorial/&lt;br /&gt;
src/models/human/anim/black_knights_fortress/&lt;br /&gt;
src/models/human/anim/brain_robbery/&lt;br /&gt;
src/models/human/anim/burgh_anims/&lt;br /&gt;
src/models/human/anim/canoeing/&lt;br /&gt;
src/models/human/anim/cluefest/&lt;br /&gt;
src/models/human/anim/combat - free/&lt;br /&gt;
src/models/human/anim/combat - members/&lt;br /&gt;
src/models/human/anim/diary_teleports/&lt;br /&gt;
src/models/human/anim/dmm_anims/&lt;br /&gt;
src/models/human/anim/doric/&lt;br /&gt;
src/models/human/anim/dragon_tools/&lt;br /&gt;
src/models/human/anim/dragon_warhammer/&lt;br /&gt;
src/models/human/anim/drilldemon/&lt;br /&gt;
src/models/human/anim/ectophial_teleport/&lt;br /&gt;
src/models/human/anim/emote/&lt;br /&gt;
src/models/human/anim/fai_falador/&lt;br /&gt;
src/models/human/anim/fai_varrock/&lt;br /&gt;
src/models/human/anim/fishing_contest/&lt;br /&gt;
src/models/human/anim/game - agilityarena/&lt;br /&gt;
src/models/human/anim/game_agilitypyramid/&lt;br /&gt;
src/models/human/anim/game_barbassault/&lt;br /&gt;
src/models/human/anim/game_barrows/&lt;br /&gt;
src/models/human/anim/game_blast_furnace/&lt;br /&gt;
src/models/human/anim/game_boardgames/&lt;br /&gt;
src/models/human/anim/game_brew/&lt;br /&gt;
src/models/human/anim/game_castlewars/&lt;br /&gt;
src/models/human/anim/game_champion/&lt;br /&gt;
src/models/human/anim/game_clue_scroll/&lt;br /&gt;
src/models/human/anim/Game_ii/&lt;br /&gt;
src/models/human/anim/game_ntk/&lt;br /&gt;
src/models/human/anim/game_pest/&lt;br /&gt;
src/models/human/anim/game_templetrek/&lt;br /&gt;
src/models/human/anim/game_tob/&lt;br /&gt;
src/models/human/anim/game_tog/&lt;br /&gt;
src/models/human/anim/game_trial/&lt;br /&gt;
src/models/human/anim/ghoul/&lt;br /&gt;
src/models/human/anim/goblin_diplomacy/&lt;br /&gt;
src/models/human/anim/gravedigger_macro/&lt;br /&gt;
src/models/human/anim/holiday_events/&lt;br /&gt;
src/models/human/anim/horsey/&lt;br /&gt;
src/models/human/anim/macro_mind/&lt;br /&gt;
src/models/human/anim/macroevent/&lt;br /&gt;
src/models/human/anim/movement/&lt;br /&gt;
src/models/human/anim/magic - free/&lt;br /&gt;
src/models/human/anim/magic - members/&lt;br /&gt;
src/models/human/anim/magic_carpet/&lt;br /&gt;
src/models/human/anim/magictraining/&lt;br /&gt;
src/models/human/anim/max_cape/&lt;br /&gt;
src/models/human/anim/mud_skipper/&lt;br /&gt;
src/models/human/anim/necro_plant_res/&lt;br /&gt;
src/models/human/anim/necro_teleport/&lt;br /&gt;
src/models/human/anim/Npc_improvement/&lt;br /&gt;
src/models/human/anim/addskull/&lt;br /&gt;
src/models/human/anim/petrock/&lt;br /&gt;
src/models/human/anim/plague_city/&lt;br /&gt;
src/models/human/anim/poh/&lt;br /&gt;
src/models/human/anim/poh2/&lt;br /&gt;
src/models/human/anim/poh3/&lt;br /&gt;
src/models/human/anim/poh4/&lt;br /&gt;
src/models/human/anim/qp_cook/&lt;br /&gt;
src/models/human/anim/qp_demon_slayer/&lt;br /&gt;
src/models/human/anim/qp_digsite/&lt;br /&gt;
src/models/human/anim/qp_dragon_slayer/&lt;br /&gt;
src/models/human/anim/qp_dwarf_mcannon/&lt;br /&gt;
src/models/human/anim/qp_elem1/&lt;br /&gt;
src/models/human/anim/Qp_observatory/&lt;br /&gt;
src/models/human/anim/qp_quest_impcatcher/&lt;br /&gt;
src/models/human/anim/quest - deathplateau/&lt;br /&gt;
src/models/human/anim/quest - druidic_spirit/&lt;br /&gt;
src/models/human/anim/quest - regicide/&lt;br /&gt;
src/models/human/anim/quest_animal_magnitism/&lt;br /&gt;
src/models/human/anim/quest_burgh/&lt;br /&gt;
src/models/human/anim/quest_digsite/&lt;br /&gt;
src/models/human/anim/quest_dragon_slayer_2/&lt;br /&gt;
src/models/human/anim/quest_dragonslayer2/&lt;br /&gt;
src/models/human/anim/quest_legendarysword/&lt;br /&gt;
src/models/human/anim/quest_legendarysword2/&lt;br /&gt;
src/models/human/anim/quest_LOTR/&lt;br /&gt;
src/models/human/anim/quest_lunar/&lt;br /&gt;
src/models/human/anim/quest_mdaughter/&lt;br /&gt;
src/models/human/anim/quest_mm2/&lt;br /&gt;
src/models/human/anim/quest_myreque_4/&lt;br /&gt;
src/models/human/anim/quest_plaguecity/&lt;br /&gt;
src/models/human/anim/quest_ratcatcher/&lt;br /&gt;
src/models/human/anim/quest_summoning/&lt;br /&gt;
src/models/human/anim/quest_tbwt/&lt;br /&gt;
src/models/human/anim/quest_the_feud/&lt;br /&gt;
src/models/human/anim/quest_tourtrap/&lt;br /&gt;
src/models/human/anim/quest_tower_of_life/&lt;br /&gt;
src/models/human/anim/quest_troll_rescue/&lt;br /&gt;
src/models/human/anim/quest_trollromance/&lt;br /&gt;
src/models/human/anim/quest_twocats/&lt;br /&gt;
src/models/human/anim/quest_vampires/&lt;br /&gt;
src/models/human/anim/quest_vampireslayer/&lt;br /&gt;
src/models/human/anim/quest_vampirewarrior/&lt;br /&gt;
src/models/human/anim/quest_varock_museum/&lt;br /&gt;
src/models/human/anim/quest_viking/&lt;br /&gt;
src/models/human/anim/quest_wanted/&lt;br /&gt;
src/models/human/anim/quest_watchtower/&lt;br /&gt;
src/models/human/anim/quest_werewolf_agility_arena/&lt;br /&gt;
src/models/human/anim/quest_zogre/&lt;br /&gt;
src/models/human/anim/raids/&lt;br /&gt;
src/models/human/anim/romeo_juliet/&lt;br /&gt;
src/models/human/anim/rum_deal/&lt;br /&gt;
src/models/human/anim/sandwichlady/&lt;br /&gt;
src/models/human/anim/secret_ghosts/&lt;br /&gt;
src/models/human/anim/skill - free/&lt;br /&gt;
src/models/human/anim/skill - members/&lt;br /&gt;
src/models/human/anim/skill_brutal/&lt;br /&gt;
src/models/human/anim/skill_cooking/&lt;br /&gt;
src/models/human/anim/skill_crafting/&lt;br /&gt;
src/models/human/anim/skill_farming/&lt;br /&gt;
src/models/human/anim/skill_hunting/&lt;br /&gt;
src/models/human/anim/skill_ranging/&lt;br /&gt;
src/models/human/anim/skill_slayer/&lt;br /&gt;
src/models/human/anim/skill_slayer/&lt;br /&gt;
src/models/human/anim/skillcapes/&lt;br /&gt;
src/models/human/anim/skilling_anims/&lt;br /&gt;
src/models/human/anim/soulbane/&lt;br /&gt;
src/models/human/anim/suroks_revenge/&lt;br /&gt;
src/models/human/anim/town_crier/&lt;br /&gt;
src/models/human/anim/trans/&lt;br /&gt;
src/models/human/anim/trick_or_treat/&lt;br /&gt;
src/models/human/anim/warguild/&lt;br /&gt;
src/models/human/anim/wilderness_capes/&lt;br /&gt;
src/models/human/anim/zmi_altar/&lt;br /&gt;
src/models/human/man/&lt;br /&gt;
src/models/human/man/arms/&lt;br /&gt;
src/models/human/man/deadman_mode/&lt;br /&gt;
src/models/human/man/feet/&lt;br /&gt;
src/models/human/man/fullbody/&lt;br /&gt;
src/models/human/man/hands/&lt;br /&gt;
src/models/human/man/hat/&lt;br /&gt;
src/models/human/man/hat/hat_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/head/&lt;br /&gt;
src/models/human/man/head/2017_new_hair/&lt;br /&gt;
src/models/human/man/head/head_pvp_armours/&lt;br /&gt;
src/models/human/man/head/head_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/head/New Folder/&lt;br /&gt;
src/models/human/man/head/slayer/&lt;br /&gt;
src/models/human/man/headextra/&lt;br /&gt;
src/models/human/man/jaw/&lt;br /&gt;
src/models/human/man/legs/&lt;br /&gt;
src/models/human/man/necklaces/&lt;br /&gt;
src/models/human/man/torso/&lt;br /&gt;
src/models/human/man/torsoextra/ [capes]&lt;br /&gt;
src/models/human/man/torsoextra/cluescrolls/&lt;br /&gt;
src/models/human/man/torsoextra/torsoextra_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/wild_armour/&lt;br /&gt;
src/models/human/weapons/&lt;br /&gt;
src/models/human/weapons/fossil_agility_test/&lt;br /&gt;
src/models/human/weapons/poh_heraldic/&lt;br /&gt;
src/models/human/weapons/pvp_weapons/&lt;br /&gt;
src/models/human/weapons/raidsrewards/&lt;br /&gt;
src/models/human/weapons/weapons_treasure_trail_2016/&lt;br /&gt;
src/models/human/weaponsextra/&lt;br /&gt;
src/models/human/woman/&lt;br /&gt;
src/models/interface/&lt;br /&gt;
src/models/inv/&lt;br /&gt;
src/models/macroevents/&lt;br /&gt;
src/models/magic_carpet/&lt;br /&gt;
src/models/max_cape/&lt;br /&gt;
src/models/music_cape/&lt;br /&gt;
src/models/npc/&lt;br /&gt;
src/models/ogre_area/&lt;br /&gt;
src/models/opening_chests/&lt;br /&gt;
src/models/player_owned_house/&lt;br /&gt;
src/models/projectiles/&lt;br /&gt;
src/models/quest_afr/&lt;br /&gt;
src/models/quest_ahoy/&lt;br /&gt;
src/models/quest_animal_magnetism/&lt;br /&gt;
src/models/quest_augers_eye/&lt;br /&gt;
src/models/quest_black_knights_fortress/&lt;br /&gt;
src/models/quest_brain_robbery/&lt;br /&gt;
src/models/quest_burgh/&lt;br /&gt;
src/models/quest_contact/&lt;br /&gt;
src/models/quest_cook/&lt;br /&gt;
src/models/quest_death/&lt;br /&gt;
src/models/quest_demon_slayer_rework/&lt;br /&gt;
src/models/quest_deserttreasure/&lt;br /&gt;
src/models/quest_devious/&lt;br /&gt;
src/models/quest_digsite/&lt;br /&gt;
src/models/quest_dragon_slayer_qip/&lt;br /&gt;
src/models/quest_dragonslayer2/&lt;br /&gt;
src/models/Quest_dream_mentor/&lt;br /&gt;
src/models/quest_dtt_dorgeshuun/&lt;br /&gt;
src/models/quest_dwarf_rock/&lt;br /&gt;
src/models/quest_eadgar/&lt;br /&gt;
src/models/quest_easglepeak/&lt;br /&gt;
src/models/quest_elem2/&lt;br /&gt;
src/models/quest_elementalworkshop/&lt;br /&gt;
src/models/quest_elid/&lt;br /&gt;
src/models/quest_enakh/&lt;br /&gt;
src/models/quest_eye_of_glouphrie/&lt;br /&gt;
src/models/quest_fairy/&lt;br /&gt;
src/models/quest_fairytale2/&lt;br /&gt;
src/models/quest_fenkenstrain/&lt;br /&gt;
src/models/quest_fever/&lt;br /&gt;
src/models/quest_fishing_contest/&lt;br /&gt;
src/models/quest_forgettable/&lt;br /&gt;
src/models/quest_fourdiamonds/&lt;br /&gt;
src/models/quest_gertrudes_cat/&lt;br /&gt;
src/models/quest_goblin_diplomacy/&lt;br /&gt;
src/models/quest_golem/&lt;br /&gt;
src/models/quest_grim/&lt;br /&gt;
src/models/quest_handsand/&lt;br /&gt;
src/models/quest_hauntedmine/&lt;br /&gt;
src/models/quest_horror/&lt;br /&gt;
src/models/quest_hundred/&lt;br /&gt;
src/models/quest_icthalarins/&lt;br /&gt;
src/models/quest_impcatcher/&lt;br /&gt;
src/models/quest_kalphite/&lt;br /&gt;
src/models/quest_karam_dungeon/&lt;br /&gt;
src/models/quest_kings_randsom/&lt;br /&gt;
src/models/quest_led_zep/&lt;br /&gt;
src/models/quest_legendsword_2/&lt;br /&gt;
src/models/quest_LOTR/&lt;br /&gt;
src/models/quest_lovakengj/&lt;br /&gt;
src/models/quest_lunar/&lt;br /&gt;
src/models/quest_makinghistory/&lt;br /&gt;
src/models/quest_mcannon/&lt;br /&gt;
src/models/quest_mdaughter/&lt;br /&gt;
src/models/quest_misc/&lt;br /&gt;
src/models/quest_mm/&lt;br /&gt;
src/models/quest_mm2/&lt;br /&gt;
src/models/quest_mourning/&lt;br /&gt;
src/models/quest_murder_mystery/&lt;br /&gt;
src/models/quest_my2arm/&lt;br /&gt;
src/models/quest_myarm/&lt;br /&gt;
src/models/quest_myreque_pa [incomplete name]&lt;br /&gt;
src/models/quest_naturespirit/&lt;br /&gt;
src/models/quest_observatory/&lt;br /&gt;
src/models/quest_slug2/&lt;br /&gt;
src/models/quest_soulbane/&lt;br /&gt;
src/models/quest_summoning/&lt;br /&gt;
src/models/quest_suroks_revenge/&lt;br /&gt;
src/models/quest_swansong/&lt;br /&gt;
src/models/quest_tbwt/&lt;br /&gt;
src/models/quest_the_feud/&lt;br /&gt;
src/models/quest_tourtrap/&lt;br /&gt;
src/models/quest_tower_of_life/&lt;br /&gt;
src/models/quest_tranquility/&lt;br /&gt;
src/models/quest_troll/&lt;br /&gt;
src/models/quest_trollrescue/&lt;br /&gt;
src/models/quest_trollromance/&lt;br /&gt;
src/models/quest_twocats/&lt;br /&gt;
src/models/quest_vampires/&lt;br /&gt;
src/models/quest_vampirewarrior/&lt;br /&gt;
src/models/quest_viking/&lt;br /&gt;
src/models/quest_wanted/&lt;br /&gt;
src/models/quest_watchtower/&lt;br /&gt;
src/models/quest_zogre/&lt;br /&gt;
src/models/reward_darkbow/&lt;br /&gt;
src/models/scene/&lt;br /&gt;
src/models/skill_brutal/&lt;br /&gt;
src/models/skill_cooking/&lt;br /&gt;
src/models/skill_farming/&lt;br /&gt;
src/models/skill_fishing/&lt;br /&gt;
src/models/skill_hunting/&lt;br /&gt;
src/models/skill_lore/&lt;br /&gt;
src/models/skill_mining/&lt;br /&gt;
src/models/skill_ranging/&lt;br /&gt;
src/models/skill_slayer/&lt;br /&gt;
src/models/skill_slayer/interface/&lt;br /&gt;
src/models/skill_slayer/inventory/&lt;br /&gt;
src/models/skill_slayer/location/&lt;br /&gt;
src/models/skill_slayer/npc/&lt;br /&gt;
src/models/skill_slayer/npc/abyssal/&lt;br /&gt;
src/models/skill_slayer/npc/banshee/&lt;br /&gt;
src/models/skill_slayer/npc/basilisk/&lt;br /&gt;
src/models/skill_slayer/npc/bloodveld/&lt;br /&gt;
src/models/skill_slayer/npc/cave_crawler/&lt;br /&gt;
src/models/skill_slayer/npc/cockatrice/&lt;br /&gt;
src/models/skill_slayer/npc/crawling_hand/&lt;br /&gt;
src/models/skill_slayer/npc/demon/&lt;br /&gt;
src/models/skill_slayer/npc/dustdevil/&lt;br /&gt;
src/models/skill_slayer/npc/gargoyle/&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/grotesque_guardian_animations/&lt;br /&gt;
src/models/skill_slayer/npc/jelly/&lt;br /&gt;
src/models/skill_slayer/npc/killerwatt/&lt;br /&gt;
src/models/skill_slayer/npc/kursk/&lt;br /&gt;
src/models/skill_slayer/npc/pyrefiend/&lt;br /&gt;
src/models/skill_slayer/npc/rockslug/&lt;br /&gt;
src/models/skill_slayer/npc/screaming_banshee/&lt;br /&gt;
src/models/skill_slayer/npc/slayer_bugs/&lt;br /&gt;
src/models/skill_slayer/npc/slayer_lizard/&lt;br /&gt;
src/models/skill_slayer/npc/spectre/&lt;br /&gt;
src/models/skill_slayer/npc/turoth/&lt;br /&gt;
src/models/skill_slayer/npc/wyvern/&lt;br /&gt;
src/models/skill_slayer/npc/zygomite/&lt;br /&gt;
src/models/skill_slayer/projectiles/&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/&lt;br /&gt;
src/models/skill_slayer/spotanim/&lt;br /&gt;
src/models/skill_slayer/spotanims/&lt;br /&gt;
src/models/skill_woodcutting/&lt;br /&gt;
src/models/skillcapes/&lt;br /&gt;
src/models/spells/&lt;br /&gt;
src/models/town_crier/&lt;br /&gt;
src/models/transilvania_area/&lt;br /&gt;
src/models/update_shadow_maj/&lt;br /&gt;
src/models/zmi_altar/&lt;br /&gt;
src/particles/ - RS3&lt;br /&gt;
src/scripts/&lt;br /&gt;
src/scripts/areas/&lt;br /&gt;
src/scripts/areas/Area_Abyssal_space/&lt;br /&gt;
src/scripts/areas/area_aide/&lt;br /&gt;
src/scripts/areas/area_battlefield/&lt;br /&gt;
src/scripts/areas/area_dagganoth_dungeon/&lt;br /&gt;
src/scripts/areas/area_desert/&lt;br /&gt;
src/scripts/areas/area_dorgesh_kaan/&lt;br /&gt;
src/scripts/areas/area_fossil/&lt;br /&gt;
src/scripts/areas/area_fossil/config/&lt;br /&gt;
src/scripts/areas/area_fossil/script/&lt;br /&gt;
src/scripts/areas/area_gnome/&lt;br /&gt;
src/scripts/areas/area_goblin_caves/&lt;br /&gt;
src/scripts/areas/area_godwars_dungeon/&lt;br /&gt;
src/scripts/areas/Area_HAM_Fanatics/&lt;br /&gt;
src/scripts/areas/area_harmless/&lt;br /&gt;
src/scripts/areas/Area_karam_dungeon/&lt;br /&gt;
src/scripts/areas/area_keldagrim/&lt;br /&gt;
src/scripts/areas/area_mage_arena/&lt;br /&gt;
src/scripts/areas/area_nexus/&lt;br /&gt;
src/scripts/areas/area_rimmington/&lt;br /&gt;
src/scripts/areas/area_roguesden/&lt;br /&gt;
src/scripts/areas/area_sos/&lt;br /&gt;
src/scripts/areas/kebos/&lt;br /&gt;
src/scripts/areas/kebos/brimstone/&lt;br /&gt;
src/scripts/areas/monastery/&lt;br /&gt;
src/scripts/areas/Morytania/&lt;br /&gt;
src/scripts/areas/morytania_vampires/&lt;br /&gt;
src/scripts/areas/Werewolf_Village/&lt;br /&gt;
src/scripts/areas/zeah/&lt;br /&gt;
src/scripts/bonds/&lt;br /&gt;
src/scripts/clanchat/&lt;br /&gt;
src/scripts/deadman/&lt;br /&gt;
src/scripts/doors/&lt;br /&gt;
src/scripts/drop tables/&lt;br /&gt;
src/scripts/floors/&lt;br /&gt;
src/scripts/follower_cat/&lt;br /&gt;
src/scripts/general_follower/&lt;br /&gt;
src/scripts/general_use/&lt;br /&gt;
src/scripts/grand_exchange/&lt;br /&gt;
src/scripts/holiday_events/&lt;br /&gt;
src/scripts/interface_banks/&lt;br /&gt;
src/scripts/interface_boat/&lt;br /&gt;
src/scripts/interface_chat/&lt;br /&gt;
src/scripts/interface_chatsystem/&lt;br /&gt;
src/scripts/interface_map/&lt;br /&gt;
src/scripts/interface_options/&lt;br /&gt;
src/scripts/interface_polls/&lt;br /&gt;
src/scripts/interface_quest_journal/&lt;br /&gt;
src/scripts/interface_reportabuse/&lt;br /&gt;
src/scripts/interface_reusable_components/&lt;br /&gt;
src/scripts/interface_shops/&lt;br /&gt;
src/scripts/interface_skill_advance_guide_v2/&lt;br /&gt;
src/scripts/interface_skills/&lt;br /&gt;
src/scripts/interface_toplevel/&lt;br /&gt;
src/scripts/interface_trade/&lt;br /&gt;
src/scripts/interface_wear/&lt;br /&gt;
src/scripts/interface_welcomescreen/&lt;br /&gt;
src/scripts/interface_worldmap/&lt;br /&gt;
src/scripts/interface_worldswitcher/&lt;br /&gt;
src/scripts/ladders+stairs/&lt;br /&gt;
src/scripts/levelrequire/&lt;br /&gt;
src/scripts/macro events/&lt;br /&gt;
src/scripts/minigames/&lt;br /&gt;
src/scripts/minigames/game_nzone/&lt;br /&gt;
src/scripts/minigames/game_osman-sorceress/&lt;br /&gt;
src/scripts/minigames/game_partyroom/&lt;br /&gt;
src/scripts/minigames/game_pest/&lt;br /&gt;
src/scripts/minigames/game_pyramid_plunder/&lt;br /&gt;
src/scripts/minigames/game_tears_of_guthix/&lt;br /&gt;
src/scripts/minigames/game_temple_trek/&lt;br /&gt;
src/scripts/minigames/game_trail/&lt;br /&gt;
src/scripts/minigames/game_trawler/&lt;br /&gt;
src/scripts/minigames/grouping/&lt;br /&gt;
src/scripts/minigames/livestreams/&lt;br /&gt;
src/scripts/minigames/game_clanwars/&lt;br /&gt;
src/scripts/music/&lt;br /&gt;
src/scripts/npc/&lt;br /&gt;
src/scripts/objects/&lt;br /&gt;
src/scripts/player/&lt;br /&gt;
src/scripts/quests/&lt;br /&gt;
src/scripts/quests/quest_upass/&lt;br /&gt;
src/scripts/quests/quest_upass/upass_traps/&lt;br /&gt;
src/scripts/scenery/&lt;br /&gt;
src/scripts/skill_agility/&lt;br /&gt;
src/scripts/skill_brutal/&lt;br /&gt;
src/scripts/skill_combat/&lt;br /&gt;
src/scripts/skill_construction/&lt;br /&gt;
src/scripts/skill_cooking/&lt;br /&gt;
src/scripts/skill_crafting/&lt;br /&gt;
src/scripts/skill_farming/&lt;br /&gt;
src/scripts/skill_firemaking/&lt;br /&gt;
src/scripts/skill_fishing/&lt;br /&gt;
src/scripts/skill_fletching/&lt;br /&gt;
src/scripts/skill_general/&lt;br /&gt;
src/scripts/skill_herblore/&lt;br /&gt;
src/scripts/skill_hunting/&lt;br /&gt;
src/scripts/skill_magic/&lt;br /&gt;
src/scripts/skill_magic/Lunar Spells/&lt;br /&gt;
src/scripts/skill_magic/spell list/&lt;br /&gt;
src/scripts/skill_magic/Zaros Spells/&lt;br /&gt;
src/scripts/skill_mining/&lt;br /&gt;
src/scripts/skill_prayer/&lt;br /&gt;
src/scripts/skill_runecraft/&lt;br /&gt;
src/scripts/skill_slayer/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/script/&lt;br /&gt;
src/scripts/skill_slayer/location scripts/&lt;br /&gt;
src/scripts/skill_slayer/monster scripts/&lt;br /&gt;
src/scripts/skill_slayer/npcs/&lt;br /&gt;
src/scripts/skill_slayer/rewards/&lt;br /&gt;
src/scripts/skill_slayer/superior_slayer_encounters/&lt;br /&gt;
src/scripts/skill_slayer/Zygomites/&lt;br /&gt;
src/scripts/skill_smithing/&lt;br /&gt;
src/scripts/skill_thieving/&lt;br /&gt;
src/scripts/skill_woodcutting/&lt;br /&gt;
src/scripts/test_connor/&lt;br /&gt;
src/scripts/transportation/&lt;br /&gt;
src/scripts/tutorial/&lt;br /&gt;
src/scripts/warning_system/&lt;br /&gt;
src/skeletons/ - RS3&lt;br /&gt;
src/sounds/&lt;br /&gt;
src/sprites/&lt;br /&gt;
src/streaming/ - RS3&lt;br /&gt;
src/webscripts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/rs2_v4.engine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/maps/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/maps/keynames.txt&lt;br /&gt;
src/maps/labels_dungeon.txt&lt;br /&gt;
src/maps/labels_extra.txt&lt;br /&gt;
src/maps/labels_main.txt&lt;br /&gt;
[src/maps/*.jm2 e.g. m50_50.jm2 for Lumbridge]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/area_fossil/fossil_underwater/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_anchor1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_clam1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_2.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_3.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_5.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_2.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_5.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_top.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_godwars/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_death.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_ready.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_readyanim.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_armadyl.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_bandos.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_saradomin.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_zamorak.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_gong_hammer.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_player_move_boulder.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_player_move_bolder_south.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_saradomin_sword_attack.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_attack.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_death.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_defend.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_forward.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_ready.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_godwars/godwars_sword_update/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_armadyl_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_bandos_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_block.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_chop.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_defend.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_dragon_2H.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_ready.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_run.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_saradomin_god_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_saradomin_special.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_slash.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_smash.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_turnonspot.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk_left.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk_right.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_zamorak_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_run.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_turnonspot.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walk.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walkleft.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walkright.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_bash.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_block.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_crush.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_run.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_walk.anim&lt;br /&gt;
src/models/human/anim/area_zeah/human_dead_poses.anim&lt;br /&gt;
src/models/human/anim/area_zeah/ready_bulwark.anim&lt;br /&gt;
src/models/human/anim/area_zeah/ready_sheathed.anim&lt;br /&gt;
src/models/human/anim/area_zeah/xeric_pose.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/dclaws_spec/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/dclaws_spec/dclaws_human_spec.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/dhunter_lance/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/dhunter_lance_crush.anim&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/dhunter_lance_stab.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/basic + tutorial/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/basic + tutorial/cast_chargeorb.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/cast_teleport.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/closedoorl.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/closedoorr.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/cooking.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-block.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-def.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-hack.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-lunge.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/death.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_sword_ready.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_sword_run.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_word_walk.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/eat.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/fa_furnace.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/firecooking.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/furnace.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/lightfire.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/lobsterpot.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/milk.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update_looped.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update_wall_closer.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/newwalkleft.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/newwalkright.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoor.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoorl.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoorr.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/pickupfloor.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/pray.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/reachforladder.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ready.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/running.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/shield_defence.nim&lt;br /&gt;
src/models/human/anim/basic + tutorial/smithing.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/sword-block.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/sword-def.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/ds2_fleet_boat_paladin_steeringwheel.ob3&lt;br /&gt;
src/models/human/man/ds2_fleet_boat_whiteknight_steeringwheel.ob3&lt;br /&gt;
src/models/human/man/skill_slayer_npc_infernal_mage.ob3&lt;br /&gt;
src/models/human/man/tob_stranger.ob3&lt;br /&gt;
src/models/human/man/wildy_cave_revenant_knight.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/hat/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/hat/AncientsI_Mitre_Male.ob3&lt;br /&gt;
src/models/human/man/hat/Armadyl_Male_Mitre.ob3&lt;br /&gt;
src/models/human/man/hat/Bandos_Mitre_Male.ob3&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm1.ob2&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm2.ob2&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm3.ob2&lt;br /&gt;
src/models/human/man/hat/Cat_Mask_Male.ob3&lt;br /&gt;
src/models/human/man/hat/DragonMask_Male_Mask.ob3&lt;br /&gt;
src/models/human/man/hat/druidwreath_summerevent2014_man.ob3&lt;br /&gt;
src/models/human/man/hat/Explorers_Hat_Male.ob3&lt;br /&gt;
src/models/human/man/hat/game_pest_archer_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/game_pest_mage_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/grim_helm.ob2&lt;br /&gt;
src/models/human/man/hat/grim_stylus_hat.ob2&lt;br /&gt;
src/models/human/man/hat/gub_reindeer_hat_male.ob2&lt;br /&gt;
src/models/human/man/hat/guthix_halo_male.ob3&lt;br /&gt;
src/models/human/man/hat/hunter_pushorn_hat_man.ob2&lt;br /&gt;
src/models/human/man/hat/lavadragon_mask.ob3&lt;br /&gt;
src/models/human/man/hat/Leprechaun_Hat_Male.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_100_pirate_fishbowl.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_4th_bday.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_aide_fisher.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ancestral_hat.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_angler.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_arabian.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_drill.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_01.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_02.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_03.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_army.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_fighter.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_healer.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_ranger.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_runner.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel1.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel4.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel5.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrows_skeleton.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_battered_mining_helmet.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bee_keeper.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_beret_artist.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_berret.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_birdseye.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bounty_hunter.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_bounty_rogue.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_bowler.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_brew_tricorn.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bunnyears.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_butlers.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_cavalier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_cave_goblin_mining.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_gave_goblin_mining_unli.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_chef_poh.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_chefs.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_darkmage.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_darktrooper.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_doctors.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_drill_camoflage.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elem_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elf.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elfhat2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elfpriest.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_enviro_suit_helmet.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband1.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fedora.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fez.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fishing_contest.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fris_kinglyhat.ob2 [Helm of neitiznot]&lt;br /&gt;
src/models/human/man/hat/man_hat_fris_town_crier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_frisb_jester.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_frog_crown.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_cavalier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_[unable to transcribe].ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_sailor.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_wizard.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_glassblower.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_granite_helm.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_gravedigger_head.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_headband.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_hunting.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_jester.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lederhosen.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lumberjack_checker.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lunar_moonclan.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lunar_moonclan_headgear.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/head/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/head/Afro_Male.ob3&lt;br /&gt;
src/models/human/man/head/antisanta_head.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_elite_male.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_hard_male.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_medium_male.ob3&lt;br /&gt;
src/models/human/man/head/bh_trader.ob3&lt;br /&gt;
src/models/human/man/head/Bronze_Male_FullHelmet_trimmed_Trail.ob3&lt;br /&gt;
src/models/human/man/head/brut_ascending_spirit_hat.ob2&lt;br /&gt;
src/models/human/man/head/brut_ascending_spirit_head.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm1.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm2.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm3.ob2&lt;br /&gt;
src/models/human/man/head/brut_full_dragon_helm.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male1.ob3&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male2.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male3.ob3&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male4.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male5.ob2&lt;br /&gt;
src/models/human/man/head/child.ob2&lt;br /&gt;
src/models/human/man/head/contract_all_head.ob2&lt;br /&gt;
src/models/human/man/head/cwars_mage_heaed.ob3&lt;br /&gt;
src/models/human/man/head/deadman_head.ob3&lt;br /&gt;
src/models/human/man/head/dragon_slayer_qp_ghost_head_man.ob2&lt;br /&gt;
src/models/human/man/head/dragon_slayer_qp_ghost_head_man2.ob2&lt;br /&gt;
src/models/human/man/head/dream_helm.ob2&lt;br /&gt;
src/models/human/man/head/easter07_chicken_head.ob2&lt;br /&gt;
src/models/human/man/head/elder_druid_head.ob3&lt;br /&gt;
src/models/human/man/head/fai_varrock_afro.ob2&lt;br /&gt;
src/models/human/man/head/fight_arena_general_khazard_skull.ob2&lt;br /&gt;
src/models/human/man/head/fight_arena_general_khazard_helm.ob2&lt;br /&gt;
src/models/human/man/head/game_pest_melee_helm_male.ob2&lt;br /&gt;
src/models/human/man/head/GoblinManHead.ob3&lt;br /&gt;
src/models/human/man/head/godwars_armadyl_helmet_male.ob2&lt;br /&gt;
src/models/human/man/head/godwars_dying_paladin_head.ob2&lt;br /&gt;
src/models/human/man/head/godwars_knight_head.ob2&lt;br /&gt;
src/models/human/man/head/godwars_knight_head2.ob2&lt;br /&gt;
src/models/human/man/head/godwarsr_saradomin_wizard_head.ob2&lt;br /&gt;
src/models/human/man/head/graceful_hoods_male.ob3&lt;br /&gt;
src/models/human/man/head/hunter_pushorn_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hunter_sabretooth_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hunter_spikeride_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hw06_jack_o_lantern_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hw06_skel_cow_head.ob2&lt;br /&gt;
src/models/human/man/head/hw07_grim_head_male.ob2&lt;br /&gt;
src/models/human/man/head/hw15_gravedigger_head.ob3&lt;br /&gt;
src/models/human/man/head/ImpHat_Male.ob3&lt;br /&gt;
src/models/human/man/head/Iron_G_FullHelm_Male.ob3&lt;br /&gt;
src/models/human/man/head/Iron_T_fullHelm_male.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm_h.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm_u.ob3&lt;br /&gt;
src/models/human/man/head/jersey_collar_bald.ob2&lt;br /&gt;
src/models/human/man/head/keeperofkeys_head.ob3&lt;br /&gt;
src/models/human/man/head/lz_arthur_bronze_helm.ob2&lt;br /&gt;
src/models/human/man/head/lz_prosecutor_head.ob2&lt;br /&gt;
src/models/human/man/head/mac_head.ob3&lt;br /&gt;
src/models/human/man/head/Male_Bronze_T_Fullhelm.ob3&lt;br /&gt;
src/models/human/man/head/man_hat_mage_pizzaz.ob2&lt;br /&gt;
src/models/human/man/head/man_head_100_pirate_fishbowl.ob2&lt;br /&gt;
src/models/human/man/head/man_head_5oclock_shadow.ob2&lt;br /&gt;
src/models/human/man/head/man_head_anvas_headgear.ob3&lt;br /&gt;
src/models/human/man/head/man_head_arabian.ob2&lt;br /&gt;
src/models/human/man/head/man_head_arabian2.ob2&lt;br /&gt;
src/models/human/man/head/man_head_architect_hos.ob3&lt;br /&gt;
src/models/human/man/head/man_head_architect_pisc.ob3&lt;br /&gt;
src/models/human/man/head/man_head_baboon.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bald.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bald_fat.ob2&lt;br /&gt;
src/models/human/man/head/man_head_balder.ob2&lt;br /&gt;
src/models/human/man/head/man_head_banshee_mask.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbarian_chef.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barbarian_chief.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barbary_1.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_2.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_3.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_4.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barrow_dharok.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barrow_dharok_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_guthan.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_guthan_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_karil.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_torag.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_torag_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_verac.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bridgelum_consult.ob2&lt;br /&gt;
src/models/human/man/head/man_head_castlewars_hood.ob2&lt;br /&gt;
src/models/human/man/head/man_head_chaos_necro.ob3&lt;br /&gt;
src/models/human/man/head/man_head_clown_mask.ob3&lt;br /&gt;
src/models/human/man/head/man_head_coif.ob2&lt;br /&gt;
src/models/human/man/head/man_head_contact_sopanem_guard.ob2&lt;br /&gt;
src/models/human/man/head/man_head_crab_helmet.ob2&lt;br /&gt;
src/models/human/man/head/man_head_croc_ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_highlight.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_long.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_long_highlight.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/jaw/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/jaw/brut_ascending_spirit_jaw.ob2&lt;br /&gt;
src/models/human/man/jaw/keeperofkeys_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_5oclock_shadow.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian2_fakebeard.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbarian_beard.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbary_1.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbary_2.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_chaos_necro.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_dali_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_egyption.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_facemask.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_goaty.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_handlebar_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_king.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_medium.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache3.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache4_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_muttonchips_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_muttonfull_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_none.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_ragged_beard.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_santa.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short2_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_split.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_vampyre.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_vc_moustache.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_very_long_ragged.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_very_long_ragged_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_visser_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_waxed_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/Patchy_Beard.ob2&lt;br /&gt;
src/models/human/man/jaw/prospector_pete_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/qp_soa_jonny_the_beard_beard.ob2&lt;br /&gt;
src/models/human/man/jaw/qp_watchtower_wizard_very_long.ob2&lt;br /&gt;
src/models/human/man/jaw/slug2_mayor3.ob2&lt;br /&gt;
src/models/human/man/jaw/town_crier_beard.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/torsoextra/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/torsoextra/3acloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/AncientsI_Cloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_iron_man.ob2&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_steel_man.ob2&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_vorkath_man.ob3&lt;br /&gt;
src/models/human/man/torsoextra/Armadyl_MainCloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_easy_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_elite_main.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_hard_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_medium_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/Bandos_Cloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/championscloak_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/cwars_range_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/deadman_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/dragon_slayer_qp_oracle_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/dragon_slayer_qp_ozaich_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/Explorers_Backpack_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/fight_arena_general_khazard_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/fight_arena_general_khazard_giant.ob2&lt;br /&gt;
src/models/human/man/torsoextra/game_pest_teleport_badge.ob2&lt;br /&gt;
src/models/human/man/torsoextra/ghost_hat_back.ob2&lt;br /&gt;
src/models/human/man/torsoextra/godwars_knight_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/graceful_cape_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/keeperofkeys_sack.ob3&lt;br /&gt;
src/models/human/man/torsoextra/lotr_shylock_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/lunar_seal_of_passage.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books1.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books3.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books4.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books5.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_pirate_breathing_apparatus.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ancientsymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_apron.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_apron_qui_pocket.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_armadylsymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bandossymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_chest_rap.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_hairy_chet.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_shoulder_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_shoulder_pads_army.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_attacker_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_collector_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_defender_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_healer_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bards_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barrow_wraith_cloak2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barrows_skeleton_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bloodsplalts.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bloodsplats_notfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bone_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bone_sack_player_m.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buff_for_plate.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttons.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttons2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttonsfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttonsfat2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_camoflauge_robe.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_castlewars_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cheap_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_dwarf_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_elf_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_skeleton_armour.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_for_hood2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_for_hood2_no_head.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_of_darkness.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_plane.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_plain_sit_floor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_contact_menaphos_guards_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_contact_menaphos_guards_skirt.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier1_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier2_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier3_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier4_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier5_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_dark_wizard_decor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_dark_wizard_leg_decor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_darkelf_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_drilldemon_star.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_eagle_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_elfpriestdecor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_enviro_suit_tank.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_favour_ham_logo.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_favour_ham_logo_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fever_scars.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fever_stitches.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fire_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fire_cape_dummy.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fishsack.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fris_kinglycape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ghost_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ghost_sailor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_glassblower_apron.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_grain_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guard_shoulder_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guide_backpack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guidedecor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guthix_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guthixsymbol.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_herquin_pocket_watch.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_herquin_toolbelt.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_hoode.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_infernalcape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_infernalcape_dummy.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_invisible_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jacket.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jacketfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jester_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_lab_coat.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_laderhosen_straps.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_lon_for_platemail.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/weapons/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/weapons/3A_Bow_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/3A_Broadsword_MaleWeapon.ob3&lt;br /&gt;
src/models/human/weapons/3A_hatchet.ob3&lt;br /&gt;
src/models/human/weapons/3A_hatchet_woman.ob3&lt;br /&gt;
src/models/human/weapons/3A_pickaxe.ob3&lt;br /&gt;
src/models/human/weapons/3A_pickaxe_woman.ob3&lt;br /&gt;
src/models/human/weapons/3A_Wand_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/aaaaaaaa.ob3&lt;br /&gt;
src/models/human/weapons/abyssal_tentacle.ob3&lt;br /&gt;
src/models/human/weapons/amethyst_crafting.ob3&lt;br /&gt;
src/models/human/weapons/Ancientsl_Crozier_Male.ob3&lt;br /&gt;
src/models/human/weapons/anma_axe.ob2&lt;br /&gt;
src/models/human/weapons/anma_iron.ob2&lt;br /&gt;
src/models/human/weapons/anmasack_empty.ob2&lt;br /&gt;
src/models/human/weapons/anma_sack_full.ob2&lt;br /&gt;
src/models/human/weapons/arcane_shield.ob3&lt;br /&gt;
src/models/human/weapons/area_aide_kiteshield.ob2&lt;br /&gt;
src/models/human/weapons/Armadyl_Male_Crozier.ob3&lt;br /&gt;
src/models/human/weapons/ash_mug.ob3&lt;br /&gt;
src/models/human/weapons/Bandos_Crozier.ob3&lt;br /&gt;
src/models/human/weapons/barbarian_axe_for_man.ob2&lt;br /&gt;
src/models/human/weapons/bbbbbbbb.ob3&lt;br /&gt;
src/models/human/weapons/blessed_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/br_halberd.ob3&lt;br /&gt;
src/models/human/weapons/brain_anchor.ob2&lt;br /&gt;
src/models/human/weapons/brain_weapons_open_book.ob2&lt;br /&gt;
src/models/human/weapons/brain_ewapons_open_saradomin_book.ob2&lt;br /&gt;
src/models/human/weapons/Bronze_Male_Kiteshield_trimmed_Trail.ob3&lt;br /&gt;
src/models/human/weapons/brut_firemaking_daganoth_bow.ob2&lt;br /&gt;
src/models/human/weapons/brut_firemaking_longbow.ob2&lt;br /&gt;
src/models/human/weapons/brut_firemaking_shortbow.ob2&lt;br /&gt;
src/models/human/weapons/brut_fishing_rod.ob2&lt;br /&gt;
src/models/human/weapons/brut_net.ob2&lt;br /&gt;
src/models/human/weapons/brut_pspear.ob2&lt;br /&gt;
src/models/human/weapons/brut_shark.ob2&lt;br /&gt;
src/models/human/weapons/brut_spear.ob2&lt;br /&gt;
src/models/human/weapons/brut_swordfish.ob2&lt;br /&gt;
src/models/human/weapons/brut_tuna.ob2&lt;br /&gt;
src/models/human/weapons/Cane_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/chronicle_man.ob3&lt;br /&gt;
src/models/human/weapons/chronical_woman.ob3&lt;br /&gt;
src/models/human/weapons/contact_sophanem_spear.ob2&lt;br /&gt;
src/models/human/weapons/contact_sophanem_spear_woman.ob2&lt;br /&gt;
src/models/human/weapons/darkbow_darkbow.ob2&lt;br /&gt;
src/models/human/weapons/deadman_sword.ob3&lt;br /&gt;
src/models/human/weapons/dorgesh_whirly_scanner.ob2&lt;br /&gt;
src/models/human/weapons/Dragon_Cane.ob3&lt;br /&gt;
src/models/human/weapons/dragon_claws.ob3&lt;br /&gt;
src/models/human/weapons/dream_magic_shortbow.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_bunny.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_green.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_orange.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_yellow.ob2&lt;br /&gt;
src/models/human/weapons/eek_female.ob3&lt;br /&gt;
src/models/human/weapons/eek_male.ob3&lt;br /&gt;
src/models/human/weapons/elysian_shield.ob3&lt;br /&gt;
src/models/human/weapons/eyeglo_crystal_axe.ob2&lt;br /&gt;
src/models/human/weapons/fai_ikov_lucien_staff.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_broom_woman.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_shield.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_sword.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_wateringcan.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_halbard.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_half_bench.ob2&lt;br /&gt;
src/models/human/weapons/female_arcane_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_blessed_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_elysian_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_spectral_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/fight_arena_general_khazard_sword.ob2&lt;br /&gt;
src/models/human/weapons/fns_arctic_pine_log_lhand.ob2&lt;br /&gt;
src/models/human/weapons/fns_viking_axe.ob2&lt;br /&gt;
src/models/human/weapons/goblin_paint_cannon.ob3&lt;br /&gt;
src/models/human/weapons/godwars_armadyl_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_armadyl_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_bandos_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_bandos_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_knight_axe.ob2&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword.ob2&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_wizard_cane.ob2&lt;br /&gt;
src/models/human/weapons/godwars_water_trident_player.ob2&lt;br /&gt;
src/models/human/weapons/godwars_zamorak_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_zamokak_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_zamorak_spear_player.ob2&lt;br /&gt;
src/models/human/weapons/grim_potion_vial.ob2&lt;br /&gt;
src/models/human/weapons/grim_sylius_walking_stick.ob2&lt;br /&gt;
src/models/human/weapons/gub_xmas_2006_player_held_snowball.ob2&lt;br /&gt;
src/models/human/weapons/hand_scroll_teleport.ob3&lt;br /&gt;
src/models/human/weapons/heavy_ballista.ob3&lt;br /&gt;
src/models/human/weapons/hillgiant_club.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_100_brulee_pot.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_chair_mohogany.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_egg_whisk.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_frying_pan.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_kebab_skewer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_large_spatula.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_meat_cleaver.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_meat_tenderiser.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_rolling_pin.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_spork.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_sushi_knife.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_wooden_spoon.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100guide_egg_bottom.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_dagger.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_dagger_p.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_whip.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aide_stick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aide_woodsman_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aivas_crossbow.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_axe_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_mace_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_spear_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_sword_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_antidragonshield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_antidragonshield_update.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aquarium_net.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_arceeus_essence_block.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_arclight.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_armour_leopard_toy.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_easy.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_elite.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_hard.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_medium.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_aws.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bag_of_salt.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_baguette.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bannana.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bannana_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_hammer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_hammer.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_longbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_spiky_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbassault_vial.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_dharok_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_dharok_wraith_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_guthan_mstar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_guthan_wraith_mstar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_quarterstaff.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_quarterstaff_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_torag_hammers.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_torag_wraith_hammers.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_verac_warspear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_verac_wraith_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_basket_of_easter_eggs.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bday_balloons.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_beer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beer_glass_empty.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beer_glass_full.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beerkeg.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bench.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bird_caller.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_black_knight_dossier.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack_assault_rogue_trader.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack_defend_rogue_trader.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blast_furnace_air_pump.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blast_furnace_conveyer_cycle.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_chiginki.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_scythe.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_scythe_uncharged.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_bludgeon.b3&lt;br /&gt;
src/models/human/weapons/human_weapons_blueritesword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bobcat.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_bone_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bone_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_book.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_book_staff.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_boomerrang.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bucket_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bucket_tar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bug_lantern.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bug_lantern_glow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_burgh_rod_control.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_butterfly_jar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_butterfly_net.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_book.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_mage.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_overhead.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_calquat_keg.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_calquat_keg_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_camorras_axe.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_canoeing_paddle.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewars_banner_green.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewars_banner_saradomin.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewaras_banner_zamorak.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cattleprod.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chair.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chapion_ghoul_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_champion_skeleton_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_champion_zombie_arm.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_charcoal.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cherican.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_chicken.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chicken_drumstick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chinchompa.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chisel.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chocolate_bar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clawhammer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cleaver.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clipboard.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clipboardandpen.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_kerris.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_kerris_poison.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_sophanem_guards_cutlass_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_crab_claw.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_craws_bow.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_craws_bow_charged.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_crystal_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_crystal_shield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cudgel.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dagannoth_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dagannoth_bow_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dh_sword_ornate.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dh-sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dibber.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dk_witch_broomstick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_dagger.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_defender.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_defender_woman.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_halberd.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_hasta.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_kiteshield.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_kiteshield_female.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_mace.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_scimitar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe_broke.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe_handle_macro.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_sq_shield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_tknife.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_tknife_off.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_two_handed_sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_warhammer.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonaxe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonfire_ward.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonfireshield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonhunter_lance.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonsword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_drive_throne.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_crossbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_dagger.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_dagger_p.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_crate.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_ham_goblet.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_ham_goblet_rhand.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_zanik_bone_crossbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_zanik_tog_bowl.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dualclaws.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dust_staff.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_blunt_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_chair.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_sharp_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dye_bottle_ft.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dye_bottle_night.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_earthwarriormace.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_ectophial_teleport.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/skill_slayer/npc/grotesque_guardians/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/grotesque_guardians.base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_corner_01_2.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_02_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_03_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_corner_02.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_01_2.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_straight_02_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_straight_02_1.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/allowlogin.rs2&lt;br /&gt;
src/scripts/calcqp.rs2&lt;br /&gt;
src/scripts/drop.rs2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/areas/area_fossil/config/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.area&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.constant&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.enum&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.inv&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.npc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.obj&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.seq&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.spotanim&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.varbit&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.varp&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_npc.seq&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_pvn.npc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_reward.obj&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_scene.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_underwater.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/wyvern_shield.varobj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/areas/kebos/brimstone/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/areas/kebos/brimstone/brimstone.obj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/drop tables/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/drop tables/_drops.rs2&lt;br /&gt;
src/scripts/drop tables/bandit_leader.rs2&lt;br /&gt;
src/scripts/drop tables/barbarian.rs2&lt;br /&gt;
src/scripts/drop tables/battle_tortoises_drops.rs2&lt;br /&gt;
src/scripts/drop tables/bear.rs2&lt;br /&gt;
src/scripts/drop tables/bearded_dark_wizard.rs2&lt;br /&gt;
src/scripts/drop tables/black_demon.rs2&lt;br /&gt;
src/scripts/drop tables/black_dragon.rs2&lt;br /&gt;
src/scripts/drop tables/black_knight.rs2&lt;br /&gt;
src/scripts/drop tables/brawling_bandit.rs2&lt;br /&gt;
src/scripts/drop tables/bronzedragon.rs2&lt;br /&gt;
src/scripts/drop tables/cave_goblins.rs2&lt;br /&gt;
src/scripts/drop tables/chaos_druid.rs2&lt;br /&gt;
src/scripts/drop tables/chaos_druid_warrior.rs2&lt;br /&gt;
src/scripts/drop tables/chicken.rs2&lt;br /&gt;
src/scripts/drop tables/citizens.rs2&lt;br /&gt;
src/scripts/drop tables/cosmic_entity.rs2&lt;br /&gt;
src/scripts/drop tables/cow.rs2&lt;br /&gt;
src/scripts/drop tables/dagganoths.rs2&lt;br /&gt;
src/scripts/drop tables/dark_warrior.rs2&lt;br /&gt;
src/scripts/drop tables/deal_pirate_drops.rs2&lt;br /&gt;
src/scripts/drop tables/druid.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_chaos.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_mountain.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_normal.rs2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/floors/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/floors/overlay.flo&lt;br /&gt;
src/scripts/floors/underlay.flu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/skill_slayer/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/skill_slayer/kill_log.if3&lt;br /&gt;
src/scripts/skill_slayer/slayer.area&lt;br /&gt;
src/scripts/skill_slayer/slayer.constant&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/gargoyle_boss/config/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.constant&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.controller&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.npc&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.obj&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.varbit&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.varp&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.vars&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/grotesque_guardians.seq&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/slayer_tower_roof.loc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=492</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=492"/>
		<updated>2024-07-04T19:28:44Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms and ideas that will conflict with the last 20 years of RSPS, keep an open mind!&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
&lt;br /&gt;
===== Data Sizes =====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt; to &amp;lt;data range&amp;gt;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
===== TCP =====&lt;br /&gt;
TCP is a byte stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
===== Opcodes =====&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, which can write 2 bytes if the opcode is greater than 127.&lt;br /&gt;
&lt;br /&gt;
===== Isaac =====&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
&lt;br /&gt;
===== Packet Lengths =====&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons:&lt;br /&gt;
&lt;br /&gt;
TCP has TCP fragmentation, where packets are split between multiple transmissions&lt;br /&gt;
&lt;br /&gt;
Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled - changed randomly each revision and for each platform&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled around to be in random locations, you cannot simply diff them in the same order after decompiling&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|p1&lt;br /&gt;
|writeByte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p2&lt;br /&gt;
|writeWord, writeShort&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p3&lt;br /&gt;
|writeMedium&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p4&lt;br /&gt;
|writeInt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p8&lt;br /&gt;
|writeLong&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pjstr&lt;br /&gt;
|writeString&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pjstr2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pdata&lt;br /&gt;
|writeBytes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|psmart&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|psmarts&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pSmart2or4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|g1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gjstr&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gjstr2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gdata&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gsmart&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gsmarts&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|g1_alt1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Priority&lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|High&lt;br /&gt;
|VARP_SMALL / VARP_LARGE&lt;br /&gt;
|-&lt;br /&gt;
|High&lt;br /&gt;
|PLAYER_INFO&lt;br /&gt;
|-&lt;br /&gt;
|Low&lt;br /&gt;
|IF_SETTEXT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like to know how to read a packet.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which methods to use on the &amp;quot;other side&amp;quot; immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=491</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=491"/>
		<updated>2024-07-04T19:20:48Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind!&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
&lt;br /&gt;
===== Data Sizes =====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt; to &amp;lt;data range&amp;gt;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
===== TCP =====&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
===== Opcodes =====&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
&lt;br /&gt;
===== Isaac =====&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
&lt;br /&gt;
===== Packet Lengths =====&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled - changed randomly each revision and for each platform&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled around to be in random locations, you cannot simply diff them in the same order after decompiling&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|p1&lt;br /&gt;
|writeByte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p2&lt;br /&gt;
|writeWord, writeShort&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p3&lt;br /&gt;
|writeMedium&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p4&lt;br /&gt;
|writeInt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p8&lt;br /&gt;
|writeLong&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pjstr&lt;br /&gt;
|writeString&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pjstr2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pdata&lt;br /&gt;
|writeBytes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|psmart&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|psmarts&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pSmart2or4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|g1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gjstr&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gjstr2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gdata&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gsmart&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gsmarts&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|g1_alt1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Priority&lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|High&lt;br /&gt;
|VARP_SMALL / VARP_LARGE&lt;br /&gt;
|-&lt;br /&gt;
|High&lt;br /&gt;
|PLAYER_INFO&lt;br /&gt;
|-&lt;br /&gt;
|Low&lt;br /&gt;
|IF_SETTEXT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs unrefactored client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which methods to use on the &amp;quot;other side&amp;quot; immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=490</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=490"/>
		<updated>2024-07-04T19:20:27Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
&lt;br /&gt;
===== Data Sizes =====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt; to &amp;lt;data range&amp;gt;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
===== TCP =====&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
===== Opcodes =====&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
&lt;br /&gt;
===== Isaac =====&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
&lt;br /&gt;
===== Packet Lengths =====&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled - changed randomly each revision and for each platform&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled around to be in random locations, you cannot simply diff them in the same order after decompiling&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|p1&lt;br /&gt;
|writeByte&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p2&lt;br /&gt;
|writeWord, writeShort&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p3&lt;br /&gt;
|writeMedium&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p4&lt;br /&gt;
|writeInt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p8&lt;br /&gt;
|writeLong&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pjstr&lt;br /&gt;
|writeString&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pjstr2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pdata&lt;br /&gt;
|writeBytes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|psmart&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|psmarts&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pSmart2or4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|p1_alt3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|g1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|g8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gjstr&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gjstr2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gdata&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gsmart&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gsmarts&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gBit&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Jagex Name&lt;br /&gt;
!RSPS Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|g1_alt1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Priority&lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|High&lt;br /&gt;
|VARP_SMALL / VARP_LARGE&lt;br /&gt;
|-&lt;br /&gt;
|High&lt;br /&gt;
|PLAYER_INFO&lt;br /&gt;
|-&lt;br /&gt;
|Low&lt;br /&gt;
|IF_SETTEXT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs unrefactored client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which methods to use on the &amp;quot;other side&amp;quot; immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=489</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=489"/>
		<updated>2024-07-04T19:16:42Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* Basics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
&lt;br /&gt;
===== Data Sizes =====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt; to &amp;lt;data range&amp;gt;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
===== TCP =====&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
===== Opcodes =====&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
&lt;br /&gt;
===== Isaac =====&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
&lt;br /&gt;
===== Packet Lengths =====&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled - changed randomly each revision and for each platform&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled around to be in random locations, you cannot simply diff them in the same order after decompiling&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1	writeByte	Put 1 byte in the data buffer&lt;br /&gt;
p2	writeShort	Put 2 bytes in the data buffer&lt;br /&gt;
ip2	&lt;br /&gt;
	Put 2 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p3	writeMedium	Put 3 bytes in the data buffer&lt;br /&gt;
p4	writeInt	Put 4 bytes in the data buffer&lt;br /&gt;
ip4	&lt;br /&gt;
	Put 4 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p5	&lt;br /&gt;
	Put 5 bytes in the data buffer&lt;br /&gt;
p6	&lt;br /&gt;
	Put 6 bytes in the data buffer&lt;br /&gt;
p8	writeLong	Put 8 bytes in the data buffer&lt;br /&gt;
pjstr	writeString	Put a Jagex string in the data buffer, NUL or newline terminated&lt;br /&gt;
pjstr2	&lt;br /&gt;
	Put a Jagex string in the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
pdata	writeBytes	Put part of another data buffer into the data buffer&lt;br /&gt;
psize2	&lt;br /&gt;
	Put the 0-65535 (2 bytes) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
psize1	&lt;br /&gt;
	Put the 0-255 (1 byte) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
pSmart1or2 / psmart	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (-16384 to 16383)&lt;br /&gt;
pSmart1or2s / psmarts	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (0 to 32767)&lt;br /&gt;
pSmart2or4	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (2 or 4 bytes) into the data buffer&lt;br /&gt;
pBit	&lt;br /&gt;
	Put a variable number of bits into the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1_alt1	(todo)	&lt;br /&gt;
p1_alt2&lt;br /&gt;
&lt;br /&gt;
p1_alt3&lt;br /&gt;
&lt;br /&gt;
p2_alt1&lt;br /&gt;
&lt;br /&gt;
p2_alt2&lt;br /&gt;
&lt;br /&gt;
p2_alt3&lt;br /&gt;
&lt;br /&gt;
p3_alt1&lt;br /&gt;
&lt;br /&gt;
p3_alt2&lt;br /&gt;
&lt;br /&gt;
p3_alt3&lt;br /&gt;
&lt;br /&gt;
p4_alt1&lt;br /&gt;
&lt;br /&gt;
p4_alt2&lt;br /&gt;
&lt;br /&gt;
p4_alt3&lt;br /&gt;
&lt;br /&gt;
pdata_alt1&lt;br /&gt;
&lt;br /&gt;
pdata_alt2&lt;br /&gt;
&lt;br /&gt;
pdata_alt3&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1	readByte	Get 1 byte from the data buffer&lt;br /&gt;
g2	readShort	Get 2 bytes from the data buffer&lt;br /&gt;
g3	readMedium	Get 3 bytes from the data buffer&lt;br /&gt;
g4	readInt	Get 4 bytes from the data buffer&lt;br /&gt;
g5	&lt;br /&gt;
	Get 5 bytes from the data buffer&lt;br /&gt;
g6	&lt;br /&gt;
	Get 6 bytes from the data buffer&lt;br /&gt;
g8	readLong	Get 8 bytes from the data buffer&lt;br /&gt;
gjstr	readString	Get a Jagex string from the data buffer, NUL or newline terminated&lt;br /&gt;
gjstr2	&lt;br /&gt;
	Get a Jagex string from the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
gdata	readBytes	Get part of this data buffer and put it into another data buffer&lt;br /&gt;
gSmart1or2 (unofficial) / gsmart (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-16384 to 16383)&lt;br /&gt;
gSmart1or2s (unofficial) / gsmarts (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (0 to 32768)&lt;br /&gt;
gSmart1or2null (unofficial)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-1 to 32768) and treat -1 as &amp;quot;null&amp;quot;&lt;br /&gt;
gExtended1or2 (unofficial)	&lt;br /&gt;
	Get a variable amount of &amp;quot;smart&amp;quot; numbers from the data buffer until there's none left&lt;br /&gt;
gSmart2or4 (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (2 or 4 bytes) from the data buffer&lt;br /&gt;
gBit	&lt;br /&gt;
	Get a variable number of bits from the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1_alt1	(todo)	&lt;br /&gt;
g1_alt2&lt;br /&gt;
&lt;br /&gt;
g1_alt3&lt;br /&gt;
&lt;br /&gt;
g2_alt1&lt;br /&gt;
&lt;br /&gt;
g2_alt2&lt;br /&gt;
&lt;br /&gt;
g2_alt3&lt;br /&gt;
&lt;br /&gt;
g3_alt1&lt;br /&gt;
&lt;br /&gt;
g3_alt2&lt;br /&gt;
&lt;br /&gt;
g3_alt3&lt;br /&gt;
&lt;br /&gt;
g4_alt1&lt;br /&gt;
&lt;br /&gt;
g4_alt2&lt;br /&gt;
&lt;br /&gt;
g4_alt3&lt;br /&gt;
&lt;br /&gt;
gdata_alt1&lt;br /&gt;
&lt;br /&gt;
gdata_alt2&lt;br /&gt;
&lt;br /&gt;
gdata_alt3&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
&lt;br /&gt;
Priority	Name&lt;br /&gt;
High	VARP_SMALL / VARP_LARGE&lt;br /&gt;
High	PLAYER_INFO&lt;br /&gt;
Low	IF_SETTEXT&lt;br /&gt;
(todo ...)	(todo ...)&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs unrefactored client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which methods to use on the &amp;quot;other side&amp;quot; immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=488</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=488"/>
		<updated>2024-07-04T19:15:30Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* Basics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt; to &amp;lt;data range&amp;gt;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled - changed randomly each revision and for each platform&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled around to be in random locations, you cannot simply diff them in the same order after decompiling&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1	writeByte	Put 1 byte in the data buffer&lt;br /&gt;
p2	writeShort	Put 2 bytes in the data buffer&lt;br /&gt;
ip2	&lt;br /&gt;
	Put 2 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p3	writeMedium	Put 3 bytes in the data buffer&lt;br /&gt;
p4	writeInt	Put 4 bytes in the data buffer&lt;br /&gt;
ip4	&lt;br /&gt;
	Put 4 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p5	&lt;br /&gt;
	Put 5 bytes in the data buffer&lt;br /&gt;
p6	&lt;br /&gt;
	Put 6 bytes in the data buffer&lt;br /&gt;
p8	writeLong	Put 8 bytes in the data buffer&lt;br /&gt;
pjstr	writeString	Put a Jagex string in the data buffer, NUL or newline terminated&lt;br /&gt;
pjstr2	&lt;br /&gt;
	Put a Jagex string in the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
pdata	writeBytes	Put part of another data buffer into the data buffer&lt;br /&gt;
psize2	&lt;br /&gt;
	Put the 0-65535 (2 bytes) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
psize1	&lt;br /&gt;
	Put the 0-255 (1 byte) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
pSmart1or2 / psmart	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (-16384 to 16383)&lt;br /&gt;
pSmart1or2s / psmarts	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (0 to 32767)&lt;br /&gt;
pSmart2or4	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (2 or 4 bytes) into the data buffer&lt;br /&gt;
pBit	&lt;br /&gt;
	Put a variable number of bits into the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1_alt1	(todo)	&lt;br /&gt;
p1_alt2&lt;br /&gt;
&lt;br /&gt;
p1_alt3&lt;br /&gt;
&lt;br /&gt;
p2_alt1&lt;br /&gt;
&lt;br /&gt;
p2_alt2&lt;br /&gt;
&lt;br /&gt;
p2_alt3&lt;br /&gt;
&lt;br /&gt;
p3_alt1&lt;br /&gt;
&lt;br /&gt;
p3_alt2&lt;br /&gt;
&lt;br /&gt;
p3_alt3&lt;br /&gt;
&lt;br /&gt;
p4_alt1&lt;br /&gt;
&lt;br /&gt;
p4_alt2&lt;br /&gt;
&lt;br /&gt;
p4_alt3&lt;br /&gt;
&lt;br /&gt;
pdata_alt1&lt;br /&gt;
&lt;br /&gt;
pdata_alt2&lt;br /&gt;
&lt;br /&gt;
pdata_alt3&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1	readByte	Get 1 byte from the data buffer&lt;br /&gt;
g2	readShort	Get 2 bytes from the data buffer&lt;br /&gt;
g3	readMedium	Get 3 bytes from the data buffer&lt;br /&gt;
g4	readInt	Get 4 bytes from the data buffer&lt;br /&gt;
g5	&lt;br /&gt;
	Get 5 bytes from the data buffer&lt;br /&gt;
g6	&lt;br /&gt;
	Get 6 bytes from the data buffer&lt;br /&gt;
g8	readLong	Get 8 bytes from the data buffer&lt;br /&gt;
gjstr	readString	Get a Jagex string from the data buffer, NUL or newline terminated&lt;br /&gt;
gjstr2	&lt;br /&gt;
	Get a Jagex string from the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
gdata	readBytes	Get part of this data buffer and put it into another data buffer&lt;br /&gt;
gSmart1or2 (unofficial) / gsmart (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-16384 to 16383)&lt;br /&gt;
gSmart1or2s (unofficial) / gsmarts (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (0 to 32768)&lt;br /&gt;
gSmart1or2null (unofficial)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-1 to 32768) and treat -1 as &amp;quot;null&amp;quot;&lt;br /&gt;
gExtended1or2 (unofficial)	&lt;br /&gt;
	Get a variable amount of &amp;quot;smart&amp;quot; numbers from the data buffer until there's none left&lt;br /&gt;
gSmart2or4 (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (2 or 4 bytes) from the data buffer&lt;br /&gt;
gBit	&lt;br /&gt;
	Get a variable number of bits from the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1_alt1	(todo)	&lt;br /&gt;
g1_alt2&lt;br /&gt;
&lt;br /&gt;
g1_alt3&lt;br /&gt;
&lt;br /&gt;
g2_alt1&lt;br /&gt;
&lt;br /&gt;
g2_alt2&lt;br /&gt;
&lt;br /&gt;
g2_alt3&lt;br /&gt;
&lt;br /&gt;
g3_alt1&lt;br /&gt;
&lt;br /&gt;
g3_alt2&lt;br /&gt;
&lt;br /&gt;
g3_alt3&lt;br /&gt;
&lt;br /&gt;
g4_alt1&lt;br /&gt;
&lt;br /&gt;
g4_alt2&lt;br /&gt;
&lt;br /&gt;
g4_alt3&lt;br /&gt;
&lt;br /&gt;
gdata_alt1&lt;br /&gt;
&lt;br /&gt;
gdata_alt2&lt;br /&gt;
&lt;br /&gt;
gdata_alt3&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
&lt;br /&gt;
Priority	Name&lt;br /&gt;
High	VARP_SMALL / VARP_LARGE&lt;br /&gt;
High	PLAYER_INFO&lt;br /&gt;
Low	IF_SETTEXT&lt;br /&gt;
(todo ...)	(todo ...)&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs unrefactored client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which methods to use on the &amp;quot;other side&amp;quot; immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=487</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=487"/>
		<updated>2024-07-04T19:15:16Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt; to &amp;lt;data range&amp;gt;.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;nowiki&amp;gt;&amp;lt;data range&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled - changed randomly each revision and for each platform&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled around to be in random locations, you cannot simply diff them in the same order after decompiling&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1	writeByte	Put 1 byte in the data buffer&lt;br /&gt;
p2	writeShort	Put 2 bytes in the data buffer&lt;br /&gt;
ip2	&lt;br /&gt;
	Put 2 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p3	writeMedium	Put 3 bytes in the data buffer&lt;br /&gt;
p4	writeInt	Put 4 bytes in the data buffer&lt;br /&gt;
ip4	&lt;br /&gt;
	Put 4 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p5	&lt;br /&gt;
	Put 5 bytes in the data buffer&lt;br /&gt;
p6	&lt;br /&gt;
	Put 6 bytes in the data buffer&lt;br /&gt;
p8	writeLong	Put 8 bytes in the data buffer&lt;br /&gt;
pjstr	writeString	Put a Jagex string in the data buffer, NUL or newline terminated&lt;br /&gt;
pjstr2	&lt;br /&gt;
	Put a Jagex string in the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
pdata	writeBytes	Put part of another data buffer into the data buffer&lt;br /&gt;
psize2	&lt;br /&gt;
	Put the 0-65535 (2 bytes) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
psize1	&lt;br /&gt;
	Put the 0-255 (1 byte) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
pSmart1or2 / psmart	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (-16384 to 16383)&lt;br /&gt;
pSmart1or2s / psmarts	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (0 to 32767)&lt;br /&gt;
pSmart2or4	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (2 or 4 bytes) into the data buffer&lt;br /&gt;
pBit	&lt;br /&gt;
	Put a variable number of bits into the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1_alt1	(todo)	&lt;br /&gt;
p1_alt2&lt;br /&gt;
&lt;br /&gt;
p1_alt3&lt;br /&gt;
&lt;br /&gt;
p2_alt1&lt;br /&gt;
&lt;br /&gt;
p2_alt2&lt;br /&gt;
&lt;br /&gt;
p2_alt3&lt;br /&gt;
&lt;br /&gt;
p3_alt1&lt;br /&gt;
&lt;br /&gt;
p3_alt2&lt;br /&gt;
&lt;br /&gt;
p3_alt3&lt;br /&gt;
&lt;br /&gt;
p4_alt1&lt;br /&gt;
&lt;br /&gt;
p4_alt2&lt;br /&gt;
&lt;br /&gt;
p4_alt3&lt;br /&gt;
&lt;br /&gt;
pdata_alt1&lt;br /&gt;
&lt;br /&gt;
pdata_alt2&lt;br /&gt;
&lt;br /&gt;
pdata_alt3&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1	readByte	Get 1 byte from the data buffer&lt;br /&gt;
g2	readShort	Get 2 bytes from the data buffer&lt;br /&gt;
g3	readMedium	Get 3 bytes from the data buffer&lt;br /&gt;
g4	readInt	Get 4 bytes from the data buffer&lt;br /&gt;
g5	&lt;br /&gt;
	Get 5 bytes from the data buffer&lt;br /&gt;
g6	&lt;br /&gt;
	Get 6 bytes from the data buffer&lt;br /&gt;
g8	readLong	Get 8 bytes from the data buffer&lt;br /&gt;
gjstr	readString	Get a Jagex string from the data buffer, NUL or newline terminated&lt;br /&gt;
gjstr2	&lt;br /&gt;
	Get a Jagex string from the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
gdata	readBytes	Get part of this data buffer and put it into another data buffer&lt;br /&gt;
gSmart1or2 (unofficial) / gsmart (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-16384 to 16383)&lt;br /&gt;
gSmart1or2s (unofficial) / gsmarts (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (0 to 32768)&lt;br /&gt;
gSmart1or2null (unofficial)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-1 to 32768) and treat -1 as &amp;quot;null&amp;quot;&lt;br /&gt;
gExtended1or2 (unofficial)	&lt;br /&gt;
	Get a variable amount of &amp;quot;smart&amp;quot; numbers from the data buffer until there's none left&lt;br /&gt;
gSmart2or4 (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (2 or 4 bytes) from the data buffer&lt;br /&gt;
gBit	&lt;br /&gt;
	Get a variable number of bits from the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1_alt1	(todo)	&lt;br /&gt;
g1_alt2&lt;br /&gt;
&lt;br /&gt;
g1_alt3&lt;br /&gt;
&lt;br /&gt;
g2_alt1&lt;br /&gt;
&lt;br /&gt;
g2_alt2&lt;br /&gt;
&lt;br /&gt;
g2_alt3&lt;br /&gt;
&lt;br /&gt;
g3_alt1&lt;br /&gt;
&lt;br /&gt;
g3_alt2&lt;br /&gt;
&lt;br /&gt;
g3_alt3&lt;br /&gt;
&lt;br /&gt;
g4_alt1&lt;br /&gt;
&lt;br /&gt;
g4_alt2&lt;br /&gt;
&lt;br /&gt;
g4_alt3&lt;br /&gt;
&lt;br /&gt;
gdata_alt1&lt;br /&gt;
&lt;br /&gt;
gdata_alt2&lt;br /&gt;
&lt;br /&gt;
gdata_alt3&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
&lt;br /&gt;
Priority	Name&lt;br /&gt;
High	VARP_SMALL / VARP_LARGE&lt;br /&gt;
High	PLAYER_INFO&lt;br /&gt;
Low	IF_SETTEXT&lt;br /&gt;
(todo ...)	(todo ...)&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs unrefactored client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which methods to use on the &amp;quot;other side&amp;quot; immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=486</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=486"/>
		<updated>2024-07-04T19:14:34Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* Basics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;data limit&amp;gt; to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled - changed randomly each revision and for each platform&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled around to be in random locations, you cannot simply diff them in the same order after decompiling&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1	writeByte	Put 1 byte in the data buffer&lt;br /&gt;
p2	writeShort	Put 2 bytes in the data buffer&lt;br /&gt;
ip2	&lt;br /&gt;
	Put 2 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p3	writeMedium	Put 3 bytes in the data buffer&lt;br /&gt;
p4	writeInt	Put 4 bytes in the data buffer&lt;br /&gt;
ip4	&lt;br /&gt;
	Put 4 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p5	&lt;br /&gt;
	Put 5 bytes in the data buffer&lt;br /&gt;
p6	&lt;br /&gt;
	Put 6 bytes in the data buffer&lt;br /&gt;
p8	writeLong	Put 8 bytes in the data buffer&lt;br /&gt;
pjstr	writeString	Put a Jagex string in the data buffer, NUL or newline terminated&lt;br /&gt;
pjstr2	&lt;br /&gt;
	Put a Jagex string in the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
pdata	writeBytes	Put part of another data buffer into the data buffer&lt;br /&gt;
psize2	&lt;br /&gt;
	Put the 0-65535 (2 bytes) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
psize1	&lt;br /&gt;
	Put the 0-255 (1 byte) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
pSmart1or2 / psmart	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (-16384 to 16383)&lt;br /&gt;
pSmart1or2s / psmarts	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (0 to 32767)&lt;br /&gt;
pSmart2or4	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (2 or 4 bytes) into the data buffer&lt;br /&gt;
pBit	&lt;br /&gt;
	Put a variable number of bits into the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1_alt1	(todo)	&lt;br /&gt;
p1_alt2&lt;br /&gt;
&lt;br /&gt;
p1_alt3&lt;br /&gt;
&lt;br /&gt;
p2_alt1&lt;br /&gt;
&lt;br /&gt;
p2_alt2&lt;br /&gt;
&lt;br /&gt;
p2_alt3&lt;br /&gt;
&lt;br /&gt;
p3_alt1&lt;br /&gt;
&lt;br /&gt;
p3_alt2&lt;br /&gt;
&lt;br /&gt;
p3_alt3&lt;br /&gt;
&lt;br /&gt;
p4_alt1&lt;br /&gt;
&lt;br /&gt;
p4_alt2&lt;br /&gt;
&lt;br /&gt;
p4_alt3&lt;br /&gt;
&lt;br /&gt;
pdata_alt1&lt;br /&gt;
&lt;br /&gt;
pdata_alt2&lt;br /&gt;
&lt;br /&gt;
pdata_alt3&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1	readByte	Get 1 byte from the data buffer&lt;br /&gt;
g2	readShort	Get 2 bytes from the data buffer&lt;br /&gt;
g3	readMedium	Get 3 bytes from the data buffer&lt;br /&gt;
g4	readInt	Get 4 bytes from the data buffer&lt;br /&gt;
g5	&lt;br /&gt;
	Get 5 bytes from the data buffer&lt;br /&gt;
g6	&lt;br /&gt;
	Get 6 bytes from the data buffer&lt;br /&gt;
g8	readLong	Get 8 bytes from the data buffer&lt;br /&gt;
gjstr	readString	Get a Jagex string from the data buffer, NUL or newline terminated&lt;br /&gt;
gjstr2	&lt;br /&gt;
	Get a Jagex string from the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
gdata	readBytes	Get part of this data buffer and put it into another data buffer&lt;br /&gt;
gSmart1or2 (unofficial) / gsmart (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-16384 to 16383)&lt;br /&gt;
gSmart1or2s (unofficial) / gsmarts (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (0 to 32768)&lt;br /&gt;
gSmart1or2null (unofficial)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-1 to 32768) and treat -1 as &amp;quot;null&amp;quot;&lt;br /&gt;
gExtended1or2 (unofficial)	&lt;br /&gt;
	Get a variable amount of &amp;quot;smart&amp;quot; numbers from the data buffer until there's none left&lt;br /&gt;
gSmart2or4 (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (2 or 4 bytes) from the data buffer&lt;br /&gt;
gBit	&lt;br /&gt;
	Get a variable number of bits from the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1_alt1	(todo)	&lt;br /&gt;
g1_alt2&lt;br /&gt;
&lt;br /&gt;
g1_alt3&lt;br /&gt;
&lt;br /&gt;
g2_alt1&lt;br /&gt;
&lt;br /&gt;
g2_alt2&lt;br /&gt;
&lt;br /&gt;
g2_alt3&lt;br /&gt;
&lt;br /&gt;
g3_alt1&lt;br /&gt;
&lt;br /&gt;
g3_alt2&lt;br /&gt;
&lt;br /&gt;
g3_alt3&lt;br /&gt;
&lt;br /&gt;
g4_alt1&lt;br /&gt;
&lt;br /&gt;
g4_alt2&lt;br /&gt;
&lt;br /&gt;
g4_alt3&lt;br /&gt;
&lt;br /&gt;
gdata_alt1&lt;br /&gt;
&lt;br /&gt;
gdata_alt2&lt;br /&gt;
&lt;br /&gt;
gdata_alt3&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
&lt;br /&gt;
Priority	Name&lt;br /&gt;
High	VARP_SMALL / VARP_LARGE&lt;br /&gt;
High	PLAYER_INFO&lt;br /&gt;
Low	IF_SETTEXT&lt;br /&gt;
(todo ...)	(todo ...)&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs unrefactored client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which methods to use on the &amp;quot;other side&amp;quot; immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=485</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=485"/>
		<updated>2024-07-04T19:11:03Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;data limit&amp;gt; to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
==== Packet Writing/Reading Methods ====&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled (changed randomly each revision and for each platform)&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled to be in random locations (you cannot simply diff them in the same order after decompiling)&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
===== Writing =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1	writeByte	Put 1 byte in the data buffer&lt;br /&gt;
p2	writeShort	Put 2 bytes in the data buffer&lt;br /&gt;
ip2	&lt;br /&gt;
	Put 2 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p3	writeMedium	Put 3 bytes in the data buffer&lt;br /&gt;
p4	writeInt	Put 4 bytes in the data buffer&lt;br /&gt;
ip4	&lt;br /&gt;
	Put 4 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p5	&lt;br /&gt;
	Put 5 bytes in the data buffer&lt;br /&gt;
p6	&lt;br /&gt;
	Put 6 bytes in the data buffer&lt;br /&gt;
p8	writeLong	Put 8 bytes in the data buffer&lt;br /&gt;
pjstr	writeString	Put a Jagex string in the data buffer, NUL or newline terminated&lt;br /&gt;
pjstr2	&lt;br /&gt;
	Put a Jagex string in the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
pdata	writeBytes	Put part of another data buffer into the data buffer&lt;br /&gt;
psize2	&lt;br /&gt;
	Put the 0-65535 (2 bytes) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
psize1	&lt;br /&gt;
	Put the 0-255 (1 byte) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
pSmart1or2 / psmart	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (-16384 to 16383)&lt;br /&gt;
pSmart1or2s / psmarts	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (0 to 32767)&lt;br /&gt;
pSmart2or4	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (2 or 4 bytes) into the data buffer&lt;br /&gt;
pBit	&lt;br /&gt;
	Put a variable number of bits into the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Writing Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1_alt1	(todo)	&lt;br /&gt;
p1_alt2&lt;br /&gt;
&lt;br /&gt;
p1_alt3&lt;br /&gt;
&lt;br /&gt;
p2_alt1&lt;br /&gt;
&lt;br /&gt;
p2_alt2&lt;br /&gt;
&lt;br /&gt;
p2_alt3&lt;br /&gt;
&lt;br /&gt;
p3_alt1&lt;br /&gt;
&lt;br /&gt;
p3_alt2&lt;br /&gt;
&lt;br /&gt;
p3_alt3&lt;br /&gt;
&lt;br /&gt;
p4_alt1&lt;br /&gt;
&lt;br /&gt;
p4_alt2&lt;br /&gt;
&lt;br /&gt;
p4_alt3&lt;br /&gt;
&lt;br /&gt;
pdata_alt1&lt;br /&gt;
&lt;br /&gt;
pdata_alt2&lt;br /&gt;
&lt;br /&gt;
pdata_alt3&lt;br /&gt;
&lt;br /&gt;
===== Reading =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1	readByte	Get 1 byte from the data buffer&lt;br /&gt;
g2	readShort	Get 2 bytes from the data buffer&lt;br /&gt;
g3	readMedium	Get 3 bytes from the data buffer&lt;br /&gt;
g4	readInt	Get 4 bytes from the data buffer&lt;br /&gt;
g5	&lt;br /&gt;
	Get 5 bytes from the data buffer&lt;br /&gt;
g6	&lt;br /&gt;
	Get 6 bytes from the data buffer&lt;br /&gt;
g8	readLong	Get 8 bytes from the data buffer&lt;br /&gt;
gjstr	readString	Get a Jagex string from the data buffer, NUL or newline terminated&lt;br /&gt;
gjstr2	&lt;br /&gt;
	Get a Jagex string from the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
gdata	readBytes	Get part of this data buffer and put it into another data buffer&lt;br /&gt;
gSmart1or2 (unofficial) / gsmart (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-16384 to 16383)&lt;br /&gt;
gSmart1or2s (unofficial) / gsmarts (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (0 to 32768)&lt;br /&gt;
gSmart1or2null (unofficial)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-1 to 32768) and treat -1 as &amp;quot;null&amp;quot;&lt;br /&gt;
gExtended1or2 (unofficial)	&lt;br /&gt;
	Get a variable amount of &amp;quot;smart&amp;quot; numbers from the data buffer until there's none left&lt;br /&gt;
gSmart2or4 (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (2 or 4 bytes) from the data buffer&lt;br /&gt;
gBit	&lt;br /&gt;
	Get a variable number of bits from the data buffer&lt;br /&gt;
&lt;br /&gt;
===== Reading Alt (Obfuscation) =====&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1_alt1	(todo)	&lt;br /&gt;
g1_alt2&lt;br /&gt;
&lt;br /&gt;
g1_alt3&lt;br /&gt;
&lt;br /&gt;
g2_alt1&lt;br /&gt;
&lt;br /&gt;
g2_alt2&lt;br /&gt;
&lt;br /&gt;
g2_alt3&lt;br /&gt;
&lt;br /&gt;
g3_alt1&lt;br /&gt;
&lt;br /&gt;
g3_alt2&lt;br /&gt;
&lt;br /&gt;
g3_alt3&lt;br /&gt;
&lt;br /&gt;
g4_alt1&lt;br /&gt;
&lt;br /&gt;
g4_alt2&lt;br /&gt;
&lt;br /&gt;
g4_alt3&lt;br /&gt;
&lt;br /&gt;
gdata_alt1&lt;br /&gt;
&lt;br /&gt;
gdata_alt2&lt;br /&gt;
&lt;br /&gt;
gdata_alt3&lt;br /&gt;
&lt;br /&gt;
==== Server Logic ====&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority	Name&lt;br /&gt;
High	VARP_SMALL / VARP_LARGE&lt;br /&gt;
High	PLAYER_INFO&lt;br /&gt;
Low	IF_SETTEXT&lt;br /&gt;
(todo ...)	(todo ...)&lt;br /&gt;
&lt;br /&gt;
==== Deobfuscating Clients ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs average RSPS client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which alt methods to read with immediately.&lt;br /&gt;
&lt;br /&gt;
==== Sources ====&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=484</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=484"/>
		<updated>2024-07-04T19:08:47Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This infodump is a work in progress&lt;br /&gt;
&lt;br /&gt;
Basics&lt;br /&gt;
&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;data limit&amp;gt; to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
Packet Writing/Reading Methods&lt;br /&gt;
&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled (changed randomly each revision and for each platform)&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled to be in random locations (you cannot simply diff them in the same order after decompiling)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Writing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1	writeByte	Put 1 byte in the data buffer&lt;br /&gt;
p2	writeShort	Put 2 bytes in the data buffer&lt;br /&gt;
ip2	&lt;br /&gt;
	Put 2 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p3	writeMedium	Put 3 bytes in the data buffer&lt;br /&gt;
p4	writeInt	Put 4 bytes in the data buffer&lt;br /&gt;
ip4	&lt;br /&gt;
	Put 4 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p5	&lt;br /&gt;
	Put 5 bytes in the data buffer&lt;br /&gt;
p6	&lt;br /&gt;
	Put 6 bytes in the data buffer&lt;br /&gt;
p8	writeLong	Put 8 bytes in the data buffer&lt;br /&gt;
pjstr	writeString	Put a Jagex string in the data buffer, NUL or newline terminated&lt;br /&gt;
pjstr2	&lt;br /&gt;
	Put a Jagex string in the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
pdata	writeBytes	Put part of another data buffer into the data buffer&lt;br /&gt;
psize2	&lt;br /&gt;
	Put the 0-65535 (2 bytes) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
psize1	&lt;br /&gt;
	Put the 0-255 (1 byte) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
pSmart1or2 / psmart	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (-16384 to 16383)&lt;br /&gt;
pSmart1or2s / psmarts	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (0 to 32767)&lt;br /&gt;
pSmart2or4	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (2 or 4 bytes) into the data buffer&lt;br /&gt;
pBit	&lt;br /&gt;
	Put a variable number of bits into the data buffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Writing Alt (Obfuscation)&lt;br /&gt;
&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1_alt1	(todo)	&lt;br /&gt;
p1_alt2&lt;br /&gt;
&lt;br /&gt;
p1_alt3&lt;br /&gt;
&lt;br /&gt;
p2_alt1&lt;br /&gt;
&lt;br /&gt;
p2_alt2&lt;br /&gt;
&lt;br /&gt;
p2_alt3&lt;br /&gt;
&lt;br /&gt;
p3_alt1&lt;br /&gt;
&lt;br /&gt;
p3_alt2&lt;br /&gt;
&lt;br /&gt;
p3_alt3&lt;br /&gt;
&lt;br /&gt;
p4_alt1&lt;br /&gt;
&lt;br /&gt;
p4_alt2&lt;br /&gt;
&lt;br /&gt;
p4_alt3&lt;br /&gt;
&lt;br /&gt;
pdata_alt1&lt;br /&gt;
&lt;br /&gt;
pdata_alt2&lt;br /&gt;
&lt;br /&gt;
pdata_alt3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reading&lt;br /&gt;
&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1	readByte	Get 1 byte from the data buffer&lt;br /&gt;
g2	readShort	Get 2 bytes from the data buffer&lt;br /&gt;
g3	readMedium	Get 3 bytes from the data buffer&lt;br /&gt;
g4	readInt	Get 4 bytes from the data buffer&lt;br /&gt;
g5	&lt;br /&gt;
	Get 5 bytes from the data buffer&lt;br /&gt;
g6	&lt;br /&gt;
	Get 6 bytes from the data buffer&lt;br /&gt;
g8	readLong	Get 8 bytes from the data buffer&lt;br /&gt;
gjstr	readString	Get a Jagex string from the data buffer, NUL or newline terminated&lt;br /&gt;
gjstr2	&lt;br /&gt;
	Get a Jagex string from the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
gdata	readBytes	Get part of this data buffer and put it into another data buffer&lt;br /&gt;
gSmart1or2 (unofficial) / gsmart (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-16384 to 16383)&lt;br /&gt;
gSmart1or2s (unofficial) / gsmarts (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (0 to 32768)&lt;br /&gt;
gSmart1or2null (unofficial)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-1 to 32768) and treat -1 as &amp;quot;null&amp;quot;&lt;br /&gt;
gExtended1or2 (unofficial)	&lt;br /&gt;
	Get a variable amount of &amp;quot;smart&amp;quot; numbers from the data buffer until there's none left&lt;br /&gt;
gSmart2or4 (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (2 or 4 bytes) from the data buffer&lt;br /&gt;
gBit	&lt;br /&gt;
	Get a variable number of bits from the data buffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reading Alt (Obfuscation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1_alt1	(todo)	&lt;br /&gt;
g1_alt2&lt;br /&gt;
&lt;br /&gt;
g1_alt3&lt;br /&gt;
&lt;br /&gt;
g2_alt1&lt;br /&gt;
&lt;br /&gt;
g2_alt2&lt;br /&gt;
&lt;br /&gt;
g2_alt3&lt;br /&gt;
&lt;br /&gt;
g3_alt1&lt;br /&gt;
&lt;br /&gt;
g3_alt2&lt;br /&gt;
&lt;br /&gt;
g3_alt3&lt;br /&gt;
&lt;br /&gt;
g4_alt1&lt;br /&gt;
&lt;br /&gt;
g4_alt2&lt;br /&gt;
&lt;br /&gt;
g4_alt3&lt;br /&gt;
&lt;br /&gt;
gdata_alt1&lt;br /&gt;
&lt;br /&gt;
gdata_alt2&lt;br /&gt;
&lt;br /&gt;
gdata_alt3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server Logic&lt;br /&gt;
&lt;br /&gt;
The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority	Name&lt;br /&gt;
High	VARP_SMALL / VARP_LARGE&lt;br /&gt;
High	PLAYER_INFO&lt;br /&gt;
Low	IF_SETTEXT&lt;br /&gt;
(todo ...)	(todo ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deobfuscating Clients&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs average RSPS client:&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
   this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
   this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
   this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
   this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
   this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
   // ...&lt;br /&gt;
   this.packetType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if(pktType == 176) {&lt;br /&gt;
   daysSinceRecovChange = inStream.method427();&lt;br /&gt;
   unreadMessages = inStream.method435();&lt;br /&gt;
   membersInt = inStream.readUnsignedByte();&lt;br /&gt;
   anInt1193 = inStream.method440();&lt;br /&gt;
   daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
   // ...&lt;br /&gt;
   pktType = -1;&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which alt methods to read with immediately.&lt;br /&gt;
&lt;br /&gt;
Sources&lt;br /&gt;
&lt;br /&gt;
Lost City - 2004Scape (2024)&lt;br /&gt;
Blurite - RSProt (2024)&lt;br /&gt;
NXT beta client messages (2016)&lt;br /&gt;
NXT beta server messages (2016)&lt;br /&gt;
NXT beta C++ function names (2016)&lt;br /&gt;
Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=483</id>
		<title>Game Protocol recap</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Game_Protocol_recap&amp;diff=483"/>
		<updated>2024-07-04T19:06:49Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: Created page with &amp;quot;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)  We'll cover the basics first and touch on more in-depth details after.   This infodump is a work in progress  Basics  A byte is the smallest unit of data you can store in memory. You can edit...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm going to recap everything we know about the game server's protocol so beginners and veterans can refine their understanding a bit. We're going to be using some terms that will conflict with the last 20 years of RSPS, keep an open mind if you're already hard set in your ways ;)&lt;br /&gt;
&lt;br /&gt;
We'll cover the basics first and touch on more in-depth details after.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This infodump is a work in progress&lt;br /&gt;
&lt;br /&gt;
Basics&lt;br /&gt;
&lt;br /&gt;
A byte is the smallest unit of data you can store in memory. You can edit the bits that make up a byte, but you're always working with bytes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Signed numbers means they can have a minus sign. They can represent values from -&amp;lt;data limit&amp;gt; to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Unsigned numbers means they cannot have a minus sign. They can represent values from 0 to &amp;lt;data limit&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Java int types are signed and may represent values between -2,147,483,648 to 2,147,483,647 (-2.147b to 2.147b).&lt;br /&gt;
&lt;br /&gt;
Java byte types are signed and may represent values between -128 and 127.&lt;br /&gt;
&lt;br /&gt;
Numbers can be converted between signed/unsigned at any time if you store the result in the right data types.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP is a stream protocol, you can expect to send a byte on one end and the other end will receive that byte in the exact same order (simplification).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Opcodes means &amp;quot;Operation Codes&amp;quot; which is another way to say, if this byte is received then do this. The first byte(s) of a packet are the opcode. Note that I say byte(s), that distinction is for RS after 2010, we'll revisit the reason later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Isaac is the stream cipher that Jagex uses to encrypt the opcode. Every byte that it processes changes the state permanently and both client/server must be doing the same operations in the same order at all times.&lt;br /&gt;
&lt;br /&gt;
When the client connects, it initializes Isaac with the exact same starting state as the server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Packet lengths for these opcodes can be fixed or variable, lengths are important for two reasons: TCP is a byte stream protocol and you need to know how much to read off the socket, and Isaac must be deciphering/decrypting the same opcodes, in the same order, on both sides.&lt;br /&gt;
&lt;br /&gt;
A fixed packet length is calculated by adding up all of the bytes that are sent and storing that result ahead of time.&lt;br /&gt;
&lt;br /&gt;
A variable packet length is calculated when packets are written, the byte(s) following the opcode in this case are saying how many bytes the rest of the packet is.&lt;br /&gt;
&lt;br /&gt;
Packet Writing/Reading Methods&lt;br /&gt;
&lt;br /&gt;
The client has a class officially called Packet. Yes, even when it's used to read the cache it's still reading as Packet. People often call this Buffer, InputStream/OutputStream, or ByteStream.&lt;br /&gt;
&lt;br /&gt;
Later revisions there's another class called PacketBit, some people have called this Packet. It contains the methods to read/write bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When the client is being obfuscated for release, the network protocol gets randomized in a couple ways...&lt;br /&gt;
&lt;br /&gt;
Opcodes are scrambled (changed randomly each revision and for each platform)&lt;br /&gt;
&lt;br /&gt;
Reading/writing methods in the packet handlers may be replaced with their alt variants&lt;br /&gt;
&lt;br /&gt;
Packet handlers are shuffled to be in random locations (you cannot simply diff them in the same order after decompiling)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Read along here: Packet.java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Writing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1	writeByte	Put 1 byte in the data buffer&lt;br /&gt;
p2	writeShort	Put 2 bytes in the data buffer&lt;br /&gt;
ip2	&lt;br /&gt;
	Put 2 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p3	writeMedium	Put 3 bytes in the data buffer&lt;br /&gt;
p4	writeInt	Put 4 bytes in the data buffer&lt;br /&gt;
ip4	&lt;br /&gt;
	Put 4 bytes in the data buffer, inversed (backwards)&lt;br /&gt;
p5	&lt;br /&gt;
	Put 5 bytes in the data buffer&lt;br /&gt;
p6	&lt;br /&gt;
	Put 6 bytes in the data buffer&lt;br /&gt;
p8	writeLong	Put 8 bytes in the data buffer&lt;br /&gt;
pjstr	writeString	Put a Jagex string in the data buffer, NUL or newline terminated&lt;br /&gt;
pjstr2	&lt;br /&gt;
	Put a Jagex string in the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
pdata	writeBytes	Put part of another data buffer into the data buffer&lt;br /&gt;
psize2	&lt;br /&gt;
	Put the 0-65535 (2 bytes) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
psize1	&lt;br /&gt;
	Put the 0-255 (1 byte) size of how many bytes to read ahead into the data buffer&lt;br /&gt;
pSmart1or2 / psmart	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (-16384 to 16383)&lt;br /&gt;
pSmart1or2s / psmarts	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (1 or 2 bytes) into the data buffer (0 to 32767)&lt;br /&gt;
pSmart2or4	&lt;br /&gt;
	Put a &amp;quot;smart&amp;quot; number (2 or 4 bytes) into the data buffer&lt;br /&gt;
pBit	&lt;br /&gt;
	Put a variable number of bits into the data buffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Writing Alt (Obfuscation)&lt;br /&gt;
&lt;br /&gt;
​&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
p1_alt1	(todo)	&lt;br /&gt;
p1_alt2	&lt;br /&gt;
	&lt;br /&gt;
p1_alt3	&lt;br /&gt;
	&lt;br /&gt;
p2_alt1	&lt;br /&gt;
	&lt;br /&gt;
p2_alt2	&lt;br /&gt;
	&lt;br /&gt;
p2_alt3	&lt;br /&gt;
	&lt;br /&gt;
p3_alt1	&lt;br /&gt;
	&lt;br /&gt;
p3_alt2	&lt;br /&gt;
	&lt;br /&gt;
p3_alt3	&lt;br /&gt;
	&lt;br /&gt;
p4_alt1	&lt;br /&gt;
	&lt;br /&gt;
p4_alt2	&lt;br /&gt;
	&lt;br /&gt;
p4_alt3	&lt;br /&gt;
	&lt;br /&gt;
pdata_alt1	&lt;br /&gt;
	&lt;br /&gt;
pdata_alt2	&lt;br /&gt;
	&lt;br /&gt;
pdata_alt3	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reading&lt;br /&gt;
&lt;br /&gt;
​&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1	readByte	Get 1 byte from the data buffer&lt;br /&gt;
g2	readShort	Get 2 bytes from the data buffer&lt;br /&gt;
g3	readMedium	Get 3 bytes from the data buffer&lt;br /&gt;
g4	readInt	Get 4 bytes from the data buffer&lt;br /&gt;
g5	&lt;br /&gt;
	Get 5 bytes from the data buffer&lt;br /&gt;
g6	&lt;br /&gt;
	Get 6 bytes from the data buffer&lt;br /&gt;
g8	readLong	Get 8 bytes from the data buffer&lt;br /&gt;
gjstr	readString	Get a Jagex string from the data buffer, NUL or newline terminated&lt;br /&gt;
gjstr2	&lt;br /&gt;
	Get a Jagex string from the data buffer, with a version byte and NUL or newline terminated&lt;br /&gt;
gdata	readBytes	Get part of this data buffer and put it into another data buffer&lt;br /&gt;
gSmart1or2 (unofficial) / gsmart (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-16384 to 16383)&lt;br /&gt;
gSmart1or2s (unofficial) / gsmarts (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (0 to 32768)&lt;br /&gt;
gSmart1or2null (unofficial)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (1 or 2 bytes) from the data buffer (-1 to 32768) and treat -1 as &amp;quot;null&amp;quot;&lt;br /&gt;
gExtended1or2 (unofficial)	&lt;br /&gt;
	Get a variable amount of &amp;quot;smart&amp;quot; numbers from the data buffer until there's none left&lt;br /&gt;
gSmart2or4 (official)	&lt;br /&gt;
	Get a &amp;quot;smart&amp;quot; number (2 or 4 bytes) from the data buffer&lt;br /&gt;
gBit	&lt;br /&gt;
	Get a variable number of bits from the data buffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reading Alt (Obfuscation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jagex Name	RSPS Name	Description&lt;br /&gt;
g1_alt1	(todo)	&lt;br /&gt;
g1_alt2	&lt;br /&gt;
	&lt;br /&gt;
g1_alt3	&lt;br /&gt;
	&lt;br /&gt;
g2_alt1	&lt;br /&gt;
	&lt;br /&gt;
g2_alt2	&lt;br /&gt;
	&lt;br /&gt;
g2_alt3	&lt;br /&gt;
	&lt;br /&gt;
g3_alt1	&lt;br /&gt;
	&lt;br /&gt;
g3_alt2	&lt;br /&gt;
	&lt;br /&gt;
g3_alt3	&lt;br /&gt;
	&lt;br /&gt;
g4_alt1	&lt;br /&gt;
	&lt;br /&gt;
g4_alt2	&lt;br /&gt;
	&lt;br /&gt;
g4_alt3	&lt;br /&gt;
	&lt;br /&gt;
gdata_alt1	&lt;br /&gt;
	&lt;br /&gt;
gdata_alt2	&lt;br /&gt;
	&lt;br /&gt;
gdata_alt3	&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Server Logic&lt;br /&gt;
&lt;br /&gt;
​The server has some unique behaviors when processing packets. RSProt has some info covering packet limits that the server receives but I'll go over that here as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Client packets are separated into two types - client events (tracking/handled internally by the client) and user events (actionable inputs).&lt;br /&gt;
&lt;br /&gt;
When the server reaches the limit of 10 user events or 50 client events, packet decoding stops for that player this tick and continues again next tick. These limits may vary depending on your revision if you care about that level of detail, OSRS made a change at one point to increase it to 10 user events from 5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server packets are also separated into two types - high priority, and low priority. That's two packet queues you write into, this helps improve game responsiveness because the client will only process 5-100 packets every 20ms. The important packets process first (map/info packets/variables) and the lower-priority content packets appear after.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority	Name&lt;br /&gt;
High	VARP_SMALL / VARP_LARGE&lt;br /&gt;
High	PLAYER_INFO&lt;br /&gt;
Low	IF_SETTEXT&lt;br /&gt;
(todo ...)	(todo ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
​Deobfuscating Clients&lt;br /&gt;
&lt;br /&gt;
I'm going to take you through what it looks like when you're looking at a correctly named client vs average RSPS client:&lt;br /&gt;
&lt;br /&gt;
[CODE=java]&lt;br /&gt;
&lt;br /&gt;
if (this.packetType == 176) {&lt;br /&gt;
&lt;br /&gt;
    this.daysSinceRecoveriesChanged = this.in.g1_alt2();&lt;br /&gt;
&lt;br /&gt;
    this.unreadMessages = this.in.g2_alt2();&lt;br /&gt;
&lt;br /&gt;
    this.warnMembersInNonMembers = this.in.g1();&lt;br /&gt;
&lt;br /&gt;
    this.lastAddress = this.in.g4_alt3();&lt;br /&gt;
&lt;br /&gt;
    this.daysSinceLastLogin = this.in.g2();&lt;br /&gt;
&lt;br /&gt;
    // ...&lt;br /&gt;
&lt;br /&gt;
    this.packetType = -1;&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
&lt;br /&gt;
}[/CODE]&lt;br /&gt;
&lt;br /&gt;
[CODE=java]&lt;br /&gt;
if(pktType == 176)&lt;br /&gt;
{&lt;br /&gt;
    daysSinceRecovChange = inStream.method427();&lt;br /&gt;
    unreadMessages = inStream.method435();&lt;br /&gt;
    membersInt = inStream.readUnsignedByte();&lt;br /&gt;
    anInt1193 = inStream.method440();&lt;br /&gt;
    daysSinceLastLogin = inStream.readUnsignedWord();&lt;br /&gt;
&lt;br /&gt;
    // ...&lt;br /&gt;
    pktType = -1;&lt;br /&gt;
    return true;&lt;br /&gt;
}[/CODE]&lt;br /&gt;
&lt;br /&gt;
With the right Jagex naming, you can calculate the packet length by just adding 1 (g1) + 2 (g2) + 1 (g1) + 4 (g4) + 2 (g2) and know which alt methods to read with immediately.&lt;br /&gt;
&lt;br /&gt;
Sources&lt;br /&gt;
&lt;br /&gt;
    Lost City - 2004Scape (2024)&lt;br /&gt;
    Blurite - RSProt (2024)&lt;br /&gt;
    NXT beta client messages (2016)&lt;br /&gt;
    NXT beta server messages (2016)&lt;br /&gt;
    NXT beta C++ function names (2016)&lt;br /&gt;
    Password Applet decompiled (2009)&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=482</id>
		<title>Data Collection</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=482"/>
		<updated>2024-06-05T08:47:45Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* OSRS Spawns 2023-09 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== OSRS Spawns 2023-09 ===&lt;br /&gt;
[[:File:NPC locations with regions - regions.tsv|NPC locations with regions - regions.tsv]]&lt;br /&gt;
&lt;br /&gt;
[[:File:NPC locations with regions - regions cook.tsv|NPC locations with regions - regions cook.tsv]]&lt;br /&gt;
&lt;br /&gt;
=== OSRS Spawns 2020-07-04 ===&lt;br /&gt;
''From the RuneScape Wiki Discord, courtesy of Mod Nin.''&lt;br /&gt;
&lt;br /&gt;
[[:File:NPCList-3.csv|NPCList.csv]]&lt;br /&gt;
&lt;br /&gt;
==== Transcript ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
BlackHawk — 07/02/2020 4:18 PM&lt;br /&gt;
@Shauny, reckon it would be possible to try to get some updated npc coordinates?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 10:56 AM&lt;br /&gt;
^ I can look into this for you&lt;br /&gt;
Not sure how Shauny would have created that list, if someone could ping me the old list I'll try and make one in the same format&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/03/2020 11:32 AM&lt;br /&gt;
I'll find it now&lt;br /&gt;
Here's the list before we started removing: https://runescape.wiki/?oldid=32364682&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 1:22 PM&lt;br /&gt;
I'll see what I can do 🙂&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 2:06 PM&lt;br /&gt;
NPCList.csv 737 KB - https://runewiki.org/File:NPCList-1.csv&lt;br /&gt;
Hopefully that works!&lt;br /&gt;
It's a few months out-of-date because of some remote working limitations&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 7:33 AM&lt;br /&gt;
Had a look at wisps specifically, they're not appearing on the list because they're spawned via script slightly after the server boots&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/04/2020 7:59 AM&lt;br /&gt;
Thanks for looking! Are they the only NPC that function like that or are there others?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:01 AM&lt;br /&gt;
Can only assume there's more&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:10 AM&lt;br /&gt;
NPCList.csv 828 KB - https://runewiki.org/File:NPCList-2.csv&lt;br /&gt;
Disabled NPC movement and let the server sit for a minute before capturing that list&lt;br /&gt;
Seems a bit more complete&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:13 AM&lt;br /&gt;
Hm&lt;br /&gt;
I think there is still stuff missing&lt;br /&gt;
Eg paul gower&lt;br /&gt;
Unless he is spawned with script too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:16 AM&lt;br /&gt;
Does he only appear in the weird gower quest looping area?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:18 AM&lt;br /&gt;
Next to andrew gower, both in life altar and  varrock farm&lt;br /&gt;
Im not home atm, ill see if i can get a list of others i think are missing when i get home &lt;br /&gt;
A lot of fremennik slayer dungeon npcs were missing too&lt;br /&gt;
And sophanem slayer dungeon too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:38 AM&lt;br /&gt;
NPCList.csv 903 KB - https://runewiki.org/File:NPCList-3.csv&lt;br /&gt;
I think I figured out the problem, that should have those remaining ones&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:41 AM&lt;br /&gt;
:BlessWiki:&lt;br /&gt;
Is the list in any particular order?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:43 AM&lt;br /&gt;
Roughly in the order that they're loaded in&lt;br /&gt;
You can see all the wisps are near the bottom since they're spawned in dynamically&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:21 PM&lt;br /&gt;
Hi, just butting in to note that the penguin spy NPCs seem to be missing (IDs 8094 - 8103) although this week's disguises are all listed&lt;br /&gt;
Are the spies generated dynamically too?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:22 PM&lt;br /&gt;
I think how he did it is that he made a dump from  a test server&lt;br /&gt;
So it would make sense only one rotation of pengs is in there&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:27 PM&lt;br /&gt;
That makes sense&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:29 PM&lt;br /&gt;
Some of them are floating above the clan wars plateau as well&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=481</id>
		<title>Configs/NpcType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=481"/>
		<updated>2024-05-27T07:16:44Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|desc&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|12&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|readyanim&lt;br /&gt;
|13&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|op&lt;br /&gt;
|30-39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|recol&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|retex&lt;br /&gt;
|41&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|head&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|91&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|92&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|minimap=no&lt;br /&gt;
|93&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|vislevel&lt;br /&gt;
|95&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizeh&lt;br /&gt;
|97&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizev&lt;br /&gt;
|98&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|alwaysontop=yes&lt;br /&gt;
|99&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ambient&lt;br /&gt;
|100&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|contrast&lt;br /&gt;
|101&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|headicon&lt;br /&gt;
|102&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|turnspeed&lt;br /&gt;
|103&lt;br /&gt;
|Added 253 (2004-09-01)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multinpc&lt;br /&gt;
|106&lt;br /&gt;
|Added 294 (2005-02-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|active=no&lt;br /&gt;
|107&lt;br /&gt;
|Added 311 (2005-05-05)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''OSRS'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|category&lt;br /&gt;
|18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|param&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''RS2/RS3'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|42&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|45&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|113&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|119&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|137&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|141&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|142&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|143&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|150-154&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|163&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|170-175&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|param&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=480</id>
		<title>Configs/NpcType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=480"/>
		<updated>2024-05-27T07:14:17Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|desc&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|12&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|readyanim&lt;br /&gt;
|13&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|op&lt;br /&gt;
|30-39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|recol&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|retex&lt;br /&gt;
|41&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|head&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|91&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|92&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|minimap=no&lt;br /&gt;
|93&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|vislevel&lt;br /&gt;
|95&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizeh&lt;br /&gt;
|97&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizev&lt;br /&gt;
|98&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|alwaysontop=yes&lt;br /&gt;
|99&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ambient&lt;br /&gt;
|100&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|contrast&lt;br /&gt;
|101&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|headicon&lt;br /&gt;
|102&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|turnspeed&lt;br /&gt;
|103&lt;br /&gt;
|Added 253 (2004-09-01)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multinpc&lt;br /&gt;
|106&lt;br /&gt;
|Added 294 (2005-02-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|active=no&lt;br /&gt;
|107&lt;br /&gt;
|Added 311 (2005-05-05)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''OSRS'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|category&lt;br /&gt;
|18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|param&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''RS2/RS3'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|42&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|45&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|113&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|119&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|137&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|141&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|142&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|143&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|150-154&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|163&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|170-175&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|param&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=479</id>
		<title>Configs/NpcType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=479"/>
		<updated>2024-05-27T07:13:52Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|desc&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|12&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|readyanim&lt;br /&gt;
|13&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|op&lt;br /&gt;
|30-39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|recol&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|retex&lt;br /&gt;
|41&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|head&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|91&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|92&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|minimap=no&lt;br /&gt;
|93&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|vislevel&lt;br /&gt;
|95&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizeh&lt;br /&gt;
|97&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizev&lt;br /&gt;
|98&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|alwaysontop=yes&lt;br /&gt;
|99&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ambient&lt;br /&gt;
|100&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|contrast&lt;br /&gt;
|101&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|headicon&lt;br /&gt;
|102&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|turnspeed&lt;br /&gt;
|103&lt;br /&gt;
|Added 253 (2004-09-01)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multinpc&lt;br /&gt;
|106&lt;br /&gt;
|Added 294 (2005-02-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|active=no&lt;br /&gt;
|107&lt;br /&gt;
|Added 311 (2005-05-05)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''OSRS'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|category&lt;br /&gt;
|18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''RS2/RS3'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|42&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|45&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|113&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|119&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|137&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|141&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|142&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|143&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|150-154&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|163&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|170-175&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=478</id>
		<title>Configs/NpcType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=478"/>
		<updated>2024-05-27T07:13:25Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|desc&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|12&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|readyanim&lt;br /&gt;
|13&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|op&lt;br /&gt;
|30-39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|recol&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|head&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|91&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|92&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|minimap=no&lt;br /&gt;
|93&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|vislevel&lt;br /&gt;
|95&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizeh&lt;br /&gt;
|97&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizev&lt;br /&gt;
|98&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|alwaysontop=yes&lt;br /&gt;
|99&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ambient&lt;br /&gt;
|100&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|contrast&lt;br /&gt;
|101&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|headicon&lt;br /&gt;
|102&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|turnspeed&lt;br /&gt;
|103&lt;br /&gt;
|Added 253 (2004-09-01)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multinpc&lt;br /&gt;
|106&lt;br /&gt;
|Added 294 (2005-02-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|active=no&lt;br /&gt;
|107&lt;br /&gt;
|Added 311 (2005-05-05)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''OSRS'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|category&lt;br /&gt;
|18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''RS2/RS3'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|41&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|42&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|45&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|113&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|119&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|137&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|141&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|142&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|143&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|150-154&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|163&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|170-175&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=477</id>
		<title>Configs/NpcType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=477"/>
		<updated>2024-05-27T07:12:46Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|desc&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|12&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|readyanim&lt;br /&gt;
|13&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|op&lt;br /&gt;
|30-39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|recol&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|41&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|42&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|45&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|head&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|91&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|92&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|minimap=no&lt;br /&gt;
|93&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|vislevel&lt;br /&gt;
|95&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizeh&lt;br /&gt;
|97&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizev&lt;br /&gt;
|98&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|alwaysontop=yes&lt;br /&gt;
|99&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ambient&lt;br /&gt;
|100&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|contrast&lt;br /&gt;
|101&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|headicon&lt;br /&gt;
|102&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|turnspeed&lt;br /&gt;
|103&lt;br /&gt;
|Added 253 (2004-09-01)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multinpc&lt;br /&gt;
|106&lt;br /&gt;
|Added 294 (2005-02-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|active=no&lt;br /&gt;
|107&lt;br /&gt;
|Added 311 (2005-05-05)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|109&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''OSRS'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|category&lt;br /&gt;
|18&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|116&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|117&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|122&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|'''RS2/RS3'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|111&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|113&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|114&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|115&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|118&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|119&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|121&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|123&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|125&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|127&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|128&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|134&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|135&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|136&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|137&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|138&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|140&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|141&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|142&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|143&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|150-154&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|155&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|158&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|159&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|160&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|162&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|163&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|164&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|168&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|169&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|170-175&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|178&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|180&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|181&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|182&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|249&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=476</id>
		<title>Configs/NpcType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=476"/>
		<updated>2024-05-27T06:58:45Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|desc&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|size&lt;br /&gt;
|12&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|readyanim&lt;br /&gt;
|13&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|walkanim&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|op&lt;br /&gt;
|30-39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|recol&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|head&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|91&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|92&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|minimap=no&lt;br /&gt;
|93&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|vislevel&lt;br /&gt;
|95&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizeh&lt;br /&gt;
|97&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizev&lt;br /&gt;
|98&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|alwaysontop=yes&lt;br /&gt;
|99&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ambient&lt;br /&gt;
|100&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|contrast&lt;br /&gt;
|101&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|headicon&lt;br /&gt;
|102&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|turnspeed&lt;br /&gt;
|103&lt;br /&gt;
|Added 253 (2004-09-01)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multinpc&lt;br /&gt;
|106&lt;br /&gt;
|Added 294 (2005-02-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|active=no&lt;br /&gt;
|107&lt;br /&gt;
|Added 311 (2005-05-05)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=475</id>
		<title>Configs/NpcType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/NpcType&amp;diff=475"/>
		<updated>2024-05-27T06:55:03Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; !Property !Opcode !History !Notes |- | |1 |Added 186 (2003-12-02) | |- | |2 |Added 186 (2003-12-02) | |- | |3 |Added 186 (2003-12-02) | |- | |12 |Added 186 (2003-12-02) | |- | |13 |Added 186 (2003-12-02) | |- | |14 |Added 186 (2003-12-02) | |- | |16 |Added 186 (2003-12-02) Removed 249 (2004-08-09) | |- | |17 |Added 186 (2003-12-02) | |- | |30-39 |Added 186 (2003-12-02) | |- | |40 |Added 186 (2003-12-02) | |- | |60 |Added 186 (2003-12-02) | |- | |90 |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|12&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|13&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|16&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|30-39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|91&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|92&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|93&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|95&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|97&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|98&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|99&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|100&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|101&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|102&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|103&lt;br /&gt;
|Added 253 (2004-09-01)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|106&lt;br /&gt;
|Added 294 (2005-02-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|107&lt;br /&gt;
|Added 311 (2005-05-05)&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=474</id>
		<title>Data Collection</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=474"/>
		<updated>2024-05-20T18:21:09Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== OSRS Spawns 2023-09 ===&lt;br /&gt;
https://docs.google.com/spreadsheets/d/11D7xWpW7jO1cHsx59UiHjAL8Mwf4G_eZ_ciMA2gTBLk&lt;br /&gt;
&lt;br /&gt;
[[:File:NPC locations with regions - regions.tsv|NPC locations with regions - regions.tsv]]&lt;br /&gt;
&lt;br /&gt;
[[:File:NPC locations with regions - regions cook.tsv|NPC locations with regions - regions cook.tsv]]&lt;br /&gt;
&lt;br /&gt;
=== OSRS Spawns 2020-07-04 ===&lt;br /&gt;
''From the RuneScape Wiki Discord, courtesy of Mod Nin.''&lt;br /&gt;
&lt;br /&gt;
[[:File:NPCList-3.csv|NPCList.csv]]&lt;br /&gt;
&lt;br /&gt;
==== Transcript ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
BlackHawk — 07/02/2020 4:18 PM&lt;br /&gt;
@Shauny, reckon it would be possible to try to get some updated npc coordinates?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 10:56 AM&lt;br /&gt;
^ I can look into this for you&lt;br /&gt;
Not sure how Shauny would have created that list, if someone could ping me the old list I'll try and make one in the same format&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/03/2020 11:32 AM&lt;br /&gt;
I'll find it now&lt;br /&gt;
Here's the list before we started removing: https://runescape.wiki/?oldid=32364682&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 1:22 PM&lt;br /&gt;
I'll see what I can do 🙂&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 2:06 PM&lt;br /&gt;
NPCList.csv 737 KB - https://runewiki.org/File:NPCList-1.csv&lt;br /&gt;
Hopefully that works!&lt;br /&gt;
It's a few months out-of-date because of some remote working limitations&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 7:33 AM&lt;br /&gt;
Had a look at wisps specifically, they're not appearing on the list because they're spawned via script slightly after the server boots&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/04/2020 7:59 AM&lt;br /&gt;
Thanks for looking! Are they the only NPC that function like that or are there others?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:01 AM&lt;br /&gt;
Can only assume there's more&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:10 AM&lt;br /&gt;
NPCList.csv 828 KB - https://runewiki.org/File:NPCList-2.csv&lt;br /&gt;
Disabled NPC movement and let the server sit for a minute before capturing that list&lt;br /&gt;
Seems a bit more complete&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:13 AM&lt;br /&gt;
Hm&lt;br /&gt;
I think there is still stuff missing&lt;br /&gt;
Eg paul gower&lt;br /&gt;
Unless he is spawned with script too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:16 AM&lt;br /&gt;
Does he only appear in the weird gower quest looping area?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:18 AM&lt;br /&gt;
Next to andrew gower, both in life altar and  varrock farm&lt;br /&gt;
Im not home atm, ill see if i can get a list of others i think are missing when i get home &lt;br /&gt;
A lot of fremennik slayer dungeon npcs were missing too&lt;br /&gt;
And sophanem slayer dungeon too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:38 AM&lt;br /&gt;
NPCList.csv 903 KB - https://runewiki.org/File:NPCList-3.csv&lt;br /&gt;
I think I figured out the problem, that should have those remaining ones&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:41 AM&lt;br /&gt;
:BlessWiki:&lt;br /&gt;
Is the list in any particular order?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:43 AM&lt;br /&gt;
Roughly in the order that they're loaded in&lt;br /&gt;
You can see all the wisps are near the bottom since they're spawned in dynamically&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:21 PM&lt;br /&gt;
Hi, just butting in to note that the penguin spy NPCs seem to be missing (IDs 8094 - 8103) although this week's disguises are all listed&lt;br /&gt;
Are the spies generated dynamically too?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:22 PM&lt;br /&gt;
I think how he did it is that he made a dump from  a test server&lt;br /&gt;
So it would make sense only one rotation of pengs is in there&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:27 PM&lt;br /&gt;
That makes sense&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:29 PM&lt;br /&gt;
Some of them are floating above the clan wars plateau as well&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=File:NPC_locations_with_regions_-_regions_cook.tsv&amp;diff=473</id>
		<title>File:NPC locations with regions - regions cook.tsv</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=File:NPC_locations_with_regions_-_regions_cook.tsv&amp;diff=473"/>
		<updated>2024-05-20T18:20:50Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=File:NPC_locations_with_regions_-_regions.tsv&amp;diff=472</id>
		<title>File:NPC locations with regions - regions.tsv</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=File:NPC_locations_with_regions_-_regions.tsv&amp;diff=472"/>
		<updated>2024-05-20T18:20:38Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Known_File_Info&amp;diff=471</id>
		<title>Known File Info</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Known_File_Info&amp;diff=471"/>
		<updated>2024-05-19T05:26:33Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page was put together using publicly available information sourced from old OSRS livestreams and search engine results.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;src/models/&amp;lt;/code&amp;gt; is used for skeletons, animations, and models.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;src/scripts/&amp;lt;/code&amp;gt; is used for configs, interfaces, and runescripts.&lt;br /&gt;
&lt;br /&gt;
===Licensed Tools===&lt;br /&gt;
Photoshop&lt;br /&gt;
&lt;br /&gt;
3ds Max&lt;br /&gt;
&lt;br /&gt;
ZBrush&lt;br /&gt;
&lt;br /&gt;
===Internal Tools===&lt;br /&gt;
ScriptEd - Script/config editor&lt;br /&gt;
&lt;br /&gt;
MapEd - Map editor&lt;br /&gt;
&lt;br /&gt;
IconEd - Item sprite editor&lt;br /&gt;
&lt;br /&gt;
JagEd - Model editor&lt;br /&gt;
&lt;br /&gt;
JagFx - Sound editor&lt;br /&gt;
&lt;br /&gt;
Interface Editor&lt;br /&gt;
&lt;br /&gt;
Patch Editor (Music)&lt;br /&gt;
&lt;br /&gt;
Sample Loop Editor (Music)&lt;br /&gt;
&lt;br /&gt;
===Web Services===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
account-creation&lt;br /&gt;
account-creation-reports&lt;br /&gt;
account-association&lt;br /&gt;
accountappeal&lt;br /&gt;
adventurers-log&lt;br /&gt;
adventurers-log-updater&lt;br /&gt;
auth-reports&lt;br /&gt;
authentication-server&lt;br /&gt;
avatar-rs&lt;br /&gt;
beta-clanserver&lt;br /&gt;
beta-gamelogclienterror&lt;br /&gt;
beta-save-converter&lt;br /&gt;
beta-stockmarket&lt;br /&gt;
beta-usergame&lt;br /&gt;
billing-antifraud&lt;br /&gt;
billing-blackhawk&lt;br /&gt;
billing-boku&lt;br /&gt;
billing-bonds&lt;br /&gt;
billing-incomm&lt;br /&gt;
billing-paypal&lt;br /&gt;
billing-scstaff&lt;br /&gt;
billing-supersonic&lt;br /&gt;
billing-voucher&lt;br /&gt;
billing_amazonddd&lt;br /&gt;
billing_axeso&lt;br /&gt;
billing_ayden&lt;br /&gt;
billing_contact&lt;br /&gt;
billing_core&lt;br /&gt;
billing_derived&lt;br /&gt;
billing_iris_bridge&lt;br /&gt;
billing_jcoins&lt;br /&gt;
billing_membership&lt;br /&gt;
billing_realtime&lt;br /&gt;
billing_uol&lt;br /&gt;
billproxy&lt;br /&gt;
bugtracker-pw&lt;br /&gt;
caseload&lt;br /&gt;
clan-forum&lt;br /&gt;
clan-hiscores&lt;br /&gt;
clan-home&lt;br /&gt;
clan-reports&lt;br /&gt;
clanloginserver&lt;br /&gt;
clanloginserver_oldscape&lt;br /&gt;
clanserver&lt;br /&gt;
clanserver_oldscape&lt;br /&gt;
comment&lt;br /&gt;
commercial-crm&lt;br /&gt;
config-manager&lt;br /&gt;
configviewer&lt;br /&gt;
crscore&lt;br /&gt;
displaynames&lt;br /&gt;
dob&lt;br /&gt;
dodgymark&lt;br /&gt;
email-register&lt;br /&gt;
email-send&lt;br /&gt;
feature-signup&lt;br /&gt;
forum&lt;br /&gt;
forum_de&lt;br /&gt;
forum_fr&lt;br /&gt;
forum_pt&lt;br /&gt;
forum-escalations&lt;br /&gt;
friend-referral&lt;br /&gt;
friendloader&lt;br /&gt;
friendserver&lt;br /&gt;
fulfilment_gateway&lt;br /&gt;
gamelogclienterror&lt;br /&gt;
gamelogevent&lt;br /&gt;
gamelogeventflume&lt;br /&gt;
gamelogsession&lt;br /&gt;
gamelogsession_sa&lt;br /&gt;
gamelogspecs&lt;br /&gt;
gamelogtrade&lt;br /&gt;
gamelogtrade_oldschool&lt;br /&gt;
gamenote&lt;br /&gt;
global-variables-rt5&lt;br /&gt;
grouping-system&lt;br /&gt;
hijackscore_sa&lt;br /&gt;
hiscore&lt;br /&gt;
hiscore_ironman&lt;br /&gt;
hiscore_hardcore_ironman&lt;br /&gt;
hiscore_oldschool&lt;br /&gt;
hiscore_oldschool_ironman&lt;br /&gt;
hiscore_oldschool_hardmore_ironman&lt;br /&gt;
hiscore_oldschool_ultimate&lt;br /&gt;
hiscore_oldschool_deadman&lt;br /&gt;
hiscore_oldschool_seasonal&lt;br /&gt;
hiscore_oldschool_tournament&lt;br /&gt;
icuq&lt;br /&gt;
identity_service&lt;br /&gt;
instance-manager&lt;br /&gt;
iplog&lt;br /&gt;
iplogip&lt;br /&gt;
iploguid&lt;br /&gt;
iploguser&lt;br /&gt;
iplogusergame&lt;br /&gt;
iplogweblogin&lt;br /&gt;
item-grant&lt;br /&gt;
itemcodes&lt;br /&gt;
itemdb_oldschool&lt;br /&gt;
itemdb_rs&lt;br /&gt;
launcher-v4-bridge&lt;br /&gt;
lock&lt;br /&gt;
loginserver&lt;br /&gt;
loyalty-points&lt;br /&gt;
main&lt;br /&gt;
metric-collection&lt;br /&gt;
mtxn_config&lt;br /&gt;
mtxn_rs_shop&lt;br /&gt;
mtxn_sync_shop&lt;br /&gt;
namecache&lt;br /&gt;
news&lt;br /&gt;
offence-appeal&lt;br /&gt;
offence-derived-effects&lt;br /&gt;
offence-mute-receiver&lt;br /&gt;
offence-receiver&lt;br /&gt;
offence-viewer&lt;br /&gt;
oldschool_gim_hiscores&lt;br /&gt;
oldschool_hardcore_gim_hiscores&lt;br /&gt;
password_history&lt;br /&gt;
platform&lt;br /&gt;
player-categorisation&lt;br /&gt;
playerwatch&lt;br /&gt;
pmod&lt;br /&gt;
poll&lt;br /&gt;
profile-editor&lt;br /&gt;
prp&lt;br /&gt;
pvpkills&lt;br /&gt;
recovery_questions&lt;br /&gt;
rs2-broadcast&lt;br /&gt;
sn-integration&lt;br /&gt;
snapshot-incoming&lt;br /&gt;
snapshot-scheduler&lt;br /&gt;
snapshot2-core&lt;br /&gt;
sportal&lt;br /&gt;
sso-store&lt;br /&gt;
staff_admin&lt;br /&gt;
stockmarket&lt;br /&gt;
stockmarket_oldschool&lt;br /&gt;
stockmarket_oldschool_deadman&lt;br /&gt;
stockmarket_oldschool_seasonal&lt;br /&gt;
stockmarket_oldschool_tournament&lt;br /&gt;
telemetry-ingress&lt;br /&gt;
temp-hiscores&lt;br /&gt;
ticketing&lt;br /&gt;
totp-authenticator&lt;br /&gt;
translate-de&lt;br /&gt;
translate-fr&lt;br /&gt;
translate-pt&lt;br /&gt;
trial-membership&lt;br /&gt;
twitter-bot&lt;br /&gt;
uid-passport&lt;br /&gt;
username&lt;br /&gt;
weblogin&lt;br /&gt;
website-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Data Extensions===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.base:&lt;br /&gt;
File Explorer description is &amp;quot;Animation template file&amp;quot;&lt;br /&gt;
This file represents animation skeletons and possibly some other metadata.&lt;br /&gt;
&lt;br /&gt;
.anim:&lt;br /&gt;
Animation frames. This gets applied to a skeleton + model.&lt;br /&gt;
&lt;br /&gt;
.jgd:&lt;br /&gt;
File Explorer description is &amp;quot;JGD text file&amp;quot;&lt;br /&gt;
This file is used in Jaged Mesh Editor (Jaged = &amp;quot;Jagex Editor&amp;quot;) as an intermediary format before packing to ob3.&lt;br /&gt;
&lt;br /&gt;
.ob3:&lt;br /&gt;
File Explorer description is &amp;quot;Jagex model file&amp;quot;&lt;br /&gt;
Current model format.&lt;br /&gt;
&lt;br /&gt;
.ob2:&lt;br /&gt;
Legacy model format, seen on models from 2007 and before.&lt;br /&gt;
&lt;br /&gt;
.jm2:&lt;br /&gt;
Internal map format e.g. &amp;quot;m50_50.jm2&amp;quot;&lt;br /&gt;
May stand for Jagex Map 2?&lt;br /&gt;
&lt;br /&gt;
.synth:&lt;br /&gt;
Synthesized sound effects.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Config Extensions===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.area&lt;br /&gt;
&lt;br /&gt;
.constant / .macro&lt;br /&gt;
&lt;br /&gt;
.cs2:&lt;br /&gt;
ClientScript&lt;br /&gt;
&lt;br /&gt;
.enum:&lt;br /&gt;
Enumerations&lt;br /&gt;
&lt;br /&gt;
.flo:&lt;br /&gt;
Floor overlay&lt;br /&gt;
&lt;br /&gt;
.flu:&lt;br /&gt;
Floor underlay&lt;br /&gt;
&lt;br /&gt;
.headbar&lt;br /&gt;
&lt;br /&gt;
.hitmark&lt;br /&gt;
&lt;br /&gt;
.hunt:&lt;br /&gt;
Hunt mode&lt;br /&gt;
&lt;br /&gt;
.idk:&lt;br /&gt;
Identity kit (player models)&lt;br /&gt;
&lt;br /&gt;
.inv:&lt;br /&gt;
Inventory&lt;br /&gt;
&lt;br /&gt;
.loc:&lt;br /&gt;
Location&lt;br /&gt;
&lt;br /&gt;
.npc:&lt;br /&gt;
Npc&lt;br /&gt;
&lt;br /&gt;
.obj:&lt;br /&gt;
Object&lt;br /&gt;
&lt;br /&gt;
.param:&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
.rs2:&lt;br /&gt;
RuneScript&lt;br /&gt;
&lt;br /&gt;
.seq:&lt;br /&gt;
Sequence&lt;br /&gt;
&lt;br /&gt;
.spotanim:&lt;br /&gt;
Spot animation&lt;br /&gt;
&lt;br /&gt;
.varp:&lt;br /&gt;
Player variables&lt;br /&gt;
&lt;br /&gt;
.varbit:&lt;br /&gt;
Player bit variables&lt;br /&gt;
&lt;br /&gt;
.varn:&lt;br /&gt;
Npc variables&lt;br /&gt;
&lt;br /&gt;
.varnbit:&lt;br /&gt;
Npc bit variables&lt;br /&gt;
&lt;br /&gt;
.vars:&lt;br /&gt;
Shared (world) variables&lt;br /&gt;
&lt;br /&gt;
.varsbit:&lt;br /&gt;
Shared (world) bit variables. Not sure that this exists.&lt;br /&gt;
&lt;br /&gt;
.varobj:&lt;br /&gt;
Object variables&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Config Counts===&lt;br /&gt;
varbit was added before/with 254.&lt;br /&gt;
&lt;br /&gt;
mes, mesanim, and param were added before/with 274.&lt;br /&gt;
hunt was included with the 274-289 caches but contained no entries.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Revision&lt;br /&gt;
!flo&lt;br /&gt;
!idk&lt;br /&gt;
!loc&lt;br /&gt;
!npc&lt;br /&gt;
!obj&lt;br /&gt;
!seq&lt;br /&gt;
!spotanim&lt;br /&gt;
!varp&lt;br /&gt;
!mes&lt;br /&gt;
!mesanim&lt;br /&gt;
!param&lt;br /&gt;
!varbit&lt;br /&gt;
|-&lt;br /&gt;
|194&lt;br /&gt;
|75&lt;br /&gt;
|72&lt;br /&gt;
|2976&lt;br /&gt;
|881&lt;br /&gt;
|1408&lt;br /&gt;
|760&lt;br /&gt;
|151&lt;br /&gt;
|288&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|204&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|2995&lt;br /&gt;
|941&lt;br /&gt;
|2481&lt;br /&gt;
|914&lt;br /&gt;
|238&lt;br /&gt;
|281&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|222&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|3371&lt;br /&gt;
|1008&lt;br /&gt;
|2859&lt;br /&gt;
|1007&lt;br /&gt;
|240&lt;br /&gt;
|293&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|225&lt;br /&gt;
|78&lt;br /&gt;
|82&lt;br /&gt;
|3387&lt;br /&gt;
|1017&lt;br /&gt;
|2886&lt;br /&gt;
|1027&lt;br /&gt;
|244&lt;br /&gt;
|295&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|254&lt;br /&gt;
|101&lt;br /&gt;
|82&lt;br /&gt;
|3855&lt;br /&gt;
|1162&lt;br /&gt;
|3142&lt;br /&gt;
|1191&lt;br /&gt;
|282&lt;br /&gt;
|320&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|274&lt;br /&gt;
|103&lt;br /&gt;
|82&lt;br /&gt;
|4671&lt;br /&gt;
|1359&lt;br /&gt;
|3894&lt;br /&gt;
|1363&lt;br /&gt;
|301&lt;br /&gt;
|359&lt;br /&gt;
|4&lt;br /&gt;
|18&lt;br /&gt;
|45&lt;br /&gt;
|71&lt;br /&gt;
|-&lt;br /&gt;
|289&lt;br /&gt;
|103&lt;br /&gt;
|82&lt;br /&gt;
|5116&lt;br /&gt;
|1596&lt;br /&gt;
|4089&lt;br /&gt;
|1504&lt;br /&gt;
|324&lt;br /&gt;
|394&lt;br /&gt;
|4&lt;br /&gt;
|18&lt;br /&gt;
|54&lt;br /&gt;
|179&lt;br /&gt;
|-&lt;br /&gt;
|298&lt;br /&gt;
|116&lt;br /&gt;
|82&lt;br /&gt;
|5836&lt;br /&gt;
|1805&lt;br /&gt;
|4484&lt;br /&gt;
|1756&lt;br /&gt;
|342&lt;br /&gt;
|423&lt;br /&gt;
|7&lt;br /&gt;
|18&lt;br /&gt;
|63&lt;br /&gt;
|260&lt;br /&gt;
|-&lt;br /&gt;
|299&lt;br /&gt;
|116&lt;br /&gt;
|82&lt;br /&gt;
|5836&lt;br /&gt;
|1805&lt;br /&gt;
|4484&lt;br /&gt;
|1756&lt;br /&gt;
|342&lt;br /&gt;
|423&lt;br /&gt;
|7&lt;br /&gt;
|18&lt;br /&gt;
|63&lt;br /&gt;
|260&lt;br /&gt;
|-&lt;br /&gt;
|308&lt;br /&gt;
|118&lt;br /&gt;
|82&lt;br /&gt;
|6628&lt;br /&gt;
|1978&lt;br /&gt;
|4677&lt;br /&gt;
|1990&lt;br /&gt;
|393&lt;br /&gt;
|444&lt;br /&gt;
|8&lt;br /&gt;
|19&lt;br /&gt;
|73&lt;br /&gt;
|397&lt;br /&gt;
|-&lt;br /&gt;
|317&lt;br /&gt;
|122&lt;br /&gt;
|84&lt;br /&gt;
|7199&lt;br /&gt;
|2266&lt;br /&gt;
|5553&lt;br /&gt;
|2195&lt;br /&gt;
|408&lt;br /&gt;
|493&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|627&lt;br /&gt;
|-&lt;br /&gt;
|319&lt;br /&gt;
|125&lt;br /&gt;
|84&lt;br /&gt;
|7389&lt;br /&gt;
|2291&lt;br /&gt;
|5614&lt;br /&gt;
|2260&lt;br /&gt;
|409&lt;br /&gt;
|499&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|693&lt;br /&gt;
|-&lt;br /&gt;
|321&lt;br /&gt;
|126&lt;br /&gt;
|84&lt;br /&gt;
|7397&lt;br /&gt;
|2304&lt;br /&gt;
|5615&lt;br /&gt;
|2267&lt;br /&gt;
|410&lt;br /&gt;
|500&lt;br /&gt;
|44&lt;br /&gt;
|20&lt;br /&gt;
|106&lt;br /&gt;
|693&lt;br /&gt;
|-&lt;br /&gt;
|327&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9006&lt;br /&gt;
|2483&lt;br /&gt;
|6211&lt;br /&gt;
|2380&lt;br /&gt;
|427&lt;br /&gt;
|532&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|885&lt;br /&gt;
|-&lt;br /&gt;
|330&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9159&lt;br /&gt;
|2580&lt;br /&gt;
|6453&lt;br /&gt;
|2564&lt;br /&gt;
|436&lt;br /&gt;
|552&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|961&lt;br /&gt;
|-&lt;br /&gt;
|332&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9293&lt;br /&gt;
|2591&lt;br /&gt;
|6512&lt;br /&gt;
|2581&lt;br /&gt;
|436&lt;br /&gt;
|556&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|994&lt;br /&gt;
|-&lt;br /&gt;
|336&lt;br /&gt;
|128&lt;br /&gt;
|84&lt;br /&gt;
|9399&lt;br /&gt;
|2633&lt;br /&gt;
|6541&lt;br /&gt;
|2662&lt;br /&gt;
|452&lt;br /&gt;
|566&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1016&lt;br /&gt;
|-&lt;br /&gt;
|337&lt;br /&gt;
|129&lt;br /&gt;
|84&lt;br /&gt;
|9744&lt;br /&gt;
|2734&lt;br /&gt;
|6562&lt;br /&gt;
|2715&lt;br /&gt;
|452&lt;br /&gt;
|571&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1051&lt;br /&gt;
|-&lt;br /&gt;
|339&lt;br /&gt;
|129&lt;br /&gt;
|84&lt;br /&gt;
|9746&lt;br /&gt;
|2747&lt;br /&gt;
|6587&lt;br /&gt;
|2720&lt;br /&gt;
|454&lt;br /&gt;
|571&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1051&lt;br /&gt;
|-&lt;br /&gt;
|340&lt;br /&gt;
|133&lt;br /&gt;
|84&lt;br /&gt;
|10042&lt;br /&gt;
|2790&lt;br /&gt;
|6654&lt;br /&gt;
|2750&lt;br /&gt;
|456&lt;br /&gt;
|595&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1332&lt;br /&gt;
|-&lt;br /&gt;
|345&lt;br /&gt;
|133&lt;br /&gt;
|84&lt;br /&gt;
|10285&lt;br /&gt;
|2941&lt;br /&gt;
|6766&lt;br /&gt;
|2894&lt;br /&gt;
|484&lt;br /&gt;
|606&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1395&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11196&lt;br /&gt;
|3153&lt;br /&gt;
|7005&lt;br /&gt;
|3108&lt;br /&gt;
|541&lt;br /&gt;
|644&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1621&lt;br /&gt;
|-&lt;br /&gt;
|357&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|358&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|359&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11345&lt;br /&gt;
|3200&lt;br /&gt;
|7158&lt;br /&gt;
|3138&lt;br /&gt;
|548&lt;br /&gt;
|659&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1766&lt;br /&gt;
|-&lt;br /&gt;
|362&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|11998&lt;br /&gt;
|3299&lt;br /&gt;
|7408&lt;br /&gt;
|3246&lt;br /&gt;
|568&lt;br /&gt;
|671&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1803&lt;br /&gt;
|-&lt;br /&gt;
|363&lt;br /&gt;
|150&lt;br /&gt;
|84&lt;br /&gt;
|12131&lt;br /&gt;
|3323&lt;br /&gt;
|7412&lt;br /&gt;
|3280&lt;br /&gt;
|570&lt;br /&gt;
|673&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1838&lt;br /&gt;
|-&lt;br /&gt;
|365&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|12734&lt;br /&gt;
|3509&lt;br /&gt;
|7620&lt;br /&gt;
|3547&lt;br /&gt;
|604&lt;br /&gt;
|700&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1954&lt;br /&gt;
|-&lt;br /&gt;
|366&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|12734&lt;br /&gt;
|3509&lt;br /&gt;
|7620&lt;br /&gt;
|3547&lt;br /&gt;
|604&lt;br /&gt;
|700&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|1954&lt;br /&gt;
|-&lt;br /&gt;
|367&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|13005&lt;br /&gt;
|3580&lt;br /&gt;
|7671&lt;br /&gt;
|3573&lt;br /&gt;
|610&lt;br /&gt;
|709&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2010&lt;br /&gt;
|-&lt;br /&gt;
|368&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|13874&lt;br /&gt;
|3636&lt;br /&gt;
|7804&lt;br /&gt;
|3804&lt;br /&gt;
|630&lt;br /&gt;
|709&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2010&lt;br /&gt;
|-&lt;br /&gt;
|369&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14004&lt;br /&gt;
|3670&lt;br /&gt;
|7810&lt;br /&gt;
|3840&lt;br /&gt;
|642&lt;br /&gt;
|714&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2043&lt;br /&gt;
|-&lt;br /&gt;
|372&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14210&lt;br /&gt;
|3727&lt;br /&gt;
|7934&lt;br /&gt;
|3878&lt;br /&gt;
|646&lt;br /&gt;
|718&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2086&lt;br /&gt;
|-&lt;br /&gt;
|374&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14416&lt;br /&gt;
|3803&lt;br /&gt;
|7939&lt;br /&gt;
|3940&lt;br /&gt;
|659&lt;br /&gt;
|721&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2092&lt;br /&gt;
|-&lt;br /&gt;
|376&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14882&lt;br /&gt;
|3820&lt;br /&gt;
|7941&lt;br /&gt;
|3970&lt;br /&gt;
|662&lt;br /&gt;
|723&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2098&lt;br /&gt;
|-&lt;br /&gt;
|377&lt;br /&gt;
|174&lt;br /&gt;
|84&lt;br /&gt;
|14974&lt;br /&gt;
|3852&lt;br /&gt;
|7956&lt;br /&gt;
|3997&lt;br /&gt;
|666&lt;br /&gt;
|725&lt;br /&gt;
|13&lt;br /&gt;
|20&lt;br /&gt;
|76&lt;br /&gt;
|2113&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Structure===&lt;br /&gt;
Game features are broken up into folders (organization arbitrarily chosen by the dev working on it).&lt;br /&gt;
&lt;br /&gt;
Configs and scripts are loaded recursively from every folder inside src/scripts.&lt;br /&gt;
&lt;br /&gt;
Models and animations are exposed to configs by their filename minus extension inside src/models.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;packing order&amp;quot; (client-facing IDs) are sequentially incremented any time a new file/config is detected. Occasionally, this packing order is reset. For example, NPCs may not be in the same order from one revision to another. It just forces the client to redownload those cache archives.&lt;br /&gt;
&lt;br /&gt;
Configs are structured pretty similarly to ini (not a true parser) where sections start with [] and contain key=value pairs:&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
// would be in something like example.npc&lt;br /&gt;
&lt;br /&gt;
[example_npc]&lt;br /&gt;
name=Example NPC&lt;br /&gt;
desc=Showing off a NPC config!&lt;br /&gt;
model1=man_head_bald&lt;br /&gt;
model2=man_jaw_moustache&lt;br /&gt;
&lt;br /&gt;
// would be in something like example.obj&lt;br /&gt;
&lt;br /&gt;
[example_obj]&lt;br /&gt;
name=Example Object&lt;br /&gt;
desc=Now showing off an Obj config!&lt;br /&gt;
model=inv_example_object&lt;br /&gt;
2dzoom=780&lt;br /&gt;
2dxof=-3&lt;br /&gt;
2dyof=-3&lt;br /&gt;
2dxan=432&lt;br /&gt;
2dyan=104&lt;br /&gt;
members=yes&lt;br /&gt;
&lt;br /&gt;
// would be in something like example.loc&lt;br /&gt;
&lt;br /&gt;
[example_loc]&lt;br /&gt;
name=Example Location&lt;br /&gt;
desc=Now showing off a Loc config!&lt;br /&gt;
// example_door would have multiple file names like example_door_0.ob2, example_door_Q.ob2&lt;br /&gt;
model=example_door&lt;br /&gt;
active=yes&lt;br /&gt;
recol1s=2&lt;br /&gt;
recol1d=0&lt;br /&gt;
recol2s=24&lt;br /&gt;
recol2d=4762&lt;br /&gt;
op1=Open&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;These configs would then be exposed to runescript and be given client-facing IDs when packing. The server scripts don't need to explicitly know any IDs because they get converted by the engine based on the packing order.&lt;br /&gt;
&lt;br /&gt;
===Folders===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pack/ - OSRS&lt;br /&gt;
&lt;br /&gt;
packconversion/ - RS3&lt;br /&gt;
&lt;br /&gt;
src/&lt;br /&gt;
src/animations/ - RS3&lt;br /&gt;
src/billboards/ - RS3&lt;br /&gt;
src/binary/&lt;br /&gt;
src/defaults/ - OSRS&lt;br /&gt;
src/interfaces/&lt;br /&gt;
src/maps/&lt;br /&gt;
src/maps/worldmap/&lt;br /&gt;
src/materials/ - RS3&lt;br /&gt;
src/mediastreams/ - RS3&lt;br /&gt;
src/models/&lt;br /&gt;
src/models/agility_shortcuts/&lt;br /&gt;
src/models/area_abyssal_space/&lt;br /&gt;
src/models/area_aide/&lt;br /&gt;
src/models/area_brimhaven_dungeon/&lt;br /&gt;
src/models/area_clanwars/&lt;br /&gt;
src/models/area_dagganoth_dungeon/&lt;br /&gt;
src/models/area_dorgesh/&lt;br /&gt;
src/models/area_falador/&lt;br /&gt;
src/models/area_fossil/&lt;br /&gt;
src/models/area_fossil/fossil_underwater/&lt;br /&gt;
src/models/area_fremennik/&lt;br /&gt;
src/models/area_goblin_caves/&lt;br /&gt;
src/models/area_godwars/&lt;br /&gt;
src/models/area_grand_exchange/&lt;br /&gt;
src/models/area_harmless/&lt;br /&gt;
src/models/area_hellhound_lair/&lt;br /&gt;
src/models/area_ice/&lt;br /&gt;
src/models/area_mage_arena/&lt;br /&gt;
src/models/area_mor_ul_rek/&lt;br /&gt;
src/models/area_nexus/&lt;br /&gt;
src/models/area_rimmington/&lt;br /&gt;
src/models/area_rogues_den/&lt;br /&gt;
src/models/area_sanguine/&lt;br /&gt;
src/models/area_sos/&lt;br /&gt;
src/models/area_tasks/&lt;br /&gt;
src/models/area_tbow_cleanup/&lt;br /&gt;
src/models/area_vm/&lt;br /&gt;
src/models/area_warguild/&lt;br /&gt;
src/models/area_wilderness/&lt;br /&gt;
src/models/area_zeah/&lt;br /&gt;
src/models/bounty_hunter/&lt;br /&gt;
src/models/canoeing/&lt;br /&gt;
src/models/chathead/&lt;br /&gt;
src/models/deadman/&lt;br /&gt;
src/models/game_agilityarena/&lt;br /&gt;
src/models/game_agilitypyramid/&lt;br /&gt;
src/models/game_aluft_aloft/&lt;br /&gt;
src/models/game_barbassault/&lt;br /&gt;
src/models/game_barrows/&lt;br /&gt;
src/models/game_battle_royale/&lt;br /&gt;
src/models/game_blast_furnace/&lt;br /&gt;
src/models/game_boardgames/&lt;br /&gt;
src/models/game_brew/&lt;br /&gt;
src/models/game_castlewars/&lt;br /&gt;
src/models/game_cba/&lt;br /&gt;
src/models/game_champion/&lt;br /&gt;
src/models/game_clanwars/&lt;br /&gt;
src/models/game_ii/&lt;br /&gt;
src/models/game_mole/&lt;br /&gt;
src/models/game_ntk/&lt;br /&gt;
src/models/game_pest/&lt;br /&gt;
src/models/game_templetrek/&lt;br /&gt;
src/models/game_templetrek_2/&lt;br /&gt;
src/models/game_tob/&lt;br /&gt;
src/models/game_tog/&lt;br /&gt;
src/models/game_trail/&lt;br /&gt;
src/models/game_trick_or_treat/&lt;br /&gt;
src/models/game_tzhaar/&lt;br /&gt;
src/models/game_werewolfagility/&lt;br /&gt;
src/models/holiday_events/&lt;br /&gt;
src/models/human/&lt;br /&gt;
src/models/human/anim/&lt;br /&gt;
src/models/human/anim/100_guide/&lt;br /&gt;
src/models/human/anim/100_james/&lt;br /&gt;
src/models/human/anim/100_op/&lt;br /&gt;
src/models/human/anim/100_pirate/&lt;br /&gt;
src/models/human/anim/100_sir/&lt;br /&gt;
src/models/human/anim/action - common/&lt;br /&gt;
src/models/human/anim/action - rare/&lt;br /&gt;
src/models/human/anim/agility_shortcuts/&lt;br /&gt;
src/models/human/anim/aluft_aloft/&lt;br /&gt;
src/models/human/anim/area_abyssal/&lt;br /&gt;
src/models/human/anim/area_aide/&lt;br /&gt;
src/models/human/anim/area_dorgesh/&lt;br /&gt;
src/models/human/anim/area_fossil/&lt;br /&gt;
src/models/human/anim/area_fremmenik/&lt;br /&gt;
src/models/human/anim/area_goblin_caves/&lt;br /&gt;
src/models/human/anim/area_godwars/&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/&lt;br /&gt;
src/models/human/anim/area_harmless/&lt;br /&gt;
src/models/human/anim/area_hellhound_lair_anim/&lt;br /&gt;
src/models/human/anim/area_keldagrim/&lt;br /&gt;
src/models/human/anim/area_roguesden/&lt;br /&gt;
src/models/human/anim/area_sos/&lt;br /&gt;
src/models/human/anim/area_tbow_cleanup/ [blurry]&lt;br /&gt;
src/models/human/anim/area_tzhaarcaves/&lt;br /&gt;
src/models/human/anim/area_zeah/&lt;br /&gt;
src/models/human/anim/area_zeah/dclaws_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/&lt;br /&gt;
src/models/human/anim/area_zeah/dsword_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dtaxe_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/dtknives_spec/&lt;br /&gt;
src/models/human/anim/area_zeah/elder_maul/&lt;br /&gt;
src/models/human/anim/basic + tutorial/&lt;br /&gt;
src/models/human/anim/black_knights_fortress/&lt;br /&gt;
src/models/human/anim/brain_robbery/&lt;br /&gt;
src/models/human/anim/burgh_anims/&lt;br /&gt;
src/models/human/anim/canoeing/&lt;br /&gt;
src/models/human/anim/cluefest/&lt;br /&gt;
src/models/human/anim/combat - free/&lt;br /&gt;
src/models/human/anim/combat - members/&lt;br /&gt;
src/models/human/anim/diary_teleports/&lt;br /&gt;
src/models/human/anim/dmm_anims/&lt;br /&gt;
src/models/human/anim/doric/&lt;br /&gt;
src/models/human/anim/dragon_tools/&lt;br /&gt;
src/models/human/anim/dragon_warhammer/&lt;br /&gt;
src/models/human/anim/drilldemon/&lt;br /&gt;
src/models/human/anim/ectophial_teleport/&lt;br /&gt;
src/models/human/anim/emote/&lt;br /&gt;
src/models/human/anim/fai_falador/&lt;br /&gt;
src/models/human/anim/fai_varrock/&lt;br /&gt;
src/models/human/anim/fishing_contest/&lt;br /&gt;
src/models/human/anim/game - agilityarena/&lt;br /&gt;
src/models/human/anim/game_agilitypyramid/&lt;br /&gt;
src/models/human/anim/game_barbassault/&lt;br /&gt;
src/models/human/anim/game_barrows/&lt;br /&gt;
src/models/human/anim/game_blast_furnace/&lt;br /&gt;
src/models/human/anim/game_boardgames/&lt;br /&gt;
src/models/human/anim/game_brew/&lt;br /&gt;
src/models/human/anim/game_castlewars/&lt;br /&gt;
src/models/human/anim/game_champion/&lt;br /&gt;
src/models/human/anim/game_clue_scroll/&lt;br /&gt;
src/models/human/anim/Game_ii/&lt;br /&gt;
src/models/human/anim/game_ntk/&lt;br /&gt;
src/models/human/anim/game_pest/&lt;br /&gt;
src/models/human/anim/game_templetrek/&lt;br /&gt;
src/models/human/anim/game_tob/&lt;br /&gt;
src/models/human/anim/game_tog/&lt;br /&gt;
src/models/human/anim/game_trial/&lt;br /&gt;
src/models/human/anim/ghoul/&lt;br /&gt;
src/models/human/anim/goblin_diplomacy/&lt;br /&gt;
src/models/human/anim/gravedigger_macro/&lt;br /&gt;
src/models/human/anim/holiday_events/&lt;br /&gt;
src/models/human/anim/horsey/&lt;br /&gt;
src/models/human/anim/macro_mind/&lt;br /&gt;
src/models/human/anim/macroevent/&lt;br /&gt;
src/models/human/anim/movement/&lt;br /&gt;
src/models/human/anim/magic - free/&lt;br /&gt;
src/models/human/anim/magic - members/&lt;br /&gt;
src/models/human/anim/magic_carpet/&lt;br /&gt;
src/models/human/anim/magictraining/&lt;br /&gt;
src/models/human/anim/max_cape/&lt;br /&gt;
src/models/human/anim/mud_skipper/&lt;br /&gt;
src/models/human/anim/necro_plant_res/&lt;br /&gt;
src/models/human/anim/necro_teleport/&lt;br /&gt;
src/models/human/anim/Npc_improvement/&lt;br /&gt;
src/models/human/anim/addskull/&lt;br /&gt;
src/models/human/anim/petrock/&lt;br /&gt;
src/models/human/anim/plague_city/&lt;br /&gt;
src/models/human/anim/poh/&lt;br /&gt;
src/models/human/anim/poh2/&lt;br /&gt;
src/models/human/anim/poh3/&lt;br /&gt;
src/models/human/anim/poh4/&lt;br /&gt;
src/models/human/anim/qp_cook/&lt;br /&gt;
src/models/human/anim/qp_demon_slayer/&lt;br /&gt;
src/models/human/anim/qp_digsite/&lt;br /&gt;
src/models/human/anim/qp_dragon_slayer/&lt;br /&gt;
src/models/human/anim/qp_dwarf_mcannon/&lt;br /&gt;
src/models/human/anim/qp_elem1/&lt;br /&gt;
src/models/human/anim/Qp_observatory/&lt;br /&gt;
src/models/human/anim/qp_quest_impcatcher/&lt;br /&gt;
src/models/human/anim/quest - deathplateau/&lt;br /&gt;
src/models/human/anim/quest - druidic_spirit/&lt;br /&gt;
src/models/human/anim/quest - regicide/&lt;br /&gt;
src/models/human/anim/quest_animal_magnitism/&lt;br /&gt;
src/models/human/anim/quest_burgh/&lt;br /&gt;
src/models/human/anim/quest_digsite/&lt;br /&gt;
src/models/human/anim/quest_dragon_slayer_2/&lt;br /&gt;
src/models/human/anim/quest_dragonslayer2/&lt;br /&gt;
src/models/human/anim/quest_legendarysword/&lt;br /&gt;
src/models/human/anim/quest_legendarysword2/&lt;br /&gt;
src/models/human/anim/quest_LOTR/&lt;br /&gt;
src/models/human/anim/quest_lunar/&lt;br /&gt;
src/models/human/anim/quest_mdaughter/&lt;br /&gt;
src/models/human/anim/quest_mm2/&lt;br /&gt;
src/models/human/anim/quest_myreque_4/&lt;br /&gt;
src/models/human/anim/quest_plaguecity/&lt;br /&gt;
src/models/human/anim/quest_ratcatcher/&lt;br /&gt;
src/models/human/anim/quest_summoning/&lt;br /&gt;
src/models/human/anim/quest_tbwt/&lt;br /&gt;
src/models/human/anim/quest_the_feud/&lt;br /&gt;
src/models/human/anim/quest_tourtrap/&lt;br /&gt;
src/models/human/anim/quest_tower_of_life/&lt;br /&gt;
src/models/human/anim/quest_troll_rescue/&lt;br /&gt;
src/models/human/anim/quest_trollromance/&lt;br /&gt;
src/models/human/anim/quest_twocats/&lt;br /&gt;
src/models/human/anim/quest_vampires/&lt;br /&gt;
src/models/human/anim/quest_vampireslayer/&lt;br /&gt;
src/models/human/anim/quest_vampirewarrior/&lt;br /&gt;
src/models/human/anim/quest_varock_museum/&lt;br /&gt;
src/models/human/anim/quest_viking/&lt;br /&gt;
src/models/human/anim/quest_wanted/&lt;br /&gt;
src/models/human/anim/quest_watchtower/&lt;br /&gt;
src/models/human/anim/quest_werewolf_agility_arena/&lt;br /&gt;
src/models/human/anim/quest_zogre/&lt;br /&gt;
src/models/human/anim/raids/&lt;br /&gt;
src/models/human/anim/romeo_juliet/&lt;br /&gt;
src/models/human/anim/rum_deal/&lt;br /&gt;
src/models/human/anim/sandwichlady/&lt;br /&gt;
src/models/human/anim/secret_ghosts/&lt;br /&gt;
src/models/human/anim/skill - free/&lt;br /&gt;
src/models/human/anim/skill - members/&lt;br /&gt;
src/models/human/anim/skill_brutal/&lt;br /&gt;
src/models/human/anim/skill_cooking/&lt;br /&gt;
src/models/human/anim/skill_crafting/&lt;br /&gt;
src/models/human/anim/skill_farming/&lt;br /&gt;
src/models/human/anim/skill_hunting/&lt;br /&gt;
src/models/human/anim/skill_ranging/&lt;br /&gt;
src/models/human/anim/skill_slayer/&lt;br /&gt;
src/models/human/anim/skill_slayer/&lt;br /&gt;
src/models/human/anim/skillcapes/&lt;br /&gt;
src/models/human/anim/skilling_anims/&lt;br /&gt;
src/models/human/anim/soulbane/&lt;br /&gt;
src/models/human/anim/suroks_revenge/&lt;br /&gt;
src/models/human/anim/town_crier/&lt;br /&gt;
src/models/human/anim/trans/&lt;br /&gt;
src/models/human/anim/trick_or_treat/&lt;br /&gt;
src/models/human/anim/warguild/&lt;br /&gt;
src/models/human/anim/wilderness_capes/&lt;br /&gt;
src/models/human/anim/zmi_altar/&lt;br /&gt;
src/models/human/man/&lt;br /&gt;
src/models/human/man/arms/&lt;br /&gt;
src/models/human/man/deadman_mode/&lt;br /&gt;
src/models/human/man/feet/&lt;br /&gt;
src/models/human/man/fullbody/&lt;br /&gt;
src/models/human/man/hands/&lt;br /&gt;
src/models/human/man/hat/&lt;br /&gt;
src/models/human/man/hat/hat_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/head/&lt;br /&gt;
src/models/human/man/head/2017_new_hair/&lt;br /&gt;
src/models/human/man/head/head_pvp_armours/&lt;br /&gt;
src/models/human/man/head/head_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/head/New Folder/&lt;br /&gt;
src/models/human/man/head/slayer/&lt;br /&gt;
src/models/human/man/headextra/&lt;br /&gt;
src/models/human/man/jaw/&lt;br /&gt;
src/models/human/man/legs/&lt;br /&gt;
src/models/human/man/necklaces/&lt;br /&gt;
src/models/human/man/torso/&lt;br /&gt;
src/models/human/man/torsoextra/ [capes]&lt;br /&gt;
src/models/human/man/torsoextra/cluescrolls/&lt;br /&gt;
src/models/human/man/torsoextra/torsoextra_treasure_trails_2016/&lt;br /&gt;
src/models/human/man/wild_armour/&lt;br /&gt;
src/models/human/weapons/&lt;br /&gt;
src/models/human/weapons/fossil_agility_test/&lt;br /&gt;
src/models/human/weapons/poh_heraldic/&lt;br /&gt;
src/models/human/weapons/pvp_weapons/&lt;br /&gt;
src/models/human/weapons/raidsrewards/&lt;br /&gt;
src/models/human/weapons/weapons_treasure_trail_2016/&lt;br /&gt;
src/models/human/weaponsextra/&lt;br /&gt;
src/models/human/woman/&lt;br /&gt;
src/models/interface/&lt;br /&gt;
src/models/inv/&lt;br /&gt;
src/models/macroevents/&lt;br /&gt;
src/models/magic_carpet/&lt;br /&gt;
src/models/max_cape/&lt;br /&gt;
src/models/music_cape/&lt;br /&gt;
src/models/npc/&lt;br /&gt;
src/models/ogre_area/&lt;br /&gt;
src/models/opening_chests/&lt;br /&gt;
src/models/player_owned_house/&lt;br /&gt;
src/models/projectiles/&lt;br /&gt;
src/models/quest_afr/&lt;br /&gt;
src/models/quest_ahoy/&lt;br /&gt;
src/models/quest_animal_magnetism/&lt;br /&gt;
src/models/quest_augers_eye/&lt;br /&gt;
src/models/quest_black_knights_fortress/&lt;br /&gt;
src/models/quest_brain_robbery/&lt;br /&gt;
src/models/quest_burgh/&lt;br /&gt;
src/models/quest_contact/&lt;br /&gt;
src/models/quest_cook/&lt;br /&gt;
src/models/quest_death/&lt;br /&gt;
src/models/quest_demon_slayer_rework/&lt;br /&gt;
src/models/quest_deserttreasure/&lt;br /&gt;
src/models/quest_devious/&lt;br /&gt;
src/models/quest_digsite/&lt;br /&gt;
src/models/quest_dragon_slayer_qip/&lt;br /&gt;
src/models/quest_dragonslayer2/&lt;br /&gt;
src/models/Quest_dream_mentor/&lt;br /&gt;
src/models/quest_dtt_dorgeshuun/&lt;br /&gt;
src/models/quest_dwarf_rock/&lt;br /&gt;
src/models/quest_eadgar/&lt;br /&gt;
src/models/quest_easglepeak/&lt;br /&gt;
src/models/quest_elem2/&lt;br /&gt;
src/models/quest_elementalworkshop/&lt;br /&gt;
src/models/quest_elid/&lt;br /&gt;
src/models/quest_enakh/&lt;br /&gt;
src/models/quest_eye_of_glouphrie/&lt;br /&gt;
src/models/quest_fairy/&lt;br /&gt;
src/models/quest_fairytale2/&lt;br /&gt;
src/models/quest_fenkenstrain/&lt;br /&gt;
src/models/quest_fever/&lt;br /&gt;
src/models/quest_fishing_contest/&lt;br /&gt;
src/models/quest_forgettable/&lt;br /&gt;
src/models/quest_fourdiamonds/&lt;br /&gt;
src/models/quest_gertrudes_cat/&lt;br /&gt;
src/models/quest_goblin_diplomacy/&lt;br /&gt;
src/models/quest_golem/&lt;br /&gt;
src/models/quest_grim/&lt;br /&gt;
src/models/quest_handsand/&lt;br /&gt;
src/models/quest_hauntedmine/&lt;br /&gt;
src/models/quest_horror/&lt;br /&gt;
src/models/quest_hundred/&lt;br /&gt;
src/models/quest_icthalarins/&lt;br /&gt;
src/models/quest_impcatcher/&lt;br /&gt;
src/models/quest_kalphite/&lt;br /&gt;
src/models/quest_karam_dungeon/&lt;br /&gt;
src/models/quest_kings_randsom/&lt;br /&gt;
src/models/quest_led_zep/&lt;br /&gt;
src/models/quest_legendsword_2/&lt;br /&gt;
src/models/quest_LOTR/&lt;br /&gt;
src/models/quest_lovakengj/&lt;br /&gt;
src/models/quest_lunar/&lt;br /&gt;
src/models/quest_makinghistory/&lt;br /&gt;
src/models/quest_mcannon/&lt;br /&gt;
src/models/quest_mdaughter/&lt;br /&gt;
src/models/quest_misc/&lt;br /&gt;
src/models/quest_mm/&lt;br /&gt;
src/models/quest_mm2/&lt;br /&gt;
src/models/quest_mourning/&lt;br /&gt;
src/models/quest_murder_mystery/&lt;br /&gt;
src/models/quest_my2arm/&lt;br /&gt;
src/models/quest_myarm/&lt;br /&gt;
src/models/quest_myreque_pa [incomplete name]&lt;br /&gt;
src/models/quest_naturespirit/&lt;br /&gt;
src/models/quest_observatory/&lt;br /&gt;
src/models/quest_slug2/&lt;br /&gt;
src/models/quest_soulbane/&lt;br /&gt;
src/models/quest_summoning/&lt;br /&gt;
src/models/quest_suroks_revenge/&lt;br /&gt;
src/models/quest_swansong/&lt;br /&gt;
src/models/quest_tbwt/&lt;br /&gt;
src/models/quest_the_feud/&lt;br /&gt;
src/models/quest_tourtrap/&lt;br /&gt;
src/models/quest_tower_of_life/&lt;br /&gt;
src/models/quest_tranquility/&lt;br /&gt;
src/models/quest_troll/&lt;br /&gt;
src/models/quest_trollrescue/&lt;br /&gt;
src/models/quest_trollromance/&lt;br /&gt;
src/models/quest_twocats/&lt;br /&gt;
src/models/quest_vampires/&lt;br /&gt;
src/models/quest_vampirewarrior/&lt;br /&gt;
src/models/quest_viking/&lt;br /&gt;
src/models/quest_wanted/&lt;br /&gt;
src/models/quest_watchtower/&lt;br /&gt;
src/models/quest_zogre/&lt;br /&gt;
src/models/reward_darkbow/&lt;br /&gt;
src/models/scene/&lt;br /&gt;
src/models/skill_brutal/&lt;br /&gt;
src/models/skill_cooking/&lt;br /&gt;
src/models/skill_farming/&lt;br /&gt;
src/models/skill_fishing/&lt;br /&gt;
src/models/skill_hunting/&lt;br /&gt;
src/models/skill_lore/&lt;br /&gt;
src/models/skill_mining/&lt;br /&gt;
src/models/skill_ranging/&lt;br /&gt;
src/models/skill_slayer/&lt;br /&gt;
src/models/skill_slayer/interface/&lt;br /&gt;
src/models/skill_slayer/inventory/&lt;br /&gt;
src/models/skill_slayer/location/&lt;br /&gt;
src/models/skill_slayer/npc/&lt;br /&gt;
src/models/skill_slayer/npc/abyssal/&lt;br /&gt;
src/models/skill_slayer/npc/banshee/&lt;br /&gt;
src/models/skill_slayer/npc/basilisk/&lt;br /&gt;
src/models/skill_slayer/npc/bloodveld/&lt;br /&gt;
src/models/skill_slayer/npc/cave_crawler/&lt;br /&gt;
src/models/skill_slayer/npc/cockatrice/&lt;br /&gt;
src/models/skill_slayer/npc/crawling_hand/&lt;br /&gt;
src/models/skill_slayer/npc/demon/&lt;br /&gt;
src/models/skill_slayer/npc/dustdevil/&lt;br /&gt;
src/models/skill_slayer/npc/gargoyle/&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/grotesque_guardian_animations/&lt;br /&gt;
src/models/skill_slayer/npc/jelly/&lt;br /&gt;
src/models/skill_slayer/npc/killerwatt/&lt;br /&gt;
src/models/skill_slayer/npc/kursk/&lt;br /&gt;
src/models/skill_slayer/npc/pyrefiend/&lt;br /&gt;
src/models/skill_slayer/npc/rockslug/&lt;br /&gt;
src/models/skill_slayer/npc/screaming_banshee/&lt;br /&gt;
src/models/skill_slayer/npc/slayer_bugs/&lt;br /&gt;
src/models/skill_slayer/npc/slayer_lizard/&lt;br /&gt;
src/models/skill_slayer/npc/spectre/&lt;br /&gt;
src/models/skill_slayer/npc/turoth/&lt;br /&gt;
src/models/skill_slayer/npc/wyvern/&lt;br /&gt;
src/models/skill_slayer/npc/zygomite/&lt;br /&gt;
src/models/skill_slayer/projectiles/&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/&lt;br /&gt;
src/models/skill_slayer/spotanim/&lt;br /&gt;
src/models/skill_slayer/spotanims/&lt;br /&gt;
src/models/skill_woodcutting/&lt;br /&gt;
src/models/skillcapes/&lt;br /&gt;
src/models/spells/&lt;br /&gt;
src/models/town_crier/&lt;br /&gt;
src/models/transilvania_area/&lt;br /&gt;
src/models/update_shadow_maj/&lt;br /&gt;
src/models/zmi_altar/&lt;br /&gt;
src/particles/ - RS3&lt;br /&gt;
src/scripts/&lt;br /&gt;
src/scripts/areas/&lt;br /&gt;
src/scripts/areas/Area_Abyssal_space/&lt;br /&gt;
src/scripts/areas/area_aide/&lt;br /&gt;
src/scripts/areas/area_battlefield/&lt;br /&gt;
src/scripts/areas/area_dagganoth_dungeon/&lt;br /&gt;
src/scripts/areas/area_desert/&lt;br /&gt;
src/scripts/areas/area_dorgesh_kaan/&lt;br /&gt;
src/scripts/areas/area_fossil/&lt;br /&gt;
src/scripts/areas/area_fossil/config/&lt;br /&gt;
src/scripts/areas/area_fossil/script/&lt;br /&gt;
src/scripts/areas/area_gnome/&lt;br /&gt;
src/scripts/areas/area_goblin_caves/&lt;br /&gt;
src/scripts/areas/area_godwars_dungeon/&lt;br /&gt;
src/scripts/areas/Area_HAM_Fanatics/&lt;br /&gt;
src/scripts/areas/area_harmless/&lt;br /&gt;
src/scripts/areas/Area_karam_dungeon/&lt;br /&gt;
src/scripts/areas/area_keldagrim/&lt;br /&gt;
src/scripts/areas/area_mage_arena/&lt;br /&gt;
src/scripts/areas/area_nexus/&lt;br /&gt;
src/scripts/areas/area_rimmington/&lt;br /&gt;
src/scripts/areas/area_roguesden/&lt;br /&gt;
src/scripts/areas/area_sos/&lt;br /&gt;
src/scripts/areas/kebos/&lt;br /&gt;
src/scripts/areas/kebos/brimstone/&lt;br /&gt;
src/scripts/areas/monastery/&lt;br /&gt;
src/scripts/areas/Morytania/&lt;br /&gt;
src/scripts/areas/morytania_vampires/&lt;br /&gt;
src/scripts/areas/Werewolf_Village/&lt;br /&gt;
src/scripts/areas/zeah/&lt;br /&gt;
src/scripts/bonds/&lt;br /&gt;
src/scripts/clanchat/&lt;br /&gt;
src/scripts/deadman/&lt;br /&gt;
src/scripts/doors/&lt;br /&gt;
src/scripts/drop tables/&lt;br /&gt;
src/scripts/floors/&lt;br /&gt;
src/scripts/follower_cat/&lt;br /&gt;
src/scripts/general_follower/&lt;br /&gt;
src/scripts/general_use/&lt;br /&gt;
src/scripts/grand_exchange/&lt;br /&gt;
src/scripts/holiday_events/&lt;br /&gt;
src/scripts/interface_banks/&lt;br /&gt;
src/scripts/interface_boat/&lt;br /&gt;
src/scripts/interface_chat/&lt;br /&gt;
src/scripts/interface_chatsystem/&lt;br /&gt;
src/scripts/interface_map/&lt;br /&gt;
src/scripts/interface_options/&lt;br /&gt;
src/scripts/interface_polls/&lt;br /&gt;
src/scripts/interface_quest_journal/&lt;br /&gt;
src/scripts/interface_reportabuse/&lt;br /&gt;
src/scripts/interface_reusable_components/&lt;br /&gt;
src/scripts/interface_shops/&lt;br /&gt;
src/scripts/interface_skill_advance_guide_v2/&lt;br /&gt;
src/scripts/interface_skills/&lt;br /&gt;
src/scripts/interface_toplevel/&lt;br /&gt;
src/scripts/interface_trade/&lt;br /&gt;
src/scripts/interface_wear/&lt;br /&gt;
src/scripts/interface_welcomescreen/&lt;br /&gt;
src/scripts/interface_worldmap/&lt;br /&gt;
src/scripts/interface_worldswitcher/&lt;br /&gt;
src/scripts/ladders+stairs/&lt;br /&gt;
src/scripts/levelrequire/&lt;br /&gt;
src/scripts/macro events/&lt;br /&gt;
src/scripts/minigames/&lt;br /&gt;
src/scripts/minigames/game_nzone/&lt;br /&gt;
src/scripts/minigames/game_osman-sorceress/&lt;br /&gt;
src/scripts/minigames/game_partyroom/&lt;br /&gt;
src/scripts/minigames/game_pest/&lt;br /&gt;
src/scripts/minigames/game_pyramid_plunder/&lt;br /&gt;
src/scripts/minigames/game_tears_of_guthix/&lt;br /&gt;
src/scripts/minigames/game_temple_trek/&lt;br /&gt;
src/scripts/minigames/game_trail/&lt;br /&gt;
src/scripts/minigames/game_trawler/&lt;br /&gt;
src/scripts/minigames/grouping/&lt;br /&gt;
src/scripts/minigames/livestreams/&lt;br /&gt;
src/scripts/minigames/game_clanwars/&lt;br /&gt;
src/scripts/music/&lt;br /&gt;
src/scripts/npc/&lt;br /&gt;
src/scripts/objects/&lt;br /&gt;
src/scripts/player/&lt;br /&gt;
src/scripts/quests/&lt;br /&gt;
src/scripts/quests/quest_upass/&lt;br /&gt;
src/scripts/quests/quest_upass/upass_traps/&lt;br /&gt;
src/scripts/scenery/&lt;br /&gt;
src/scripts/skill_agility/&lt;br /&gt;
src/scripts/skill_brutal/&lt;br /&gt;
src/scripts/skill_combat/&lt;br /&gt;
src/scripts/skill_construction/&lt;br /&gt;
src/scripts/skill_cooking/&lt;br /&gt;
src/scripts/skill_crafting/&lt;br /&gt;
src/scripts/skill_farming/&lt;br /&gt;
src/scripts/skill_firemaking/&lt;br /&gt;
src/scripts/skill_fishing/&lt;br /&gt;
src/scripts/skill_fletching/&lt;br /&gt;
src/scripts/skill_general/&lt;br /&gt;
src/scripts/skill_herblore/&lt;br /&gt;
src/scripts/skill_hunting/&lt;br /&gt;
src/scripts/skill_magic/&lt;br /&gt;
src/scripts/skill_magic/Lunar Spells/&lt;br /&gt;
src/scripts/skill_magic/spell list/&lt;br /&gt;
src/scripts/skill_magic/Zaros Spells/&lt;br /&gt;
src/scripts/skill_mining/&lt;br /&gt;
src/scripts/skill_prayer/&lt;br /&gt;
src/scripts/skill_runecraft/&lt;br /&gt;
src/scripts/skill_slayer/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/script/&lt;br /&gt;
src/scripts/skill_slayer/location scripts/&lt;br /&gt;
src/scripts/skill_slayer/monster scripts/&lt;br /&gt;
src/scripts/skill_slayer/npcs/&lt;br /&gt;
src/scripts/skill_slayer/rewards/&lt;br /&gt;
src/scripts/skill_slayer/superior_slayer_encounters/&lt;br /&gt;
src/scripts/skill_slayer/Zygomites/&lt;br /&gt;
src/scripts/skill_smithing/&lt;br /&gt;
src/scripts/skill_thieving/&lt;br /&gt;
src/scripts/skill_woodcutting/&lt;br /&gt;
src/scripts/test_connor/&lt;br /&gt;
src/scripts/transportation/&lt;br /&gt;
src/scripts/tutorial/&lt;br /&gt;
src/scripts/warning_system/&lt;br /&gt;
src/skeletons/ - RS3&lt;br /&gt;
src/sounds/&lt;br /&gt;
src/sprites/&lt;br /&gt;
src/streaming/ - RS3&lt;br /&gt;
src/webscripts/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/rs2_v4.engine&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/maps/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/maps/keynames.txt&lt;br /&gt;
src/maps/labels_dungeon.txt&lt;br /&gt;
src/maps/labels_extra.txt&lt;br /&gt;
src/maps/labels_main.txt&lt;br /&gt;
[src/maps/*.jm2 e.g. m50_50.jm2 for Lumbridge]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/area_fossil/fossil_underwater/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_anchor1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_clam1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_2.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_3.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_cavewall_5.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_1.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_2.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_5.ob3&lt;br /&gt;
src/models/area_fossil/fossil_underwater/fi_seabed_wall_top.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_godwars/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_death.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_ready.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_dying_paladin_readyanim.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_armadyl.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_bandos.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_saradomin.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_godsword_zamorak.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_gong_hammer.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_player_move_boulder.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_player_move_bolder_south.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_saradomin_sword_attack.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_attack.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_death.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_defend.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_forward.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_swimming_ready.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_godwars/godwars_sword_update/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_armadyl_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_bandos_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_block.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_chop.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_defend.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_dragon_2H.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_ready.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_run.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_saradomin_god_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_saradomin_special.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_slash.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_smash.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_turnonspot.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk_left.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_walk_right.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/dh_sword_update_zamorak_special_player.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_run.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_turnonspot.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walk.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walkleft.anim&lt;br /&gt;
src/models/human/anim/area_godwars/godwars_sword_update/zamorakspear_walkright.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_bash.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_block.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_crush.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_run.anim&lt;br /&gt;
src/models/human/anim/area_zeah/bulwark_walk.anim&lt;br /&gt;
src/models/human/anim/area_zeah/human_dead_poses.anim&lt;br /&gt;
src/models/human/anim/area_zeah/ready_bulwark.anim&lt;br /&gt;
src/models/human/anim/area_zeah/ready_sheathed.anim&lt;br /&gt;
src/models/human/anim/area_zeah/xeric_pose.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/dclaws_spec/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/dclaws_spec/dclaws_human_spec.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/area_zeah/dhunter_lance/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/dhunter_lance_crush.anim&lt;br /&gt;
src/models/human/anim/area_zeah/dhunter_lance/dhunter_lance_stab.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/anim/basic + tutorial/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/anim/basic + tutorial/cast_chargeorb.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/cast_teleport.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/closedoorl.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/closedoorr.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/cooking.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-block.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-def.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-hack.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ddagger-lunge.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/death.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_sword_ready.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_sword_run.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/dh_word_walk.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/eat.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/fa_furnace.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/firecooking.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/furnace.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/lightfire.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/lobsterpot.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/milk.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update_looped.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/mining_update_wall_closer.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/newwalkleft.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/newwalkright.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoor.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoorl.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/opendoorr.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/pickupfloor.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/pray.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/reachforladder.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/ready.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/running.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/shield_defence.nim&lt;br /&gt;
src/models/human/anim/basic + tutorial/smithing.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/sword-block.anim&lt;br /&gt;
src/models/human/anim/basic + tutorial/sword-def.anim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/ds2_fleet_boat_paladin_steeringwheel.ob3&lt;br /&gt;
src/models/human/man/ds2_fleet_boat_whiteknight_steeringwheel.ob3&lt;br /&gt;
src/models/human/man/skill_slayer_npc_infernal_mage.ob3&lt;br /&gt;
src/models/human/man/tob_stranger.ob3&lt;br /&gt;
src/models/human/man/wildy_cave_revenant_knight.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/hat/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/hat/AncientsI_Mitre_Male.ob3&lt;br /&gt;
src/models/human/man/hat/Armadyl_Male_Mitre.ob3&lt;br /&gt;
src/models/human/man/hat/Bandos_Mitre_Male.ob3&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm1.ob2&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm2.ob2&lt;br /&gt;
src/models/human/man/hat/brut_barbarian_helm3.ob2&lt;br /&gt;
src/models/human/man/hat/Cat_Mask_Male.ob3&lt;br /&gt;
src/models/human/man/hat/DragonMask_Male_Mask.ob3&lt;br /&gt;
src/models/human/man/hat/druidwreath_summerevent2014_man.ob3&lt;br /&gt;
src/models/human/man/hat/Explorers_Hat_Male.ob3&lt;br /&gt;
src/models/human/man/hat/game_pest_archer_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/game_pest_mage_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/grim_helm.ob2&lt;br /&gt;
src/models/human/man/hat/grim_stylus_hat.ob2&lt;br /&gt;
src/models/human/man/hat/gub_reindeer_hat_male.ob2&lt;br /&gt;
src/models/human/man/hat/guthix_halo_male.ob3&lt;br /&gt;
src/models/human/man/hat/hunter_pushorn_hat_man.ob2&lt;br /&gt;
src/models/human/man/hat/lavadragon_mask.ob3&lt;br /&gt;
src/models/human/man/hat/Leprechaun_Hat_Male.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_100_pirate_fishbowl.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_4th_bday.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_aide_fisher.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ancestral_hat.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_angler.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_arabian.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_drill.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_01.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_02.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_03.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_barbarian_helmet_army.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_fighter.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_healer.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_ranger.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barbassault_penance_runner.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel1.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel4.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrel5.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_barrows_skeleton.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_battered_mining_helmet.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bee_keeper.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_beret_artist.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_berret.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_birdseye.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bounty_hunter.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_bounty_rogue.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_bowler.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_brew_tricorn.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_bunnyears.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_butlers.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_cavalier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_cave_goblin_mining.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_gave_goblin_mining_unli.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_chef_poh.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_chefs.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_crown3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_darkmage.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_darktrooper.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_doctors.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_drill_camoflage.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elem_helm_male.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elf.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elfhat2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_elfpriest.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_enviro_suit_helmet.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband1.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband2.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_featherband3.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fedora.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fez.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fishing_contest.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_fris_kinglyhat.ob2 [Helm of neitiznot]&lt;br /&gt;
src/models/human/man/hat/man_hat_fris_town_crier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_frisb_jester.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_frog_crown.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_cavalier.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_[unable to transcribe].ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_sailor.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_ghost_wizard.ob3&lt;br /&gt;
src/models/human/man/hat/man_hat_glassblower.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_granite_helm.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_gravedigger_head.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_headband.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_hunting.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_jester.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lederhosen.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lumberjack_checker.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lunar_moonclan.ob2&lt;br /&gt;
src/models/human/man/hat/man_hat_lunar_moonclan_headgear.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/head/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/head/Afro_Male.ob3&lt;br /&gt;
src/models/human/man/head/antisanta_head.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_elite_male.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_hard_male.ob3&lt;br /&gt;
src/models/human/man/head/atvar_head_helm_medium_male.ob3&lt;br /&gt;
src/models/human/man/head/bh_trader.ob3&lt;br /&gt;
src/models/human/man/head/Bronze_Male_FullHelmet_trimmed_Trail.ob3&lt;br /&gt;
src/models/human/man/head/brut_ascending_spirit_hat.ob2&lt;br /&gt;
src/models/human/man/head/brut_ascending_spirit_head.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm1.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm2.ob2&lt;br /&gt;
src/models/human/man/head/brut_barbarian_skel_helm3.ob2&lt;br /&gt;
src/models/human/man/head/brut_full_dragon_helm.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male1.ob3&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male2.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male3.ob3&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male4.ob2&lt;br /&gt;
src/models/human/man/head/canafis_update_head_male5.ob2&lt;br /&gt;
src/models/human/man/head/child.ob2&lt;br /&gt;
src/models/human/man/head/contract_all_head.ob2&lt;br /&gt;
src/models/human/man/head/cwars_mage_heaed.ob3&lt;br /&gt;
src/models/human/man/head/deadman_head.ob3&lt;br /&gt;
src/models/human/man/head/dragon_slayer_qp_ghost_head_man.ob2&lt;br /&gt;
src/models/human/man/head/dragon_slayer_qp_ghost_head_man2.ob2&lt;br /&gt;
src/models/human/man/head/dream_helm.ob2&lt;br /&gt;
src/models/human/man/head/easter07_chicken_head.ob2&lt;br /&gt;
src/models/human/man/head/elder_druid_head.ob3&lt;br /&gt;
src/models/human/man/head/fai_varrock_afro.ob2&lt;br /&gt;
src/models/human/man/head/fight_arena_general_khazard_skull.ob2&lt;br /&gt;
src/models/human/man/head/fight_arena_general_khazard_helm.ob2&lt;br /&gt;
src/models/human/man/head/game_pest_melee_helm_male.ob2&lt;br /&gt;
src/models/human/man/head/GoblinManHead.ob3&lt;br /&gt;
src/models/human/man/head/godwars_armadyl_helmet_male.ob2&lt;br /&gt;
src/models/human/man/head/godwars_dying_paladin_head.ob2&lt;br /&gt;
src/models/human/man/head/godwars_knight_head.ob2&lt;br /&gt;
src/models/human/man/head/godwars_knight_head2.ob2&lt;br /&gt;
src/models/human/man/head/godwarsr_saradomin_wizard_head.ob2&lt;br /&gt;
src/models/human/man/head/graceful_hoods_male.ob3&lt;br /&gt;
src/models/human/man/head/hunter_pushorn_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hunter_sabretooth_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hunter_spikeride_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hw06_jack_o_lantern_head_man.ob2&lt;br /&gt;
src/models/human/man/head/hw06_skel_cow_head.ob2&lt;br /&gt;
src/models/human/man/head/hw07_grim_head_male.ob2&lt;br /&gt;
src/models/human/man/head/hw15_gravedigger_head.ob3&lt;br /&gt;
src/models/human/man/head/ImpHat_Male.ob3&lt;br /&gt;
src/models/human/man/head/Iron_G_FullHelm_Male.ob3&lt;br /&gt;
src/models/human/man/head/Iron_T_fullHelm_male.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm_h.ob3&lt;br /&gt;
src/models/human/man/head/ironman_helm_u.ob3&lt;br /&gt;
src/models/human/man/head/jersey_collar_bald.ob2&lt;br /&gt;
src/models/human/man/head/keeperofkeys_head.ob3&lt;br /&gt;
src/models/human/man/head/lz_arthur_bronze_helm.ob2&lt;br /&gt;
src/models/human/man/head/lz_prosecutor_head.ob2&lt;br /&gt;
src/models/human/man/head/mac_head.ob3&lt;br /&gt;
src/models/human/man/head/Male_Bronze_T_Fullhelm.ob3&lt;br /&gt;
src/models/human/man/head/man_hat_mage_pizzaz.ob2&lt;br /&gt;
src/models/human/man/head/man_head_100_pirate_fishbowl.ob2&lt;br /&gt;
src/models/human/man/head/man_head_5oclock_shadow.ob2&lt;br /&gt;
src/models/human/man/head/man_head_anvas_headgear.ob3&lt;br /&gt;
src/models/human/man/head/man_head_arabian.ob2&lt;br /&gt;
src/models/human/man/head/man_head_arabian2.ob2&lt;br /&gt;
src/models/human/man/head/man_head_architect_hos.ob3&lt;br /&gt;
src/models/human/man/head/man_head_architect_pisc.ob3&lt;br /&gt;
src/models/human/man/head/man_head_baboon.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bald.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bald_fat.ob2&lt;br /&gt;
src/models/human/man/head/man_head_balder.ob2&lt;br /&gt;
src/models/human/man/head/man_head_banshee_mask.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbarian_chef.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barbarian_chief.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barbary_1.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_2.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_3.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barbary_4.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barrow_dharok.ob3&lt;br /&gt;
src/models/human/man/head/man_head_barrow_dharok_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_guthan.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_guthan_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_karil.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_torag.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_torag_wraith.ob2&lt;br /&gt;
src/models/human/man/head/man_head_barrow_verac.ob2&lt;br /&gt;
src/models/human/man/head/man_head_bridgelum_consult.ob2&lt;br /&gt;
src/models/human/man/head/man_head_castlewars_hood.ob2&lt;br /&gt;
src/models/human/man/head/man_head_chaos_necro.ob3&lt;br /&gt;
src/models/human/man/head/man_head_clown_mask.ob3&lt;br /&gt;
src/models/human/man/head/man_head_coif.ob2&lt;br /&gt;
src/models/human/man/head/man_head_contact_sopanem_guard.ob2&lt;br /&gt;
src/models/human/man/head/man_head_crab_helmet.ob2&lt;br /&gt;
src/models/human/man/head/man_head_croc_ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_highlight.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_long.ob2&lt;br /&gt;
src/models/human/man/head/man_head_curtains_long_highlight.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/jaw/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/jaw/brut_ascending_spirit_jaw.ob2&lt;br /&gt;
src/models/human/man/jaw/keeperofkeys_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_5oclock_shadow.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_arabian2_fakebeard.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbarian_beard.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbary_1.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_barbary_2.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_chaos_necro.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_dali_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_egyption.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_facemask.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_goaty.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_handlebar_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_king.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_medium.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache3.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_moustache4_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_muttonchips_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_muttonfull_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_none.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_ragged_beard.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_santa.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short2.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short2_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_short_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_split.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_vampyre.ob3&lt;br /&gt;
src/models/human/man/jaw/man_jaw_vc_moustache.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_very_long_ragged.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_very_long_ragged_fat.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_visser_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/man_jaw_waxed_highlight.ob2&lt;br /&gt;
src/models/human/man/jaw/Patchy_Beard.ob2&lt;br /&gt;
src/models/human/man/jaw/prospector_pete_jaw.ob3&lt;br /&gt;
src/models/human/man/jaw/qp_soa_jonny_the_beard_beard.ob2&lt;br /&gt;
src/models/human/man/jaw/qp_watchtower_wizard_very_long.ob2&lt;br /&gt;
src/models/human/man/jaw/slug2_mayor3.ob2&lt;br /&gt;
src/models/human/man/jaw/town_crier_beard.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/man/torsoextra/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/man/torsoextra/3acloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/AncientsI_Cloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_iron_man.ob2&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_steel_man.ob2&lt;br /&gt;
src/models/human/man/torsoextra/anma_quiver_vorkath_man.ob3&lt;br /&gt;
src/models/human/man/torsoextra/Armadyl_MainCloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_easy_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_elite_main.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_hard_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/atvar_torsoextra_cloak_medium_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/Bandos_Cloak_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/championscloak_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/cwars_range_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/deadman_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/dragon_slayer_qp_oracle_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/dragon_slayer_qp_ozaich_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/Explorers_Backpack_Male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/fight_arena_general_khazard_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/fight_arena_general_khazard_giant.ob2&lt;br /&gt;
src/models/human/man/torsoextra/game_pest_teleport_badge.ob2&lt;br /&gt;
src/models/human/man/torsoextra/ghost_hat_back.ob2&lt;br /&gt;
src/models/human/man/torsoextra/godwars_knight_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/graceful_cape_male.ob3&lt;br /&gt;
src/models/human/man/torsoextra/keeperofkeys_sack.ob3&lt;br /&gt;
src/models/human/man/torsoextra/lotr_shylock_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/lunar_seal_of_passage.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books1.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books3.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books4.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_books5.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_100_pirate_breathing_apparatus.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ancientsymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_apron.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_apron_qui_pocket.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_armadylsymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bandossymbol.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_chest_rap.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_hairy_chet.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_shoulder_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbarian_shoulder_pads_army.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_attacker_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_collector_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_defender_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barbassault_healer_icon.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bards_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barrow_wraith_cloak2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_barrows_skeleton_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bloodsplalts.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bloodsplats_notfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bone_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_bone_sack_player_m.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buff_for_plate.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttons.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttons2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttonsfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_buttonsfat2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_camoflauge_robe.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_castlewars_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cheap_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_dwarf_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_elf_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_skeleton_armour.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_champion_throne.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_for_hood2.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_for_hood2_no_head.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_of_darkness.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_plane.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cloak_plain_sit_floor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_contact_menaphos_guards_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_contact_menaphos_guards_skirt.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier1_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier2_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier3_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier4_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_cox_challenge_tier5_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_dark_wizard_decor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_dark_wizard_leg_decor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_darkelf_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_drilldemon_star.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_eagle_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_elfpriestdecor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_enviro_suit_tank.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_favour_ham_logo.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_favour_ham_logo_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fever_scars.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fever_stitches.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fire_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fire_cape_dummy.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fishsack.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_fris_kinglycape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ghost_cloak.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_ghost_sailor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_glassblower_apron.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_grain_sack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guard_shoulder_pads.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guide_backpack.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guidedecor.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guthix_cape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_guthixsymbol.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_herquin_pocket_watch.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_herquin_toolbelt.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_hoode.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_infernalcape.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_infernalcape_dummy.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_invisible_cape.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jacket.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jacketfat.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_jester_cloak.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_lab_coat.ob3&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_laderhosen_straps.ob2&lt;br /&gt;
src/models/human/man/torsoextra/man_torsoextra_lon_for_platemail.ob2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/human/weapons/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/human/weapons/3A_Bow_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/3A_Broadsword_MaleWeapon.ob3&lt;br /&gt;
src/models/human/weapons/3A_hatchet.ob3&lt;br /&gt;
src/models/human/weapons/3A_hatchet_woman.ob3&lt;br /&gt;
src/models/human/weapons/3A_pickaxe.ob3&lt;br /&gt;
src/models/human/weapons/3A_pickaxe_woman.ob3&lt;br /&gt;
src/models/human/weapons/3A_Wand_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/aaaaaaaa.ob3&lt;br /&gt;
src/models/human/weapons/abyssal_tentacle.ob3&lt;br /&gt;
src/models/human/weapons/amethyst_crafting.ob3&lt;br /&gt;
src/models/human/weapons/Ancientsl_Crozier_Male.ob3&lt;br /&gt;
src/models/human/weapons/anma_axe.ob2&lt;br /&gt;
src/models/human/weapons/anma_iron.ob2&lt;br /&gt;
src/models/human/weapons/anmasack_empty.ob2&lt;br /&gt;
src/models/human/weapons/anma_sack_full.ob2&lt;br /&gt;
src/models/human/weapons/arcane_shield.ob3&lt;br /&gt;
src/models/human/weapons/area_aide_kiteshield.ob2&lt;br /&gt;
src/models/human/weapons/Armadyl_Male_Crozier.ob3&lt;br /&gt;
src/models/human/weapons/ash_mug.ob3&lt;br /&gt;
src/models/human/weapons/Bandos_Crozier.ob3&lt;br /&gt;
src/models/human/weapons/barbarian_axe_for_man.ob2&lt;br /&gt;
src/models/human/weapons/bbbbbbbb.ob3&lt;br /&gt;
src/models/human/weapons/blessed_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/br_halberd.ob3&lt;br /&gt;
src/models/human/weapons/brain_anchor.ob2&lt;br /&gt;
src/models/human/weapons/brain_weapons_open_book.ob2&lt;br /&gt;
src/models/human/weapons/brain_ewapons_open_saradomin_book.ob2&lt;br /&gt;
src/models/human/weapons/Bronze_Male_Kiteshield_trimmed_Trail.ob3&lt;br /&gt;
src/models/human/weapons/brut_firemaking_daganoth_bow.ob2&lt;br /&gt;
src/models/human/weapons/brut_firemaking_longbow.ob2&lt;br /&gt;
src/models/human/weapons/brut_firemaking_shortbow.ob2&lt;br /&gt;
src/models/human/weapons/brut_fishing_rod.ob2&lt;br /&gt;
src/models/human/weapons/brut_net.ob2&lt;br /&gt;
src/models/human/weapons/brut_pspear.ob2&lt;br /&gt;
src/models/human/weapons/brut_shark.ob2&lt;br /&gt;
src/models/human/weapons/brut_spear.ob2&lt;br /&gt;
src/models/human/weapons/brut_swordfish.ob2&lt;br /&gt;
src/models/human/weapons/brut_tuna.ob2&lt;br /&gt;
src/models/human/weapons/Cane_Weapon.ob3&lt;br /&gt;
src/models/human/weapons/chronicle_man.ob3&lt;br /&gt;
src/models/human/weapons/chronical_woman.ob3&lt;br /&gt;
src/models/human/weapons/contact_sophanem_spear.ob2&lt;br /&gt;
src/models/human/weapons/contact_sophanem_spear_woman.ob2&lt;br /&gt;
src/models/human/weapons/darkbow_darkbow.ob2&lt;br /&gt;
src/models/human/weapons/deadman_sword.ob3&lt;br /&gt;
src/models/human/weapons/dorgesh_whirly_scanner.ob2&lt;br /&gt;
src/models/human/weapons/Dragon_Cane.ob3&lt;br /&gt;
src/models/human/weapons/dragon_claws.ob3&lt;br /&gt;
src/models/human/weapons/dream_magic_shortbow.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_bunny.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_green.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_orange.ob2&lt;br /&gt;
src/models/human/weapons/easter07_egg_yellow.ob2&lt;br /&gt;
src/models/human/weapons/eek_female.ob3&lt;br /&gt;
src/models/human/weapons/eek_male.ob3&lt;br /&gt;
src/models/human/weapons/elysian_shield.ob3&lt;br /&gt;
src/models/human/weapons/eyeglo_crystal_axe.ob2&lt;br /&gt;
src/models/human/weapons/fai_ikov_lucien_staff.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_broom_woman.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_shield.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_sword.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_guard_wateringcan.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_halbard.ob2&lt;br /&gt;
src/models/human/weapons/fai_varrock_half_bench.ob2&lt;br /&gt;
src/models/human/weapons/female_arcane_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_blessed_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_elysian_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_spectral_shield.ob3&lt;br /&gt;
src/models/human/weapons/female_spirit_shield.ob3&lt;br /&gt;
src/models/human/weapons/fight_arena_general_khazard_sword.ob2&lt;br /&gt;
src/models/human/weapons/fns_arctic_pine_log_lhand.ob2&lt;br /&gt;
src/models/human/weapons/fns_viking_axe.ob2&lt;br /&gt;
src/models/human/weapons/goblin_paint_cannon.ob3&lt;br /&gt;
src/models/human/weapons/godwars_armadyl_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_armadyl_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_bandos_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_bandos_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_knight_axe.ob2&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword.ob2&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_saradomin_wizard_cane.ob2&lt;br /&gt;
src/models/human/weapons/godwars_water_trident_player.ob2&lt;br /&gt;
src/models/human/weapons/godwars_zamorak_godsword_player.ob3&lt;br /&gt;
src/models/human/weapons/godwars_zamokak_godsword_player_g.ob3&lt;br /&gt;
src/models/human/weapons/godwars_zamorak_spear_player.ob2&lt;br /&gt;
src/models/human/weapons/grim_potion_vial.ob2&lt;br /&gt;
src/models/human/weapons/grim_sylius_walking_stick.ob2&lt;br /&gt;
src/models/human/weapons/gub_xmas_2006_player_held_snowball.ob2&lt;br /&gt;
src/models/human/weapons/hand_scroll_teleport.ob3&lt;br /&gt;
src/models/human/weapons/heavy_ballista.ob3&lt;br /&gt;
src/models/human/weapons/hillgiant_club.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_100_brulee_pot.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_chair_mohogany.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_egg_whisk.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_frying_pan.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_kebab_skewer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_large_spatula.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_meat_cleaver.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_meat_tenderiser.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_rolling_pin.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_spork.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_sushi_knife.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100_wooden_spoon.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_100guide_egg_bottom.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_dagger.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_dagger_p.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_abyssal_whip.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aide_stick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aide_woodsman_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aivas_crossbow.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_axe_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_mace_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_spear_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_anger_sword_char.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_antidragonshield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_antidragonshield_update.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_aquarium_net.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_arceeus_essence_block.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_arclight.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_armour_leopard_toy.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_easy.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_elite.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_hard.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_atvar_banner_medium.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_aws.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bag_of_salt.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_baguette.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bannana.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bannana_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_hammer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_hammer.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_longbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_spiky_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbarian_sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barbassault_vial.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_dharok_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_dharok_wraith_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_guthan_mstar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_guthan_wraith_mstar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_quarterstaff.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_quarterstaff_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_torag_hammers.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_torag_wraith_hammers.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_verac_warspear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_barrow_verac_wraith_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_basket_of_easter_eggs.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bday_balloons.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_beer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beer_glass_empty.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beer_glass_full.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_beerkeg.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bench.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bird_caller.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_black_knight_dossier.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack_assault_rogue_trader.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blackjack_defend_rogue_trader.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blast_furnace_air_pump.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blast_furnace_conveyer_cycle.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_chiginki.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_scythe.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_blood_scythe_uncharged.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_bludgeon.b3&lt;br /&gt;
src/models/human/weapons/human_weapons_blueritesword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bobcat.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_bone_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bone_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_book.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_book_staff.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_boomerrang.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bucket_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bucket_tar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bug_lantern.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_bug_lantern_glow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_burgh_rod_control.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_butterfly_jar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_butterfly_net.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_book.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_mage.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_cabbage_overhead.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_calquat_keg.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_calquat_keg_left.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_camorras_axe.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_canoeing_paddle.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewars_banner_green.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewars_banner_saradomin.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_castlewaras_banner_zamorak.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cattleprod.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chair.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chapion_ghoul_club.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_champion_skeleton_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_champion_zombie_arm.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_charcoal.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cherican.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_chicken.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chicken_drumstick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chinchompa.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chisel.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_chocolate_bar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clawhammer.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cleaver.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clipboard.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_clipboardandpen.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_kerris.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_kerris_poison.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_contact_sophanem_guards_cutlass_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_crab_claw.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_craws_bow.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_craws_bow_charged.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_crystal_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_crystal_shield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_cudgel.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dagannoth_bow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dagannoth_bow_female.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dh_sword_ornate.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dh-sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dibber.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dk_witch_broomstick.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_dagger.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_defender.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_defender_woman.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_halberd.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_hasta.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_kiteshield.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_kiteshield_female.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_mace.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_scimitar.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe_broke.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_smallaxe_handle_macro.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_spear.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_sq_shield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_tknife.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_tknife_off.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_two_handed_sword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragon_warhammer.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonaxe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonfire_ward.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonfireshield.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonhunter_lance.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dragonsword.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_drive_throne.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_crossbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_dagger.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_bone_dagger_p.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_crate.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_ham_goblet.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_ham_goblet_rhand.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_zanik_bone_crossbow.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dttd_zanik_tog_bowl.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dualclaws.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dust_staff.ob3&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_blunt_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_chair.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dwarf_sharp_axe.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dye_bottle_ft.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_dye_bottle_night.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_earthwarriormace.ob2&lt;br /&gt;
src/models/human/weapons/human_weapons_ectophial_teleport.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/skill_slayer/npc/grotesque_guardians/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/skill_slayer/npc/grotesque_guardians/grotesque_guardians.base&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_corner_01_2.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_02_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_arch_straight_03_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_corner_02.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_01.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_01_2.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_pony_corner_straight_02_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_straight_01_1.ob3&lt;br /&gt;
src/models/skill_slayer/slayer_tower_roof/slayer_tower_roof_wallkit/slayer_tower_roof_wall_straight_02_1.ob3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/allowlogin.rs2&lt;br /&gt;
src/scripts/calcqp.rs2&lt;br /&gt;
src/scripts/drop.rs2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/areas/area_fossil/config/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.area&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.constant&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.enum&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.inv&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.npc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.obj&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.seq&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.spotanim&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.varbit&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil.varp&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_npc.seq&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_pvn.npc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_reward.obj&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_scene.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/fossil_underwater.loc&lt;br /&gt;
src/scripts/areas/area_fossil/config/wyvern_shield.varobj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/areas/kebos/brimstone/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/areas/kebos/brimstone/brimstone.obj&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/drop tables/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/drop tables/_drops.rs2&lt;br /&gt;
src/scripts/drop tables/bandit_leader.rs2&lt;br /&gt;
src/scripts/drop tables/barbarian.rs2&lt;br /&gt;
src/scripts/drop tables/battle_tortoises_drops.rs2&lt;br /&gt;
src/scripts/drop tables/bear.rs2&lt;br /&gt;
src/scripts/drop tables/bearded_dark_wizard.rs2&lt;br /&gt;
src/scripts/drop tables/black_demon.rs2&lt;br /&gt;
src/scripts/drop tables/black_dragon.rs2&lt;br /&gt;
src/scripts/drop tables/black_knight.rs2&lt;br /&gt;
src/scripts/drop tables/brawling_bandit.rs2&lt;br /&gt;
src/scripts/drop tables/bronzedragon.rs2&lt;br /&gt;
src/scripts/drop tables/cave_goblins.rs2&lt;br /&gt;
src/scripts/drop tables/chaos_druid.rs2&lt;br /&gt;
src/scripts/drop tables/chaos_druid_warrior.rs2&lt;br /&gt;
src/scripts/drop tables/chicken.rs2&lt;br /&gt;
src/scripts/drop tables/citizens.rs2&lt;br /&gt;
src/scripts/drop tables/cosmic_entity.rs2&lt;br /&gt;
src/scripts/drop tables/cow.rs2&lt;br /&gt;
src/scripts/drop tables/dagganoths.rs2&lt;br /&gt;
src/scripts/drop tables/dark_warrior.rs2&lt;br /&gt;
src/scripts/drop tables/deal_pirate_drops.rs2&lt;br /&gt;
src/scripts/drop tables/druid.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_chaos.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_mountain.rs2&lt;br /&gt;
src/scripts/drop tables/dwarf_normal.rs2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/floors/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/floors/overlay.flo&lt;br /&gt;
src/scripts/floors/underlay.flu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/skill_slayer/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/skill_slayer/kill_log.if3&lt;br /&gt;
src/scripts/skill_slayer/slayer.area&lt;br /&gt;
src/scripts/skill_slayer/slayer.constant&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====src/scripts/gargoyle_boss/config/====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.constant&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.controller&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.npc&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.obj&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.varbit&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.varp&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/garg_boss.vars&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/grotesque_guardians.seq&lt;br /&gt;
src/scripts/skill_slayer/gargoyle_boss/config/slayer_tower_roof.loc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Main_Page&amp;diff=470</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Main_Page&amp;diff=470"/>
		<updated>2024-05-12T18:06:16Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RuneWiki is a collaborative effort to describe how the RuneScape client, and client to server communication, has functioned in the past.&lt;br /&gt;
&lt;br /&gt;
It does not intend to infringe on Jagex's copyright in any harmful way. This is purely academic and exists because we are curious humans.&lt;br /&gt;
&lt;br /&gt;
[https://www.runewiki.org/archive We keep an organized archive of data here] so less will be lost to time. See [[Rsync Instructions]] if you're interested in mirroring it.&lt;br /&gt;
&lt;br /&gt;
==Index==&lt;br /&gt;
[[Data Types]]&lt;br /&gt;
&lt;br /&gt;
[[Old Engine]]&lt;br /&gt;
&lt;br /&gt;
[[World Map Applet]]&lt;br /&gt;
&lt;br /&gt;
[[OpenRS2 Deobfuscator]]&lt;br /&gt;
&lt;br /&gt;
[[RuneScript]]&lt;br /&gt;
&lt;br /&gt;
[[Known File Info]]&lt;br /&gt;
&lt;br /&gt;
[[Cache Layout]]&lt;br /&gt;
&lt;br /&gt;
[[Data Collection]]&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=469</id>
		<title>Data Collection</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=469"/>
		<updated>2024-05-12T17:55:16Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== OSRS Spawns 2020-07-04 ===&lt;br /&gt;
''From the RuneScape Wiki Discord, courtesy of Mod Nin.''&lt;br /&gt;
&lt;br /&gt;
[[:File:NPCList-3.csv|NPCList.csv]]&lt;br /&gt;
&lt;br /&gt;
==== Transcript ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
BlackHawk — 07/02/2020 4:18 PM&lt;br /&gt;
@Shauny, reckon it would be possible to try to get some updated npc coordinates?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 10:56 AM&lt;br /&gt;
^ I can look into this for you&lt;br /&gt;
Not sure how Shauny would have created that list, if someone could ping me the old list I'll try and make one in the same format&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/03/2020 11:32 AM&lt;br /&gt;
I'll find it now&lt;br /&gt;
Here's the list before we started removing: https://runescape.wiki/?oldid=32364682&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 1:22 PM&lt;br /&gt;
I'll see what I can do 🙂&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 2:06 PM&lt;br /&gt;
NPCList.csv 737 KB - https://runewiki.org/File:NPCList-1.csv&lt;br /&gt;
Hopefully that works!&lt;br /&gt;
It's a few months out-of-date because of some remote working limitations&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 7:33 AM&lt;br /&gt;
Had a look at wisps specifically, they're not appearing on the list because they're spawned via script slightly after the server boots&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/04/2020 7:59 AM&lt;br /&gt;
Thanks for looking! Are they the only NPC that function like that or are there others?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:01 AM&lt;br /&gt;
Can only assume there's more&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:10 AM&lt;br /&gt;
NPCList.csv 828 KB - https://runewiki.org/File:NPCList-2.csv&lt;br /&gt;
Disabled NPC movement and let the server sit for a minute before capturing that list&lt;br /&gt;
Seems a bit more complete&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:13 AM&lt;br /&gt;
Hm&lt;br /&gt;
I think there is still stuff missing&lt;br /&gt;
Eg paul gower&lt;br /&gt;
Unless he is spawned with script too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:16 AM&lt;br /&gt;
Does he only appear in the weird gower quest looping area?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:18 AM&lt;br /&gt;
Next to andrew gower, both in life altar and  varrock farm&lt;br /&gt;
Im not home atm, ill see if i can get a list of others i think are missing when i get home &lt;br /&gt;
A lot of fremennik slayer dungeon npcs were missing too&lt;br /&gt;
And sophanem slayer dungeon too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:38 AM&lt;br /&gt;
NPCList.csv 903 KB - https://runewiki.org/File:NPCList-3.csv&lt;br /&gt;
I think I figured out the problem, that should have those remaining ones&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:41 AM&lt;br /&gt;
:BlessWiki:&lt;br /&gt;
Is the list in any particular order?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:43 AM&lt;br /&gt;
Roughly in the order that they're loaded in&lt;br /&gt;
You can see all the wisps are near the bottom since they're spawned in dynamically&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:21 PM&lt;br /&gt;
Hi, just butting in to note that the penguin spy NPCs seem to be missing (IDs 8094 - 8103) although this week's disguises are all listed&lt;br /&gt;
Are the spies generated dynamically too?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:22 PM&lt;br /&gt;
I think how he did it is that he made a dump from  a test server&lt;br /&gt;
So it would make sense only one rotation of pengs is in there&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:27 PM&lt;br /&gt;
That makes sense&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:29 PM&lt;br /&gt;
Some of them are floating above the clan wars plateau as well&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=File:NPCList-3.csv&amp;diff=468</id>
		<title>File:NPCList-3.csv</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=File:NPCList-3.csv&amp;diff=468"/>
		<updated>2024-05-12T17:54:24Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: 07/04/2020 8:38 AM EST&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
07/04/2020 8:38 AM EST&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=File:NPCList-2.csv&amp;diff=467</id>
		<title>File:NPCList-2.csv</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=File:NPCList-2.csv&amp;diff=467"/>
		<updated>2024-05-12T17:54:12Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: 07/04/2020 8:10 AM EST&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
07/04/2020 8:10 AM EST&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=File:NPCList-1.csv&amp;diff=466</id>
		<title>File:NPCList-1.csv</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=File:NPCList-1.csv&amp;diff=466"/>
		<updated>2024-05-12T17:53:57Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: 07/03/2020 2:06 PM EST&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
07/03/2020 2:06 PM EST&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=465</id>
		<title>Data Collection</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=465"/>
		<updated>2024-05-12T17:52:08Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== OSRS Spawns 2020-07-04 ===&lt;br /&gt;
''From the RuneScape Wiki Discord, courtesy of Mod Nin.''&lt;br /&gt;
&lt;br /&gt;
==== Transcripts ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
BlackHawk — 07/02/2020 4:18 PM&lt;br /&gt;
@Shauny, reckon it would be possible to try to get some updated npc coordinates?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 10:56 AM&lt;br /&gt;
^ I can look into this for you&lt;br /&gt;
Not sure how Shauny would have created that list, if someone could ping me the old list I'll try and make one in the same format&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/03/2020 11:32 AM&lt;br /&gt;
I'll find it now&lt;br /&gt;
Here's the list before we started removing: https://runescape.wiki/?oldid=32364682&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 1:22 PM&lt;br /&gt;
I'll see what I can do 🙂&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 2:06 PM&lt;br /&gt;
NPCList.csv 737 KB&lt;br /&gt;
Hopefully that works!&lt;br /&gt;
It's a few months out-of-date because of some remote working limitations&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 7:33 AM&lt;br /&gt;
Had a look at wisps specifically, they're not appearing on the list because they're spawned via script slightly after the server boots&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/04/2020 7:59 AM&lt;br /&gt;
Thanks for looking! Are they the only NPC that function like that or are there others?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:01 AM&lt;br /&gt;
Can only assume there's more&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:10 AM&lt;br /&gt;
NPCList.csv 828 KB&lt;br /&gt;
Disabled NPC movement and let the server sit for a minute before capturing that list&lt;br /&gt;
Seems a bit more complete&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:13 AM&lt;br /&gt;
Hm&lt;br /&gt;
I think there is still stuff missing&lt;br /&gt;
Eg paul gower&lt;br /&gt;
Unless he is spawned with script too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:16 AM&lt;br /&gt;
Does he only appear in the weird gower quest looping area?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:18 AM&lt;br /&gt;
Next to andrew gower, both in life altar and  varrock farm&lt;br /&gt;
Im not home atm, ill see if i can get a list of others i think are missing when i get home &lt;br /&gt;
A lot of fremennik slayer dungeon npcs were missing too&lt;br /&gt;
And sophanem slayer dungeon too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:38 AM&lt;br /&gt;
NPCList.csv 903 KB&lt;br /&gt;
I think I figured out the problem, that should have those remaining ones&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:41 AM&lt;br /&gt;
:BlessWiki:&lt;br /&gt;
Is the list in any particular order?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:43 AM&lt;br /&gt;
Roughly in the order that they're loaded in&lt;br /&gt;
You can see all the wisps are near the bottom since they're spawned in dynamically&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:21 PM&lt;br /&gt;
Hi, just butting in to note that the penguin spy NPCs seem to be missing (IDs 8094 - 8103) although this week's disguises are all listed&lt;br /&gt;
Are the spies generated dynamically too?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:22 PM&lt;br /&gt;
I think how he did it is that he made a dump from  a test server&lt;br /&gt;
So it would make sense only one rotation of pengs is in there&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:27 PM&lt;br /&gt;
That makes sense&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:29 PM&lt;br /&gt;
Some of them are floating above the clan wars plateau as well&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=464</id>
		<title>Data Collection</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=464"/>
		<updated>2024-05-12T17:50:41Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== OSRS Spawns 2020-07-04 ===&lt;br /&gt;
source: ''RuneScape Wiki discord courtesy of Mod Nin.''&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
BlackHawk — 07/02/2020 4:18 PM&lt;br /&gt;
@Shauny, reckon it would be possible to try to get some updated npc coordinates?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 10:56 AM&lt;br /&gt;
^ I can look into this for you&lt;br /&gt;
Not sure how Shauny would have created that list, if someone could ping me the old list I'll try and make one in the same format&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/03/2020 11:32 AM&lt;br /&gt;
I'll find it now&lt;br /&gt;
Here's the list before we started removing: https://runescape.wiki/?oldid=32364682&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 1:22 PM&lt;br /&gt;
I'll see what I can do 🙂&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/03/2020 2:06 PM&lt;br /&gt;
NPCList.csv 737 KB&lt;br /&gt;
Hopefully that works!&lt;br /&gt;
It's a few months out-of-date because of some remote working limitations&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 7:33 AM&lt;br /&gt;
Had a look at wisps specifically, they're not appearing on the list because they're spawned via script slightly after the server boots&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/04/2020 7:59 AM&lt;br /&gt;
Thanks for looking! Are they the only NPC that function like that or are there others?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:01 AM&lt;br /&gt;
Can only assume there's more&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:10 AM&lt;br /&gt;
NPCList.csv 828 KB&lt;br /&gt;
Disabled NPC movement and let the server sit for a minute before capturing that list&lt;br /&gt;
Seems a bit more complete&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:13 AM&lt;br /&gt;
Hm&lt;br /&gt;
I think there is still stuff missing&lt;br /&gt;
Eg paul gower&lt;br /&gt;
Unless he is spawned with script too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:16 AM&lt;br /&gt;
Does he only appear in the weird gower quest looping area?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:18 AM&lt;br /&gt;
Next to andrew gower, both in life altar and  varrock farm&lt;br /&gt;
Im not home atm, ill see if i can get a list of others i think are missing when i get home &lt;br /&gt;
A lot of fremennik slayer dungeon npcs were missing too&lt;br /&gt;
And sophanem slayer dungeon too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:38 AM&lt;br /&gt;
NPCList.csv 903 KB&lt;br /&gt;
I think I figured out the problem, that should have those remaining ones&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:41 AM&lt;br /&gt;
:BlessWiki:&lt;br /&gt;
Is the list in any particular order?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:43 AM&lt;br /&gt;
Roughly in the order that they're loaded in&lt;br /&gt;
You can see all the wisps are near the bottom since they're spawned in dynamically&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:21 PM&lt;br /&gt;
Hi, just butting in to note that the penguin spy NPCs seem to be missing (IDs 8094 - 8103) although this week's disguises are all listed&lt;br /&gt;
Are the spies generated dynamically too?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:22 PM&lt;br /&gt;
I think how he did it is that he made a dump from  a test server&lt;br /&gt;
So it would make sense only one rotation of pengs is in there&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:27 PM&lt;br /&gt;
That makes sense&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:29 PM&lt;br /&gt;
Some of them are floating above the clan wars plateau as well&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=463</id>
		<title>Data Collection</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=463"/>
		<updated>2024-05-12T17:45:21Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* OSRS Spawns 2020-07-04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== OSRS Spawns 2020-07-04 ===&lt;br /&gt;
source: ''RuneScape Wiki discord courtesy of Mod Nin.''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Mod Nin — 07/04/2020 7:33 AM&lt;br /&gt;
Had a look at wisps specifically, they're not appearing on the list because they're spawned via script slightly after the server boots&lt;br /&gt;
&lt;br /&gt;
BlackHawk — 07/04/2020 7:59 AM&lt;br /&gt;
Thanks for looking! Are they the only NPC that function like that or are there others?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:01 AM&lt;br /&gt;
Can only assume there's more&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:10 AM&lt;br /&gt;
NPCList.csv 828 KB&lt;br /&gt;
Disabled NPC movement and let the server sit for a minute before capturing that list&lt;br /&gt;
Seems a bit more complete&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:13 AM&lt;br /&gt;
Hm&lt;br /&gt;
I think there is still stuff missing&lt;br /&gt;
Eg paul gower&lt;br /&gt;
Unless he is spawned with script too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:16 AM&lt;br /&gt;
Does he only appear in the weird gower quest looping area?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:18 AM&lt;br /&gt;
Next to andrew gower, both in life altar and  varrock farm&lt;br /&gt;
Im not home atm, ill see if i can get a list of others i think are missing when i get home &lt;br /&gt;
A lot of fremennik slayer dungeon npcs were missing too&lt;br /&gt;
And sophanem slayer dungeon too&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:38 AM&lt;br /&gt;
NPCList.csv 903 KB&lt;br /&gt;
I think I figured out the problem, that should have those remaining ones&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 8:41 AM&lt;br /&gt;
:BlessWiki:&lt;br /&gt;
Is the list in any particular order?&lt;br /&gt;
&lt;br /&gt;
Mod Nin — 07/04/2020 8:43 AM&lt;br /&gt;
Roughly in the order that they're loaded in&lt;br /&gt;
You can see all the wisps are near the bottom since they're spawned in dynamically&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:21 PM&lt;br /&gt;
Hi, just butting in to note that the penguin spy NPCs seem to be missing (IDs 8094 - 8103) although this week's disguises are all listed&lt;br /&gt;
Are the spies generated dynamically too?&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:22 PM&lt;br /&gt;
I think how he did it is that he made a dump from  a test server&lt;br /&gt;
So it would make sense only one rotation of pengs is in there&lt;br /&gt;
&lt;br /&gt;
Aveo — 07/04/2020 12:27 PM&lt;br /&gt;
That makes sense&lt;br /&gt;
&lt;br /&gt;
mejrs — 07/04/2020 12:29 PM&lt;br /&gt;
Some of them are floating above the clan wars plateau as well&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=462</id>
		<title>Data Collection</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Data_Collection&amp;diff=462"/>
		<updated>2024-05-12T17:42:01Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: Created page with &amp;quot;=== OSRS Spawns 2020-07-04 ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== OSRS Spawns 2020-07-04 ===&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Configs/LocType&amp;diff=461</id>
		<title>Configs/LocType</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Configs/LocType&amp;diff=461"/>
		<updated>2024-03-28T21:26:29Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Loc means “Location” and represents all of the game objects in the world.&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Regardless of the revision, the packing process has some basic rules.&lt;br /&gt;
&lt;br /&gt;
# Loc names must be unique. They can have + symbols in the name.&lt;br /&gt;
# Configs are a purely text format with a custom parser. True/false values are written as yes/no.&lt;br /&gt;
# Opcodes are written in the order they're read in. This means the packing process is writing immediately as it parses, with a few exceptions for properties that are &amp;quot;collected&amp;quot; and written at the end (typically arrays or complex properties). If you decode to memory or a standard intermediate format, you will lose this information, not that it matters much for the end result. Only bother with this if you care to match the checksum exactly.&lt;br /&gt;
&lt;br /&gt;
Because of #2 you'll also be able to see when they copy-paste lines and/or forget to remove old properties!&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[example]&lt;br /&gt;
name=Example&lt;br /&gt;
desc=This is an example&lt;br /&gt;
model=example&lt;br /&gt;
length=4&lt;br /&gt;
width=2&lt;br /&gt;
length=2&lt;br /&gt;
recol1s=5&lt;br /&gt;
recol1d=1234&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RS2 ===&lt;br /&gt;
Changes based on decompiling available clients. If a revision is off by a couple, it's because we were missing those clients or they were not auto-decompilable (yet) to narrow the revision down further. I'll refine this again later.&lt;br /&gt;
&lt;br /&gt;
Names are an attempt to be authentic and correct, if you have any more information definitely reach out.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|1&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Changed 300 (2005-03-07)&lt;br /&gt;
&lt;br /&gt;
Changed 581 (2010-01-29)&lt;br /&gt;
|Written at the end of a config.&lt;br /&gt;
|-&lt;br /&gt;
|name&lt;br /&gt;
|2&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|Written at the end of a config.&lt;br /&gt;
|-&lt;br /&gt;
|desc&lt;br /&gt;
|3&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 410 (2006-05-25)&lt;br /&gt;
|Examine text, written at the end of a config. Later transmitted from the server.&lt;br /&gt;
|-&lt;br /&gt;
|model&lt;br /&gt;
|5&lt;br /&gt;
|Added 249 (2004-08-09)&lt;br /&gt;
Changed 300 (2005-03-07)&lt;br /&gt;
&lt;br /&gt;
Changed 581 (2010-01-29)&lt;br /&gt;
|Written at the end of a config. This opcode is used to save bytes in the list of models.&lt;br /&gt;
|-&lt;br /&gt;
|width&lt;br /&gt;
|14&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|length&lt;br /&gt;
|15&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|blockwalk=no&lt;br /&gt;
|17&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Changed 454 (2007-03-05)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|blockrange=no&lt;br /&gt;
|18&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|active&lt;br /&gt;
|19&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|hillskew=yes&lt;br /&gt;
|21&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|hillskew mode 1&lt;br /&gt;
|-&lt;br /&gt;
|sharelight=yes&lt;br /&gt;
|22&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|occlude=yes&lt;br /&gt;
|23&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|anim&lt;br /&gt;
|24&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| -&lt;br /&gt;
|25&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 249 (2004-08-09)&lt;br /&gt;
|This opcode was used internally for disposing of alpha data between animation frames.&lt;br /&gt;
It was not manually defined and comes from a linked anim.&lt;br /&gt;
|-&lt;br /&gt;
|blockwalk=yes&lt;br /&gt;
|27&lt;br /&gt;
|Added 451 (2007-03-05)&lt;br /&gt;
|Forces blockwalk to be on. Ground decor is clipped with FLOOR_DECORATION&lt;br /&gt;
|-&lt;br /&gt;
|wallwidth&lt;br /&gt;
|28&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ambient&lt;br /&gt;
|29&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|contrast&lt;br /&gt;
|39&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|op&lt;br /&gt;
|30-35&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|Originally this reserved opcodes &amp;gt;= 30 &amp;amp; &amp;lt; 39 (likely copy-pasted).&lt;br /&gt;
|-&lt;br /&gt;
|recol&lt;br /&gt;
|40&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|retex&lt;br /&gt;
|41&lt;br /&gt;
|Added 465 (2007-07-19)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|recoldpalette&lt;br /&gt;
|42&lt;br /&gt;
|Added 494 (2008-04-15)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|mapfunction&lt;br /&gt;
|60&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|mirror=yes&lt;br /&gt;
|62&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|shadow=no&lt;br /&gt;
|64&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizex&lt;br /&gt;
|65&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizey&lt;br /&gt;
|66&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|resizez&lt;br /&gt;
|67&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|mapscene&lt;br /&gt;
|68&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
Removed 530 (2009-01-28)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|forceapproach&lt;br /&gt;
|69&lt;br /&gt;
|Added 186 (2003-12-02)&lt;br /&gt;
|This is a bitmask, one bit will be unset - the direction.&lt;br /&gt;
|-&lt;br /&gt;
|offsetx&lt;br /&gt;
|70&lt;br /&gt;
|Added 194 (2004-01-07)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|offsety&lt;br /&gt;
|71&lt;br /&gt;
|Added 194 (2004-01-07)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|offsetz&lt;br /&gt;
|72&lt;br /&gt;
|Added 194 (2004-01-07)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|forcedecor=yes&lt;br /&gt;
|73&lt;br /&gt;
|Added 194 (2004-01-07)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|breakroutefinding=yes&lt;br /&gt;
|74&lt;br /&gt;
|Added 245 (2004-07-13)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|raiseobject&lt;br /&gt;
|75&lt;br /&gt;
|Added 249 (2004-08-09)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multiloc&lt;br /&gt;
|77&lt;br /&gt;
|Added 289 (2005-01-17)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bgsound&lt;br /&gt;
|78&lt;br /&gt;
|Added 417 (2006-06-27)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|randomsound&lt;br /&gt;
|79&lt;br /&gt;
|Added 417 (2006-06-27)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|treeskew*&lt;br /&gt;
|81&lt;br /&gt;
|Added 465 (2007-07-19)&lt;br /&gt;
|hillskew mode 2&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|82&lt;br /&gt;
|Added 487 (2008-02-12)&lt;br /&gt;
|Related to whether it should render?&lt;br /&gt;
|-&lt;br /&gt;
|hardshadow=no*&lt;br /&gt;
|88&lt;br /&gt;
|Added 487 (2008-02-12)&lt;br /&gt;
|If this isn't hardshadow, it's something like sceneshadow?&lt;br /&gt;
|-&lt;br /&gt;
|randomanimframe=false&lt;br /&gt;
|89&lt;br /&gt;
|Added 487 (2008-02-12)&lt;br /&gt;
|Disable randomizing the initial seq frame.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|90&lt;br /&gt;
|Added 487 (2008-02-12)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|members=yes&lt;br /&gt;
|91&lt;br /&gt;
|Added 494 (2008-04-15)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|multiloc&lt;br /&gt;
|92&lt;br /&gt;
|Added 498 (2008-05-09)&lt;br /&gt;
|multiloc with a default value.&lt;br /&gt;
|-&lt;br /&gt;
|rotateskew*&lt;br /&gt;
|93&lt;br /&gt;
|Added 498 (2008-05-09)&lt;br /&gt;
|hillskew mode 3 - Same as previous but reads 2-bytes.&lt;br /&gt;
|-&lt;br /&gt;
|ceilingskew=yes*&lt;br /&gt;
|94&lt;br /&gt;
|Added 498 (2008-05-09)&lt;br /&gt;
|hillskew mode 4&lt;br /&gt;
|-&lt;br /&gt;
|skewtofit=yes*&lt;br /&gt;
|95&lt;br /&gt;
|Added 498 (2008-05-09)&lt;br /&gt;
|hillskew mode 5&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|96&lt;br /&gt;
|Added 501 (2008-07-01)&lt;br /&gt;
|Related to having an animation?&lt;br /&gt;
|-&lt;br /&gt;
|mapscenerotates=yes&lt;br /&gt;
|97&lt;br /&gt;
|Added 506 (2008-07-28)&lt;br /&gt;
|Map scene icon rotates with the loc.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|98&lt;br /&gt;
|Added 530 (2009-01-28)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|cursor1&lt;br /&gt;
|99&lt;br /&gt;
|Added 530 (2009-01-28)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|cursor2&lt;br /&gt;
|100&lt;br /&gt;
|Added 530 (2009-01-28)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|mapsceneangle*&lt;br /&gt;
|101&lt;br /&gt;
|Added 530 (2009-01-28)&lt;br /&gt;
|Map scene icon angle offset.&lt;br /&gt;
|-&lt;br /&gt;
|mapscene&lt;br /&gt;
|102&lt;br /&gt;
|Added 530 (2009-01-28)&lt;br /&gt;
|Replaces the earlier mapscene.&lt;br /&gt;
|-&lt;br /&gt;
|occlude=no&lt;br /&gt;
|103&lt;br /&gt;
|Added 535 (2009-03-16)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bgsoundvol&lt;br /&gt;
|104&lt;br /&gt;
|Added 535 (2009-03-16)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|mapsceneflipy*&lt;br /&gt;
|105&lt;br /&gt;
|Added 535 (2009-03-16)&lt;br /&gt;
|Map scene icon flipped vertically.&lt;br /&gt;
|-&lt;br /&gt;
|anims&lt;br /&gt;
|106&lt;br /&gt;
|Added 542 (2009-04-02)&lt;br /&gt;
|Animation weights?&lt;br /&gt;
|-&lt;br /&gt;
|mel&lt;br /&gt;
|107&lt;br /&gt;
|Added 548 (2009-05-27)&lt;br /&gt;
|Map element.&lt;br /&gt;
|-&lt;br /&gt;
|memberop*&lt;br /&gt;
|150-155&lt;br /&gt;
|Added 548 (2009-05-27)&lt;br /&gt;
|Members-only ops.&lt;br /&gt;
|-&lt;br /&gt;
|quests*&lt;br /&gt;
|160&lt;br /&gt;
|Added 555 (2009-09-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|rotateskew*&lt;br /&gt;
|162&lt;br /&gt;
|Added 581 (2010-01-29)&lt;br /&gt;
|Same as previous but reads 4-bytes.&lt;br /&gt;
|-&lt;br /&gt;
|tint&lt;br /&gt;
|163&lt;br /&gt;
|Added 581 (2010-01-29)&lt;br /&gt;
|Hue, saturation, luminance, weight values&lt;br /&gt;
|-&lt;br /&gt;
|postoffsetx&lt;br /&gt;
|164&lt;br /&gt;
|Added 593 (2010-03-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|postoffsety&lt;br /&gt;
|165&lt;br /&gt;
|Added 593 (2010-03-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|postoffsetz&lt;br /&gt;
|166&lt;br /&gt;
|Added 593 (2010-03-02)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|decorheight*&lt;br /&gt;
|167&lt;br /&gt;
|Added 595 (2010-03-12)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|168&lt;br /&gt;
|Added 611 (2010-06-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|169&lt;br /&gt;
|Added 611 (2010-06-08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|occludewidth&lt;br /&gt;
|170&lt;br /&gt;
|Added 618 (2010-09-14)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|occludeheight&lt;br /&gt;
|171&lt;br /&gt;
|Added 618 (2010-09-14)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bgsoundrate&lt;br /&gt;
|173&lt;br /&gt;
|Added 623 (2010-10-11)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|177&lt;br /&gt;
|Added 637 (2011-02-07)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bgsounddistance&lt;br /&gt;
|178&lt;br /&gt;
|Added 637 (2011-02-07)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|189&lt;br /&gt;
|667+ (todo)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|param&lt;br /&gt;
|249&lt;br /&gt;
|Added 500 (2008-06-05)&lt;br /&gt;
|Map of params key -&amp;gt; value.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== hillskew Types ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ts&amp;quot;&amp;gt;&lt;br /&gt;
enum HillSkewType {&lt;br /&gt;
    none = 0,&lt;br /&gt;
    floor_skew = 1,&lt;br /&gt;
    tree_skew = 2,&lt;br /&gt;
    rotate = 3,&lt;br /&gt;
    ceiling_skew = 4,&lt;br /&gt;
    skew_to_fit = 5&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== shape Names ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ts&amp;quot;&amp;gt;&lt;br /&gt;
enum LocShape {&lt;br /&gt;
    wall_straight = 0,&lt;br /&gt;
    wall_diagonalcorner = 1,&lt;br /&gt;
    wall_l = 2,&lt;br /&gt;
    wall_squarecorner = 3,&lt;br /&gt;
    wall_diagonal = 9,&lt;br /&gt;
    walldecor_straight_nooffset = 4,&lt;br /&gt;
    walldecor_straight_offset = 5,&lt;br /&gt;
    walldecor_diagonal_nooffset = 6,&lt;br /&gt;
    walldecor_diagonal_offset = 7,&lt;br /&gt;
    walldecor_diagonal_both = 8,&lt;br /&gt;
    centrepiece_straight = 10,&lt;br /&gt;
    centrepiece_diagonal = 11,&lt;br /&gt;
    grounddecor = 22,&lt;br /&gt;
    roof_straight = 12,&lt;br /&gt;
    roof_diagonal_with_roofedge = 13,&lt;br /&gt;
    roof_diagonal = 14,&lt;br /&gt;
    roof_l_concave = 15,&lt;br /&gt;
    roof_l_convex = 16,&lt;br /&gt;
    roof_flat = 17,&lt;br /&gt;
    roofedge_straight = 18,&lt;br /&gt;
    roofedge_diagonalcorner = 19,&lt;br /&gt;
    roofedge_l = 20,&lt;br /&gt;
    roofedge_squarecorner = 21,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== shape Map Editor Hotkeys ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ts&amp;quot;&amp;gt;&lt;br /&gt;
// hotkeys in jagex's map editor are used as the extension for loc models so they know which shape to inherit&lt;br /&gt;
enum LocShapeHotkey {&lt;br /&gt;
    _1 = 0, // 'wall_straight',&lt;br /&gt;
    _2 = 1, // 'wall_diagonalcorner',&lt;br /&gt;
    _3 = 2, // 'wall_l',&lt;br /&gt;
    _4 = 3, // 'wall_squarecorner',&lt;br /&gt;
    _5 = 9, // 'wall_diagonal',&lt;br /&gt;
    //&lt;br /&gt;
    _q = 4, // 'walldecor_straight_nooffset',&lt;br /&gt;
    _w = 5, // 'walldecor_straight_offset',&lt;br /&gt;
    _e = 6, // 'walldecor_diagonal_nooffset',&lt;br /&gt;
    _r = 7, // 'walldecor_diagonal_offset',&lt;br /&gt;
    _t = 8, // 'walldecor_diagonal_both',&lt;br /&gt;
    //&lt;br /&gt;
    _8 = 10, // 'centrepiece_straight',&lt;br /&gt;
    _9 = 11, // 'centrepiece_diagonal',&lt;br /&gt;
    _0 = 22, // 'grounddecor',&lt;br /&gt;
    //&lt;br /&gt;
    _a = 12, // 'roof_straight',&lt;br /&gt;
    _s = 13, // 'roof_diagonal_with_roofedge',&lt;br /&gt;
    _d = 14, // 'roof_diagonal',&lt;br /&gt;
    _f = 15, // 'roof_l_concave',&lt;br /&gt;
    _g = 16, // 'roof_l_convex',&lt;br /&gt;
    _h = 17, // 'roof_flat',&lt;br /&gt;
    //&lt;br /&gt;
    _z = 18, // 'roofedge_straight',&lt;br /&gt;
    _x = 19, // 'roofedge_diagonalcorner',&lt;br /&gt;
    _c = 20, // 'roofedge_l',&lt;br /&gt;
    _v = 21, // 'roofedge_squarecorner',&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== model Property ====&lt;br /&gt;
This property is used to render a specific model based on the shape. The shape to use comes from the map data and zone protocol.&lt;br /&gt;
&lt;br /&gt;
This opcode is packed at the end of the config when we receive it in the cache.&lt;br /&gt;
&lt;br /&gt;
===== Config =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[example]&lt;br /&gt;
model=example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;They only need to define this as a single &amp;lt;code&amp;gt;model=name&amp;lt;/code&amp;gt;, the shape is derived by looking for suffixes on file names in their &amp;lt;code&amp;gt;src/models/&amp;lt;/code&amp;gt; directory. The suffixes are not the shape numbers here but rather their map editor's hotkeys!&lt;br /&gt;
&lt;br /&gt;
Scenario 1: a model &amp;lt;code&amp;gt;example_8.ob3&amp;lt;/code&amp;gt; and they have &amp;lt;code&amp;gt;model=example&amp;lt;/code&amp;gt; in their loc config. It sees &amp;lt;code&amp;gt;_8&amp;lt;/code&amp;gt; and then knows to add shape=10.&lt;br /&gt;
&lt;br /&gt;
Scenario 2: two models, &amp;lt;code&amp;gt;example_8.ob3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;example_0.ob3&amp;lt;/code&amp;gt; and they have &amp;lt;code&amp;gt;model=example&amp;lt;/code&amp;gt; in their loc config. It sees both suffixes and knows to add shape=10 and shape=22 with those model IDs.&lt;br /&gt;
&lt;br /&gt;
Scenario 3: two models, &amp;lt;code&amp;gt;example_8.ob3&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;example_0.ob3&amp;lt;/code&amp;gt; again, but this time they have &amp;lt;code&amp;gt;model=example_0&amp;lt;/code&amp;gt; in their loc config. It sees that it's a specific suffix and adds that grounddecor model using shape=10 instead. This is a very particular feature used to override the appearance of the standard centrepiece_straight shape.&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 1) {&lt;br /&gt;
    int count = buf.g1();&lt;br /&gt;
&lt;br /&gt;
    this.shapes = new int[count];&lt;br /&gt;
    this.models = new int[count];&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
        this.models[i] = buf.g2();&lt;br /&gt;
        this.shapes[i] = buf.g1();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 249 =====&lt;br /&gt;
Opcode 5 was added (in addition to 1) for models that are solely shape 10.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 5) {&lt;br /&gt;
    int count = buf.g1();&lt;br /&gt;
&lt;br /&gt;
    if (count &amp;gt; 0) {&lt;br /&gt;
        this.shapes = null;&lt;br /&gt;
        this.models = new int[count];&lt;br /&gt;
&lt;br /&gt;
        for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
            this.models[i] = buf.g2();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 300 =====&lt;br /&gt;
Locs are able to change their appearance for lowmem (low detail) mode. I have no clue what this looks like on their end -- but I suspect models might just have a low-detail suffix they check for?&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 1) {&lt;br /&gt;
    int count = buf.g1();&lt;br /&gt;
&lt;br /&gt;
    if (count &amp;gt; 0) {&lt;br /&gt;
        // this opcode can be packed twice -- the first instance is the standard models&lt;br /&gt;
        // the second instance is the low-detail model&lt;br /&gt;
&lt;br /&gt;
        if (this.models == null || lowmem) {&lt;br /&gt;
            this.shapes = new int[count];&lt;br /&gt;
            this.models = new int[count];&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
                this.models[i] = buf.g2();&lt;br /&gt;
                this.shapes[i] = buf.g1();&lt;br /&gt;
            }&lt;br /&gt;
        } else {&lt;br /&gt;
            buf.pos += count * 2;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
} else if (opcode == 5) {&lt;br /&gt;
    int count = buf.g1();&lt;br /&gt;
&lt;br /&gt;
    if (count &amp;gt; 0) {&lt;br /&gt;
        // same as above&lt;br /&gt;
&lt;br /&gt;
        if (this.models == null || lowmem) {&lt;br /&gt;
            this.shapes = null;&lt;br /&gt;
            this.models = new int[count];&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
                this.models[i] = buf.g2();&lt;br /&gt;
            }&lt;br /&gt;
        } else {&lt;br /&gt;
            buf.pos += count * 2;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 581 =====&lt;br /&gt;
Models is now a 2d array so multiple models can be merged when rendering a loc shape.&lt;br /&gt;
&lt;br /&gt;
Opcode 5 is now used to differentiate the lowmem models (not limited to shape 10).&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 1 || opcode == 5) {&lt;br /&gt;
    if (opcode == 5 &amp;amp;&amp;amp; LocTypeList.lowmem) {&lt;br /&gt;
        this.skipModels(buf);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    int shapeCount = buf.g1();&lt;br /&gt;
    this.shapes = new byte[shapeCount];&lt;br /&gt;
    this.models = new int[shapeCount][];&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; shapeCount; i++) {&lt;br /&gt;
        this.shapes[i] = buf.g1();&lt;br /&gt;
&lt;br /&gt;
        int modelCount = buf.g1();&lt;br /&gt;
        this.models[i] = new int[modelCount];&lt;br /&gt;
&lt;br /&gt;
        for (int j = 0; j &amp;lt; modelCount; j++) {&lt;br /&gt;
            this.models[i][j] = buf.g2();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (opcode == 5 &amp;amp;&amp;amp; !LocTypeList.lowmem) {&lt;br /&gt;
        this.skipModels(buf);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void skipModels(Buffer buf) {&lt;br /&gt;
    int shapeCount = buf.g1();&lt;br /&gt;
    for (int i = 0; i &amp;lt; shapeCount; i++) {&lt;br /&gt;
        buf.pos++;&lt;br /&gt;
&lt;br /&gt;
        int modelCount = buf.g1();&lt;br /&gt;
        buf.pos += modelCount * 2;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 700+ =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 1) {&lt;br /&gt;
    int shapeCount = buf.g1();&lt;br /&gt;
    this.shapes = new byte[shapeCount];&lt;br /&gt;
    this.models = new int[shapeCount][];&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; shapeCount; i++) {&lt;br /&gt;
        this.shapes[i] = buf.g1();&lt;br /&gt;
&lt;br /&gt;
        int modelCount = buf.g1();&lt;br /&gt;
        this.models[i] = new int[modelCount];&lt;br /&gt;
&lt;br /&gt;
        for (int j = 0; j &amp;lt; modelCount; j++) {&lt;br /&gt;
            this.models[i][j] = buf.gSmart2or4();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== name Property ====&lt;br /&gt;
This property is the visible tooltip name. Occasionally, the internal debug name can slip in here, but that isn't visible unless the loc is &amp;quot;active&amp;quot; (based on shape or explicitly defined).&lt;br /&gt;
&lt;br /&gt;
This opcode is packed at the end of the config when we receive it in the cache.&lt;br /&gt;
&lt;br /&gt;
===== Config =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[example]&lt;br /&gt;
name=Example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 2) {&lt;br /&gt;
    this.name = buf.gjstr();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== desc Property ====&lt;br /&gt;
This property is the examine text. After 2006 this was no longer stored in the cache and is transmitted on-demand when a player examines something.&lt;br /&gt;
&lt;br /&gt;
This opcode is packed at the end of the config when we receive it in the cache.&lt;br /&gt;
&lt;br /&gt;
===== Config =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[example]&lt;br /&gt;
desc=This is an example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 3) {&lt;br /&gt;
    this.desc = buf.gjstr();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== width Property ====&lt;br /&gt;
Number of tiles a loc takes on the east/west axis.&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 14) {&lt;br /&gt;
    this.width = buf.g1();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== length Property ====&lt;br /&gt;
Number of tiles a loc takes on the north/south axis.&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 15) {&lt;br /&gt;
    this.length = buf.g1();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== blockwalk Property ====&lt;br /&gt;
Pathfinder property - controls line-of-walk checks through this tile.&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 17) {&lt;br /&gt;
    this.blockwalk = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 451 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 17) {&lt;br /&gt;
    this.blockrange = false;&lt;br /&gt;
    this.blockwalk = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== blockrange Property ====&lt;br /&gt;
Pathfinder property - controls line-of-sight checks through this tile.&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 18) {&lt;br /&gt;
    this.blockrange = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== active Property ====&lt;br /&gt;
Overrides if a loc can be examined and/or interacted with. There is a default value based on the available shapes/ops.&lt;br /&gt;
&lt;br /&gt;
===== Config =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[door]&lt;br /&gt;
active=yes&lt;br /&gt;
op1=Open&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;This door example is good because doors use wall shapes, so they wouldn't be set to active (able to use) without this.&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 19) {&lt;br /&gt;
    active = dat.g1();&lt;br /&gt;
&lt;br /&gt;
    if (active == 1) {&lt;br /&gt;
        this.active = true;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// after all decoding&lt;br /&gt;
if (active == -1) {&lt;br /&gt;
    this.active = this.shapes.length &amp;gt; 0 &amp;amp;&amp;amp; this.shapes[0] == 10;&lt;br /&gt;
&lt;br /&gt;
    if (this.ops != null) {&lt;br /&gt;
        this.active = true;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== hillskew Property ====&lt;br /&gt;
Stretch the loc model based on the tile height.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 21) {&lt;br /&gt;
    this.hillskew = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== sharelight Property ====&lt;br /&gt;
Allows vertex lighting to be shared between neighboring locs.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 22) {&lt;br /&gt;
    this.sharelight = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== occlude Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 23) {&lt;br /&gt;
    this.occlude = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 103) {&lt;br /&gt;
    this.occlude = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== anim Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (opcode == 24) {&lt;br /&gt;
    this.anim = 65535;&lt;br /&gt;
&lt;br /&gt;
    if (this.anim != 65535) {&lt;br /&gt;
        this.anim = -1;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== wallwidth Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 28) {&lt;br /&gt;
    this.wallwidth = dat.g1();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ambient Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 29) {&lt;br /&gt;
    this.ambient = dat.g1b();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== contrast Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 39) {&lt;br /&gt;
    this.contrast = dat.g1b();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== op Properties ====&lt;br /&gt;
op1-5 directly correlates to the server-script triggers for oploc1 through oploc5.&lt;br /&gt;
&lt;br /&gt;
There are options labelled &amp;quot;hidden&amp;quot; which are used for the server-side triggers to repeat oploc interactions.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code &amp;gt;= 30 &amp;amp;&amp;amp; code &amp;lt; 39) {&lt;br /&gt;
    if (this.ops == null) {&lt;br /&gt;
        this.ops = new String[5];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    this.ops[code - 30] = dat.gjstr();&lt;br /&gt;
    if (this.ops[code - 30].equalsIgnoreCase(&amp;quot;hidden&amp;quot;)) {&lt;br /&gt;
        this.ops[code - 30] = null;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== recol Properties ====&lt;br /&gt;
Recolor part of a model.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 40) {&lt;br /&gt;
    int count = dat.g1();&lt;br /&gt;
    this.recol_s = new int[count];&lt;br /&gt;
    this.recol_d = new int[count];&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
        this.recol_s[i] = dat.g2();&lt;br /&gt;
        this.recol_d[i] = dat.g2();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== retex Properties ====&lt;br /&gt;
Retexture part of a model.&lt;br /&gt;
&lt;br /&gt;
==== recol_dpalette Properties ====&lt;br /&gt;
&lt;br /&gt;
==== mapfunction Property ====&lt;br /&gt;
Draws a mapfunction sprite on the minimap where this loc is.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 60) {&lt;br /&gt;
    this.mapfunction = dat.g2();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== mirror Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 62) {&lt;br /&gt;
    this.mirror = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== shadow Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 64) {&lt;br /&gt;
    this.shadow = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== resize Properties ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 65) {&lt;br /&gt;
    this.resizex = dat.g2();&lt;br /&gt;
} else if (code == 66) {&lt;br /&gt;
    this.resizey = dat.g2();&lt;br /&gt;
} else if (code == 67) {&lt;br /&gt;
    this.resizez = dat.g2();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== mapscene Property ====&lt;br /&gt;
Draws a mapscene sprite on the minimap where this loc is.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 68) {&lt;br /&gt;
    this.mapscene = dat.g2();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== forceapproach Property ====&lt;br /&gt;
Pathfinder property - forces the player to approach the loc from a specific side.&lt;br /&gt;
&lt;br /&gt;
if bit 1 == 0: top (north)&lt;br /&gt;
&lt;br /&gt;
if bit 2 == 0: right (east)&lt;br /&gt;
&lt;br /&gt;
if bit 3 == 0: bottom (south)&lt;br /&gt;
&lt;br /&gt;
if bit 4 == 0: left (west)&lt;br /&gt;
&lt;br /&gt;
===== 186 =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 69) {&lt;br /&gt;
    this.forceapproach = dat.g1();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== offset Properties ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 70) {&lt;br /&gt;
    this.offsetx = dat.g2s();&lt;br /&gt;
} else if (code == 71) {&lt;br /&gt;
    this.offsety = dat.g2s();&lt;br /&gt;
} else if (code == 72) {&lt;br /&gt;
    this.offsetz = dat.g2s();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== forcedecor Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 73) {&lt;br /&gt;
    this.forcedecor=true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== breakroutefinding Property ====&lt;br /&gt;
Pathfinder property - allow the pathfinder to route through this loc.&lt;br /&gt;
&lt;br /&gt;
Scenario: interacting with a NPC behind a bank booth from an outside wall, so the player walks around to be within operable range.&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code === 74) {&lt;br /&gt;
    this.breakroutefinding = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== raiseobject Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code === 75) {&lt;br /&gt;
    this.raiseobject = buf.g1();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== multiloc Property ====&lt;br /&gt;
&lt;br /&gt;
==== bgsound Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code === 78) {&lt;br /&gt;
    this.bgsound = buf.g2();&lt;br /&gt;
    this.bgsoundrange = buf.g1();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== randomsound Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code === 79) {&lt;br /&gt;
    this.bgsoundmin = buf.g1();&lt;br /&gt;
    this.bgsoundmax = bug.g1();&lt;br /&gt;
    this.bgsoundrange = buf.g1();&lt;br /&gt;
&lt;br /&gt;
    int count = buf.g1();&lt;br /&gt;
    this.bgsounds = new int[count];&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
        this.bgsounds[i] = buf.g2();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== hardshadow Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code === 88) {&lt;br /&gt;
    this.hardshadow = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== randseq Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code === 89) {&lt;br /&gt;
    this.randseq = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== members Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code === 91) {&lt;br /&gt;
    this.members = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== mapscenerotates Property ====&lt;br /&gt;
&lt;br /&gt;
==== cursor Properties ====&lt;br /&gt;
&lt;br /&gt;
==== mapsceneangle Property ====&lt;br /&gt;
&lt;br /&gt;
==== bgsoundvol Property ====&lt;br /&gt;
&lt;br /&gt;
==== mapsceneflipy Property ====&lt;br /&gt;
&lt;br /&gt;
==== anims Properties ====&lt;br /&gt;
&lt;br /&gt;
==== mel Property ====&lt;br /&gt;
&lt;br /&gt;
==== memberop Property ====&lt;br /&gt;
&lt;br /&gt;
==== quests Property ====&lt;br /&gt;
&lt;br /&gt;
==== tint Property ====&lt;br /&gt;
&lt;br /&gt;
==== postoffset Properties ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 164) {&lt;br /&gt;
    this.postoffsetx = dat.g2s();&lt;br /&gt;
} else if (code == 165) {&lt;br /&gt;
    this.postoffsety = dat.g2s();&lt;br /&gt;
} else if (code == 166) {&lt;br /&gt;
    this.postoffsetz = dat.g2s();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== decorheight Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 167) {&lt;br /&gt;
    this.decorheight = dat.g2();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== occludewidth Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 170) {&lt;br /&gt;
    this.occludewidth = dat.gSmart1or2();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== occludeheight Property ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 171) {&lt;br /&gt;
    this.occludeheight = dat.gSmart1or2();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== bgsoundrate Property ====&lt;br /&gt;
&lt;br /&gt;
==== bgsounddistance Property ====&lt;br /&gt;
&lt;br /&gt;
==== param Properties ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
if (code == 249) {&lt;br /&gt;
    int count = buf.g1();&lt;br /&gt;
&lt;br /&gt;
    if (this.params == null) {&lt;br /&gt;
        int buckets = IntUtils.clp2(count);&lt;br /&gt;
        this.params = new HashTable(buckets);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
        boolean string = buffer.g1() == 1;&lt;br /&gt;
        int id = buffer.g3();&lt;br /&gt;
&lt;br /&gt;
        Node node;&lt;br /&gt;
        if (string) {&lt;br /&gt;
            node = new StringNode(buf.gjstr());&lt;br /&gt;
        } else {&lt;br /&gt;
            node = new IntNode(buf.g4());&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        this.params.put(id, node);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RS3 ===&lt;br /&gt;
Very little time spent on RS3 (little-to-no tools). Here's some ones that existed in 2016.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|44&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|45&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|179&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|186&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|188&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|196&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|197&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|198&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|199&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|200&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|201&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|250&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|251&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|252&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|253&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|254&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|255&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OSRS ===&lt;br /&gt;
OSRS is pretty similar, it forked from 468 but they can also backport stuff - here's the known additions&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Property&lt;br /&gt;
!Opcode&lt;br /&gt;
!History&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|category&lt;br /&gt;
|61&lt;br /&gt;
|Added 197 (2021-06-16)&lt;br /&gt;
|Originally only server-sided.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== External Credits ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Walied for reviewing the list afterwards and advising on some properties&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Cache_Layout&amp;diff=460</id>
		<title>Cache Layout</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Cache_Layout&amp;diff=460"/>
		<updated>2024-03-01T07:27:07Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* RS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The cache terminology is archive (indexed) -&amp;gt; group -&amp;gt; file. This information is relevant for all revisions after 377.&lt;br /&gt;
&lt;br /&gt;
Reference these tables if you want to know what an archive or group is used for.&lt;br /&gt;
&lt;br /&gt;
=== RS ===&lt;br /&gt;
&lt;br /&gt;
==== Archives ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Index&lt;br /&gt;
!Rev&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|410&lt;br /&gt;
|anims&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|410&lt;br /&gt;
|bases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|410&lt;br /&gt;
|config&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|410&lt;br /&gt;
|interfaces&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|410 - 772&lt;br /&gt;
|synth_sounds&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|410&lt;br /&gt;
|maps&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|410 - 772&lt;br /&gt;
|midi_songs&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|410&lt;br /&gt;
|models&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|410&lt;br /&gt;
|sprites&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|410 - 839&lt;br /&gt;
|textures&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|410&lt;br /&gt;
|binary&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|410&lt;br /&gt;
|midi_jingles&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|433&lt;br /&gt;
|clientscripts&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|443&lt;br /&gt;
|fontmetrics&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|451&lt;br /&gt;
|vorbis&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|451 - 772&lt;br /&gt;
|midi_instruments&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|488&lt;br /&gt;
|config_loc&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|488&lt;br /&gt;
|config_enum&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|488&lt;br /&gt;
|config_npc&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|488&lt;br /&gt;
|config_obj&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|488&lt;br /&gt;
|config_seq&lt;br /&gt;
|Sequences&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|488&lt;br /&gt;
|config_spot&lt;br /&gt;
|Spot animations&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|488 - 745&lt;br /&gt;
|config_varbit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|&amp;gt;745&lt;br /&gt;
|config_struct&lt;br /&gt;
|Took over varbit archive, which moved to config group&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|493&lt;br /&gt;
|worldmapdata&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|498&lt;br /&gt;
|quickchat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|498&lt;br /&gt;
|quickchat_global&lt;br /&gt;
|Quick chat menus&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|500 - 839&lt;br /&gt;
|materials&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|523&lt;br /&gt;
|config_particle&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|537&lt;br /&gt;
|defaults&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|582&lt;br /&gt;
|config_billboard&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|605&lt;br /&gt;
|dlls&lt;br /&gt;
|natives&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|605&lt;br /&gt;
|shaders&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|612&lt;br /&gt;
|loading_sprites&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|612&lt;br /&gt;
|loading_screen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|625&lt;br /&gt;
|loading_sprites_raw&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|629&lt;br /&gt;
|cutscenes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|~775&lt;br /&gt;
|audiostreams&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|~775&lt;br /&gt;
|worldmapareas&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|42&lt;br /&gt;
|~775&lt;br /&gt;
|worldmaplabels&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|43&lt;br /&gt;
|~818&lt;br /&gt;
|textures_diffuse_png&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|44&lt;br /&gt;
|~818&lt;br /&gt;
|textures_hdr_png&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|45&lt;br /&gt;
|~825&lt;br /&gt;
|textures_diffuse_dxt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|~840&lt;br /&gt;
|textures_hdr_png_mipped&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|~861&lt;br /&gt;
|modelsrt7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|~861&lt;br /&gt;
|animsrt7&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|~861&lt;br /&gt;
|dbtableindex&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|52&lt;br /&gt;
|~894&lt;br /&gt;
|textures_dxt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|53&lt;br /&gt;
|~894&lt;br /&gt;
|textures_png&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|~894&lt;br /&gt;
|textures_png_mipped&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|55&lt;br /&gt;
|~894&lt;br /&gt;
|textures_etc&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|56&lt;br /&gt;
|~894&lt;br /&gt;
|anims_keyframes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|57&lt;br /&gt;
|~916&lt;br /&gt;
|config_achievement&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|58&lt;br /&gt;
|~918&lt;br /&gt;
|fontmetricsv2&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|59&lt;br /&gt;
|~918&lt;br /&gt;
|typefonts&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|&lt;br /&gt;
|stylesheet&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|&lt;br /&gt;
|vfx&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|&lt;br /&gt;
|animator&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|&lt;br /&gt;
|uianim&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|&lt;br /&gt;
|cutscene2d&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Config Groups ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!ID&lt;br /&gt;
!Rev&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|flu&lt;br /&gt;
|Floor Underlays&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|&lt;br /&gt;
|hunt&lt;br /&gt;
|(Server) NPC hunt modes&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|idk&lt;br /&gt;
|Identity Kit&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|flo&lt;br /&gt;
|Floor Overlays&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|inv&lt;br /&gt;
|Inventories&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|loc&lt;br /&gt;
|Locations&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|&lt;br /&gt;
|mesanim&lt;br /&gt;
|(Server) Message Animations&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|&lt;br /&gt;
|enum&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|&lt;br /&gt;
|npc&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|obj&lt;br /&gt;
|Objects&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|&lt;br /&gt;
|param&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|seq&lt;br /&gt;
|Sequences&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|&lt;br /&gt;
|spot&lt;br /&gt;
|Spot Animations&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|&lt;br /&gt;
|varbit&lt;br /&gt;
|Var (Player) Bit&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|&lt;br /&gt;
|varcstr&lt;br /&gt;
|Var Client String&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|varp&lt;br /&gt;
|Var Player&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|&lt;br /&gt;
|area&lt;br /&gt;
|(Server) Area Tile Triggers&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|&lt;br /&gt;
|varclient&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|&lt;br /&gt;
|struct&lt;br /&gt;
|Structs&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&lt;br /&gt;
|chatphrase&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|&lt;br /&gt;
|chatcat&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&lt;br /&gt;
|skybox&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Sun definitions&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&lt;br /&gt;
|light&lt;br /&gt;
|Light intensity&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&lt;br /&gt;
|bastype&lt;br /&gt;
|Render anims&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&lt;br /&gt;
|cursor&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&lt;br /&gt;
|msi&lt;br /&gt;
|Mapscenes&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&lt;br /&gt;
|quest&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&lt;br /&gt;
|mel&lt;br /&gt;
|Worldmap info&lt;br /&gt;
|-&lt;br /&gt;
|40&lt;br /&gt;
|&lt;br /&gt;
|dbtable&lt;br /&gt;
|Database Tables&lt;br /&gt;
|-&lt;br /&gt;
|41&lt;br /&gt;
|&lt;br /&gt;
|dbrow&lt;br /&gt;
|Database Rows&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|&lt;br /&gt;
|hitmark&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|&lt;br /&gt;
|varclan&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|48&lt;br /&gt;
|&lt;br /&gt;
|itemcode&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|49&lt;br /&gt;
|&lt;br /&gt;
|category&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|&lt;br /&gt;
|varclansetting&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|60&lt;br /&gt;
|&lt;br /&gt;
|varp&lt;br /&gt;
|Var Player&lt;br /&gt;
|-&lt;br /&gt;
|61&lt;br /&gt;
|&lt;br /&gt;
|varn&lt;br /&gt;
|Var NPC&lt;br /&gt;
|-&lt;br /&gt;
|62&lt;br /&gt;
|&lt;br /&gt;
|varc&lt;br /&gt;
|Var Client&lt;br /&gt;
|-&lt;br /&gt;
|63&lt;br /&gt;
|&lt;br /&gt;
|vars&lt;br /&gt;
|(Server) Var Shared&lt;br /&gt;
|-&lt;br /&gt;
|64&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|(Server) Var Region&lt;br /&gt;
|-&lt;br /&gt;
|65&lt;br /&gt;
|&lt;br /&gt;
|varobject&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|66&lt;br /&gt;
|&lt;br /&gt;
|varclan&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|67&lt;br /&gt;
|&lt;br /&gt;
|varclansetting&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|69&lt;br /&gt;
|&lt;br /&gt;
|varbit&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|&lt;br /&gt;
|gamelogevent&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|72&lt;br /&gt;
|&lt;br /&gt;
|headbar&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|76&lt;br /&gt;
|&lt;br /&gt;
|water&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|77&lt;br /&gt;
|&lt;br /&gt;
|seqgroup&lt;br /&gt;
|Anim flow control&lt;br /&gt;
|-&lt;br /&gt;
|80&lt;br /&gt;
|&lt;br /&gt;
|varplayergroup&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|83&lt;br /&gt;
|&lt;br /&gt;
|worldarea&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OSRS ===&lt;br /&gt;
&lt;br /&gt;
==== Archives ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Index&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|anims&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|bases&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|config&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|interfaces&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|synth_sounds&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|maps&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|midi_songs&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|models&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|sprites&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|textures&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|binary&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|midi_jingles&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|clientscripts&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|fontmetrics&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|vorbis&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|midi_instruments&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|worldmap (legacy)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|defaults&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|worldmap&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|worldmap (areas?)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|worldmap (labels?)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|dbtableindex&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Config Groups ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!ID&lt;br /&gt;
!Name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|flu&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|hunt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|idk&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|flo&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|inv&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|loc&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|mesanim&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|enum&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|npc&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|obj&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|param&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|seq&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|spotanim&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|varbit&lt;br /&gt;
|Var (Player) Bit&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|varcstr&lt;br /&gt;
|Var Client String&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|varp&lt;br /&gt;
|Var Player&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|area&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|varclient&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|varobj&lt;br /&gt;
|Var Object&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|varpstr&lt;br /&gt;
|Var Player String&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|vars&lt;br /&gt;
|Var Shared (world)&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|varsstr&lt;br /&gt;
|Var Shared String&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|varn&lt;br /&gt;
|Var NPC&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|varnbit&lt;br /&gt;
|Var NPC Bit&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|itemcodes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|varglobal&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|controller&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|varcon&lt;br /&gt;
|Var Controller&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|varconbit&lt;br /&gt;
|Var Controller Bit&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|hitmark&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|headbar&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|struct&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|mapelement&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|stringvector&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|dbrow&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|dbtable&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|47&lt;br /&gt;
|varclan&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|54&lt;br /&gt;
|varclansetting&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|70&lt;br /&gt;
|gamelogevent&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=459</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=459"/>
		<updated>2024-02-17T08:23:53Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== {{{command}}} ====&lt;br /&gt;
&lt;br /&gt;
{{{description}}}&lt;br /&gt;
&lt;br /&gt;
===== Parameters =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Argument&lt;br /&gt;
!Data type&lt;br /&gt;
!Range&lt;br /&gt;
!Default&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Return Types =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Returns&lt;br /&gt;
!Data type&lt;br /&gt;
!Range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pointers =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Required&lt;br /&gt;
!Protected Player Access&lt;br /&gt;
!Set&lt;br /&gt;
!Corrupted&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Examples =====&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=458</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=458"/>
		<updated>2024-02-17T08:19:01Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== {{{command}}} ====&lt;br /&gt;
&lt;br /&gt;
{{{description}}}&lt;br /&gt;
&lt;br /&gt;
===== Parameters =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Argument&lt;br /&gt;
!Data type&lt;br /&gt;
!Range&lt;br /&gt;
!Default&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Return Types =====&lt;br /&gt;
&lt;br /&gt;
Returns | Data type | Range | Description&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Returns&lt;br /&gt;
!Data type&lt;br /&gt;
!Range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Pointers =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Required&lt;br /&gt;
!Protected Player Access&lt;br /&gt;
!Set&lt;br /&gt;
!Corrupted&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Examples =====&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=457</id>
		<title>RuneScript/Commands</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=457"/>
		<updated>2024-02-17T08:18:40Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Core ===&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
&lt;br /&gt;
{{RuneScript/Command Template|opcode=1000|command=map_clock|script=rs2|description=Returns the number of ticks passed since the world started.}}&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
=== NPC ===&lt;br /&gt;
&lt;br /&gt;
=== Loc ===&lt;br /&gt;
&lt;br /&gt;
=== Obj ===&lt;br /&gt;
&lt;br /&gt;
=== NPC Config ===&lt;br /&gt;
&lt;br /&gt;
=== Loc Config ===&lt;br /&gt;
&lt;br /&gt;
=== Obj Config ===&lt;br /&gt;
&lt;br /&gt;
=== Inv ===&lt;br /&gt;
&lt;br /&gt;
=== Enum ===&lt;br /&gt;
&lt;br /&gt;
=== String ===&lt;br /&gt;
&lt;br /&gt;
=== Number ===&lt;br /&gt;
&lt;br /&gt;
=== DB ===&lt;br /&gt;
&lt;br /&gt;
=== Debug ===&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=456</id>
		<title>RuneScript/Commands</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=456"/>
		<updated>2024-02-17T08:18:28Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Core ===&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Argument&lt;br /&gt;
!Data type&lt;br /&gt;
!Range&lt;br /&gt;
!Default&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Returns&lt;br /&gt;
!Data type&lt;br /&gt;
!Range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Required&lt;br /&gt;
!Protected Player Access&lt;br /&gt;
!Set&lt;br /&gt;
!Corrupted&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
{{RuneScript/Command Template|opcode=1000|command=map_clock|script=rs2|description=Returns the number of ticks passed since the world started.}}&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
=== NPC ===&lt;br /&gt;
&lt;br /&gt;
=== Loc ===&lt;br /&gt;
&lt;br /&gt;
=== Obj ===&lt;br /&gt;
&lt;br /&gt;
=== NPC Config ===&lt;br /&gt;
&lt;br /&gt;
=== Loc Config ===&lt;br /&gt;
&lt;br /&gt;
=== Obj Config ===&lt;br /&gt;
&lt;br /&gt;
=== Inv ===&lt;br /&gt;
&lt;br /&gt;
=== Enum ===&lt;br /&gt;
&lt;br /&gt;
=== String ===&lt;br /&gt;
&lt;br /&gt;
=== Number ===&lt;br /&gt;
&lt;br /&gt;
=== DB ===&lt;br /&gt;
&lt;br /&gt;
=== Debug ===&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=455</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=455"/>
		<updated>2024-02-17T08:16:42Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== {{{command}}} ====&lt;br /&gt;
&lt;br /&gt;
Description {{{description}}}&lt;br /&gt;
&lt;br /&gt;
===== Parameters =====&lt;br /&gt;
&lt;br /&gt;
Argument | Data type | Range | Default | Description&lt;br /&gt;
&lt;br /&gt;
===== Return Types =====&lt;br /&gt;
&lt;br /&gt;
Returns | Data type | Range | Description&lt;br /&gt;
&lt;br /&gt;
===== Pointers =====&lt;br /&gt;
&lt;br /&gt;
Required | Protected Player Access | Set | Corrupted&lt;br /&gt;
&lt;br /&gt;
===== Examples =====&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=454</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=454"/>
		<updated>2024-02-17T08:16:18Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== {{{command}}} ===&lt;br /&gt;
&lt;br /&gt;
Description {{{description}}}&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&lt;br /&gt;
Argument | Data type | Range | Default | Description&lt;br /&gt;
&lt;br /&gt;
==== Return Types ====&lt;br /&gt;
&lt;br /&gt;
Returns | Data type | Range | Description&lt;br /&gt;
&lt;br /&gt;
==== Pointers ====&lt;br /&gt;
&lt;br /&gt;
Required | Protected Player Access | Set | Corrupted&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=453</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=453"/>
		<updated>2024-02-17T08:16:10Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== {{{ command }}} ===&lt;br /&gt;
&lt;br /&gt;
Description {{{description}}}&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&lt;br /&gt;
Argument | Data type | Range | Default | Description&lt;br /&gt;
&lt;br /&gt;
==== Return Types ====&lt;br /&gt;
&lt;br /&gt;
Returns | Data type | Range | Description&lt;br /&gt;
&lt;br /&gt;
==== Pointers ====&lt;br /&gt;
&lt;br /&gt;
Required | Protected Player Access | Set | Corrupted&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=452</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=452"/>
		<updated>2024-02-17T08:16:02Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== {{ command }}} ===&lt;br /&gt;
&lt;br /&gt;
Description {{{description}}}&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&lt;br /&gt;
Argument | Data type | Range | Default | Description&lt;br /&gt;
&lt;br /&gt;
==== Return Types ====&lt;br /&gt;
&lt;br /&gt;
Returns | Data type | Range | Description&lt;br /&gt;
&lt;br /&gt;
==== Pointers ====&lt;br /&gt;
&lt;br /&gt;
Required | Protected Player Access | Set | Corrupted&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=451</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=451"/>
		<updated>2024-02-17T08:15:24Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Opcode {{{opcode}}}&lt;br /&gt;
&lt;br /&gt;
Command {{{command}}}&lt;br /&gt;
&lt;br /&gt;
Script {{{script}}}&lt;br /&gt;
&lt;br /&gt;
Description {{{description}}}&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
&lt;br /&gt;
Argument | Data type | Range | Default | Description&lt;br /&gt;
&lt;br /&gt;
==== Return Types ====&lt;br /&gt;
&lt;br /&gt;
Returns | Data type | Range | Description&lt;br /&gt;
&lt;br /&gt;
==== Pointers ====&lt;br /&gt;
&lt;br /&gt;
Required | Protected Player Access | Set | Corrupted&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=450</id>
		<title>RuneScript/Commands</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=450"/>
		<updated>2024-02-17T08:13:53Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: /* Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Core ===&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
{{RuneScript/Command Template|opcode=1000|command=map_clock|script=rs2|description=Returns the number of ticks passed since the world started.}}&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
=== NPC ===&lt;br /&gt;
&lt;br /&gt;
=== Loc ===&lt;br /&gt;
&lt;br /&gt;
=== Obj ===&lt;br /&gt;
&lt;br /&gt;
=== NPC Config ===&lt;br /&gt;
&lt;br /&gt;
=== Loc Config ===&lt;br /&gt;
&lt;br /&gt;
=== Obj Config ===&lt;br /&gt;
&lt;br /&gt;
=== Inv ===&lt;br /&gt;
&lt;br /&gt;
=== Enum ===&lt;br /&gt;
&lt;br /&gt;
=== String ===&lt;br /&gt;
&lt;br /&gt;
=== Number ===&lt;br /&gt;
&lt;br /&gt;
=== DB ===&lt;br /&gt;
&lt;br /&gt;
=== Debug ===&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=449</id>
		<title>Template:RuneScript/Command Template</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=Template:RuneScript/Command_Template&amp;diff=449"/>
		<updated>2024-02-17T08:10:32Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: Created page with &amp;quot;Opcode {{{opcode}}}  Command {{{command}}}  Script {{{script}}}  Description {{{description}}}   Parameters  Argument | Data type | Range | Default | Description   Return Types  Returns | Data type | Range | Description   Pointers  Required | Protected Player Access | Set | Corrupted   Examples&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Opcode {{{opcode}}}&lt;br /&gt;
&lt;br /&gt;
Command {{{command}}}&lt;br /&gt;
&lt;br /&gt;
Script {{{script}}}&lt;br /&gt;
&lt;br /&gt;
Description {{{description}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
&lt;br /&gt;
Argument | Data type | Range | Default | Description&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Return Types&lt;br /&gt;
&lt;br /&gt;
Returns | Data type | Range | Description&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pointers&lt;br /&gt;
&lt;br /&gt;
Required | Protected Player Access | Set | Corrupted&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
	<entry>
		<id>https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=448</id>
		<title>RuneScript/Commands</title>
		<link rel="alternate" type="text/html" href="https://runewiki.lostcity.rs/index.php?title=RuneScript/Commands&amp;diff=448"/>
		<updated>2024-02-17T08:10:16Z</updated>

		<summary type="html">&lt;p&gt;Pazaz: Created page with &amp;quot;=== Core ===  === Server === {{RuneScript/Command Template}}  === Player ===  === NPC ===  === Loc ===  === Obj ===  === NPC Config ===  === Loc Config ===  === Obj Config ===  === Inv ===  === Enum ===  === String ===  === Number ===  === DB ===  === Debug ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Core ===&lt;br /&gt;
&lt;br /&gt;
=== Server ===&lt;br /&gt;
{{RuneScript/Command Template}}&lt;br /&gt;
&lt;br /&gt;
=== Player ===&lt;br /&gt;
&lt;br /&gt;
=== NPC ===&lt;br /&gt;
&lt;br /&gt;
=== Loc ===&lt;br /&gt;
&lt;br /&gt;
=== Obj ===&lt;br /&gt;
&lt;br /&gt;
=== NPC Config ===&lt;br /&gt;
&lt;br /&gt;
=== Loc Config ===&lt;br /&gt;
&lt;br /&gt;
=== Obj Config ===&lt;br /&gt;
&lt;br /&gt;
=== Inv ===&lt;br /&gt;
&lt;br /&gt;
=== Enum ===&lt;br /&gt;
&lt;br /&gt;
=== String ===&lt;br /&gt;
&lt;br /&gt;
=== Number ===&lt;br /&gt;
&lt;br /&gt;
=== DB ===&lt;br /&gt;
&lt;br /&gt;
=== Debug ===&lt;/div&gt;</summary>
		<author><name>Pazaz</name></author>
	</entry>
</feed>