<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flexiblesurvival.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Strongbird</id>
	<title>Flexible Survival - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flexiblesurvival.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Strongbird"/>
	<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/w/Special:Contributions/Strongbird"/>
	<updated>2026-04-16T08:43:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User:Songbird&amp;diff=609259</id>
		<title>User:Songbird</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User:Songbird&amp;diff=609259"/>
		<updated>2017-08-15T18:16:46Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Staffer known as Song in-game.&lt;br /&gt;
&lt;br /&gt;
Dedicated writer. Versed in stringparsing and talkscript.&lt;br /&gt;
&lt;br /&gt;
Alternate wiki account is Strongbird.&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=User:Strongbird&amp;diff=609258</id>
		<title>User:Strongbird</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=User:Strongbird&amp;diff=609258"/>
		<updated>2017-08-15T18:16:42Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: Created page with &amp;quot;Alternate wiki account of Songbird, known as Song in-game.  Largely not used anymore.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alternate wiki account of Songbird, known as Song in-game.&lt;br /&gt;
&lt;br /&gt;
Largely not used anymore.&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Abomination&amp;diff=609246</id>
		<title>Abomination</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Abomination&amp;diff=609246"/>
		<updated>2017-08-15T06:03:37Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You&#039;d prefer to meet this in a dark alley. At least then you wouldn&#039;t see it.&lt;br /&gt;
{{Monster&lt;br /&gt;
|arms=[[Wild Swing]]&lt;br /&gt;
|tail=[[Gigantic Body Slam]]&lt;br /&gt;
|head=[[Frenzy]]&lt;br /&gt;
|legs=[[Foot Stomp]]&lt;br /&gt;
|skin=[[Thick Hide]]&lt;br /&gt;
|torso=[[Juggernaut]], [[Muscle Mass]]&lt;br /&gt;
|groin=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Monsters]] [[Category:Supports Kemonomimi]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Abomination&amp;diff=609245</id>
		<title>Abomination</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Abomination&amp;diff=609245"/>
		<updated>2017-08-15T06:03:23Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You&#039;d prefer to meet this in a dark alley. At least then you wouldn&#039;t see it.&lt;br /&gt;
{{Monster&lt;br /&gt;
|arms=[[Wild Swing]]&lt;br /&gt;
|ass=[[Gigantic Body Slam]]&lt;br /&gt;
|head=[[Frenzy]]&lt;br /&gt;
|legs=[[Foot Stomp]]&lt;br /&gt;
|skin=[[Thick Hide]]&lt;br /&gt;
|torso=[[Juggernaut]], [[Muscle Mass]]&lt;br /&gt;
|groin=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Monsters]] [[Category:Supports Kemonomimi]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Whimsical_Twinkubus&amp;diff=609244</id>
		<title>Whimsical Twinkubus</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Whimsical_Twinkubus&amp;diff=609244"/>
		<updated>2017-08-15T06:00:38Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: Created page with &amp;quot;{{Monster |head=Transfixing Gaze |torso=Vitality |arms=Drain Vitae |legs=Skitter |tail=Crushing Coils, Erotic Dance |skin= |groin=Biting Wit }}  Kn...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Monster&lt;br /&gt;
|head=[[Transfixing Gaze]]&lt;br /&gt;
|torso=[[Vitality]]&lt;br /&gt;
|arms=[[Drain Vitae]]&lt;br /&gt;
|legs=[[Skitter]]&lt;br /&gt;
|tail=[[Crushing Coils]], [[Erotic Dance]]&lt;br /&gt;
|skin=&lt;br /&gt;
|groin=[[Biting Wit]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Known to cherish teasing foreplay and rough anal reaming alike.&lt;br /&gt;
&lt;br /&gt;
==Gender==&lt;br /&gt;
Male&lt;br /&gt;
&lt;br /&gt;
[[Category:Supports Arm Divider]][[Category:Supports Tail Divider]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=NPCs_(Multiplayer)&amp;diff=609243</id>
		<title>NPCs (Multiplayer)</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=NPCs_(Multiplayer)&amp;diff=609243"/>
		<updated>2017-08-15T05:50:53Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Note from Song: This page is a WIP. Please be patient while it is organized and expanded upon.&lt;br /&gt;
&lt;br /&gt;
There are a wide array of non-player characters (NPCs) in the game for the player to interact with. Some of these are friendly, others are merely ambivalent about the player. Certain NPCs can provide the player with quests, often with a reward to be earned.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alphabetical Lists of NPCs:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC (Multiplayer)|All NPCs]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC: Male (MP)|Male]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC: Female (MP)|Female]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC: Herm (MP)|Hermaphrodite]]&lt;br /&gt;
&lt;br /&gt;
For Single Player NPCs, see [[NPCs_(Single_Player)|here]]&lt;br /&gt;
&lt;br /&gt;
==Ember Sanctum==&lt;br /&gt;
===[[Ember Matriarch (MP)|Ember Matriarch]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Ember Matriarch]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==Graveyard==&lt;br /&gt;
===[[Caretaker]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==Gryphon Nest==&lt;br /&gt;
===[[Obsidian]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shadow Dragon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Violet]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Blue Gryphon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==Gun Shop Shelter==&lt;br /&gt;
===[[Alice]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Gun Bunny]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==Hotel Oblivion==&lt;br /&gt;
===[[Bound Egyptian Mau]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Egyptian Mau]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Charlie]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; German Shepherd (actual animal)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Ellie]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Latex Fox]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Presenting Mephit]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Skunk&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==Husky Den==&lt;br /&gt;
===[[Chris (MP)|Chris]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Alpha Husky (MP)]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Sarah_(MP)|Sarah]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Female Husky]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Saul]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Alpha Husky (MP)]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Twinky]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Quilled Tousky]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==Rev&#039;n Rave Techno Safari==&lt;br /&gt;
===[[Mortimitri]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Slut Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==RSX Solutions==&lt;br /&gt;
===[[Alton]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Agent Jackson]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Colonel Arnold]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Doctor Browning]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Major Jack]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Maxwell Power]] (Danger Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Mr Simon]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===Old Soldier===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Paul Metoxis]] (Pheromone Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Penelope]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Valkyrie]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Jennifer Trilby]] (Requisitions Clerk)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]] (with cat ears and tail)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Research Lead Renley]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Sally (MP)|Sally]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Valkyrie]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Venice]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Goo Girl]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==Secluded Home==&lt;br /&gt;
===[[Obsidian]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shadow Dragon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==Slut Rat Den==&lt;br /&gt;
===[[Axel]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Slut Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Dmitri]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Slut Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==The Devil&#039;s Bar==&lt;br /&gt;
===[[Casey]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Whimsical Twinkubus]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Tess]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Busty Succubus]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==The Mall==&lt;br /&gt;
===[[Lisa (MP)|Lisa]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mouse Taur]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Missy]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mall Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Rod (MP)|Rod]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mall Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Smiley]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mall Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==The Trick or Treat Motel==&lt;br /&gt;
===Animate Pumpkin Patch===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Some plantlike amalgamation&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; Bona Fide Tentaclebeast&lt;br /&gt;
&lt;br /&gt;
===Kurt===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Wolf Beast]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===Sobek===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Crocodile&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Theodore the Corgi]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Welsh Corgi]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===Vampire Bat Twins===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Vampire Bat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]] and [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Witch===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Cat&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==The Zoo==&lt;br /&gt;
===[[Kangaroo God]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Kangaroo]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==Zephyr Inc==&lt;br /&gt;
===[[Agent Jonathan]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Blue Gryphon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Alex (MP)|Alex]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Zebra]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Ron Danger]] (Danger Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]] (with a [[House Cat]] head)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Dr Joan]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shy Gecko]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Eureka Pilot===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Ian the Shark]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Bull Shark]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Louis Ledoyen]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Salamander Femme]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[James Jorgen]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Plump Tigress]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; Shemale&lt;br /&gt;
&lt;br /&gt;
===[[Mike the Chopper Pilot]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Blue Gryphon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Miura Mercedes]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shadow Vixen]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Mona Nasawri]] (Pheromone Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Noel Winters]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Jeffrey Lebowski]] (Requisitions Clerk)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Pampered Poodle]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Robert]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Zebra]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Sandra]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]] (with Kemonomimi [[Bunny Girl]] features)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Scarlet Sebb]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Female Widow Convert]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Tactics Soldier===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Skunk Beast]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Teacher Jenny]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Skunk Girl]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Workshop Technician===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Multiplayer]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Dmitri&amp;diff=609242</id>
		<title>Dmitri</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Dmitri&amp;diff=609242"/>
		<updated>2017-08-15T05:29:31Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: Created page with &amp;quot;{{NPC(MP) |species=Slut Rat |gender=Herm |location=Slut Rat Den |sex=No |infectious=No }} ==Appearance== A voluptuous Slut Rat with a thic...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Slut Rat]]&lt;br /&gt;
|gender=[[:Category:NPC: Herm_(MP)|Herm]]&lt;br /&gt;
|location=[[Slut Rat Den]]&lt;br /&gt;
|sex=No&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
A voluptuous Slut Rat with a thick Russian accent, Dmitri Novikov is an intelligent and articulate woman whose cunning wit is cleverly belied by her punk-themed appearance. Past experience in arms trafficking has lent her a tongue as silver as the studs in her ears, and with a voice that cuts through the crowd, she&#039;s quickly risen to a position of power among the den.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Herm_(MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Axel&amp;diff=609241</id>
		<title>Axel</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Axel&amp;diff=609241"/>
		<updated>2017-08-15T05:29:29Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: Created page with &amp;quot;{{NPC(MP) |species=Slut Rat |gender=Herm |location=Slut Rat Den |sex=No |infectious=No }} ==Appearance== Axel is a tall, busty herm with a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Slut Rat]]&lt;br /&gt;
|gender=[[:Category:NPC: Herm_(MP)|Herm]]&lt;br /&gt;
|location=[[Slut Rat Den]]&lt;br /&gt;
|sex=No&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
Axel is a tall, busty herm with a commanding presence and a sharp tongue. The rat boasts a well-kempt purple mohawk and a column of fat silver studs down each ear. She&#039;s dressed in a navy blue blazer, sleek black jeans, and thick stomping boots that serve as more of a fashion statement than protection. Overall, her clothes are in good repair, with few cuts or signs of wear.&lt;br /&gt;
&lt;br /&gt;
When not playing darts or cards, the curvy rat can be seen sitting at the main table with her kin to talk about their past successes and plans for the future.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Herm_(MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Ember_Sanctum&amp;diff=609240</id>
		<title>Ember Sanctum</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Ember_Sanctum&amp;diff=609240"/>
		<updated>2017-08-15T05:26:55Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Ember Sanctum can be found under the Fairhaven Mall and is the home of the [[Ember Matriarch (MP)|Ember Matriarch]].&lt;br /&gt;
&lt;br /&gt;
Room description:&lt;br /&gt;
 The room is massive and spherical in construction. For whatever reason, the walls here have been warped and expanded far beyond the normal limitations of a sewer pipe, breaking out into an unrestrained wilderness of marsh, beasts and simple prosperity. At the top of the dome are sewer grates that help filter in some much-needed light from surface level.&lt;br /&gt;
 &lt;br /&gt;
 The Ember mutants make their home here. Both of the common strains, Warrior and Breeder, coexist peacefully with each other, taking part in various games and activities to keep themselves occupied. Their leader is curled up in a large nest near the center, humming peacefully as sie incubates the next in kin. Sie is flanked by a circle of tough-looking guards, who wear little more than leather strips over their body to protect them during combat. It appears as though this tribe has plenty of natural means to secure their survival, for their sharp, fierce claws and constant physical activity keeps them at the top of the food chain.&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Ember_Sanctum&amp;diff=609239</id>
		<title>Ember Sanctum</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Ember_Sanctum&amp;diff=609239"/>
		<updated>2017-08-15T05:26:27Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Ember Sanctum can be found under the Fairhaven Mall and is the home to the [[Ember Matriarch (MP)|Ember Matriarch]].&lt;br /&gt;
&lt;br /&gt;
Room description:&lt;br /&gt;
 The room is massive and spherical in construction. For whatever reason, the walls here have been warped and expanded far beyond the normal limitations of a sewer pipe, breaking out into an unrestrained wilderness of marsh, beasts and simple prosperity. At the top of the dome are sewer grates that help filter in some much-needed light from surface level.&lt;br /&gt;
 &lt;br /&gt;
 The Ember mutants make their home here. Both of the common strains, Warrior and Breeder, coexist peacefully with each other, taking part in various games and activities to keep themselves occupied. Their leader is curled up in a large nest near the center, humming peacefully as sie incubates the next in kin. Sie is flanked by a circle of tough-looking guards, who wear little more than leather strips over their body to protect them during combat. It appears as though this tribe has plenty of natural means to secure their survival, for their sharp, fierce claws and constant physical activity keeps them at the top of the food chain.&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Gryphon_Nest&amp;diff=609238</id>
		<title>Gryphon Nest</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Gryphon_Nest&amp;diff=609238"/>
		<updated>2017-08-15T05:25:28Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the home of Violet the hermaphrodite Blue Gryphon and can be accessed by speaking with Obsidian in the Secluded Home.&lt;br /&gt;
&lt;br /&gt;
Room description:&lt;br /&gt;
 A comfortable &#039;nest&#039; of sorts. The nest consists of a layer of carpets on the otherwise barebone concrete floor, all interior surfaces scrubbed clean and sanded for maximum smoothness. You see a single gryphon here, Violet, and your lover, Obsidian. The two are currently discussing what favors Obsidian owes in exchange for her beloved gryphon milk.&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Alice&amp;diff=609237</id>
		<title>Alice</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Alice&amp;diff=609237"/>
		<updated>2017-08-15T05:24:33Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: Created page with &amp;quot;{{NPC(MP) |species=Gun Bunny |gender=Female |location=Gun Shop Shelter |sex=No |infectious=No }} ==Appearance== Leaning back in her seat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Gun Bunny]]&lt;br /&gt;
|gender=[[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
|location=[[Gun Shop Shelter]]&lt;br /&gt;
|sex=No&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
Leaning back in her seat, this peculiar lapine seems all too happy to show smug defiance to a world gone wild. She&#039;s dressed in a snug white tank top and a too-small denim jean jacket, the scuffed material scarcely fitting over her shoulders. Healthy hips strain the seams of a tattered mini-skirt, and dirty striped stockings hug her muscular legs before they whither to nothing near her large, four-toed feet. Above, overly large aviator goggles are strapped tightly to her forehead, partially obscuring her ears.&lt;br /&gt;
&lt;br /&gt;
The ferals endemic to this area seem to avoid her whenever she leaves the shelter, and with good reason; displayed prominently on her chest is a pair of criss-crossing bandoleers, replete with enough ammunition to lay waste to a small town. Strapped to her right hip is a compact submachine gun, a magazine prepared and mode set to auto. From where you stand, you also spot the thick wooden stock of a hunting rifle peeking out from behind her shoulder, likely used for stopping power should she cross paths with a more potent opponent.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Female (MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=NPCs_(Multiplayer)&amp;diff=609236</id>
		<title>NPCs (Multiplayer)</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=NPCs_(Multiplayer)&amp;diff=609236"/>
		<updated>2017-08-15T05:22:33Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
Note from Songbird: This page is a WIP. Please be patient while it is organized and expanded upon.&lt;br /&gt;
&lt;br /&gt;
There are a wide array of non-player characters (NPCs) in the game for the player to interact with. Some of these are friendly, others are merely ambivalent about the player. Certain NPCs can provide the player with quests, often with a reward to be earned.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Alphabetical Lists of NPCs:&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC (Multiplayer)|All NPCs]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC: Male (MP)|Male]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC: Female (MP)|Female]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:NPC: Herm (MP)|Hermaphrodite]]&lt;br /&gt;
&lt;br /&gt;
For Single Player NPCs, see [[NPCs_(Single_Player)|here]]&lt;br /&gt;
&lt;br /&gt;
==Ember Sanctum==&lt;br /&gt;
===[[Ember Matriarch (MP)|Ember Matriarch]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Ember Matriarch]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==Graveyard==&lt;br /&gt;
===[[Caretaker]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==Gryphon Nest==&lt;br /&gt;
===[[Obsidian]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shadow Dragon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Violet]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Blue Gryphon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==Gun Shop Shelter==&lt;br /&gt;
===[[Alice]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Gun Bunny]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==Hotel Oblivion==&lt;br /&gt;
===[[Bound Egyptian Mau]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Egyptian Mau]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Charlie]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; German Shepherd (actual animal)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Ellie]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Latex Fox]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Presenting Mephit]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Skunk&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==Husky Den==&lt;br /&gt;
===[[Chris (MP)|Chris]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Alpha Husky (MP)]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Sarah_(MP)|Sarah]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Female Husky]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Saul]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Alpha Husky (MP)]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Twinky]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Quilled Tousky]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==Rev&#039;n Rave Techno Safari==&lt;br /&gt;
===[[Mortimitri]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Slut Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==RSX Solutions==&lt;br /&gt;
===[[Alton]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Agent Jackson]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Colonel Arnold]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Doctor Browning]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Major Jack]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Maxwell Power]] (Danger Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Mr Simon]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===Old Soldier===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Paul Metoxis]] (Pheromone Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Penelope]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Valkyrie]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Jennifer Trilby]] (Requisitions Clerk)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]] (with cat ears and tail)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Research Lead Renley]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Sally (MP)|Sally]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Valkyrie]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Venice]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Goo Girl]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==Secluded Home==&lt;br /&gt;
===[[Obsidian]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shadow Dragon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==Slut Rat Den==&lt;br /&gt;
===[[Axel]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Slut Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Dmitri]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Slut Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==The Devil&#039;s Bar==&lt;br /&gt;
===[[Casey]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Whimsical Twinkubus]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Tess]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Busty Succubus]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==The Mall==&lt;br /&gt;
===[[Lisa (MP)|Lisa]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mouse Taur]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Missy]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mall Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Rod (MP)|Rod]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mall Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Smiley]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Mall Rat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
==The Trick or Treat Motel==&lt;br /&gt;
===Animate Pumpkin Patch===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Some plantlike amalgamation&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; Bona Fide Tentaclebeast&lt;br /&gt;
&lt;br /&gt;
===Kurt===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Wolf Beast]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===Sobek===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Crocodile&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Theodore the Corgi]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Welsh Corgi]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===Vampire Bat Twins===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Vampire Bat]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]] and [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Witch===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; Cat&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
==The Zoo==&lt;br /&gt;
===[[Kangaroo God]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Kangaroo]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
==Zephyr Inc==&lt;br /&gt;
===[[Agent Jonathan]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Blue Gryphon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Alex (MP)|Alex]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Zebra]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Ron Danger]] (Danger Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]] (with a [[House Cat]] head)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Dr Joan]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shy Gecko]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Eureka Pilot===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Ian the Shark]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Bull Shark]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
&lt;br /&gt;
===[[Louis Ledoyen]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Salamander Femme]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[James Jorgen]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Plump Tigress]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; Shemale&lt;br /&gt;
&lt;br /&gt;
===[[Mike the Chopper Pilot]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Blue Gryphon]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Miura Mercedes]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Shadow Vixen]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Mona Nasawri]] (Pheromone Technician)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Noel Winters]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Jeffrey Lebowski]] (Requisitions Clerk)===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Pampered Poodle]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Robert]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Zebra]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Sandra]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]] (with Kemonomimi [[Bunny Girl]] features)&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===[[Scarlet Sebb]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Female Widow Convert]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Tactics Soldier===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Skunk Beast]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
===[[Teacher Jenny]]===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Skunk Girl]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
&lt;br /&gt;
===Workshop Technician===&lt;br /&gt;
*&#039;&#039;&#039;Species:&#039;&#039;&#039; [[Human]]&lt;br /&gt;
*&#039;&#039;&#039;Gender:&#039;&#039;&#039; [[:Category:NPC: Male (MP)|Male]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Multiplayer]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Miura_Mercedes&amp;diff=609235</id>
		<title>Miura Mercedes</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Miura_Mercedes&amp;diff=609235"/>
		<updated>2017-08-15T05:17:50Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Shadow Vixen]]&lt;br /&gt;
|gender=[[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
|location=[[Zephyr Inc]]&lt;br /&gt;
|sex=No&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
She has a white apron tied around her waist which covers her three rows of breasts down at her front. A small green name tag is pinned up on the strap over her left shoulder which reads &amp;quot;Mercedes&amp;quot;, while much of the area over her top row of breasts is covered in flair buttons with a multitude of different designs upon them. The dark green shirt behind her apron presses outwards due to her rather large breasts, the other two rows being of average size.&lt;br /&gt;
&lt;br /&gt;
There&#039;s a smile to her canine muzzle, and whether she means it or not, there&#039;s a sensual nature to her grin. The deep velvet of the fur over her fox-like head wraps to the strong bone structure of her vixen snout. Off the back of her head, behind her fuzzy fox ears, are a set of pitch black knots of hair which drop into pigtails that dangle down to either side of the back of her skull and past her shoulders.&lt;br /&gt;
&lt;br /&gt;
A myriad of ebony furred and poofy fox tails wag back and forth in an almost hypnotic way, drawing your attention. The mass takes up quite a bit of space behind her, even more so than a skunk tail might, and occasionally she bumps into objects atop the countertops through her inadvertent actions.&lt;br /&gt;
&lt;br /&gt;
Her arms are slim and lead down to smooth, padded paws. The ends of her fingers are blunted nails, painted over with purple nail polish. You can tell that she has a strong grip, something the original owner of her mutation probably used for more sexually oriented tasks.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Female (MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Scarlet_Sebb&amp;diff=609234</id>
		<title>Scarlet Sebb</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Scarlet_Sebb&amp;diff=609234"/>
		<updated>2017-08-15T05:16:21Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Female Widow Convert]]&lt;br /&gt;
|gender=[[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
|location=[[Zephyr Inc]]&lt;br /&gt;
|sex=No&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
Standing at the far west side of the balcony, looking out at Downtown Fairhaven beyond, you see a woman standing in a light green Zephyr custodial uniform. Leaning against the railing with her lower two arms, she appears to be deep in thought. Turning to the side, you can see one of her upper arms reach into a breast pocket to pull out a cigarette, lighting up with a lighter in a different hand. Continuing to turn, you can just make out her name tag: Scarlet Sebb.&lt;br /&gt;
&lt;br /&gt;
Leaning back against the guard rail, she notices you looking at her and simply nods her head politely. Her eight eyes all look at you from inside her chitinous black skin, seeming to have retained a mostly human appearance except with red irises. Plush lips curl back to reveal deadly fangs as she smiles, removing the cancer stick from her mouth.&lt;br /&gt;
&lt;br /&gt;
Over the back of her head are narrow, notched shafts of black chitinous covering that fall around her shoulders and down to the middle of her back like dreadlocks. Sebb&#039;s uniform is parted just a bit at the front, revealing the top of a red hourglass shape over her two breasts. Of her four slender arms, the lower two are back behind her on the railing as she leans. One of the other two holds the white cylinder to her lips and the last hangs limply at her side.&lt;br /&gt;
&lt;br /&gt;
Scarlet&#039;s torso sits atop the front of an abdomen that juts out back behind her with a functional spinneret at its tip. Covering over it is a length of cloth which covers up from her underside and is tied loosely over her thick back with another red hourglass symbol peaking out from within her uniform. She stands atop four legs that are thicker than her arms, yet still delicate and feminine in their overall shape. Those feet end in claws which are designed more for locomotion than any complex tasks. Above her ankles and up to her back, her legs are covered in the light green cloth of her uniform. Overall, she may appear alien, but she looks to be doing her best to maintain an appearance of normality... like so many others are these days.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Female (MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Scarlet_Sebb&amp;diff=609233</id>
		<title>Scarlet Sebb</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Scarlet_Sebb&amp;diff=609233"/>
		<updated>2017-08-15T05:16:06Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Female Widow Convert]]&lt;br /&gt;
|gender=[[:Category:NPC: Female (MP)|Female]]&lt;br /&gt;
|location=[[Zephyr Inc]]&lt;br /&gt;
|sex=No&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
Standing at the far west side of the balcony, looking out at ^cyan^Downtown Fairhaven^normal^ beyond, you see a woman standing in a light green Zephyr custodial uniform. Leaning against the railing with her lower two arms, she appears to be deep in thought. Turning to the side, you can see one of her upper arms reach into a breast pocket to pull out a cigarette, lighting up with a lighter in a different hand. Continuing to turn, you can just make out her name tag: Scarlet Sebb.&lt;br /&gt;
&lt;br /&gt;
Leaning back against the guard rail, she notices you looking at her and simply nods her head politely. Her eight eyes all look at you from inside her chitinous black skin, seeming to have retained a mostly human appearance except with red irises. Plush lips curl back to reveal deadly fangs as she smiles, removing the cancer stick from her mouth.&lt;br /&gt;
&lt;br /&gt;
Over the back of her head are narrow, notched shafts of black chitinous covering that fall around her shoulders and down to the middle of her back like dreadlocks. Sebb&#039;s uniform is parted just a bit at the front, revealing the top of a red hourglass shape over her two breasts. Of her four slender arms, the lower two are back behind her on the railing as she leans. One of the other two holds the white cylinder to her lips and the last hangs limply at her side.&lt;br /&gt;
&lt;br /&gt;
Scarlet&#039;s torso sits atop the front of an abdomen that juts out back behind her with a functional spinneret at its tip. Covering over it is a length of cloth which covers up from her underside and is tied loosely over her thick back with another red hourglass symbol peaking out from within her uniform. She stands atop four legs that are thicker than her arms, yet still delicate and feminine in their overall shape. Those feet end in claws which are designed more for locomotion than any complex tasks. Above her ankles and up to her back, her legs are covered in the light green cloth of her uniform. Overall, she may appear alien, but she looks to be doing her best to maintain an appearance of normality... like so many others are these days.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Female (MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Mortimitri&amp;diff=609232</id>
		<title>Mortimitri</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Mortimitri&amp;diff=609232"/>
		<updated>2017-08-15T05:09:45Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Slut Rat]]&lt;br /&gt;
|gender=[[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
|location=[[Rev&#039;n Rave Techno Safari]]&lt;br /&gt;
|sex=Yes&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
Looking over Mortimitri, she is about five feet tall. Her body is covered in white, short fur. There is the occassional patch where fur&#039;s been shaved away to reveal tattooed skin. Her head is capped with tapered rodent ears that bear hoops and studs. Her hair is shaven into a perpetual mohawk that&#039;s side-swept with its bangs hanging over one eye, and its fibers are dyed a glossy, vibrant violet. Full, sucking lips bare an exceptionally pouty lower lip with a pair of fine hoops off-center, for your pleasure. Her bedroom eyes are darkly mascaraed with long lashes spiking out over the languorous lids. Around her neck is a dark, leather collar studded with long, chromed spikes. Her body is fit and lean with just a hint of her ribcage showing above her cinched abdomen. Barbells pierce her nipples with a fine but sturdy chain arcing between them. Though lean, she still bares curves in all the right places. She has 2 large breasts. Her arms are toned but streamlined, built for action. Long fingers terminate in rodent claws, her palms soft and padded for girth-gripping. Leather cuffs hug her wrists with short, spiked studs along the thick bands. Her legs are free of excess save a little pleasing roundness on the thighs and calves. Her feet are hidden within leather stomping boots. Though not fat, her butt bares a pleasing fleshiness that&#039;s both fit and round. Her lengthy whips of rat tail bear broad cuffs of spike-studded leather. A private peek would reveal that: She has a heavy pierced dick with a Jacob&#039;s Ladder of barbells metered along the underbelly of her cock. She has fist sized balls. She has an average pink clit. She has a large, hoop-pierced cunt.&lt;br /&gt;
&lt;br /&gt;
Glowing bangles and sticks adorn her body, and she&#039;s got wide-legged raver pants with UV reactive stripes forming V&#039;s up the outside of her legs. Every ring, every stud, every piercing and chain glows vibrantly.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Herm (MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Alex_(MP)&amp;diff=609231</id>
		<title>Alex (MP)</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Alex_(MP)&amp;diff=609231"/>
		<updated>2017-08-15T05:08:40Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* Appearance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Zebra]]&lt;br /&gt;
|gender=[[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
|location=[[Zephyr Inc]]&lt;br /&gt;
|sex=Yes&lt;br /&gt;
|infectious=No&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
This zebra waitress certainly stands out from the rest of the cafeteria&#039;s personnel--except in terms of stature. She makes her best effort to flirt with all the customers. The hermaphrodite has two full D cup breasts straining the uniform and her skirt, which is clearly a size too small and stretched thin over her behind. The final, most eye-catching feature is a heavy equine member bulging under the cloth, along with the impression of an equally hefty ballsack just below.&lt;br /&gt;
&lt;br /&gt;
She notices you gawking and winks, waving as if offering to come closer. She has a small nametag pinned to her chest that reads &#039;Alex&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Herm (MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Violet(NPC)&amp;diff=609230</id>
		<title>Violet(NPC)</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Violet(NPC)&amp;diff=609230"/>
		<updated>2017-08-15T05:07:20Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* Appearance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NPC(MP)&lt;br /&gt;
|species=[[Blue Gryphon]]&lt;br /&gt;
|gender=[[:Category:NPC: Herm (MP)|Herm]]&lt;br /&gt;
|location=[[Gryphon Nest]]&lt;br /&gt;
|sex=Yes&lt;br /&gt;
|infectious=Yes&lt;br /&gt;
}}&lt;br /&gt;
==Appearance==&lt;br /&gt;
A hermaphrodite Blue Gryphon. Violet is approximately six feet tall and incredibly voluptuous, her plush blue fur looking invitingly soft to the touch.&lt;br /&gt;
&lt;br /&gt;
[[Category:NPC: Herm (MP)]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Statuses&amp;diff=580956</id>
		<title>Statuses</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Statuses&amp;diff=580956"/>
		<updated>2017-06-11T22:57:02Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page wherein all coded statuses are listed for reference. &lt;br /&gt;
&lt;br /&gt;
Remember that just about every status can be reversed with &#039;Debuff&#039; added to the end. For instance, DamageResistDebuff would cause additional damage to be taken.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; align=&amp;quot;left&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;col&amp;quot; | Status Name &lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;col&amp;quot; | Status Effect&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Accuracy &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases accuracy by Magnitude, proportional to the power&#039;s base Accuracy after being compared against Defense. Has diminishing returns, gradually leveling off before reaching 50% along the following equation: 50*(Mag)/(Mag+100). If Accuracy is negative after contesting against Defense, use the equation listed in Defense instead.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Aggro &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases automated NPC hate by Magnitude percentage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | AoEMod &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Gives a scaling chance to hit an additional target. Rate of chance is AoEmod/AoEmod+1&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | AreaBlock &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Decreases AOE damage on allies and increases it on you by mag percent. Only works when you are targeted directly with the AOE.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Attack &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases damage of all powers by magnitude. Cannot increase the damage of a power by more than 1/3rd its normal level.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Cascading&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Cascading is like damagebuff for repeat hits, not the direct hit. It soft caps by / 2 at 10, 20, 25, and 35. It hardcaps at 40.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Confused&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Has magnitude chance of causing AoEs to strike a random friendly target, and increases the final deflection percent (after reduction from combat skills) on AoEs by its magnitude to a maximum final deflection of 50% (unless they rolled a 75%, in which case that is used instead). &lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Charge &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases the rate at which powers charge by Magnitude percent. Has diminishing returns, gradually leveling off before reaching 150% along the following equation: 150*(Mag)/(Mag+75). When negative, use 25*(Mag)/(Mag+10) instead.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Cover &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Take magnitude percent of damage meant for the target. Resistances still apply. Capped in effectiveness by the attacker&#039;s Concentrated skill level, at 90/80/70% of incoming damage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Critical Damage &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Ignores everything except Juggernaut-style DamageResist.  Typed EnergyDamageResist and PhysicalDamageResist do not guard against it.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | (X)Damage &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes damage over time. Inflicts magnitude damage of (x) element every round, minimum 1 damage per round.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Stacked(Y)(X)Damage &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes damage over time as above, but can stack up to y times, causing more damage if a victim is struck multiple times. Duration is renewed with each stack.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | DamageBuff &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases damage by Magnitude percent when attacking. Has diminishing returns, gradually leveling off before reaching 100 along the following equation: 100*(Mag+5)/(Mag+100). If negative, it instead follows -33*(Mag)/(Mag+5).&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | (X)DamageImmunity&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Reduces X damage taken by magnitude percent, up to 100% (completely immune). If no specified type, resists all damage. These are a % of damage outright negated after resistances are calculated. So if you were taking 500 damage post resist, and you have 20 DamageImmunity, you will only take 400 damage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | DamageResist &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Cause all damage received to be reduced by magnitude, up to a maximum of 40% of all damage resisted.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | (X)DamageResist &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes damage of specified type(FireDamageResist, IceDamageResist, Etc) to be reduced by magnitude, up to a maximum of 40%(X)resisted. Stacks with damageresist for a maximum of 80% damage resisted.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | DebuffClear &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Destroys negative statuses, magnitude against magnitude. If it can&#039;t destroy, it will weaken. Does not persist, has immediate effect then fades.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | DebuffResist &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Reduces incoming debuffs(Anything with &#039;debuff&#039; at the end, as well as certain other statuses such as Confused) by Magnitude percent. Has diminishing returns, gradually leveling off before reaching 100% along the following equation: 100*(Mag)/(Mag+100). When negative, use 25*(Mag)/(Mag+25) instead.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Defense &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases the odds of partially deflecting an attack by Magnitude, directly opposing the attacker&#039;s Accuracy. Has diminishing returns, gradually leveling off before reaching 25% along the following equation: 25*(Mag)/(Mag+10). If Accuracy is still a positive value after contesting against Defense, use the equation listed in Accuracy instead. Attacker then makes a percentile roll which is compared, in order, to Accuracy-45, Accuracy, and Accuracy+30. If the first hits, 0% is deflected; the second, 25% is deflected; the third, 50%; if all three miss, 75% is deflected.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Delay&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Resists the magnitude of Delaydebuff point per point. 1 Delay + 1 Delaydebuff = No debuff. 1 Delay + 2 Delaydebuff = 1 Delaydebuff&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Delaydebuff&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases the base 1000 ATB turn delay by +25 atb per point.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | EnergyBreak &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes all powers to cost Magnitude percent less energy. Maximum amount is 50(half off). Negative energy break caps at 25.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | EnergyDamageReturn &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Returns Magnitude percent of damage taken, as above, but as energy damage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | EnergyMod &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Gives mag energy at the start of each round for duration rounds.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Fertility &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Not a combat stat, but increases chances of successful breeding.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | FleeRate &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases chance to flee by magnitude.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Haste &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Deprecated status. Do not use and file a request if you see it as a status anywhere. Currently does the same as Charge, and was phased out.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Healing &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases healing done by Magnitude percent. Has diminishing returns, gradually leveling off before reaching 100 along the following equation: 100*(Mag+5)/(Mag+100). If negative, it instead follows -33*(Mag)/(Mag+5).&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | HealEnergyResist &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Hampers powers that restore energy by 1 per magnitude, to a minimum of 1.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | HealGain &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes healing effects that are incoming to be increased by magnitude, with soft caps at 25% and 50% more healing, hard cap at 75%.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | HealResist &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes healing effects that are incoming to be diminished by magnitude, to a minimum of 1.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | HeatResist &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Reduces the effect from a heat environment. If your HeatResist is at or above the environments heat effect, then you receive no penalty.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | HPBuffer &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Prevents standard damage in combat. Each point of magnitude is a kind of temporary hit point. Does not work in talk script&amp;amp;nbsp; damage. Normal and repeatattacks only hit your largest HPbuffer and any damage over your largest buffer destroys the buffer, dealing the remaining damage to you as normal. The combat skills [[Damage]], [[Accuracy]] and [[Penetration]] can allow you to pierce HPbuffer up to a maximum of 70%.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | InHeat&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes the player to appear to be in heat, whether or not they actually are fertile.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | InstantCooldown&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes the power with the longest remaining cooldown to lose cooldown in a ratio of 1 mag per 1000 atb. Mag is expended in this, has effect once and goes away.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | InstantCooldownDebuff&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes the power with the longest remaining cooldown to gain cooldown in a ratio of 1 mag per 1000 atb. Mag is expended in this, has effect once and goes away.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Knockdown &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Reduces your ATB(delaying when you can next take an action) by 100 per magnitude, directly resisted with KnockdownResist.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | KnockdownResist &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Lowers the magnitude of Knockdown by its own magnitude.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | MaxHP &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases maximum health by magnitude percent. Has diminishing returns, gradually leveling off before reaching 50% along the following equation: 50*(Mag)/(Mag+25). When negative, use 25*(Mag)/(Mag+10) instead.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Menace &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases OVERALL automated NPC hate by Magnitude Percentage(As opposed to increasing per event hate)&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | (X)Penetration &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes all attacks to penetrate X type of damage resistance. 10 points of status is the same as one point of Penetration combat skill. Soft caps are at 40, 60 and 80. If no damage type is specified, will apply to all damage types. Penetration status will work on energy/physical/critical damage (and dots) where any other damage types (poison, skunk, etc) will need a specific penetration eg: PoisonPenetration&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | (&amp;amp;nbsp;Aggro Note) &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | &lt;br /&gt;
At time of hate gain, Aggro will increase/reduce the amount given. Once given, this hate is permanent. Menace applies to the total accrued when aggro is checked, but its effect fades entirely when the status goes away. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | PhysicalDamageReturn &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Returns Magnitude percent of all damage taken(Does not work on damage over time, does work on repeating attacks) as physical damage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Recharge &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases the speed at which all powers recharge by Magnitude percent. Soft caps at 50, 100, 150, etc, doubling the amount needed to gain one effective point per soft cap and hard caps at 200 effective value.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Regen &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Cure 1/5th its magnitude every 1/5th round, obeys HealResist and Healing at 1/5th value each tick. Cannot regen more than 1/10th max HP in any given round.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | RepeatAttack &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes the attack to repeat itself Magnitude times over Duration span of time. The secondary attacks deal half damage, calculated after applying resistance. Note:&amp;amp;nbsp;No statuses are refreshed by repeats.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Rut&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Adjusts the player Rut level by the magnitude.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Salvage &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases or Decreases your odds of salvaging all types of salvage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | (X)Salvage &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases or Decreases your odds of salvaging (X) type salvage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Size&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases or Decreases your bodysize by the magnitude. Max size is 60, minimum of 1.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | StatusBoost&lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Increases magnitude of active power statuses by magnitude percent. Has diminishing returns, gradually leveling off before reaching 35% along the following equation: 35*(Mag)/(Mag+10) for positive values, or approaching -25 at 25*(Mag)/(Mag+10) for negative values or debuffed. Does not work in instantcooldown or itself. Will not work on Passives or Toggles are not effected. Does effect negative aspects of a friendly power and positive aspects of a hostile power (E.g. Howl)&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Taunt &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes the victim to target the caster while active.&amp;amp;nbsp;Latest taunt overrides all others.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | Vampiric &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Causes all attacks to cause a regenerative effect of MAG % of damage dealt. works in conjunction with the combat skill and item/power property of the same name. All combined sources of Vampiric are soft capped at 25 and effective 50 mag, with a hard cap at effective 75 mag, meaning over 25 divide by 2, over 50, divide by 4, and no attack can give more than 75% of hp back from damage.&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;left&amp;quot; scope=&amp;quot;row&amp;quot; | WaterAdaption &lt;br /&gt;
! align=&amp;quot;left&amp;quot; | Provides resistance to the penalties from Aquatic areas. If your WaterAdaption is lower than an area&#039;s AQ rating on +haz, you will suffer severe penalties.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]] [[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580483</id>
		<title>String Parsing Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580483"/>
		<updated>2017-06-10T03:21:05Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* Performance: Why should I care? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt; String Parsing is a powerful language for designing content on the Flexible Survival MUCK. The language permits read functions, write functions, and allows users to create dynamic content based on a combination of those functions. Its semantics were originally designed by Damaged and later rewritten by Fauna for increased performance.&lt;br /&gt;
&lt;br /&gt;
String Parsing, like other markup languages, does cause a hit in performance when inserted into plain text. This article exists to provide solutions for those seeking to squeeze the most performance out of their code without reducing readability. For information on how to write parsing, see the wiki article on [http://wiki.flexiblesurvival.com/w/String_Parsing String Parsing] and review the in-game manual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performance: Why should I care? ==&lt;br /&gt;
&lt;br /&gt;
Performance is important for a number of reasons. &lt;br /&gt;
:Optimized code reduces the perceived latency of navigation in a MUCK. Doing so should be enjoyable on even the most sluggish of connections.&lt;br /&gt;
:Optimized code reduces the Flexible Survival server load, thus permitting us to provide more and more detailed user-visible content.&lt;br /&gt;
:Optimized code reduces the memory cost of programs and #dbrefs. In the case of a fatal memory spike or other unforeseen circumstances, the chances of services ceasing function are reduced when baseline memory is kept to a reasonable minimum.&lt;br /&gt;
&lt;br /&gt;
=== How does this relate to String Parsing? ===&lt;br /&gt;
&lt;br /&gt;
String Parsing is a markup language found throughout many aspects of the game. From transformation messages, to sex scenes, to exploration, to NPC interaction, and more, String Parsing is used to provide fresh and dynamic content. As a result, it&#039;s important to ensure that this code is clean, readable, and swift to execute.&lt;br /&gt;
&lt;br /&gt;
Strictly speaking, a more important language to keep optimized is the MUF backend that Flexible Survival is based upon. However, since this guide is targeted at a general audience and not Mucker-level or higher staff (who cannot edit MUF code in programs), String Parsing will be the focus.&lt;br /&gt;
&lt;br /&gt;
For the subsequent sections, please use the in-game @viewparse command to indent and colorize markup for better legibility.&lt;br /&gt;
&lt;br /&gt;
== Conditionals ==&lt;br /&gt;
&lt;br /&gt;
=== [if ][end if] ===&lt;br /&gt;
----&lt;br /&gt;
A basic [if ] statement is prone to some syntactic errors, but little in terms of optimization woes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always use the template [if [target] is &amp;lt;gender&amp;gt;] and [if time is &amp;lt;time of day/season&amp;gt;]. Do not use [if [target] = &amp;lt;gender&amp;gt;] or [if time = &amp;lt;time of day/season&amp;gt;]. Despite taking less space in the grand scheme of things, the &#039;is&#039; function is specifically optimized for checking a target&#039;s gender and the time of day/season.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if [target] = &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time = &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if [target] is &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Do not check for integers with the &#039;=&#039; sign. This is a function designed to check a string. Use &#039;==&#039; instead.&lt;br /&gt;
Benchmarks have shown that checking directly for an integer is both faster and cleaner.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat cocks of [target] = 1]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if stat cocks of [target] == 1]&lt;br /&gt;
&lt;br /&gt;
Avoid not statements when possible. For example, [if time is not night] is the same as [if time is day].&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not night]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is night]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else] creates potential for redundancy if a coder is not paying attention. Here is a small before-and-after list of sentences, followed by clear instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is day]A woman in tight jeans and an unassuming blouse mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work.[else]A woman in tight jeans and an unassuming blouse would normally man the counter. However, she doesn&#039;t appear to be here right now.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;A woman in tight jeans and an unassuming blouse [if time is day]mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work[else]would normally man the counter. However, she doesn&#039;t appear to be here right now[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, repeated text has been removed from the [if ] statement itself and added as prefix. This provides the exact same user-visible output with less characters. Processing requirements are almost identical, but the text fits in less space and is just as readable.&lt;br /&gt;
&lt;br /&gt;
Note: It&#039;s generally preferred to not cut off letters in words. Punctuation can be moved outside, but chopping up words results in text that is much less legible to people with screen readers.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else if ] introduces further potential for code slowdown. Please read the following steps carefully to avoid that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest.[else if [player] is female]easily ignore the Skunk Girl&#039;s attempts to seduce you.[else]easily ignore the Skunk Girl&#039;s attempts to seduce you. Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest[else]easily ignore the Skunk Girl&#039;s attempts to seduce you[end if].[if [player] is neuter] Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a lengthy [if ][else if ][else][end if] statement is deconstructed into [if ][else][end if][if ][end if].&lt;br /&gt;
&lt;br /&gt;
Converge the [else if ] and [else] statements into a single [else]. Move the neuter check into a separate [if ] statement at the end. Move the trailing periods in the [if ][else][end if] statement before the start of the neuter check. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;The [if time is morning]sun is rising, stirring all forms of life into motion[else if time is afternoon]sun is high, baking the earth with its furious light[else if time is evening]sun is starting to set, casting the land in long shadows[else]moon shines over the land[end if].&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is night]moon shines over the land[else if time is morning]sun is rising, stirring all forms of life into motion[else if time is evening]sun is starting to set, casting the land in long shadows[else]sun is high, baking the earth with its furious light[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a couple optimizations are made.&lt;br /&gt;
&lt;br /&gt;
Place [if time is night] at the front. This is the longest period of time outside of &#039;day&#039; (which is not used here), and ensuring it triggers first saves execution costs throughout most of the 24-hour cycle. Use the check for &#039;afternoon&#039; as the final [else], because even though it is just as long a period as morning and evening, the name has more characters in it.&lt;br /&gt;
&lt;br /&gt;
=== [case ] ===&lt;br /&gt;
----&lt;br /&gt;
Case-statements are useful where lengthy [if ][else if ][end if] statements would result in redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[case stat X of [target] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat X of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If something is valid parsing on its own, such as &#039;[stat X of [target]]&#039; and &#039;[the mutation X of [target]]&#039;, use that, so the statement will only have to be parsed once instead of in every [when ]-statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat blah/bluh/bleh of [target] == 1]A[else if stat blah/bluh/bleh of [target] == 2]B[else if stat blah/bluh/bleh of [target] == 3]C[else if stat blah/bluh/bleh of [target] == 4]D[else if stat blah/bluh/bleh of [target] == 5]E[else]F[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat blah/bluh/bleh of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when (target) 5]E[end when][when 1]F[end when][end case]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a complex [if ][else if ][end if] statement is optimized.&lt;br /&gt;
&lt;br /&gt;
Convert the code to a basic case-statement. Since all comparisons are alike, remove them from their [when ] statements and append one to [case (target)]. Add brackets around &#039;stat blah/bluh of [player]&#039; to avoid computing that in every [when ] statement.&lt;br /&gt;
&lt;br /&gt;
== Randomization ==&lt;br /&gt;
&lt;br /&gt;
The following functions display content at random. Input is separated by [or].&lt;br /&gt;
&lt;br /&gt;
=== [one of][or][at random] ===&lt;br /&gt;
----&lt;br /&gt;
The standard [one of][or][at random] statement is prone to redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times,[or]Sometimes,[at random] he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times[or]Sometimes[at random], he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, redundancy is fixed by moving a comma after [at random].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [with odds: ] ====&lt;br /&gt;
&lt;br /&gt;
[with odds: ] allows you to simplify many longer [one of] statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]1[or]1[or]2[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[with odds: 5 1]&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]2[or]2[or]3[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[or]3[with odds: 3 2 1]&lt;br /&gt;
&lt;br /&gt;
=== [random x to y] ===&lt;br /&gt;
----&lt;br /&gt;
This function is more specialized than [one of][or][at random], lending itself well to optimization. Note that it only accepts numerical input (negatives included) and that &#039;y&#039; should be greater than &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]2[or]3[or]4[or]5[or]6[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[random 1 to 6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complex [one of][or][at random] statement converted into a [random x to y] statement.&lt;br /&gt;
&lt;br /&gt;
Note that [with odds: ] has superseded much [case ]-statement with [random x to y] optimization wizardry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is a work in progress and is thus subject to change. All views and opinions expressed in here are solely Songb&#039;s. Please only modify with either A) explicit permission to do so, or B) a fix for known factual inaccuracy / grammar errors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]][[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580482</id>
		<title>String Parsing Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580482"/>
		<updated>2017-06-10T03:19:17Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt; String Parsing is a powerful language for designing content on the Flexible Survival MUCK. The language permits read functions, write functions, and allows users to create dynamic content based on a combination of those functions. Its semantics were originally designed by Damaged and later rewritten by Fauna for increased performance.&lt;br /&gt;
&lt;br /&gt;
String Parsing, like other markup languages, does cause a hit in performance when inserted into plain text. This article exists to provide solutions for those seeking to squeeze the most performance out of their code without reducing readability. For information on how to write parsing, see the wiki article on [http://wiki.flexiblesurvival.com/w/String_Parsing String Parsing] and review the in-game manual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performance: Why should I care? ==&lt;br /&gt;
&lt;br /&gt;
Performance is important for a number of reasons. &lt;br /&gt;
:Optimized code reduces the perceived latency of navigation in a MUCK. Doing so should be enjoyable on even the most sluggish of connections.&lt;br /&gt;
:Optimized code reduces the Flexible Survival server load, thus permitting us to provide more and more detailed user-visible content.&lt;br /&gt;
:Optimized code reduces the memory cost of programs and #dbrefs. In the case of a fatal memory spike or other unforeseen circumstances, the chances of services ceasing function are reduced when baseline memory is kept to a reasonable minimum.&lt;br /&gt;
&lt;br /&gt;
=== How does this relate to String Parsing? ===&lt;br /&gt;
&lt;br /&gt;
String Parsing is a markup language found throughout many aspects of the game. From transformation messages, to sex scenes, to exploration, to NPC interaction, and more, String Parsing is used to provide fresh and dynamic content. As a result, it&#039;s important to ensure that this code is clean, readable, and swift to execute&lt;br /&gt;
&lt;br /&gt;
Strictly speaking, a more important language to keep optimized is the MUF backend that Flexible Survival is based upon. However, since this guide is targeted at a general audience and not Mucker-level or higher staff (who cannot edit MUF code in programs), String Parsing will be the focus.&lt;br /&gt;
&lt;br /&gt;
For the subsequent sections, please use the in-game @viewparse command to indent and colorize markup for better legibility.&lt;br /&gt;
&lt;br /&gt;
== Conditionals ==&lt;br /&gt;
&lt;br /&gt;
=== [if ][end if] ===&lt;br /&gt;
----&lt;br /&gt;
A basic [if ] statement is prone to some syntactic errors, but little in terms of optimization woes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always use the template [if [target] is &amp;lt;gender&amp;gt;] and [if time is &amp;lt;time of day/season&amp;gt;]. Do not use [if [target] = &amp;lt;gender&amp;gt;] or [if time = &amp;lt;time of day/season&amp;gt;]. Despite taking less space in the grand scheme of things, the &#039;is&#039; function is specifically optimized for checking a target&#039;s gender and the time of day/season.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if [target] = &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time = &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if [target] is &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Do not check for integers with the &#039;=&#039; sign. This is a function designed to check a string. Use &#039;==&#039; instead.&lt;br /&gt;
Benchmarks have shown that checking directly for an integer is both faster and cleaner.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat cocks of [target] = 1]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if stat cocks of [target] == 1]&lt;br /&gt;
&lt;br /&gt;
Avoid not statements when possible. For example, [if time is not night] is the same as [if time is day].&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not night]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is night]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else] creates potential for redundancy if a coder is not paying attention. Here is a small before-and-after list of sentences, followed by clear instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is day]A woman in tight jeans and an unassuming blouse mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work.[else]A woman in tight jeans and an unassuming blouse would normally man the counter. However, she doesn&#039;t appear to be here right now.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;A woman in tight jeans and an unassuming blouse [if time is day]mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work[else]would normally man the counter. However, she doesn&#039;t appear to be here right now[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, repeated text has been removed from the [if ] statement itself and added as prefix. This provides the exact same user-visible output with less characters. Processing requirements are almost identical, but the text fits in less space and is just as readable.&lt;br /&gt;
&lt;br /&gt;
Note: It&#039;s generally preferred to not cut off letters in words. Punctuation can be moved outside, but chopping up words results in text that is much less legible to people with screen readers.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else if ] introduces further potential for code slowdown. Please read the following steps carefully to avoid that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest.[else if [player] is female]easily ignore the Skunk Girl&#039;s attempts to seduce you.[else]easily ignore the Skunk Girl&#039;s attempts to seduce you. Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest[else]easily ignore the Skunk Girl&#039;s attempts to seduce you[end if].[if [player] is neuter] Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a lengthy [if ][else if ][else][end if] statement is deconstructed into [if ][else][end if][if ][end if].&lt;br /&gt;
&lt;br /&gt;
Converge the [else if ] and [else] statements into a single [else]. Move the neuter check into a separate [if ] statement at the end. Move the trailing periods in the [if ][else][end if] statement before the start of the neuter check. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;The [if time is morning]sun is rising, stirring all forms of life into motion[else if time is afternoon]sun is high, baking the earth with its furious light[else if time is evening]sun is starting to set, casting the land in long shadows[else]moon shines over the land[end if].&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is night]moon shines over the land[else if time is morning]sun is rising, stirring all forms of life into motion[else if time is evening]sun is starting to set, casting the land in long shadows[else]sun is high, baking the earth with its furious light[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a couple optimizations are made.&lt;br /&gt;
&lt;br /&gt;
Place [if time is night] at the front. This is the longest period of time outside of &#039;day&#039; (which is not used here), and ensuring it triggers first saves execution costs throughout most of the 24-hour cycle. Use the check for &#039;afternoon&#039; as the final [else], because even though it is just as long a period as morning and evening, the name has more characters in it.&lt;br /&gt;
&lt;br /&gt;
=== [case ] ===&lt;br /&gt;
----&lt;br /&gt;
Case-statements are useful where lengthy [if ][else if ][end if] statements would result in redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[case stat X of [target] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat X of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If something is valid parsing on its own, such as &#039;[stat X of [target]]&#039; and &#039;[the mutation X of [target]]&#039;, use that, so the statement will only have to be parsed once instead of in every [when ]-statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat blah/bluh/bleh of [target] == 1]A[else if stat blah/bluh/bleh of [target] == 2]B[else if stat blah/bluh/bleh of [target] == 3]C[else if stat blah/bluh/bleh of [target] == 4]D[else if stat blah/bluh/bleh of [target] == 5]E[else]F[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat blah/bluh/bleh of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when (target) 5]E[end when][when 1]F[end when][end case]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a complex [if ][else if ][end if] statement is optimized.&lt;br /&gt;
&lt;br /&gt;
Convert the code to a basic case-statement. Since all comparisons are alike, remove them from their [when ] statements and append one to [case (target)]. Add brackets around &#039;stat blah/bluh of [player]&#039; to avoid computing that in every [when ] statement.&lt;br /&gt;
&lt;br /&gt;
== Randomization ==&lt;br /&gt;
&lt;br /&gt;
The following functions display content at random. Input is separated by [or].&lt;br /&gt;
&lt;br /&gt;
=== [one of][or][at random] ===&lt;br /&gt;
----&lt;br /&gt;
The standard [one of][or][at random] statement is prone to redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times,[or]Sometimes,[at random] he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times[or]Sometimes[at random], he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, redundancy is fixed by moving a comma after [at random].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [with odds: ] ====&lt;br /&gt;
&lt;br /&gt;
[with odds: ] allows you to simplify many longer [one of] statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]1[or]1[or]2[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[with odds: 5 1]&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]2[or]2[or]3[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[or]3[with odds: 3 2 1]&lt;br /&gt;
&lt;br /&gt;
=== [random x to y] ===&lt;br /&gt;
----&lt;br /&gt;
This function is more specialized than [one of][or][at random], lending itself well to optimization. Note that it only accepts numerical input (negatives included) and that &#039;y&#039; should be greater than &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]2[or]3[or]4[or]5[or]6[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[random 1 to 6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complex [one of][or][at random] statement converted into a [random x to y] statement.&lt;br /&gt;
&lt;br /&gt;
Note that [with odds: ] has superseded much [case ]-statement with [random x to y] optimization wizardry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is a work in progress and is thus subject to change. All views and opinions expressed in here are solely Songb&#039;s. Please only modify with either A) explicit permission to do so, or B) a fix for known factual inaccuracy / grammar errors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]][[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580481</id>
		<title>String Parsing Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580481"/>
		<updated>2017-06-10T03:18:01Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* [one of][or][at random] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt; String Parsing is a powerful language for designing content on the Flexible Survival MUCK. The language permits read functions, write functions, and allows users to create dynamic content based on a combination of those functions. Its semantics were originally designed by Damaged and later rewritten by Fauna for increased performance.&lt;br /&gt;
&lt;br /&gt;
String Parsing, like other markup languages, does cause a hit in performance when inserted into plain text. This article exists to provide solutions for those seeking to squeeze the most performance out of their code. It will not tell you how to write clean or legible code, NOR will it teach you the fundamental markup of String Parsing. For information on those subjects, see the wiki article on [http://wiki.flexiblesurvival.com/w/String_Parsing String Parsing] and review the in-game manual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performance: Why should I care? ==&lt;br /&gt;
&lt;br /&gt;
Performance is important for a number of reasons. &lt;br /&gt;
:Optimized code reduces the perceived latency of navigation in a MUCK. Doing so should be enjoyable on even the most sluggish of connections.&lt;br /&gt;
:Optimized code reduces the Flexible Survival server load, thus permitting us to provide more and more detailed user-visible content.&lt;br /&gt;
:Optimized code reduces the memory cost of programs and #dbrefs. In the case of a fatal memory spike or other unforeseen circumstances, the chances of services ceasing function are reduced when baseline memory is kept to a reasonable minimum.&lt;br /&gt;
&lt;br /&gt;
=== How does this relate to String Parsing? ===&lt;br /&gt;
&lt;br /&gt;
String Parsing is a markup language found throughout many aspects of the game. From transformation messages, to sex scenes, to exploration, to NPC interaction, and more, String Parsing is used to provide fresh and dynamic content. As a result, it&#039;s important to ensure that this code is clean, readable, and swift to execute&lt;br /&gt;
&lt;br /&gt;
Strictly speaking, a more important language to keep optimized is the MUF backend that Flexible Survival is based upon. However, since this guide is targeted at a general audience and not Mucker-level or higher staff (who cannot edit MUF code in programs), String Parsing will be the focus.&lt;br /&gt;
&lt;br /&gt;
For the subsequent sections, please use the in-game @viewparse command to indent and colorize markup for better legibility.&lt;br /&gt;
&lt;br /&gt;
== Conditionals ==&lt;br /&gt;
&lt;br /&gt;
=== [if ][end if] ===&lt;br /&gt;
----&lt;br /&gt;
A basic [if ] statement is prone to some syntactic errors, but little in terms of optimization woes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always use the template [if [target] is &amp;lt;gender&amp;gt;] and [if time is &amp;lt;time of day/season&amp;gt;]. Do not use [if [target] = &amp;lt;gender&amp;gt;] or [if time = &amp;lt;time of day/season&amp;gt;]. Despite taking less space in the grand scheme of things, the &#039;is&#039; function is specifically optimized for checking a target&#039;s gender and the time of day/season.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if [target] = &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time = &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if [target] is &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Do not check for integers with the &#039;=&#039; sign. This is a function designed to check a string. Use &#039;==&#039; instead.&lt;br /&gt;
Benchmarks have shown that checking directly for an integer is both faster and cleaner.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat cocks of [target] = 1]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if stat cocks of [target] == 1]&lt;br /&gt;
&lt;br /&gt;
Avoid not statements when possible. For example, [if time is not night] is the same as [if time is day].&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not night]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is night]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else] creates potential for redundancy if a coder is not paying attention. Here is a small before-and-after list of sentences, followed by clear instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is day]A woman in tight jeans and an unassuming blouse mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work.[else]A woman in tight jeans and an unassuming blouse would normally man the counter. However, she doesn&#039;t appear to be here right now.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;A woman in tight jeans and an unassuming blouse [if time is day]mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work[else]would normally man the counter. However, she doesn&#039;t appear to be here right now[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, repeated text has been removed from the [if ] statement itself and added as prefix. This provides the exact same user-visible output with less characters. Processing requirements are almost identical, but the text fits in less space and is just as readable.&lt;br /&gt;
&lt;br /&gt;
Note: It&#039;s generally preferred to not cut off letters in words. Punctuation can be moved outside, but chopping up words results in text that is much less legible to people with screen readers.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else if ] introduces further potential for code slowdown. Please read the following steps carefully to avoid that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest.[else if [player] is female]easily ignore the Skunk Girl&#039;s attempts to seduce you.[else]easily ignore the Skunk Girl&#039;s attempts to seduce you. Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest[else]easily ignore the Skunk Girl&#039;s attempts to seduce you[end if].[if [player] is neuter] Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a lengthy [if ][else if ][else][end if] statement is deconstructed into [if ][else][end if][if ][end if].&lt;br /&gt;
&lt;br /&gt;
Converge the [else if ] and [else] statements into a single [else]. Move the neuter check into a separate [if ] statement at the end. Move the trailing periods in the [if ][else][end if] statement before the start of the neuter check. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;The [if time is morning]sun is rising, stirring all forms of life into motion[else if time is afternoon]sun is high, baking the earth with its furious light[else if time is evening]sun is starting to set, casting the land in long shadows[else]moon shines over the land[end if].&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is night]moon shines over the land[else if time is morning]sun is rising, stirring all forms of life into motion[else if time is evening]sun is starting to set, casting the land in long shadows[else]sun is high, baking the earth with its furious light[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a couple optimizations are made.&lt;br /&gt;
&lt;br /&gt;
Place [if time is night] at the front. This is the longest period of time outside of &#039;day&#039; (which is not used here), and ensuring it triggers first saves execution costs throughout most of the 24-hour cycle. Use the check for &#039;afternoon&#039; as the final [else], because even though it is just as long a period as morning and evening, the name has more characters in it.&lt;br /&gt;
&lt;br /&gt;
=== [case ] ===&lt;br /&gt;
----&lt;br /&gt;
Case-statements are useful where lengthy [if ][else if ][end if] statements would result in redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[case stat X of [target] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat X of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If something is valid parsing on its own, such as &#039;[stat X of [target]]&#039; and &#039;[the mutation X of [target]]&#039;, use that, so the statement will only have to be parsed once instead of in every [when ]-statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat blah/bluh/bleh of [target] == 1]A[else if stat blah/bluh/bleh of [target] == 2]B[else if stat blah/bluh/bleh of [target] == 3]C[else if stat blah/bluh/bleh of [target] == 4]D[else if stat blah/bluh/bleh of [target] == 5]E[else]F[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat blah/bluh/bleh of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when (target) 5]E[end when][when 1]F[end when][end case]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a complex [if ][else if ][end if] statement is optimized.&lt;br /&gt;
&lt;br /&gt;
Convert the code to a basic case-statement. Since all comparisons are alike, remove them from their [when ] statements and append one to [case (target)]. Add brackets around &#039;stat blah/bluh of [player]&#039; to avoid computing that in every [when ] statement.&lt;br /&gt;
&lt;br /&gt;
== Randomization ==&lt;br /&gt;
&lt;br /&gt;
The following functions display content at random. Input is separated by [or].&lt;br /&gt;
&lt;br /&gt;
=== [one of][or][at random] ===&lt;br /&gt;
----&lt;br /&gt;
The standard [one of][or][at random] statement is prone to redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times,[or]Sometimes,[at random] he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times[or]Sometimes[at random], he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, redundancy is fixed by moving a comma after [at random].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [with odds: ] ====&lt;br /&gt;
&lt;br /&gt;
[with odds: ] allows you to simplify many longer [one of] statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]1[or]1[or]2[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[with odds: 5 1]&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]2[or]2[or]3[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[or]3[with odds: 3 2 1]&lt;br /&gt;
&lt;br /&gt;
=== [random x to y] ===&lt;br /&gt;
----&lt;br /&gt;
This function is more specialized than [one of][or][at random], lending itself well to optimization. Note that it only accepts numerical input (negatives included) and that &#039;y&#039; should be greater than &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]2[or]3[or]4[or]5[or]6[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[random 1 to 6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complex [one of][or][at random] statement converted into a [random x to y] statement.&lt;br /&gt;
&lt;br /&gt;
Note that [with odds: ] has superseded much [case ]-statement with [random x to y] optimization wizardry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is a work in progress and is thus subject to change. All views and opinions expressed in here are solely Songbird&#039;s. Please only modify with either A), explicit permission to do so, or B), a fix for known factual inaccuracy / grammar errors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]][[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580480</id>
		<title>String Parsing Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580480"/>
		<updated>2017-06-10T03:13:23Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* [if ][else if ][else][end if] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt; String Parsing is a powerful language for designing content on the Flexible Survival MUCK. The language permits read functions, write functions, and allows users to create dynamic content based on a combination of those functions. Its semantics were originally designed by Damaged and later rewritten by Fauna for increased performance.&lt;br /&gt;
&lt;br /&gt;
String Parsing, like other markup languages, does cause a hit in performance when inserted into plain text. This article exists to provide solutions for those seeking to squeeze the most performance out of their code. It will not tell you how to write clean or legible code, NOR will it teach you the fundamental markup of String Parsing. For information on those subjects, see the wiki article on [http://wiki.flexiblesurvival.com/w/String_Parsing String Parsing] and review the in-game manual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performance: Why should I care? ==&lt;br /&gt;
&lt;br /&gt;
Performance is important for a number of reasons. &lt;br /&gt;
:Optimized code reduces the perceived latency of navigation in a MUCK. Doing so should be enjoyable on even the most sluggish of connections.&lt;br /&gt;
:Optimized code reduces the Flexible Survival server load, thus permitting us to provide more and more detailed user-visible content.&lt;br /&gt;
:Optimized code reduces the memory cost of programs and #dbrefs. In the case of a fatal memory spike or other unforeseen circumstances, the chances of services ceasing function are reduced when baseline memory is kept to a reasonable minimum.&lt;br /&gt;
&lt;br /&gt;
=== How does this relate to String Parsing? ===&lt;br /&gt;
&lt;br /&gt;
String Parsing is a markup language found throughout many aspects of the game. From transformation messages, to sex scenes, to exploration, to NPC interaction, and more, String Parsing is used to provide fresh and dynamic content. As a result, it&#039;s important to ensure that this code is clean, readable, and swift to execute&lt;br /&gt;
&lt;br /&gt;
Strictly speaking, a more important language to keep optimized is the MUF backend that Flexible Survival is based upon. However, since this guide is targeted at a general audience and not Mucker-level or higher staff (who cannot edit MUF code in programs), String Parsing will be the focus.&lt;br /&gt;
&lt;br /&gt;
For the subsequent sections, please use the in-game @viewparse command to indent and colorize markup for better legibility.&lt;br /&gt;
&lt;br /&gt;
== Conditionals ==&lt;br /&gt;
&lt;br /&gt;
=== [if ][end if] ===&lt;br /&gt;
----&lt;br /&gt;
A basic [if ] statement is prone to some syntactic errors, but little in terms of optimization woes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always use the template [if [target] is &amp;lt;gender&amp;gt;] and [if time is &amp;lt;time of day/season&amp;gt;]. Do not use [if [target] = &amp;lt;gender&amp;gt;] or [if time = &amp;lt;time of day/season&amp;gt;]. Despite taking less space in the grand scheme of things, the &#039;is&#039; function is specifically optimized for checking a target&#039;s gender and the time of day/season.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if [target] = &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time = &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if [target] is &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Do not check for integers with the &#039;=&#039; sign. This is a function designed to check a string. Use &#039;==&#039; instead.&lt;br /&gt;
Benchmarks have shown that checking directly for an integer is both faster and cleaner.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat cocks of [target] = 1]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if stat cocks of [target] == 1]&lt;br /&gt;
&lt;br /&gt;
Avoid not statements when possible. For example, [if time is not night] is the same as [if time is day].&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not night]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is night]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else] creates potential for redundancy if a coder is not paying attention. Here is a small before-and-after list of sentences, followed by clear instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is day]A woman in tight jeans and an unassuming blouse mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work.[else]A woman in tight jeans and an unassuming blouse would normally man the counter. However, she doesn&#039;t appear to be here right now.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;A woman in tight jeans and an unassuming blouse [if time is day]mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work[else]would normally man the counter. However, she doesn&#039;t appear to be here right now[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, repeated text has been removed from the [if ] statement itself and added as prefix. This provides the exact same user-visible output with less characters. Processing requirements are almost identical, but the text fits in less space and is just as readable.&lt;br /&gt;
&lt;br /&gt;
Note: It&#039;s generally preferred to not cut off letters in words. Punctuation can be moved outside, but chopping up words results in text that is much less legible to people with screen readers.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else if ] introduces further potential for code slowdown. Please read the following steps carefully to avoid that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest.[else if [player] is female]easily ignore the Skunk Girl&#039;s attempts to seduce you.[else]easily ignore the Skunk Girl&#039;s attempts to seduce you. Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest[else]easily ignore the Skunk Girl&#039;s attempts to seduce you[end if].[if [player] is neuter] Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a lengthy [if ][else if ][else][end if] statement is deconstructed into [if ][else][end if][if ][end if].&lt;br /&gt;
&lt;br /&gt;
Converge the [else if ] and [else] statements into a single [else]. Move the neuter check into a separate [if ] statement at the end. Move the trailing periods in the [if ][else][end if] statement before the start of the neuter check. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;The [if time is morning]sun is rising, stirring all forms of life into motion[else if time is afternoon]sun is high, baking the earth with its furious light[else if time is evening]sun is starting to set, casting the land in long shadows[else]moon shines over the land[end if].&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is night]moon shines over the land[else if time is morning]sun is rising, stirring all forms of life into motion[else if time is evening]sun is starting to set, casting the land in long shadows[else]sun is high, baking the earth with its furious light[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a couple optimizations are made.&lt;br /&gt;
&lt;br /&gt;
Place [if time is night] at the front. This is the longest period of time outside of &#039;day&#039; (which is not used here), and ensuring it triggers first saves execution costs throughout most of the 24-hour cycle. Use the check for &#039;afternoon&#039; as the final [else], because even though it is just as long a period as morning and evening, the name has more characters in it.&lt;br /&gt;
&lt;br /&gt;
=== [case ] ===&lt;br /&gt;
----&lt;br /&gt;
Case-statements are useful where lengthy [if ][else if ][end if] statements would result in redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[case stat X of [target] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat X of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If something is valid parsing on its own, such as &#039;[stat X of [target]]&#039; and &#039;[the mutation X of [target]]&#039;, use that, so the statement will only have to be parsed once instead of in every [when ]-statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat blah/bluh/bleh of [target] == 1]A[else if stat blah/bluh/bleh of [target] == 2]B[else if stat blah/bluh/bleh of [target] == 3]C[else if stat blah/bluh/bleh of [target] == 4]D[else if stat blah/bluh/bleh of [target] == 5]E[else]F[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat blah/bluh/bleh of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when (target) 5]E[end when][when 1]F[end when][end case]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a complex [if ][else if ][end if] statement is optimized.&lt;br /&gt;
&lt;br /&gt;
Convert the code to a basic case-statement. Since all comparisons are alike, remove them from their [when ] statements and append one to [case (target)]. Add brackets around &#039;stat blah/bluh of [player]&#039; to avoid computing that in every [when ] statement.&lt;br /&gt;
&lt;br /&gt;
== Randomization ==&lt;br /&gt;
&lt;br /&gt;
The following functions display content at random. Input is separated by [or].&lt;br /&gt;
&lt;br /&gt;
=== [one of][or][at random] ===&lt;br /&gt;
----&lt;br /&gt;
The standard [one of][or][at random] statement is prone to redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times,[or]Sometimes,[at random] he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other [or]Some[at random]times, he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, redundancy is nixed by moving a string shared by all inputs after [at random].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [with odds: ] ====&lt;br /&gt;
&lt;br /&gt;
[with odds: ] allows you to simplify many longer [one of] statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]1[or]1[or]2[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[with odds: 5 1]&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]2[or]2[or]3[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[or]3[with odds: 3 2 1]&lt;br /&gt;
&lt;br /&gt;
=== [random x to y] ===&lt;br /&gt;
----&lt;br /&gt;
This function is more specialized than [one of][or][at random], lending itself well to optimization. Note that it only accepts numerical input (negatives included) and that &#039;y&#039; should be greater than &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]2[or]3[or]4[or]5[or]6[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[random 1 to 6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complex [one of][or][at random] statement converted into a [random x to y] statement.&lt;br /&gt;
&lt;br /&gt;
Note that [with odds: ] has superseded much [case ]-statement with [random x to y] optimization wizardry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is a work in progress and is thus subject to change. All views and opinions expressed in here are solely Songbird&#039;s. Please only modify with either A), explicit permission to do so, or B), a fix for known factual inaccuracy / grammar errors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]][[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580479</id>
		<title>String Parsing Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580479"/>
		<updated>2017-06-10T03:11:38Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* [if ][else][end if] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt; String Parsing is a powerful language for designing content on the Flexible Survival MUCK. The language permits read functions, write functions, and allows users to create dynamic content based on a combination of those functions. Its semantics were originally designed by Damaged and later rewritten by Fauna for increased performance.&lt;br /&gt;
&lt;br /&gt;
String Parsing, like other markup languages, does cause a hit in performance when inserted into plain text. This article exists to provide solutions for those seeking to squeeze the most performance out of their code. It will not tell you how to write clean or legible code, NOR will it teach you the fundamental markup of String Parsing. For information on those subjects, see the wiki article on [http://wiki.flexiblesurvival.com/w/String_Parsing String Parsing] and review the in-game manual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performance: Why should I care? ==&lt;br /&gt;
&lt;br /&gt;
Performance is important for a number of reasons. &lt;br /&gt;
:Optimized code reduces the perceived latency of navigation in a MUCK. Doing so should be enjoyable on even the most sluggish of connections.&lt;br /&gt;
:Optimized code reduces the Flexible Survival server load, thus permitting us to provide more and more detailed user-visible content.&lt;br /&gt;
:Optimized code reduces the memory cost of programs and #dbrefs. In the case of a fatal memory spike or other unforeseen circumstances, the chances of services ceasing function are reduced when baseline memory is kept to a reasonable minimum.&lt;br /&gt;
&lt;br /&gt;
=== How does this relate to String Parsing? ===&lt;br /&gt;
&lt;br /&gt;
String Parsing is a markup language found throughout many aspects of the game. From transformation messages, to sex scenes, to exploration, to NPC interaction, and more, String Parsing is used to provide fresh and dynamic content. As a result, it&#039;s important to ensure that this code is clean, readable, and swift to execute&lt;br /&gt;
&lt;br /&gt;
Strictly speaking, a more important language to keep optimized is the MUF backend that Flexible Survival is based upon. However, since this guide is targeted at a general audience and not Mucker-level or higher staff (who cannot edit MUF code in programs), String Parsing will be the focus.&lt;br /&gt;
&lt;br /&gt;
For the subsequent sections, please use the in-game @viewparse command to indent and colorize markup for better legibility.&lt;br /&gt;
&lt;br /&gt;
== Conditionals ==&lt;br /&gt;
&lt;br /&gt;
=== [if ][end if] ===&lt;br /&gt;
----&lt;br /&gt;
A basic [if ] statement is prone to some syntactic errors, but little in terms of optimization woes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always use the template [if [target] is &amp;lt;gender&amp;gt;] and [if time is &amp;lt;time of day/season&amp;gt;]. Do not use [if [target] = &amp;lt;gender&amp;gt;] or [if time = &amp;lt;time of day/season&amp;gt;]. Despite taking less space in the grand scheme of things, the &#039;is&#039; function is specifically optimized for checking a target&#039;s gender and the time of day/season.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if [target] = &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time = &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if [target] is &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Do not check for integers with the &#039;=&#039; sign. This is a function designed to check a string. Use &#039;==&#039; instead.&lt;br /&gt;
Benchmarks have shown that checking directly for an integer is both faster and cleaner.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat cocks of [target] = 1]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if stat cocks of [target] == 1]&lt;br /&gt;
&lt;br /&gt;
Avoid not statements when possible. For example, [if time is not night] is the same as [if time is day].&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not night]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is night]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else] creates potential for redundancy if a coder is not paying attention. Here is a small before-and-after list of sentences, followed by clear instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is day]A woman in tight jeans and an unassuming blouse mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work.[else]A woman in tight jeans and an unassuming blouse would normally man the counter. However, she doesn&#039;t appear to be here right now.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;A woman in tight jeans and an unassuming blouse [if time is day]mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work[else]would normally man the counter. However, she doesn&#039;t appear to be here right now[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, repeated text has been removed from the [if ] statement itself and added as prefix. This provides the exact same user-visible output with less characters. Processing requirements are almost identical, but the text fits in less space and is just as readable.&lt;br /&gt;
&lt;br /&gt;
Note: It&#039;s generally preferred to not cut off letters in words. Punctuation can be moved outside, but chopping up words results in text that is much less legible to people with screen readers.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else if ] introduces further potential for code slowdown. Please read the following steps carefully to avoid that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest.[else if [player] is female]easily ignore the Skunk Girl&#039;s attempts to seduce you.[else]easily ignore the Skunk Girl&#039;s attempts to seduce you. Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest[else]easily ignore the Skunk Girl&#039;s attempts to seduce you[end if].[if [player] is neuter] Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a lengthy [if ][else if ][else][end if] statement is deconstructed into [if ][else][end if][if ][end if].&lt;br /&gt;
&lt;br /&gt;
Converge the [else if ] and [else] statements into a single [else]. Move the neuter check into a separate [if ] statement at the end. Move the trailing periods in the [if ][else][end if] statement before the start of the neuter check. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;The [if time is morning]sun is rising, stirring all forms of life into motion[else if time is afternoon]sun is high, baking the earth with its furious light[else if time is evening]sun is starting to set, casting the land in long shadows[else]moon shines over the land[end if].&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is night]moon shines over the land[else if time is morning]sun is rising, stirring all forms of life into motion[else if time is evening]sun is starting to set, casting the land in long shadows[else]sun is high, baking the earth with its furious light[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a couple optimizations are made.&lt;br /&gt;
&lt;br /&gt;
Place [if time is night] at the front. This is the longest period of time and ensuring it triggers first saves execution costs throughout most of the 24-hour cycle. Use the check for &#039;afternoon&#039; as the final [else], because even though it is just as long a period as morning and evening, the name has more characters in it.&lt;br /&gt;
&lt;br /&gt;
=== [case ] ===&lt;br /&gt;
----&lt;br /&gt;
Case-statements are useful where lengthy [if ][else if ][end if] statements would result in redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[case stat X of [target] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat X of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If something is valid parsing on its own, such as &#039;[stat X of [target]]&#039; and &#039;[the mutation X of [target]]&#039;, use that, so the statement will only have to be parsed once instead of in every [when ]-statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat blah/bluh/bleh of [target] == 1]A[else if stat blah/bluh/bleh of [target] == 2]B[else if stat blah/bluh/bleh of [target] == 3]C[else if stat blah/bluh/bleh of [target] == 4]D[else if stat blah/bluh/bleh of [target] == 5]E[else]F[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat blah/bluh/bleh of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when (target) 5]E[end when][when 1]F[end when][end case]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a complex [if ][else if ][end if] statement is optimized.&lt;br /&gt;
&lt;br /&gt;
Convert the code to a basic case-statement. Since all comparisons are alike, remove them from their [when ] statements and append one to [case (target)]. Add brackets around &#039;stat blah/bluh of [player]&#039; to avoid computing that in every [when ] statement.&lt;br /&gt;
&lt;br /&gt;
== Randomization ==&lt;br /&gt;
&lt;br /&gt;
The following functions display content at random. Input is separated by [or].&lt;br /&gt;
&lt;br /&gt;
=== [one of][or][at random] ===&lt;br /&gt;
----&lt;br /&gt;
The standard [one of][or][at random] statement is prone to redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times,[or]Sometimes,[at random] he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other [or]Some[at random]times, he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, redundancy is nixed by moving a string shared by all inputs after [at random].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [with odds: ] ====&lt;br /&gt;
&lt;br /&gt;
[with odds: ] allows you to simplify many longer [one of] statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]1[or]1[or]2[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[with odds: 5 1]&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]2[or]2[or]3[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[or]3[with odds: 3 2 1]&lt;br /&gt;
&lt;br /&gt;
=== [random x to y] ===&lt;br /&gt;
----&lt;br /&gt;
This function is more specialized than [one of][or][at random], lending itself well to optimization. Note that it only accepts numerical input (negatives included) and that &#039;y&#039; should be greater than &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]2[or]3[or]4[or]5[or]6[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[random 1 to 6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complex [one of][or][at random] statement converted into a [random x to y] statement.&lt;br /&gt;
&lt;br /&gt;
Note that [with odds: ] has superseded much [case ]-statement with [random x to y] optimization wizardry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is a work in progress and is thus subject to change. All views and opinions expressed in here are solely Songbird&#039;s. Please only modify with either A), explicit permission to do so, or B), a fix for known factual inaccuracy / grammar errors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]][[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580478</id>
		<title>String Parsing Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580478"/>
		<updated>2017-06-10T03:05:27Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* Conditionals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt; String Parsing is a powerful language for designing content on the Flexible Survival MUCK. The language permits read functions, write functions, and allows users to create dynamic content based on a combination of those functions. Its semantics were originally designed by Damaged and later rewritten by Fauna for increased performance.&lt;br /&gt;
&lt;br /&gt;
String Parsing, like other markup languages, does cause a hit in performance when inserted into plain text. This article exists to provide solutions for those seeking to squeeze the most performance out of their code. It will not tell you how to write clean or legible code, NOR will it teach you the fundamental markup of String Parsing. For information on those subjects, see the wiki article on [http://wiki.flexiblesurvival.com/w/String_Parsing String Parsing] and review the in-game manual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performance: Why should I care? ==&lt;br /&gt;
&lt;br /&gt;
Performance is important for a number of reasons. &lt;br /&gt;
:Optimized code reduces the perceived latency of navigation in a MUCK. Doing so should be enjoyable on even the most sluggish of connections.&lt;br /&gt;
:Optimized code reduces the Flexible Survival server load, thus permitting us to provide more and more detailed user-visible content.&lt;br /&gt;
:Optimized code reduces the memory cost of programs and #dbrefs. In the case of a fatal memory spike or other unforeseen circumstances, the chances of services ceasing function are reduced when baseline memory is kept to a reasonable minimum.&lt;br /&gt;
&lt;br /&gt;
=== How does this relate to String Parsing? ===&lt;br /&gt;
&lt;br /&gt;
String Parsing is a markup language found throughout many aspects of the game. From transformation messages, to sex scenes, to exploration, to NPC interaction, and more, String Parsing is used to provide fresh and dynamic content. As a result, it&#039;s important to ensure that this code is clean, readable, and swift to execute&lt;br /&gt;
&lt;br /&gt;
Strictly speaking, a more important language to keep optimized is the MUF backend that Flexible Survival is based upon. However, since this guide is targeted at a general audience and not Mucker-level or higher staff (who cannot edit MUF code in programs), String Parsing will be the focus.&lt;br /&gt;
&lt;br /&gt;
For the subsequent sections, please use the in-game @viewparse command to indent and colorize markup for better legibility.&lt;br /&gt;
&lt;br /&gt;
== Conditionals ==&lt;br /&gt;
&lt;br /&gt;
=== [if ][end if] ===&lt;br /&gt;
----&lt;br /&gt;
A basic [if ] statement is prone to some syntactic errors, but little in terms of optimization woes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always use the template [if [target] is &amp;lt;gender&amp;gt;] and [if time is &amp;lt;time of day/season&amp;gt;]. Do not use [if [target] = &amp;lt;gender&amp;gt;] or [if time = &amp;lt;time of day/season&amp;gt;]. Despite taking less space in the grand scheme of things, the &#039;is&#039; function is specifically optimized for checking a target&#039;s gender and the time of day/season.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if [target] = &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time = &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if [target] is &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Do not check for integers with the &#039;=&#039; sign. This is a function designed to check a string. Use &#039;==&#039; instead.&lt;br /&gt;
Benchmarks have shown that checking directly for an integer is both faster and cleaner.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat cocks of [target] = 1]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if stat cocks of [target] == 1]&lt;br /&gt;
&lt;br /&gt;
Avoid not statements when possible. For example, [if time is not night] is the same as [if time is day].&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not night]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is night]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else] creates potential for redundancy if a coder is not paying attention. Here is a small before-and-after list of sentences, followed by clear instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is winter]The large bear returned to his cave to hibernate.[else]The small fox jumped over the fence.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is winter]large bear returned to his cave to hibernat[else]small fox jumped over the fenc[end if]e.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, repeated text has been removed from the [if ] statement itself and added as prefix and suffix to the code, respectively. This provides the exact same user-visible output with less characters and processing requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is day]A woman in tight jeans and an unassuming blouse mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work.[else]A woman in tight jeans and an unassuming blouse would normally man the counter. However, she doesn&#039;t appear to be here right now.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;A woman in tight jeans and an unassuming blouse [if time is day]mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work[else]would normally man the counter. However, she doesn&#039;t appear to be here right now[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See above. Repeated text is removed from the [if ] statement itself and added as prefix and suffix to the code, respectively.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else if ] introduces further potential for code slowdown. Please read the following steps carefully to avoid that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest.[else if [player] is female]easily ignore the Skunk Girl&#039;s attempts to seduce you.[else]easily ignore the Skunk Girl&#039;s attempts to seduce you. Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest[else]easily ignore the Skunk Girl&#039;s attempts to seduce you[end if].[if [player] is neuter] Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a lengthy [if ][else if ][else][end if] statement is deconstructed into [if ][else][end if][if ][end if].&lt;br /&gt;
&lt;br /&gt;
Converge the [else if ] and [else] statements into a single [else]. Move the neuter check into a separate [if ] statement at the end. Move the trailing periods in the [if ][else][end if] statement before the start of the neuter check. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;The [if time is morning]sun is rising, stirring all forms of life into motion[else if time is afternoon]sun is high, baking the earth with its furious light[else if time is evening]sun is starting to set, casting the land in long shadows[else]moon shines over the land[end if].&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is night]moon shines over the land[else if time is morning]sun is rising, stirring all forms of life into motion[else if time is evening]sun is starting to set, casting the land in long shadows[else]sun is high, baking the earth with its furious light[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a couple optimizations are made.&lt;br /&gt;
&lt;br /&gt;
Place [if time is night] at the front. This is the longest period of time and ensuring it triggers first saves execution costs throughout most of the 24-hour cycle. Use the check for &#039;afternoon&#039; as the final [else], because even though it is just as long a period as morning and evening, the name has more characters in it.&lt;br /&gt;
&lt;br /&gt;
=== [case ] ===&lt;br /&gt;
----&lt;br /&gt;
Case-statements are useful where lengthy [if ][else if ][end if] statements would result in redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[case stat X of [target] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat X of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If something is valid parsing on its own, such as &#039;[stat X of [target]]&#039; and &#039;[the mutation X of [target]]&#039;, use that, so the statement will only have to be parsed once instead of in every [when ]-statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat blah/bluh/bleh of [target] == 1]A[else if stat blah/bluh/bleh of [target] == 2]B[else if stat blah/bluh/bleh of [target] == 3]C[else if stat blah/bluh/bleh of [target] == 4]D[else if stat blah/bluh/bleh of [target] == 5]E[else]F[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat blah/bluh/bleh of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when (target) 5]E[end when][when 1]F[end when][end case]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a complex [if ][else if ][end if] statement is optimized.&lt;br /&gt;
&lt;br /&gt;
Convert the code to a basic case-statement. Since all comparisons are alike, remove them from their [when ] statements and append one to [case (target)]. Add brackets around &#039;stat blah/bluh of [player]&#039; to avoid computing that in every [when ] statement.&lt;br /&gt;
&lt;br /&gt;
== Randomization ==&lt;br /&gt;
&lt;br /&gt;
The following functions display content at random. Input is separated by [or].&lt;br /&gt;
&lt;br /&gt;
=== [one of][or][at random] ===&lt;br /&gt;
----&lt;br /&gt;
The standard [one of][or][at random] statement is prone to redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times,[or]Sometimes,[at random] he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other [or]Some[at random]times, he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, redundancy is nixed by moving a string shared by all inputs after [at random].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [with odds: ] ====&lt;br /&gt;
&lt;br /&gt;
[with odds: ] allows you to simplify many longer [one of] statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]1[or]1[or]2[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[with odds: 5 1]&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]2[or]2[or]3[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[or]3[with odds: 3 2 1]&lt;br /&gt;
&lt;br /&gt;
=== [random x to y] ===&lt;br /&gt;
----&lt;br /&gt;
This function is more specialized than [one of][or][at random], lending itself well to optimization. Note that it only accepts numerical input (negatives included) and that &#039;y&#039; should be greater than &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]2[or]3[or]4[or]5[or]6[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[random 1 to 6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complex [one of][or][at random] statement converted into a [random x to y] statement.&lt;br /&gt;
&lt;br /&gt;
Note that [with odds: ] has superseded much [case ]-statement with [random x to y] optimization wizardry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is a work in progress and is thus subject to change. All views and opinions expressed in here are solely Songbird&#039;s. Please only modify with either A), explicit permission to do so, or B), a fix for known factual inaccuracy / grammar errors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]][[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580477</id>
		<title>String Parsing Optimization</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=String_Parsing_Optimization&amp;diff=580477"/>
		<updated>2017-06-10T03:03:17Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: /* How does this relate to String Parsing? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt; String Parsing is a powerful language for designing content on the Flexible Survival MUCK. The language permits read functions, write functions, and allows users to create dynamic content based on a combination of those functions. Its semantics were originally designed by Damaged and later rewritten by Fauna for increased performance.&lt;br /&gt;
&lt;br /&gt;
String Parsing, like other markup languages, does cause a hit in performance when inserted into plain text. This article exists to provide solutions for those seeking to squeeze the most performance out of their code. It will not tell you how to write clean or legible code, NOR will it teach you the fundamental markup of String Parsing. For information on those subjects, see the wiki article on [http://wiki.flexiblesurvival.com/w/String_Parsing String Parsing] and review the in-game manual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Performance: Why should I care? ==&lt;br /&gt;
&lt;br /&gt;
Performance is important for a number of reasons. &lt;br /&gt;
:Optimized code reduces the perceived latency of navigation in a MUCK. Doing so should be enjoyable on even the most sluggish of connections.&lt;br /&gt;
:Optimized code reduces the Flexible Survival server load, thus permitting us to provide more and more detailed user-visible content.&lt;br /&gt;
:Optimized code reduces the memory cost of programs and #dbrefs. In the case of a fatal memory spike or other unforeseen circumstances, the chances of services ceasing function are reduced when baseline memory is kept to a reasonable minimum.&lt;br /&gt;
&lt;br /&gt;
=== How does this relate to String Parsing? ===&lt;br /&gt;
&lt;br /&gt;
String Parsing is a markup language found throughout many aspects of the game. From transformation messages, to sex scenes, to exploration, to NPC interaction, and more, String Parsing is used to provide fresh and dynamic content. As a result, it&#039;s important to ensure that this code is clean, readable, and swift to execute&lt;br /&gt;
&lt;br /&gt;
Strictly speaking, a more important language to keep optimized is the MUF backend that Flexible Survival is based upon. However, since this guide is targeted at a general audience and not Mucker-level or higher staff (who cannot edit MUF code in programs), String Parsing will be the focus.&lt;br /&gt;
&lt;br /&gt;
For the subsequent sections, please use the in-game @viewparse command to indent and colorize markup for better legibility.&lt;br /&gt;
&lt;br /&gt;
== Conditionals ==&lt;br /&gt;
&lt;br /&gt;
Conditionals are the heart, brain, and skeletal structure of the String Parsing body.&lt;br /&gt;
&lt;br /&gt;
=== [if ][end if] ===&lt;br /&gt;
----&lt;br /&gt;
A basic [if ] statement is prone to some syntactic errors, but little in terms of optimization woes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always use the template [if [target] is &amp;lt;gender&amp;gt;] and [if time is &amp;lt;time of day/season&amp;gt;]. Do not use [if [target] = &amp;lt;gender&amp;gt;] or [if time = &amp;lt;time of day/season&amp;gt;]. Despite taking less space in the grand scheme of things, the &#039;is&#039; function is specifically optimized for checking a target&#039;s gender and the time of day/season.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if [target] = &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time = &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if [target] is &amp;lt;gender&amp;gt;]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is &amp;lt;time of day/season&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Do not check for integers with the &#039;=&#039; sign. This is a function designed to check a string. Use &#039;==&#039; instead.&lt;br /&gt;
Benchmarks have shown that checking directly for an integer is both faster and cleaner.&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat cocks of [target] = 1]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if stat cocks of [target] == 1]&lt;br /&gt;
&lt;br /&gt;
Avoid not statements when possible. For example, [if time is not night] is the same as [if time is day].&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not night]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is not day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is day]&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[if time is night]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else] creates potential for redundancy if a coder is not paying attention. Here is a small before-and-after list of sentences, followed by clear instruction.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is winter]The large bear returned to his cave to hibernate.[else]The small fox jumped over the fence.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is winter]large bear returned to his cave to hibernat[else]small fox jumped over the fenc[end if]e.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, repeated text has been removed from the [if ] statement itself and added as prefix and suffix to the code, respectively. This provides the exact same user-visible output with less characters and processing requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if time is day]A woman in tight jeans and an unassuming blouse mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work.[else]A woman in tight jeans and an unassuming blouse would normally man the counter. However, she doesn&#039;t appear to be here right now.[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;A woman in tight jeans and an unassuming blouse [if time is day]mans the counter. She&#039;s twirling a pen in her fingers, seemingly disinterested in her body of work[else]would normally man the counter. However, she doesn&#039;t appear to be here right now[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See above. Repeated text is removed from the [if ] statement itself and added as prefix and suffix to the code, respectively.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [if ][else if ][else][end if] ===&lt;br /&gt;
----&lt;br /&gt;
[else if ] introduces further potential for code slowdown. Please read the following steps carefully to avoid that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest.[else if [player] is female]easily ignore the Skunk Girl&#039;s attempts to seduce you.[else]easily ignore the Skunk Girl&#039;s attempts to seduce you. Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;You [if [player] is male]try not to grow aroused by the Skunk Girl&#039;s sumptuous body, whining in protest[else]easily ignore the Skunk Girl&#039;s attempts to seduce you[end if].[if [player] is neuter] Neuters 4ever![end if]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a lengthy [if ][else if ][else][end if] statement is deconstructed into [if ][else][end if][if ][end if].&lt;br /&gt;
&lt;br /&gt;
Converge the [else if ] and [else] statements into a single [else]. Move the neuter check into a separate [if ] statement at the end. Move the trailing periods in the [if ][else][end if] statement before the start of the neuter check. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;The [if time is morning]sun is rising, stirring all forms of life into motion[else if time is afternoon]sun is high, baking the earth with its furious light[else if time is evening]sun is starting to set, casting the land in long shadows[else]moon shines over the land[end if].&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;The [if time is night]moon shines over the land[else if time is morning]sun is rising, stirring all forms of life into motion[else if time is evening]sun is starting to set, casting the land in long shadows[else]sun is high, baking the earth with its furious light[end if].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a couple optimizations are made.&lt;br /&gt;
&lt;br /&gt;
Place [if time is night] at the front. This is the longest period of time and ensuring it triggers first saves execution costs throughout most of the 24-hour cycle. Use the check for &#039;afternoon&#039; as the final [else], because even though it is just as long a period as morning and evening, the name has more characters in it.&lt;br /&gt;
&lt;br /&gt;
=== [case ] ===&lt;br /&gt;
----&lt;br /&gt;
Case-statements are useful where lengthy [if ][else if ][end if] statements would result in redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[case stat X of [target] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat X of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when 1]E[end when]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If something is valid parsing on its own, such as &#039;[stat X of [target]]&#039; and &#039;[the mutation X of [target]]&#039;, use that, so the statement will only have to be parsed once instead of in every [when ]-statement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[if stat blah/bluh/bleh of [target] == 1]A[else if stat blah/bluh/bleh of [target] == 2]B[else if stat blah/bluh/bleh of [target] == 3]C[else if stat blah/bluh/bleh of [target] == 4]D[else if stat blah/bluh/bleh of [target] == 5]E[else]F[end if]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[case [stat blah/bluh/bleh of [target]] ==][when (target) 1]A[end when][when (target) 2]B[end when][when (target) 3]C[end when][when (target) 4]D[end when][when (target) 5]E[end when][when 1]F[end when][end case]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, a complex [if ][else if ][end if] statement is optimized.&lt;br /&gt;
&lt;br /&gt;
Convert the code to a basic case-statement. Since all comparisons are alike, remove them from their [when ] statements and append one to [case (target)]. Add brackets around &#039;stat blah/bluh of [player]&#039; to avoid computing that in every [when ] statement.&lt;br /&gt;
&lt;br /&gt;
== Randomization ==&lt;br /&gt;
&lt;br /&gt;
The following functions display content at random. Input is separated by [or].&lt;br /&gt;
&lt;br /&gt;
=== [one of][or][at random] ===&lt;br /&gt;
----&lt;br /&gt;
The standard [one of][or][at random] statement is prone to redundancy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other times,[or]Sometimes,[at random] he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;Sometimes, a man&#039;s gotta man. [one of]Other [or]Some[at random]times, he doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the above example, redundancy is nixed by moving a string shared by all inputs after [at random].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [with odds: ] ====&lt;br /&gt;
&lt;br /&gt;
[with odds: ] allows you to simplify many longer [one of] statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]1[or]1[or]2[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[with odds: 5 1]&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]1[or]1[or]2[or]2[or]3[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[one of]1[or]2[or]3[with odds: 3 2 1]&lt;br /&gt;
&lt;br /&gt;
=== [random x to y] ===&lt;br /&gt;
----&lt;br /&gt;
This function is more specialized than [one of][or][at random], lending itself well to optimization. Note that it only accepts numerical input (negatives included) and that &#039;y&#039; should be greater than &#039;x&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;[one of]1[or]2[or]3[or]4[or]5[or]6[at random]&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#008000&amp;quot;&amp;gt;[random 1 to 6]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complex [one of][or][at random] statement converted into a [random x to y] statement.&lt;br /&gt;
&lt;br /&gt;
Note that [with odds: ] has superseded much [case ]-statement with [random x to y] optimization wizardry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is a work in progress and is thus subject to change. All views and opinions expressed in here are solely Songbird&#039;s. Please only modify with either A), explicit permission to do so, or B), a fix for known factual inaccuracy / grammar errors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]][[Category:Code]]&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Writing_Bounties&amp;diff=502732</id>
		<title>Writing Bounties</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Writing_Bounties&amp;diff=502732"/>
		<updated>2016-12-11T01:40:03Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Writing Bounties are bounties for submitting specific content. Submitting a scene that is approved for in-game usage will earn you the posted Mako bounty.&lt;br /&gt;
&lt;br /&gt;
- You do not need to include string parsing in your submission.&lt;br /&gt;
&lt;br /&gt;
- You must submit your scene via +request in the Building category.&lt;br /&gt;
&lt;br /&gt;
Staff can and will edit your submissions as they see fit. Staff word on your submissions is final.&lt;br /&gt;
&lt;br /&gt;
As of 05/04/2014, this is an experimental project to encourage community involvement in content creation.&lt;br /&gt;
&lt;br /&gt;
== Posted Bounties ==&lt;br /&gt;
&lt;br /&gt;
Bounties which are unclaimed and open to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Monsters&lt;br /&gt;
&lt;br /&gt;
For information on writing these scenes, see the in-game helpfile &#039;help monster writing&#039;, as well as the wiki pages on [[Monster Maker#Victory and Defeat Messages|Victory and Defeat messages]] and [[Monster Writing Guide|Monster Writing]] (pages 4-6)&lt;br /&gt;
&lt;br /&gt;
In addition, note that it is NOT necessary to contact the original authors for these bounties. These are old, public forms which require revision. Submissions for their improvement are welcome. You can also write only one scene per list item and leave the rest for another writer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 Mako  - Kemonomimi descriptions and TF message variants (4 for descs and 4 for TFs per monster)&lt;br /&gt;
          Black Panther&lt;br /&gt;
          Busty Cow&lt;br /&gt;
          Cheetah (only TFs)&lt;br /&gt;
          Corporate Cougar&lt;br /&gt;
          Diamond Drake (only TFs)&lt;br /&gt;
          Female Husky (only TFs)&lt;br /&gt;
          Flame Leopard&lt;br /&gt;
          Harbinger Lynx&lt;br /&gt;
          Latex Snow Leopard&lt;br /&gt;
          Liquid Pantheress&lt;br /&gt;
          Lizard Girl (only TFs)&lt;br /&gt;
          Plump Tigress (only TFs)&lt;br /&gt;
          Saber-toothed Bard&lt;br /&gt;
          Saber-toothed Soldier&lt;br /&gt;
          Salamander Femme (only TFs)&lt;br /&gt;
          Skink Skank&lt;br /&gt;
          Small Felinoid&lt;br /&gt;
          Stalking Tigress&lt;br /&gt;
          White Unicorn Mare&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Latex Snow Leopard Victory and oVictory&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Panther Taur Victory and oVictory&lt;br /&gt;
&lt;br /&gt;
12 Mako - Tanuki Victory, oVictory, and Defeat.&lt;br /&gt;
          Although it is a dedication, a defeat in case it is spawned artificially would be welcome.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Existing NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alex the Zebra&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Threesome scene with a cook&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bound Egyptian Mau&lt;br /&gt;
&lt;br /&gt;
5 Mako  - 69 with Mau&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player fucks vaginally&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Obsidian the Shadow Dragon&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female player uses feeldoe to vaginally fuck Obsidian&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female/herm player uses double-dildo&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female/neuter player anally pegs Obsidian&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player gets anally pegged&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player uses Shared Dream Nanomagic for dream threesome with Obsidian and Violet the Blue Gryphon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Skunk Beast (NPC in [Library]: Research Room)&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player willfully submits for an extended scene of rough, brutalizing sex&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Threesome with player, Doctor Hellen, and Skunk Beast in cage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Claimed Bounties ==&lt;br /&gt;
&lt;br /&gt;
Bounties which have been claimed and are being worked on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Monsters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Existing NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Completed Bounties ==&lt;br /&gt;
&lt;br /&gt;
Bounties which have been completed, implemented, and their creators awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Monsters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 Mako  - Kemonomimi descriptions and TF message variants (4 for descs and 4 for TFs per monster)&lt;br /&gt;
          Alpha Husky (only TFs)        - by Arona&lt;br /&gt;
          Blue Gryphon (only descs)     - by Armel&lt;br /&gt;
          Blue Gryphon (only TFs)       - by Machi&lt;br /&gt;
          Bunny Boy                     - by Machi&lt;br /&gt;
          Cheetah (only descs)          - by Armel&lt;br /&gt;
          Chocolate Cow                 - by Machi&lt;br /&gt;
          Dandy Peacock                 - by Sherri&lt;br /&gt;
          Diamond Drake (only descs)    - by Armel&lt;br /&gt;
          Donkey Boy                    - by Machi&lt;br /&gt;
          Farm Hen                      - by Machi&lt;br /&gt;
          Fox Boy                       - by Machi&lt;br /&gt;
          Fox Girl                      - by Machi&lt;br /&gt;
          German Shepherd               - by Machi&lt;br /&gt;
          Honey Bear                    - by Machi&lt;br /&gt;
          House Mouse                   - by Arona&lt;br /&gt;
          Lizard Girl (only descs)      - by Armel&lt;br /&gt;
          Otter                         - by Machi&lt;br /&gt;
          Plump Tigress (only descs)    - by Armel&lt;br /&gt;
          Salamander Femme (only descs) - by Armel&lt;br /&gt;
          Shadow Vixen                  - by Machi&lt;br /&gt;
          Skunk Girl                    - by Arona&lt;br /&gt;
          White Siberian Tiger          - by Arona&lt;br /&gt;
          Wolf Beast                    - by Machi&lt;br /&gt;
&lt;br /&gt;
4 Mako  - Anubis Servant Defeat&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Blue Gryphon Victory and oVictory&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
1 Mako  - Coatl Servant Defeat&lt;br /&gt;
          by Menil&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female Husky male Defeat and Victory.&lt;br /&gt;
          Alternate descriptions/TFs for specific genders and the Female Husky/demeanor:Alpha local stat&lt;br /&gt;
          by Todde&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Goo Girl Victory and oVictory&lt;br /&gt;
          by Lochlan&lt;br /&gt;
&lt;br /&gt;
2 Mako  - House Cat Victory and oVictory&lt;br /&gt;
          by Menil&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Hyena Herm Victory and oVictory&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
12 Mako - Rabid Beaver Victory, oVictory, and Defeat&lt;br /&gt;
          by Armel&lt;br /&gt;
&lt;br /&gt;
15 Mako - Rubber Balls complete rewrite&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
50 Mako - Vixen Nurse port from the FS Singleplayer (paid out of Miranai&#039;s pocket)&lt;br /&gt;
          by Lila&lt;br /&gt;
&lt;br /&gt;
4 Mako  - Wild Cannibal Defeat&lt;br /&gt;
          by Acetyl and Jade&lt;br /&gt;
          4 Mako awarded to each for full-length content&lt;br /&gt;
&lt;br /&gt;
2 Mako  - Wolf Beast Victory and oVictory&lt;br /&gt;
          by Prios and Skade&lt;br /&gt;
          2 Mako awarded to each for full-length content&lt;br /&gt;
&lt;br /&gt;
4 Mako  - Zebra Defeat&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Existing NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alex the Zebra&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Frotting&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Chenoa the Aassahke Female&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player gives cunnilingus&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player receives blowjob&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Chris the Alpha Husky&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player receives anilingus&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Doctor Lissal the Skunk Girl&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player gives cunnilingus&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ellie the Latex Fox&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Shower sex&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
10 Mako - Glamour Slammer scene&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Husky Den Orgy&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Sex toy use scene&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Tentacle Nanomagic variation for husky orgy&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Obsidian the Shadow Dragon&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player uses Illusion Nanomagic to sexually pleasure&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sarah the Female Husky&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player receives blowjob&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
25 Mako - Anton the Bull. NPC for [Eureka City]: The Cow Barn&lt;br /&gt;
          Base 15 Mako reward for introduction, description, scent, and one initial sex scene.&lt;br /&gt;
          5 Mako rewarded per additional scene.&lt;br /&gt;
          by Skade&lt;br /&gt;
&lt;br /&gt;
15 Mako - Domori the Chocolate Lab. NPC for [Seelie Sweets Kennels]: West Wing&lt;br /&gt;
          A size 6 masculine herm and the leader of his group.&lt;br /&gt;
          His personality is teasing; not aggressive, but reassured and very openly carnal in his desires.&lt;br /&gt;
          Base 15 Mako reward for introduction, description, scent, and one initial sex scene.&lt;br /&gt;
          5 Mako rewarded per additional scene.&lt;br /&gt;
          by Adren&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
	<entry>
		<id>https://wiki.flexiblesurvival.com/index.php?title=Writing_Bounties&amp;diff=502285</id>
		<title>Writing Bounties</title>
		<link rel="alternate" type="text/html" href="https://wiki.flexiblesurvival.com/index.php?title=Writing_Bounties&amp;diff=502285"/>
		<updated>2016-12-10T23:49:52Z</updated>

		<summary type="html">&lt;p&gt;Strongbird: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
Writing Bounties are bounties for submitting specific content. Submitting a scene that is approved for in-game usage will earn you the posted Mako bounty.&lt;br /&gt;
&lt;br /&gt;
- You do not need to include string parsing in your submission.&lt;br /&gt;
&lt;br /&gt;
- You must submit your scene via +request in the Building category.&lt;br /&gt;
&lt;br /&gt;
Staff can and will edit your submissions as they see fit. Staff word on your submissions is final.&lt;br /&gt;
&lt;br /&gt;
As of 05/04/2014, this is an experimental project to encourage community involvement in content creation.&lt;br /&gt;
&lt;br /&gt;
== Posted Bounties ==&lt;br /&gt;
&lt;br /&gt;
Bounties which are unclaimed and open to work.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Monsters&lt;br /&gt;
&lt;br /&gt;
For information on writing these scenes, see the in-game helpfile &#039;help monster writing&#039;, as well as the wiki pages on [[Monster Maker#Victory and Defeat Messages|Victory and Defeat messages]] and [[Monster Writing Guide|Monster Writing]] (pages 4-6)&lt;br /&gt;
&lt;br /&gt;
In addition, note that it is NOT necessary to contact the original authors for these bounties. These are old, public forms which require revision. Submissions for their improvement are welcome. You can also write only one scene per list item and leave the rest for another writer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 Mako  - Kemonomimi descriptions and TF message variants (4 for descs and 4 for TFs per monster)&lt;br /&gt;
          Black Panther&lt;br /&gt;
          Busty Cow&lt;br /&gt;
          Cheetah (only TFs)&lt;br /&gt;
          Corporate Cougar&lt;br /&gt;
          Diamond Drake (only TFs)&lt;br /&gt;
          Female Husky (only TFs)&lt;br /&gt;
          Flame Leopard&lt;br /&gt;
          Harbinger Lynx&lt;br /&gt;
          Latex Snow Leopard&lt;br /&gt;
          Liquid Pantheress&lt;br /&gt;
          Lizard Girl (only TFs)&lt;br /&gt;
          Plump Tigress (only TFs)&lt;br /&gt;
          Saber-toothed Bard&lt;br /&gt;
          Saber-toothed Soldier&lt;br /&gt;
          Salamander Femme (only TFs)&lt;br /&gt;
          Skink Skank&lt;br /&gt;
          Small Felinoid&lt;br /&gt;
          Stalking Tigress&lt;br /&gt;
          White Siberian Tiger&lt;br /&gt;
          White Unicorn Mare&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Latex Snow Leopard Victory and oVictory&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Panther Taur Victory and oVictory&lt;br /&gt;
&lt;br /&gt;
12 Mako - Tanuki Victory, oVictory, and Defeat.&lt;br /&gt;
          Although it is a dedication, a defeat in case it is spawned artificially would be welcome.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Existing NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alex the Zebra&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Threesome scene with a cook&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bound Egyptian Mau&lt;br /&gt;
&lt;br /&gt;
5 Mako  - 69 with Mau&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player fucks vaginally&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Obsidian the Shadow Dragon&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female player uses feeldoe to vaginally fuck Obsidian&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female/herm player uses double-dildo&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female/neuter player anally pegs Obsidian&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player gets anally pegged&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player uses Shared Dream Nanomagic for dream threesome with Obsidian and Violet the Blue Gryphon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Skunk Beast (NPC in [Library]: Research Room)&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player willfully submits for an extended scene of rough, brutalizing sex&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Threesome with player, Doctor Hellen, and Skunk Beast in cage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Claimed Bounties ==&lt;br /&gt;
&lt;br /&gt;
Bounties which have been claimed and are being worked on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Monsters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Existing NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NONE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Completed Bounties ==&lt;br /&gt;
&lt;br /&gt;
Bounties which have been completed, implemented, and their creators awarded.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Monsters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
8 Mako  - Kemonomimi descriptions and TF message variants (4 for descs and 4 for TFs per monster)&lt;br /&gt;
          Alpha Husky (only TFs)        - by Arona&lt;br /&gt;
          Blue Gryphon (only descs)     - by Armel&lt;br /&gt;
          Blue Gryphon (only TFs)       - by Machi&lt;br /&gt;
          Bunny Boy                     - by Machi&lt;br /&gt;
          Cheetah (only descs)          - by Armel&lt;br /&gt;
          Chocolate Cow                 - by Machi&lt;br /&gt;
          Dandy Peacock                 - by Sherri&lt;br /&gt;
          Diamond Drake (only descs)    - by Armel&lt;br /&gt;
          Donkey Boy                    - by Machi&lt;br /&gt;
          Farm Hen                      - by Machi&lt;br /&gt;
          Fox Boy                       - by Machi&lt;br /&gt;
          Fox Girl                      - by Machi&lt;br /&gt;
          German Shepherd               - by Machi&lt;br /&gt;
          Honey Bear                    - by Machi&lt;br /&gt;
          House Mouse                   - by Arona&lt;br /&gt;
          Lizard Girl (only descs)      - by Armel&lt;br /&gt;
          Otter                         - by Machi&lt;br /&gt;
          Plump Tigress (only descs)    - by Armel&lt;br /&gt;
          Salamander Femme (only descs) - by Armel&lt;br /&gt;
          Shadow Vixen                  - by Machi&lt;br /&gt;
          Skunk Girl                    - by Arona&lt;br /&gt;
          Wolf Beast                    - by Machi&lt;br /&gt;
&lt;br /&gt;
4 Mako  - Anubis Servant Defeat&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Blue Gryphon Victory and oVictory&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
1 Mako  - Coatl Servant Defeat&lt;br /&gt;
          by Menil&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Female Husky male Defeat and Victory.&lt;br /&gt;
          Alternate descriptions/TFs for specific genders and the Female Husky/demeanor:Alpha local stat&lt;br /&gt;
          by Todde&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Goo Girl Victory and oVictory&lt;br /&gt;
          by Lochlan&lt;br /&gt;
&lt;br /&gt;
2 Mako  - House Cat Victory and oVictory&lt;br /&gt;
          by Menil&lt;br /&gt;
&lt;br /&gt;
8 Mako  - Hyena Herm Victory and oVictory&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
12 Mako - Rabid Beaver Victory, oVictory, and Defeat&lt;br /&gt;
          by Armel&lt;br /&gt;
&lt;br /&gt;
15 Mako - Rubber Balls complete rewrite&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
50 Mako - Vixen Nurse port from the FS Singleplayer (paid out of Miranai&#039;s pocket)&lt;br /&gt;
          by Lila&lt;br /&gt;
&lt;br /&gt;
4 Mako  - Wild Cannibal Defeat&lt;br /&gt;
          by Acetyl and Jade&lt;br /&gt;
          4 Mako awarded to each for full-length content&lt;br /&gt;
&lt;br /&gt;
2 Mako  - Wolf Beast Victory and oVictory&lt;br /&gt;
          by Prios and Skade&lt;br /&gt;
          2 Mako awarded to each for full-length content&lt;br /&gt;
&lt;br /&gt;
4 Mako  - Zebra Defeat&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Existing NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Alex the Zebra&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Frotting&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Chenoa the Aassahke Female&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player gives cunnilingus&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player receives blowjob&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Chris the Alpha Husky&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player receives anilingus&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Doctor Lissal the Skunk Girl&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player gives cunnilingus&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ellie the Latex Fox&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Shower sex&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
10 Mako - Glamour Slammer scene&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Husky Den Orgy&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Sex toy use scene&lt;br /&gt;
          by Jade&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Tentacle Nanomagic variation for husky orgy&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Obsidian the Shadow Dragon&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player uses Illusion Nanomagic to sexually pleasure&lt;br /&gt;
          by Foxheart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Sarah the Female Husky&lt;br /&gt;
&lt;br /&gt;
5 Mako  - Player receives blowjob&lt;br /&gt;
          by Jade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New NPCs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
25 Mako - Anton the Bull. NPC for [Eureka City]: The Cow Barn&lt;br /&gt;
          Base 15 Mako reward for introduction, description, scent, and one initial sex scene.&lt;br /&gt;
          5 Mako rewarded per additional scene.&lt;br /&gt;
          by Skade&lt;br /&gt;
&lt;br /&gt;
15 Mako - Domori the Chocolate Lab. NPC for [Seelie Sweets Kennels]: West Wing&lt;br /&gt;
          A size 6 masculine herm and the leader of his group.&lt;br /&gt;
          His personality is teasing; not aggressive, but reassured and very openly carnal in his desires.&lt;br /&gt;
          Base 15 Mako reward for introduction, description, scent, and one initial sex scene.&lt;br /&gt;
          5 Mako rewarded per additional scene.&lt;br /&gt;
          by Adren&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Strongbird</name></author>
	</entry>
</feed>