<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ACombat_Only_Pure%2FCombat_Achievements</id>
	<title>Module:Combat Only Pure/Combat Achievements - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ACombat_Only_Pure%2FCombat_Achievements"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Combat_Only_Pure/Combat_Achievements&amp;action=history"/>
	<updated>2026-04-26T19:20:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Combat_Only_Pure/Combat_Achievements&amp;diff=34452&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;local tables = require(&#039;Module:Tables&#039;) local VariablesLua = mw.ext.VariablesLua local p = {}   local whitelist = { 	[&quot;... &#039;til Dawn&quot;] = true,  	[&quot;A Demon&#039;s Best Friend&quot;] = true,  	[&quot;A Frozen Foe from the Past&quot;] = true,  	[&quot;A Frozen King&quot;] = true,  	[&quot;A Greater Foe&quot;] = true,  	[&quot;A Long Trip&quot;] = true,  	[&quot;A Near Miss!&quot;] = true,  	[&quot;A Not So Special Lizard&quot;] = true,  	[&quot;A Scaley Encounter&quot;] = true,  	[&quot;A Slithery Encounter&quot;] = true,  	[&quot;A Slow Death&quot;] = true,  	[&quot;A Smashin...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Combat_Only_Pure/Combat_Achievements&amp;diff=34452&amp;oldid=prev"/>
		<updated>2024-10-16T23:00:52Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local tables = require(&amp;#039;Module:Tables&amp;#039;) local VariablesLua = mw.ext.VariablesLua local p = {}   local whitelist = { 	[&amp;quot;... &amp;#039;til Dawn&amp;quot;] = true,  	[&amp;quot;A Demon&amp;#039;s Best Friend&amp;quot;] = true,  	[&amp;quot;A Frozen Foe from the Past&amp;quot;] = true,  	[&amp;quot;A Frozen King&amp;quot;] = true,  	[&amp;quot;A Greater Foe&amp;quot;] = true,  	[&amp;quot;A Long Trip&amp;quot;] = true,  	[&amp;quot;A Near Miss!&amp;quot;] = true,  	[&amp;quot;A Not So Special Lizard&amp;quot;] = true,  	[&amp;quot;A Scaley Encounter&amp;quot;] = true,  	[&amp;quot;A Slithery Encounter&amp;quot;] = true,  	[&amp;quot;A Slow Death&amp;quot;] = true,  	[&amp;quot;A Smashin...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local tables = require(&amp;#039;Module:Tables&amp;#039;)&lt;br /&gt;
local VariablesLua = mw.ext.VariablesLua&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local whitelist = {&lt;br /&gt;
	[&amp;quot;... &amp;#039;til Dawn&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Demon&amp;#039;s Best Friend&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Frozen Foe from the Past&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Frozen King&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Greater Foe&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Long Trip&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Near Miss!&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Not So Special Lizard&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Scaley Encounter&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Slithery Encounter&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Slow Death&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Smashing Time&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;A Timely Snack&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Alchemical Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Alchemical Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Alchemical Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Alchemical Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Alcleanical Hydra&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Anti-Bite Mechanics&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Anticoagulants&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Antifire Protection&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Anvil No More&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Arooo No More&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Ash Collector&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Attack,  Step,  Wait&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Avoiding Those Little Arms&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Back in My Day...&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Back to the Wall&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Barrows Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Barrows Novice&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Big,  Black and Fiery&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Blind Spot&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Blizzard Dodger&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Brutal,  Big,  Black and Firey&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Bryophyta Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Bryophyta Novice&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Budget Setup&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Callisto Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Callisto Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Can You Dance?&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Can&amp;#039;t Drain This&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Can&amp;#039;t Touch Me&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Can&amp;#039;t Wake Up&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Cerberus Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Cerberus Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric (5-Scale) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric (5-Scale) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric (Solo) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric (Solo) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric (Trio) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric (Trio) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric Grandmaster&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM (5-Scale) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM (5-Scale) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM (Solo) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM (Solo) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM (Trio) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM (Trio) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM Grandmaster&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chambers of Xeric: CM Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chaos Elemental Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chaos Elemental Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chaos Fanatic Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chaos Fanatic Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chicken Killer&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Chitin Penetrator&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Claw Clipper&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Colosseum Grand Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Colosseum Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Colosseum Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Corporeal Beast Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Corporeal Beast Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Crazy Archaeologist Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Crazy Archaeologist Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Crush Hour&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Cryo No More&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dagannoth Prime Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dagannoth Prime Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dagannoth Rex Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dagannoth Rex Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dagannoth Supreme Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dagannoth Supreme Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dancing with Statues&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Death to the Archer King&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Death to the Seer King&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Death to the Warrior King&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Defence Matters&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Defence? What Defence?&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Demon Evasion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Demon Whisperer&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Demonbane Weaponry&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Demonbane Weaponry II&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Demonic Defence&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Demonic Showdown&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Demonic Weakening&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Denied&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Denying the Healers&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Denying the Healers II&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Don&amp;#039;t Flame Me&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Don&amp;#039;t Look at Me!&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Don&amp;#039;t Look at the Eclipse&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Done before Dusk&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dreamland Express&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Dust Seeker&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Efficient Pest Control&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Explosion!&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Facing Jad Head-on&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Facing Jad Head-on II&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Facing Jad Head-on III&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Facing Jad Head-on IV&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Faithless Crypt Run&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Fight Caves Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Fight Caves Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Fight Caves Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Fight Caves Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Fighting as Intended&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Fighting as Intended II&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;From Dusk...&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;From One King to Another&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Furball&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;General Graardor Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;General Graardor Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;General Showdown&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Ghost Buster&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Giant Mole Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Giant Mole Novice&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Granite Footwork&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Grotesque Guardians Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Grotesque Guardians Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Grotesque Guardians Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Grotesque Guardians Speed-Trialist&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Grotesque Guardians Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Guardians No More&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Half-Way There&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Hard Hitter&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Hard Mode? Completed It&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Harder Mode I&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Harder Mode II&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Harder Mode III&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Hazard Prevention&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Heal No More&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Hide Penetration&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Hoarder&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Hot on Your Feet&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;I Brought Mine Too&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;I Can&amp;#039;t Reach That&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;I Would Simply React&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;I was here first!&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;I&amp;#039;d Rather Not Learn&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Immortal Raid Team&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Immortal Raider&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Inferno Grandmaster&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Inferno Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Inspect Repellent&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Into the Den of Giants&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;It Wasn&amp;#039;t a Fluke&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Jad? What Are You Doing Here?&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Just Like That&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Just To Be Safe&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;K&amp;#039;ril Tsutsaroth Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;K&amp;#039;ril Tsutsaroth Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Kalphite Queen Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Kalphite Queen Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Keep Away&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Kill It with Fire&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;King Black Dragon Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;King Black Dragon Novice&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Krakan&amp;#039;t Hurt Me&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Kraken Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Lightning Lure&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Mage of the Ruins&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Master of Broad Weaponry&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Mimic Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Mixing Correctly&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Morytania Only&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Multi-Style Specialist&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Mutta-diet&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Newspaper Enthusiast&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nibbler Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nibblers,  Begone!&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare (5-Scale) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare (5-Scale) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare (5-Scale) Speed-Trialist&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare (Solo) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare (Solo) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare (Solo) Speed-Trialist&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nightmare Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;No Luck Required&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;No Pressure&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;No Time for Death&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;No Time for a Drink&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;No-Pillar&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Not So Great After All&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Noxious Foe&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Nylo Sniper&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Obor Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Obor Novice&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;One Hundred Tentacles&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;One-off&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Ourg Freezer&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Ourg Freezer II&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Ourg Killer&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Pack Like a Yak&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Pass It On&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Bloat&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Footwork&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Grotesque Guardians&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Grotesque Guardians II&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Maiden&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Nightmare&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Nylocas&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Olm (Solo)&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Olm (Trio)&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Phosani&amp;#039;s Nightmare&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Scurrius&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Sotesteg&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Theatre&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Verzik&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfect Xarpus&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Perfectly Balanced&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Personal Space&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Phosani&amp;#039;s Grandmaster&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Phosani&amp;#039;s Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Phosani&amp;#039;s Speedchaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Phosani&amp;#039;s Speedrunner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Phosani&amp;#039;s Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Playing with Jads&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Playing with Lasers&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Pop It&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Pray for Success&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Prayer Smasher&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Praying to the Gods&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Preparation Is Key&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Prison Break&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Protection from Moss&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Putting It Olm on the Line&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Quick Cutter&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Rapid Succession&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Ready to Pounce&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Redemption Enthusiast&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Reinforcements&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Rockin&amp;#039; around the croc&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Royal Affairs&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Sarachnis Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Sarachnis Novice&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Scorpia Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Scorpia Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Scurrius Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Scurrius Novice&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Shayzien Protector&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Shayzien Specialist&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Showboating&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Sit Rat&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Skotizo Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Skotizo Champion&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Sleep Tight&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Sleeping Giant&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Slow Dancing in the Sand&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Sorry,  What Was That?&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Spec&amp;#039;d Out&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Sportsmanship&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Squashing the Giant&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Static Awareness&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Stop Drop and Roll&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Stop Right There!&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Supplies? Who Needs &amp;#039;em?&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Team Work Makes the Dream Work&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Ten-tacles&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Terrible Parent&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The Bane of Demons&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The Demonic Punching Bag&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The Flame Skipper&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The Flincher&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The Floor Is Lava&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The II Jad Challenge&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The IV Jad Challenge&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The VI Jad Challenge&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;The Walking Volcano&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre (4-Scale) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre (4-Scale) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre (5-Scale) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre (5-Scale) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre (Duo) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre (Trio) Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre (Trio) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre of Blood Grandmaster&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre of Blood Master&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre of Blood Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre of Blood: HM Grandmaster&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre of Blood: SM Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre of Blood: SM Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre: HM (4-Scale) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre: HM (5-Scale) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Theatre: HM (Trio) Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Thermonuclear Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;They Won&amp;#039;t Expect This&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Together We&amp;#039;ll Fall&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Toppling the Diarchy&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Two-Down&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;TzHaar-Ket-Rak&amp;#039;s Speed-Chaser&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;TzHaar-Ket-Rak&amp;#039;s Speed-Runner&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;TzHaar-Ket-Rak&amp;#039;s Speed-Trialist&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Undying Raid Team&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Undying Raider&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Unnecessary Optimization&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Unrequired Antifire&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Unrequired Antipoisons&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Up for the Challenge&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Venenatis Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Venenatis Veteran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Vet&amp;#039;eran&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Vet&amp;#039;ion Adept&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Wasn&amp;#039;t Even Close&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Whack-a-Mole&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Who Is the King Now?&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Why Are You Running?&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Working Overtime&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;Yarr No More&amp;quot;] = true, &lt;br /&gt;
	[&amp;quot;You Didn&amp;#039;t Say Anything About a Bat&amp;quot;] = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local prose = {&lt;br /&gt;
	monster = &amp;#039;&amp;#039;,&lt;br /&gt;
	taskamount = 0,&lt;br /&gt;
	ptsamount = 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local headers = {&lt;br /&gt;
	monster = &amp;quot;Monster&amp;quot;,&lt;br /&gt;
	name = &amp;quot;Name&amp;quot;,&lt;br /&gt;
	description = { text = &amp;quot;Description&amp;quot;, attr = { class = &amp;#039;unsortable&amp;#039; } },&lt;br /&gt;
	tier = &amp;quot;Tier&amp;quot;,&lt;br /&gt;
	_type = &amp;quot;Type&amp;quot;,&lt;br /&gt;
	completion = &amp;#039;&amp;lt;span style=&amp;quot;cursor:help; border-bottom:1px dotted;&amp;quot; title=&amp;quot;Estimated percentage of players (with at least one CA completion) who have completed this achievement, based on wiki crowdsourcing&amp;quot;&amp;gt;Comp%&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local tiers = {&lt;br /&gt;
	easy = 1,&lt;br /&gt;
	medium = 2,&lt;br /&gt;
	hard = 3,&lt;br /&gt;
	elite = 4,&lt;br /&gt;
	master = 5,&lt;br /&gt;
	grandmaster = 6&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function getData(category)&lt;br /&gt;
	local out = {}&lt;br /&gt;
	local params = {&lt;br /&gt;
		category[1],&lt;br /&gt;
		&amp;quot;?Combat Achievement JSON&amp;quot;,&lt;br /&gt;
		limit = 1000&lt;br /&gt;
	}&lt;br /&gt;
	local data = mw.smw.ask(params) or {}&lt;br /&gt;
	&lt;br /&gt;
	for _, task in ipairs(data) do&lt;br /&gt;
		local raw = task[&amp;#039;Combat Achievement JSON&amp;#039;]&lt;br /&gt;
		if raw ~= nil then&lt;br /&gt;
			local json = mw.text.jsonDecode(raw)&lt;br /&gt;
			table.insert(out, json)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function sortByTierAndMonster(k1, k2) &lt;br /&gt;
	local k1_tier = tiers[string.lower(k1.tier)]&lt;br /&gt;
	local k2_tier = tiers[string.lower(k2.tier)]&lt;br /&gt;
	if k1_tier &amp;lt; k2_tier then&lt;br /&gt;
		return true&lt;br /&gt;
	elseif k1_tier &amp;gt; k2_tier then&lt;br /&gt;
		return false&lt;br /&gt;
	elseif k1.monster &amp;lt; k2.monster then&lt;br /&gt;
		return true&lt;br /&gt;
	elseif k1.monster &amp;gt; k2.monster then&lt;br /&gt;
		return false&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function completionCell(id)&lt;br /&gt;
	local completion_percent = mw.loadJsonData(&amp;quot;Module:Combat Achievements/completion.json&amp;quot;)[tonumber(id)]&lt;br /&gt;
	if (completion_percent ~= nil) then&lt;br /&gt;
		local color = &amp;quot;&amp;quot;&lt;br /&gt;
		if (completion_percent &amp;lt; 0.1) then&lt;br /&gt;
			completion_percent = &amp;quot;&amp;lt;0.1&amp;quot;&lt;br /&gt;
			color = &amp;quot;red&amp;quot;&lt;br /&gt;
		elseif (completion_percent &amp;lt; 1) then&lt;br /&gt;
			color = &amp;quot;orange&amp;quot;&lt;br /&gt;
		elseif (completion_percent &amp;lt; 10) then&lt;br /&gt;
			color = &amp;quot;yellow&amp;quot;&lt;br /&gt;
		elseif (completion_percent &amp;lt; 50) then&lt;br /&gt;
			color = &amp;quot;green&amp;quot;&lt;br /&gt;
		elseif (completion_percent &amp;lt;= 100) then&lt;br /&gt;
			color = &amp;quot;blue&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		return {text = tostring(completion_percent)..&amp;#039;%&amp;#039;, class = &amp;quot;table-bg-&amp;quot; .. color}&lt;br /&gt;
	else&lt;br /&gt;
		return {text = &amp;quot;N/A&amp;quot;, class=&amp;quot;table-na nohighlight&amp;quot;}&lt;br /&gt;
	end	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTable(data, columns)&lt;br /&gt;
	local taskTable = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;wikitable lighttable sortable qc-active ca-tasks&amp;#039;):cssText(&amp;#039;max-width: 800px&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	local columnValues = {}&lt;br /&gt;
	for _, v in ipairs(columns) do&lt;br /&gt;
		table.insert(columnValues, headers[v])&lt;br /&gt;
	end&lt;br /&gt;
	tables._row(taskTable:tag(&amp;#039;tr&amp;#039;), columnValues, true)&lt;br /&gt;
	&lt;br /&gt;
	for _, v in ipairs(data) do&lt;br /&gt;
		if whitelist[v.name] then&lt;br /&gt;
			local rowData = {&lt;br /&gt;
				monster = v.monster == &amp;quot;None&amp;quot; and &amp;quot;N/A&amp;quot; or string.format(&amp;quot;[[%s]]&amp;quot;, v.monster),&lt;br /&gt;
				name = string.format(&amp;quot;[[%s]]&amp;quot;, v.name),&lt;br /&gt;
				description = v.task,&lt;br /&gt;
				tier = { text = ( v.tier .. &amp;#039;&amp;amp;nbsp;(&amp;#039; .. tiers[v.tier:lower()] .. &amp;#039;&amp;amp;nbsp;&amp;#039; .. (tiers[v.tier:lower()] == 1 and &amp;#039;pt&amp;#039; or &amp;#039;pts&amp;#039;) .. &amp;#039;)&amp;#039; ), attr = { [&amp;#039;data-sort-value&amp;#039;] = tiers[v.tier:lower()] } },&lt;br /&gt;
				_type = v[&amp;quot;type&amp;quot;],&lt;br /&gt;
				completion = completionCell(v.id)&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			local row = {}&lt;br /&gt;
			for _, column in ipairs(columns) do&lt;br /&gt;
				table.insert(row, rowData[column])&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local htmlRow = taskTable:tag(&amp;#039;tr&amp;#039;):attr(&amp;#039;data-ca-task-id&amp;#039;, v.id)&lt;br /&gt;
			tables._row(htmlRow, row, false)&lt;br /&gt;
			&lt;br /&gt;
			prose.taskamount = prose.taskamount + 1&lt;br /&gt;
			prose.ptsamount = prose.ptsamount + tiers[v.tier:lower()]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return taskTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.list(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local columns = {&amp;quot;name&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;_type&amp;quot;}&lt;br /&gt;
	local category = {}&lt;br /&gt;
	if args[1] == &amp;#039;all&amp;#039; then&lt;br /&gt;
		category = {&amp;quot;[[Category:Easy Combat Achievements tasks||Medium Combat Achievements tasks||Hard Combat Achievements tasks||Elite Combat Achievements tasks||Master Combat Achievements tasks||Grandmaster Combat Achievements tasks]]&amp;quot;}&lt;br /&gt;
		table.insert(columns, 1, &amp;quot;monster&amp;quot;)&lt;br /&gt;
		table.insert(columns, &amp;quot;tier&amp;quot;)&lt;br /&gt;
	elseif tiers[string.lower(args[1])] ~= nil then&lt;br /&gt;
		-- Get all Combat Achievement tasks for a tier and display its monster&lt;br /&gt;
		category = {string.format(&amp;quot;[[Category:%s Combat Achievements tasks]]&amp;quot;, args[1])}&lt;br /&gt;
		table.insert(columns, 1, &amp;quot;monster&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		-- Get all Combat Achievement tasks for a boss and display its tier&lt;br /&gt;
		category = {string.format(&amp;quot;[[Category:%s achievements]]&amp;quot;, args[1])}&lt;br /&gt;
		table.insert(columns, &amp;quot;tier&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.insert(columns, &amp;quot;completion&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	prose.monster = args.mobname or args[1]&lt;br /&gt;
	&lt;br /&gt;
	local data = getData(category)&lt;br /&gt;
	table.sort(data, sortByTierAndMonster)&lt;br /&gt;
	&lt;br /&gt;
	local rettbl = tostring( makeTable(data, columns) )&lt;br /&gt;
	local strplural = (prose.taskamount ~= 1)&lt;br /&gt;
	local moduleInvokedOnce = VariablesLua.varexists(&amp;#039;caListModuleInvoked&amp;#039;)&lt;br /&gt;
	local retstr = ( string.find( mw.title.getCurrentTitle().text, &amp;#039;Combat Achievements&amp;#039;) and &amp;#039;&amp;#039; or&lt;br /&gt;
		string.format(&amp;#039;&amp;lt;p&amp;gt;There %s %s %s task%s (totalling %s point%s) available for %s.&amp;lt;/p&amp;gt;&amp;#039;,&lt;br /&gt;
			(strplural and &amp;#039;are&amp;#039; or &amp;#039;is&amp;#039;),&lt;br /&gt;
			prose.taskamount,&lt;br /&gt;
			(moduleInvokedOnce and &amp;#039;Combat Achievement&amp;#039; or &amp;#039;[[Combat Achievements|Combat Achievement]]&amp;#039;),&lt;br /&gt;
			(strplural and &amp;#039;s&amp;#039; or &amp;#039;&amp;#039;),&lt;br /&gt;
			prose.ptsamount,&lt;br /&gt;
			(prose.ptsamount ~= 1 and &amp;#039;s&amp;#039; or &amp;#039;&amp;#039;),&lt;br /&gt;
			prose.monster&lt;br /&gt;
		) )&lt;br /&gt;
	&lt;br /&gt;
	VariablesLua.vardefine( &amp;#039;caListModuleInvoked&amp;#039;, 0 )&lt;br /&gt;
&lt;br /&gt;
	return retstr .. rettbl&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>