<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.2006scape.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dark98</id>
	<title>2006Scape Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.2006scape.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dark98"/>
	<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php/Special:Contributions/Dark98"/>
	<updated>2026-05-29T23:15:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1217</id>
		<title>Bot Client Scripts Setup Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1217"/>
		<updated>2023-03-23T01:44:55Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Add Linux Dir &amp;amp; combine Linux &amp;amp; OSX into one Section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to install Scripts Downloaded from the [https://2006Scape.org/sdn/ SDN].&lt;br /&gt;
&lt;br /&gt;
After you have Downloaded the .jar for the Script you&#039;d like to use, copy it to the OS Specific directory below then run the Bot Client.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* &amp;quot;Documents&amp;quot;/2006Scape/scripts/compiled&lt;br /&gt;
&lt;br /&gt;
== Linux &amp;amp; OSX ==&lt;br /&gt;
* &amp;quot;Home&amp;quot;/2006Scape/scripts/compiled&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1216</id>
		<title>Bot Client Scripts Setup Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1216"/>
		<updated>2023-03-23T01:36:51Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Add OSX Directory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to install Scripts Downloaded from the [https://2006Scape.org/sdn/ SDN].&lt;br /&gt;
&lt;br /&gt;
After you have Downloaded the .jar for the Script you&#039;d like to use, copy it to the OS Specific directory below then run the Bot Client.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* &amp;quot;Documents&amp;quot;/2006Scape/scripts/compiled&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
:Under Construction&lt;br /&gt;
&lt;br /&gt;
== OSX ==&lt;br /&gt;
* &amp;quot;Home&amp;quot;/2006Scape/scripts/compiled&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1215</id>
		<title>Bot Client Scripts Setup Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1215"/>
		<updated>2023-03-23T01:08:36Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Added Windows Directory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to install Scripts Downloaded from the [https://2006Scape.org/sdn/ SDN].&lt;br /&gt;
&lt;br /&gt;
After you have Downloaded the .jar for the Script you&#039;d like to use, copy it to the OS Specific directory below then run the Bot Client.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
* &amp;quot;Documents&amp;quot;/2006Scape/scripts/compiled&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
:Under Construction&lt;br /&gt;
&lt;br /&gt;
== OSX ==&lt;br /&gt;
:Under Construction&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1214</id>
		<title>Bot Client Scripts Setup Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Bot_Client_Scripts_Setup_Guide&amp;diff=1214"/>
		<updated>2023-03-19T05:33:15Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Basic page layout, will update more tomorrow&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to install Scripts Downloaded from the [https://2006Scape.org/sdn/ SDN].&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
:Under Construction&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
:Under Construction&lt;br /&gt;
&lt;br /&gt;
== OSX ==&lt;br /&gt;
:Under Construction&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Transcript:Bob&amp;diff=1179</id>
		<title>Transcript:Bob</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Transcript:Bob&amp;diff=1179"/>
		<updated>2023-03-08T22:42:31Z</updated>

		<summary type="html">&lt;p&gt;Dark98: suitable i think?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Transcript|npc}}&lt;br /&gt;
&lt;br /&gt;
==Standard dialogue==&lt;br /&gt;
* {{topt|Give me a quest!}}&lt;br /&gt;
** &#039;&#039;&#039;Player:&#039;&#039;&#039; Give me a quest!&lt;br /&gt;
** &#039;&#039;&#039;Bob:&#039;&#039;&#039; Get yer own!&lt;br /&gt;
** {{tact|end}}&lt;br /&gt;
* {{topt|Have you anything to sell?}}&lt;br /&gt;
** &#039;&#039;&#039;Player:&#039;&#039;&#039; Have you anything to sell?&lt;br /&gt;
** &#039;&#039;&#039;Bob:&#039;&#039;&#039; Yes! I buy and sell axes! Take your pick (or axe)!&lt;br /&gt;
** {{tact|opens=Bob&#039;s Brilliant Axes.}}&lt;br /&gt;
* {{topt|Can you repair my items for me?}}&lt;br /&gt;
** &#039;&#039;&#039;Player:&#039;&#039;&#039; Can you repair my items for me?&lt;br /&gt;
** &#039;&#039;&#039;Bob:&#039;&#039;&#039; Of course I&#039;ll repair it, though the materials may cost you. Just hand me the item and I&#039;ll have a look.&lt;br /&gt;
** {{tact|end}}&lt;br /&gt;
&lt;br /&gt;
===Right click &amp;quot;Repair&amp;quot; option===&lt;br /&gt;
* {{tcond|If the player has no repairable equipment:}}&lt;br /&gt;
** &#039;&#039;&#039;Bob:&#039;&#039;&#039; You don&#039;t have anything I can repair.&lt;br /&gt;
** {{tact|end}}&lt;br /&gt;
* {{tcond|If the player has repairable equipment:}}&lt;br /&gt;
** {{tselect|What would you like to do?}}&lt;br /&gt;
** {{topt|Repair that item: [x] coins.}}&lt;br /&gt;
*** {{tact|The item is repaired.}}&lt;br /&gt;
*** &#039;&#039;&#039;Bob:&#039;&#039;&#039; There you go, happy doing business with you!&lt;br /&gt;
*** {{tact|end}}&lt;br /&gt;
** {{topt|Cancel.}}&lt;br /&gt;
*** {{tact|end}}&lt;br /&gt;
&lt;br /&gt;
===Left click &amp;quot;Use&amp;quot; item on Bob===&lt;br /&gt;
* {{tcond|If the item is repairable:}}&lt;br /&gt;
** {{tact|What would you like to do?}}&lt;br /&gt;
*** {{tact|above}}&lt;br /&gt;
* {{tcond|If the item is not repairable:}}&lt;br /&gt;
** &#039;&#039;&#039;Bob:&#039;&#039;&#039; Sorry friend, but I can&#039;t do anything with that.&lt;br /&gt;
** {{tact|end}}&lt;br /&gt;
&lt;br /&gt;
==Death to the Dorgeshuun==&lt;br /&gt;
{{main|Transcript:Death to the Dorgeshuun}}&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Module:Main_article&amp;diff=1178</id>
		<title>Module:Main article</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Module:Main_article&amp;diff=1178"/>
		<updated>2023-03-08T22:40:48Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- &amp;lt;pre&amp;gt;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local hat = require(&#039;Module:Hatnote&#039;)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local ret = mw.html.create(&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
	-- list of all articles&lt;br /&gt;
	local params = {}&lt;br /&gt;
	-- total arguments counted counted&lt;br /&gt;
	local ttl = 0&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		ttl = ttl + 1&lt;br /&gt;
		table.insert(params,v)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- main return string&lt;br /&gt;
	ret:wikitext(&#039;Main article&#039;..(#params &amp;gt; 1 and &#039;s&#039; or &#039;&#039;)..&#039;: &#039;)&lt;br /&gt;
&lt;br /&gt;
	-- helper function&lt;br /&gt;
	local function link(article)&lt;br /&gt;
		article = string.gsub(article,&#039;_&#039;,&#039; &#039;)&lt;br /&gt;
		article = mw.text.trim(article)&lt;br /&gt;
		-- replace anchors with section symbol&lt;br /&gt;
		if article:find(&#039;#&#039;,1,true) then&lt;br /&gt;
			local article_t = mw.text.split(article,&#039;#&#039;)&lt;br /&gt;
			article_t = table.concat(article_t,&#039; § &#039;)&lt;br /&gt;
			-- article|alttext&lt;br /&gt;
			article = article..&#039;|&#039;..article_t&lt;br /&gt;
		end&lt;br /&gt;
		-- link article&lt;br /&gt;
		return &#039;[[&#039;..article..&#039;]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- additional articles&lt;br /&gt;
	for i, v in ipairs(params) do&lt;br /&gt;
		-- add article link&lt;br /&gt;
		if i &amp;lt; ttl and ttl &amp;gt; 1 then&lt;br /&gt;
			ret:wikitext(link(v))&lt;br /&gt;
		-- if last argument&lt;br /&gt;
		elseif i == ttl then&lt;br /&gt;
			-- only one argument, just add link&lt;br /&gt;
			if ttl == 1 then&lt;br /&gt;
				ret:wikitext(link(v))&lt;br /&gt;
			-- otherwise finish with &amp;quot;and&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				ret:wikitext(&#039; and &#039;..link(v))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- if more to come, add commas&lt;br /&gt;
		if i &amp;lt; ttl and ttl &amp;gt; 2 then&lt;br /&gt;
			ret:wikitext(&#039;, &#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- return finished string&lt;br /&gt;
	return hat._hatnote(tostring(ret))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Main&amp;diff=1177</id>
		<title>Template:Main</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Main&amp;diff=1177"/>
		<updated>2023-03-08T22:40:01Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Main article|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{/doc}}[[Category:Transclusion templates|{{PAGENAME}}]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Transcript&amp;diff=1176</id>
		<title>Template:Transcript</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Transcript&amp;diff=1176"/>
		<updated>2023-03-08T22:37:46Z</updated>

		<summary type="html">&lt;p&gt;Dark98: we&amp;#039;re not copying text from osrs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{| class=&amp;quot;messagebox plainlinks&amp;quot; style=&amp;quot;border-left:none; text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This page contains {{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|npc = the dialogue of&lt;br /&gt;
|pet = the dialogue of&lt;br /&gt;
|quest = the transcript of&lt;br /&gt;
|scenery = the transcript of&lt;br /&gt;
|miniquest = the transcript of&lt;br /&gt;
|questjournal = the journal transcript of &lt;br /&gt;
|#default = the transcript of the&lt;br /&gt;
}} {{#if:{{{linkb|}}}|[[{{{linkb}}}]] and}} [[{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|questjournal = {{{link|{{BASEPAGENAME}}}}}|{{{link|{{BASEPAGENAME}}}}}&lt;br /&gt;
|#default = {{{link|{{PAGENAME}}}}}|{{{link|{{PAGENAME}}}}}}}]].&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}{{#ifeq:{{NAMESPACE}}|Transcript|{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|npc = [[Category:NPC dialogue]]&lt;br /&gt;
|pet = [[Category:Pet dialogue]]&lt;br /&gt;
|quest = [[Category:Quest transcript]][[Category:{{PAGENAME}}]]&lt;br /&gt;
|questjournal = [[Category:Quest journal transcript]]&lt;br /&gt;
|scenery = [[Category:Scenery transcript]]&lt;br /&gt;
|miniquest = [[Category:Miniquest transcript]][[Category:{{PAGENAME}}]]&lt;br /&gt;
|event = [[Category:Event transcript]][[Category:{{PAGENAME}}]]&lt;br /&gt;
|item = [[Category:Item transcript]]&lt;br /&gt;
|#default = [[Category:Miscellaneous transcript]]&lt;br /&gt;
}}{{DISPLAYTITLE:{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|npc|pet = Dialogue for {{PAGENAME}}&lt;br /&gt;
|item|quest|scenery|miniquest|misc = Transcript of {{PAGENAME}}&lt;br /&gt;
|questjournal = Transcript of {{BASEPAGENAME}} journal entry&lt;br /&gt;
|#default = Transcript of {{PAGENAME}}}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Transcript&amp;diff=1175</id>
		<title>Template:Transcript</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Transcript&amp;diff=1175"/>
		<updated>2023-03-08T22:36:39Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{| class=&amp;quot;messagebox plainlinks&amp;quot; style=&amp;quot;border-left:none; text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| This page contains {{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|npc = the dialogue of&lt;br /&gt;
|pet = the dialogue of&lt;br /&gt;
|quest = the transcript of&lt;br /&gt;
|scenery = the transcript of&lt;br /&gt;
|miniquest = the transcript of&lt;br /&gt;
|questjournal = the journal transcript of &lt;br /&gt;
|#default = the transcript of the&lt;br /&gt;
}} {{#if:{{{linkb|}}}|[[{{{linkb}}}]] and}} [[{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|questjournal = {{{link|{{BASEPAGENAME}}}}}|{{{link|{{BASEPAGENAME}}}}}&lt;br /&gt;
|#default = {{{link|{{PAGENAME}}}}}|{{{link|{{PAGENAME}}}}}}}]].&amp;lt;br style=&amp;quot;clear:both;&amp;quot; /&amp;gt;&amp;lt;div style=&amp;quot;font-size:0.85em; line-height:1.4em;&amp;quot;&amp;gt;The content below is copied verbatim from &#039;&#039;Old School RuneScape&#039;&#039; and thus copyrighted by [[Jagex]].&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}{{#ifeq:{{NAMESPACE}}|Transcript|{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|npc = [[Category:NPC dialogue]]&lt;br /&gt;
|pet = [[Category:Pet dialogue]]&lt;br /&gt;
|quest = [[Category:Quest transcript]][[Category:{{PAGENAME}}]]&lt;br /&gt;
|questjournal = [[Category:Quest journal transcript]]&lt;br /&gt;
|scenery = [[Category:Scenery transcript]]&lt;br /&gt;
|miniquest = [[Category:Miniquest transcript]][[Category:{{PAGENAME}}]]&lt;br /&gt;
|event = [[Category:Event transcript]][[Category:{{PAGENAME}}]]&lt;br /&gt;
|item = [[Category:Item transcript]]&lt;br /&gt;
|#default = [[Category:Miscellaneous transcript]]&lt;br /&gt;
}}{{DISPLAYTITLE:{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
|npc|pet = Dialogue for {{PAGENAME}}&lt;br /&gt;
|item|quest|scenery|miniquest|misc = Transcript of {{PAGENAME}}&lt;br /&gt;
|questjournal = Transcript of {{BASEPAGENAME}} journal entry&lt;br /&gt;
|#default = Transcript of {{PAGENAME}}}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Tcond&amp;diff=1174</id>
		<title>Template:Tcond</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Tcond&amp;diff=1174"/>
		<updated>2023-03-08T22:34:38Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;i&amp;gt;{{{1}}}&amp;lt;/i&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Tact&amp;diff=1173</id>
		<title>Template:Tact</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Tact&amp;diff=1173"/>
		<updated>2023-03-08T22:33:36Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&#039;&#039;{{#switch: {{{1|}}}&lt;br /&gt;
|end = (End of dialogue)&lt;br /&gt;
|previous = (Shows previous options)&lt;br /&gt;
|previous2 = (Shows previous-to-previous options)&lt;br /&gt;
|previous3 = (Shows previous-to-previous-to-previous options)&lt;br /&gt;
|initial = (Shows initial options)&lt;br /&gt;
|other = (Shows other options)&lt;br /&gt;
|above = (Same as above)&lt;br /&gt;
|above2 = (See above)&lt;br /&gt;
|seeabove = (See above)&lt;br /&gt;
|below = (Same as below)&lt;br /&gt;
|below2 = (See below)&lt;br /&gt;
|seebelow = (See below)&lt;br /&gt;
|continue = (Continues below)&lt;br /&gt;
|continues = (Continues below)&lt;br /&gt;
|members = (Members-only notice opens)&lt;br /&gt;
|{{#if:{{{opens|}}}|([[{{{opens}}}]] interface opens.)&lt;br /&gt;
 |{{#if:{{{opens2|}}}|({{{opens2}}} interface opens.)&lt;br /&gt;
  |{{#if:{{{receives|}}}|(Player receives {{{receives}}}.)&lt;br /&gt;
   |{{#if:{{{gives|}}}|(Player gives {{{gives}}}.)|{{{1}}}}}&lt;br /&gt;
   }}&lt;br /&gt;
  }}&lt;br /&gt;
 }}&lt;br /&gt;
}}&#039;&#039;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Hastranscript/t&amp;diff=1172</id>
		<title>Template:Hastranscript/t</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Hastranscript/t&amp;diff=1172"/>
		<updated>2023-03-08T22:29:42Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{| class=&amp;quot;messagebox hasdialogue&amp;quot; style=&amp;quot;border: 0;&amp;quot;&lt;br /&gt;
| class=&amp;quot;center&amp;quot; | {{#switch: {{lc: {{{1}}} }}&lt;br /&gt;
| #default = This article has an associated transcript page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for the transcript.&lt;br /&gt;
| npc = This article on an NPC has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations with this NPC.&lt;br /&gt;
| pet = This article on a pet has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations with this pet.&lt;br /&gt;
| quest = This article on a quest has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations encountered throughout the quest.{{#ifexist:Transcript:{{PAGENAME}}/Journal|&amp;lt;br&amp;gt;&#039;&#039;&#039;[[Transcript:{{PAGENAME}}/Journal|Click here]]&#039;&#039;&#039; for a transcript of the quest&#039;s journal entry.}}&lt;br /&gt;
| miniquest = This article on a miniquest has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations encountered throughout the miniquest.{{#ifexist:Transcript:{{PAGENAME}}/Journal|&amp;lt;br&amp;gt;&#039;&#039;&#039;[[Transcript:{{PAGENAME}}/Journal|Click here]]&#039;&#039;&#039; for a transcript of the miniquest&#039;s journal entry.}}&lt;br /&gt;
| event = This article on an event has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations encountered throughout the event.&lt;br /&gt;
| item = This article on an item has an associated transcript page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for the transcript.&lt;br /&gt;
}}&lt;br /&gt;
|}&amp;lt;!--&lt;br /&gt;
{{#switch: {{lc:{{{1|}}}}}&lt;br /&gt;
| npc =  {{#ifexpr: {{#var:speaksincount}} &amp;gt; 0 |&lt;br /&gt;
&amp;lt;table class=&amp;quot;messagebox hasdialogue speaksin&amp;quot; style=&amp;quot;border: 0;padding: 0 10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;div style=&amp;quot;text-align: center;padding: 0.2em 0;&amp;quot;&amp;gt;Transcripts {{{name|{{PAGENAME}}}}} speaks in:&amp;lt;/div&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;div class=&amp;quot;{{#ifexpr: {{#var:speaksincount}} &amp;gt; 1 |speaksin-list|}}&amp;quot; style=&amp;quot;padding-bottom: 0.5em;&amp;quot;&amp;gt;{{#ask:&lt;br /&gt;
 [[Transcript:+]]&lt;br /&gt;
 [[Transcript NPCs::{{{name|{{PAGENAME}}}}}]]&lt;br /&gt;
 [[Display title of::!Dialogue for {{{name|{{PAGENAME}}}}}]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |default=&amp;lt;div style=&amp;quot;text-align: center; column-span: all;&amp;quot;&amp;gt;{{{name|{{PAGENAME}}}}} does not speak in any other dialogues (currently transcribed on the wiki).&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;}}&lt;br /&gt;
|}}--&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Hastranscript/t&amp;diff=1171</id>
		<title>Template:Hastranscript/t</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Hastranscript/t&amp;diff=1171"/>
		<updated>2023-03-08T22:24:56Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{| class=&amp;quot;messagebox hasdialogue&amp;quot; style=&amp;quot;border: 0;&amp;quot;&lt;br /&gt;
| class=&amp;quot;center&amp;quot; | {{#switch: {{lc: {{{1}}} }}&lt;br /&gt;
| #default = This article has an associated transcript page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for the transcript.&lt;br /&gt;
| npc = This article on an NPC has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations with this NPC.{{#vardefine:speaksincount|{{#ask:[[Transcript:+]][[Transcript NPCs::{{{name|{{PAGENAME}}}}}]][[Display title of::!Dialogue for {{{name|{{PAGENAME}}}}}]]|format=count}}}}{{#ifexpr: {{#var:speaksincount}} &amp;gt; 0|&amp;lt;br&amp;gt;&#039;&#039;&#039;[{{SERVER}}/w/Special:Ask?limit=500&amp;amp;q={{URLENCODE:[[Transcript:+]] [[Transcript NPCs::{{PAGENAME}}]] [[Display title of::!Dialogue for {{PAGENAME}}]]}}&amp;amp;p=format=ul Click here]&#039;&#039;&#039; for a list of other transcripts that this NPC speaks in.}}&lt;br /&gt;
| pet = This article on a pet has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations with this pet.&lt;br /&gt;
| quest = This article on a quest has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations encountered throughout the quest.{{#ifexist:Transcript:{{PAGENAME}}/Journal|&amp;lt;br&amp;gt;&#039;&#039;&#039;[[Transcript:{{PAGENAME}}/Journal|Click here]]&#039;&#039;&#039; for a transcript of the quest&#039;s journal entry.}}&lt;br /&gt;
| miniquest = This article on a miniquest has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations encountered throughout the miniquest.{{#ifexist:Transcript:{{PAGENAME}}/Journal|&amp;lt;br&amp;gt;&#039;&#039;&#039;[[Transcript:{{PAGENAME}}/Journal|Click here]]&#039;&#039;&#039; for a transcript of the miniquest&#039;s journal entry.}}&lt;br /&gt;
| event = This article on an event has an associated dialogue page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for a transcript of possible conversations encountered throughout the event.&lt;br /&gt;
| item = This article on an item has an associated transcript page.&amp;lt;br&amp;gt;&#039;&#039;&#039;[[{{{2|Transcript:{{PAGENAME}}}}}|Click here]]&#039;&#039;&#039; for the transcript.&lt;br /&gt;
}}&lt;br /&gt;
|}&amp;lt;!--&lt;br /&gt;
{{#switch: {{lc:{{{1|}}}}}&lt;br /&gt;
| npc =  {{#ifexpr: {{#var:speaksincount}} &amp;gt; 0 |&lt;br /&gt;
&amp;lt;table class=&amp;quot;messagebox hasdialogue speaksin&amp;quot; style=&amp;quot;border: 0;padding: 0 10px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;div style=&amp;quot;text-align: center;padding: 0.2em 0;&amp;quot;&amp;gt;Transcripts {{{name|{{PAGENAME}}}}} speaks in:&amp;lt;/div&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;div class=&amp;quot;{{#ifexpr: {{#var:speaksincount}} &amp;gt; 1 |speaksin-list|}}&amp;quot; style=&amp;quot;padding-bottom: 0.5em;&amp;quot;&amp;gt;{{#ask:&lt;br /&gt;
 [[Transcript:+]]&lt;br /&gt;
 [[Transcript NPCs::{{{name|{{PAGENAME}}}}}]]&lt;br /&gt;
 [[Display title of::!Dialogue for {{{name|{{PAGENAME}}}}}]]&lt;br /&gt;
 |format=ul&lt;br /&gt;
 |default=&amp;lt;div style=&amp;quot;text-align: center; column-span: all;&amp;quot;&amp;gt;{{{name|{{PAGENAME}}}}} does not speak in any other dialogues (currently transcribed on the wiki).&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/table&amp;gt;}}&lt;br /&gt;
|}}--&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Hastranscript&amp;diff=1170</id>
		<title>Template:Hastranscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Hastranscript&amp;diff=1170"/>
		<updated>2023-03-08T22:22:56Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch:{{lc:{{{transclude}}}}}|y|yes={{#invoke:hastranscript|main}}|n|no|#default={{#if:{{{2|}}}|{{Hastranscript/t|{{{1|}}}|{{{2|}}}}}|{{Hastranscript/t|{{{1|}}}}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Module:Hastranscript&amp;diff=1169</id>
		<title>Module:Hastranscript</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Module:Hastranscript&amp;diff=1169"/>
		<updated>2023-03-08T22:21:36Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- &amp;lt;pre&amp;gt;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local remove_templates = {&lt;br /&gt;
	&#039;transcript&#039;,&lt;br /&gt;
	&#039;fromgame&#039;,&lt;br /&gt;
	&#039;god letter&#039;,&lt;br /&gt;
	&#039;incomplete&#039;,&lt;br /&gt;
	&#039;inuse&#039;,&lt;br /&gt;
	&#039;construction&#039;,&lt;br /&gt;
	&#039;lore&#039;,&lt;br /&gt;
	&#039;postbag&#039;,&lt;br /&gt;
	&#039;transcript list&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local ignore_templates = {&lt;br /&gt;
	&#039;!&#039;,&lt;br /&gt;
	&#039;*&#039;,&lt;br /&gt;
	&#039;anchortext&#039;,&lt;br /&gt;
	&#039;clear&#039;,&lt;br /&gt;
	&#039;color&#039;,&lt;br /&gt;
	&#039;colour&#039;,&lt;br /&gt;
	&#039;kg&#039;,&lt;br /&gt;
	&#039;nbsp&#039;,&lt;br /&gt;
	&#039;qact&#039;,&lt;br /&gt;
	&#039;quote&#039;,&lt;br /&gt;
	&#039;mes&#039;,&lt;br /&gt;
	&#039;sic&#039;,&lt;br /&gt;
	&#039;titleanchor&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local headerSize = {&lt;br /&gt;
	[&#039;==&#039;] = 1.25,&lt;br /&gt;
	[&#039;===&#039;] = 1.2,&lt;br /&gt;
	[&#039;====&#039;] = 1,&lt;br /&gt;
	[&#039;=====&#039;] = 0.95,&lt;br /&gt;
	[&#039;======&#039;] = 0.9&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local ret = {}&lt;br /&gt;
&lt;br /&gt;
	-- for handling multiple transcript transclusions on single page&lt;br /&gt;
	for _, v in ipairs(args) do&lt;br /&gt;
		table.insert(ret, p._main(v))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- default&lt;br /&gt;
	if #ret == 0 then&lt;br /&gt;
		ret = {p._main(mw.title.getCurrentTitle().text)}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return frame:preprocess(table.concat(ret, &#039;\n&#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(title)&lt;br /&gt;
	local ret = mw.html.create(&#039;div&#039;)&lt;br /&gt;
&lt;br /&gt;
	if title == nil then&lt;br /&gt;
		ret:addClass(&#039;seealso&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;[[Transcript:%s]] does not exist. Please create this page or correct this query.&#039;,&lt;br /&gt;
				title&lt;br /&gt;
			))&lt;br /&gt;
		return tostring(ret)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
	local _t = mw.title.new(&#039;Transcript:&#039; .. title)&lt;br /&gt;
&lt;br /&gt;
	if not _t.exists then&lt;br /&gt;
		ret:addClass(&#039;seealso&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;[[Transcript:%s]] does not exist. Please create this page or correct this query.&#039;,&lt;br /&gt;
				title&lt;br /&gt;
				))&lt;br /&gt;
		return tostring(ret)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local _tsplit = mw.text.split(_t:getContent(),&#039;\n&#039;)&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	ret	:tag(&#039;div&#039;)&lt;br /&gt;
			:addClass(&#039;seealso&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;The following text is transcluded from [[Transcript:%s]].&#039;,&lt;br /&gt;
				title&lt;br /&gt;
				))&lt;br /&gt;
		:done()&lt;br /&gt;
&lt;br /&gt;
	local txt = ret:tag(&#039;div&#039;)&lt;br /&gt;
			:addClass(&#039;transcript&#039;)&lt;br /&gt;
&lt;br /&gt;
	for _, _v in ipairs(_tsplit) do&lt;br /&gt;
		local v = _v:lower()&lt;br /&gt;
&lt;br /&gt;
		local lineToAdd = _v&lt;br /&gt;
&lt;br /&gt;
		local addLine = true&lt;br /&gt;
		-- look for lines that are a single template&lt;br /&gt;
		if v:find(&#039;^{{.*}}$&#039;) then&lt;br /&gt;
			-- filter template name&lt;br /&gt;
			local t_name = v:gsub(&#039;template:&#039;,&#039;&#039;):match(&#039;{{(.-)[|}]&#039;)&lt;br /&gt;
&lt;br /&gt;
			-- check the kill list&lt;br /&gt;
			for _, w in ipairs(remove_templates) do&lt;br /&gt;
				if w == t_name then&lt;br /&gt;
					addLine = false&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- other templates&lt;br /&gt;
			-- we&#039;ll see later&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- formatting for headers changes&lt;br /&gt;
		if addLine then&lt;br /&gt;
			local headingtype, headingtitle = _v:match(&#039;(=+)(.-)(=+)&#039;)&lt;br /&gt;
&lt;br /&gt;
			if headingtype and headingtitle and headerSize[headingtype] then&lt;br /&gt;
				addLine = false&lt;br /&gt;
				txt	:tag(&#039;div&#039;)&lt;br /&gt;
						:css({ [&#039;font-size&#039;] = headerSize[headingtype] .. &#039;em&#039;, [&#039;font-weight&#039;] = &#039;bold&#039;, [&#039;padding-top&#039;] = &#039;0.5em&#039; })&lt;br /&gt;
						:wikitext(headingtitle)&lt;br /&gt;
					:done()&lt;br /&gt;
					:tag(&#039;hr&#039;)&lt;br /&gt;
					:done()&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- remove category transclusion&lt;br /&gt;
			lineToAdd = lineToAdd:gsub(&#039;%[%[[Cc]ategory:.-%]%]&#039;,&#039;&#039;)&lt;br /&gt;
						-- remove default sorting&lt;br /&gt;
						:gsub(&#039;{{DEFAULTSORT.+}}&#039;,&#039;&#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if addLine then&lt;br /&gt;
			txt:newline()&lt;br /&gt;
			txt:wikitext(lineToAdd)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1168</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1168"/>
		<updated>2023-03-03T00:46:47Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{map|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{map}}}&lt;br /&gt;
|[[Category:Needs map info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
|map = (optional)&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1167</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1167"/>
		<updated>2023-03-03T00:45:58Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{map|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{map]}}}&lt;br /&gt;
|[[Category:Needs map info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
|map = (optional)&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1166</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1166"/>
		<updated>2023-03-03T00:41:39Z</updated>

		<summary type="html">&lt;p&gt;Dark98: test size&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{map|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{map|100px]}}}&lt;br /&gt;
|[[Category:Needs map info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
|map = (optional)&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1165</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1165"/>
		<updated>2023-03-03T00:40:52Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{map|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{map}}}&lt;br /&gt;
|[[Category:Needs map info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
|map = (optional)&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1164</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1164"/>
		<updated>2023-03-03T00:40:05Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{map|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | MAP&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
{{{map}}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
MAP&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{map}}}&lt;br /&gt;
|[[Category:Needs map info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
|map = (optional)&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1163</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1163"/>
		<updated>2023-03-03T00:34:32Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{map|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
MAP&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{map}}}&lt;br /&gt;
|[[Category:Needs map info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1162</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1162"/>
		<updated>2023-03-03T00:32:25Z</updated>

		<summary type="html">&lt;p&gt;Dark98: map testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{map|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | Map&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{map}}}&lt;br /&gt;
|[[Category:Needs map info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Bob&amp;diff=1161</id>
		<title>Bob</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Bob&amp;diff=1161"/>
		<updated>2023-03-02T04:10:46Z</updated>

		<summary type="html">&lt;p&gt;Dark98: basically finish page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Otheruses2|the NPC in Lumbridge|other NPCs|Bob (disambiguation)}}&lt;br /&gt;
{{Infobox NPC&lt;br /&gt;
|name = Bob&lt;br /&gt;
|image = [[File:Bob.png|120px]]&lt;br /&gt;
|release = [[4 January]] [[2001]]&lt;br /&gt;
|update = Runescape beta is now online!&lt;br /&gt;
|members = No&lt;br /&gt;
|race = [[Human]]&lt;br /&gt;
|quest =&lt;br /&gt;
{{*}} [[The Lost Tribe]] &amp;lt;br/&amp;gt;&lt;br /&gt;
{{*}} [[Death to the Dorgeshuun]]&lt;br /&gt;
|location = [[Lumbridge]]&lt;br /&gt;
|shop = [[Bob&#039;s Brilliant Axes.]]&lt;br /&gt;
|gender = Male&lt;br /&gt;
|options = Talk-to, Trade, Repair&lt;br /&gt;
|examine = An expert on axes.&lt;br /&gt;
|map = {{Map|name=Bob|3228,3206|3234,3206|3234,3201|3228,3201|3228,3202|3227,3202|3227,3205|3228,3205|mtype=polygon}}&lt;br /&gt;
|id = 10619&amp;lt;!--Since 17 March 2021--&amp;gt;, hist2812&amp;lt;!--&amp;quot;null&amp;quot; during the 2021 Birthday event, Bob before 17 February 2021--&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
[[File:Bob chathead.png|left]]&lt;br /&gt;
&#039;&#039;&#039;Bob&#039;&#039;&#039; is the owner of [[Bob&#039;s Brilliant Axes]] in southern [[Lumbridge]]. Players can pay Bob to repair damaged [[Barrows equipment]]. However, many players prefer to repair their Barrows armour at an [[armour stand]] in a [[player-owned house]] because it is usually cheaper depending on the player&#039;s [[Smithing]] level.&lt;br /&gt;
&lt;br /&gt;
Bob is also featured briefly in the [[Death to the Dorgeshuun]] [[quest]], which shows him to dislike the [[Dorgeshuun]]. Believing [[Zanik]] to be a violent [[goblin]], he screams at the player and Zanik to leave his store.&lt;br /&gt;
He is one of the people in [[Lumbridge]] that can be approached about the disturbance to the castle basement wall in [[The Lost Tribe]].&lt;br /&gt;
&lt;br /&gt;
==Stock==&lt;br /&gt;
{{StoreTableHead|sellmultiplier=1000|buymultiplier=600|delta=20}}&lt;br /&gt;
{{StoreLine|name=Bronze pickaxe|stock=5|restock=100}}&lt;br /&gt;
{{StoreLine|name=Bronze axe|stock=10|restock=100}}&lt;br /&gt;
{{StoreLine|name=Iron axe|stock=5|restock=200}}&lt;br /&gt;
{{StoreLine|name=Steel axe|stock=3|restock=400}}&lt;br /&gt;
{{StoreLine|name=Iron battleaxe|stock=5|restock=100}}&lt;br /&gt;
{{StoreLine|name=Steel battleaxe|stock=2|restock=200}}&lt;br /&gt;
{{StoreLine|name=Mithril battleaxe|stock=1|restock=3000}}&lt;br /&gt;
{{StoreTableBottom}}&lt;br /&gt;
&lt;br /&gt;
==Dialogue==&lt;br /&gt;
{{Hastranscript|npc}}&lt;br /&gt;
&lt;br /&gt;
==Changes==&lt;br /&gt;
{{Subject changes header}}&lt;br /&gt;
{{Subject changes&lt;br /&gt;
|daterange = 14 September –&amp;lt;br/&amp;gt;24 November 2004&lt;br /&gt;
|change = The NPC was graphically updated.&lt;br /&gt;
}}&lt;br /&gt;
{{Subject changes footer}}&lt;br /&gt;
&lt;br /&gt;
===Gallery (historical)===&lt;br /&gt;
{|style=&amp;quot;text-align: center&amp;quot; cellpadding=&amp;quot;15&amp;quot;&lt;br /&gt;
|[[File:Bob (historical).png|center|300x150px]]&lt;br /&gt;
|[[File:Bob.png|center|300x150px]]&lt;br /&gt;
|-&lt;br /&gt;
|29 March 2004 –&amp;lt;br/&amp;gt;September-November 2004&lt;br /&gt;
|September-November 2004 –&amp;lt;br/&amp;gt;present&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1160</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1160"/>
		<updated>2023-03-02T04:07:17Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|100px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1159</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1159"/>
		<updated>2023-03-02T04:05:50Z</updated>

		<summary type="html">&lt;p&gt;Dark98: testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|125px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=File:Bob_(historical).png&amp;diff=1158</id>
		<title>File:Bob (historical).png</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=File:Bob_(historical).png&amp;diff=1158"/>
		<updated>2023-03-02T04:03:47Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=File:Bob_chathead.png&amp;diff=1157</id>
		<title>File:Bob chathead.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=File:Bob_chathead.png&amp;diff=1157"/>
		<updated>2023-03-02T04:03:14Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=File:Bob.png&amp;diff=1156</id>
		<title>File:Bob.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=File:Bob.png&amp;diff=1156"/>
		<updated>2023-03-02T04:02:03Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1155</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1155"/>
		<updated>2023-03-02T03:58:07Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Add Members Section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{members|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Members&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{members}}}&lt;br /&gt;
|[[Category:Needs members info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|members =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1154</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1154"/>
		<updated>2023-03-02T03:55:36Z</updated>

		<summary type="html">&lt;p&gt;Dark98: woops&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|release =&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1153</id>
		<title>Template:Infobox NPC</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Infobox_NPC&amp;diff=1153"/>
		<updated>2023-03-02T03:54:26Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Add Released Section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;infobox&amp;quot; style=&amp;quot;font-size:89%; width:250px; background-color: #6b6b6b; border: 3px solid #024672; color:#333333;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672; color:#cccccc; font-size:120%;&amp;quot; | {{PAGENAME}}&lt;br /&gt;
|- style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | [[File:{{PAGENAME}}.png|250px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#024672;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{release|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Released&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{release}}}&lt;br /&gt;
|[[Category:Needs release info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{race|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Race&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{race}}}&lt;br /&gt;
|[[Category:Needs race info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{location|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{location}}}&lt;br /&gt;
|[[Category:Needs location info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{shop|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Shop&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{shop}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{quest|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Quest(s)&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{quest}}}&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{gender|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Gender&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{gender}}}&lt;br /&gt;
|[[Category:Needs gender info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{options|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{options}}}&lt;br /&gt;
|[[Category:Needs options info]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
{{#if: {{{examine|}}}|&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}&lt;br /&gt;
&#039;&#039;&#039;Examine&#039;&#039;&#039;&lt;br /&gt;
{{!}}&lt;br /&gt;
{{{examine}}}&lt;br /&gt;
|[[Category:Needs examine info]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Non-player_characters]]&lt;br /&gt;
|}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Infobox NPC&lt;br /&gt;
|race =&lt;br /&gt;
|location = &lt;br /&gt;
|shop = (optional)&lt;br /&gt;
|quest = (optional)&lt;br /&gt;
|gender =&lt;br /&gt;
|options =&lt;br /&gt;
|examine =&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Subject_changes&amp;diff=1152</id>
		<title>Template:Subject changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Subject_changes&amp;diff=1152"/>
		<updated>2023-03-02T03:48:00Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Created page with &amp;quot;&amp;lt;noinclude&amp;gt;{{Subject changes header}} &amp;lt;/noinclude&amp;gt;|- | data-sort-value=&amp;quot;{{{date|}}}&amp;quot; |{{#if:{{{date|}}}|1}}&amp;amp;nbsp;2}}|{{#if:{{{daterange|}}}|{{{daterange}}}|Date unknown|}}}}&amp;lt;br /&amp;gt;&amp;lt;!-- These nested #if expressions are basically acting as an OR operator, to not display parentheses when neither update and poll parameter is there.--&amp;gt;{{#if:{{{update|}}}|(|{{#if:{{{poll|}}}|(|}}}}{{#if:{{{...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Subject changes header}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;|-&lt;br /&gt;
| data-sort-value=&amp;quot;{{{date|}}}&amp;quot; |{{#if:{{{date|}}}|[[{{#explode:{{{date}}}| |0}}&amp;amp;nbsp;{{#explode:{{{date}}}| |1}}]]&amp;amp;nbsp;[[{{#explode:{{{date}}}| |2}}]]|{{#if:{{{daterange|}}}|{{{daterange}}}|Date unknown|}}}}&amp;lt;br /&amp;gt;&amp;lt;!-- These nested #if expressions are basically acting as an OR operator, to not display parentheses when neither update and poll parameter is there.--&amp;gt;{{#if:{{{update|}}}|(|{{#if:{{{poll|}}}|(|}}}}{{#if:{{{update|}}}|{{UD|{{{update}}}|update}}|}}{{#if:{{{poll|}}}|{{#if:{{{update|}}}|&amp;lt;nowiki /&amp;gt;&amp;lt;!-- These tags are here just so the space appears correctly between the update link and the pipe.--&amp;gt;&amp;amp;nbsp;{{!}}&amp;amp;nbsp;&amp;lt;nowiki /&amp;gt;|}}[[Poll:{{{poll}}}|poll]]|}}{{#if:{{{update|}}}|)|{{#if:{{{poll|}}}|)|}}}}&lt;br /&gt;
|{{#switch:{{lc:{{{type|}}}}}|mobile=&amp;lt;span style=&amp;quot;background:#3ea6e6;font-size:80%;font-weight:bold;text-transform:uppercase;border-radius:3px;padding:2px 5px;&amp;quot;&amp;gt;[[Old School RuneScape Mobile|&amp;lt;span style=&amp;quot;color:white&amp;quot;&amp;gt;Mobile&amp;lt;/span&amp;gt;]]&amp;lt;/span&amp;gt;|hotfix=&amp;lt;span style=&amp;quot;color:white;background:#ee4231;font-size:80%;font-weight:bold;text-transform:uppercase;border-radius:3px;padding:2px 5px;&amp;quot;&amp;gt;Hotfix&amp;lt;/span&amp;gt;}} &lt;br /&gt;
{{{change}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Subject changes footer}}[[Category:Table templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Subject_changes_footer&amp;diff=1151</id>
		<title>Template:Subject changes footer</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Subject_changes_footer&amp;diff=1151"/>
		<updated>2023-03-02T03:45:32Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Created page with &amp;quot;|}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;|}&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Subject_changes_header&amp;diff=1150</id>
		<title>Template:Subject changes header</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Subject_changes_header&amp;diff=1150"/>
		<updated>2023-03-02T03:44:38Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;wikitable mw-collapsible sortable&amp;quot; style=&amp;quot;max-width:800px&amp;quot; ! Date ! class=&amp;quot;unsortable&amp;quot; | Changes&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;See Template:Subject changes for documentation.Category:Table templates&amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{|class=&amp;quot;wikitable mw-collapsible sortable&amp;quot; style=&amp;quot;max-width:800px&amp;quot;&lt;br /&gt;
! Date&lt;br /&gt;
! class=&amp;quot;unsortable&amp;quot; | Changes&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;See [[Template:Subject changes]] for documentation.[[Category:Table templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:TemplateData&amp;diff=1149</id>
		<title>Template:TemplateData</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:TemplateData&amp;diff=1149"/>
		<updated>2023-03-02T03:41:15Z</updated>

		<summary type="html">&lt;p&gt;Dark98: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#if:{{{noheader|}}}||==Template data==}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;templatedata mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;text-align:center&amp;quot; data-expandtext=&amp;quot;show&amp;quot; data-collapsetext=&amp;quot;hide&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;min-width:400px&amp;quot;&amp;gt;Show/hide template&#039;s data&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;The following information is used by extensions and applications, such as VisualEditor, to help users implement this template onto pages. Please ensure that it is up-to-date.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{{1|}}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;{{#if:{{{nocat|}}}||[[Category:Templates using TemplateData]]}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:TemplateData&amp;diff=1147</id>
		<title>Template:TemplateData</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:TemplateData&amp;diff=1147"/>
		<updated>2023-03-02T03:34:07Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{#if:{{{noheader|}}}||==Template data==}}  &amp;lt;table class=&amp;quot;templatedata mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;text-align:center&amp;quot; data-expandtext=&amp;quot;show&amp;quot; data-collapsetext=&amp;quot;hide&amp;quot;&amp;gt; &amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;min-width:400px&amp;quot;&amp;gt;Show/hide template&amp;#039;s data&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; &amp;#039;&amp;#039;&amp;#039;The following information is used by extensions and applications, such as VisualEditor, to help users implement this template onto pages. Please ensure that it is up-to-date.&amp;#039;&amp;#039;&amp;#039;  {{{1|}}} &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#if:{{{noheader|}}}||==Template data==}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;templatedata mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;text-align:center&amp;quot; data-expandtext=&amp;quot;show&amp;quot; data-collapsetext=&amp;quot;hide&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;min-width:400px&amp;quot;&amp;gt;Show/hide template&#039;s data&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;The following information is used by extensions and applications, such as VisualEditor, to help users implement this template onto pages. Please ensure that it is up-to-date.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{{1|}}}&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;{{#if:{{{nocat|}}}||[[Category:Templates using TemplateData]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:*&amp;diff=1146</id>
		<title>Template:*</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:*&amp;diff=1146"/>
		<updated>2023-03-02T03:32:48Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;amp;bull;&amp;#039;&amp;#039;&amp;#039;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&#039;&#039;&#039;&amp;amp;bull;&#039;&#039;&#039;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Tselect&amp;diff=1144</id>
		<title>Template:Tselect</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Tselect&amp;diff=1144"/>
		<updated>2023-02-25T01:18:22Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 3 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;{{{1}}}&#039;&#039;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Topt&amp;diff=1122</id>
		<title>Template:Topt</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Topt&amp;diff=1122"/>
		<updated>2023-02-25T01:18:22Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 17 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;transcript-opt {{#ifeq:{{lc:{{{quest|}}}}}|no|disabled|}} {{#ifeq:{{lc:{{{event|}}}}}|no|disabled|}}&amp;quot;&amp;gt;{{#if:{{{cond|}}}|&#039;&#039;({{{cond}}})&#039;&#039;&amp;amp;#32;|}}{{#ifeq:{{lc:{{{quest|}}}}}|no|&#039;&#039;(Non-quest dialogue)&#039;&#039;&amp;amp;#32;|}}{{#ifeq:{{lc:{{{event|}}}}}|no|&#039;&#039;(Non-event dialogue)&#039;&#039;&amp;amp;#32;|}}{{{1}}}&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Transcript:Shop_keeper_(Lumbridge)&amp;diff=1077</id>
		<title>Transcript:Shop keeper (Lumbridge)</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Transcript:Shop_keeper_(Lumbridge)&amp;diff=1077"/>
		<updated>2023-02-25T01:18:21Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 2 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Transcript|npc}}&lt;br /&gt;
&lt;br /&gt;
==Standard dialogue==&lt;br /&gt;
* &#039;&#039;&#039;Shop keeper:&#039;&#039;&#039; Can I help you at all?&lt;br /&gt;
* {{tselect|Select an Option}}&lt;br /&gt;
* {{topt|Yes please. What are you selling?}}&lt;br /&gt;
** {{tact|opens=Lumbridge General Store}}&lt;br /&gt;
* {{topt|No thanks.}}&lt;br /&gt;
** &#039;&#039;&#039;Player:&#039;&#039;&#039; No thanks.&lt;br /&gt;
** {{tact|end}}&lt;br /&gt;
&lt;br /&gt;
==During Death to the Dorgeshuun==&lt;br /&gt;
* &#039;&#039;&#039;Shop keeper:&#039;&#039;&#039; Can I help you at all?&lt;br /&gt;
* &#039;&#039;&#039;Zanik:&#039;&#039;&#039; It&#039;s a surface shop full of exotic surface goods! What are you selling?&lt;br /&gt;
* &#039;&#039;&#039;Shop keeper:&#039;&#039;&#039; Um, yes, exotic surface goods... here, have a look at our wares...&lt;br /&gt;
* &#039;&#039;&#039;Zanik:&#039;&#039;&#039; Wow... The bucket and the hammer, what are they made of?&lt;br /&gt;
* &#039;&#039;&#039;Shop keeper:&#039;&#039;&#039; Um... wood. It, er, grows on trees?&lt;br /&gt;
* &#039;&#039;&#039;Zanik:&#039;&#039;&#039; Amazing!&lt;br /&gt;
* &#039;&#039;&#039;Shop keeper:&#039;&#039;&#039; So, do you want to buy anything?&lt;br /&gt;
* &#039;&#039;&#039;Zanik:&#039;&#039;&#039; A wood bucket! And a wood hammer! And a newcomer map! I brought some surface money.&lt;br /&gt;
* &#039;&#039;&#039;Shop keeper:&#039;&#039;&#039; There you go!&lt;br /&gt;
* &#039;&#039;&#039;Zanik:&#039;&#039;&#039; Thank you!&lt;br /&gt;
* &#039;&#039;&#039;Shop keeper:&#039;&#039;&#039; How about you?&lt;br /&gt;
* {{tselect|Select an Option}}&lt;br /&gt;
* {{topt|Yes please. What are you selling?}}&lt;br /&gt;
** {{tact|above}}&lt;br /&gt;
* {{topt|No thanks.}}&lt;br /&gt;
** {{tact|above}}&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Command_line_arguments&amp;diff=1039</id>
		<title>Command line arguments</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Command_line_arguments&amp;diff=1039"/>
		<updated>2023-02-19T04:04:21Z</updated>

		<summary type="html">&lt;p&gt;Dark98: /* -c/-config */ Added Link To Server Config File For Explaining The Config Settings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are multiple &#039;&#039;&#039;command line&#039;&#039;&#039; arguments which may be used to change the game&#039;s behavior during the start-up. These arguments can be set in the properties window of the game shortcut.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Instead of using the command line, you can execute switches directly from your [[2006Scape]] shortcut:&lt;br /&gt;
# Right click on your 2006Scape shortcut and select &#039;Properties&#039;.&lt;br /&gt;
# In the &#039;Target Area&#039; field you will see the location of your 2006Scape executable file:&lt;br /&gt;
#: &amp;quot;&amp;lt;...&amp;gt;\2006Scape.jar&amp;quot;&lt;br /&gt;
# Write the desired command line arguments after the quote marks, each beginning with a space:&lt;br /&gt;
#:&amp;quot;&amp;lt;...&amp;gt;\2006Scape.jar&amp;quot; -qol -w 2&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t plan on using an argument frequently, it can be easier to use the Run command for a single invocation. To do this, click the &amp;quot;Start&amp;quot; button and select &amp;quot;Run&amp;quot;, and enter the same line you would use to make a shortcut: the full path of 2006Scape.jar in quotes, followed by the arguments.&lt;br /&gt;
&lt;br /&gt;
== Client Arguments ==&lt;br /&gt;
=== -dev/-local/-offline ===&lt;br /&gt;
:Sets the Server IP to &amp;quot;localhost&amp;quot; &amp;amp; Disables Cache CRC checking&lt;br /&gt;
=== -no-crc/-no-cache-crc ===&lt;br /&gt;
:Disables Cache CRC checking&lt;br /&gt;
=== -no-nav/-disable-nav ===&lt;br /&gt;
:Disables the Client&#039;s Navigation Menu&lt;br /&gt;
=== -p/-pass/-password ===&lt;br /&gt;
:Sets the Password to Login to (Will Auto Login if paired with -u/-user/-username)&lt;br /&gt;
=== -qol/-fixes ===&lt;br /&gt;
:Enables A Custom GameFrame Tab &amp;amp; Various QoL Fixes for the Client&lt;br /&gt;
=== -s/-ip/-server ===&lt;br /&gt;
:Sets the IP the Client will Connect to&lt;br /&gt;
=== -u/-user/-username ===&lt;br /&gt;
:Sets the Username to Login to (Will Auto Login if paired with -p/-pass/-password)&lt;br /&gt;
=== -w/-world ===&lt;br /&gt;
:Sets The World the Client will to Connect to&lt;br /&gt;
&lt;br /&gt;
== Server Arguments ==&lt;br /&gt;
=== -c/-config ===&lt;br /&gt;
:Defines an external [[Server Config File|Config file]]  to change certain Game Constants without recompiling&lt;br /&gt;
&lt;br /&gt;
=== -gui ===&lt;br /&gt;
:Enables the Server Control Panel&lt;br /&gt;
&lt;br /&gt;
[[Category:User interface]]&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Command_line_arguments&amp;diff=1038</id>
		<title>Command line arguments</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Command_line_arguments&amp;diff=1038"/>
		<updated>2023-02-19T03:57:43Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Remove Quotes From Example World ID&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are multiple &#039;&#039;&#039;command line&#039;&#039;&#039; arguments which may be used to change the game&#039;s behavior during the start-up. These arguments can be set in the properties window of the game shortcut.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Instead of using the command line, you can execute switches directly from your [[2006Scape]] shortcut:&lt;br /&gt;
# Right click on your 2006Scape shortcut and select &#039;Properties&#039;.&lt;br /&gt;
# In the &#039;Target Area&#039; field you will see the location of your 2006Scape executable file:&lt;br /&gt;
#: &amp;quot;&amp;lt;...&amp;gt;\2006Scape.jar&amp;quot;&lt;br /&gt;
# Write the desired command line arguments after the quote marks, each beginning with a space:&lt;br /&gt;
#:&amp;quot;&amp;lt;...&amp;gt;\2006Scape.jar&amp;quot; -qol -w 2&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t plan on using an argument frequently, it can be easier to use the Run command for a single invocation. To do this, click the &amp;quot;Start&amp;quot; button and select &amp;quot;Run&amp;quot;, and enter the same line you would use to make a shortcut: the full path of 2006Scape.jar in quotes, followed by the arguments.&lt;br /&gt;
&lt;br /&gt;
== Client Arguments ==&lt;br /&gt;
=== -dev/-local/-offline ===&lt;br /&gt;
:Sets the Server IP to &amp;quot;localhost&amp;quot; &amp;amp; Disables Cache CRC checking&lt;br /&gt;
=== -no-crc/-no-cache-crc ===&lt;br /&gt;
:Disables Cache CRC checking&lt;br /&gt;
=== -no-nav/-disable-nav ===&lt;br /&gt;
:Disables the Client&#039;s Navigation Menu&lt;br /&gt;
=== -p/-pass/-password ===&lt;br /&gt;
:Sets the Password to Login to (Will Auto Login if paired with -u/-user/-username)&lt;br /&gt;
=== -qol/-fixes ===&lt;br /&gt;
:Enables A Custom GameFrame Tab &amp;amp; Various QoL Fixes for the Client&lt;br /&gt;
=== -s/-ip/-server ===&lt;br /&gt;
:Sets the IP the Client will Connect to&lt;br /&gt;
=== -u/-user/-username ===&lt;br /&gt;
:Sets the Username to Login to (Will Auto Login if paired with -p/-pass/-password)&lt;br /&gt;
=== -w/-world ===&lt;br /&gt;
:Sets The World the Client will to Connect to&lt;br /&gt;
&lt;br /&gt;
== Server Arguments ==&lt;br /&gt;
=== -c/-config ===&lt;br /&gt;
:Defines an external Config file to change certain Game Constants without recompiling&lt;br /&gt;
=== -gui ===&lt;br /&gt;
:Enables the Server Control Panel&lt;br /&gt;
&lt;br /&gt;
[[Category:User interface]]&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=User:Dark98/SandBox&amp;diff=984</id>
		<title>User:Dark98/SandBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=User:Dark98/SandBox&amp;diff=984"/>
		<updated>2023-02-10T00:57:41Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Created page with &amp;quot;{{Map|3028,3306|r=3|mtype=square}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Map|3028,3306|r=3|mtype=square}}&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Module:Map&amp;diff=983</id>
		<title>Module:Map</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Module:Map&amp;diff=983"/>
		<updated>2023-02-10T00:57:25Z</updated>

		<summary type="html">&lt;p&gt;Dark98: Created page with &amp;quot;-- &amp;lt;nowiki&amp;gt; local hc = require(&amp;#039;Module:Paramtest&amp;#039;).has_content  local p = {}  local zoomSizes = { 	{ 3, 8 }, 	{ 2, 4 }, 	{ 1, 2 }, 	{ 0, 1 }, 	{ -1, 1/2 }, 	{ -2, 1/4 }, 	{ -3, 1/8 } } -- Default size of maps (to calc zoom) local default_size = 800 -- 800px for full screen -- Map feature (overlay) types local featureMap = { 	none = {}, 	square = { square=true }, 	rectangle = { square=true }, 	polygon = { polygon=true }, 	line = { line=true }, 	lines = { line=true }, 	cir...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- &amp;lt;nowiki&amp;gt;&lt;br /&gt;
local hc = require(&#039;Module:Paramtest&#039;).has_content&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local zoomSizes = {&lt;br /&gt;
	{ 3, 8 },&lt;br /&gt;
	{ 2, 4 },&lt;br /&gt;
	{ 1, 2 },&lt;br /&gt;
	{ 0, 1 },&lt;br /&gt;
	{ -1, 1/2 },&lt;br /&gt;
	{ -2, 1/4 },&lt;br /&gt;
	{ -3, 1/8 }&lt;br /&gt;
}&lt;br /&gt;
-- Default size of maps (to calc zoom)&lt;br /&gt;
local default_size = 800 -- 800px for full screen&lt;br /&gt;
-- Map feature (overlay) types&lt;br /&gt;
local featureMap = {&lt;br /&gt;
	none = {},&lt;br /&gt;
	square = { square=true },&lt;br /&gt;
	rectangle = { square=true },&lt;br /&gt;
	polygon = { polygon=true },&lt;br /&gt;
	line = { line=true },&lt;br /&gt;
	lines = { line=true },&lt;br /&gt;
	circle = { circle=true },&lt;br /&gt;
	pin = { pins=true },&lt;br /&gt;
	pins = { pins=true },&lt;br /&gt;
	[&#039;pin-polygon&#039;] = { polygon=true, pins=true },&lt;br /&gt;
	[&#039;pins-polygon&#039;] = { polygon=true, pins=true },&lt;br /&gt;
	[&#039;pin-line&#039;] = { line=true, pins=true },&lt;br /&gt;
	[&#039;pins-line&#039;] = { line=true, pins=true },&lt;br /&gt;
	[&#039;pin-circle&#039;] = { circle=true, pins=true },&lt;br /&gt;
	[&#039;pins-circle&#039;] = { circle=true, pins=true }&lt;br /&gt;
}&lt;br /&gt;
-- Possible properties&lt;br /&gt;
local simplestyle = {&#039;title&#039;, &#039;description&#039;, &#039;marker-size&#039;, &#039;marker-symbol&#039;, &#039;marker-color&#039;,&lt;br /&gt;
	&#039;stroke&#039;, &#039;stroke-opacity&#039;, &#039;stroke-width&#039;, &#039;fill&#039;, &#039;fill-opacity&#039;}&lt;br /&gt;
local properties = {&lt;br /&gt;
	polygon = { title=true, description=true, stroke=true, [&#039;stroke-opacity&#039;]=true, [&#039;stroke-width&#039;]=true, fill=true, [&#039;fill-opacity&#039;]=true },&lt;br /&gt;
	line = { title=true, description=true, stroke=true, [&#039;stroke-opacity&#039;]=true, [&#039;stroke-width&#039;]=true },&lt;br /&gt;
	circle = { title=true, description=true, stroke=true, [&#039;stroke-opacity&#039;]=true, [&#039;stroke-width&#039;]=true, fill=true, [&#039;fill-opacity&#039;]=true },&lt;br /&gt;
	pin = { title=true, description=true, icon=true, iconWikiLink=true, iconSize=true, iconAnchor=true, popupAnchor=true}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Create JSON&lt;br /&gt;
function toJSON(j)&lt;br /&gt;
	local json_good, json = pcall(mw.text.jsonEncode, j)--, mw.text.JSON_PRETTY)&lt;br /&gt;
	if json_good then&lt;br /&gt;
		return json&lt;br /&gt;
	end&lt;br /&gt;
	return error(&#039;Error converting to JSON&#039;)&lt;br /&gt;
end&lt;br /&gt;
-- Create SMW string&lt;br /&gt;
function setSMW(obj, prop)&lt;br /&gt;
	mw.smw.set({[prop] = toJSON(obj)})&lt;br /&gt;
end&lt;br /&gt;
-- Create map html element&lt;br /&gt;
function createMapElement(elem, args, json)&lt;br /&gt;
	local mapelem = mw.html.create(elem)&lt;br /&gt;
	mapelem:attr(args):newline():wikitext(toJSON(json)):newline()&lt;br /&gt;
	return mapelem&lt;br /&gt;
end&lt;br /&gt;
-- Create pin description&lt;br /&gt;
function parseDesc(args, pin, pgname, ptype)&lt;br /&gt;
	local desc = {}&lt;br /&gt;
	if ptype == &#039;item&#039; then&lt;br /&gt;
		desc = {&lt;br /&gt;
			&amp;quot;&#039;&#039;&#039;Item&#039;&#039;&#039;: &amp;quot;.. (args.name or pgname),&lt;br /&gt;
			&amp;quot;&#039;&#039;&#039;Quantity&#039;&#039;&#039;: &amp;quot;.. (pin.qty or 1)&lt;br /&gt;
		}&lt;br /&gt;
		if pin.respawn then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Respawn time&#039;&#039;&#039;: &amp;quot;..pin.respawn)&lt;br /&gt;
		elseif args.respawn then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Respawn time&#039;&#039;&#039;: &amp;quot;..args.respawn)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.notes then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Notes&#039;&#039;&#039;: &amp;quot;..pin.notes)&lt;br /&gt;
		elseif args.notes then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Notes&#039;&#039;&#039;: &amp;quot;..args.notes)&lt;br /&gt;
		end&lt;br /&gt;
	elseif ptype == &#039;monster&#039; then&lt;br /&gt;
		table.insert(desc, &amp;quot;&#039;&#039;&#039;Monster&#039;&#039;&#039;: &amp;quot; .. (args.name or pgname))&lt;br /&gt;
		if pin.levels then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Level(s)&#039;&#039;&#039;: &amp;quot; .. pin.levels)&lt;br /&gt;
		elseif args.levels then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Level(s)&#039;&#039;&#039;: &amp;quot; .. args.levels)&lt;br /&gt;
		end&lt;br /&gt;
	elseif ptype == &#039;npc&#039; then&lt;br /&gt;
		table.insert(desc, &amp;quot;&#039;&#039;&#039;NPC&#039;&#039;&#039;: &amp;quot;..(args.name or pgname))&lt;br /&gt;
		if pin.version then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Version&#039;&#039;&#039;: &amp;quot;..pin.version)&lt;br /&gt;
		elseif args.version then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Version&#039;&#039;&#039;: &amp;quot;..args.version)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.npcid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;NPC ID&#039;&#039;&#039;: &amp;quot;..pin.npcid)&lt;br /&gt;
		elseif args.npcid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;NPC ID&#039;&#039;&#039;: &amp;quot;..args.npcid)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.objectid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Object ID&#039;&#039;&#039;: &amp;quot;..pin.objectid)&lt;br /&gt;
		elseif args.objectid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Object ID&#039;&#039;&#039;: &amp;quot;..args.objectid)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.respawn then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Respawn time&#039;&#039;&#039;: &amp;quot;..pin.respawn)&lt;br /&gt;
		elseif args.respawn then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Respawn time&#039;&#039;&#039;: &amp;quot;..args.respawn)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.notes then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Notes&#039;&#039;&#039;: &amp;quot;..pin.notes)&lt;br /&gt;
		elseif args.notes then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Notes&#039;&#039;&#039;: &amp;quot;..args.notes)&lt;br /&gt;
		end&lt;br /&gt;
	elseif ptype == &#039;object&#039; then&lt;br /&gt;
		table.insert(desc, &amp;quot;&#039;&#039;&#039;Object&#039;&#039;&#039;: &amp;quot;..(args.name or pgname))&lt;br /&gt;
		if pin.version then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Version&#039;&#039;&#039;: &amp;quot;..pin.version)&lt;br /&gt;
		elseif args.version then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Version&#039;&#039;&#039;: &amp;quot;..args.version)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.objectid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Object ID&#039;&#039;&#039;: &amp;quot;..pin.objectid)&lt;br /&gt;
		elseif args.objectid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Object ID&#039;&#039;&#039;: &amp;quot;..args.objectid)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.npcid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;NPC ID&#039;&#039;&#039;: &amp;quot;..pin.npcid)&lt;br /&gt;
		elseif args.npcid then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;NPC ID&#039;&#039;&#039;: &amp;quot;..args.npcid)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.respawn then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Respawn time&#039;&#039;&#039;: &amp;quot;..pin.respawn)&lt;br /&gt;
		elseif args.respawn then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Respawn time&#039;&#039;&#039;: &amp;quot;..args.respawn)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.notes then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Notes&#039;&#039;&#039;: &amp;quot;..pin.notes)&lt;br /&gt;
		elseif args.notes then&lt;br /&gt;
			table.insert(desc, &amp;quot;&#039;&#039;&#039;Notes&#039;&#039;&#039;: &amp;quot;..args.notes)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if args.desc then&lt;br /&gt;
			table.insert(desc, args.desc)&lt;br /&gt;
		end&lt;br /&gt;
		if pin.desc then&lt;br /&gt;
			table.insert(desc, pin.desc)&lt;br /&gt;
		elseif pin.x and pin.y then&lt;br /&gt;
			table.insert(desc, &#039;X,Y: &#039;..pin.x..&#039;,&#039;..pin.y)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(desc, &#039;&amp;lt;br&amp;gt;&#039;)&lt;br /&gt;
end&lt;br /&gt;
-- Parse unnamed arguments (arg = pin)&lt;br /&gt;
function p.parseArgs(args, ptype)&lt;br /&gt;
	args.pins = {}&lt;br /&gt;
	local sep = args.sep or &#039;%s*,%s*&#039;&lt;br /&gt;
	local pgname = mw.title.getCurrentTitle().text&lt;br /&gt;
	local rng = {&lt;br /&gt;
		xmin = 10000000,&lt;br /&gt;
		xmax = -10000000,&lt;br /&gt;
		ymin = 10000000,&lt;br /&gt;
		ymax = -10000000&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local i,cnt = 1,0&lt;br /&gt;
	while (args[i]) do&lt;br /&gt;
		local v = mw.text.trim(args[i])&lt;br /&gt;
		if hc(v) then&lt;br /&gt;
			local pin = {}&lt;br /&gt;
			for u in mw.text.gsplit(v, sep) do&lt;br /&gt;
				local _u = mw.text.split(u, &#039;%s*:%s*&#039;)&lt;br /&gt;
				if _u[2] then&lt;br /&gt;
					local k = mw.text.trim(_u[1])&lt;br /&gt;
					if k == &#039;x&#039; or k == &#039;y&#039; then&lt;br /&gt;
						pin[k] = tonumber(mw.text.trim(_u[2]))&lt;br /&gt;
					else&lt;br /&gt;
						pin[k] = mw.text.trim(_u[2])&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					if pin.x then&lt;br /&gt;
						pin.y = tonumber(_u[1])&lt;br /&gt;
					else&lt;br /&gt;
						pin.x = tonumber(_u[1])&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if pin.x &amp;gt; rng.xmax then&lt;br /&gt;
				rng.xmax = pin.x&lt;br /&gt;
			end&lt;br /&gt;
			if pin.x &amp;lt; rng.xmin then&lt;br /&gt;
				rng.xmin = pin.x&lt;br /&gt;
			end&lt;br /&gt;
			if pin.y &amp;gt; rng.ymax then&lt;br /&gt;
				rng.ymax = pin.y&lt;br /&gt;
			end&lt;br /&gt;
			if pin.y &amp;lt;  rng.ymin then&lt;br /&gt;
				rng.ymin = pin.y&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- Pin size/location args&lt;br /&gt;
			if pin.iconSizeX and pin.iconSizeY then&lt;br /&gt;
				pin.iconSize = {tonumber(pin.iconSizeX), tonumber(pin.iconSizeY) }&lt;br /&gt;
			elseif pin.iconSize then&lt;br /&gt;
				pin.iconSize = { tonumber(pin.iconSize), tonumber(pin.iconSize)}&lt;br /&gt;
			end&lt;br /&gt;
			if pin.iconAnchorX and pin.iconAnchorY then&lt;br /&gt;
				pin.iconAnchor = {tonumber(pin.iconAnchorX), tonumber(pin.iconAnchorY) }&lt;br /&gt;
			elseif pin.iconAnchor then&lt;br /&gt;
				pin.iconAnchor = {tonumber(pin.iconAnchor), tonumber(pin.iconAnchor)}&lt;br /&gt;
			end&lt;br /&gt;
			if pin.popupAnchorX and pin.popupAnchorY then&lt;br /&gt;
				pin.popupAnchor = {tonumber(pin.popupAnchorX), tonumber(pin.popupAnchorY) }&lt;br /&gt;
			elseif pin.popupAnchor then&lt;br /&gt;
				pin.popupAnchor = {tonumber(pin.popupAnchor), tonumber(pin.popupAnchor)}&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			pin.desc = parseDesc(args, pin, pgname, ptype)&lt;br /&gt;
			&lt;br /&gt;
			table.insert( args.pins, pin)&lt;br /&gt;
			cnt =  cnt + 1&lt;br /&gt;
		end&lt;br /&gt;
		i =  i + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- In no anonymous args then x,y are pin&lt;br /&gt;
	if cnt == 0 then&lt;br /&gt;
		local x = tonumber(args.x) or 3233 -- Default is Lumbridge loadstone&lt;br /&gt;
		local y = tonumber(args.y) or 3222&lt;br /&gt;
		rng.xmax = x&lt;br /&gt;
		rng.xmin = x&lt;br /&gt;
		rng.ymax = y&lt;br /&gt;
		rng.ymin = y&lt;br /&gt;
		local desc = parseDesc(args, {}, pgname, ptype)&lt;br /&gt;
		table.insert( args.pins, {x = x, y = y, desc = desc} )&lt;br /&gt;
		cnt = cnt + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local xrange = rng.xmax - rng.xmin&lt;br /&gt;
	local yrange = rng.ymax - rng.ymin&lt;br /&gt;
&lt;br /&gt;
	if not tonumber(args.x) then&lt;br /&gt;
		args.x = math.floor(rng.xmin + xrange/2)&lt;br /&gt;
	end&lt;br /&gt;
	if not tonumber(args.y) then&lt;br /&gt;
		args.y = math.floor(rng.ymin + yrange/2)&lt;br /&gt;
	end&lt;br /&gt;
	-- Default range (1 pin) is 40&lt;br /&gt;
	if not tonumber(args.x_range) then&lt;br /&gt;
		if xrange &amp;gt; 0 then&lt;br /&gt;
			args.x_range = xrange&lt;br /&gt;
		else&lt;br /&gt;
			args.x_range = 40&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not tonumber(args.y_range) then&lt;br /&gt;
		if yrange &amp;gt; 0 then&lt;br /&gt;
			args.y_range = yrange&lt;br /&gt;
		else&lt;br /&gt;
			args.y_range = 40&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Default square (1 pin) is 20&lt;br /&gt;
	if not tonumber(args.squareX) then&lt;br /&gt;
		if xrange &amp;gt; 0 then&lt;br /&gt;
			args.squareX = xrange&lt;br /&gt;
		else&lt;br /&gt;
			args.squareX = 20&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not tonumber(args.squareY) then&lt;br /&gt;
		if yrange &amp;gt; 0 then&lt;br /&gt;
			args.squareY = yrange&lt;br /&gt;
		else&lt;br /&gt;
			args.squareY = 20&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	args.pin_count = cnt&lt;br /&gt;
	&lt;br /&gt;
	if args.smw == &#039;yes&#039; or args.smw == &#039;y&#039; or tonumber(args.smw) == 1 then&lt;br /&gt;
		args.smw = &amp;quot;Location JSON&amp;quot;&lt;br /&gt;
	elseif args.smw == &#039;hist&#039; then&lt;br /&gt;
		args.smw = &amp;quot;Historic Location JSON&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		args.smw = nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
-- Add styles&lt;br /&gt;
function styles(ftjson, args, this, ptype)&lt;br /&gt;
	local props = properties[ptype]&lt;br /&gt;
	for i,v in pairs(args) do&lt;br /&gt;
		if props[i] then&lt;br /&gt;
			ftjson.properties[i] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for i,v in pairs(this) do&lt;br /&gt;
		if props[i] then&lt;br /&gt;
			ftjson.properties[i] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ftjson&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.map(frame)&lt;br /&gt;
	return p.buildMap(frame:getParent().args)	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Functions for templates --&lt;br /&gt;
function p.buildMap(arguments)&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for i,v in pairs(arguments) do&lt;br /&gt;
		args[i] = v&lt;br /&gt;
	end&lt;br /&gt;
	-- Allow map/element type per template easily&lt;br /&gt;
	local inv_args = {}&lt;br /&gt;
	for i,v in pairs(arguments) do&lt;br /&gt;
		inv_args[i] = v&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--[[ Each unnamed arg is 1 pin in format:&lt;br /&gt;
		x,y&lt;br /&gt;
		or&lt;br /&gt;
		x:#,y:#,desc:#&lt;br /&gt;
	]]&lt;br /&gt;
	args = p.parseArgs(args, args.ptype)&lt;br /&gt;
&lt;br /&gt;
	if hc(args.iconSize) then&lt;br /&gt;
		if string.find(args.iconSize, &#039;,&#039;) then&lt;br /&gt;
			local isize = mw.text.split(args.iconSize, &#039;%s*,%s*&#039;)&lt;br /&gt;
			args.iconSize = { tonumber(isize[1]) or 25, tonumber(isize[2]) or 25}&lt;br /&gt;
		else&lt;br /&gt;
			args.iconSize = { tonumber(args.iconSize) or 25, tonumber(args.iconSize) or 25}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.iconAnchor) then&lt;br /&gt;
		if string.find(args.iconAnchor, &#039;,&#039;) then&lt;br /&gt;
			local ianch = mw.text.split(args.iconAnchor, &#039;%s*,%s*&#039;)&lt;br /&gt;
			args.iconAnchor = { tonumber(ianch[1]) or 0, tonumber(ianch[2]) or 0}&lt;br /&gt;
		else&lt;br /&gt;
			args.iconAnchor = { tonumber(args.iconAnchor) or 0, tonumber(args.iconAnchor) or 0}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.popupAnchor) then&lt;br /&gt;
		if string.find(args.popupAnchor, &#039;,&#039;) then&lt;br /&gt;
			local panch = mw.text.split(args.popupAnchor, &#039;%s*,%s*&#039;)&lt;br /&gt;
			args.popupAnchor = { tonumber(panch[1]) or 0, tonumber(panch[2]) or 0}&lt;br /&gt;
		else&lt;br /&gt;
			args.popupAnchor = { tonumber(args.popupAnchor) or 0, tonumber(args.popupAnchor) or 0}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.showPins then&lt;br /&gt;
		if args.pin_count &amp;gt; 1 then&lt;br /&gt;
			if not hc(args.text) then&lt;br /&gt;
				args.text = &#039;Show exact locations&#039;&lt;br /&gt;
			end&lt;br /&gt;
			local capt = string.format(&#039;%s locations&#039;, args.pin_count)&lt;br /&gt;
			if hc(args.caption) then&lt;br /&gt;
				capt = args.caption&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			args.etype = &#039;maplink&#039;&lt;br /&gt;
			args.features = &#039;pins&#039;&lt;br /&gt;
			local link = tostring(p.createMap(args))&lt;br /&gt;
			capt = capt .. link&lt;br /&gt;
	&lt;br /&gt;
			args.etype = &#039;mapframe&#039;&lt;br /&gt;
			args.caption = &#039;&#039;&lt;br /&gt;
			args.features = &#039;square&#039;&lt;br /&gt;
			local map = tostring(p.createMap(args))&lt;br /&gt;
	&lt;br /&gt;
			local classes = &#039;mw-kartographer-container thumb&#039;&lt;br /&gt;
			if hc(args.align) then&lt;br /&gt;
				local align = string.lower(args.align)&lt;br /&gt;
				if align == &#039;left&#039; then&lt;br /&gt;
					classes = classes..&#039; tleft&#039;&lt;br /&gt;
				elseif align == &#039;right&#039; then&lt;br /&gt;
					classes = classes..&#039; tright&#039;&lt;br /&gt;
				else&lt;br /&gt;
					classes = classes..&#039; center&#039;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				classes = classes..&#039; center&#039;&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			local width = args.width or 300&lt;br /&gt;
			local ret = mw.html.create(&#039;div&#039;)&lt;br /&gt;
			ret:addClass(classes)&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:addClass(&#039;thumbinner&#039;)&lt;br /&gt;
					:css(&#039;width&#039;, width .. &#039;px&#039;)&lt;br /&gt;
					:node(map)&lt;br /&gt;
					:tag(&#039;div&#039;)&lt;br /&gt;
						:addClass(&#039;thumbcaption&#039;)&lt;br /&gt;
						:css(&#039;text-align&#039;, &#039;center&#039;)&lt;br /&gt;
						:node(capt)&lt;br /&gt;
	&lt;br /&gt;
			return ret&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if hc(inv_args.mtype) then&lt;br /&gt;
		args.features = string.lower(inv_args.mtype)&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.mtype) then&lt;br /&gt;
		args.features = string.lower(args.mtype)&lt;br /&gt;
	end&lt;br /&gt;
	if not args.features then&lt;br /&gt;
		args.features = &#039;none&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	args.etype = &#039;mapframe&#039;&lt;br /&gt;
	&lt;br /&gt;
	if hc(inv_args.type) then&lt;br /&gt;
		args.etype = string.lower(inv_args.type)&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.type) then&lt;br /&gt;
		args.etype = string.lower(args.type)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return p.createMap(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function for creating map or link&lt;br /&gt;
function p.createMap(args)&lt;br /&gt;
	local x, y = args.x, args.y&lt;br /&gt;
	local opts = {&lt;br /&gt;
		x = x,&lt;br /&gt;
		y = y,&lt;br /&gt;
		width = args.width or 300,&lt;br /&gt;
		height = args.height or 300,&lt;br /&gt;
		mapID = args.mapID or 0, -- RuneScape Surface&lt;br /&gt;
		plane = tonumber(args.plane) or 0,&lt;br /&gt;
		zoom = args.zoom or 2,&lt;br /&gt;
		align = args.align or &#039;center&#039;,&lt;br /&gt;
		icon = args.icon or &#039;greenPin&#039;&lt;br /&gt;
	}&lt;br /&gt;
	if hc(args.group) then&lt;br /&gt;
		opts.group = args.group&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.show) then&lt;br /&gt;
		opts.show = args.show&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- plain map tiles&lt;br /&gt;
	if hc(args.plaintiles) then&lt;br /&gt;
		opts.plainTiles = &#039;true&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.plainTiles) then&lt;br /&gt;
		opts.plainTiles = &#039;true&#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- other map tile version&lt;br /&gt;
	if hc(args.mapversion) then&lt;br /&gt;
		opts.mapVersion = args.mapversion&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.mapVersion) then&lt;br /&gt;
		opts.mapVersion = args.mapVersion&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- mapframe, maplink&lt;br /&gt;
	local etype = &#039;mapframe&#039;&lt;br /&gt;
	if hc(args.etype) then&lt;br /&gt;
		etype = args.etype&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- translate &amp;quot;centre&amp;quot; spelling for align&lt;br /&gt;
	if opts.align == &#039;centre&#039; then&lt;br /&gt;
		opts.align = &#039;center&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Caption or link text&lt;br /&gt;
	if etype == &#039;maplink&#039; then&lt;br /&gt;
		opts.text = args.text or &#039;Maplink&#039;&lt;br /&gt;
		if string.find(opts.text,&#039;[%[%]]&#039;) then &lt;br /&gt;
			return error(&#039;Text cannot contain links&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	elseif hc(args.caption) then&lt;br /&gt;
		opts.text = args.caption&lt;br /&gt;
	else&lt;br /&gt;
		opts.frameless = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local featColl, features = {}, {}&lt;br /&gt;
	local smwstr = &amp;quot;&amp;quot;&lt;br /&gt;
	if hc(args.features) then&lt;br /&gt;
		local _features = string.lower(args.features)&lt;br /&gt;
		features = featureMap[_features] or {}&lt;br /&gt;
	end&lt;br /&gt;
	if features.square then&lt;br /&gt;
		local feat = p.featSquare(args, opts)&lt;br /&gt;
		table.insert(featColl, feat)&lt;br /&gt;
		if args.smw then&lt;br /&gt;
			setSMW(feat, args.smw)&lt;br /&gt;
		end&lt;br /&gt;
	elseif features.circle then&lt;br /&gt;
		local feat = p.featCircle(args, opts)&lt;br /&gt;
		table.insert(featColl, feat)&lt;br /&gt;
		if args.smw then&lt;br /&gt;
			setSMW(feat, args.smw)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if features.polygon then&lt;br /&gt;
		local feat = p.featPolygon(args, opts)&lt;br /&gt;
		table.insert(featColl, feat)&lt;br /&gt;
		if args.smw then&lt;br /&gt;
			setSMW(feat, args.smw)&lt;br /&gt;
		end&lt;br /&gt;
	elseif features.line then&lt;br /&gt;
		local feat = p.featLine(args, opts)&lt;br /&gt;
		table.insert(featColl, feat)&lt;br /&gt;
		if args.smw then&lt;br /&gt;
			setSMW(feat, args.smw)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if features.pins then&lt;br /&gt;
		if not opts.group then&lt;br /&gt;
			opts.group = &#039;pins&#039;&lt;br /&gt;
		end&lt;br /&gt;
		-- opts.icon = args.icon or &#039;greenPin&#039;&lt;br /&gt;
		for _,pin in ipairs(args.pins) do&lt;br /&gt;
			local feat = p.featPin(args, opts, pin)&lt;br /&gt;
			table.insert(featColl, feat)&lt;br /&gt;
			if args.smw then&lt;br /&gt;
				setSMW(feat, args.smw)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local json = {}&lt;br /&gt;
	if #featColl &amp;gt; 0 then&lt;br /&gt;
		json = {&lt;br /&gt;
			type = &#039;FeatureCollection&#039;,&lt;br /&gt;
			features = featColl&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		-- Zoom&lt;br /&gt;
		local width,height = opts.width, opts.height&lt;br /&gt;
		if etype == &#039;maplink&#039; then&lt;br /&gt;
			width,height = default_size, default_size&lt;br /&gt;
		end&lt;br /&gt;
		local x_range = tonumber(args.squareX) or 40&lt;br /&gt;
		local y_range = tonumber(args.squareY) or 40&lt;br /&gt;
		if tonumber(args.r) then&lt;br /&gt;
			x_range = tonumber(args.r)&lt;br /&gt;
			y_range = tonumber(args.r)&lt;br /&gt;
		end&lt;br /&gt;
		if tonumber(args.x_range) then&lt;br /&gt;
			x_range = tonumber(args.x_range)&lt;br /&gt;
		end&lt;br /&gt;
		if tonumber(args.y_range) then&lt;br /&gt;
			y_range = tonumber(args.y_range)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local zoom = -3&lt;br /&gt;
		for i,v in ipairs(zoomSizes) do&lt;br /&gt;
			local sqsx, sqsy = width/v[2], height/v[2]&lt;br /&gt;
			if sqsx &amp;gt; x_range and sqsy &amp;gt; y_range then&lt;br /&gt;
				zoom = v[1]&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if zoom &amp;gt; 2 then&lt;br /&gt;
			zoom = 2&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if tonumber(args.zoom) then&lt;br /&gt;
			opts.zoom = args.zoom&lt;br /&gt;
		else&lt;br /&gt;
			opts.zoom = zoom&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local map = createMapElement(etype, opts, json)&lt;br /&gt;
	if args.nopreprocess then&lt;br /&gt;
		return tostring(map) .. smwstr&lt;br /&gt;
	end&lt;br /&gt;
	return mw.getCurrentFrame():preprocess(tostring(map) .. smwstr)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create a square feature&lt;br /&gt;
function p.featSquare(args, opts)&lt;br /&gt;
	local x, y = args.x, args.y&lt;br /&gt;
	local squareX = tonumber(args.squareX) or 20&lt;br /&gt;
	local squareY = tonumber(args.squareY) or 20&lt;br /&gt;
	squareX = math.max(1, args.r or math.floor(squareX / 2))&lt;br /&gt;
	squareY = math.max(1, args.r or math.floor(squareY / 2))&lt;br /&gt;
&lt;br /&gt;
	local ftjson = {&lt;br /&gt;
		type = &#039;Feature&#039;,&lt;br /&gt;
		properties = {[&#039;_&#039;]=&#039;_&#039;, mapID=opts.mapID, plane=opts.plane},&lt;br /&gt;
		geometry = {&lt;br /&gt;
			type = &#039;Polygon&#039;,&lt;br /&gt;
			coordinates = {&lt;br /&gt;
				{&lt;br /&gt;
					{ x-squareX, y-squareY },&lt;br /&gt;
					{ x-squareX, y+squareY },&lt;br /&gt;
					{ x+squareX, y+squareY },&lt;br /&gt;
					{ x+squareX, y-squareY }&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ftjson = styles(ftjson, args, {}, &#039;polygon&#039;)&lt;br /&gt;
	return ftjson&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create a polygon feature&lt;br /&gt;
function p.featPolygon(args, opts)&lt;br /&gt;
	local points, lastpoint = {}, {}&lt;br /&gt;
	for _,v in ipairs(args.pins) do&lt;br /&gt;
		table.insert(points, {v.x, v.y,})&lt;br /&gt;
		lastpoint = {v.x, v.y,}&lt;br /&gt;
	end&lt;br /&gt;
	-- Close polygon&lt;br /&gt;
	if not (points[1][1] == lastpoint[1] and points[1][2] == lastpoint[2]) then&lt;br /&gt;
		table.insert(points, {points[1][1], points[1][2]})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ftjson = {&lt;br /&gt;
		type = &#039;Feature&#039;,&lt;br /&gt;
		properties = {[&#039;_&#039;]=&#039;_&#039;, mapID=opts.mapID, plane=opts.plane},&lt;br /&gt;
		geometry = {&lt;br /&gt;
			type = &#039;Polygon&#039;,&lt;br /&gt;
			coordinates = { points }&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ftjson = styles(ftjson, args, {}, &#039;polygon&#039;)&lt;br /&gt;
	return ftjson&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create a line feature&lt;br /&gt;
function p.featLine(args, opts)&lt;br /&gt;
	local points, lastpoint = {}, {}&lt;br /&gt;
	for _,v in ipairs(args.pins) do&lt;br /&gt;
		table.insert(points, {v.x, v.y,})&lt;br /&gt;
		lastpoint = {v.x, v.y,}&lt;br /&gt;
	end&lt;br /&gt;
	if hc(args.close) then&lt;br /&gt;
		-- Close line&lt;br /&gt;
		if not (points[1][1] == lastpoint[1] and points[1][2] == lastpoint[2]) then&lt;br /&gt;
			table.insert(points, {points[1][1], points[1][2]})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ftjson = {&lt;br /&gt;
		type = &#039;Feature&#039;,&lt;br /&gt;
		properties = {&lt;br /&gt;
			[&#039;_&#039;] = &#039;_&#039;,&lt;br /&gt;
			shape = &#039;Line&#039;,&lt;br /&gt;
			mapID = opts.mapID,&lt;br /&gt;
			plane = opts.plane&lt;br /&gt;
		},&lt;br /&gt;
		geometry = {&lt;br /&gt;
			type = &#039;LineString&#039;,&lt;br /&gt;
			coordinates = points&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ftjson = styles(ftjson, args, {}, &#039;line&#039;)&lt;br /&gt;
	return ftjson&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create a circle feature&lt;br /&gt;
function p.featCircle(args, opts)&lt;br /&gt;
	local rad = tonumber(args.r) or 10&lt;br /&gt;
	local ftjson = {&lt;br /&gt;
		type = &#039;Feature&#039;,&lt;br /&gt;
		properties = {&lt;br /&gt;
			[&#039;_&#039;]=&#039;_&#039;,&lt;br /&gt;
			shape = &#039;Circle&#039;,&lt;br /&gt;
			radius = rad,&lt;br /&gt;
			mapID = opts.mapID,&lt;br /&gt;
			plane = opts.plane&lt;br /&gt;
		},&lt;br /&gt;
		geometry = {&lt;br /&gt;
			type = &#039;Point&#039;,&lt;br /&gt;
			coordinates = {&lt;br /&gt;
				args.x, args.y, opts.plane&lt;br /&gt;
			}	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ftjson = styles(ftjson, args, {}, &#039;circle&#039;)&lt;br /&gt;
	return ftjson&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create a pin feature&lt;br /&gt;
-- Pin types: greyPin, greenPin, redPin&lt;br /&gt;
function p.featPin(args, opts, pin)&lt;br /&gt;
	local desc = pin.desc or pin.x..&#039;, &#039;..pin.y&lt;br /&gt;
	local ftjson = {&lt;br /&gt;
		type = &#039;Feature&#039;,&lt;br /&gt;
		properties = {&lt;br /&gt;
			providerID = 0,&lt;br /&gt;
			description = desc,&lt;br /&gt;
			mapID = opts.mapID,&lt;br /&gt;
			plane = opts.plane&lt;br /&gt;
		},&lt;br /&gt;
		geometry = {&lt;br /&gt;
			type = &#039;Point&#039;,&lt;br /&gt;
			coordinates = {&lt;br /&gt;
				pin.x, pin.y, opts.plane&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if pin.iconWikiLink then&lt;br /&gt;
		pin.iconWikiLink = mw.ext.GloopTweaks.filepath(pin.iconWikiLink)&lt;br /&gt;
	end&lt;br /&gt;
	ftjson = styles(ftjson, args, pin, &#039;pin&#039;)&lt;br /&gt;
	&lt;br /&gt;
	if not (ftjson.properties.icon or ftjson.properties.iconWikiLink) then&lt;br /&gt;
		ftjson.properties.icon = &#039;greenPin&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ftjson&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
-- &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Module:Top_icons&amp;diff=979</id>
		<title>Module:Top icons</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Module:Top_icons&amp;diff=979"/>
		<updated>2023-02-10T00:55:35Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 20 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local sites = {&lt;br /&gt;
	rsc = {&lt;br /&gt;
		format = &#039;The RuneScape Classic Wiki also has an article on: [[classicrsw:%s]]&#039;,&lt;br /&gt;
		params = { &#039;rsc&#039; },&lt;br /&gt;
		abbr = &#039;CS&#039;,&lt;br /&gt;
		title = &#039;The RuneScape Classic Wiki also has an article on %s.&#039;,&lt;br /&gt;
		},&lt;br /&gt;
	rs = {&lt;br /&gt;
		format = &#039;The RuneScape Wiki also has an article on: [[rsw:%s]]&#039;,&lt;br /&gt;
		params = { &#039;rs&#039; },&lt;br /&gt;
		abbr = &#039;RuneScape&#039;,&lt;br /&gt;
		title = &#039;The RuneScape Wiki also has an article on %s.&#039;,&lt;br /&gt;
		},&lt;br /&gt;
	wp = { &lt;br /&gt;
		format = &#039;Wikipedia also has an article on: [[wikipedia:%s]]&#039;,&lt;br /&gt;
		params = { &#039;wp&#039; },&lt;br /&gt;
		abbr = &#039;Wikipedia&#039;,&lt;br /&gt;
		title = &#039;Wikipedia also has an article on %s.&#039;,&lt;br /&gt;
		},&lt;br /&gt;
	meta = {&lt;br /&gt;
		format = &#039;[[meta:%s]]&#039;,&lt;br /&gt;
		params = { &#039;meta&#039; },&lt;br /&gt;
		abbr = &#039;Weird Gloop&#039;,&lt;br /&gt;
		title = &#039;The Weird Gloop meta wiki also has an article on %s.&#039;,&lt;br /&gt;
		},&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
local order = { &#039;rs&#039;, &#039;rsc&#039;, &#039;wp&#039;, &#039;meta&#039; }&lt;br /&gt;
&lt;br /&gt;
local allparams = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local pagename = mw.title.getCurrentTitle().fullText&lt;br /&gt;
	local vals = {}&lt;br /&gt;
	-- create allparams&lt;br /&gt;
	for s,t in pairs(sites) do&lt;br /&gt;
		for _,v in ipairs(t.params) do&lt;br /&gt;
			allparams[v] = s&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- loop named params&lt;br /&gt;
	for i,v in pairs(allparams) do&lt;br /&gt;
		if args[i] and not vals[v] then&lt;br /&gt;
			vals[v] = args[i]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- loop unnamed params&lt;br /&gt;
	local i = 1&lt;br /&gt;
	local v&lt;br /&gt;
	while args[i] do&lt;br /&gt;
		v = allparams[args[i]] &lt;br /&gt;
		if v and not vals[v] then&lt;br /&gt;
			vals[v] = pagename&lt;br /&gt;
		end&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local ret = mw.html.create(&#039;div&#039;)&lt;br /&gt;
	ret:addClass(&#039;noexcerpt noprint nomobile navigation-not-searchable rs-external-header-links&#039;):css(&#039;display&#039;, &#039;none&#039;)&lt;br /&gt;
	for _,v in ipairs(order) do&lt;br /&gt;
		if vals[v] then&lt;br /&gt;
			local span = ret:tag(&#039;span&#039;)&lt;br /&gt;
			span:wikitext(string.format(sites[v].format, vals[v]))&lt;br /&gt;
				:addClass(&#039;rs-header-icon rs-header-icon-&#039;..v)&lt;br /&gt;
				:attr({&lt;br /&gt;
						[&#039;data-title&#039;] = string.format(sites[v].title, vals[v]),&lt;br /&gt;
						[&#039;data-site&#039;] = v,&lt;br /&gt;
						[&#039;data-text&#039;] = sites[v].abbr,&lt;br /&gt;
					})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Module:Hatnote&amp;diff=958</id>
		<title>Module:Hatnote</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Module:Hatnote&amp;diff=958"/>
		<updated>2023-02-10T00:55:30Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 4 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- repurposed from                                                            --&lt;br /&gt;
-- https://en.wikipedia.org/w/index.php?title=Module:Hatnote&amp;amp;oldid=1063743122 --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
-- Implements {{hatnote}} template                                            --&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Helper functions                                                           --&lt;br /&gt;
local function removeInitialColon(s)&lt;br /&gt;
	-- Removes the initial colon from a string, if present.&lt;br /&gt;
	return s:match(&#039;^:?(.*)&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.findNamespaceId(link, removeColon)&lt;br /&gt;
	-- Finds the namespace id (namespace number) of a link or a pagename. This&lt;br /&gt;
	-- function will not work if the link is enclosed in double brackets. Colons&lt;br /&gt;
	-- are trimmed from the start of the link by default. To skip colon&lt;br /&gt;
	-- trimming, set the removeColon parameter to false.&lt;br /&gt;
	checkType(&#039;findNamespaceId&#039;, 1, link, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;findNamespaceId&#039;, 2, removeColon, &#039;boolean&#039;, true)&lt;br /&gt;
	if removeColon ~= false then&lt;br /&gt;
		link = removeInitialColon(link)&lt;br /&gt;
	end&lt;br /&gt;
	local namespace = link:match(&#039;^(.-):&#039;)&lt;br /&gt;
	if namespace then&lt;br /&gt;
		local nsTable = mw.site.namespaces[namespace]&lt;br /&gt;
		if nsTable then&lt;br /&gt;
			return nsTable.id&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.disambiguate(page, disambiguator)&lt;br /&gt;
	-- Formats a page title with a disambiguation parenthetical,&lt;br /&gt;
	-- i.e. &amp;quot;Example&amp;quot; → &amp;quot;Example (disambiguation)&amp;quot;.&lt;br /&gt;
	checkType(&#039;disambiguate&#039;, 1, page, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;disambiguate&#039;, 2, disambiguator, &#039;string&#039;, true)&lt;br /&gt;
	disambiguator = disambiguator or &#039;disambiguation&#039;&lt;br /&gt;
	return mw.ustring.format(&#039;%s (%s)&#039;, page, disambiguator)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Produces standard hatnote text                                             --&lt;br /&gt;
function p.hatnote(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local s = args[1]&lt;br /&gt;
	if not s then&lt;br /&gt;
		return &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;No text specified for hatnote&amp;lt;/strong&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return p._hatnote(s, {&lt;br /&gt;
		extraclasses = args.extraclasses&lt;br /&gt;
	})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._hatnote(s, options)&lt;br /&gt;
	checkType(&#039;_hatnote&#039;, 1, s, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;_hatnote&#039;, 2, options, &#039;table&#039;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	local inline = options.inline&lt;br /&gt;
	local hatnote = mw.html.create(inline == 1 and &#039;span&#039; or &#039;div&#039;)&lt;br /&gt;
	local extraclasses&lt;br /&gt;
	if type(options.extraclasses) == &#039;string&#039; then&lt;br /&gt;
		extraclasses = options.extraclasses&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	hatnote&lt;br /&gt;
		:attr(&#039;role&#039;, &#039;note&#039;)&lt;br /&gt;
		:addClass(inline == 1 and &#039;hatnote-inline&#039; or &#039;hatnote&#039;)&lt;br /&gt;
		:addClass(extraclasses)&lt;br /&gt;
		:addClass(&#039;navigation-not-searchable&#039;)&lt;br /&gt;
		:wikitext(s)&lt;br /&gt;
	&lt;br /&gt;
	return tostring(hatnote)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Otheruses&amp;diff=953</id>
		<title>Template:Otheruses</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Otheruses&amp;diff=953"/>
		<updated>2023-02-10T00:55:29Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 10 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hatnote|{{#ifeq:{{{def}}}|no|{{#if:{{{1|}}}|For {{{1}}}, see [[{{{2}}}]].|For other uses, see [[{{{2|{{NAMESPACE}}:{{PAGENAME}} (disambiguation)}}}]].}}|This article is about {{{1}}}. {{#if:{{{2|}}}|For {{{2}}}, see [[{{{3}}}]].|For other uses, see [[{{NAMESPACE}}:{{PAGENAME}} (disambiguation)]].}}}}}}&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:Hatnote&amp;diff=942</id>
		<title>Template:Hatnote</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:Hatnote&amp;diff=942"/>
		<updated>2023-02-10T00:55:29Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 2 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Hatnote|hatnote}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=Template:External&amp;diff=939</id>
		<title>Template:External</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=Template:External&amp;diff=939"/>
		<updated>2023-02-10T00:55:29Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 6 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Top icons|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
	<entry>
		<id>https://wiki.2006scape.org/index.php?title=2006Scape_Wiki:Map&amp;diff=932</id>
		<title>2006Scape Wiki:Map</title>
		<link rel="alternate" type="text/html" href="https://wiki.2006scape.org/index.php?title=2006Scape_Wiki:Map&amp;diff=932"/>
		<updated>2023-02-10T00:55:29Z</updated>

		<summary type="html">&lt;p&gt;Dark98: 26 revisions imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{external|rs}}&lt;br /&gt;
{{otheruses|the cartography project|documentation and help creating maps|RuneScape:Create Map}}&lt;br /&gt;
&lt;br /&gt;
This page contains documentation for the cartographer project. This project is still in development and is prone to changes. This project uses the codename &#039;&#039;Doogle&#039;&#039; or &#039;&#039;Doogle Maps&#039;&#039; sometimes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! View/Create Maps !! Issues !! Development&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
Open the map: &amp;lt;maplink mapid=0 plane=0 zoom=2 x=3293 y=3139 text=&amp;quot;click here&amp;quot;/&amp;gt;&lt;br /&gt;
* OSRS production version: https://maps.runescape.wiki/osrs/&lt;br /&gt;
* RS3 production version: https://maps.runescape.wiki/rs (not online)&lt;br /&gt;
&lt;br /&gt;
[[RuneScape:Create Map|Create a map]]&lt;br /&gt;
&lt;br /&gt;
[[RuneScape:Map/mapIDs|Map IDs (for non-surface maps)]]&lt;br /&gt;
||&lt;br /&gt;
Report the problems you have here (follow link of item): &lt;br /&gt;
* [https://gitlab.com/weirdgloop/map-tile-generator/issues Tiles, map background], &lt;br /&gt;
* [https://gitlab.com/weirdgloop/doogle-maps/issues Interface on maps.runescape.wiki], &lt;br /&gt;
* [https://gitlab.com/weirdgloop/extensions/kartographer/issues wiki interface, wiki integration], &lt;br /&gt;
* [https://gitlab.com/weirdgloop/extensions/kartographer/issues other issues, if not sure], or join us on [[meta:Discord|Discord]] #cartographers)&lt;br /&gt;
&lt;br /&gt;
[[RuneScape:Map Tests|Test if maps are displayed correctly]]&lt;br /&gt;
||&lt;br /&gt;
* Design documents: https://docs.google.com/document/d/1xv7iVBkG6eWDrXFhIYi77AVodJc0D-4Aqn0ncZXKJfw&lt;br /&gt;
* Muckups (UI): https://sketch.cloud/s/Eq5O2&lt;br /&gt;
* [[meta:Discord|Discord]]: #cartographers&lt;br /&gt;
&lt;br /&gt;
Code repo&#039;s:&lt;br /&gt;
* Map tile generator: https://gitlab.com/weirdgloop/map-tile-generator&lt;br /&gt;
* Stand alone map: https://gitlab.com/weirdgloop/doogle-maps&lt;br /&gt;
* Kartographer extension for wiki: https://gitlab.com/weirdgloop/extensions/kartographer&lt;br /&gt;
&lt;br /&gt;
Want to help with the development? You are more then welcome! Join the Discord channel above and let us know.&amp;lt;br&amp;gt; &lt;br /&gt;
(You don&#039;t have to know programming, we also have a need for other skills.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example for a (quest) map:&lt;br /&gt;
&amp;lt;mapframe text=&amp;quot;Quest: Cooks Assistant&amp;quot; width=450 height=450 zoom=1 x=3188 y=3260 frameless align=&amp;quot;center&amp;quot; &amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;FeatureCollection&amp;quot;,&lt;br /&gt;
  &amp;quot;features&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;info&amp;quot;: &amp;quot;Start Quest&amp;quot;,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Talk to the cook&amp;quot;,&lt;br /&gt;
        &amp;quot;providerID&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;quest_start&amp;quot;,&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: 0&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;,&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          3208,&lt;br /&gt;
          3213,&lt;br /&gt;
          0&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },{&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Buy a bucket and a pot&amp;quot;,&lt;br /&gt;
        &amp;quot;providerID&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;general_store&amp;quot;,&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: 0&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;,&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          3211,&lt;br /&gt;
          3246,&lt;br /&gt;
          0&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },{&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Milk Cow&amp;quot;,&lt;br /&gt;
        &amp;quot;providerID&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;dairy_cow&amp;quot;,&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: 0&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;,&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          3174,&lt;br /&gt;
          3317,&lt;br /&gt;
          0&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },{&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Mill flower&amp;quot;,&lt;br /&gt;
        &amp;quot;providerID&amp;quot;: 2,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;windmill&amp;quot;,&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: 0&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;,&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          3166,&lt;br /&gt;
          3306,&lt;br /&gt;
          0&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },{&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Pick-up an egg&amp;quot;,&lt;br /&gt;
        &amp;quot;iconWikiLink&amp;quot;: &amp;quot;Egg.png&amp;quot;,&lt;br /&gt;
        &amp;quot;iconSize&amp;quot;: [15,20],&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: 0&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;,&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          3177,&lt;br /&gt;
          3306,&lt;br /&gt;
          0&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;navigation&amp;quot;: false,&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: 0&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;LineString&amp;quot;,&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          [&lt;br /&gt;
            3208,&lt;br /&gt;
            3213,&lt;br /&gt;
            0&lt;br /&gt;
          ],&lt;br /&gt;
          [&lt;br /&gt;
            3211,&lt;br /&gt;
            3246,&lt;br /&gt;
            0&lt;br /&gt;
          ],&lt;br /&gt;
          [&lt;br /&gt;
            3174,&lt;br /&gt;
            3317,&lt;br /&gt;
            0&lt;br /&gt;
          ],&lt;br /&gt;
          [&lt;br /&gt;
            3166,&lt;br /&gt;
            3306,&lt;br /&gt;
            0&lt;br /&gt;
          ],&lt;br /&gt;
          [&lt;br /&gt;
            3177,&lt;br /&gt;
            3306,&lt;br /&gt;
            0&lt;br /&gt;
          ],&lt;br /&gt;
          [&lt;br /&gt;
            3208,&lt;br /&gt;
            3213,&lt;br /&gt;
            0&lt;br /&gt;
          ]&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/mapframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Creation ==&lt;br /&gt;
=== Old School RuneScape ===&lt;br /&gt;
The map for OSRS are created using modified version of the [https://github.com/runelite/runelite RuneLite] [https://github.com/runelite/runelite/blob/master/cache/src/main/java/net/runelite/cache/MapImageDumper.java MapImageDumper] script. It uses the game cache as the source for the maps. This provides easily updatable maps.&lt;br /&gt;
The code for this can be found at: https://gitlab.com/weirdgloop/map-tile-generator&lt;br /&gt;
&lt;br /&gt;
This script creates map regions at different resolution levels:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Map region_Zoom_0.png|Zoom level 0, 64x64px, 1px per game square&lt;br /&gt;
File:Map region_Zoom_1.png|Zoom level 1, 128x128px, 4px per game square&lt;br /&gt;
File:Map region_Zoom_2.png|Zoom level 2, 256x256px, 8px per game square&lt;br /&gt;
File:Map region_Zoom_3.png|Zoom level 3, 512x512px, 16px per game square&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
These map regions include ground colour, roads, buildings, doors, walls, trees and other objects. Icons are not included in these renders.&lt;br /&gt;
&lt;br /&gt;
There map regions are then processed into maptiles that can be used for viewing the map. These tiles are all 256x256px but created using different map regions. This process uses [https://www.imagemagick.org/ ImageMagick] ([https://www.imagemagick.org/script/montage.php montage] and [https://www.imagemagick.org/script/convert.php convert]) to combine and split image to create the desired result. This process is automated using a [[wikipedia:en:Shell_script|Bash shell script]]:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Map tile_Zoom_-1.png|Zoom level -1&lt;br /&gt;
File:Map tile_Zoom_0.png|Zoom level 0&lt;br /&gt;
File:Map tile_Zoom_1.png|Zoom level 1&lt;br /&gt;
File:Map region_Zoom_2.png|Zoom level 2&lt;br /&gt;
File:Map tile_Zoom_3.png|Zoom level 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
These tiles are directly used by Leaflet to display the map.&lt;br /&gt;
&lt;br /&gt;
==== Layering Creation ====&lt;br /&gt;
[[File:OSRS_Layers_of_Map_creation_example.png|thumb|400px|Combining of tiles to create zoom layer 2 and 3 tiles and names]]&lt;br /&gt;
Combining and splitting images for use in Leaflet we have different zoom levels: 3,2,1,0,-1,-2,-3 &lt;br /&gt;
The map scales exponential (2^x) for each zoom level. This is the same as most [https://wiki.openstreetmap.org/wiki/Slippy_Map slippy map] systems / GIS systems.&lt;br /&gt;
It comes down to, if you zoom in each tile splits into 4 pieces, if you zoom out each tile is a combination of 4 pieces.&lt;br /&gt;
&lt;br /&gt;
So zoom level 4 (400%) is created by splitting the image into (2^2)*(2^2)=16 images of 256x256 like this (but this is not used on our OSRS maps):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 0  1  2  3&lt;br /&gt;
 4  5  6  7&lt;br /&gt;
 8  9 10 11&lt;br /&gt;
12 13 14 15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
At zoom level 3 (200%) is created by splitting the image into (2^1)*(2^1)=4 images of 256x256 like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0 1&lt;br /&gt;
2 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zoom level 2 (100%) just the same image (2^0)*(2^0)=1 image. (that is why in the script zoom level 2 just copies all the images (that are in the range we are working on). This is the same size as a region in OSRS.&amp;lt;br&amp;gt;&lt;br /&gt;
Zoom level 1 (50%) is created by combining 4 images (128x128) to create a 256x256 image.&amp;lt;br&amp;gt;&lt;br /&gt;
Zoom level 0 (25%) is created by combining 16 images (64x64) to create a 256x256 image.&amp;lt;br&amp;gt;&lt;br /&gt;
...etc...&lt;br /&gt;
&lt;br /&gt;
=== RuneScape 3 ===&lt;br /&gt;
Similar process as OSRS.&lt;br /&gt;
&lt;br /&gt;
== Data Collection ==&lt;br /&gt;
The map uses varies sources of data to populate the map. A list can be found here.&lt;br /&gt;
&lt;br /&gt;
=== Old School RuneScape ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Data Name !! Data Source !! Processing tool !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Map tiles || Game Cache || RuneLite || See: [[#Map_Creation|above]]&lt;br /&gt;
|-&lt;br /&gt;
| Map icons || Game Cache, Manual (user defined) || RuneLite || &lt;br /&gt;
|-&lt;br /&gt;
| Map bounds (MapID) || Game Cache, Manual (user defined) || RuneLite ||&lt;br /&gt;
|-&lt;br /&gt;
| Map labels || Game Cache, Manual (user defined) || RuneLite ||&lt;br /&gt;
|-&lt;br /&gt;
| NPC locations || RuneLite, Manual (user defined) || ? || Not implemented&lt;br /&gt;
|-&lt;br /&gt;
| Path data || Game Cache || RuneLite? || &lt;br /&gt;
|-&lt;br /&gt;
| Map Area&#039;s || Manual (user defined) || GeoJSON || Not implemented&lt;br /&gt;
|-&lt;br /&gt;
| Item spawn locations || Game Cache?, Manual (user defined)? || GeoJSON || Not implemented&lt;br /&gt;
|-&lt;br /&gt;
| Quest steps ||  Manual (user defined) || GeoJSON || Not implemented&lt;br /&gt;
|-&lt;br /&gt;
| Teleport locations ||  Manual (user defined), Game Cache?, RuneLite? || GeoJSON || Not implemented, possible source: [https://github.com/runelite/runelite/blob/master/runelite-client/src/main/java/net/runelite/client/plugins/worldmap/TeleportLocationData.java RuneLite], [https://docs.google.com/spreadsheets/d/1vPoRTxYBQeluEjmO_M4NzOOJYaGjSc88Ikuw4m55f2w/edit#gid=0 Manual], [https://docs.google.com/spreadsheets/d/16h4qJwfHFd7aBtrE4hEqRl1w23WOlQgsnijx5-_lBgs/edit Manual 2]&lt;br /&gt;
|-&lt;br /&gt;
| Map links (doors, portals, ...) || Game Cache, Manual (user defined) || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Map Implementation ==&lt;br /&gt;
The map implementation for OSRS and RS3 use the same codebase. This codebase can be found here: https://gitlab.com/weirdgloop/doogle-maps&lt;br /&gt;
For the wiki we use a modified version of the [https://www.mediawiki.org/wiki/Extension:Kartographer Kartographer extension]. This codebase can be found here: https://gitlab.com/weirdgloop/extensions/kartographer&lt;br /&gt;
&lt;br /&gt;
The map implementation uses [https://leafletjs.com/ Leaflet] for the map implementation and [https://gulpjs.com/ Gulp] for project compelation.&lt;br /&gt;
&lt;br /&gt;
=== Map tiles ===&lt;br /&gt;
The map tiles are available under the path: &amp;lt;code&amp;gt;tiles/{mapID}_{cacheVersion}/{z}/{p}_{x}_{-y}.png&amp;lt;/code&amp;gt; &lt;br /&gt;
; Definition lists&lt;br /&gt;
; mapID : the map bounds (0=RuneScape Surface, 1=Acient Cavern), mapID&#039;s smaller then 10000 are exported from game cache, mapID&#039;s larger then 10000 are user defined. Map ids can be found at [[RuneScape:Map/mapIDs]]&lt;br /&gt;
; cacheVersion: version numbering for when a map has been updated. (in format: YYYY-MM-DD_{1-9}, with the last digit being the update of that day, usualy 1 )&lt;br /&gt;
; z: zoom level, supported zoom level from -3 (zoomed out) to 3 (zoomed in), map can zoom to level 5 but this just scales the zoom level 3 images.&lt;br /&gt;
; p: planes, the floor levels, these go from 0 to 3, dungeons and basements are displaced on the map and support same planes (see mapID)&lt;br /&gt;
; x: x-coordinate of bottom left corner of map this changes depending on the zoom level. Zoom level 2 correspond with game coordinates*&lt;br /&gt;
; y/-y: y-coordinate of bottom left corner of map this changes depending on the zoom level. Zoom level 2 correspond with game coordinates*&lt;br /&gt;
&lt;br /&gt;
=== Loading data ===&lt;br /&gt;
To better support different datasets, iconsets and layers most of the data is loaded from JSON files the main file that is loaded is &#039;dataloader.json&#039;. This file contains the different mapID&#039;s, icon sets and layers. &lt;br /&gt;
&lt;br /&gt;
Loading data follows the following structure: (this might change a little bit)&lt;br /&gt;
# load dataloader.json&lt;br /&gt;
#* create dataproviders&lt;br /&gt;
#** dataprovider -&amp;gt; IconProvider (async)&lt;br /&gt;
#*** create iconclasses&lt;br /&gt;
#*** create iconlist&lt;br /&gt;
#**** icon -&amp;gt; filename (files not downloaded until used)&lt;br /&gt;
#* wait for dataproviders to be downloaded and created&lt;br /&gt;
#** baseMaps -&amp;gt; BaseLayerBuilder&lt;br /&gt;
#** overlayMaps -&amp;gt; IconLayerBuilder&lt;br /&gt;
#*** dataSource -&amp;gt; download and parse geojson (async)&lt;br /&gt;
#** add baseMaps and overlayMaps added to map controllers&lt;br /&gt;
# baseMaps displayed&lt;br /&gt;
# overlayMaps displayed when ready&lt;br /&gt;
&lt;br /&gt;
=== Config files ===&lt;br /&gt;
The file below gives more info about this format, as json does not support comments we added &#039;//&#039; before a line comment. (Note: This is not a valid json file)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;datasources&amp;quot;:[ // a list of all data sources, currently only for iconsets&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: 0, // Id used for data provider&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;icons&amp;quot;, // Type of datasource, currently only supports &#039;icons&#039;&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Map markers&amp;quot;, // Human readable name for iconset&lt;br /&gt;
      &amp;quot;dataproviders&amp;quot;: { // Files used to create data provider&lt;br /&gt;
        &amp;quot;iconclasses&amp;quot;: &amp;quot;data/MarkersClasses.json&amp;quot;, // relative or absolute path to icon classes&lt;br /&gt;
        &amp;quot;iconlist&amp;quot;: &amp;quot;data/Markers.json&amp;quot;, // relative or absolute path to list of all icons in dataset. This list can be reused by multiple providers &lt;br /&gt;
        &amp;quot;defaultIconClass&amp;quot;: &amp;quot;Marker&amp;quot; // default icon class used for &#039;iconlist&#039;, need to be defined in &#039;iconclasses&#039;-file&lt;br /&gt;
      }&lt;br /&gt;
    },{ // next data provider&lt;br /&gt;
      &amp;quot;id&amp;quot;: 1,&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;icons&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Main RS map icons&amp;quot;,&lt;br /&gt;
      &amp;quot;dataproviders&amp;quot;: {&lt;br /&gt;
        &amp;quot;iconclasses&amp;quot;: &amp;quot;data/MainIconClasses.json&amp;quot;,&lt;br /&gt;
        &amp;quot;iconlist&amp;quot;: &amp;quot;data/MainIcons.json&amp;quot;,&lt;br /&gt;
        &amp;quot;defaultIconClass&amp;quot;: &amp;quot;MapIcon&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    },{&lt;br /&gt;
     ...&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;baseMaps&amp;quot;:[ // A list of all baseMaps (background of map), only one can be displayed at any moment&lt;br /&gt;
    // mapID=0 is displayed on opening of map&lt;br /&gt;
    // Ordered in select box using mapID (might be changes to order in this file later (TODO) )&lt;br /&gt;
    // mapID order has not have to be incremental, id&#039;s can be skipped&lt;br /&gt;
    { &lt;br /&gt;
      &amp;quot;mapId&amp;quot;: 0, // mapID used when creating path for files, see above (section:Map tiles)&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;RuneScape Surface&amp;quot;, // name as displayed in select box&lt;br /&gt;
      &amp;quot;center&amp;quot;: [3225, 3219], // the center of the map, view moves here when basemap is switched&lt;br /&gt;
      &amp;quot;bounds&amp;quot;: [ [0, 0], [12800, 12800] ] // bounds of map, tiles outside of this bounds are not loaded and limits panning movement.&lt;br /&gt;
      &amp;quot;zoomLimits&amp;quot;: [-3, 5], // Zoom limits [minZoom, maxZoom]&lt;br /&gt;
      &amp;quot;defaultZoom&amp;quot;: 1, // Default zoom level, when map opens&lt;br /&gt;
      &amp;quot;maxNativeZoom&amp;quot;: 3, // Maximum zoom where there are tiles for, other zoom levels will have scaled version of max native zoom.&lt;br /&gt;
      &amp;quot;attribution&amp;quot;: &amp;quot;My Map Licence&amp;quot; // optional, attribution for this layer. Allows HTML. Default licence will always be displayed (see main config file)&lt;br /&gt;
    },{ // More items in the list&lt;br /&gt;
      &amp;quot;mapId&amp;quot;: 1,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Ancient Cavern&amp;quot;,&lt;br /&gt;
      &amp;quot;center&amp;quot;: [1760, 5344],&lt;br /&gt;
      &amp;quot;bounds&amp;quot;: [ [0, 0], [12800, 12800] ],&lt;br /&gt;
      &amp;quot;zoomLimits&amp;quot;: [-3, 5],&lt;br /&gt;
      &amp;quot;defaultZoom&amp;quot;: 1,&lt;br /&gt;
      &amp;quot;maxNativeZoom&amp;quot;: 3&lt;br /&gt;
    },{&lt;br /&gt;
      ...&lt;br /&gt;
    }&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;overlayMaps&amp;quot;:[&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: 1, // unique id used internally to track overlay&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Main map icons&amp;quot;, // name used in display in UI (TODO)&lt;br /&gt;
      &amp;quot;parentLayer&amp;quot;: &amp;quot;icons&amp;quot;, // grouping of layer under other layer (not implemented, might change)&lt;br /&gt;
      &amp;quot;displayOnLoad&amp;quot;: true, // if true, it is displayed on opening of map&lt;br /&gt;
      &amp;quot;dataSource&amp;quot;: &amp;quot;data/MainMapIconLoc.json&amp;quot; // relative or absolute path to a GeoJSON formatted file (see below)&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of datasources.dataproviders.iconclasses file. Note: because of image been down on canvas things might not work correct, please report them if you find some.&lt;br /&gt;
&#039;MainIconClasses.json&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;MapIcon&amp;quot;: { // Class name&lt;br /&gt;
    &amp;quot;options&amp;quot;: { // options as defined by: https://leafletjs.com/reference-1.4.0.html#icon&lt;br /&gt;
      // Properties &#039;iconUrl&#039; and &#039;iconSize&#039; will be overwritten by datasources.dataproviders.iconlist file&lt;br /&gt;
      &amp;quot;iconAnchor&amp;quot;: [0,0], // optional, The coordinates of the &amp;quot;tip&amp;quot; of the icon (relative to its top left corner).&lt;br /&gt;
      &amp;quot;popupAnchor&amp;quot;: [0,0], // optional, The coordinates of the point from which popups will &amp;quot;open&amp;quot;, relative to the icon anchor.&lt;br /&gt;
      &amp;quot;tooltipAnchor&amp;quot;: [0,0], // optional, The coordinates of the point from which tooltips will &amp;quot;open&amp;quot;, relative to the icon anchor.&lt;br /&gt;
      &amp;quot;shadowUrl&amp;quot;: &amp;quot;images/orb.png&amp;quot;, // optional, The URL to the icon shadow image. If not specified, no shadow image will be created.&lt;br /&gt;
      &amp;quot;shadowSize&amp;quot;: [25,25], // optional, Size of the shadow image in pixels.&lt;br /&gt;
      &amp;quot;shadowAnchor&amp;quot;: [-3.5,28.5], // optional, The coordinates of the &amp;quot;tip&amp;quot; of the shadow (relative to its top left corner) (the same as iconAnchor if not specified).&lt;br /&gt;
      &amp;quot;className&amp;quot;: &#039;&#039;, // optional, A custom class name (CSS) to assign to both icon and shadow images. Empty by default.&lt;br /&gt;
      &amp;quot;shadowUrl&amp;quot;: null // optional, relative path used as shadow object&lt;br /&gt;
    }&lt;br /&gt;
    // More properties might be added later for adding styles to markers&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;MapIconOrb&amp;quot;:{ // other Classes, classes can be unused&lt;br /&gt;
    &amp;quot;options&amp;quot;: {&lt;br /&gt;
      &amp;quot;shadowUrl&amp;quot;: &amp;quot;images/orb.png&amp;quot;,&lt;br /&gt;
      &amp;quot;shadowSize&amp;quot;: [25,25]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of datasources.dataproviders.iconlist file. &lt;br /&gt;
&#039;MainIcons.json&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;folder&amp;quot;: &amp;quot;icons/&amp;quot;, // folder prefix for all image names in this file&lt;br /&gt;
  &amp;quot;icons&amp;quot;: { // list of all icons&lt;br /&gt;
    &amp;quot;general_store&amp;quot;:{ // unique name in this data provider used in GeoJSON file to reference this icon&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;1448-0.png&amp;quot;, // filename on in folder where to find the image file&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;General store&amp;quot;, // Human readable name for icon, might be displayed later&lt;br /&gt;
      &amp;quot;width&amp;quot;: 15, // width in pixels of icon on map, if different from actual file, image will be scaled&lt;br /&gt;
      &amp;quot;height&amp;quot;: 15, // height in pixels of icon on map, if different from actual file, image will be scaled&lt;br /&gt;
      &amp;quot;iconClass&amp;quot;: &amp;quot;MapIconOrb&amp;quot; // optional, if different iconclass wanted to be used then defaultIconClass&lt;br /&gt;
      &amp;quot;wiki-link&amp;quot;: &amp;quot;General store&amp;quot;, // Not used at the moment, might change&lt;br /&gt;
      &amp;quot;category&amp;quot;: &amp;quot;others&amp;quot;, // Not used at the moment, might change&lt;br /&gt;
    }, // other icons&lt;br /&gt;
    &amp;quot;sword_shop&amp;quot;:{&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;1449-0.png&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Sword shop&amp;quot;,&lt;br /&gt;
      &amp;quot;width&amp;quot;: 15,&lt;br /&gt;
      &amp;quot;height&amp;quot;: 15,&lt;br /&gt;
      &amp;quot;wiki-link&amp;quot;: &amp;quot;Sword shop&amp;quot;,&lt;br /&gt;
      &amp;quot;category&amp;quot;: &amp;quot;others&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;magic_shop&amp;quot;:{&lt;br /&gt;
      &amp;quot;filename&amp;quot;: &amp;quot;1450-0.png&amp;quot;,&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Magic shop&amp;quot;,&lt;br /&gt;
      &amp;quot;width&amp;quot;: 15,&lt;br /&gt;
      &amp;quot;height&amp;quot;: 15,&lt;br /&gt;
      &amp;quot;wiki-link&amp;quot;: &amp;quot;Magic shop&amp;quot;,&lt;br /&gt;
      &amp;quot;category&amp;quot;: &amp;quot;others&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Map Overlay (icons, markers, shapes) ====&lt;br /&gt;
Example of overlayMaps.dataSource file:&lt;br /&gt;
&#039;MainMapIconLoc.json&#039;&lt;br /&gt;
Note: these files use the [http://geojson.org/ GeoJSON] file format with added &#039;properties&#039; fields.&lt;br /&gt;
To create these file tools like http://geojson.io could be created to make this easier.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;FeatureCollection&amp;quot;, // Start all files with a &#039;FeatureCollection&#039;&lt;br /&gt;
  &amp;quot;features&amp;quot;: [ // list of all features on map&lt;br /&gt;
    { // draw a marker&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: { // This point uses the icons in the providers, for icons not in providers look at the next items&lt;br /&gt;
        &amp;quot;providerID&amp;quot;: 1, // Id of icon provider see: datasources.id&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;general_store&amp;quot;, // name as defined in datasources.dataproviders.iconlist&lt;br /&gt;
        // if both (providerID and icon) properties are not given, or image not found, it will fall back to a grey marker&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: 0, // mapID of when to display icon can be number (0) of array of numbers ([0,1]) to display on multiple maps&lt;br /&gt;
        &amp;quot;zoom&amp;quot;: [0, 5], // optional, only display this feature between zoom levels, [minZoom, maxZoom]&lt;br /&gt;
        // Popup will only be availible is one of the following properties are added: &#039;title&#039; and/or &#039;description&#039;&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;[[Lumbridge General Store]] Buy now!&amp;quot;, // optional, only works inline wiki in &amp;lt;mapframe&amp;gt; or &amp;lt;maplink&amp;gt;, Added any wikitext and this will be displayed in popup&lt;br /&gt;
        &amp;quot;description&amp;quot;: &amp;quot;Buy your [[File:Bucket.png]] here, only 2 gp&amp;quot; // optional, only works inline wiki in &amp;lt;mapframe&amp;gt; or &amp;lt;maplink&amp;gt;, Added any wikitext and this will be displayed in popup&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;, // a point is a marker&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          3203, // x coordinate&lt;br /&gt;
          3208, // y coordinate&lt;br /&gt;
          0 // plane&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    { // other points&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: { // This point uses an image from the wiki as its icon&lt;br /&gt;
        &amp;quot;iconWikiLink&amp;quot;: &amp;quot;Egg.png&amp;quot;, // Link to image, not this value is case sensitive&lt;br /&gt;
        &amp;quot;iconSize&amp;quot;: [15,20], // The size of the icon on the map [width,height], if image is a different size is will be scaled&lt;br /&gt;
        // if both (iconWikiLink and iconSize) properties are not given it will fall back to a grey marker&lt;br /&gt;
        &amp;quot;mapID&amp;quot;: [0,1]&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;Point&amp;quot;,&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          3223,&lt;br /&gt;
          3262,&lt;br /&gt;
          0&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    },&lt;br /&gt;
    { // a line on map&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;Feature&amp;quot;,&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;navigation&amp;quot;: false // optional, if true, use path-finding tool to draw path, if false, use normal (straight) line&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;geometry&amp;quot;: {&lt;br /&gt;
        &amp;quot;type&amp;quot;: &amp;quot;LineString&amp;quot;, // a line in geojson&lt;br /&gt;
        &amp;quot;coordinates&amp;quot;: [&lt;br /&gt;
          [3208,3213,0], // coordinates of all the points in line&lt;br /&gt;
          [3211,3246,0],&lt;br /&gt;
          [3174,3317,0],&lt;br /&gt;
          [3166,3306,0],&lt;br /&gt;
          [3177,3306,0],&lt;br /&gt;
          [3208,3213,0] // this happens to be a closed path, but doesn&#039;t have to be&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    // for more features look in GeoJSON standard, other features include: Polygon, MultiPoint, MultiLineString and MultiPolygon&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main config file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;basePathURL&amp;quot;: &amp;quot;https://chisel.weirdgloop.org/&amp;quot;, // path prefix for pathfinding. Path suffix example: &amp;quot;/pathfinder/path.json?...&amp;quot;&lt;br /&gt;
	&amp;quot;baseTileURL&amp;quot;: &amp;quot;https://maps.runescape.wiki/osrs/&amp;quot;, // path prefix (appended by tileURLFormat) for downloading base maps&lt;br /&gt;
  &amp;quot;tileURLFormat&amp;quot;: &amp;quot;tiles/{mapID}_{cacheVersion}/{z}/{p}_{x}_{-y}.png&amp;quot;, // format for how the tiles are stored&lt;br /&gt;
  &amp;quot;attribution&amp;quot;: &amp;quot;&amp;lt;a href=\&amp;quot;https://weirdgloop.org/licensing/\&amp;quot; target=\&amp;quot;_blank\&amp;quot;&amp;gt;License&amp;lt;/a&amp;gt;&amp;quot;, // attribution field on map&lt;br /&gt;
	&amp;quot;dataloaderFile&amp;quot;: &amp;quot;https://maps.runescape.wiki/osrs/data/dataloader.json&amp;quot;, // path to the main dataloader file&lt;br /&gt;
  &amp;quot;wikiImageURL&amp;quot;: &amp;quot;https://oldschool.runescape.wiki/images/&amp;quot; // path prefix for image used on overlayMaps. Path suffix example: &amp;quot;/4/41/Old_School_RuneScape_logo.png&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The future ==&lt;br /&gt;
There are many features we still have in mind and/or are working on. Here you find a short list of some of them and there status.&lt;br /&gt;
Questions about these features can always be asked in the Discord channel.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Project !! Description !! Status !! Who to ask&lt;br /&gt;
|-&lt;br /&gt;
| Path finding &lt;br /&gt;
|| How to get from point A to point be as fast as possible? Navigation with teleports, items, [[sailing]] ;) or just running.&amp;lt;br&amp;gt; Tailored to the transportations you have unlocked. &lt;br /&gt;
|| Working prototype, need more data&lt;br /&gt;
|| [[User:Cook_Me_Plox]]&lt;br /&gt;
|-&lt;br /&gt;
| Search &lt;br /&gt;
|| Type in a location and find it on the map. &lt;br /&gt;
|| Concept worked out, inactive&lt;br /&gt;
|| /&lt;br /&gt;
|-&lt;br /&gt;
| Maps for RS3 &lt;br /&gt;
|| Maps for RS3 &lt;br /&gt;
|| Active&lt;br /&gt;
|| [[User:Cook_Me_Plox]]&lt;br /&gt;
|-&lt;br /&gt;
| Labels &lt;br /&gt;
|| Labels for various locations on the map. Like cities and towns.&lt;br /&gt;
|| Inactive, but work is partly done&lt;br /&gt;
|| [[User:Ralpha]]&lt;br /&gt;
|-&lt;br /&gt;
| GeoJSON.io for RS &lt;br /&gt;
|| Create maps using a variant of http://geojson.io for RS&lt;br /&gt;
|| [https://mejrs.github.io/ Working prototype]&lt;br /&gt;
|| [https://runescape.wiki/w/User:Mejrs User:Mejrs]&lt;br /&gt;
|-&lt;br /&gt;
| ...&lt;br /&gt;
|| Have an other idea, let us know!&lt;br /&gt;
|| Always open for suggestions&lt;br /&gt;
|| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dark98</name></author>
	</entry>
</feed>