diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6c1ec7d68c44e4e94749fae640fce889d3d33b48..ee0aebbb80268aab4c558f5f9c343b528e06345f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,1418 @@
 # CHANGELOG
 
+## 0.3.8.6
+
+- Stopped the journal trying to load the world map in the text-only version.
+- Fixed a couple of bugs that left phantom butt plugs in place after they were removed. Thanks to Jimmy.
+- Fixed another issue with sex toy code. Thanks to Jimmy.
+
+## 0.3.8.5
+
+- Fixed a bug that broke the adult shop. Thanks to hwp.
+
+## 0.3.8.4
+
+- Thanks to hwp for code improvements.
+
+### Bug Fixes
+
+- Fixed an issue with combat. Thanks to Jimmy.
+- Fixed a debug issue. Thanks to Jimmy.
+- Fixed a bug that prevented sex toys being used when masturbating. Thanks to hwp.
+- Cursed items should be removed from the PC's inventory on old saves, should they have acquired them due to bugs. Thanks to hwp.
+- Thanks to Jimmy and hwp for formatting fixes.
+
+## 0.3.8.3
+
+- Added a toggle to enable/disable toy multiple penetration. Thanks to Bathory666.
+- Reworked ironman code, fixing a number of issues. Thanks to Jimmy.
+- Added combat sprites for the cow socks, cow sleeves, arm warmers, gold bracelets and ankle socks. Thanks to anonymous.
+- Thanks to Jimmy for an April 1st present.
+- Added sex toy toggles. Thanks to Bathory666.
+- Rewrote text for stroker NPC actions. Thanks to Bathory666.
+- Adjusted the sex toy inventory icon. Thanks to Bathory666.
+
+### Balance changes
+
+- Drinking Morgan's milk will now increase the "Breast milk drank" stat. Thanks to oyea.
+- Holding Sydney's hands when photographed during the adult shop's opening now takes handholding virginity. Thanks to oyea.
+
+Thanks to Bathory666 for the following balance changes:
+
+- NPCs are now more likely to fuck you with dildos and slap you with whips.
+- NPCs will now smack themselves around with toys less often.
+- Teens will no longer get sex toys.
+- NPCs now have a small chance to drop their toys.
+- NPCs are now less likely to pull out toys.
+- NPCs are now more likely to envelop with a stroker, but have a small chance of moving the toy away.
+- Alex, Eden, and Bailey no longer have sex toys.
+
+### Bug Fixes
+
+- Cats on the moor should no longer appear if beasts and monsters are disabled.
+- Fixed a bug that prevented Avery from being considered a love interest for the purpose of kissing.
+- Fixed an issue that could appear when attempting to delete saves. Thanks to note leven.
+
+Thanks to Bathory666 for the following fixes:
+
+- Sydney will now remove your cursed gags at the shop if needed.
+- Sirris will now remove cursed gags in addition to your bound arms, rather than one or the other.
+- Added missing sprites for the fetish muzzle.
+- Fixed an issue found when masturbating your clit with a sex toy during masturbation.
+- Fixed a bug that prevented pulling out a toy when you only have one.
+- Fixed issues found when NPCs use strokers on the PC, and when the PC uses them during masturbation.
+- Typo and formatting fixes.
+
+Thanks to Jimmy for the following fixes:
+
+- Lying still when threatened by a tattoo machine in the underground brothel now has appropriate text. Thanks to Chubbs.
+- Cat TF heterochromia now appears correctly in combat encounters.
+- Fixed an error found in combat.
+- Adjusted some text in the brothel. Thanks to Crimson Tide.
+- Fixed a bug with lenses.
+- The PC will no longer take their daily pills if they're held at Eden's cabin without Stockholm syndrome.
+- Alex will no longer appear outside after 21:00 if they're already asleep in their room.
+- Formatting fixes.
+- Typo fixes.
+
+Thanks to anonymous for the following fixes:
+
+- When flirting with Robin, they'll no longer mention how good their school day was if they haven't actually gone to school that day.
+- Adjusted an adult shop scene to be more consistent with its options, and to be more respectful of the facesitting toggle.
+- Jordan will now actually remove your chastity belt after passing an exam during Sydney's Rite of Promise, as they claim to.
+- You will no longer automatically wear the stone pendant if you're equipped with a collar when you discover it.
+- Audience members will no longer comment on your pussy when taking pictures if you're fully clothed.
+- Sirris will no longer ask for your help at their shop after it's already been unlocked.
+- Briar will no longer confront you on Connudatus Street while you're possessed.
+- Fixed an issue with NPCs repeating each other's orgasm lines after combat.
+- Sirris will now properly unbind you following a scene in the adult shop.
+- You will no longer take your daily pills while reading the olive book.
+- Fixed only being able to give Eden a strap-on if they have a penis.
+- Fixed an error during the Robin/Whitney canteen event.
+- Fixed an error when cumming while dancing.
+- Fixed an image issue with the jockstrap.
+- Fixed an error in the adult shop.
+- Typo fixes.
+
+## 0.3.8.2
+
+- Improved the combat suffocation code. Thanks to Jimmy.
+- Improved the heterochromia code. Thanks to Jimmy.
+- Thanks to Jimmy for other code improvements.
+
+### Bug Fixes
+
+- Fixed an error found when wearing a damaged muzzle.
+- If Sirris' adult shop grand opening is taking place, the journal will now indicate such.
+- Captured some rogue NPCs in the adult shop.
+- Fixed some transformation issues caused by the fallen angel transformation.
+
+Thanks to Bathory666 for the following fixes.:
+
+- Typos for NPCs commenting on strap-ons
+- Hidden purchasable chastity items have had the adult shop tag removed so that they don't show up in the new "show all" option at the shop.
+- Fixed a pronoun in an Alex link. Thanks to Cord and hwp
+- Fix for leotard bottom sprites messed up. Thanks to oyea
+- Brothel settings menu takes you back to the brothel instead of the bedroom. Cheers to oyea
+- missing quote marks in Sydney sex toy reaction line
+- fixed a pronoun issue with a Leighton scene
+- fix for dropping strokers in your right hand when used on an NPC
+- fix for dropping stokers when used on yourself
+- fix for strokers on penises showing the code name instead of text
+- reworked the Kylar strap-on gifting scene. Written by Cord and oyea
+- Sirris will now remove cursed gags at the adult shop.
+- Typo Fixes.
+
+Thanks to anonymous for the following fixes:
+
+- Having your leg bindings removed in prison will no longer read as if you're wearing a ball and chain if you're actually wearing ankle cuffs.
+- A group of perverts on the street will no longer be surprised by a crossdressing PC's genitals after already seeing them naked.
+- Leighton will no longer be surprised by the PC's hermaphroditism should they already know about it during penis inspection.
+- Fixed the Black Wolf incessantly hounding the PC at the lake when they're meant to be accosted by the ancient threat.
+- When masturbating during encounters, you will no longer feel your genitals beneath your clothing while naked.
+- The characteristics tab will now properly acknowledge the PC's swimwear with regards to their swimming skill.
+- You will no longer look over your shoulder after confronting stalkers when they're already assaulting you.
+- You may no longer set your birdie-ness to absurdly high or absurdly low values using the cheat menu.
+- The brothel's sex machine show will no longer have two non-participating humans in the encounter.
+- Winter will no longer pick up your leash when inspecting your collar if you aren't wearing one.
+- Fixed missing image errors for the pompoms, cow sleeves, and cow socks during combat.
+- Fixed a couple of endlessly looping encounters after passing out at the hospital.
+- Cursed clothing items should no longer trigger automatic clothing rebuy.
+- Fixed some mixed-up options during the adult shop's opening.
+- You may no longer kiss NPCs whose mouths are already in use.
+- Fixed an eye colour issue in one of the ancient threat's scenes.
+- Fixed issues with Sydney's status during an adult shop scene.
+- Fixed an error when cuddling with Alex as a fallen angel.
+- Fixed an error during one of Whitney's street events.
+- Fixed pronoun issues with a scene in the adult shop.
+- Fixed an issue with Leighton's brothel scenes.
+- Hid unfinished code.
+- Typo fixes.
+
+Thanks to Jimmy for the following fixes:
+
+- Ironman mode can now save and load.
+- Ironman mode now properly autosaves.
+- Fixed a number of images that would break on some devices.
+- Other minor fixes.
+
+Thanks to braymann for the following fixes:
+
+- Avery will no longer let the player go on a date with them while their underwear or genitals are fully exposed.
+- Seduction checks will work properly again when you have the "Blind Stats" option enabled.
+- Fixed an error when the cat transformation decays.
+- Fixed some NPCs breaking free during Robin's crossdressing scenes.
+
+## 0.3.8.1
+
+- The PC can now initiate kissing on the lips during consensual human encounters. Thanks to Kegdo.
+- Added location images for the factory. Art courtesy of pauloc.
+- Added text for stroker toys at the shop. Thanks to Bathory666.
+- Added some new lines for Alex reacting to sex toys. Written by Cord and coded by Bathory666.
+- Added the "Robin's Song" feat.
+- Thanks to Bathory666 for code improvements.
+
+Bug Fixes
+
+- Fixed an error found when Avery refers to the PC by a pet name. Thanks to shun.
+- Fixed an error found at Alex's farm.
+- Fixed an error found in the temple.
+- It should no longer be possible to repeat the adult shop grand opening.
+- Fixed a bug that prevented toy use among NPCs increasing over time once the adult shop opens. Thanks to anonymous.
+- Using a strap on will no longer rob you of the angel transformation.
+- Fixed an issue that broke strap-ons names on some saves. Thanks to Jimmy and Bathory666.
+
+Thanks to Jimmy for the following fixes:
+
+- Adds a gray texture for the undershirt right sleeve when covering.
+- Fixed some issues with heterochromia.
+- Fixed a couple of issues preventing Whitney taking the PC's first kiss.
+- Fixed an error found when the PC gains exhibitionism fame.
+- Typo fixes.
+
+Thanks to Bathory666 for the following fixes:
+
+- Fixed an issue with strap-ons giving you a 3hed. Thanks to anonymous.
+- Fixed an issue found when applying lube to your penis.
+- Fixed an issue found when gifting strap-ons.
+- NPCs will no longer slap their face silly with dildos.
+- Fixed a bug that changed the shape of strap-ons gifted to NPCs.
+- Fixed an issue with heterochromia text.
+
+Thanks to anonymous for the following fixes:
+
+- Restored the options to finger your vagina and move your hand away while masturbating with your left hand.
+- You may no longer ask Sirris for work at their shop after already accepting the job.
+- Fixed an issue with the "Cover your penis" action when using list combat controls.
+- Fixed softlocks when reading Raul and Janet, and when using the scene viewer.
+- Fixed the player's right eye colour being overwritten after certain scenes.
+- Fixed some time desynchronisation errors when reading Raul and Janet.
+- Made some changes to some of Alex's new dialogue at the writer's request.
+- Offering Whitney a milkshake now properly consumes it.
+- Fixed an error when tending fields with Alex.
+- Fixed a case of Robin duplication.
+- Sydney and Sirris can no longer work the till at the adult shop at the same time.
+- Fixed human NPCs sometimes being referred to as "it" when undressing.
+- Fixed some dead-end passages when working at the adult shop.
+- Fixed issues with the adult shop passing out event.
+- Fixed the PC's handholding virginity being "taken by unknown" after holding hands during combat.
+- NPCs will no longer cum instantly upon contact with a strap-on.
+- Fixed Sydney contorting themselves during an adult shop scene.
+- Fixed Morgan's feet line breaking the game.
+- Fixed Robin getting their crossdressing clothes mixed with their usual wardrobe.
+- Confiscated a nun's strap-on.
+- Fixed an issue with handholding in combat. Thanks to Kegdo.
+- Typo fixes.
+
+## 0.3.8.0
+
+- Added sex toys, and Sirris' adult shop. Thanks to Bathory666.
+- Added a Robin crossdressing questline, including many new events. Can trigger after giving Robin a crossdressing outfit on Halloween or Christmas. Written and coded by RobinFanatic, with help from hwp and b0mbyx.
+- Robin will start crossdressing in more locations as the questline is completed.
+- Added Robin crossdressing scenes to the scene viewer. Thanks to hwp.
+- Added ironman mode. Saving in ironman mode will send the player back to the start screen. Loading an ironman save will delete the save. It disables cheats, the debug menu, and save exporting, and sets the "rate that events are triggered by allure", crop value, Bailey's payments to their default values if they had been lowered. It also sets history depth to 1 if it had been raised. It can only be chosen at the game's start, and cannot be disabled. Thanks to lifeAnime.
+- Autosaves in ironman mode will trigger every 5-8 days, or when the PC loses a virginity, as a backup.
+- Taunting Leighton while performing the car wash detention naked now has a small chance of triggering retribution from Leighton. Requires beasts be enabled. Thanks to shun.
+- You can now share milkshake with Whitney in the park. Thanks to b0mbyx, with help from cord, hwp and RobinFanatic.
+- Thanks to Kegdo and anonymous for one of the scenes found when working at the adult shop.
+- Added the option to hold hands during encounters. Thanks to Kegdo.
+- Added a scarecrow costume to the forest shop. Coded by anonymous, with spritework by Allo.
+- Added a waitress uniform, split dress, and see-through swimsuit to the adult shop. Coded by anonymous, with spritework by Turkeh.
+- Added icons for the belly dancer's veil, baseball shirt, baseball shorts, undershirt, and baseball cap. Thanks to anonymous.
+- Added combat sprites for thongs. Thanks to anonymous.
+- Added a facesitting toggle. Does not disable cunnilingus.
+- Added events found by helping Sydney and Sirris prepare the adult shop.
+- Added a grand opening event for the adult shop.
+- Thanks to lifeAnime for the adult shop menu, and for a sex toy inventory.
+- You can now by separate coloured contacts for each eye, allowing heterochromia. Thanks to lifeAnime.
+- Added a way to ask around for Sydney if they're absent from the Temple at their normal times. Thanks to PurityGuy.
+- Gave Sirris and Sydney the ability to unbind your arms at the adult shop. Thanks to PurityGuy.
+- Whitney can now rescue the PC when they scream at school in some locations. Teachers will take priority if applicable. Thanks to anonymous.
+- Initial comments during Domus Street modelling events now take model fame into account. Thanks to shun.
+- Added a couple of events to the town's streets, enabled by high modelling fame. One can escalate if the PC has sufficient stats, or have been hypnotised by Harper. Thanks to shun.
+- Added four new events found when flirting with Robin. Thanks to RobinFanatic.
+- Thanks to nesokax for several strap-on improvements.
+- Mask integrity now displays in the sidebar. Also added a cheat for mask integrity. Thanks to TonyFox.
+- Thanks to TonyFox for minor changes to Eden's intro sequence. Thanks to TonyFox.
+- Added some new synonyms for fluid dripping. Thanks to TonyFox.
+- Added unique lines for moaning at love interests during encounters. Code and Eden line by Kegdo. Robin lines by RobinFanatic. Black Wolf, Great Hawk, Sydney, Kylar, Avery, Alex, Whitney lines by Crimson Tide.
+- Clothing traits now have mouseover descriptions in the shop filter overlay. Thanks to Crimson Tide.
+- Added descriptions for the naked, athletic, maid, riding, event, chastity, cage, hidden, gag and leash clothing traits. Thanks to Crimson Tide.
+- Added the alternative "pink" demon transformation. Recolour by thewitchmaker, and coded by Lollipop Scythe.
+- Added Charlie's love to the cheat menu.
+- Added the dreads sides hairstyle. Art courtesy of 3hp.
+- Added icons for the bus station and factory. Art courtesy of pauloc.
+- The suspicious van at the bus station now appears again, though only when cheats are enabled, allowing easy access to the livestock bad end.
+- The PC can now can now insert their entire hand into their vagina during masturbation with enough practice. Coded by hwp and written by Stale Sandwich.
+- Improved error reporting. Thanks to hwp.
+- Thanks to Jimmy, hwp, TonyFox, Crimson Tide, and Kegdo for code improvements.
+- Thanks to PurityGuy for debugging the adult shop setup and grand opening scenes.
+
+Thanks to Bathory666 for the following additions and improvements:
+
+- Added an adult shop to Elk Street, complete with background events and customers.
+- Added a clerk job to the adult shop. Some scenes written by anonymous.
+- Includes a Whitney scene written with assistance from Kiyo and anonymous.
+- Includes five scenes written by WildUntamedFluffy.
+- Added a pass out scene written by anonymous.
+- Gave the ancient threat a new weapon.
+- Added purchasable sex toys that can be used during masturbation.
+- NPCs can use sex toys themselves during encounters, including dildos, anal beads, vibrators, flogs, riding crops, and onaholes.
+- The PC can use dildo and onahole-type sex toys on themselves and others during consensual single encounters and consensual gang bangs. Love interests will react appropriate to their personalities. Written in collaboration with Crimson Tide and RobinFanatic.
+- NPCs can react with excitement, revulsion or disappointment to sex toys.
+- The PC can pick up and drop sex toys during encounters.
+- The PC can now use strap-ons. Includes close-up, combat, and sidebar sprites. Sidebar strap-on sprite courtesy of Lantern.
+- Thanks to lantern for the strap-on clothing type icon.
+- Sydney can work at the adult shop. They work there more frequently as corruption increases.
+- Reworked NPC strap-ons. Thanks to hwp.
+- Added sprites for strap-ons, horse cock strap-ons, and knotted cock strap-ons.
+- NPCs can be given customised strap-ons, and will randomly select one when asked during sex. Thanks to hwp and lifeAnime.
+- Added unique descriptions to NPC strap-ons.
+- Added unique speech lines for NPCs with strap-ons. Written with help from Kiyo.
+- NPC action descriptions now take strap-ons into account.
+- Added x-ray sprites for NPC. Art courtesy of Ruby.
+- Eden, Robin, Alex, Kylar and Sydney can be gifted strap-ons. Written in collaboration with Kiyo and anonymous. Thanks to hwp for code.
+- Added a toggle for NPC sex toys.
+- Avery and Whitney now wear strap-ons based on strap-on chance.
+- Thanks to 3hp for the onahole inventory icon sprite.
+- The PC can now wear a butt plug.
+- The PC can now purchase lube from the adult shop. It can be used on their pussy, penis or anus during combat.
+- The PC can now masturbate their pussy or penis during combat as a promiscuity 2 action. NPCs will react.
+- Thanks to Mochi for the bullet vibe, shibari rope, ball gag and muzzle sprites.
+- Targeting yourself now displays combat radio action difficulties. Thanks to Rukarin.
+- Thanks to nesokax for fixing an issue with masturbation.
+- Thanks to PurityGuy and hwp for repository help.
+
+Thanks to anonymous for the following additions and improvements:
+
+- Whitney now roams the town's alleyways with their gang on non-school days. Similar to their appearances at school, they're more likely to seek out the PC the more time has passed since the last event.
+- Added unique text for the "Confront" action if being stalked by Eden or Whitney.
+- Added a low dominance, high love variant of Whitney's docks event.
+- Added a high lust variant of Whitney's cigarette theft event, and a variant if beasts and monsters are disabled.
+- Made Whitney a little rougher when demanding oral in the hallways at high dominance.
+- Code improvements.
+
+Thanks to Cord for the following additions and improvements:
+
+- Whitney not reacts to Christmas outfits, prison jumpsuits, and cheerleading outfits on Halloween.
+- Added Alex milkshake scenes.
+- Added shaving to the farm. You can now enter the shower shed and shave or choose to shower when Alex is not there.
+- Added more dom/sub lines to Alex.
+- You can now cuddle Alex on the sofa, and when they're on the phone.
+- Alex now reacts if you orgasm in bed while they're sleeping or on the phone. They also thank you for helping with maths, have more variety when chatting at breakfast, and talk more when watching TV.
+- Unique lines for when PC orgasms in the meadow.
+- Added dialogue for Alex, Bailey, Leighton, and Morgan if you namedrop other love interests.
+- Added some flavour text when sleeping with Alex.
+- Added the option to flaunt when Alex checks out the PC.
+- Added the option to laugh when Alex is startled by lurkers.
+- Alex may now join you when relaxing by the stables once unlocked as a love interest, if they're not busy.
+- Added a couple of Morgan lines.
+- Code and UI improvements at Alex's farm.
+
+### Balance Changes
+
+- Model fame now lowers allure. Thanks to shun.
+- Modeling events on Domus Street now contribute to model fame. Thanks to shun.
+- Pills will now be auto-taken when you arrive home, if you were absent at midnight. Thanks to lifeAnime.
+- The PC will no longer be taken to the school infirmary while school's out. Thanks to anonymous.
+- Biting strap-ons no longer causes pain to NPCs. Thanks to PurityGuy.
+- Increasing wolf pack harmony or ferocity when capped will now have a small "overflow" into the other stat. Thanks to shun.
+- Acceptance now decreases when insecurity decreases, prior to developing immunity. Thanks to shun.
+- Lurkers and similar creatures will now be satisfied by cumming once.
+- Leighton's class inspections now repeat each term. Thanks to shun.
+- Inspecting the cell door in the underground brothel no longer takes an hour or triggers a random event, if you don't even try to lockpick it. Thanks to hwp.
+- Added Settings and Attitudes menus to the brothel dressing room. Thanks to Jimmy.
+- Repeated orgasms now have a different impact depending on where the PC is penetrated.
+- Some clothes have been moved from the clothing shop to the adult shop.
+
+### Bug Fixes
+
+- Fixed an issue with autosaves. Thanks to note leven.
+- Fixed a bug that prevented the gothic gown displaying properly in the Character preview tool. Thanks to lifeAnime.
+- Fixed a bug that broke modelling fame on old saves. Thanks to lifeAnime.
+- Fixed an issue with modded clothes on old saves. Thanks to note leven.
+- Thanks to lifeAnime and hwp for typo fixes.
+- NPC strap-ons no longer cum inside you. Thanks to Bathory666.
+- Fixed an error where eye colours would be printed as [object Object] in the characteristics tab.
+- Fixed apostrophes in save files' name causing them to break.
+- Fixed a pill-related issue.
+- Fixed some strap-on issues. Thanks to Bathory666 and hwp.
+- Adjusted time progression during the blood moon underwater ruin sequence.
+- Hand virginity is now taken when Alex takes your hand in the woodlands. Thanks to Cord.
+- Fixed an issue with the consistency of milkshake scenes. Thanks to Cord.
+- Fixed an error found when having your bindings removed at the asylum. Thanks to PurityGuy.
+- Fixed a grammar issue with underwear. Thanks to Bathory666 and anonymous.
+- The PC's vagina will no longer be described as "dry" when self-lubricated. Thanks to shun.
+- Fixed an error involving beast trains. Thanks to Rukarin.
+- Adjusted the monster hoodie so the skirt better fits around the PC's waist.
+- Futa sanity checks and fixes in backcomp for parasitical pregnancies.
+- Fix spa lewd event not using random correctly, meaning Spa Lewd event now should get a more varied, but lower income.
+- Typo correction: flahes to flashes.
+- Minor change in park, added a <br> so the Travel section is properly formatted.
+- Thanks to PurityGuy for typo and minor fixes.
+- Thanks to hwp for minor fixes.
+- Thanks to Bathory666 and TonyFox for typo fixes.
+
+Thanks to Jimmy for the following fixes:
+
+- Fixed a bug that prevented Avery being cleared properly when leaving a date early.
+- Fixed a pronoun issue with Robin.
+- Fixed a bug that caused zoom to reset on load.
+- Fixed phantom pregnancies found on ancient saves.
+- Fixed a beast generation issue found when following a dog down an alley.
+- Fixed old save compatibility issues with parasitic pregnancies.
+- Fixed an error at the spa that made events trigger at unintended rates.
+- Typo and formatting fixes.
+
+Thanks to anonymous for the following fixes:
+
+- Alex will no longer wear their work clothes to bed.
+- Avery will no longer get in the hot tub fully clothed, and will strip to their underwear before bed.
+- Fixed a text issue found when named NPCs admire body-writing with arrows.
+- Fixed an error found when entering the school infirmary.
+- The skimpy leotard provided during the Danube Street dancing job will no longer trigger automatic clothing rebuy.
+- Fixed a dog that was always female regardless of settings.
+- Remy's steeds will now occasionally be referred to as mares if settings allow.
+- Increased the accuracy of a tooltip in the characteristics menu. Thanks to Crimson Tide.
+- Passing out and being taken to the school infirmary no longer overrides Kylar's kidnapping of the PC.
+- Fixed some encounters that allowed Leighton to rescue the PC while imprisoned in the pillory.
+- Fixed Whitney breaking out of the school infirmary.
+- Fixed some leftover bugs with Eden's cage punishment.
+- The rival dancer during one of Avery's dates no longer brings their strap-on to the dance floor.
+- You will no longer "plant your feet"/"remain light on your feet" when performing certain actions during aquatic struggle encounters.
+- Fixed a bug that prevented NPCs from fingering the PC.
+- The game no longer treats the PC's genitals as if they're not in use while being fingered or receiving a handjob.
+- Fixed the PC using a second charge of pepper spray during struggle encounters after the target has already fled.
+- Robin no longer leaves in the middle of an emotional cow scene to set up their lemonade stand.
+- Fixed a softlock caused when cumming while forced to dance.
+- The PC will no longer rip off their clothes after cumming while dancing if their arms are bound.
+- Alex now reacts to the PC's arms being bound during their introduction.
+- Fixed the lake's nighttime location art not showing up.
+- Whitney will now actually strip during the Connudatus Street theft event.
+- The PC will no longer be trapped in a "front" during certain stuck-in-a-wall encounters.
+- Fixed apostrophes in save files' name causing them to break. Thanks to lifeAnime.
+- Fixed a pill-related issue. Thanks to lifeAnime.
+- Fixed the PC taking home the rag top and skirt after agreeing to demonstrate the wooden horse.
+- The option to approach Eden at Remy's farm is no longer simply "Eden."
+- Fixed the accessory layer for the belly dancer top and bottoms not appearing, and allowed it to come in colour variants other than red.
+- Fixed an issue that caused the overalls, prison jumpsuit, diving suit and lederhosen to make the encounter sprite appear naked.
+- The cow onesie now appears white during encounters, rather than red.
+- Moved one of Eden's orgasm lines that incorrectly referred to the PC eating Eden out instead of the other way around, and replaced it with one more appropriate for the circumstances.
+- Eden will no longer move their foot way from the PC's nonexistent penis after cumming.
+- Fixed the PC being able to speak during a prison scene when they're gagged, and being unable to do so when they aren't.
+- You can no longer perform feet actions while shackled and mouth actions while gagged during struggle encounters.
+- Leighton will no longer refer to a female PC's nonexistent penis during detention.
+- Fixed NPCs pulling on the PC's underwear when they're supposed to be targeting their lowerwear.
+- Fixed the option to travel appearing with no usable links when exposed at the beach.
+- The PC will no longer get dressed while still taking a bath in the orphanage.
+- Fixed an error caused by defeating an NPC engaged in double penetration.
+- Fixed some text that implied the PC wears their undies over their skirt.
+- Fixed the skulduggery mask causing missing image errors when damaged.
+- Fixed an inconsistent line when sparring with the wolves.
+- Caught a rogue 0 during combat. Thanks to Crimson Tide.
+- Fixed a bug causing divine TFs to break. Thanks to note leven.
+- Fixed an issue with players losing their genitals when updating old saves. Thanks to note leven.
+- Fixed an issue with the PC's oral virginity being "taken by unknown" after milking cattle with their mouth. Thanks to note leven.
+- Fixed the oral virginity warning from milking with your mouth appearing when it shouldn't, and not appearing when it should. Thanks to note leven.
+- Fixed some issues with NPC roles in the prison.
+- Corrected some mixed-up text during an encounter in the changing rooms.
+- Fixed Sydney appearing before being met when the PC climaxes in the library.
+- Raul will no longer be shocked by Janet's pussy when reading the scarlet book.
+- Fixed persistent NPCs' names not displaying properly with the targeting system.
+- NPCs will no longer press their breasts against the PC's back through gloryholes.
+- Body-writing in lipstick and mud can now be turned into tattoos at the tattoo parlour.
+- Investigating the mirror in the Great Hawk's tower will no longer automatically bring it upstairs if the player chooses to leave it alone.
+- Typo fixes.
+
+Thanks to braymann for the following fixes:
+
+- Fixed the Athlete background so that it will lower your starting grades as advertised.
+- The scene where you're attacked by dogs after failing to cross high street naked will now have 3 dogs as intended, instead of 1.
+- Outfits that have already been broken will no longer trigger automatic rebuy when they break again.
+- Alex will no longer be wearing two pairs of underwear when they spank you.
+- Fixed a bug that prevented additional struggle creatures appearing in the middle of a struggle encounter.
+- Fixed a bug that caused struggle creatures to always be finished after being pulled off once.
+- Fixed a bug where having the "Fangs" or "Sharp Eyes" trait will make the game think you're hiding part of a transformation.
+- Fixed an error in the scene with the high ranking and low ranking wolves in the wolf cave.
+- Female NPCs will no longer somehow press their breasts into your back when you're giving anal.
+- Fixed a bug with gags in female beast encounters.
+- A number of small bugs.
+
+Thanks to hwp for the following fixes:
+
+- Made the Domus Street's shy virgin and the pub's virgin bar patron into actual virgins.
+- Fixed a bug with the cheat that resets a named NPC's virginity.
+- Escaping the underground brothel now unlocks the slut shirt regardless of how you escaped.
+- Fixed a bug where most forms of NPC facesitting resulted in the player being unable to successfully perform mouth actions.
+- Fixed some issues with plantperson code.
+- Fixed an issue where new additions to the cat TF caused autofellatio to break.
+- A bug found in combat.
+- Formatting improvements.
+
+Thanks to TonyFox for the following fixes:
+
+- Fixed a bug that prevented beasts ejaculating on the PC's ass while wearing an anal shield.
+- The NPC on the beach with their child can no longer be a virgin.
+- Displacing underwear without displacing skirt no longer exposes genitals.
+- Clothing stripped during Eden's initial molestations are now properly disposed of.
+- Tentacles are now more agitated and dangerous during the Blood Moon.
+- Certain sequences now properly exit the player into the correct location.
+- Removed claws from some beast types.
+- Typo fixes.
+
+## 0.3.7.4
+
+- NPCs will no longer lose their virginity by penetrating someone with a strap-on. Thanks to hwp.
+- NPCs will no longer try to remove their "naked". Thanks to hwp.
+- NPCs should no longer generate as naked, with bodyparts considered clothed. Thanks hwp.
+
+Thanks to note leven for the following fixes:
+Made sleep more comfy by removing big red error about pills and nulls.
+Fixed a layering issue found during tentacle and swarm encounters.
+Fixed a couple of issues with old saves.
+Fixed a couple of issues with new saves.
+Code adjustments.
+Typo fixes, thanks to oyea.
+
+## 0.3.7.3
+
+- Thanks to lifeAnime for code improvements, and a debug feature.
+- Thanks to Jimmy and note leven for code improvements.
+
+### Balance Changes
+
+- Tentacles will deal less damage to masks when moving to the PC's mouth. Thanks to Bathory666.
+
+### Bug Fixes
+
+- The Danube dance job will now correctly describe the level of audience interest needed to remain safe.
+- The PC will now dress properly after stripping on the stage during the Danube dance job
+- Fixed issue with the insecurity increase display, if the PC had max insecurity of 1000. Thanks to Jimmy.
+- Fixed an issue with beast characters. Thanks to note leven.
+- Fixed an issue that prevented chest binders displaying correctly on some systems. Thanks to note leven.
+- Phalluses should no longer phase through masks. Thanks to Bathory666.
+- Fixed a layering issue with beast handjobs for muzzles, gags, and facemasks. Thanks to Bathory666.
+- Fixed an undefined penis description at the strip club. Thanks to Bathory666.
+- Fixed a broken link found during the Domus dance job.
+- Thanks to Jimmy for pronoun corrections and typo fixes.
+
+Thanks to lifeAnime for the following fixes:
+
+- Fixed an issue that caused slowdown on some devices.
+- Fixed an image path issue.
+- Fixed an issue with penis growth pills.
+- Fixed a text issue when certain named NPCs admire the PC's body-writing. Thanks to oyea.
+- The school nurse will prescribe more than one pill during a playthrough. Thanks to oyea.
+
+## 0.3.7.2
+
+- Adjusted Robin's new flirting events. Thanks to PurityGuy.
+- Added a rose hair accessory to the clothing shop. Thanks to oyea.
+- Adjusted the "back to safety" feature, and expanded it to wardrobes and shops. Thanks to Lollipop Scythe.
+
+### Bug Fixes
+
+- Prescribed pills will now refresh when visiting Harper on Fridays.
+- Fixed an issue with custom contact lenses. Thanks to lifeAnime.
+- Fixed a formatting issue. Thanks to lifeAnime.
+- Fixed an error found when whacking away pens. Thanks to PurityGuy.
+- Fixed an error caused by NPCs taking virginities outside combat. Thanks to hwp.
+- Fixed an issue that caused the shop All category to reference incorrect items. Thanks to Lollipop Scythe.
+
+Thanks to oyea for the following fixes:
+
+- Charlie will no longer recognise the player's dancing prowess before they've ever taken a lesson.
+- The guests at the Danube party event will now dress properly for the occasion.
+- The player will now properly lose their clothes after the new ritual event.
+- Fixed issues with the olive-coloured book.
+- Moved the belly dancer's veil to the forest shop, with the same unlock requirements as the top and bottoms.
+- Checking your pills will no longer teleport you to the orphanage if you checked them somewhere else.
+- Fixed the player being treated as if they weren't wearing underwear during a scene in maths class.
+- Typo fixes.
+
+## 0.3.7.1
+
+- Hermaphrodites can now offer their pussy and initiate double vaginal while fencing. Thanks to Bathory666.
+- Added new dance dialogue for a few specific situations, written by oyea and coded by Crimson Tide.
+- Added the option to flirt with Robin in their bedroom once love has climbed high enough, with various outcomes. Thanks to RobinFanatic.
+
+### Bug Fixes
+
+- NPCs will no longer be able to determine the PC's genitals through chastity belts in the school changing rooms, and during the maths competition wardrobe malfunction.
+- Crossdressing and hermaphrodite fame should no longer increase when the PC's chastity belt is revealed at school.
+- Sirris, Doren, Whitney, Remy, and Leighton can no longer determine the PC's gender if they're wearing a chastity belt.
+- The Danube party now only specifics "ladies" or "gentlemen" if generic NPC generation is set to generate only one gender, as opposed to "ladies and gentlemen" every time. Thanks to Crimson Tide.
+- You can now give thighjobs again. Thanks to braymann.
+- Fixed an error that sometimes happens when you ask a group of people to stop. Thanks to braymann.
+- Fixed a softlock that can happen if you choose to eavesdrop on Sydney during the rite of promise. Thanks to braymann.
+- Thanks to Crimson Tide for typo and other minor fixes.
+
+Thanks to note leven for the following fixes:
+
+- Fixed a debug issue.
+- Fixed a bug that ate link numbers.
+- Added a failsafe to museum antique hint display in the journal.
+- Eden will now generate properly after preparing a cage for you.
+- Fixed a soft lock at the buffet on Domus Street.
+- You can now properly smash.
+
+Thanks to hwp for the following fixes:
+
+- Fixed a beast generation bug.
+- Fixed a bug that made NPCs generate with undefined virginities.
+- NPCs in the dance studio and during dance jobs should now generate clothing correctly.
+- Fixed a bug that prevented NPC virginities being taken outside combat.
+- Typos and minor code cleanup.
+
+## 0.3.7.0
+
+- Charlie will now offer work to accomplished dancers. They give a different job if they dislike the PC.
+- Added a couple of location-dependant dance events.
+- Added a quest at the temple.
+- Added setting randomisation to the Quick Start/Quick Edit tab in settings, extending the preset system. Thanks to Lollipop Scythe.
+- Added hair randomisation and saved sets. Saved sets can be added to new and existing outfit sets, allowing the player to change their hairstyle with each outfit. Thanks to Lollipop Scythe.
+- Nicknames now take modelling fame into account. Thanks to oyea.
+- Added a combat menu adjacent to the next button during combat. Thanks to Jimmy.
+- Tired PCs will now half-close their eyes. Thanks to lifeAnime.
+- Added lime green and light grey eye colour/contacts. Thanks to lifeAnime.
+- The nurse at the pharmacy now sells custom contact lenses. Thanks to lifeAnime.
+- Overhauled the pill code and bedroom pill UI. Thanks to lifeAnime.
+- Added an antique.
+- Added the search bar and "All" shop category. Thanks to Lollipop Scythe.
+- Clothes can now be displaced in swarm, tentacle and struggle encounters. Thanks to Quin2k.
+- Clarified the unlock requirements for feat boosts. Thanks to Quin2k.
+- Maxing arousal while dancing will now cause the PC to orgasm, with outcomes depending on the PC's skill, shoes, lewdity, and traits. Can be dangerous in some locations. Thanks to Nicky Lassandri.
+- The PC's limbs should now reset more intelligently when an NPC is defeated. Thanks to Rukarin.
+- Added seasonal beer choice to the café, and a beer icon. Thanks to Luna.
+- Added "tending yield factor" to settings, which controls the amount of produce grown with the tending skill. Thanks to shun.
+- Anal fingering of the PC by NPCs now has more involved mechanics, and can be prevented. Thanks to Combat_wombat.
+- Leighton can now react to the PC's arousal during pussy inspection. Thanks to TreeFrogSoup.
+- Added the curly pigtails and sailor buns side hairstyles. Thanks to Mira.
+- The curtain fringe style is now represented on encounter sprites. Thanks to Myoran.
+- Added a stat counter for pills taken. Thanks to khovel.
+- Added the undershirt, baseball shirt, baseball shorts, and baseball cap to the clothing shop. Art courtesy of namelessone.
+- Generic NPCs can now be virgins. Thanks to hwp.
+- Adjusted the art for the belly dancer's bottoms, belly dancer's top, board shorts, booty jorts, breeches, catsuit bottoms, chapette breeches, chinos, long cut skirt, short cut skirt, cycle shorts, diving bottoms, gothic trousers, jorts, keyhole skirt, long skirt, maid skirt, miniskirt, moon pajama bottoms, star pajama bottoms, retro trousers, Christmas skirt, Christmas trousers, chastity belt, and gold chastity belt, adding damage states where missing and fixing clipping issues, with more significant changes to the belly dancer set. Art courtesy of KG.
+- Added the belly dancer's veil to the clothing shop. Art courtesy of KG.
+- The Characteristics overlay now describes how large your breasts appear after taking clothing into account. Thanks to hwp.
+- Adjusted and reimplemented the Cum dump/Cumoisseur scene at Remy's estate.
+- Added winter variants for the promenade, alley, industrial alley, and night monster lair location art. Art courtesy of Swaggy Bookshelf.
+- Added a cheat to the cheats menu to reset an NPC's virginity. Thanks to hwp.
+- Added the "Life of the Party," "Belle of the Ball," and "Breaking the Stone" feats.
+- Thanks to braymann for preparing code for the inclusion of cows and bulls in the future.
+- Thanks to hwp and Lollipop Scythe for performance improvements.
+- Thanks to lifeAnime for a debug tool.
+- Thanks to Jimmy, note leven, Lollipop Scythe, khovel, and Rukarin for code improvements.
+- Improved tending code, and the code responsible for NPCs interacting with your clothes during encounters, among other code improvements. Thanks to hwp.
+
+Thanks to Bathory666 for the following additions and improvements:
+
+- Face masks can now protect the mouth, as appropriate to the item.
+- Added the "ask to keep your mask on" and "remove mask" actions.
+- Surgical masks and gags now have the "covered" trait, protecting them against penetration, kissing and breast sucking.
+- NPCs can thrust against your mask, damaging it.
+- Added surgical mask sprites for damage states, and combat sprites.
+- Angry NPCs might damage your mask if you prevent them from removing it.
+
+Thanks to oyea for coding the following scenes:
+
+- Added an infirmary to the school. The player will be taken here instead of the hospital after passing out on school grounds. They can also visit it during the day for medical assistance, or sneak in at night to steal drugs. Written by YetAnotherUser.
+- Added an alternate ending to Harper's lap kissing scene at the asylum. Written by Mist.
+- Added a scene when working the fields with Alex in the summer. Written by DMGM69.
+- Added a scene with Whitney to the school hallways, and a new option when they grope the player during an exam.
+- Eden will no longer be as forgiving upon catching the player after they've been away from the cabin for too long. Written by Necro.
+- Some named NPCs now have more unique responses to certain body-writing. Written by Necro and Conhue.
+
+Thanks to PurityGuy for the following additions and improvements.:
+
+- NPC clothing is now properly simulated, with NPCs dressing more appropriately to their location, role, and the weather.
+- The PC can attempt to undress NPCs during encounters. Requires promiscuity 2 during consensual encounters.
+- Updated scenes that referenced NPCs unzipping their flies or lifting their skirts, to take the new clothes into account
+- Added support for NPC crossdressing.
+- The PC can now interact with female monster's breasts, and some may even lactate should lactation be involved. Wolfgirl milk progresses the wolf transformation.
+- NPC chests now begin most encounters clothed, and their clothes must be displaced before their chests can be interacted with.
+- Added some action flavour text for female NPCs relating to their breasts.
+- Entering the plinth room while being hunted by the ancient threat will now reset the Wraith's hunt, so you don't need to wait around.
+- Brought non-bodypart skill checks to the same level at tending, making temporary bonuses and modifiers impact more than just skill changes.
+- Thanks to hwp, oyea, and Lollipop Scythe for help with NPC clothes.
+- Minor code improvements.
+
+Thanks to Crimson Tide for the following additions and improvements:
+
+- Added a new "difficulty" option that hides all stats text, like + Stress. Affects skill checks, warnings, comments and reminders. Disabled by default.
+- Added tooltips to the characteristics menu, giving details on what is causing specific skill modifiers.
+- Added an escape button should the PC find themselves in a bugged passage, which would previously result in a softlock.
+- Added a forced masturbation scene to the underwater prison.
+- The ancient threat can now assault the farm during Remy's raids.
+- The chatting students in the library can mention blood moons, and also have a small chance of hiding an ancient secret.
+- Bailey's thugs now acknowledge your underground nickname if you have one.
+- Added the number of times you've been possessed to the statistics menu.
+- Code improvements.
+
+### Balance Changes
+
+- One of Whitney's friends now assists them in the parasite event. Thanks to PurityGuy.
+- Changes to Charlie's love will now be indicated.
+- Non-consensual encounters will no longer give you an "ask to leave on" option for tops. Thanks to Bathory666.
+- You can no longer perform mouth actions while wearing a mask, other than speaking. Thanks to Bathory666.
+- Adjusted the triggers for whether the PC smiles or not. Thanks to lifeAnime.
+- Quickened the speed of suffocation by one turn. Thanks to Jimmy.
+- Masks no longer block fame gain during Niki's photoshoot. Thanks to Jimmy and PurityGuy.
+- Eden now gains lust daily, rather than hourly. Robin and Alex now also gain lust over time. Thanks to Quin2k.
+- Reduced the rate at that defiance and submissiveness are gained.
+- Made waterproof clothes protect the clothing underneath them from water. Thanks to hwp.
+- Stripping down to underwear with the dance trait will no longer force dancing PCs with low exhibitionism off the stage.
+- The bunny leotard now has the dance trait.
+- Eden's rescue of the PC from the asylum and Remy's farm now has a minimum love requirement. Thanks to oyea.
+- Tending now produces more produce by default. Thanks to shun.
+- Added a cap to the femininity provided by shorter hair and fringe styles. Thanks to Lollipop Scythe.
+- Excess damage inflicted by the PC will no longer overflow onto the next target in group encounters. Thanks to Rukarin.
+- The ancient threat is now easier to resist during the first possession. Thanks to Crimson Tide.
+- Added a feat boost for the athletics skill. Thanks to khovel.
+- Helping Robin at their stand will now increase their funds a little. Thanks to shun.
+- Clothes with the "dance" trait now take no damage when an NPC attempts to pull them off while the PC dances.
+
+### Bug Fixes
+
+- Fixed a bug that confused pens and penises. Thanks to note leven.
+- Added the great hawk's monster status to settings presets. Thanks to Lollipop Scythe.
+- Agreeing to the museum horse demonstration will now use the correct outfit. Thanks to hwp.
+- Fixed incorrect lines from Sydney if Sydney knows your PC's gender, PC is crossdressing and is not the same gender as Sydney. Thanks to Kamikaza404.
+- Fixed a bug with irrigation. Thanks to hwp.
+- Fixed a bug that allowed fitting an arbitrary number of fingers in your pussy while masturbating. Thanks to hwp.
+- Fixed a bug that turned the ancient threat into a hermaphrodite. Thanks to hwp.
+- Fixed a bug that allowed endlessly penetrating and pulling out of double penetration. Thanks to Bathory666.
+- Added tracking support for penises escaping and attempting to double penetration. Thanks to Bathory666 and Jimmy.
+- Fixes a bug that created phantoms limbs and genitals if an action is taken right before a target is defeated. Thanks to Rukarin.
+- Guards should no longer reappear right after being defeated in the estate. Thanks to PurityGuy and Jimmy.
+- Fixed a spa exhibitionism scene that displayed the wrong requirement. Thanks to hwp.
+- Fixed a bug that prevented pronouns from generating. Thanks to note leven.
+- Fixed some body bugs found after defeating NPCs in group encounters. Thanks to Rukarin.
+- Fixed a bug that prevented the "Grab between breasts" action working. Thanks to Rukarin.
+- Fixed some sprite layering issues with angel wings and oral shadows while in a pillory, and with long leather gloves while giving handjobs in the missionary position. Thanks to Bathory666.
+- Women with strap-ons met while working as a bartender will no longer have testes to cup. Thanks to Bathory666.
+- Fixed a bug that prevented the beast encounter behind the school triggering unless a monster spawns.
+- Fixed a bug that caused the lower half of a swimsuit to be lost despite it being connected to the upper half. Thanks to hwp.
+- Minor change to the sidebar caption for those with images disabled. Thanks to hwp.
+- Fixed an issue found when wearing scarfs. Thanks to Lollipop Scythe.
+- Negotiated and dancing tips will no longer round to the nearest penny. Thanks to shun.
+- Fixed an issue with the doggy encounter sprite's hair. Thanks to sseshess.
+- Fixed a bug that caused penile multiplication. Thanks to Rukarin.
+- Fixed some bugs with NPC clothing. Thanks to hwp.
+- Fixes a bug where fallen angel isn't saved when entering scenes like the Schism, the Prayer Room or the library books.
+- Thanks to Luna for a typo fix.
+- Thanks to Bathory666 for typo and minor code fixes.
+- Thanks to hwp for typo fixes.
+
+Thanks to oyea for the following fixes:
+
+- Fixed NPCs acquiring the wrong genitals after reading body-writing with arrows. Thanks to oyea.
+- Fixed some issues with my previous MR, thanks to note leven. Thanks to oyea.
+- Fixed an issue when biting someone's pussy after defeating someone else. Thanks to Bathory666 and oyea.
+- Prevented an NPC from bypassing the barbed wire on Alex's farm to assault the player.
+- Added post-orgasm finishing moves for Alex, Avery and Whitney, similar to the existing ones for Eden, Leighton and generic NPCs.
+- Fixed Kylar breaking free from the orphanage cuddling scene after having their heart broken.
+- Typo fixes.
+
+Thanks to PurityGuy for the following fixes:
+
+- Whitney no longer forces their tongue into their own mouth to kiss you.
+- Fixed some issues with the Whitney parasite event.
+- Fixed Bailey having a bit too much health when fought while refusing rent.
+- Adjusted the chastity belt and gold chastity belt to no longer poke out from some undamaged clothing. Thanks to KG.
+- The ancient threat will no longer compliment the player with normal NPC dialogue in very rare circumstances.
+- When written on by NPCs, their writing will no longer always transmogrify into pen writing from marker, mud, lipstick, etc.
+- Plantpeople's writing will now properly stay on the player.
+- Fighting off all tentacles in a vore encounter will no longer disable any bodyparts that were targeting tentacles.
+- Fixed an issue with the <<group>> widget only displaying one NPC due to the changes to \$enemyno.
+- Fixed an issue with taking Robin's oral virginity outside of encounters.
+- Fixed only getting money from stealing from the donation plate if the player couldn't learn anything from stealing.
+- Robin, Kylar, and Sydney can no longer increase the player's rape fame. Robin and Sydney will no longer increase the player's sex fame, either. Kylar still does because they brag about it.
+- Fixed an error with some skill checks.
+- Fixed a stray pixel in the game's banner.
+- Fixed a case of sucking breasts acting as though you had kept your mouth closed, or taken no action at all.
+- Fixed an issue with NPCs interacting with face coverings.
+- Fixed an issue with the PC's hands. Thanks to hwp.
+- Fixed an issue with animation settings being automatically disabled on some saves, and added a one-time notification with options to fix it if triggered.
+- Fixed an error that happens when the player tries to intimidate a farm assault team.
+- Fix for the game attempting to generate pronouns for nonexistent NPCs.
+- Fixed an issue with encounters involving multiple NPCs.
+- Adjusted the wording on the Sydney-Leighton punishment so students will no longer vanish mid-scene.
+- Made the ancient threat's text and link pointers more distinct. Thanks in part to Conhue.
+- Typo fixes.
+
+Thanks to Crimson Tide for the following fixes:
+
+- The game will now keep better track of Sydney and Kylar while the PC is being suffocated.
+- Stress should no longer exceed its boundaries during events involving the ancient threat.
+- The game should now properly remember Kylar's status during their Halloween event.
+- Machine encounters now use proper combat links, rather than standard links.
+- Fixed a bug that destroyed the wrong fields during farm raids.
+- Minor code improvements.
+
+Thanks to Jimmy for the following fixes:
+
+- DoL should no longer force browsers into dark mode.
+- Fixed an issue with the homeschooling event.
+- Fixed a compatibility issue with older browser versions.
+- Fixed a pronoun issue found in the prison spire while there's a lockdown.
+- Fixed a softlock found when fighting off 6 classmates during science class.
+- Fixed some issues with rape and sex fame.
+- The PC can no longer go for a run at the park or beach if legs are bound.
+- Fixed broken time.
+- Bailey and Avery can now co-exist it in the same scene.
+- Kylar, Sydney and Robin will now contribute to the PC's statistics when they finish them off with oral after an encounter.
+- River will no longer confiscate cool glasses after school. They've places to be.
+- Fixed an error in the outfit editor.
+- Fixed a text error found while masturbating in the park toilets.
+- Fixed an NPC generation error during the Brutus event.
+- Fixed a bug that caused Wren to escape during inmate flirting.
+- Combat will now scroll back to the stop as a default mechanism for new saves.
+- Lust no longer automatically increases while Alex spies on the PC in the shower.
+- Fixed some issues found after a failed wolf hunt.
+- Sydney's hairdresser no longer lets you go into negative wealth.
+- Fixed a bug that caused chest skill to improve automatically when working at the spa.
+- Fixed some issues with saved hairstyles. Thanks to mcn.
+- Fixed some issues in the kennel, including several cases where events would not end properly, causing NPC errors.
+- Leighton should now generate properly when intervening in the canteen fight.
+- Fixed an issue found when tutoring on Danube street.
+- Typo fixes.
+
+Thanks to braymann for the following fixes.
+
+- If Remy is about to attack the farm, you will no longer be allowed to tend to the fields and somehow miss the entire raid happening.
+- Fixed an error when one of the fields get torched.
+- Choosing to endure while getting humped by a dog on Alex's farm will no longer lower stress and trauma instead of raising it.
+- Fixed an error when choosing to leave your clothes behind when a slime gets stuck to it in the sewers.
+
+## 0.3.6.2
+
+- Improved scroll position restore and added a toggle to enable/disable the feature. Thanks to note leven.
+- Made an error message less alarming. Thanks to hwp.
+- Built a little upon one of the scenes found when breaking down while hugging Robin. Thanks to hwp.
+
+### Bug Fixes
+
+- The PC will no longer get stuck in a wall during a riding lesson should receiving analingus be disabled.
+- The Black Wolf will no longer notice your human ears if you actually possess bovine ears instead. Thanks to Crimson Tide.
+- Plantpeople will be properly enabled at the start of the game. Thanks to Crimson Tide.
+- The PC mentally acknowledges that Kylar is wearing undies during the Christmas scene if they previously asked Kylar to go commando. For their kindness, for their jewel, PC forgives the broken rule. Thanks to Crimson Tide.
+- Fixed the PC's uncoolness causing a time loop in history class. Thanks to oyea.
+- Fixed an NPC generation issue when receiving comfort from Robin. Thanks to oyea.
+- Fixed a patron at the strip club pressing someone else's penis against the player's butt. Thanks to oyea.
+- Fixed some issues related to trousers and skirts during missionary sex. Your trousers will no longer be floating in the wrong position during some actions. Thanks to braymann.
+- Fixed an issue that discoloured your leg when giving a tentacle a footjob. Thanks to braymann.
+- Fixed a bug that caused tan lines to make parasites on your breasts disappear. Thanks to braymann.
+- Fixed an issue with NPC data. Thanks to note leven.
+- Fixed an issue with the prison guards' names. Thanks to note leven.
+- Fixed a bug that caused compatibility code to trigger when not intended. Thanks to note leven.
+- This fixes a bug where clicking on the same full-body outfit twice in the shop would cause the game to present a different item due to an index mismatch. Thanks to hwp.
+- Fixed an issue with star pyjama bottoms. Thanks to hwp.
+- Fixed the frottage promiscuity requirement. Thanks to Bathory666 and hwp.
+- Thanks to oyea for a typo fix.
+- Thanks to Crimson Tide for a typo fix.
+
+## 0.3.6.1
+
+- Added winter variants of the castle location art. Thanks to Azyle.
+- Added a sprite for the cow onesie hood being pulled down. Thanks to oyea.
+- Added icons for the scarlet and olive books in the library. Thanks to oyea.
+
+### Bug Fixes
+
+- Fixed an issue with the castle location art. Thanks to Azyle.
+- Fixed a number of typos and other errors found during the blackjack cum addict scene.
+- Fixed an issue with persistent NPC settings breaking, and added Pinch to the list. Thanks to note leven.
+- Fixed an issue found when your clothes are stolen on the moor. Thanks to note leven.
+- Fixed a compatibility issue with old saves. Thanks to note leven.
+- Fixed an issue found when harvesting crops. Thanks to Macilien and note leven.
+- Fixed a number of issues with the denim shorts and booty jorts combat images. Thanks to lifeAnime.
+- Fixed a bug that prevented some combat images from displaying correctly. Thanks to hwp and lifeAnime.
+- Penises and butt should now synchronise in the double anal penetration close up animations. Thanks to Bathory666.
+- Adjusted the size of the double anal penetration, and close up double vaginal penetration sprites. Thanks to Bathory666.
+
+Thanks to oyea for the following fixes:
+
+- Fixed a softlock caused when reading the olive-coloured book without visiting the rental counter.
+- Fixed an issue that prevented the player from returning the olive-coloured book after stealing it.
+- The player will no longer steal Pinch's testes after reading the olive-coloured book.
+- The player will no longer bring their parasites or lewd fluids into the olive and scarlet books.
+- Fixed the player gaining Status and Delinquency during detention without performing the required action.
+- Typo fixes.
+
+## 0.3.6.0
+
+- Kylar can now drop by the orphanage early Christmas morning. Written in collaboration with Kiyo.
+- Added an olive-coloured book to the school library, available during the last week of November and through December. Written by Fangi, with help from Harcher and oyea. Coded by oyea.
+- Added a small scene involving the ancient threat on Christmas. Thanks to PurityGuy, written in collaboration with Crimson Tide.
+- Important persistent NPCs can now be modified in the named NPC settings tab, once met. This includes all the prison guards and inmates, the panty thief, night monster, watchtower guards, and the ancient threat. Thanks to PurityGuy and Jimmy.
+- Added the cow onesie, cow print chaps, and cowboy boots to the clothing shop. Art courtesy of KG.
+- Adjusting the clothing system to make the addition of new clothes easier for modders. Thanks to Lollipop Scythe.
+- Improved the formatting of the school changing room links. Thanks to StickyLizard.
+- Thanks to Crimson Tide for expanding combat mechanics to allow encounters while possessed. Dialogue written with PurityGuy.
+- Stroking Robin in their room is now more reactive to their stats. Thanks to hwp.
+- Headbutting Sydney now breaks their glasses. Thanks to Crimson Tide.
+- Added a framework that allows for the generation of NPCs with custom descriptions and roles. Thanks to Crimson Tide.
+- Various waiters and waitresses have been turned into custom NPCs, as well as the janitor that pulls you out of the gloryhole at school. Thanks to Crimson Tide.
+- Added location art for the promenade, which currently appears during an event with Sydney. Art courtesy of Mochi.
+- Added location art for the moor castle. Art courtesy of Azyle.
+- Added combat sprites for denim shorts and booty jorts. Art courtesy of Azyle.
+- Added combat sprites for the hime fringe style. Art courtesy of Myoran.
+- Thanks to Myoran for adjusting the hime fringe style.
+- Gave turtleneck jumpers unique combat sprites. Thanks to lifeAnime.
+- Added back layers for the loose, straight, curl, defined curl and neat hairstyles. Thanks to oyea.
+- Added icons for the landfill, and for buying milkshake at the café. Art courtesy of Kami.
+- Double vaginal now has a cum sprite. Thanks to Bathory666. Art courtesy of Ruby9036.
+- Double vaginal now shows cum inside your pussy left over from previous sexual encounters. Art thanks to Ruby9036.
+- Improved the clothing re-buy code. Thanks to Lollipop Scythe.
+- Improved NPC generation code. Thanks to hwp.
+- Touched up the curl and straight hairstyles. Thanks to oyea.
+- Thanks to Jimmy for a debug tool.
+- Thanks to Suggestalot for creative assistance.
+- Thanks to Crimson Tide, braymann, hwp and Jimmy for code improvements.
+
+### Balance Changes
+
+- Defeating an NPC in a multi-NPC encounter no longer reduces pain to 0. Thanks to Crimson Tide.
+- School status now increases should other students witness Avery arrive to pick you up.
+- Penis fencing has been reduced from promiscuity 5 to promiscuity 4. Thanks to Bathory666.
+
+### Bug Fixes
+
+- Fixed a number of issues with persistent NPCs. Thanks to Rukarin.
+- Fixed a couple of bugs that caused typos. Thanks to Rukarin.
+- Fixed a bug that prevented pubic hair growth on old saves. Thanks to hwp.
+- Fixed a bug that could crash combat should you try to straddle a second penis while wearing a chastity belt. Thanks to Nicky Lassandri.
+- NPCs can no longer pinch your clit while you're wearing a chastity belt. Thanks to Nicky Lassandri.
+- Fixed a couple of errors that appeared on the feat boosts page. Thanks to PurityGuy.
+- Fixed an issue with arousal gained while fondling your breasts. Thanks to braymann.
+- Submitting to the rival pack will no longer indicate an increase to Stockholm syndrome.
+- Fixed a bug that prevented the straightjacket being removed when receiving a gown, which could cause a softlock.
+- Fixed a bug that erased the veteran guard from existence when attempting to learn their name. Thanks to Jimmy for this, and to PurityGuy for restoring them to life on afflicted saves with progress intact.
+- Fixed a bug that broke chastity belt-wearing NPC's genitals. Thanks to hwp.
+- Fixed a bug with pronoun generation. Thanks to hwp.
+- Swarms should no longer be amnesiac about selected actions. Thanks to note leven.
+- Fixed errors with swarm events initiated before entering other types of combat. Thanks to note leven.
+- Fixed improperly generated critters during struggle encounters. Thanks to note leven.
+- It's now possible to whack pens until writing is completed, not just on the turn when the NPC pulls out the tool. Thanks to note leven.
+- Fixed some issues with breast and nipple flavour text. Thanks to Rukarin.
+- Fixed a bug that caused breast images to overlap the Next link on high zoom settings and mobile. Thanks to Rukarin.
+- Being rescued by a lifeguard should no longer regenerate the aggressor NPC.
+- Fix for bug that allowed both double anal and double vaginal. Thanks to Bathory666.
+- You can no longer offer double penetration if you have the appropriate settings disabled. Thanks to Bathory666.
+- Fixed a number of issues with turtleneck encounter sprites. Thanks to lifeanime.
+- "Dead" persistent NPCs should now be resurrected when viewing them in the settings menu. Thanks to PurityGuy and Jimmy.
+- Fixed issues with turtleneck combat sprites. Thanks to lifeanime.
+- Fixed a bug that could prevent accepting the pill from the pub date. Thanks to PurityGuy.
+- Thanks to PurityGuy for typo fixes.
+- Thanks to hwp for minor fixes.
+
+Thanks to oyea for the following fixes:
+
+- Changed the icons for the utility vest and utility vest w/ shirt to better fit the style of other clothing icons.
+- The player can once again perform the pig and horse shows at the brothel if beasts are disabled, provided their settings allow for monster-people.
+- Fixed issues with sleeves not displaying properly in combat.
+- NPCs in certain scenes that were meant to be victims will now be generated as such.
+- The player can now stop masturbating during detention.
+- The player will no longer look over their shoulder during stalking encounters when they're already being assaulted.
+- The player may no longer approach the Black Wolf while it's supposed to be out hunting.
+- Nurses at the asylum will now provide the player with a replacement straightjacket should theirs get damaged, preventing softlocks for low Exhibitionism players.
+- Fixed an issue preventing the icon for moon pyjama bottoms from appearing.
+- Fixed a combat bug. Thanks to Rukarin.
+- Stopped the defined curl and neat hairstyles rendering above the PC in unnatural ways.
+- The defined curl hairstyle should now show up in the debug renderer.
+- Fixed a bug that let the genitals of NPCs ignore their chastity belt if angry enough.
+- Typo fixes.
+
+Thanks to Crimson Tide for the following fixes:
+
+- The willpower check to pull away from mouth actions against plantpeople now takes nectar addiction into account.
+- The plantperson encounter in the forest has a different outcome if you're addicted to nectar and suffering from withdrawals.
+- You can now properly think about Remy's attacks on the farm at the Great Hawk's tower.
+- You can now only kiss Kylar once after walking in the park with them.
+- Crawling under the table on a ship leads to oral sex, rather than regular sex.
+- Persistent NPCs will now be referenced by their names more often during encounters, if known.
+- The persistent prison NPCs are now referred to by name in the virginity menu, if known.
+- Defeating a named NPC in a multi-NPC encounter now uses their name, rather than their title.
+- Typo and minor code fixes.
+
+Thanks to Jimmy for the following fixes:
+
+- The pharmacy event should now end properly.
+- Fixed a bug that cleared NPC data prematurely during a scarred prisoner event.
+- Fixed a minor issue with the clothing system.
+- River will now provide maths competition help on subsequent years.
+- Fixed an issue with beast generation in a house on Danube Street.
+- Removed a duplicate NPC found when passing out at the docks.
+- Fixed an issue with NPC generation at the prison spire.
+- Wren should no longer lurk in the background after leaving their shop.
+- Fixed a duplicated Leighton.
+- Leighton should no longer lurk in the background after the high fame event in the school hallways.
+- Resting the urge to spank a student under hypnosis will now properly end the event.
+- Fixed a duplicated NPC bug during the wolf mating rank event.
+- Fixed some issues with the hunt event in the underground brothel.
+- The dog encountered during the beach abduction now only generates if needed.
+- Fixed with the money gained display during Brutus' scene.
+- NPC data should now be properly cleared after prison shower events.
+- Fixed some pronoun issues.
+- Typo fixes.
+
+## 0.3.5.4
+
+- Students can now comment on PCs with Sydney as their love interest during stalk encounters. Thanks to Crimson Tide.
+
+### Bug Fixes
+
+- Fixed a handful of minor errors.
+- The forest bear event can now trigger with beasts disabled, if the bear generated as a monster.
+- Fixed some forest wolf events that could generated monsters regardless of settings.
+- The black wolf will no longer appear should beasts and monsters be disabled.
+- The black wolf should no longer manifest as a monster if bestiality is disabled
+- Making your steed feel a foal on the road between town and the farmlands will now increase respect as intended.
+- Minor code and typo fixes. Thanks to Crimson Tide.
+- Fixed an error with old Android version saves. Thanks to Jimmy.
+
+Thanks to braymann for the following fixes:
+
+- Centaurs will no longer lose trust when you calm them down while riding to/from the farm.
+- Added some highlighting to the price when you sell your parasites to Harper.
+- Fixed some issues related to double vaginal penetration sprites.
+- Added another fix for the social menu completely erroring out.
+
+Thanks to Jimmy for the following fixes:
+
+- Corrected the passing of time in the Spire.
+- Alex should no longer expect the PC to leave the farm if they're welcome at the cottage.
+- Fixed an issue with an NPC failing to generate properly when you're caught having an orgasm in public.
+- Fixed a Gwylan pronoun issue.
+- Improved the formatting of Alex's wake up scene.
+- Fixed an issue found when referencing NPCs during detention. Thanks to oyea.
+
+## 0.3.5.3
+
+- Added icons for the Café, Watching the Pillory, and Docks. Art courtesy of Myoran, and coded by PurityGuy.
+- Added clothing icons for Boxers, Gold Bracelets, Gold Chain, Iron Chain, Monster Hoodie, Moon Pyjama Bottoms, Retro Shorts, Retro Top, Retro Trousers, Scarf, Star Pyjama Shorts, Tape, Vest, Cropped Hoodie, Long Johns, School Swim Bottoms, and School Swim Top. Art courtesy of Myoran, and coded by PurityGuy.
+- Thanks to Crimson Tide for code improvements.
+
+Thanks to Bathory666 for the following additions and improvements.
+
+- Added x-ray double vaginal white sprites. Art courtesy of Ruby9036.
+- Recoloured x-ray double vaginal sprites for dark skin.
+- Normal vaginal and anal x-rays now show the right NPC's penis, rather than the first generated.
+- Dark skin variants of normal vaginal and anal x-rays are now available.
+
+Balance Changes
+Admitting you stole the book now adds delinquency. Does not give the PC detention, since they're about to be punished anyway. Thanks to Crimson Tide.
+
+### Bug Fixes
+
+- Docker reputation is now visible in the social widget. Thanks to readthemanual.
+- Some events will no longer print "This event may/will corrupt Sydney" if Sydney is already corrupt. Thanks to Crimson Tide.
+- Fixed a bug that prevented Leighton's penis from being properly described during one scene. Thanks to Crimson Tide.
+- Fixed issues with the combat sprites found when giving a chestjob or oral. Thanks to lifeAnime.
+- Fixed the clothes display at the forest shop. Thanks to lifeAnime.
+- The "Morgan the Lost" and "Harper the Hypnotist" feats should now trigger on old saves.
+- Fixed a bug that prevented events from triggering on the streets while blindfolded.
+- Fixed a versioning issue with NPCs generated on old saves. Thanks to Jimmy and braymann.
+
+Thanks to PurityGuy for the following fixes:
+
+- Sydney will no longer clear someone else's throat when climaxing in the library.
+- The PC will no longer get glances from down the hallway while in the library.
+- Clothes with 0 warmth will no longer be described as "light and cool."
+- The icons for Cow Bra, Cow Panties, Cow Sleeves, Cow Socks, Utility Vest, and Utility Shirt, and Mini Snowman now appear properly.
+- Sleepstat is no longer undefined on new saves.
+- Fixed a broken event at the pub.
+- Removed a stray writer's note in an orgasm event.
+- The mirror no longer states that changing your fringe from natural will set your sides to messy, as this is no longer true.
+- Niki will no longer be described as your breast size while remaining professional.
+- Fixed some cases of confused Sirris gender.
+- You will no longer be stared at by an undefined undefined when orgasming at the docks or arcade.
+- Fixed an error when orgasming in the pool changing rooms.
+- The player will no longer be described as "fleeing the scene" while orgasming in locations with nowhere to flee.
+- Alex will no longer be a 0 while watching you orgasm.
+- Many typos and grammatical fixes for public orgasm events.
+- More general fixes.
+
+Thanks to note leven for the following fixes:
+
+- Fixed an issue with save versioning.
+- Fixed a bug that could break old saves.
+- Fixed .0000000001 precision in the stats menu.
+- Fixed a rogue ' in the cropped hoodie's description.
+- "Brown" and "soft brown" should no longer be switched at the hairdresser's.
+- Hearing Wren's voice in the smuggler's cave will no longer reveal their identity in the social menu.
+- NPCs should no longer generate twice during prison laundry events.
+- Fixed an issue with card covers.
+- NPCs should no longer mention nonexistent chastity when ejaculating.
+- Other fixes.
+
+Thanks to braymann for the following fixes:
+
+- It's no longer possible for multiple people to be pinning your arms down at the same time.
+- Defeating all but one person in multi-person encounters will not cause the NPC status messages to use the pronouns of the first person in the encounter, even if they were already beaten.
+- Fixed some typos in swarm encounters.
+- There will no longer be a little ">" pointing at the mini snowman during combat.
+- Fixed an issue where body-writing could appear over clothing during combat.
+- Fixed shorts again so they will no longer look like trousers in combat.
+- The game will no longer tell you that you have two cocks pressed against your anus when they are actually against your vagina.
+- You will no longer get an error if you try to start a game with an anal herm parasite when you have anal parasitic pregnancy disabled.
+- Going into the character viewer before making a new character will no longer cause the social menu to completely error out. Added a fix for existing saves that have the error.
+- Fixed an error when you give someone a footjob while wearing ankle socks.
+- Stealing cosmetics will no longer make you the most wanted criminal in town.
+- Fixed an error when choosing "cooperate" when frotting someone else.
+
+## 0.3.5.2
+
+- The description above actions now consistently state the NPC's name/description. Thanks to Rukarin.
+- Targeting the same NPC's penis or pussy with multiple body parts will no longer spawn additional genitals. Thanks to Rukarin.
+- It's no longer possible for herms to penetrate and NPC's ass while their pussy is in use. Thanks to Rukarin.
+- The dog you can follow into an alley is no longer able to speak.
+- Fixed an issue found when straddling a second penis for double vaginal and anal penetration. Thanks to Bathory666.
+- Settings now exports pubic hair setting. Thanks to Bathory666.
+
+Thanks to oyea for the following fixes:
+
+- Adjusted the shading on the keyhole dress for larger breast sizes.
+- The player will no longer be told they're about to pass out when an NPC is sitting on their face if they're already unconscious.
+- The person offering the tutoring job on Danube Street will no longer expect the PC to be in school on non-school days.
+- The cropped hoodie can no longer be tucked in.
+- Stopped Kylar from breaking free when sleeping with them at the orphanage.
+- Stripping at the photography studio will no longer trigger automatic clothing rebuy.
+- Fixed an issue when assaulted for entering the wrong toilets at the park.
+- The game will no longer forget the player's hypnosis progress when a save is loaded.
+- Fixed a text issue found when ejaculating on a tentacle. Thanks to braymann.
+- Fixed a bug found when working as a chef. Thanks to Jimmy.
+- Fixed NPCs breaking free from the farm. Thanks to Jimmy.
+
+## 0.3.5.1
+
+- Added a short event to the photo studio.
+- Added combat sprites for lace arm warmers. Art courtesy of lifeAnime.
+- Added an icon for Bailey's office. Art courtesy of Conhue.
+- Added a couple of short events outside the strip club.
+
+Thanks to Bathory666 for the following additions and improvements:
+
+- Added a frottage missionary sprite.
+- Added a black variant for the double anal penetration close-up sprite.
+- Added an icon to the photography studio. Art courtesy of 3hp.
+
+### Balance Changes
+
+- Entering the photo studio now takes one minute. Thanks to Bathory666.
+
+### Bug Fixes
+
+- Fixed an issue with the winter residential dusk location image. Thanks to Swaggy Bookshelf.
+- Fixed a bug that prevented an encounter found while modelling from triggering. Thanks to oyea.
+- Orderlies should now always dress you in a gown after removing a straightjacket, rather than towels.
+- Fixed an error found when wearing a bathrobe with a flat chest.
+- Adjusted the descriptions of the "Morgan the Lost" and "Harper the Hypnotist" feats.
+- Fixed a softlock found when following a dog into an alley. Thanks to Crimson Tide and braymann.
+
+Thanks to Crimson Tide for the following fixes:
+
+- Going to the prisoner's cell for teeth now actually gives you teeth.
+- The clothing rebuy message now properly accounts for plurals.
+- You can encounter the night monster as a monsterperson more than once.
+- Doren's introduction text will now display appropriately should your first meeting with them be during a hypnosis event.
+- Typo fixes.
+
+Thanks to PurityGuy for the following fixes:
+
+- Pressing "Next" on the Tending grade feat boost boost or "Previous" on the seduction feat boost will no longer move the list back to the money boost selection.
+- Cleaned up some weirdness when kissing a plantperson outside of combat.
+- Passing out at school and being rescued by Sydney no longer causes a brief blank passage.
+
+Thanks to Rukarin for the following fixes:
+
+- Improved the way pronouns are presented during encounters with multiple NPCs.
+- Fixed some errors found during encounters.
+- Fixed a bug that could make named NPCs invincible, among other issues.
+- Fixed a bug that caused the "Ask" action to display the wrong text in front of its options.
+- Fixed an issue with NPC descriptions.
+
+Thanks to braymann for the following fixes:
+
+- Cumming in a pool changing room while no one is there will no longer mention how it caught everyone's attention.
+- The journal will now tell you what's being built when you're doing the second barn upgrade.
+- Fixed an error when having sex with pure Sydney.
+- You will no longer wear your socks over your shoes in combat.
+- Rewarding a wolf after sparring and losing will now say that it requires deviancy.
+- Typo fixes
+
+Thanks to Bathory666 for the following fixes:
+
+- Fixed a bug that broke double vaginal.
+- Fixed an issue with double vaginal sprites.
+- Fixed a bug that caused the wrong text to display during double vaginal.
+- Fixed an issue with the doggy sprite during frottage.
+
+## 0.3.5.0
+
+- Niki's photo studio can now be visited for modelling work once discovered.
+- NPCs can now be targeted individually during encounters with multiple NPCs. They have individual pain bars, and can be knocked out of combat one by one, but still share arousal. Defeating an NPC reduces pain and arousal. Thanks to Rukarin.
+- Added some lewd options to the prison yard while the inmates exercise.
+- Added a few events to school that can trigger after the PC has been hypnotised by Harper.
+- Added new orgasm locations to the school. Written by Kinky_One and coded by Lollipop Scythe.
+- Adjusted the residential alleyway dog event to take arm bindings into account. Thanks to Jimmy.
+- Added the cropped hoodie to the clothing shop. Art courtesy of 3hp.
+- Added encounter sprite art for longer skirts, sweaters, turtlenecks, and scarfs. Art courtesy of 3hp.
+- Disabling beasts will now prevent lewd events with beasts from triggering, rather than forcing them into monstergirl/boy form. Events will proceed as normal if the beast generated as a monster due to other settings.
+- Added a fountain to the park location image. Art courtesy of Kami.
+- Replaced the body-writing toggle with a slider, letting you choose between self-body-writing only, consensual body-writing, consensual and forced body-writing, and the previous but with the addition of forced tattoos.
+- Added new location art for the landfill, and new winter variants for the landfill, prison, Alex's cottage, Alex's farm, the café, Remy's farm, forest, lake, moor, museum, park, pool, pub, riding school, ruins, spa, residential alleys, and town streets. Art courtesy of Swaggy Bookshelf.
+- The prison will now shackle the PC with a ball and chain, rather than regular shackles. Art courtesy of PurityGuy.
+- Added a full view of the prison, which highlights your current location. Art courtesy of 3hp.
+- Also added a view of the rut once discovered.
+- Added light-up trainers to the clothing shop, including icons and encounter images. Art courtesy of Lantern.
+- Added the mini snowman to the forest shop, including encounter images. Available from 15th December. Art courtesy of lantern.
+- Added the curtain fringe hairstyle, and neat sides hairstyle. Art courtesy of Lantern.
+- Added icons for the shopping centre, hospital, and beach. Art courtesy of Myoran.
+- Added encounter images for nipple tape. Art courtesy of Mist.
+- Added a patient gown to the asylum. The staff there will provide them instead of towels.
+- Tips regarding disabled content no longer appear. Thanks to hwp.
+- The combat sprites can now display both trousers or shorts, depending on the item worn.
+- Added times hypnotised to the statistics overlay.
+- The PC may now refuse Avery's hand at the start of the restaurant date. Thanks to PurityGuy.
+- Added icons for the main hall and front doors of the orphanage, as well as the plaque, canteen, laundry room, medical room, and large door in prison. Also added icons for the run and lift options in the prison yard. Art courtesy of Turkeh (Formerly SlimeFox).
+- The sidebar should now stick to the bottom should it change length while scrolled to the bottom. Thanks to hwp.
+- Added the "Harper the Hypnotist" and "Morgan the Lost" feats.
+- The prison canteen now takes bound arms and gags into account.
+- Hair should now display beneath hoods. Thanks to aimozg and lifeAnime.
+- Added gold highlights to newly attached creatures during struggle encounters. Thanks to note leven.
+- Bailey now has a different greeting for the player upon their return from the underground brothel, should they escape quickly. Written by Harcher and coded by oyea.
+- Using the cheat menu to change transformations will now have immediate effect, rather than requiring a wait until midnight. Thanks to Beat.
+- Thanks to Rukarin for lots of code improvements under the hood.
+- Thanks to Lollipop Scythe for major improvements to the clothing system.
+- Thanks to Jimmy, hwp, Crimson Tide and note leven for code improvements.
+
+Thanks to oyea for the following additions and improvements:
+
+- Gave the night monster a monster-person variant, and added new scenes to its lair. Written by Mist.
+- Fleshed out the night monster, giving it an obsession with shiny and pretty things.
+- The night monster now persists between appearances, rather than being freshly generated each time.
+
+Thanks to PurityGuy for the following additions and improvements:
+
+- The owners of the pet shop may now get word of the player's beast fame, and comment accordingly. Requires beasts to be enabled and non-monster beasts to be possible. Written by Charming.
+- Added an event with another orphan to Domus and Danube street. Written by Charming, with some additions.
+- Trying to tutor a student on Domus street while school is in session now has some unique text. Written and coded by House.
+- The Great Hawk now has its penile/vaginal virginity intact. Does not require a new save, it will apply retroactively. Raptors mate for life!
+- Added two tips for blood moons.
+- Added a subtle hint for players that have already gone through a possession to help avoid it in the future.
+- Sleeping over with a traumatised Robin will no longer protect the player from strange forces.
+- Added tooltips, used to make the Settings page neater.
+- Added some new magic CSS. Thanks to aimozg.
+- Green thumb is now a feat boost, rather than a background trait, unlocked upon getting the feat for reaching max tending. Green Thumb can still be obtained through gameplay, and saves made before this version will be unaffected.
+- In Green Thumb's place in the backgrounds menu is the new "Dendrophile/Plant Lover" trait. It gives the player a bonus to tending as they gain trauma, causes plantpeople and plant-based tentacles to no longer require hallucinations, makes the player more vulnerable to aphrodisiacs and alcohol, and gives the PC an addiction to nectar. This trait can be gained in-game by drinking lots of nectar, and lost by abstaining from nectar completely for a long time.
+- Boosting the tending skill above S rank will now provide further bonuses to crop yield, ability to pick wild plants, selling at your stand, and other areas as skill improves.
+- All plant-based tentacles now use nectar.
+- Added the Plant Lover/Dendrophile trait to the cheats menu.
+- For herm players, the "Crossdresser" option is now greyed out, as it doesn't do anything for them.
+- You can now refuse Avery's hand when on a date with them.
+
+Thanks to Bathory666 for the following additions and improvements:
+
+- Added double vaginal, including NPC and PC initiation.
+- Added x-ray and encounter sprites for double vaginal, including NPC silhouettes.
+- Added NPC speech for double anal and vaginal moaning.
+- Added ejaculation text for chastity blocked double anal and double vaginal.
+- Added double tease for double anal and double vaginal.
+- Updated the brothel gangbang scene to take double vaginal into account.
+- Added a new toggle that covers both double vaginal and anal, complete with a tooltip. Double anal greys out if anal is disabled. Thanks to note leven for help with the grey-out effect.
+- Pussies can now be bitten, similar to penises.
+- Added a penis fencing encounter sprite.
+- Added icons for the school playground, entrance, and exit.
+
+Thanks to Crimson Tide for coding the following scenes:
+
+- The PC can now relax with the Black Wolf. Written by Burnt Toast.
+- The PC can now encounter a rival wolf pack while hunting. Written by Burnt Toast.
+- The Black Wolf can now challenge the PC for position of alpha, if ferocity is high and harmony is low. Written by Burnt Toast.
+- The Black Wolf can now lead the pack in a group howl, with the PC able to join in. Impacted by transformations. Written by Burnt Toast.
+- The wolves may now sleep beside the PC in the wolf cave, increasing sleep quality and reducing stress and trauma. Written by Charming.
+- Added the ability to challenge the wolves at the cave to a fight. Written by yetanotheruser.
+- Added night patrol scene with the Black Wolf. Written by Necro.
+
+### Balance Changes
+
+- The night monster's behaviour in their lair is now influenced by the PC's allure. Thanks to oyea.
+- It's now possible to outrun the night monster via an athletics check. Thanks to oyea.
+- Asphyxiophilia will now give the "A Special Trait" feat, but is also required for the "A Special Trait Collector" feat.
+- Increased the thigh skill gained at the riding school.
+- The PC can no longer steal tulips while exposed. Thanks to note leven.
+- Removed awareness requirement for double anal penetration. Lowered chance of NPCs attempting to double penetration to compensate. Thanks to Bathory666.
+- Jordan can now take the PC's handholding virginity during the temple sneaking scenes. Thanks to Jimmy.
+- Feet skill and dance skill now have a lower impact on dodging. Added a penalty for wearing heels. Thanks to note leven.
+- Grabbing a creature no longer locks off other options. However, switching hands to another creature will reset grip progress. Thanks to note leven.
+- Failing a dodge now has a 66% chance to attach to any available bodypart per creature. Thanks to note leven.
+- Successfully making Robin a flower crown will now increase their love. Thanks to oyea.
+- The PC can now move their poked at or penetrated anus to another penis and start double anal penetration if requirements are met. Thanks to Rukarin.
+
+Thanks to PurityGuy for the following balance changes:
+
+- The ancient threat is now easier to resist with willpower if the PC hasn't robbed them.
+- The PC can now prevent the ancient threat giving them an ear slime by fighting them off.
+- The ancient threat no longer catches the PC so fast at the lake.
+- The ancient threat can now be encountered around town during blood moons without running in circles for over an hour.
+- The ancient threat is now less likely to appear outside blood moons, and the more dangerous events can only trigger at night.
+
+### Bug Fixes
+
+- Fixed a bug that made monsters transform into beasts when reloaded.
+- Fixed an error found during combat. Thanks to Raahs.
+- Adjusted the "back" hairstyle, so it doesn't clip through headwear as much. Thanks to Ppspray.
+- The option to slap Kylar in the canteen will no longer incorrectly indicate that it reduces Kylar's dominance.
+- Fixed some issues with the missionary shorts sprite.
+- NPCs will no longer grasp your "naked" at the town pillory should you be wearing nothing beneath your top.
+- Fixed issue where the sidebar's vertical position would reset back to the top each time you change passages. Thanks to hwp.
+- The PC will no longer clip through undamaged long skirts.
+- Fixed a bug that sometimes broke missionary encounter sprite clothes.
+- Fixed a bug that prevented wedge sandals displaying on the combat sprite.
+- Fixed a minor bug involving outfits with multiple types. Thanks to Lollipop Scythe.
+- Text will no longer be repeated for the second hand should NPCs tug at your chastity belt with both. Thanks to lifeAnime.
+- Thanks to lewddude for fixing some hand target issues.
+- Plantpeople can no longer be encountered separately from tentacles. Thanks to Crimson Tide.
+- Plantpeople now require hallucinations to encounter. Thanks to Crimson Tide.
+- Fixed a bug that resulted in plantpeople impregnating you with "vine vines", rather than vines. Thanks to Crimson Tide.
+- Thanks to Crimson Tide for formatting and typo fixes.
+
+Thanks to note leven for the following fixes:
+
+- The journal should no longer become polluted with multiple copies of the same museum hint. New hints will also appear at the top of the list.
+- The "shots fired" stat will now only appear once Eden is met.
+- Fixed a bug at the prison wardrobe that could prevent hotkeys working.
+- Fixed a bug that prevented the side from being toggled.
+- Asking to go to the cinema too early no longer wastes 15 minutes.
+- The "go somewhere together" link no longer shows on the next page after clicking it.
+- Visiting the forest with Robin no longer blocks cinema and Halloween costume visits.
+- Robin no longer wears outfits of the opposite gender to the cinema when not crossdressing.
+- Fixed an error found during a Halloween event.
+- Fixed an issue with the tentacles generated along the road in the farmlands.
+- Formatting and minor code improvements.
+- Science grade no longer requires masochism to reduce pain.
+- Soothing pain is no longer reduced by science, and doesn't lower arousal with high masochism.
+- Being forcibly footstooled will now indicate a pain increase.
+- Fixed various small issues.
+
+Thanks to PurityGuy for the following fixes:
+
+- The ancient threat will no longer show up on the first blood moon.
+- Fixed some jank when this isn't Kylar.
+- Fixed a looping message at the lake.
+- The ancient threat can now hunt and catch the PC in water or on the ice at the lake.
+- The PC will no longer be able to look at their reflection in a nonexistent window when possessed in the storm drains.
+- The notification that a corruption bar has appeared in characteristics will no longer appear if the bar is already present.
+- Fixed some faulty logic in the lake ruin.
+- Fixed a bug that could stop time passing properly when sleeping with traumatised Robin.
+- Fixed some errors found when checking your offspring while under the ancient threat's influence.
+- The swimming bonus from the Athlete background and the swimming feat boost now stack properly.
+
+Thanks to Jimmy for the following fixes:
+
+- Fixed some errors found during the flashing scene in the café.
+- Fixed a bug that prevented exhibitionism fame from accruing as intended.
+- Adjusted Robin's debt dialogue to take a missing console into account.
+- Fixed a bug that could prevent clothing rebuy from working correctly on new saves.
+- Fixed a Sirris-Sydney pronoun mix-up.
+- Fixed an issue found while livestock on Remy's farm.
+- The "Dry your clothes" option will no longer display if all clothes are dry.
+- It should no longer be possible to increment Kylar's stats without advancing time.
+- Whitney should now be specified as the target of a dominance stat change during their scene with Kylar in the canteen.
+- Showering in prison should now always advance time.
+- Fixed some issues caused by NPCs hanging around the park toilets.
+- The description and effect of flaunting in prison should now match.
+- Added an exhibitionism requirement to the landfill milkshake scene.
+- All NPCs should now properly generate after fighting Bailey's goons during a farm assault.
+- Fixed some rogue NPCs at the farm kennel.
+- Fixed an issue with the clothing system.
+- Fixed a pronoun issue during the school detention paddle scene.
+- Removed an unnecessary NPC found when breaking into houses on Danube Street.
+- Added bratty colouring to the strife action.
+- Fixed some text errors found when encountering plantpeople.
+- Offering your body after stripping on the street should now increase prostitution fame.
+- The PC will now wait a minute longer when waiting for students to leave the changing rooms, lining up with 3:05.
+- Fixed an issue with the clothing system. Thanks to Lollipop Scythe.
+- Robin should no longer lurk the tutorial encounter.
+- Cleared some rogue NPCs found when picking pockets on Connudatus Street.
+- Fixed some rogue NPCs released when eating pancakes at the café.
+- Adjusted and optimised some clothing shop code.
+- Fixed an NPC error found in the park toilets.
+- Fixed a surplus of pigs found when encountering a horde of them in the farmlands.
+- Fixed some issues found during the hunt scene in the underground brothel.
+- Clothing should now dry instantly when choosing the "dry clothing" option at the wardrobe.
+- Fixed a reference to the wrong guard during a Kylar prison scene.
+- There should no longer be a queue outside the café while it is closed.
+- Fixed a bug that could cause tentacles to be described as pussies.
+- Added "Hold behind back", "Stop holding behind", and "Kiss" to selectable default actions.
+- Kylar can no longer be soft-locked out of the game in the prison showers.
+- Thanks to Oyea for minor text improvements
+- Thanks to hwp for fixing an issue found during a masturbation scene.
+- Thanks to Crimson Tide for fixing an issue found when cuddling Kylar in bed.
+- Whitney should no longer be able to appear outside school after you dunk them in the pool. Thanks to Talrea.
+- Fixed an error found on some Android devices.
+- Minor code and typo fixes.
+
+Thanks to Bathory666 for the following fixes:
+
+- Fixed an old bug that occurred when trying to offer pussy or ass at the same time you straddle with the same part. It will now initiate double penetration if appropriate, and fail if not.
+- Teasing penises with your ass now involves your anal skill.
+- Fixed a bug that caused the brothel gangbang show to fail to display double penetration.
+- Kink presets, saves, and settings exports now update double anal penetration and plant people toggles. Thanks to Bathory666.
+- Fixed an issue with the new renderer displaying chastity devices beneath clothing. Thanks to aimozg.
+- Minor code and typo fixes.
+
+Thanks to note leven for the following struggle encounter fixes:
+
+- Struggle encounters will now start with feet evading.
+- The "Hurl net" actions now prioritises staggered opponents.
+- The "stroke it" action should no longer reset to rest every turn.
+- Fixed a red wall of text found if the tutorial man hasn't been met yet.
+- Oxygen no longer restores on turns where you can't breathe.
+- Other small fixes.
+
+Thanks to braymann for the following fixes:
+
+- Trauma will now build up properly when the player has innocence.
+- The game will now mention when you orgasm into someone's bowels if they have a vagina.
+- Removed some unnecessary line breaks when an audience comments on you in a swarm encounter.
+- When wearing nipple tape, students that try to undo your bra will no longer say you're wearing some kind of vest.
+- Fixed a bug with fertiliser decay.
+- You can no longer go into debt by paying your watchtower guard more money than you currently have.
+- Fixed some missing quotations and typos in the brothel shows. Thanks to Jimmy.
+- People should now only write "Walking Dildo" and "Cum Rag" on you when appropriate. Thanks to Jimmy.
+- Typo fixes.
+
+Thanks to oyea for the following fixes:
+
+- Darryl will no longer appear in the social tab before the player has properly met them.
+- The passed-out prostitute/unwary pickpocket harassed by street cops will no longer always be female.
+- Fixed an issue when having sex with Eden after masturbating in the spring.
+- Fixed an issue with the player not getting dressed after one of the nighttime street exhibitionism events.
+- Typo fixes.
+
 ## 0.3.4.8
 
 - Fixed an error that appeared when gaining exhibitionism fame. Thanks to Jimmy.
@@ -400,7 +1813,7 @@ Thanks to Bathory666 for the following additions and improvements.
 - Players can lose virginity to two NPCs at the same time.
 - Added audience reactions to double penetration.
 - Added an additional reward when receiving double penetration during Briar's brothel shows.
-- Added xray animations for double penetration.
+- Added x-ray animations for double penetration.
 - Added a double penetration toggle to Settings. Disabled by default.
 
 Thanks to hwp for help, and to braymann for bug fixes.
@@ -438,7 +1851,7 @@ Thanks to oyea for coding the following scenes:
 - Passing the temple punishment with Sydney will now put them back in the temple's good graces.
 - Fixed a softlock with Whitney in the park.
 - Fixed an issue that bloated save file size. Thanks to Lollipop Scythe.
-- FIxed a bug that caused the adjective for penis size to be printed twice. Thanks to hwp.
+- Fixed a bug that caused the adjective for penis size to be printed twice. Thanks to hwp.
 - The change to bodypart size will on happen at the appropriate moment during hospital procedures. Thanks to hwp.
 - Thanks to Lollipop Scythe for typo and minor code fixes.
 - Fixed a bug that allowed NPCs to remove legwear without first removing shoes, and prevented them from removing shoes at all.
@@ -462,7 +1875,7 @@ Thanks to oyea for coding the following scenes:
 - Striking with both hands during combat should now be described as such.
 - You will no longer gain defiance when apologising to Remy after a failed escape. Thanks to oyea.
 - Fixed an issue when having sex with a shady fan on the streets. Thanks to oyea.
-- NPCs can now only comment on one body-wirting per turn. Thanks to oyea.
+- NPCs can now only comment on one body-writing per turn. Thanks to oyea.
 - Revealed strap-ons are no longer described as "fully erect." Thanks to Bathory666.
 - Net skill will now increase when failing to catch lurkers during farm events, rather than when succeeding, and will be properly marked as doing so.
 - Fixed a bug that hid legwear on the back leg.
@@ -512,14 +1925,14 @@ Thanks to Crimson Tide for the following fixes:
 - NPCs will now react to taking the PC's first kiss if the PC initiated the kiss.
 - Pens can now be properly whacked out of named NPC hands during encounters with multiple named NPCs.
 - NPCs reacting to an arrow on your pubic region will now attempt to fuck your pussy, rather than your ass.
-- Image body-writing wil no longer be described in quotation marks as if it were text.
+- Image body-writing will no longer be described in quotation marks as if it were text.
 - Typo and minor fixes.
 
 Thanks to braymann for the following fixes:
 
 - Insecurity can now be gained like usual again.
-- Fixed some broken text when two npcs try to write on the player in the same place at the same time.
-- Fixed an error when the player is about to penetrate a vagina in multi-npc encounters.
+- Fixed some broken text when two NPCs try to write on the player in the same place at the same time.
+- Fixed an error when the player is about to penetrate a vagina in multi-NPC encounters.
 - One of the other criminals in community service will no longer try to press someone else's penis against you.
 - Great hawk will no longer occasionally look like a dog.
 - The "Ejaculated on/in" stat will no longer increase multiple times from a single ejaculation.
@@ -546,15 +1959,15 @@ Thanks to braymann for the following fixes:
 - Added some more text highlighting to the market stall where it was missing.
 - The hooded couple that talk about the player's good fames will no longer always mention the same type of fame.
 - Masturbating in the temple will now give exhibitionism.
-- Fixed a bug where npcs weren't actually grabbing your clothes when the game says they are.
+- Fixed a bug where NPCs weren't actually grabbing your clothes when the game says they are.
 - Fixed an error when refusing to give Avery a kiss.
 - Fixed a softlock when passing out in the park bathrooms.
 - Irrigated fields will no longer need watering right after the player plants something in them.
 - Great Hawk will no longer be able to bring back clothing that can't be bought in the store.
 - Removed some corrupted text when dying pubic hair.
 - Fixed some text that was overlapping the closeup images at the end of encounters.
-- Fixed an error when wearing damaged armsleeves.
-- Fixed a bug that caused npcs to try to pull down your panties before they even moved your pants.
+- Fixed an error when wearing damaged arm sleeves.
+- Fixed a bug that caused NPCs to try to pull down your panties before they even moved your pants.
 - During Blackjack, the round will now end immediately if Wren was dealt a natural Blackjack.
 - You will now get the Anal Mother trait as soon as you birth a third parasite, instead of the next time you get impregnated after that.
 - The game will now properly tell you what farm upgrade is currently happening when looking in the journal or at Alex's desk.
@@ -564,7 +1977,7 @@ Thanks to braymann for the following fixes:
 - NPCs starting encounters by making you give them oral will no longer allow them to contort their bodies.
 - The watchtower guard will now ask for the correct amount of money if you missed some payments.
 - Fixed a bug that sometimes caused there to be absolutely no text at the end of an encounter in the park toilets.
-- Fixed a couple bugs that can happen when beating people up in gangbangs.
+- Fixed a couple bugs that can happen when beating people up in gang bangs.
 - NPCs are no longer able to give you footjobs when your genitals are being used by someone else already.
 - Fixed some issues with suffocation during combat.
 - You are no longer forced to buy at least one dog treat when you examine them in the pet store.
@@ -573,7 +1986,7 @@ Thanks to braymann for the following fixes:
 - Fixed some bugs that could prevent you from writing certain body-writings on yourself.
 - NPCs will no longer immediately forget that they just wrote something on you and react to it like they've never seen it before.
 - The random solo tentacle in the streets will no longer be named "Large Tentacle" if it isn't able to impregnate the player.
-- Fixed a problem where beasts aren't able to trigger the "npc has broken free" error message.
+- Fixed a problem where beasts aren't able to trigger the "NPC has broken free" error message.
 - Fixed a dog that breaks free from the beach.
 - You will no longer be able to get an extra raise from the docks to reach £21 an hour.
 - NPCs will no longer try to remove your mask if someone else already removed it on the same turn.
@@ -662,7 +2075,7 @@ Thanks to bsmith for the following fixes:
 
 Thanks to braymann for the following fixes:
 
-- Fixed another potential bug with named npc generation.
+- Fixed another potential bug with named NPC generation.
 - Fixed a bug where sometimes monster people would have a default dog sprite.
 - Fixed a bug where delinquency decay would happen on the wrong days.
 - Glory holes will once again require promiscuity 4 to enter.
@@ -998,12 +2411,12 @@ Thanks to braymann for the following fixes:
 - Added the option to meekly hold your arms behind your back during normal human encounters.
 - Expanded the penis and pussy inspection scenes with new options and reactivity, including the ability to join the line or remain seated in spite of gender appearance. Crossdresser and hermaphrodite fame will now interact with the scene. Thanks to hwp, with writing help from oyea and anon.
 - Monster boys and girls can now use their hands during combat.
-- NPCs with penises will now make the PC give them a boobjob under their own initiative, should the PC's breasts be large enough.
+- NPCs with penises will now make the PC give them a boob job under their own initiative, should the PC's breasts be large enough.
 - NPCs can now dislocate the PC's top and fondle their chest during the pillory punishment on Cliff Street.
 - Added plain thigh highs to the clothing shop.
 - Added a feet toggle to Settings.
 - Added the option to tell Robin you like being a cow. Thanks to anon.
-- Added body size and asphyxiophila to the cheat menu.
+- Added body size and asphyxiophilia to the cheat menu.
 - Added the option to submit when the PC's ass is groped on the streets. Requires high submissiveness. Thanks to larsrand.
 - The PC can now write more slutty and submissive lines on their skin at the mirror, if they meet the requirements. Thanks to larsrand.
 - Added the option to flirt when a student squeezes your bottom in the school hallways. Requires promiscuity and submissiveness. Thanks to larsrand.
@@ -1174,8 +2587,8 @@ Thanks to braymann for the following fixes:
 - Any purity gained or lost by taking care of your parasites is now affected by any holy clothing you're wearing.
 - Fixed a bug where choosing to wear random clothing will sometimes break outfits in half.
 - Slime parasites on your clit will no longer look like an urchin parasite.
-- Fixed a problem when an npc initiates a titfuck.
-- Fixed some npcs that would refer to your nonexistent chastity belt after they orgasm.
+- Fixed a problem when an NPC initiates a titfuck.
+- Fixed some NPCs that would refer to your nonexistent chastity belt after they orgasm.
 - The tower security guard's security skill now has a cap and will no longer increase infinitely.
 - Typo fixes.
 
@@ -1272,7 +2685,7 @@ Thanks to braymann for the following fixes:
 - Fixed a bug that sometimes caused plants to grow at super high speeds.
 - Moved the beehives back into the deep forest where they belong.
 - Fixed a problem with one of the ambient events.
-- Fixed a bug with the landfill passout scene.
+- Fixed a bug with the landfill passing out scene.
 - Removed the duplicate link to check your pills in Alex's cottage.
 - The random clothing feat boost will no longer give you just the bottoms or hoods of some outfits.
 - Fixed a problem where invisible broken hoods in the wardrobe would stay invisible forever and could never be removed.
@@ -1296,7 +2709,7 @@ Thanks to braymann for the following fixes:
 - Added the monster hoodie, school swim top and school swim bottoms to the clothing shop. Art courtesy of lifeAnime.
 - Added a keyhole dress to the clothing shop. Art, including the icon, courtesy of Harto.
 - Added new images for larger breast sizes to the chest window. Art courtesy of sseshess.
-- Boobjobs are now displayed in the chest window for the remaining sizes. Art courtesy of sseshess.
+- Boob jobs are now displayed in the chest window for the remaining sizes. Art courtesy of sseshess.
 - Added icons for swimming, walking, and running to the forest, moor, park and beach. Also added icons for the lake, the orphanage flower patch, beds, and wardrobes. Art courtesy of anon.
 - Added new art for cycle shorts, breeches, cowboy chaps, gym bloomers, jeans, denim shorts, khakis, sailor shorts, sailor trousers, school shorts, school trousers, shorts, sweatpants, and trousers. Includes damage variants and icons. Art courtesy of Anon.
 - Added booty jorts to the clothing shop. Art courtesy of Anon.
@@ -1381,7 +2794,7 @@ Thanks to Lollipop Scythe for the following additions and improvements:
 - Getting angry after Alex pulls you onto the dirt in the fields should now decrease love rather than increase it.
 - Tentacles should no longer be able to attack at the orphanage flower beds while tentacles are disabled.
 - Fixed an issue with Eden not catching you while you have a solo session in the spring. Thanks to Khau.
-- Fixed some npc widget issues with Eden. Thanks to Khau.
+- Fixed some NPC widget issues with Eden. Thanks to Khau.
 - Avery's hot tub will now wash off lewd fluids and such.
 - Points towards the cow transformation should now cap in the cheat menu.
 - The initiate being disciplined at the temple will now follow the victim slider.
@@ -1570,7 +2983,7 @@ Thanks to Lollipop Scythe for the following fixes:
 
 Thanks to Khau for the following fixes:
 
-- Stopped many npcs from breaking free.
+- Stopped many NPCs from breaking free.
 - Stopped the massage scene from disappearing at 11:30pm.
 - The fifth massage cycle will no longer take 33 minutes instead of 30.
 - Massaging now increases more of Eden's lust.
@@ -2377,7 +3790,7 @@ Thanks to Lollipop Scythe for the following fixes:
 
 - Eels, spiders, worms and maggots now have art during swarm encounters. Art courtesy of ΩMEGA.
 - Urchin and slime parasites will now display beneath chastity cages. Art courtesy of Karshton.
-- The player may now strip at the new npc's tower. Thanks to PurityGuy.
+- The player may now strip at the new NPC's tower. Thanks to PurityGuy.
 - Added the bird TF info to the statistics tab. Thanks to PurityGuy.
 
 ### Bug Fixes
@@ -2419,7 +3832,7 @@ Thanks to PurityGuy for the following fixes:
 - Fix for an arousal increase that is only supposed to happen if the new NPC is a monster.
 - Fix for the bird TFs eyes layering in front of eyelids when blinking.
 - Removed some leftover debug code for stripping under upper clothing.
-- Fixed pronoun errors for the new npc.
+- Fixed pronoun errors for the new NPC.
 - Fixed some bugged submissiveness checks.
 - Made the feathered hair clip obtainable.
 - Robin's soft bad end message will no longer trigger if you've already taken their debt.
@@ -2526,7 +3939,7 @@ Thanks to Lollipop Scythe for the following fixes:
 - Fixed some layout issues with the encounter UI on mobile.
 - Fixed a bug that prevented some tips from displaying.
 - Fixed many old drug lines that were incorrectly referencing intoxication.
-- Fixed some events where the player or npc reference clothing when none are worn.
+- Fixed some events where the player or NPC reference clothing when none are worn.
 - Typo and other minor fixes.
 
 Thanks to braymann for the following fixes:
@@ -2959,7 +4372,7 @@ Thanks to braymann for the following fixes:
 - You will now put your clothes back on after escaping rapists at the beach party.
 - You can no longer gain sexual fame or have your anal parasites fertilised by reading Raul and Janet in the library.
 - Automatic Rebuy will no longer buy the clothes Janet was wearing in the book.
-- Virginities taken by the tutorial npc will now show as being taken by "Tutorial Woman" if they were, in fact, a woman.
+- Virginities taken by the tutorial NPC will now show as being taken by "Tutorial Woman" if they were, in fact, a woman.
 
 ## 0.2.21.5
 
diff --git a/DoL Changelog.txt b/DoL Changelog.txt
index 29410ea2c52e0de75674f4dd2f9d48fb895e37a9..e4246e1957097d3abdf8ae31d4db2e76200a4bde 100644
Binary files a/DoL Changelog.txt and b/DoL Changelog.txt differ
diff --git a/LICENSE b/LICENSE
index 043d4169a3790221e0673ccc3d1d0794cc576c0c..635ea2efc58c19fc3ccfa10047007a3139067aa0 100644
--- a/LICENSE
+++ b/LICENSE
@@ -5,7 +5,7 @@ By exercising the Licensed Rights (defined below), You accept and agree to be bo
 Section 1 – Definitions.
 
     Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
-    Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
+Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
     BY-NC-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
     Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
     Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
diff --git a/README.md b/README.md
index 67fae2eaaee03745da33c37095d5bc856b422dfa..3fc784adc38a5a5c307d569ca7dea2c157921c88 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,20 @@
 # Degrees of Lewdity Herm NPCs Mod
 
 Adds hermaphrodite (aka futa) NPCs. This includes named love interests as well as all random encounters.
+
+## Lexicon of Lewdity
+
+Looking to contribute to Degrees of Lewdity? Read the [Lexicon of Lewdity](https://gitgud.io/Vrelnir/degrees-of-lewdity/-/wikis/home).
+
+_Failure to do so can lead to your work being denied._
+
+## How to build 
+
+### Compiling the html
+
+1. Run `compile.bat` or `compile-watch.bat`.
+2. Open `Degrees of Lewdity VERSION.html`.
+
+### Build Android version (.apk)
+
+?
diff --git a/compile watch.bat b/compile watch.bat
deleted file mode 100644
index 56889f855bcd7f3e6a011a75112709438c5f2b84..0000000000000000000000000000000000000000
--- a/compile watch.bat	
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-
-:: Set working directory
-pushd %~dp0
-@set TWEEGO_PATH="%~dp0devTools\tweego\StoryFormats"
-
-:: Run the appropriate compiler for the user's CPU architecture.
-if %PROCESSOR_ARCHITECTURE% == AMD64 (
-	CALL "%~dp0devTools\tweego\tweego_win64.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
-) else (
-	CALL "%~dp0devTools\tweego\tweego_win86.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
-)
diff --git a/compile.bat b/compile.bat
index e3bdc7b2433ee58502a668f71db6cdd586d5a364..a41520ec1d519fb0d1a348d8f18cbff468df7ea8 100644
--- a/compile.bat
+++ b/compile.bat
@@ -6,7 +6,7 @@ pushd %~dp0
 
 :: Run the appropriate compiler for the user's CPU architecture.
 if %PROCESSOR_ARCHITECTURE% == AMD64 (
-	CALL "%~dp0devTools\tweego\tweego_win64.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
+	CALL "%~dp0devTools\tweego\tweego_win64.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
 ) else (
-	CALL "%~dp0devTools\tweego\tweego_win86.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
+	CALL "%~dp0devTools\tweego\tweego_win86.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
 )
\ No newline at end of file
diff --git a/compile.sh b/compile.sh
index 0814444f1ba8cb363968cad6f8d9bb8c161c7fcf..949bae5a7c1f848f13e63a2830913423c492267e 100755
--- a/compile.sh
+++ b/compile.sh
@@ -56,7 +56,7 @@ function compile() {
 		esac
 	fi
 
-	$TWEEGO_EXE "$@" -o  "$TARGET" --head "devTools/head.html" game/ || build_failed="true"
+	$TWEEGO_EXE "$@" -o  "$TARGET" --head "devTools/head.html" --module "modules" game/ || build_failed="true"
 
 	if [ "$build_failed" = "true" ]; then
 		echoError "Build failed."
diff --git a/compile_watch.bat b/compile_watch.bat
index 56889f855bcd7f3e6a011a75112709438c5f2b84..6fba876e05e68773f35d8bc8e10b76c2c6b90765 100644
--- a/compile_watch.bat
+++ b/compile_watch.bat
@@ -6,7 +6,7 @@ pushd %~dp0
 
 :: Run the appropriate compiler for the user's CPU architecture.
 if %PROCESSOR_ARCHITECTURE% == AMD64 (
-	CALL "%~dp0devTools\tweego\tweego_win64.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
+	CALL "%~dp0devTools\tweego\tweego_win64.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
 ) else (
-	CALL "%~dp0devTools\tweego\tweego_win86.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
+	CALL "%~dp0devTools\tweego\tweego_win86.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
 )
diff --git a/devTools/androidsdk/image/cordova/config.xml b/devTools/androidsdk/image/cordova/config.xml
index c0bb06a3dc72d54174259ebcfb4abf174c4cda07..612ff750e6073b822504c259df7a943d98336f27 100644
--- a/devTools/androidsdk/image/cordova/config.xml
+++ b/devTools/androidsdk/image/cordova/config.xml
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='utf-8'?>
 <widget 
     id="dol" 
-    version="0.3.8.6" 
+    version="0.3.9.1" 
     xmlns="http://www.w3.org/ns/widgets" 
     xmlns:cdv="http://cordova.apache.org/ns/1.0"
     android-packageName="com.vrelnir.DegreesOfLewdity"
diff --git a/devTools/bodywriting-sprite-generator/README.md b/devTools/bodywriting-sprite-generator/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..3e684ad80d99b211a9ebb5cce9e74fac434c1143
--- /dev/null
+++ b/devTools/bodywriting-sprite-generator/README.md
@@ -0,0 +1,35 @@
+# Bodywriting sprite generator
+
+This simple command line tool helps with generation of bodywriting sprites for DoL.
+
+## Installation
+
+```
+npx yarn --frozen-lockfile
+```
+
+## Usage
+
+```
+npx ts-node ./main.ts [options]
+```
+
+### Example
+
+```
+npx ts-node ./main.ts --name testWriting --sourceImage=./test/testInput.png --targetFolder=./test/output/ --rewrite
+```
+
+### Full list of options
+
+| Option                         | Description                                                                                                                                                                                                                                                    |
+| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `--name string`                | The name of the sprite sheet and the writing. Defaults to "writing".                                                                                                                                                                                           |
+| `--sourceImage string`         | The source image to use. Containing bodywriting in all areas. Defaults to `"./input.png"`.                                                                                                                                                                     |
+| `--targetFolder string`        | The output folder. Inside will be created another folder, with name `--name` containing all the generated sprites, appropriatelly named. Defaults to `"./output.png"`.                                                                                         |
+| `--templateMasks string`       | Template masks folder, specifing the zones belonging to individual sprite areas. Defaults to `"./templateMasks"`. This folder exists, populated, inside this package folder.                                                                                   |
+| `--raisableParts string[]`     | Second sprit in the spritesheets of these parts of the body are raised by --raiseSecondSpriteBy amount of pixels. Defaults to `["breasts", "pubic","left_shoulder", "right_shoulder"]`.                                                                        |
+| `--raiseSecondSpriteBy number` | Second sprite in the spritesheet of --raisableParts parts will be raised by this amount of pixels. Note that the value is in conventional pixel, as opposed to DoL pixel, that are usually 2x2 convention pixels. Defaults to `2` (translates to 1 DoL pixel). |
+| `--size number`                | The size of the images. Defaults to 256`.                                                                                                                                                                                                                      |
+| `--rewrite`                    | If set, the output folder will be deleted and recreated. Defaults to `false`.                                                                                                                                                                                  |
+| `-h, --help`                   | Prints this usage guide.                                                                                                                                                                                                                                       |
diff --git a/devTools/bodywriting-sprite-generator/main.ts b/devTools/bodywriting-sprite-generator/main.ts
new file mode 100644
index 0000000000000000000000000000000000000000..94f68c20f4447f58cf192c196198f5af24786b7d
--- /dev/null
+++ b/devTools/bodywriting-sprite-generator/main.ts
@@ -0,0 +1,305 @@
+import { parse } from 'ts-command-line-args';
+import clc from 'cli-color';
+import fs from "fs";
+import { PNG, PNGWithMetadata } from "pngjs";
+
+interface IArguments {
+    name: string;
+    sourceImage: string;
+    templateMasks: string;
+    targetFolder: string;
+    raisableParts: string[];
+    raiseSecondSpriteBy: number;
+    size: number;
+    rewrite: boolean;
+    help: boolean;
+}
+
+const args = parse<IArguments>({
+    name: {
+        type: String,
+        defaultValue: "writing",
+        description: 'The name of the sprite sheet and the writing. Defaults to "writing".'
+    },
+    sourceImage: {
+        type: String,
+        defaultValue: './source.png',
+        description: 'The source image to use. Containing bodywriting in all areas. Defaults to "./input.png".'
+    },
+    targetFolder: {
+        type: String,
+        defaultValue: './output',
+        description: 'The output folder. Inside will be created another folder, with name <name> containing all the generated sprites, appropriatelly named. Defaults to "./output.png".'
+    },
+    templateMasks: {
+        type: String,
+        defaultValue: './template',
+        description: 'Template masks folder, specifing the zones belonging to individual sprite areas. Defaults to "./templateMasks". This folder exists, populated, inside this package folder.'
+    },
+    raisableParts: {
+        type: String,
+        multiple: true,
+        defaultValue: ['breasts', 'pubic', 'left_shoulder', 'right_shoulder'],
+        description: 'Second sprit in the spritesheets of these parts of the body are raised by --raiseSecondSpriteBy amount of pixels. Defaults to "breasts", "pubic", "left_shoulder", "right_shoulder".'
+
+    },
+    raiseSecondSpriteBy: {
+        type: Number,
+        defaultValue: 2,
+        description: 'Second sprite in the spritesheet of --raisableParts parts will be raised by this amount of pixels. Note that the value is in conventional pixel, as opposed to DoL pixel, that are usually 2x2 convention pixels. Defaults to 2 (translates to 1 DoL pixel).'
+    },
+    size: {
+        type: Number,
+        defaultValue: 256,
+        description: 'The size of the images. Defaults to 256.'
+    },
+    rewrite: {
+        type: Boolean,
+        defaultValue: false,
+        description: 'If set, the output folder will be deleted and recreated. Defaults to false.'
+    },
+    help: {
+        type: Boolean,
+        alias: 'h',
+        description: 'Prints this usage guide.'
+    },
+},
+    {
+        helpArg: 'help',
+    }
+)
+
+type Pixel = {
+    r: number,
+    g: number,
+    b: number,
+    a: number
+}
+
+type Image = {
+    width: number,
+    height: number,
+    pixels: Array<Array<Pixel>>,
+}
+
+function emptyNaiveImage(width: number, height: number = width): Image {
+    return {
+        width,
+        height,
+        pixels: Array(width).fill(null).map(() => Array(height).fill(null).map(() => ({ r: 0, g: 0, b: 0, a: 0 })))
+    }
+}
+
+function toNaiveImage(png: PNGWithMetadata, size: number) {
+    let inputImage = emptyNaiveImage(size);
+
+    for (let y = 0; y < args.size; y++) {
+        for (let x = 0; x < args.size; x++) {
+            let idx = (y * args.size + x) << 2;
+            inputImage.pixels[x][y] = {
+                r: png.data[idx],
+                g: png.data[idx + 1],
+                b: png.data[idx + 2],
+                a: png.data[idx + 3]
+            }
+        }
+    }
+    return inputImage;
+}
+
+function toPng(image: Image) {
+    let png = new PNG({
+        width: image.width,
+        height: image.height,
+        colorType: 6,
+        inputHasAlpha: true
+    });
+
+    for (let y = 0; y < image.height; y++) {
+        for (let x = 0; x < image.width; x++) {
+            let idx = (y * image.width + x) << 2;
+            png.data[idx] = image.pixels[x][y].r;
+            png.data[idx + 1] = image.pixels[x][y].g;
+            png.data[idx + 2] = image.pixels[x][y].b;
+            png.data[idx + 3] = image.pixels[x][y].a;
+        }
+    }
+    return png;
+}
+
+
+function makeSafeInputStream(): Image {
+    let sourceBuffer = fs.readFileSync(args.sourceImage);
+    let png = PNG.sync.read(sourceBuffer);
+
+    if (png.colorType != 6) {
+        throw new Error("Source image is not a supported format. Only PNG with color type 6 (RGBA) is supported.");
+    }
+
+
+    if (png.width != args.size || png.height != args.size) {
+        throw new Error(`Source image needs to be ${args.size}x${args.size} pixels, as specified in --size flag.`);
+    }
+
+    return toNaiveImage(png, args.size);
+}
+
+type Mask = {
+    name: string;
+    image: Image;
+}
+
+function makeSafeTemplates(): Array<Mask> {
+    let templateBuffers: Array<Mask> = [];
+    fs.readdirSync(args.templateMasks).forEach(file => {
+        if (!file.endsWith('.png')) {
+            console.warn(clc.yellow(`Skipping ${clc.underline(file)}, not a .png file.`));
+            return;
+        }
+        let templateBuffer = fs.readFileSync(`${args.templateMasks}/${file}`);
+        let png = PNG.sync.read(templateBuffer);
+        if (png.width != args.size || png.height != args.size) {
+            throw new Error(`Template mask needs to be ${args.size}x${args.size} pixels, as specified in --size flag.`);
+        }
+        templateBuffers.push({
+            name: file.split(".")[0],
+            image: toNaiveImage(png, args.size)
+        });
+
+    });
+    return templateBuffers;
+}
+
+type BodyPart = {
+    name: string;
+    image: Image;
+}
+
+function split(inputImage: Image, masks: Array<Mask>): Array<BodyPart> {
+    const bodyParts: Array<BodyPart> = [];
+    for (const mask of masks) {
+        const bodyPart = emptyNaiveImage(args.size);
+        let used = false;
+
+        for (let x = 0; x < inputImage.width; x++) {
+            for (let y = 0; y < inputImage.height; y++) {
+                if (mask.image.pixels[x][y].r == 0 && mask.image.pixels[x][y].g == 0 && mask.image.pixels[x][y].b == 0 && mask.image.pixels[x][y].a == 255) {
+                    bodyPart.pixels[x][y] = inputImage.pixels[x][y];
+                    if (bodyPart.pixels[x][y].a != 0) {
+                        used = true;
+                    }
+                } else {
+                    bodyPart.pixels[x][y] = { r: 0, g: 0, b: 0, a: 0 };
+                }
+            }
+        }
+        if (used) {
+            bodyParts.push({
+                name: mask.name,
+                image: bodyPart
+            });
+        }
+    };
+    return bodyParts;
+}
+
+type Collision = {
+    part1: BodyPart;
+    part2: BodyPart;
+    x: number;
+    y: number;
+}
+function verifyCollisions(bodyParts: Array<BodyPart>): void {
+    const uniquePairs = (arr: Array<BodyPart>) =>
+        arr.flatMap((item1, index1) =>
+            arr.flatMap((item2, index2) =>
+                (index1 > index2) ? [[item1, item2]] : []
+            )
+        )
+
+    const collisions: Array<Collision> = uniquePairs(bodyParts).flatMap(pair => {
+        const [part1, part2] = pair;;
+
+        for (var y = 0; y < args.size; y++) {
+            for (var x = 0; x < args.size; x++) {
+
+                const r = part1.image.pixels[y][x].r != 0 && part2.image.pixels[y][x].r != 0;
+                const g = part1.image.pixels[y][x].g != 0 && part2.image.pixels[y][x].g != 0;
+                const b = part1.image.pixels[y][x].b != 0 && part2.image.pixels[y][x].b != 0;
+                const a = part1.image.pixels[y][x].a != 0 && part2.image.pixels[y][x].a != 0;
+
+
+                const collided = r || g || b || a;
+                if (collided) {
+                    return [{
+                        part1: part1,
+                        part2: part2,
+                        x: x,
+                        y: y
+                    }]
+                }
+            }
+        }
+        return [];
+    });
+
+    for (const collision of collisions) {
+        console.warn(clc.yellow(`Collision detected between ${clc.underline(collision.part1.name)} and ${clc.underline(collision.part2.name)} at ${collision.x}, ${collision.y}. This may require manual adjustment.`));
+    }
+};
+
+function doubleOnOtherSide(bodyPart: BodyPart, raiseBy: number): BodyPart {
+    const doubledSprite = emptyNaiveImage(args.size * 2, args.size);
+    for (let x = 0; x < args.size; x++) {
+        for (let y = 0; y < args.size; y++) {
+            doubledSprite.pixels[x][y + raiseBy] = bodyPart.image.pixels[x][y];
+            doubledSprite.pixels[x + args.size][y] = bodyPart.image.pixels[x][y];
+        }
+    }
+    return {
+        name: bodyPart.name,
+        image: doubledSprite
+    };
+};
+
+function makeSafeOutputFolder(): string {
+    if (!fs.existsSync(args.targetFolder)) {
+        fs.mkdirSync(args.targetFolder);
+    }
+    let outputExists = fs.existsSync(args.targetFolder + "/" + args.name);
+    if (!args.rewrite && outputExists) {
+        throw new Error(`Output folder ${args.targetFolder}/${args.name} already exists.`);
+    }
+    if (outputExists) {
+        fs.rmSync(args.targetFolder + "/" + args.name, { recursive: true });
+    }
+    fs.mkdirSync(args.targetFolder + "/" + args.name);
+
+    return args.targetFolder;
+}
+
+
+function main() {
+    let inputImage = makeSafeInputStream();
+    let masks = makeSafeTemplates();
+    console.log(`Found template masks: ${masks.map(m => `"${m.name}"`).join(", ")}.`);
+    let bodyParts = split(inputImage, masks);
+    console.log(`Found body parts: ${bodyParts.map(b => `"${b.name}"`).join(", ")}.`);
+    verifyCollisions(bodyParts);
+    let doubledBodyParts = bodyParts.map(bodyPart => doubleOnOtherSide(bodyPart, args.raisableParts.includes(bodyPart.name) ? args.raiseSecondSpriteBy : 0));
+    makeSafeOutputFolder();
+    doubledBodyParts.forEach(bodyPart => {
+        let outputBuffer = PNG.sync.write(toPng(bodyPart.image));
+        fs.writeFileSync(`${args.targetFolder}/${args.name}/${bodyPart.name}.png`, outputBuffer);
+    });
+    console.log(clc.green(`${clc.underline(doubledBodyParts.length)} body parts written to ${args.targetFolder}/${args.name}`));
+
+    console.log(`Copy the sprites to ${clc.underline("img/bodywriting/text/" + args.name)}`);
+
+    console.log(`Add the following lines to the ${clc.underline(args.name)} object in ${clc.underline("game/base-system/bodywriting-objects.twee")} file:`);
+    console.log(`\tkey: "${args.name}",`);
+    console.log(`\tsprites: [${doubledBodyParts.map(bodyPart => `"${bodyPart.name}"`).join(", ")}]`);
+    console.log(clc.green(`Done!`));
+}
+
+main();
\ No newline at end of file
diff --git a/devTools/bodywriting-sprite-generator/package.json b/devTools/bodywriting-sprite-generator/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..5f1a91bec1ee0dca284c929a66f683d491459133
--- /dev/null
+++ b/devTools/bodywriting-sprite-generator/package.json
@@ -0,0 +1,23 @@
+{
+  "name": "bodywriting-sprite-generator",
+  "author": "KiraaCorsac",
+  "version": "1.0.0",
+  "main": "main.ts",
+  "license": "MIT",
+  "dependencies": {
+    "@tsconfig/node16": "^1.0.2",
+    "@types/node": "^17.0.23",
+    "@types/pngjs": "^6.0.1",
+    "cli-color": "^2.0.2",
+    "pngjs": "^6.0.0",
+    "ts-command-line-args": "^2.2.1",
+    "ts-node": "^10.7.0",
+    "typescript": "^4.6.3"
+  },
+  "scripts": {
+    "test": "ts-node ./main.ts --name testWriting --sourceImage=./test/testInput.png --targetFolder=./test/output/ --rewrite"
+  },
+  "devDependencies": {
+    "@types/cli-color": "^2.0.2"
+  }
+}
diff --git a/devTools/bodywriting-sprite-generator/template/breasts.png b/devTools/bodywriting-sprite-generator/template/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ec6f7491d82daf8dce13ca255cd5c36f243e273
Binary files /dev/null and b/devTools/bodywriting-sprite-generator/template/breasts.png differ
diff --git a/devTools/bodywriting-sprite-generator/template/forehead.png b/devTools/bodywriting-sprite-generator/template/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..6506a1736d95c7306b8d2cdb92234b9b31e1e74c
Binary files /dev/null and b/devTools/bodywriting-sprite-generator/template/forehead.png differ
diff --git a/devTools/bodywriting-sprite-generator/template/left_thigh.png b/devTools/bodywriting-sprite-generator/template/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a0b0854eec12b7650932c3aa730509f2ea5bfb4
Binary files /dev/null and b/devTools/bodywriting-sprite-generator/template/left_thigh.png differ
diff --git a/devTools/bodywriting-sprite-generator/template/pubic.png b/devTools/bodywriting-sprite-generator/template/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..72ed8a78bf2dcb55ed9d40ad01fb2380cd999e64
Binary files /dev/null and b/devTools/bodywriting-sprite-generator/template/pubic.png differ
diff --git a/devTools/bodywriting-sprite-generator/template/right_thigh.png b/devTools/bodywriting-sprite-generator/template/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa4b603d7112b37fb871b8483a6a5c9179b4c999
Binary files /dev/null and b/devTools/bodywriting-sprite-generator/template/right_thigh.png differ
diff --git a/devTools/bodywriting-sprite-generator/test/testInput.png b/devTools/bodywriting-sprite-generator/test/testInput.png
new file mode 100644
index 0000000000000000000000000000000000000000..66dda3890111936c07d10adafc44fbb4e93a644b
Binary files /dev/null and b/devTools/bodywriting-sprite-generator/test/testInput.png differ
diff --git a/devTools/bodywriting-sprite-generator/tsconfig.json b/devTools/bodywriting-sprite-generator/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..ba2878e5d7b8612f0ea81d95fac8e65b5126c696
--- /dev/null
+++ b/devTools/bodywriting-sprite-generator/tsconfig.json
@@ -0,0 +1,8 @@
+{
+  "extends": "@tsconfig/node16/tsconfig.json",
+  "compilerOptions": {
+    "types": ["node"]
+  },
+  "include": ["main.ts"],
+  "exclude": ["node_modules"]
+}
diff --git a/devTools/bodywriting-sprite-generator/yarn.lock b/devTools/bodywriting-sprite-generator/yarn.lock
new file mode 100644
index 0000000000000000000000000000000000000000..d0457e921f1c174d8b5239b69d48ce9e74bb3604
--- /dev/null
+++ b/devTools/bodywriting-sprite-generator/yarn.lock
@@ -0,0 +1,419 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@cspotcode/source-map-consumer@0.8.0":
+  version "0.8.0"
+  resolved "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz"
+  integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==
+
+"@cspotcode/source-map-support@0.7.0":
+  version "0.7.0"
+  resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz"
+  integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==
+  dependencies:
+    "@cspotcode/source-map-consumer" "0.8.0"
+
+"@tsconfig/node10@^1.0.7":
+  version "1.0.8"
+  resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz"
+  integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==
+
+"@tsconfig/node12@^1.0.7":
+  version "1.0.9"
+  resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz"
+  integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==
+
+"@tsconfig/node14@^1.0.0":
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz"
+  integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==
+
+"@tsconfig/node16@^1.0.2":
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz"
+  integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==
+
+"@types/cli-color@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/@types/cli-color/-/cli-color-2.0.2.tgz"
+  integrity sha512-1ErQIcmNHtNViGKTtB/TIKqMkC2RkKI2nBneCr9hSCPo9H05g9VzjlaXPW3H0vaI8zFGjJZvSav+VKDKCtKgKA==
+
+"@types/node@*", "@types/node@^17.0.23":
+  version "17.0.23"
+  resolved "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz"
+  integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==
+
+"@types/pngjs@^6.0.1":
+  version "6.0.1"
+  resolved "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.1.tgz"
+  integrity sha512-J39njbdW1U/6YyVXvC9+1iflZghP8jgRf2ndYghdJb5xL49LYDB+1EuAxfbuJ2IBbWIL3AjHPQhgaTxT3YaYeg==
+  dependencies:
+    "@types/node" "*"
+
+acorn-walk@^8.1.1:
+  version "8.2.0"
+  resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz"
+  integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
+
+acorn@^8.4.1:
+  version "8.7.0"
+  resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz"
+  integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
+
+ansi-styles@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+  dependencies:
+    color-convert "^1.9.0"
+
+ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
+arg@^4.1.0:
+  version "4.1.3"
+  resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
+  integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
+array-back@^3.0.1, array-back@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz"
+  integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==
+
+array-back@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz"
+  integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==
+
+chalk@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
+
+chalk@^4.1.0:
+  version "4.1.2"
+  resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+cli-color@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.npmjs.org/cli-color/-/cli-color-2.0.2.tgz"
+  integrity sha512-g4JYjrTW9MGtCziFNjkqp3IMpGhnJyeB0lOtRPjQkYhXzKYr6tYnXKyEVnMzITxhpbahsEW9KsxOYIDKwcsIBw==
+  dependencies:
+    d "^1.0.1"
+    es5-ext "^0.10.59"
+    es6-iterator "^2.0.3"
+    memoizee "^0.4.15"
+    timers-ext "^0.1.7"
+
+color-convert@^1.9.0:
+  version "1.9.3"
+  resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+  dependencies:
+    color-name "1.1.3"
+
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
+color-name@1.1.3:
+  version "1.1.3"
+  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+command-line-args@^5.1.1:
+  version "5.2.1"
+  resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz"
+  integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==
+  dependencies:
+    array-back "^3.1.0"
+    find-replace "^3.0.0"
+    lodash.camelcase "^4.3.0"
+    typical "^4.0.0"
+
+command-line-usage@^6.1.0:
+  version "6.1.2"
+  resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.2.tgz"
+  integrity sha512-I+0XN613reAhpBQ6icsPOTwu9cvhc9NtLtUcY2fGYuwm9JZiWBzFDA8w0PHqQjru7Xth7fM/y9TJ13+VKdjh7Q==
+  dependencies:
+    array-back "^4.0.1"
+    chalk "^2.4.2"
+    table-layout "^1.0.1"
+    typical "^5.2.0"
+
+create-require@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz"
+  integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
+d@1, d@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz"
+  integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
+  dependencies:
+    es5-ext "^0.10.50"
+    type "^1.0.1"
+
+deep-extend@~0.6.0:
+  version "0.6.0"
+  resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"
+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+diff@^4.0.1:
+  version "4.0.2"
+  resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz"
+  integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
+
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.59, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
+  version "0.10.59"
+  resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.59.tgz"
+  integrity sha512-cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==
+  dependencies:
+    es6-iterator "^2.0.3"
+    es6-symbol "^3.1.3"
+    next-tick "^1.1.0"
+
+es6-iterator@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz"
+  integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
+  dependencies:
+    d "1"
+    es5-ext "^0.10.35"
+    es6-symbol "^3.1.1"
+
+es6-symbol@^3.1.1, es6-symbol@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz"
+  integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
+  dependencies:
+    d "^1.0.1"
+    ext "^1.1.2"
+
+es6-weak-map@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz"
+  integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
+  dependencies:
+    d "1"
+    es5-ext "^0.10.46"
+    es6-iterator "^2.0.3"
+    es6-symbol "^3.1.1"
+
+escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+event-emitter@^0.3.5:
+  version "0.3.5"
+  resolved "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
+  integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
+  dependencies:
+    d "1"
+    es5-ext "~0.10.14"
+
+ext@^1.1.2:
+  version "1.6.0"
+  resolved "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz"
+  integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==
+  dependencies:
+    type "^2.5.0"
+
+find-replace@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz"
+  integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==
+  dependencies:
+    array-back "^3.0.1"
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+is-promise@^2.2.2:
+  version "2.2.2"
+  resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"
+  integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
+
+lodash.camelcase@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"
+  integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
+
+lru-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz"
+  integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=
+  dependencies:
+    es5-ext "~0.10.2"
+
+make-error@^1.1.1:
+  version "1.3.6"
+  resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
+  integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
+memoizee@^0.4.15:
+  version "0.4.15"
+  resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz"
+  integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==
+  dependencies:
+    d "^1.0.1"
+    es5-ext "^0.10.53"
+    es6-weak-map "^2.0.3"
+    event-emitter "^0.3.5"
+    is-promise "^2.2.2"
+    lru-queue "^0.1.0"
+    next-tick "^1.1.0"
+    timers-ext "^0.1.7"
+
+next-tick@1, next-tick@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz"
+  integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
+
+pngjs@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz"
+  integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==
+
+reduce-flatten@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz"
+  integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==
+
+string-format@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz"
+  integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==
+
+supports-color@^5.3.0:
+  version "5.5.0"
+  resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
+
+supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
+
+table-layout@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz"
+  integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==
+  dependencies:
+    array-back "^4.0.1"
+    deep-extend "~0.6.0"
+    typical "^5.2.0"
+    wordwrapjs "^4.0.0"
+
+timers-ext@^0.1.7:
+  version "0.1.7"
+  resolved "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz"
+  integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==
+  dependencies:
+    es5-ext "~0.10.46"
+    next-tick "1"
+
+ts-command-line-args@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.2.1.tgz"
+  integrity sha512-mnK68QA86FYzQYTSA/rxIjT/8EpKsvQw9QkawPic8I8t0gjAOw3Oa509NIRoaY1FmH7hdrncMp7t7o+vYoceNQ==
+  dependencies:
+    chalk "^4.1.0"
+    command-line-args "^5.1.1"
+    command-line-usage "^6.1.0"
+    string-format "^2.0.0"
+
+ts-node@^10.7.0:
+  version "10.7.0"
+  resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz"
+  integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==
+  dependencies:
+    "@cspotcode/source-map-support" "0.7.0"
+    "@tsconfig/node10" "^1.0.7"
+    "@tsconfig/node12" "^1.0.7"
+    "@tsconfig/node14" "^1.0.0"
+    "@tsconfig/node16" "^1.0.2"
+    acorn "^8.4.1"
+    acorn-walk "^8.1.1"
+    arg "^4.1.0"
+    create-require "^1.1.0"
+    diff "^4.0.1"
+    make-error "^1.1.1"
+    v8-compile-cache-lib "^3.0.0"
+    yn "3.1.1"
+
+type@^1.0.1:
+  version "1.2.0"
+  resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz"
+  integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
+
+type@^2.5.0:
+  version "2.6.0"
+  resolved "https://registry.npmjs.org/type/-/type-2.6.0.tgz"
+  integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==
+
+typescript@^4.6.3:
+  version "4.6.3"
+  resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz"
+  integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==
+
+typical@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz"
+  integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==
+
+typical@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz"
+  integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==
+
+v8-compile-cache-lib@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz"
+  integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==
+
+wordwrapjs@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz"
+  integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==
+  dependencies:
+    reduce-flatten "^2.0.0"
+    typical "^5.2.0"
+
+yn@3.1.1:
+  version "3.1.1"
+  resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz"
+  integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
diff --git a/game/00-framework-tools/01-error/error.js b/game/00-framework-tools/01-error/error.js
index 57d162f165dadebd93dbec03e458553e4bd3e8d7..f8773a63d7fc721fa2ac0f02150223d9eb4afdda 100644
--- a/game/00-framework-tools/01-error/error.js
+++ b/game/00-framework-tools/01-error/error.js
@@ -137,7 +137,7 @@ Errors.report = (message, copyData) => {
 
 /** Jimmy: Uses SugarCube's source code, modified for use as a macro.
  *         Likely should be updated after SugarCube updates their error system. */
-Errors.inlineReport = (message, source) => {
+Errors.inlineReport = (message, source, isExportable = true) => {
 	const $wrapper = jQuery(document.createElement('div'));
 	const $toggle  = jQuery(document.createElement('button'));
 	const $source  = jQuery(document.createElement('pre'));
@@ -162,9 +162,22 @@ Errors.inlineReport = (message, source) => {
 		})
 		.appendTo($wrapper);
 	jQuery(document.createElement('span'))
-		.addClass('dol-error')
 		.text(mesg)
 		.appendTo($wrapper);
+
+	if (isExportable && !Browser.isMobile.any()) {
+		jQuery(document.createElement('button'))
+			.addClass('error-export macro-button')
+			.text('Export')
+			.ariaClick({
+				label : 'Export'
+			}, () => {
+				updateExportDay();
+				Save.export('degrees-of-lewdity');
+			})
+			.appendTo($wrapper);
+	}
+
 	jQuery(document.createElement('code'))
 		.text(source)
 		.appendTo($source);
@@ -176,7 +189,7 @@ Errors.inlineReport = (message, source) => {
 		})
 		.appendTo($wrapper);
 	$wrapper
-		.addClass('error-view');
+		.addClass('error-view dol-error');
 
 	console.warn(`${mesg}\n\t${source.replace(/\n/g, '\n\t')}`);
 
diff --git a/game/01-config/start.twee b/game/01-config/start.twee
index 6cfebadf482d7afc83bbd30bc3550c8adf8a5799..eb29b9f0266bb2d8f39b1e63429dbb4e9d016eca 100644
--- a/game/01-config/start.twee
+++ b/game/01-config/start.twee
@@ -27,8 +27,7 @@ Save files are stored in your browser's cache. Save to file or text in the "Expo
 If the image on the "Feat Boosts" tab is broken, please ensure that you have properly extracted the zip file.
 /*
 <<if $images is 1>>
-	 If you have, you may want to overwrite the "img" folder with one from a fresh download of the game.
-
+	If you have, you may want to overwrite the "img" folder with one from a fresh download of the game.
 <</if>>
 */
 <br><br>
diff --git a/game/01-config/sugarcubeConfig.js b/game/01-config/sugarcubeConfig.js
index bfb4a42b8f83fd63b17c77e010f6a8f2f48485c5..eff0802fa67f69e27df77af1933eb8bb3045b922 100644
--- a/game/01-config/sugarcubeConfig.js
+++ b/game/01-config/sugarcubeConfig.js
@@ -11,6 +11,13 @@ Save.onLoad.add(function(save) {
 	window.onLoadUpdateCheck = true;
 });
 
+let pageLoading = false;
+
+Save.onLoad.add(function(save) {
+	pageLoading = true
+});
+
+
 Save.onSave.add(function(save) {
 	new Wikifier(null, '<<updateFeats>>');
 	prepareSaveDetails();
@@ -22,7 +29,7 @@ window.StartConfig = {
 	"debug": false,
 	"enableImages": true,
 	"enableLinkNumberify": true,
-	"version": "0.3.8.6",
+	"version": "0.3.9.1",
 }
 window.StartConfig.version += ".h"; //stands for Herm, don't change
 window.StartConfig.version += "0"; //how many times I've released a build of this mod for this version 
@@ -78,3 +85,131 @@ importScripts([
 .catch(function (err) {
 	console.log(err);
 });*/
+
+// Runs before a passage load, returning a string redirects to the new passage name.
+Config.navigation.override = function (dest) {
+	const isLoading = pageLoading; // if page is freshly loading (after a refresh etc), we hold its value in a temporary variable
+
+	pageLoading = false
+	switch (dest) {
+		case 'Pharmacy Select Custom Lenses':
+			return isLoading ? 'Pharmacy Ask Custom Lenses' : false;
+		case 'Forest Shop Outfit':
+		case 'Forest Shop Upper':
+		case 'Forest Shop Lower':
+		case 'Forest Shop Under Outfit':
+		case 'Forest Shop Under Upper':
+		case 'Forest Shop Under Lower':
+		case 'Forest Shop Head':
+		case 'Forest Shop Face':
+		case 'Forest Shop Neck':
+		case 'Forest Shop Legs':
+		case 'Forest Shop Feet':
+			return 'Forest Shop';
+
+		case 'Over Outfit Shop':
+		case 'Outfit Shop':
+		case 'Top Shop':
+		case 'Bottom Shop':
+		case 'Under Outfit Shop':
+		case 'Under Top Shop':
+		case 'Under Bottom Shop':
+		case 'Head Shop':
+		case 'Face Shop':
+		case 'Neck Shop':
+		case 'Hands Shop':
+		case 'Legs Shop':
+		case 'Shoe Shop':
+			return 'Clothing Shop';
+
+		case 'Penis Inspection Flaunt Crossdress':
+			return 'Penis Inspection Flaunt No Penis';
+
+		case 'Pussy Inspection2':
+			return 'Pussy Inspection 2';
+
+		case 'Pussy Inspection Penis':
+			return 'Pussy Inspection Flaunt No Pussy';
+
+		case 'Forest Plant Sex No Tentacles':
+			return 'Forest Plant Sex';
+
+		case 'Forest Plant Sex No Tentacles Finish':
+			return 'Forest Plant Sex Finish';
+
+		case 'Forest Plant Passout No Tentacles':
+			return 'Forest';
+
+		case 'Moor Plant Sex No Tentacles':
+			return 'Moor Plant Sex';
+
+		case 'Moor Plant Sex No Tentacles Finish':
+			return 'Moor Plant Sex Finish';
+
+		case 'Underground Plant Molestation No Tentacles':
+			return 'Underground Plant Molestation';
+
+		case 'Underground Plant Molestation No Tentacles Finish':
+			return 'Underground Plant Molestation Finish';
+
+		case 'Evens Swimming Endure':
+			return 'Events Swimming Swim Endure';
+
+		case 'Domus House Work':
+			return 'Domus Gutters Intro';
+
+		case 'Trash Boys':
+			return 'Trash Compare';
+
+		case 'Trash Boys Spy':
+			return 'Trash Compare Spy';
+
+		case 'Trash Boys Greet':
+			return 'Trash Compare Greet';
+
+		case 'Trash Boys Refuse':
+			return 'Trash Compare Refuse';
+
+		case 'Trash Boys Compare':
+			return 'Trash Compare Others';
+
+		case 'Trash Boys Back Out':
+			return 'Trash Compare Back Out';
+
+		case 'Trash Boys Show':
+			return 'Trash Compare Show';
+
+		case 'Trash Boys Offer Secret':
+			return 'Trash Compare Penis Secret';
+
+		case 'Trash Boys Wrap It Up':
+			return 'Trash Compare Wrap It Up';
+
+		case 'Trash Boys Crossdressing Refuse':
+			return 'Trash Compare Breast Refuse';
+
+		case 'Trash Boys Crossdressing Show All':
+			return 'Trash Compare Breast Show All';
+
+		case 'Trash Boys Forced Strip':
+			return 'Trash Compare Forced Strip';
+
+		case 'Trash Boys Combat Win':
+			return 'Trash Compare Combat Win';
+
+		case 'Trash Boys Combat Loss':
+			return 'Trash Compare Combat Loss';
+
+		case 'Lake Underwater Tentacles Finish Figure':
+			return 'Lake Underwater Tentacles Finish';
+
+		case 'Sextoys Inventory Home':
+		case 'Sextoys Inventory Brothel':
+		case 'Sextoys Inventory Cottage':
+		case 'Sextoys Inventory Cabin':
+			return 'Sextoys Inventory';
+
+		default:
+			return false;
+	}
+}
diff --git a/game/02-CSS/base.css b/game/02-CSS/base.css
index 7ede1c0da5d4ecc43e662401f379b19965cc9597..31cdb438a42a16818831f3d9dc763b8d20b0f430 100644
--- a/game/02-CSS/base.css
+++ b/game/02-CSS/base.css
@@ -3,7 +3,7 @@ mouse.tooltip {
 	border-bottom: 1px dotted rgb(176, 176, 180);
 }
 
-mouse.tooltip span {
+mouse.tooltip span:last-of-type {
 	z-index:210;
 	display:none;
 	padding:14px 10px;
@@ -15,7 +15,7 @@ mouse.tooltip span {
 	box-shadow: 0px 0px 8px 4px #000;
 }
 
-mouse.tooltip:hover span {
+mouse.tooltip:hover span:last-of-type {
 	display:inline;
 	position:absolute;
 	border:2px solid gold;
@@ -30,7 +30,7 @@ mouse.tooltip-small {
 	border-bottom: 1px dotted;
 }
 
-mouse.tooltip-small span {
+mouse.tooltip-small span:last-of-type {
 	z-index:210;
 	display:none;
 	padding:10px 6px;
@@ -42,7 +42,7 @@ mouse.tooltip-small span {
 	box-shadow: 0px 0px 8px 4px #000;
 }
 
-mouse.tooltip-small:hover span {
+mouse.tooltip-small:hover span:last-of-type {
 	display:inline;
 	position:absolute;
 	border:1px solid gold;
@@ -53,11 +53,11 @@ mouse.tooltip-small:hover span {
 }
 
 @media only screen and (max-width: 800px) {
-	mouse.tooltip:hover span {
+	mouse.tooltip:hover span:last-of-type {
 		left: 100px;
 	}
 
-	mouse.tooltip-small:hover span {
+	mouse.tooltip-small:hover span:last-of-type {
 		left: 100px;
 	}
 }
@@ -77,15 +77,15 @@ mouse.tooltip-small:hover span {
 }
 
 #cbtToggleMenu {
-    position: fixed;
+	position: fixed;
 	display: flex;
 	flex-direction: column;
 	align-items: center;
-    bottom: -1px;
+	bottom: -1px;
 	margin-left: 7em;
-    border: 1px solid #aaa;
-    background-color: #222;
-    z-index: 700;
+	border: 1px solid #aaa;
+	background-color: #222;
+	z-index: 700;
 }
 
 #cbtToggleMenu p {
@@ -93,7 +93,7 @@ mouse.tooltip-small:hover span {
 }
 
 #cbtToggleMenu .cbtToggle {
-    color: gold;
+	color: gold;
 }
 
 #cbtToggleMenu:not(.visible) .cbtToggle {
@@ -101,8 +101,8 @@ mouse.tooltip-small:hover span {
 }
 
 #cbtToggleMenu > hr {
-    margin: 1px;
-    width: 90%;
+	margin: 1px;
+	width: 90%;
 }
 
 #cbtToggleMenu .cbtOption {
@@ -248,8 +248,8 @@ mouse.tooltip-small:hover span {
 
 .overlayMenu {
 	position: sticky;
-    top: 0;
-    background-color: #333333;
+	top: 0;
+	background-color: #333333;
 	z-index:1;
 }
 
@@ -294,23 +294,23 @@ mouse.tooltip-small:hover span {
 }
 
 input#searchEvents::placeholder {
-    background: #bfbf9f;
-    text-shadow: 0 0 5px #7293ac;
-    background-clip: text;
-    -webkit-background-clip: text;
-    color: #00b3ff1c;
+	background: #bfbf9f;
+	text-shadow: 0 0 5px #7293ac;
+	background-clip: text;
+	-webkit-background-clip: text;
+	color: #00b3ff1c;
 }
 
 input#addEventsTitle::placeholder {
-    color: #c9c9c966;
+	color: #c9c9c966;
 	padding-left: 14px;
 }
 input#addEventsPassage::placeholder {
-    color: #c9c9c966;
+	color: #c9c9c966;
 	padding-left: 14px;
 }
 input#addEventsWidgets::placeholder {
-    color: #c9c9c966;
+	color: #c9c9c966;
 	padding-left: 14px;
 }
 .close {
@@ -419,13 +419,13 @@ input#addEventsWidgets::placeholder {
 
 .heart {
 	height: 13px;
-    padding-left: 5px;
+	padding-left: 5px;
 	filter: saturate(5%) brightness(150%);
 }
 
 input.heart {
 	border: none!important;
-    padding: 0;
+	padding: 0;
 	background-color: unset!important;
 }
 
@@ -730,7 +730,7 @@ input.heart:hover{
 	z-index: 298 !important;
 }
 
-.solidBorderContainer	{
+.solidBorderContainer {
 	border: 1px solid #333;
 	padding: 5px;
 }
@@ -789,6 +789,14 @@ body.has-images header#title {
 
 body.has-images #story-caption #storyCaptionDiv {
 	/* 232 px: img size, 1.32 em: stats line height, 4px: stats borders */
+	position: fixed;
+	top: calc(232px + 1.32em);
+	left: 10px;
+	/* height: calc(100% - 246px - 1.32em); */
+	width: 268px;
+}
+
+body.has-images #storyCaptionContent {
 	position: fixed;
 	top: calc(232px + 1.32em);
 	left: 10px;
@@ -801,7 +809,7 @@ body.has-images #story-caption #storyCaptionDiv {
 	scrollbar-color: #444 #222;
 }
 
-body.has-images #story-caption .storyCaptionDivExtended {
+body.has-images #story-caption .storyCaptionContentExtended {
 	height: calc(100% - 246px - 2.64em)!important;
 	top: calc(232px + 2.64em)!important;
 }
@@ -889,6 +897,33 @@ body.no-images #ui-bar-body {
 	background-color:transparent
 }
 
+/* Furniture shop UI */
+#furnitureDetails {
+	display: inline-block;
+	padding: 2px;
+	float: left;
+	border: solid 1px #aaa;
+	height: 100%;
+	width: 90%;
+	min-width: 400px;
+	margin: 0px 30px 9px 30px;
+	overflow: hidden;
+}
+
+.furnitureBlock {
+
+	display: inline-block;
+	padding: 2px;
+	float: left;
+	border: solid 1px #aaa;
+	height: 30px;
+	width: 48%;
+	min-width: 400px;
+	margin: 0px 3px 3px;
+	white-space: nowrap;
+	overflow: hidden;
+}
+
 /*Wardrobe UI*/
 .wardrobeItem {
 
@@ -1673,7 +1708,7 @@ span.number, span.suit {
 		overflow-x: hidden;
 	}
 
-	#stats, #img, #daystate, #weather, #location, #spray1, #spray2, #spray3, #spray4, #spray5
+	#img, #daystate, #weather, #location, #spray1, #spray2, #spray3, #spray4, #spray5
 	{
 		position: absolute;
 	}
@@ -1685,7 +1720,7 @@ span.number, span.suit {
 		overflow-x: hidden;
 	}
 
-	#stats, #img, #daystate, #weather, #location, #spray1, #spray2, #spray3, #spray4, #spray5
+	#img, #daystate, #weather, #location, #spray1, #spray2, #spray3, #spray4, #spray5
 	{
 		position: absolute;
 	}
@@ -1754,23 +1789,23 @@ span.number, span.suit {
 /*
 Combat display styles
 */
-#listContainer	{
+#listContainer {
 	display: flex;
 	flex-direction: row;
 	flex-wrap: wrap;
 	margin-bottom: 40px;
 }
 
-.radioControl	{
+.radioControl {
 	display: block;
 	width: 100%;
 }
 
-.radioControl .extraMargin	{
+.radioControl .extraMargin {
 	margin-bottom: 20px;
 }
 
-.listsControl, .limitedListsControl	{
+.listsControl, .limitedListsControl {
 	display: flex;
 	flex-direction: column;
 	padding: 2px;
@@ -1778,40 +1813,40 @@ Combat display styles
 	margin: 5px;
 }
 
-.limitedListsControl	{
+.limitedListsControl {
 	min-width: 46%;
 }
 
 /* search bar for events debugging related */
 
-.rainbow{
-    font-size: 100px;
-    position: relative;
-    text-decoration: none;
-    font-family: "Poppins",sans-serif;
-    color: #ffffff;
-    cursor: pointer;
-}
-.rainbow:before{
-    content: "";
-    position: absolute;
-    height: 0.1em;
-    width: 100%;
-    background: linear-gradient(
-        to right,
-        #fd004c,
-        #fe9000,
-        #fff020,
-        #3edf4b,
-        #3363ff,
-        #b102b7
-    );
-    background-size: 200% 100%;
-    bottom: -0.1em;
-    transition: 1.5s;
-}
-.rainbow:hover:before{
-    background-position: 100% 0;
+.rainbow {
+	font-size: 100px;
+	position: relative;
+	text-decoration: none;
+	font-family: "Poppins",sans-serif;
+	color: #ffffff;
+	cursor: pointer;
+}
+.rainbow:before {
+	content: "";
+	position: absolute;
+	height: 0.1em;
+	width: 100%;
+	background: linear-gradient(
+		to right,
+		#fd004c,
+		#fe9000,
+		#fff020,
+		#3edf4b,
+		#3363ff,
+		#b102b7
+	);
+	background-size: 200% 100%;
+	bottom: -0.1em;
+	transition: 1.5s;
+}
+.rainbow:hover:before {
+	background-position: 100% 0;
 }
 
 .searchBorderColour {
@@ -1820,45 +1855,45 @@ Combat display styles
 
 .header-content-search-content {
 	display: flex;
-    flex-wrap: nowrap;
-    flex-direction: row;
-    align-items: center;
-    justify-content: center;
-    border: 1px solid #6b6b6b;
-    border-radius: 10px;
-    padding: 3px;
-    max-height: 50px;
+	flex-wrap: nowrap;
+	flex-direction: row;
+	align-items: center;
+	justify-content: center;
+	border: 1px solid #6b6b6b;
+	border-radius: 10px;
+	padding: 3px;
+	max-height: 50px;
 	margin-bottom: 3px;
 }
 
 .header-content-search-content input {
-    text-align: center;
-    background: 0 0;
-    border: 0;
-    outline: none;
-    width: 300px;
-    height: 40px;
-    border-radius: 10px;
+	text-align: center;
+	background: 0 0;
+	border: 0;
+	outline: none;
+	width: 300px;
+	height: 40px;
+	border-radius: 10px;
 }
 .addevent-content-search-content {
 	display: flex;
-    flex-wrap: nowrap;
-    flex-direction: row;
-    align-items: center;
-    justify-content: center;
-    border: 1px solid #6b6b6b;
-    padding: 3px;
-    max-height: 25px;
+	flex-wrap: nowrap;
+	flex-direction: row;
+	align-items: center;
+	justify-content: center;
+	border: 1px solid #6b6b6b;
+	padding: 3px;
+	max-height: 25px;
 	margin-bottom: 3px;
 }
 
 .addevent-content-search-content input {
-    text-align: center;
-    background: 0 0;
-    border: 0;
-    outline: none;
-    width: 300px;
-    height: 10px;
+	text-align: center;
+	background: 0 0;
+	border: 0;
+	outline: none;
+	width: 300px;
+	height: 10px;
 	color: #c5c5c5;
 	font-size: 14px;
 }
@@ -2459,7 +2494,7 @@ div[id|="numberslider-body"] .small-description{
 
 div[id|="numberslider-body"] span .inline-colour{
 	margin-left: unset;
-	min-width: unset; 
+	min-width: unset;
 	vertical-align: unset;
 }
 
@@ -4844,8 +4879,8 @@ img, canvas {
 }
 
 @keyframes rainbow {
-    0% { background-position: 0; }
-    100% { background-position: -6000px; }
+	0% { background-position: 0; }
+	100% { background-position: -6000px; }
 }
 
 .rainbow {
@@ -4857,8 +4892,8 @@ img, canvas {
 }
 
 @keyframes lustful {
-    0% { background-position: 0; }
-    100% { background-position: -6000px; }
+	0% { background-position: 0; }
+	100% { background-position: -6000px; }
 }
 
 .lustful {
@@ -4870,8 +4905,8 @@ img, canvas {
 }
 
 @keyframes tentacle {
-    0% { background-position: 0; }
-    100% { background-position: -6000px; }
+	0% { background-position: 0; }
+	100% { background-position: -6000px; }
 }
 
 .tentacle {
@@ -4884,7 +4919,7 @@ img, canvas {
 
 .wraith {
 	background: #f1f1db;
-	text-shadow: 
+	text-shadow:
 		0 0 7px #f1f1db,
 		0 0 22px #8800ff,
 		0 0 32px #8800ff;
@@ -4893,15 +4928,30 @@ img, canvas {
 	color: transparent;
 }
 
+.nextWraith {
+	filter: drop-shadow(0 0 3px gold);
+}
+
+.nextWraith a {
+	background: #f1f1db;
+	text-shadow:
+		0 0 12px #f1f1db,
+		0 0 27px #8800ff,
+		0 0 37px #8800ff;
+	background-clip: text;
+	-webkit-background-clip: text;
+	color: transparent;
+}
+
 .nextLink a {
 	background: #5888dd;
-	text-shadow: 
+	text-shadow:
 		0 0 7px #f1f1db,
 		0 0 22px #8800ff,
 		0 0 32px #8800ff;
 	background-clip: text;
 	-webkit-background-clip: text;
-	color: transparent;	
+	color: transparent;
 }
 
 .fading {
@@ -4945,7 +4995,7 @@ img, canvas {
 
 .ironmade-ul {
 	padding-left: 1.5em;
-    margin: 0px 0px 5px 0px;
+	margin: 0px 0px 5px 0px;
 }
 
 .tentacles-blue {
@@ -5018,7 +5068,7 @@ img, canvas {
 	filter: hue-rotate(0deg) saturate(70%) brightness(140%) contrast(100%);
 }
 
-.strapon-green { 
+.strapon-green {
 	-webkit-filter: hue-rotate(120deg) saturate(70%) brightness(140%) contrast(100%);
 	filter: hue-rotate(120deg) saturate(70%) brightness(140%) contrast(100%);
 }
@@ -5034,23 +5084,36 @@ img, canvas {
 	z-index: 999;
 }
 
-.error-view > .error-toggle + .dol-error {
+.dol-error > .error-toggle {
+	top: 8px;
+}
+
+.error-view > .error-toggle + span {
 	margin-left: 1.5em;
 }
 
-.error-view > .dol-error {
-    display: inline-block;
-    margin-left: .25em;
+.error-view > span {
+	display: inline-block;
+	margin-left: .25em;
 }
 
-.error-view > .dol-error:before {
-    content: "\e80d\00a0\00a0";
-    font-family: tme-fa-icons;
-    font-style: normal;
-    font-weight: 400;
-    font-variant: normal;
-    text-transform: none;
-    line-height: 1;
-    speak: none;
+.error-view > span:before {
+	content: "\e80d\00a0\00a0";
+	font-family: tme-fa-icons;
+	font-style: normal;
+	font-weight: 400;
+	font-variant: normal;
+	text-transform: none;
+	line-height: 1;
+}
+
+.dol-error > .error-export {
+	width: unset;
+	max-width: unset;
+	margin: 0.2rem;
 }
 /* End of error CSS */
+
+#icon.infront {
+	position: absolute;
+}
diff --git a/game/02-CSS/debug.css b/game/02-CSS/debug.css
index 8efccd6756312eee9d018c689bd0efaa2d307e1c..505aa9cdd6533ab43f738a568ffec6ba3997586d 100644
--- a/game/02-CSS/debug.css
+++ b/game/02-CSS/debug.css
@@ -43,18 +43,18 @@
 }
 
 .debug-event-container {
-    display: flex;
-    flex-direction: row;
-    flex-wrap: wrap;
-    justify-content: center;
+	display: flex;
+	flex-direction: row;
+	flex-wrap: wrap;
+	justify-content: center;
 }
 
 .debug-event-item {
-    margin: 0.15rem;
+	margin: 0.15rem;
 	padding: 0.15rem;
 	min-height: 6rem;
-    flex-basis: 16rem;
-    flex-grow: 1;
+	flex-basis: 16rem;
+	flex-grow: 1;
 }
 
 .debug-event-empty {
@@ -69,15 +69,15 @@
 }
 
 .debug-event-success {
-    border: solid 1px rgba(50, 200, 50, 0.5);
+	border: solid 1px rgba(50, 200, 50, 0.5);
 }
 
 .debug-event-warning {
-    border: solid 1px rgba(200, 200, 50, 0.5);
+	border: solid 1px rgba(200, 200, 50, 0.5);
 }
 
 .debug-event-error {
-    border: solid 1px rgba(200, 50, 50, 0.5);
+	border: solid 1px rgba(200, 50, 50, 0.5);
 }
 
 .debug-event-item hr {
diff --git a/game/02-CSS/pillsInventory.css b/game/02-CSS/pillsInventory.css
index 2af1959b65ef21138cca2914b5bcac642c037257..058ece7007b84cb816ef73d5cfec4e9ec4473ef5 100644
--- a/game/02-CSS/pillsInventory.css
+++ b/game/02-CSS/pillsInventory.css
@@ -1,273 +1,273 @@
 .hpi_gridHeader {
-    margin-right: 1em;
-    max-width: 600px;
-    box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-    background-color: #815300;
-    text-align: center;
-    border: 1px solid #bc9f45;
+	margin-right: 1em;
+	max-width: 600px;
+	box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	background-color: #815300;
+	text-align: center;
+	border: 1px solid #bc9f45;
 	min-width: 288.49px;
 }
 
 .hpi_gridContainer {
-    background: repeating-linear-gradient(45deg, #42424200, #5656562b 8px, #25252545 10px, #00000000 14px);
+	background: repeating-linear-gradient(45deg, #42424200, #5656562b 8px, #25252545 10px, #00000000 14px);
 }
 
 .hpi_gridHeader:hover {
-    cursor:pointer;
-    filter: brightness(1.05);
+	cursor:pointer;
+	filter: brightness(1.05);
 }
 
 .hpi_indic_green {
-    color: #3bc13b
+	color: #3bc13b
 }
 
 .hpi_indic_blue {
-    color: #9e9efc;
+	color: #9e9efc;
 }
 
 .hpi_indicator {
-    display: flex;
-    flex-direction: column;
-    margin-top: -10px;
-    font-size: 8px;
-    white-space: nowrap;
-    text-align: center;
+	display: flex;
+	flex-direction: column;
+	margin-top: -10px;
+	font-size: 8px;
+	white-space: nowrap;
+	text-align: center;
 }
 
 .hpi_closeContainer {
-    top: -8px;
-    right: 1.5px;
-    position: absolute;
-    color: #bd4a4a;
-    font-size: 15px;
-    cursor: pointer;
+	top: -8px;
+	right: 1.5px;
+	position: absolute;
+	color: #bd4a4a;
+	font-size: 15px;
+	cursor: pointer;
 }
 
 .hpi_gridContainer,
 .hpi_gridDescContainer {
-    margin-right: 1em;
-    max-width: 600px;
-    box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-    grid-template-columns: repeat(auto-fit, minmax(18em, 1fr));
-    display: grid;
+	margin-right: 1em;
+	max-width: 600px;
+	box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	grid-template-columns: repeat(auto-fit, minmax(18em, 1fr));
+	display: grid;
 }
 
 .hpi_gridContainer > div,
 .hpi_gridDescContainer > div{
-    background-color: rgb(28 28 28);
+	background-color: rgb(28 28 28);
 }
 
 .hpi_gridContainer > div:hover {
-    background-color: rgb(40 40 40);
-    transition-duration: 50ms;
+	background-color: rgb(40 40 40);
+	transition-duration: 50ms;
 }
 
 .hpi_gridContainer > div:hover {
-    background-color: rgb(32 32 32);;
-    transition-duration: 50ms;
+	background-color: rgb(32 32 32);;
+	transition-duration: 50ms;
 }
 
 
 .hpi_gridContainer > div > div {
-    display: inline-block;
+	display: inline-block;
 }
 
 .hpi_gridContainer:hover {
-    cursor: pointer;
+	cursor: pointer;
 }
 
 .hpi_gridContainer .hpi_name {
-    color: #68d;
-    text-decoration: none;
+	color: #68d;
+	text-decoration: none;
 }
 
 
 .hpi_gridContainer .hpi_icon {
-    width: 2rem;
-    height: 2rem;
-    text-align: center;
-    padding: 4px;
+	width: 2rem;
+	height: 2rem;
+	text-align: center;
+	padding: 4px;
 }
 
 .hpi_gridContainer .hpi_count {
-    height: 100%;
-    width: 2em;
-    text-align: center;
-    float: right;
-    border-left: 1px solid;
-    border-right: 1px solid;
-    vertical-align: bottom;
-    line-height: 250%;
-    background-color: #1c1c1c!important;
+	height: 100%;
+	width: 2em;
+	text-align: center;
+	float: right;
+	border-left: 1px solid;
+	border-right: 1px solid;
+	vertical-align: bottom;
+	line-height: 250%;
+	background-color: #1c1c1c!important;
 }
 
 .hpi_icon:hover,
 .hpi_name:hover {
-    cursor:pointer!important;
+	cursor:pointer!important;
 }
 
 .hpi_count:hover {
-    cursor:text!important;
+	cursor:text!important;
 }
 
 #hpi_desc_img {
-    transform: scale(1.3);
-    margin-left: 3%;
-    margin-top: 1%;
-    height: auto;
-    padding-right: 10px;
-    transform-origin: top;
+	transform: scale(1.3);
+	margin-left: 3%;
+	margin-top: 1%;
+	height: auto;
+	padding-right: 10px;
+	transform-origin: top;
 }
 
 #hpi_desc {
-    color: #878787;
-    font-size: 0.8em;
-    margin-top: 1%;
-    border-left: 0.1em solid #515151;
-    padding-left: 6px;
+	color: #878787;
+	font-size: 0.8em;
+	margin-top: 1%;
+	border-left: 0.1em solid #515151;
+	padding-left: 6px;
 }
 
 .hpi_warning_label {
-    font-size: 0.7em;
-    color: #b17575;
-    background-color: #804c4c33;
+	font-size: 0.7em;
+	color: #b17575;
+	background-color: #804c4c33;
 }
 
 #hpi_take_every_morning {
-    margin-right: 17%;
-    right: 0;
-    position: absolute;
+	margin-right: 17%;
+	right: 0;
+	position: absolute;
 }
 
 .hpi_notice_label {
-    color: #b19275!important;
-    background-color: #804c4c33;
+	color: #b19275!important;
+	background-color: #804c4c33;
 }
 
 #hpi_desc_action {
-    display:block
+	display:block
 }
 
 #hpi_descContainer {
-    height:auto;
-    margin-left: 10%;
-    margin-right: 10%;
-    display: flex;
-    overflow: hidden;
-    border: 1px solid #80808045;
-    position:relative
+	height:auto;
+	margin-left: 10%;
+	margin-right: 10%;
+	display: flex;
+	overflow: hidden;
+	border: 1px solid #80808045;
+	position:relative
 }
 
 .hpi_blur {
-    filter: blur(3px);
+	filter: blur(3px);
 }
 
 .hpi_take_pills {
-    margin-left: 17%;
-    white-space: nowrap;
+	margin-left: 17%;
+	white-space: nowrap;
 }
 
 .hpi_greyed_out {
-    color: #787878;
-    cursor: default;
-    text-decoration: unset;
+	color: #787878;
+	cursor: default;
+	text-decoration: unset;
 }
 
 .hpi_greyed_out:hover {
-    color: #787878!important;
-    text-decoration: unset!important;
+	color: #787878!important;
+	text-decoration: unset!important;
 }
 
 .hpi_take_me_single {
-    margin-left:38%!important
+	margin-left:38%!important
 }
 
 .unselectable {
-    -webkit-touch-callout: none;
-    -webkit-user-select: none;
-    -khtml-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
 }
 
 .hpi_auto_label {
-    color: #bcbcbc;
-    font-size: 0.65em;
-    font-weight: bolder;
-    text-transform: uppercase;
+	color: #bcbcbc;
+	font-size: 0.65em;
+	font-weight: bolder;
+	text-transform: uppercase;
 }
 
 /* For Mobile */
 @media screen and (max-width: 620px){
-    #hpi_desc {
-        font-size: 0.74em;        
-    }
-    .hpi_take_pills {
-        margin-left: 11%;
-    }
-    #hpi_take_every_morning {
-        margin-right: 11%;
-    }
+	#hpi_desc {
+		font-size: 0.74em;
+	}
+	.hpi_take_pills {
+		margin-left: 11%;
+	}
+	#hpi_take_every_morning {
+		margin-right: 11%;
+	}
 }
 
 @media screen and (max-width: 557px) and (min-width: 528px){
-    #hpi_desc {
-        font-size: 0.74em;        
-    }
+	#hpi_desc {
+		font-size: 0.74em;
+	}
 }
 
 @media screen and (max-width: 527px) and (min-width: 490px) {
-    #hpi_desc {
-        font-size: 0.66em;
-    }
-    #hpi_desc_img {
-        margin-top: 5.2%;
-        padding-left: 3px;
-    }
+	#hpi_desc {
+		font-size: 0.66em;
+	}
+	#hpi_desc_img {
+		margin-top: 5.2%;
+		padding-left: 3px;
+	}
 }
 
 @media screen and (max-width: 489px) {
-    #hpi_desc {
-        font-size: 0.66em;
-    }
-    #hpi_desc_img {
-        margin-top: 5.2%;
-        padding-left: 3px;
-    }
+	#hpi_desc {
+		font-size: 0.66em;
+	}
+	#hpi_desc_img {
+		margin-top: 5.2%;
+		padding-left: 3px;
+	}
 }
 
 @media screen and (max-width: 455px) {
-    .hpi_take_pills {
-        margin-left: 4%;
-    }
-    #hpi_take_every_morning{
-        margin-right: 4%
-    }
+	.hpi_take_pills {
+		margin-left: 4%;
+	}
+	#hpi_take_every_morning{
+		margin-right: 4%
+	}
 }
 
 @media screen and (max-width: 423px) {
-    #hpi_desc {
-        font-size: 0.66em;
-    }
-    #hpi_desc_img {
-        margin-top: 5.2%;
-        padding-left: 3px;
-    }
+	#hpi_desc {
+		font-size: 0.66em;
+	}
+	#hpi_desc_img {
+		margin-top: 5.2%;
+		padding-left: 3px;
+	}
 }
 
 @media screen and (max-width: 410px) {
-    #hpi_desc_img {
-        margin-top: 9.2%;
-    }
-    .hpi_take_pills {
-        margin-left: 0%;
-    }
-    #hpi_take_every_morning{
-        margin-left: 0%
-    }
+	#hpi_desc_img {
+		margin-top: 9.2%;
+	}
+	.hpi_take_pills {
+		margin-left: 0%;
+	}
+	#hpi_take_every_morning{
+		margin-left: 0%
+	}
 }
\ No newline at end of file
diff --git a/game/02-CSS/sexShopMenu.css b/game/02-CSS/sexShopMenu.css
index 44e693342f880ac5b3dc885346fc9d65f15757af..346b12c632393ae2b24a33b408c5ee78bee7f9aa 100644
--- a/game/02-CSS/sexShopMenu.css
+++ b/game/02-CSS/sexShopMenu.css
@@ -5,22 +5,22 @@
 
 .ssm_header{
 	font-family: "Roschild";
-    position: relative;
-    border: 1px solid #554f5540;
-    background-color: #202020;;
-    width: 50%;
-    margin: 0 auto;
-    transform: scale(0.9);
+	position: relative;
+	border: 1px solid #554f5540;
+	background-color: #202020;;
+	width: 50%;
+	margin: 0 auto;
+	transform: scale(0.9);
 	min-width: 180px;
 }
 
 .ssm_gridContainer {
 	box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-    grid-template-columns: repeat(auto-fit, minmax(15em, 1fr));
-    display: grid;
-    margin: 0 20% 0 20%;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	grid-template-columns: repeat(auto-fit, minmax(15em, 1fr));
+	display: grid;
+	margin: 0 20% 0 20%;
 }
 
 .ssm_owner_name {
@@ -31,18 +31,18 @@
 
 .ssm_shop_title {
 	font-size: 20px;
-    display: table;
-    margin: 0 auto;
-    letter-spacing: 0.4em;
+	display: table;
+	margin: 0 auto;
+	letter-spacing: 0.4em;
 	white-space: nowrap;
 }
 
 .ssm_item {
 	background-color: #161616;
-    border: 1px solid #444444d1;
-    height: 55px;
-    margin: 0.7%;
-    display: flex;
+	border: 1px solid #444444d1;
+	height: 55px;
+	margin: 0.7%;
+	display: flex;
 }
 
 .ssm_item:hover:not(.ssm_selected_a) {
@@ -79,59 +79,59 @@
 
 .ssm_details {
 	width: 100%;
-    position: relative;
-    height: 100%;
-    border-left: 1px solid #65545f82;
+	position: relative;
+	height: 100%;
+	border-left: 1px solid #65545f82;
 	cursor:pointer;
 }
 
 .ssm_item_name {
 	width: 100%;
-    color: #5681ab;
-    white-space: nowrap;
-    text-align: center;
-    position: relative;
-    font-family: revert;
-    top: 25%;
-    right: 5%;
-    letter-spacing: 0.06em;
-    cursor: pointer;
+	color: #5681ab;
+	white-space: nowrap;
+	text-align: center;
+	position: relative;
+	font-family: revert;
+	top: 25%;
+	right: 5%;
+	letter-spacing: 0.06em;
+	cursor: pointer;
 	text-shadow: 1px 1px 2px #304355;
 	left: 0;
 }
 
 .ssm_already_owned {
 	top: 0;
-    right: 0;
-    position: absolute;
-    text-transform: uppercase;
-    font-size: 8px;
-    width: 40px;
-    font-weight: bold;
-    background-color: #64626382;
-    font-family: system-ui;
+	right: 0;
+	position: absolute;
+	text-transform: uppercase;
+	font-size: 8px;
+	width: 40px;
+	font-weight: bold;
+	background-color: #64626382;
+	font-family: system-ui;
 	cursor:pointer;
 }
 
 .ssm_owned_text {
 	display: table;
-    margin: auto;
-    color: #cccccc;
+	margin: auto;
+	color: #cccccc;
 }
 
 #ssm_desc_img {
 	margin: 5.6px 5px 0px 6.6px;
-    display: inline-block;
-    vertical-align: top;
+	display: inline-block;
+	vertical-align: top;
 }
 
 .ssm_close {
 	top: -8px;
-    right: 1.5px;
-    position: absolute;
-    color: #bd4a4a;
-    font-size: 15px;
-    cursor: pointer;
+	right: 1.5px;
+	position: absolute;
+	color: #bd4a4a;
+	font-size: 15px;
+	cursor: pointer;
 }
 
 .ssm_close:hover {
@@ -140,14 +140,14 @@
 
 .ssm_closeContainer {
 	position: relative;
-    display: block;
-    padding-bottom: 3px;
-    margin: 0 -7px 0 0;
+	display: block;
+	padding-bottom: 3px;
+	margin: 0 -7px 0 0;
 }
 
 #ssm_desc_img > img {
 	width: 34px;
-    height: 34px;
+	height: 34px;
 }
 
 .ssm_desc_border {
@@ -157,17 +157,17 @@
 
 #ssm_desc {
 	display: inline-block;
-    color: #878787;
-    font-size: 0.8em;
-    margin-top: 1%;
-    padding-right: 6px;
+	color: #878787;
+	font-size: 0.8em;
+	margin-top: 1%;
+	padding-right: 6px;
 	margin-right: 6px;
 }
 
 .ssm_desc_action {
 	display: table;
-    margin: 0 45%;
-    white-space: nowrap;
+	margin: 0 45%;
+	white-space: nowrap;
 }
 
 .ssm_buy_button {
@@ -208,22 +208,22 @@
 
 .ssm_gridDescContainer {
 	background-color: #161616;
-    border: 1px solid #80808045;
-    width: auto;
-    display: table;
-    margin: 0 auto;
+	border: 1px solid #80808045;
+	width: auto;
+	display: table;
+	margin: 0 auto;
 	max-width: 600px;
 	min-width: 350px;
 }
 
 .ssm_descContainer {
 	vertical-align: top;
-    display: inline-flex;
+	display: inline-flex;
 }
 
 .ssm_icon {
 	height: 100%;
-    width: 50px;
+	width: 50px;
 }
 
 .ssm_icon > img {
@@ -240,7 +240,7 @@
 
 .ssm_flicker_very_slow{
 	animation: flicker 5s linear infinite;
-}  
+}
 
 .ssm_flicker_slow{
 	animation: flicker 3s linear infinite;
diff --git a/game/02-CSS/sexToysInventory.css b/game/02-CSS/sexToysInventory.css
index 4a34694369158303aa06561d14db85d03a320783..5043826d8c0a0ebc96c1ecdf133c6f203e95a9d1 100644
--- a/game/02-CSS/sexToysInventory.css
+++ b/game/02-CSS/sexToysInventory.css
@@ -31,17 +31,17 @@
 
 .sti_gridDescContainer {
 	background-color: #161616;
-    border: 1px solid #80808045;
-    width: auto;
-    display: table;
-    margin: 0 auto;
+	border: 1px solid #80808045;
+	width: auto;
+	display: table;
+	margin: 0 auto;
 	max-width: 600px;
 	min-width: 350px;
 }
 
 .sti_descContainer {
 	vertical-align: top;
-    display: inline-flex;
+	display: inline-flex;
 }
 
 .sti_cell {
@@ -52,59 +52,59 @@
 
 .sti_cell > img {
 	width: 50px;
-    display: block;
-    margin-inline: auto;
-    margin-block: 4px;
+	display: block;
+	margin-inline: auto;
+	margin-block: 4px;
 }
 
 .sti_full {
 	background-color: #616164;
 	cursor:pointer;
-} 
+}
 
 #sti_item-detail-container {
 	background-color: #19191a;
-    width: max-content;
-    max-width: 600px;
-    margin: 0 auto;
-    height: max-content;
-    padding: 10px;
-    border-radius: 25px;
+	width: max-content;
+	max-width: 600px;
+	margin: 0 auto;
+	height: max-content;
+	padding: 10px;
+	border-radius: 25px;
 }
 
 .sti_item-description {
 	font-family: system-ui;
-    color: #7b7b7b;
-    font-weight: bold;
-    font-size: 13px;
+	color: #7b7b7b;
+	font-weight: bold;
+	font-size: 13px;
 	text-align: center;
 }
 
 .sti_grid_carried_count {
 	position: absolute;
-    color: #d4d4ca;
-    font-weight: bold;
-    padding-top: 5px;
-    font-family: system-ui;
-    font-size: 0.8em;
-    white-space: nowrap;
+	color: #d4d4ca;
+	font-weight: bold;
+	padding-top: 5px;
+	font-family: system-ui;
+	font-size: 0.8em;
+	white-space: nowrap;
 	margin-inline: 130%;
 }
 
 .sti_selected {
 	background-color: #584951;
-    border: 1px solid #be406a!important;
+	border: 1px solid #be406a!important;
 	box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
 }
 
 .sti_full:hover:not(.sti_selected) {
 	background-color: #4b4b4e;
 	border:1px solid rgb(167, 138, 149);
 	box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
 }
 
 .sti_empty {
@@ -114,37 +114,37 @@
 
 .sti_owned_text {
 	display: table;
-    margin: auto;
-    color: #cccccc;
+	margin: auto;
+	color: #cccccc;
 }
 
 .sti_already_owned {
 	top: 0;
-    right: 0;
-    position: absolute;
-    text-transform: uppercase;
-    font-size: 8px;
-    font-weight: bold;
-    background-color: #784875;
-    font-family: system-ui;
+	right: 0;
+	position: absolute;
+	text-transform: uppercase;
+	font-size: 8px;
+	font-weight: bold;
+	background-color: #784875;
+	font-family: system-ui;
 	cursor:pointer;
 }
 
 #sti_item_action {
 	margin-left: 32%;
-    margin-top: 10px;
+	margin-top: 10px;
 	margin-top: 20px;
-    text-align: -webkit-center;
+	text-align: -webkit-center;
 }
 
 #sti_icon {
 	width: 48px;
-    height: 48px
+	height: 48px
 }
 
 #sti_icon > img {
 	width: 48px;
-    height: 48px;
+	height: 48px;
 }
 
 .sti_throw_button {
@@ -157,13 +157,13 @@
 
 #sti_desc_img {
 	margin: 5.6px 5px 0px 6.6px;
-    display: inline-block;
-    vertical-align: top;
+	display: inline-block;
+	vertical-align: top;
 }
 
 #sti_desc_img > img {
 	width: 48px;
-    height: 48px;
+	height: 48px;
 }
 
 .sti_desc_border {
@@ -173,28 +173,28 @@
 
 #sti_desc {
 	display: inline-block;
-    color: #878787;
-    font-size: 0.8em;
-    margin-top: 1%;
-    padding-right: 6px;
+	color: #878787;
+	font-size: 0.8em;
+	margin-top: 1%;
+	padding-right: 6px;
 	margin-right: 6px;
 	min-width: 350px;
 }
 
 .sti_closeContainer {
 	position: relative;
-    display: block;
-    padding-bottom: 3px;
-    margin: 0 -7px 0 0;
+	display: block;
+	padding-bottom: 3px;
+	margin: 0 -7px 0 0;
 }
 
 .sti_close {
 	top: -8px;
-    right: 1.5px;
-    position: absolute;
-    color: #bd4a4a;
-    font-size: 15px;
-    cursor: pointer;
+	right: 1.5px;
+	position: absolute;
+	color: #bd4a4a;
+	font-size: 15px;
+	cursor: pointer;
 }
 
 .sti_close:hover {
@@ -203,11 +203,11 @@
 
 #sti_desc_action {
 	text-align: center;
-    margin-left: -10%;
+	margin-left: -10%;
 }
 
 .sti_carry_limit_reached {
 	color: grey!important;
-    text-decoration: unset!important;
-    cursor: not-allowed!important;
+	text-decoration: unset!important;
+	cursor: not-allowed!important;
 }
\ No newline at end of file
diff --git a/game/03-JavaScript/00-libs/tinycolor.js b/game/03-JavaScript/00-libs/tinycolor.js
index 0901d477266089f58ea4703ea0050bc52d789b26..71582c737ec5553d09ed41cd5bf200c36cc90f54 100644
--- a/game/03-JavaScript/00-libs/tinycolor.js
+++ b/game/03-JavaScript/00-libs/tinycolor.js
@@ -799,7 +799,7 @@
 	};
 
 
-	// Big List of Colors
+	// Big List of Colours
 	// ------------------
 	// <http://www.w3.org/TR/css3-color/#svg-color>
 	var names = tinycolor.names = {
@@ -1056,7 +1056,7 @@
 		// <http://www.w3.org/TR/css3-values/#number-value>
 		var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
 
-		// Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
+		// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.
 		var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
 
 		// Actual matching.
@@ -1088,8 +1088,8 @@
 	}
 
 	// `stringInputToObject`
-	// Permissive string parsing.  Take in a number of formats, and output an object
-	// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
+	// Permissive string parsing. Take in a number of formats, and output an object
+	// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
 	function stringInputToObject(color) {
 
 		color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
@@ -1105,7 +1105,7 @@
 		// Try to match string input using regular expressions.
 		// Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
 		// Just return an object and let the conversion functions handle that.
-		// This way the result will be the same whether the tinycolor is initialized with string or object.
+		// This way the result will be the same whether the tinycolor is initialised with string or object.
 		var match;
 		if ((match = matchers.rgb.exec(color))) {
 			return { r: match[1], g: match[2], b: match[3] };
diff --git a/game/03-JavaScript/02-Helpers/Utils.js b/game/03-JavaScript/02-Helpers/Utils.js
index 03c1211d58f2cf7d8d8aa33bac11936d744ef384..d5cf2cfe223943c7674d79ff04993d6b06473991 100644
--- a/game/03-JavaScript/02-Helpers/Utils.js
+++ b/game/03-JavaScript/02-Helpers/Utils.js
@@ -1,23 +1,23 @@
 const Utils = (() => {
-    function getStack() {
-        let output = `:: ${V.passage}`;
-        if (DOL.Stack.length >= 1) {
-            output += ` [${DOL.Stack.join(", ")}]`;
-        }
-        return output;
-    }
+	function getStack() {
+		let output = `:: ${V.passage}`;
+		if (DOL.Stack.length >= 1) {
+			output += ` [${DOL.Stack.join(", ")}]`;
+		}
+		return output;
+	}
 
-    function defer(func, ...params) {
-        if (Engine.isIdle()) {
-            $(() => func(...params));
-        } else {
-            $(document).one(':passageend', () => func(...params));
-        }
-    }
+	function defer(func, ...params) {
+		if (Engine.isIdle()) {
+			$(() => func(...params));
+		} else {
+			$(document).one(':passageend', () => func(...params));
+		}
+	}
 
-    return Object.preventExtensions({
-        GetStack: getStack,
-        Defer: defer
-    })
+	return Object.preventExtensions({
+		GetStack: getStack,
+		Defer: defer
+	})
 })();
 window.Utils = Utils;
\ No newline at end of file
diff --git a/game/03-JavaScript/02-Helpers/macros.js b/game/03-JavaScript/02-Helpers/macros.js
index 3f032cf29626438240e894450bfe70d97ffda8a2..505925ae544bf04ebced792ac1ed5c109ce4d8d9 100644
--- a/game/03-JavaScript/02-Helpers/macros.js
+++ b/game/03-JavaScript/02-Helpers/macros.js
@@ -1,46 +1,84 @@
 /** Jimmy: To be used in Twee files to print an error, where the error container mimics SugarCube's own error handler.
  * 		   Leaving the second argument out will grab a snippet of the code before it, up to 128 characters.
  * 		   Will not trigger the widget handler's error capturing system as it uses a different class (.dol-error instead of .error) */
-Macro.add('error', {
-	handler() {
-		if (this.args.length < 1) return this.error(`Missing <<error>> arguments. ${this.args}`);
-		const message = this.args[0];
-		const source = this.args[1] || this.parser.source.slice(0, this.parser.matchStart).slice(-128);
-		Errors.inlineReport(message, source).appendTo(this.output);
+const ErrorSystem = ((Scripting, Errors) => {
+	/**
+	 * Retrieve a snippet of the code surrounding the widget's parent, or ancestors. Good for figuring out where an error occurred.
+	 * @param {number} depth A depth of zero indicates to return the callee of `<<error>>`. One would retrieve the parent of that callee. And so on.
+	 * @returns The source text of the target, or the source of the last ancestor in the stack.
+	 */
+	function getTargetSource(depth = 0) {
+		/* Always assumed because of the parent of the `<<error>>` macro is where it was called. */
+		let callee = this.parent !== null ? this.parent : this;
+		for (let index = 0; index < depth; index++) {
+			callee = callee.parent !== null ? callee.parent : callee;
+		}
+		const parser = callee.parser;
+		const source = parser.source.slice(0, parser.matchStart).slice(-128);
+		return source;
 	}
-});
 
-/** Jimmy: checkTimeSystem macro to print a message if time desynchronises. 
- *  	   Potential to place time correction code here instead of in backComp. */
-Macro.add('checkTimeSystem', {
-	handler() {
-		if (V.time != undefined && V.hour != undefined && V.minute != undefined) {
-			if (V.time !== V.hour * 60 + V.minute) {
-				const message = `$time: ${V.time} desynchronised from $hour: ${V.hour} and $minute: ${V.minute}. Total: ${(V.hour * 60 + V.minute)}.`;
-				const source = `Caught in Passage ${this.args[0]}. ${V.passage}, <<checkTimeSystem>>.`;
-				Errors.inlineReport(message, source).appendTo(this.output);
+	Macro.add('error', {
+		skipArgs : true,
+		handler() {
+			const exp = this.args.full;
+			const result = Scripting.evalJavaScript(exp[0] === '{' ? `(${exp})` : exp);
+			let { message, source, depth, exportable } = Object.assign({
+				message: 'Message not set',
+				source: null,
+				depth: 0,
+				exportable: true
+			}, result);
+			if (source === null) source = getTargetSource.call(this, depth);
+			Errors.inlineReport(message, source, exportable).appendTo(this.output);
+		}
+	});
+
+	Macro.add('errorp', {
+		handler() {
+			if (this.args.length < 1) return this.error(`Missing <<errorP>> arguments. ${this.args}`);
+			const message = this.args[0];
+			const source = this.args[1] || this.parser.source.slice(0, this.parser.matchStart).slice(-128);
+			Errors.inlineReport(message, source).appendTo(this.output);
+		}
+	});
+
+	/** Jimmy: checkTimeSystem macro to print a message if time desynchronises.
+	 *  	   Potential to place time correction code here instead of in backComp. */
+	Macro.add('checkTimeSystem', {
+		handler() {
+			if (V.time != undefined && V.hour != undefined && V.minute != undefined) {
+				if (V.time !== V.hour * 60 + V.minute) {
+					const message = `$time: ${V.time} desynchronised from $hour: ${V.hour} and $minute: ${V.minute}. Total: ${(V.hour * 60 + V.minute)}.`;
+					const source = `Caught in Passage ${this.args[0]}. ${V.passage}, <<checkTimeSystem>>.`;
+					Errors.inlineReport(message, source).appendTo(this.output);
+				}
+			} else {
+				console.debug(`One of the time variables is not accessible yet: ${V.passage}: ${DOL.Stack}.`);
 			}
-		} else {
-			console.debug(`One of the time variables is not accessible yet: ${V.passage}: ${DOL.Stack}.`);
 		}
-	}
-});
+	});
 
-/** Jimmy: defer Macro, to be used to defer execution of the provided contents until after the passage has been processed.
- * 		   For example, let's say you create <div id="myDiv"></div> in a widget. And you want to use $('#myDiv') in that
- * 		   same widget, to manipulate your HTML elements... You cannot, as these HTML elements do not actually exist yet.
- * 		   
- * 		   This is where <<defer>> comes in, it will hold off on executing $('#myDiv'), if you specify, so that when it does
- * 		   execute, you can rest assured that your HTML elements are loaded into the document, rather than being in their
- * 		   fragment. */
-Macro.add('defer', {
-	tags: null,
-	handler() {
-		const handler = this.createShadowWrapper(function() {
-			new Wikifier('#passages .passage', this.payload[0].contents);
-		});
-		$(document).one(':passageend', function() {
-			handler.apply(this, arguments);
-		});
-	}
-});
+	/** Jimmy: defer Macro, to be used to defer execution of the provided contents until after the passage has been processed.
+	 * 		   For example, let's say you create <div id="myDiv"></div> in a widget. And you want to use $('#myDiv') in that
+	 * 		   same widget, to manipulate your HTML elements... You cannot, as these HTML elements do not actually exist yet.
+	 *
+	 * 		   This is where <<defer>> comes in, it will hold off on executing $('#myDiv'), if you specify, so that when it does
+	 * 		   execute, you can rest assured that your HTML elements are loaded into the document, rather than being in their
+	 * 		   fragment. */
+	Macro.add('defer', {
+		tags: null,
+		handler() {
+			const handler = this.createShadowWrapper(function() {
+				new Wikifier('#passages .passage', this.payload[0].contents);
+			});
+			$(document).one(':passageend', function() {
+				handler.apply(this, arguments);
+			});
+		}
+	});
+
+	return Object.seal({
+		getTargetSource
+	});
+})(Scripting, Errors);
\ No newline at end of file
diff --git a/game/03-JavaScript/AprilFools.js b/game/03-JavaScript/AprilFools.js
deleted file mode 100644
index a2a76fe6968f31eea1eb8c19cae8fdec68ea404f..0000000000000000000000000000000000000000
--- a/game/03-JavaScript/AprilFools.js
+++ /dev/null
@@ -1,24 +0,0 @@
-(() => {
-	const date = new Date();
-	const day = date.getDate();
-	const month = date.getMonth();
-
-	setup.isFools = () => (day === 1 && month === 3 && V && V.footdisable === 't');
-
-	/* Run once, when SugarCube is guaranteed to be initialised. */
-	$(document).one(':passagestart', function() {
-		if (!setup.isFools()) return;
-		const doggy = setup.tanImg.doggy;
-		doggy.t.doggyactivebaselegs = "img/sex/doggyRed/active/body/fools/doggyactivebaselegs.png";
-		doggy.f.doggyactivebaselegs = "img/sex/doggy/active/body/fools/doggyactivebaselegs.png";
-		const missionary = setup.tanImg.missionary;
-		missionary.t.activebaselegl = "img/sex/missionaryRed/active/body/fools/activebaselegl.png";
-		missionary.t.activebaselegldown = "img/sex/missionaryRed/active/body/fools/activebaselegldown.png";
-		missionary.t.activebaselegr = "img/sex/missionaryRed/active/body/fools/activebaselegr.png";
-		missionary.t.activebaselegrdown = "img/sex/missionaryRed/active/body/fools/activebaselegrdown.png";
-		missionary.f.activebaselegl = "img/sex/missionary/active/body/fools/activebaselegl.png";
-		missionary.f.activebaselegldown = "img/sex/missionary/active/body/fools/activebaselegldown.png";
-		missionary.f.activebaselegr = "img/sex/missionary/active/body/fools/activebaselegr.png";
-		missionary.f.activebaselegrdown = "img/sex/missionary/active/body/fools/activebaselegrdown.png";
-	});
-})();
diff --git a/game/03-JavaScript/EventDebug.js b/game/03-JavaScript/EventDebug.js
index 5f8c0565dca7c34c826746a0991c1034c3d459ba..be994b3ba1ab58500a152d36f3cea36bc75f0996 100644
--- a/game/03-JavaScript/EventDebug.js
+++ b/game/03-JavaScript/EventDebug.js
@@ -3,13 +3,13 @@
  *      buffer = [] : EventNPC, refer to below
  *      schema = 1 : Integer, defines the current version on the save, useful for update tracking.
  *  }
- * 
+ *
  *  EventNPC = {
- *      slot: Where the NPC is positioned in NPCList.   
+ *      slot: Where the NPC is positioned in NPCList.
  *              EG: 0       $NPCList[0]
- *      time: The time the NPC was generated.           
+ *      time: The time the NPC was generated.
  *              EG: 805     13:48 / 1:48pm
- *      area: Where it was generated.                   
+ *      area: Where it was generated.
  *              EG: ['::Alleyways', 'eventsstreet', 'eventday', 'street8']
  *                      Passage        Widget 1      Widget 2    Widget 3
  *  }
@@ -20,96 +20,96 @@
  * @module EventData
  */
 class EventData {
-    constructor() {
-        this.disable = false;
-    }
+	constructor() {
+		this.disable = false;
+	}
 
-    Push(passage, index, time) {
-        if (this.disable) return;
-        V.event = ensure(V.event, {
-            buffer: [],
-            schema: 1
-        });
-        V.event.buffer.push({
-            slot: index, // TODO: Remove in favour of direct insertion. (Nvm)
-            time: time,
-            area: [passage, ...DOL.Stack.slice(0, -1)]
-        });
-    }
+	Push(passage, index, time) {
+		if (this.disable) return;
+		V.event = ensure(V.event, {
+			buffer: [],
+			schema: 1
+		});
+		V.event.buffer.push({
+			slot: index, // TODO: Remove in favour of direct insertion. (Nvm)
+			time: time,
+			area: [passage, ...DOL.Stack.slice(0, -1)]
+		});
+	}
 
-    Pop(index) {
-        if (this.disable) return;
-        if (V.event) {
-            V.event.buffer = V.event.buffer.filter(e => e.slot !== index); // TODO: Splice backwards instead.
-            if (V.event.buffer.length === 0) {
-                this.Clear();
-            }
-        }
-    }
+	Pop(index) {
+		if (this.disable) return;
+		if (V.event) {
+			V.event.buffer = V.event.buffer.filter(e => e.slot !== index); // TODO: Splice backwards instead.
+			if (V.event.buffer.length === 0) {
+				this.Clear();
+			}
+		}
+	}
 
-    Get(index) {
-        if (V.event) {
-            return V.event.buffer.find(e => e.slot === index);
-        }
-        return undefined;
-    }
+	Get(index) {
+		if (V.event) {
+			return V.event.buffer.find(e => e.slot === index);
+		}
+		return undefined;
+	}
 
-    GetEvery(index) {
-        if (V.event) {
-            return V.event.buffer.filter(e => e.slot === index);
-        }
-        return [];
-    }
+	GetEvery(index) {
+		if (V.event) {
+			return V.event.buffer.filter(e => e.slot === index);
+		}
+		return [];
+	}
 
-    Clear()  {
-        if (this.disable) return;
-        delete V.event;
-    }
+	Clear()  {
+		if (this.disable) return;
+		delete V.event;
+	}
 
-    Update() {
-        if (V.event == undefined) {
-            return;
-        }
-        // Check if $event contains schema
-        switch (V.event.schema) {
-            case 1:
-                // No need for updates.
-                return;
-            default:
-                // Update to newer schema (1 atm).
-                // .event ['Farm Work', 'Farm Work', 'Farm Work', 'Farm Work'] 
-                // .eventtime [497, 497, 497, 497]
-                // .eventslot [0, 1, 2, 3]
-                const event = [...V.event];
-                V.event = {
-                    buffer: [],
-                    schema: 1
-                };
-                for (let i = 0; i < event.length; i++) {
-                    this.Push(event[i], V.eventslot[i], V.eventtime[i])
-                }
-                delete V.eventtime;
-                delete V.eventslot;
-                return;
-        }
-    }
+	Update() {
+		if (V.event == undefined) {
+			return;
+		}
+		// Check if $event contains schema
+		switch (V.event.schema) {
+			case 1:
+				// No need for updates.
+				return;
+			default:
+				// Update to newer schema (1 atm).
+				// .event ['Farm Work', 'Farm Work', 'Farm Work', 'Farm Work']
+				// .eventtime [497, 497, 497, 497]
+				// .eventslot [0, 1, 2, 3]
+				const event = [...V.event];
+				V.event = {
+					buffer: [],
+					schema: 1
+				};
+				for (let i = 0; i < event.length; i++) {
+					this.Push(event[i], V.eventslot[i], V.eventtime[i])
+				}
+				delete V.eventtime;
+				delete V.eventslot;
+				return;
+		}
+	}
 
-    IsSlotTaken(index) {
-        if (V.event == undefined) return false;
-        return V.event.buffer.some(e => e.slot === index);
-    }
+	IsSlotTaken(index) {
+		if (V.event == undefined) return false;
+		return V.event.buffer.some(e => e.slot === index);
+	}
 
-    get Disable() {
-        return this.disable;
-    }
+	get Disable() {
+		return this.disable;
+	}
 
-    set Disable(value) {
-        if (typeof value === 'boolean') {
-            this.disable = value;
-        } else {
-            console.debug('EventData.disable set with unexpected data-type, requires boolean.');
-        }
-    }
+	set Disable(value) {
+		if (typeof value === 'boolean') {
+			this.disable = value;
+		} else {
+			console.debug('EventData.disable set with unexpected data-type, requires boolean.');
+		}
+	}
 };
 
 // Jimmy: Potentially flawed design style, static class basically.
diff --git a/game/03-JavaScript/IronMan.js b/game/03-JavaScript/IronMan.js
index b22fbf3b34e2572163db2536a9b8bce93d2029c1..e859196c954cf24b5b41640fb8792507b6ac87f1 100644
--- a/game/03-JavaScript/IronMan.js
+++ b/game/03-JavaScript/IronMan.js
@@ -1,4 +1,6 @@
 const IronMan = (() => {
+	'use strict';
+
 	/**
 	 * Set to true to allow debug mode changes during gameplay.
 	 * By default this should always be false, if it is not false, please change it.
@@ -46,8 +48,8 @@ const IronMan = (() => {
 	/*  -------------------------------------
 		Integral IronMan mode core functions.
 		------------------------------------- */
-	
-	function freezeImportantVars() {
+
+	function ironmanLock() {
 		/* Immediately exit if on the starting passage. */
 		if (['Start', 'Clothes Testing', 'Renderer Test Page', 'Tips'].includes(V.passage)) return;
 		/* Immediately exit if the game is in debug mode or test mode. */
@@ -80,7 +82,7 @@ const IronMan = (() => {
 		}
 	}
 
-	function getSaveSignature() {
+	function getSignature() {
 		let res;
 		for (const va of [V.debug, V.autosavedisabled, V.virginity, V.player, V.enemyhealth, V.enemyarousal, V.enemytrust, V.enemystrength, V.passage, V.money]) {
 			res += JSON.stringify(va);
@@ -145,13 +147,51 @@ const IronMan = (() => {
 			}
 		});
 	}
+	
+	function getDatestamp() {
+		const now = new Date();
+		let MM = now.getMonth() + 1;
+		let DD = now.getDate();
+		let hh = now.getHours();
+		let mm = now.getMinutes();
+		let ss = now.getSeconds();
+
+		if (MM < 10) { MM = `0${MM}`; }
+		if (DD < 10) { DD = `0${DD}`; }
+		if (hh < 10) { hh = `0${hh}`; }
+		if (mm < 10) { mm = `0${mm}`; }
+		if (ss < 10) { ss = `0${ss}`; }
+
+		return `${now.getFullYear()}${MM}${DD}-${hh}${mm}${ss}`;
+	}
+
+	function exportSlot(slot = 8) {
+		updateExportDay();
+		const data = Save.slots.get(slot);
+		const saveId = data.metadata.saveId;
+		const saveName = data.metadata.saveName;
+		const exportName = `${data.id}-${saveName === '' ? saveId : saveName}-${getDatestamp()}.save`;
+		const saveObj = LZString.compressToBase64(JSON.stringify(data));
+		saveAs(new Blob([saveObj], { type : 'text/plain;charset=UTF-8' }), exportName);
+	}
+
+	function exportCurrent() {
+		updateExportDay();
+		Save.export();
+	}
 
+	/**
+	 * @deprecated
+	 */
 	function uiExportButton() {
-		let export_name = "degrees-of-lewdity" + (V.saveName != '' ? '-' + V.saveName : '');
+		const exportName = "degrees-of-lewdity" + (V.saveName != '' ? '-' + V.saveName : '');
 		updateExportDay();
-		Save.export(export_name);
+		Save.export(exportName);
 	}
 
+	/**
+	 * @deprecated
+	 */
 	function uiDebugExport(slot) {
 		const save = Save.slots.get(slot);
 		if (!save)
@@ -166,6 +206,9 @@ const IronMan = (() => {
 		})
 	}
 
+	/**
+	 * @deprecated
+	 */
 	function uiDebugExportButton(slot) {
 		const div = document.getElementById("saveSlot" + slot);
 		if (div) {
@@ -182,6 +225,19 @@ const IronMan = (() => {
 		}
 	}
 
+	function scheduledSaves() {
+		const date = new Date(V.month + ' ' + V.monthday + ', ' + V.year);
+
+		if (!V.ironmanautosaveschedule)
+			V.ironmanautosaveschedule = (date.getTime()).toString(8);
+		if (parseInt(V.ironmanautosaveschedule, 8) < date.getTime()){
+			//autosave
+			ironmanAutoSave();
+			//
+			V.ironmanautosaveschedule = (date.getTime() + (getRandomIntInclusive(432000, 777600) * 1000)).toString(8);
+		}
+	}
+
 	/* If the game is in ironman mode, generate the objects necessary. Can use the updater code for it without issues. */
 	/* $(document).on(':start2', function() {
 		if (V.ironmanmode) {
@@ -196,10 +252,10 @@ const IronMan = (() => {
 
 	/*  IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE
 		IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE IRONMAN PREVENTION CODE
-		
+
 		This runs at the end of the passage processing pipeline. Check docs for SugarCube.md for more information about the pipeline. */
 	$(document).on(':passageend', function() {
-		freezeImportantVars();
+		ironmanLock();
 		varsFrozen = true;
 	});
 
@@ -213,18 +269,21 @@ const IronMan = (() => {
 
 	/* Export the module object containing functions. */
 	return Object.seal({
-		freezeImportantVars: freezeImportantVars,
-		getSaveSignature: getSaveSignature,
+		lock: ironmanLock,
+		getSignature: getSignature,
 		/* Setter helpers that control the setter object, to defer variable assignments at the very beginning of the next passage. */
 		addSetter: addSetter,
 		clearSetters: clearSetters,
+		export: exportSlot,
+		exportDebug: exportCurrent,
 		UI: {
 			checkBox: uiCheckBox,
 			exportButton: uiExportButton,
 			debugExport: uiDebugExport,
-			debugExportButton: uiDebugExportButton,
+			debugExportButton: uiDebugExportButton
 		},
-		update: update
+		update: update,
+		scheduledSaves: scheduledSaves
 	});
 })();
 window.IronMan = IronMan;
diff --git a/game/03-JavaScript/UI.js b/game/03-JavaScript/UI.js
index d2f228a81c216de4a3d08f3d8207f1351ba2e9d9..506963d36f33ce2cb22c10737d6d52ab0ad30522 100644
--- a/game/03-JavaScript/UI.js
+++ b/game/03-JavaScript/UI.js
@@ -16,7 +16,7 @@ window.overlayMenu = function (elementId, type) {
 		if (document.getElementById(elementId) != undefined) {
 			if (V.debugMenu[2].length > 0)
 				window.toggleClassDebug(elementId, "hideWhileSearching")
-			else 
+			else
 				window.toggleClassDebug(elementId, "classicHide")
 		}
 		if ((elementId == "debugFavourites" || elementId == "debugAdd") && V.debugMenu[2] != undefined && V.debugMenu[2].length > 0){
@@ -259,13 +259,13 @@ window.getTimeNumber = function (t) {
 
 window.extendStats = function () {
 	V.extendedStats = !V.extendedStats;
-	var captionDiv = document.getElementById('storyCaptionDiv'),
+	var captionDiv = document.getElementById('storyCaptionContent'),
 		statsDiv = document.getElementById('stats');
 	if (V.extendedStats === true) {
-		captionDiv.classList.add("storyCaptionDivExtended");
+		captionDiv.classList.add("storyCaptionContentExtended");
 		statsDiv.classList.add("statsExtended");
 	} else {
-		captionDiv.classList.remove("storyCaptionDivExtended");
+		captionDiv.classList.remove("storyCaptionContentExtended");
 		statsDiv.classList.remove("statsExtended");
 	}
 	new Wikifier(null, '<<replace #stats>><<statsCaption>><</replace>>');
@@ -341,7 +341,7 @@ window.settingsAsphyxiation = function () {
 		}
 		jQuery('#numberslider-value-asphyxialvl').text('').append(text).addClass('small-description');
 	};
-	
+
 	jQuery(document).ready(() => {
 		updateText();
 		jQuery('#numberslider-input-asphyxialvl').on('input change', function (e) { updateText(); });
@@ -468,14 +468,14 @@ window.settingsPCGenderUpdate = function () {
 }
 
 window.settingsDoubleAnalToggleGreyOut = function() {
-    let updateButtonsActive = () => {
-        jQuery('[id*=checkbox-analdoubledisable]').prop("disabled", V.analdisable == "t");
-    };
-
-    jQuery(document).ready(() => {
-        updateButtonsActive();
-        jQuery('[id*=checkbox-analdisable]').on('change', function (e) { updateButtonsActive(); });
-    });
+	let updateButtonsActive = () => {
+		jQuery('[id*=checkbox-analdoubledisable]').prop("disabled", V.analdisable == "t");
+	};
+
+	jQuery(document).ready(() => {
+		updateButtonsActive();
+		jQuery('[id*=checkbox-analdisable]').on('change', function (e) { updateButtonsActive(); });
+	});
 }
 
 $(document).on('click', '#cbtToggleMenu .cbtToggle', function (e) {
diff --git a/game/03-JavaScript/base.js b/game/03-JavaScript/base.js
index bdc9126a9aae04122a2a57c2c4f9e9b588ff8514..611f1b8a032622efd0e1fc9fe57e628d8a024954 100644
--- a/game/03-JavaScript/base.js
+++ b/game/03-JavaScript/base.js
@@ -319,7 +319,7 @@ DefineMacroS("faceintegrity", faceintegrity);
 window.clothesColour = function(worn){
 	if (!worn.colour) return T.text_output = "";
 	if (worn.colour.startsWith("wet")){ //this might not be used anymore
-		return T.text_output = worn.colour.slice(3); 
+		return T.text_output = worn.colour.slice(3);
 	}
 	if (worn.colour_sidebar){
 		if (worn.colour == "custom") return T.text_output = getCustomColourName(worn.colourCustom);
@@ -329,7 +329,7 @@ window.clothesColour = function(worn){
 }
 
 /**
- * @return {void} 
+ * @return {void}
  */
 window.outfitChecks = function(){
 	T.underOutfit = ((V.worn.under_lower.outfitSecondary) && V.worn.under_lower.outfitSecondary[1] === V.worn.under_upper.name);
@@ -509,7 +509,7 @@ $(document).on(':passagedisplay', function (ev) {
 		}, Math.random()*1000 + 500);
 	  }
 	}
-	
+
 	setTimeout(checkFadingSpans, 1000);
 });
 
@@ -537,4 +537,48 @@ window.mobBtnHide = function mobBtnHide(){
 window.mobBtnShow = function mobBtnShow(){
 	$('.mob-btn').show()
 	$('.mob-btn-h').hide()
-}
\ No newline at end of file
+}
+
+/**
+ * This function creates a random float 0.0-1.0, weighted by exponential curve.
+ *
+ * A value of 1.0 returns 1 every time.
+ *
+ * Values between 1.0 and 2.0 return a curve favoring higher results (closer to 1)
+ *
+ * A value of 2.0 will return a flat line distribution, and is identical to random()
+ *
+ * Values greater than 2.0 return a curve favoring lower results (closer to 0), reaching to 0 at infinity.
+ *
+ * For example, see:
+ * https://www.desmos.com/calculator/o3rxbwzvdu
+
+ * @param {number} exp Exponent used to generate the curve
+ * @returns {number} random number weighted against exponential curve
+ */
+function randomExp(exp) {
+    const x = State.random();
+    return ( x ** exp ) / x;
+}
+window.randomExp = randomExp;
+
+/**
+ * Normalises value to a decimal number 0.0-1.0, a percentage of the range specified in min and max.
+ * @param {number} value The value to be normalised
+ * @param {number} max - The highest value of the range
+ * @param {number} min The lowest value of the range, default 0
+ * @returns {number} Normalised value
+ */
+function normalise(value, max, min = 0) {
+    const denominator = max - min;
+    if (denominator === 0) {
+        Errors.report('[normalise]: min and max params must be different.', { value, max, min });
+        return 0;
+    }
+    if (value < min || value > max) {
+        Errors.report('[normalise]: value must be within the bounds provided.', { value, max, min });
+        return 0;
+    }
+    return (value - min) / denominator;
+}
+window.normalise = normalise;
diff --git a/game/03-JavaScript/bedroomPills.js b/game/03-JavaScript/bedroomPills.js
index 003cc6b8780381e6ed0a1dab4d40123dacb5ef75..2514b9a64a9df1b924e85ed488d28472541a84d2 100644
--- a/game/03-JavaScript/bedroomPills.js
+++ b/game/03-JavaScript/bedroomPills.js
@@ -4,7 +4,7 @@
  * place the widgets that need to be run inside effects array
  * if you feel lost just ask away :)
  * take_condition == 1 means the "Take Pill" button is not greyed out and is clickable
- * display_condition controls wether or not pill should be displayed in the pill menu
+ * display_condition controls whether or not pill should be displayed in the pill menu
 */
 
 /*
@@ -13,24 +13,24 @@ This is the setup.pills array.
 It contains a list of all the possible pills.
 A single pill object contains multiple 'properties' which define the pill.
 
- * name:'example pill' - The name displayed in the medicine drawer screen. Auto-capitalizes first word. Capitalize other words if desired.
+ * name:'example pill' - The name displayed in the medicine drawer screen. Auto-capitalises first word. Capitalise other words if desired.
  * description: 'this pill is green.' - The description displayed when the pill is selected.
  * onTakeMessage: 'You swallow the green pill.' - Text displayed when a pill is taken.
  * warning_label: 'Warning: example pill may cause explosive decompression.' - Warning label displayed in text box. <span class="hpi_notice_label"> is used in several of these.
- * indicators: - Array of indicators.  Example: `<span class="hpi_indic_green">+ Control</span>`
+ * indicators: - Array of indicators. Example: `<span class="hpi_indic_green">+ Control</span>`
  * icon: 'img/misc...blahblah' - file path of the png icon for this pill.
- * 
+ *
  * autoTake: - Code or statement that determines if this pill is set to auto-take ??? **
  * doseTaken: - Code or statement showing how many doses were taken already. **
  * owned: - Code or statement to determined the number owned. **
  * overdose: - Code or statement to determine overdose. **
  * display_condition: - Code or statement to determine if the pill displays in list. **
  * take_condition: - Code or statement to determine if the take button displays for this pill - can a dose currently be taken. **
- * 
- * type: "various" - Type of pill. Pill code uses this to determine what the effects are and where they apply.  Example: "bottom" or "breast"
+ *
+ * type: "various" - Type of pill. Pill code uses this to determine what the effects are and where they apply. Example: "bottom" or "breast"
  * subtype: "various" - Action the pill has on bodypart 'type'. Optional for the asylum & harper meds apparently. Example: "reduction" or "growth"
  * shape: "pill" or "galenic" - Helps to properly space the icon.
- * effects: - Array of effects - can be used to issue quick macros for setting results.  Example: `<<control 25>>`
+ * effects: - Array of effects - can be used to issue quick macros for setting results. Example: `<<control 25>>`
 */
 setup.pills = [
 	{
@@ -290,7 +290,7 @@ window.onMouseEventDisableGridClick = function(code) {
 window.addElementToGrid = function(item) {
 	$(function(){
 		let hpi_gridContainer = document.getElementById("homeMainPillContainer");
-		
+
 		let item_name = item.name[0].toUpperCase() + item.name.slice(1)
 		hpi_gridContainer.innerHTML = hpi_gridContainer.innerHTML +
 		`
@@ -390,7 +390,7 @@ window.redetermineMostTaken = function(type, subtype, fullname=null) {
 			result[pill.subtype] = pill.doseTaken()
 	}
 	ret = result.growth - result.reduction;
-	if (ret == 0 && (result.growth > 0 || result.reduction > 0)){ // We enter here when growth and reduction pills neutralized each others
+	if (ret == 0 && (result.growth > 0 || result.reduction > 0)){ // We enter here when growth and reduction pills neutralised each others
 		if (result.blocker > 0)
 			return (V.sexStats.pills.mostTaken[type] = "blocker")
 		else
@@ -454,7 +454,7 @@ window.syncAutoTakeDisplayedState = function() { // Add or remove [Auto] tag fro
 	}
 }
 
-window.onSecondDoseTakenSetVars = function() { // If player take two doses of anything but blocker/pregnancy/harper/asylum pills, determine the risk stat and 
+window.onSecondDoseTakenSetVars = function() { // If player take two doses of anything but blocker/pregnancy/harper/asylum pills, determine the risk stat and
 	let doseTaken = {"bottom":0, "penis":0, "breast":0}
 	let chosen;
 	let doseTaken_sum;
@@ -539,7 +539,7 @@ window.backCompPillsInventory = function() {
 }
 
 function pillsObjectRepair(oPills, pills) {
-	/* if the variable already exist, and is not of the new version(new version has "mostTaken" property that's why we check it), 
+	/* if the variable already exist, and is not of the new version(new version has "mostTaken" property that's why we check it),
 	then we try to  port the old one to the new one */
 	if (typeof oPills.bottom === 'object') {
 		Object.assign(pills, {
diff --git a/game/03-JavaScript/canvasmodel-editor.js b/game/03-JavaScript/canvasmodel-editor.js
index dca765fda107dce3eaaa419bd8911e30428e7337..4c85a1106d9ae395bf5cccff83254c7699613d5f 100644
--- a/game/03-JavaScript/canvasmodel-editor.js
+++ b/game/03-JavaScript/canvasmodel-editor.js
@@ -615,10 +615,10 @@ Macro.add('canvasModelEditor', {
 
 						optionCategory("Hair"),
 						selectOption("hair_colour", hairColourOptions),
-						selectOption("hair_sides_type", ["", "default", "braid left", "braid right", "flat ponytail", "loose", "messy", "pigtails", "ponytail", "short", "side tail left", "side tail right", "straight", "swept left", "twin braids", "twintails", "curl", "defined curl", "neat", "curly pigtails", "sailor buns", "dreads"]),
+						selectOption("hair_sides_type", ["", "default", "braid left", "braid right", "flat ponytail", "loose", "messy", "pigtails", "ponytail", "short", "side tail left", "side tail right", "straight", "swept left", "twin braids", "twintails", "curl", "defined curl", "neat", "curly pigtails", "sailor buns", "dreads", "shortspiky", "bubbletails", "curlysideup", "heartbraid", "loopbraid", "ruffled"]),
 						selectOption("hair_sides_length", ["short", "shoulder", "chest", "navel", "thighs", "feet"]),
 						selectOption("hair_sides_position", ["front", "back"]),
-						selectOption("hair_fringe_type", ["", "default", "thin flaps", "wide flaps", "hime", "loose", "messy", "overgrown", "ringlets", "split", "straight", "swept left", "back", "parted", "flat", "quiff", "straight curl", "ringlet curl", "curtain"]),
+						selectOption("hair_fringe_type", ["", "default", "thin flaps", "wide flaps", "hime", "loose", "messy", "overgrown", "ringlets", "split", "straight", "swept left", "back", "parted", "flat", "quiff", "straight curl", "ringlet curl", "curtain", "trident"]),
 						selectOption("hair_fringe_length", ["short", "shoulder", "chest", "navel", "thighs", "feet"]),
 						selectOption("brows_colour", xhairColourOptions),
 						selectOption("pbhair_colour", xhairColourOptions),
diff --git a/game/03-JavaScript/clothing-shop-v2.js b/game/03-JavaScript/clothing-shop-v2.js
index 9e847688d31b5ba2f03a39c29a4116b559198e6d..d6ad40d7636ff9f98688b64669fd976992a64bb2 100644
--- a/game/03-JavaScript/clothing-shop-v2.js
+++ b/game/03-JavaScript/clothing-shop-v2.js
@@ -298,4 +298,10 @@ window.allClothesSetup = function(){
 
 window.shopSearchReplacer = function(name){
 	return name.replace(/[^a-zA-Z0-9' -]+/g,"");
-}
\ No newline at end of file
+}
+
+function getOwnedClothingCount(index, type) {
+	const wardrobe = V.wardrobes.shopReturn === "wardrobe" ? V.wardrobe : V.wardrobes[V.wardrobes.shopReturn] || V.wardrobe;
+	return wardrobe[type].reduce((p, c) => p + Number(c.index === index), 0);
+}
+window.getOwnedClothingCount = getOwnedClothingCount;
diff --git a/game/03-JavaScript/debugMenu.js b/game/03-JavaScript/debugMenu.js
index d5af1ec2952ce735b264b9b6613b84129a843b00..2f153ec96470eb4f90ae3b000a9c8156c0103817 100644
--- a/game/03-JavaScript/debugMenu.js
+++ b/game/03-JavaScript/debugMenu.js
@@ -25,7 +25,7 @@ setup.debugMenu.event_list = {
 				`Home`, `Bedroom`
 			],
 			widgets: [
-				``
+				`<<endcombat>>`
 			]
 		},
 		{
@@ -222,7 +222,7 @@ setup.debugMenu.event_list = {
 				`Roll over`, function(){return V.passage}
 			],
 			widgets: [
-				function(){return (`<<set $position to ` + (V.position == "doggy") ? "doggy" : "missionary" ) + `>>`}
+				function(){return (`<<set $position to ` + (V.position == "doggy" ? "doggy" : "missionary") + `>>`)}
 			],
 			condition: function (){return (V.position == "doggy" || V.position == "missionary") ? 1 : 0}
 		},
@@ -333,7 +333,7 @@ setup.debugMenu.event_list = {
 				`<<run random(1,100)>>`,
 				`<<run random(1,100)>>`,
 				`<<run random(1,100)>>`,
-				`<<set $rng to random(1,100)>>` 
+				`<<set $rng to random(1,100)>>`
 			]
 		},
 		{
@@ -686,13 +686,22 @@ setup.debugMenu.event_list = {
 		},
 		{
 			link: [
-				`Imprison Me`, `Underground Intro2`
+				`Imprison Me`, `Underground Intro`
 			],
 			widgets: [
 				`<<generate1>>`,
+				`<<generate2>>`,
 				`<<person1>>`
 			]
 		},
+		{
+			link: [
+				`Imprison Me with Robin`, `Underground Intro`
+			],
+			widgets: [
+				`<<set $phase to 1>>`
+			]
+		},
 		{
 			link: [
 				`Start Robin Event`, function(){return V.passage}
@@ -917,15 +926,15 @@ setup.debugMenu.event_list = {
 				`<<set $bus to "sea">>`
 			]
 		},
-        {
-            link: [
-                `Cow Test`, `Cow Test Sex`
-            ],
-            widgets: [
-                `<<endcombat>>`,
-                `<<set $sexstart to 1>>`
-            ]
-        },
+		{
+			link: [
+				`Cow Test`, `Cow Test Sex`
+			],
+			widgets: [
+				`<<endcombat>>`,
+				`<<set $sexstart to 1>>`
+			]
+		},
 		{
 			link: [
 				`Tentacle Rape Me`, `Sea Tentacles`
@@ -1472,7 +1481,7 @@ setup.debugMenu.event_list = {
 				`<<set $renttime to 0>>`,
 				`<<set $baileydefeatedchain to 3>>`,
 				`<<set $robinpaid to 1>>`,
-				`<<set $robinRentTest to 1>>`,
+				`<<set $robinromance to 1>>`,
 				`<<set $bus to "home">>`,
 				`<<set $location to "home">>`
 			]
@@ -1498,7 +1507,6 @@ setup.debugMenu.event_list = {
 			widgets: [
 				`<<set $control to 0>>`,
 				`<<set $possessed to true>>`,
-				function(){ if (!$wraith.will) return `<<set $wraith.will to random(1300, 1700)>>`}
 			]
 		},
 		{
@@ -1623,7 +1631,7 @@ setup.debugMenu.event_list = {
 			],
 			widgets: [
 				`<<set $molestationstart to 1>>`,
-			   `<<swarminit "slimes" "slime mass" "moving towards you" "encircle you" "fend off" 8 0>>`
+				`<<swarminit "slimes" "slime mass" "moving towards you" "encircle you" "fend off" 8 0>>`
 			]
 		},
 		{
@@ -1738,16 +1746,18 @@ setup.debugMenu.event_list = {
 				`All Fame`, function(){return V.passage}
 			],
 			widgets: [
-				`<<set $fame += 4000>>`,
-				`<<famescrap 1000>>`,
-				`<<famebusiness 1000>>`,
-				`<<famegood 1000>>`,
-				`<<famepimp 1000>>`,
-				`<<set $fameexhibitionism += 1000>>`,
-				`<<set $famesex += 1000>>`,
-				`<<set $famerape += 1000>>`,
-				`<<set $famebestiality += 1000>>`,
-				`<<set $fameprostitution += 1000>>`
+				`<<fameexhibitionism 1000 "none" true>>`,
+				`<<fameprostitution 1000 "none" true>>`,
+				`<<famebestiality 1000 "none" true>>`,
+				`<<famerape 1000 "none" true>>`,
+				`<<famesex 1000 "none" true>>`,
+				`<<famepregnancy 1000 "none" true>>`,
+				`<<famegood 1000 "none" true>>`,
+				`<<famebusiness 1000 "none" true>>`,
+				`<<famepimp 1000 "none" true>>`,
+				`<<famescrap 1000 "none" true>>`,
+				`<<famesocial 1000 "none" true>>`,
+				`<<famemodel 1000 "none" true>>`
 			]
 		},
 		{
@@ -1755,8 +1765,7 @@ setup.debugMenu.event_list = {
 				`Fame Sex`, function(){return V.passage}
 			],
 			widgets: [
-				`<<set $fame += 4000>>`,
-				`<<set $famesex += 4000>>`
+				`<<famesex 2000 "none" true>>`
 			]
 		},
 		{
@@ -2685,20 +2694,20 @@ setup.debugMenu.event_list = {
 				`<<run unlockAllSeeds()>>`
 			]
 		},
-        {
-            link: [
-                `Super Debug Character`, function(){return V.passage}
-            ],
-            widgets: [
-                `<<set $school += 4000>>`,`<<set $science += 1000>>`,`<<set $maths += 1000>>`,`<<set $english += 1000>>`,`<<set $history += 1000>>`,`<<set $sciencetrait to 4>>`,
-                `<<set $mathstrait to 4>>`,`<<set $englishtrait to 4>>`,`<<set $historytrait to 4>>`,`<<set $skulduggery += 1000>>`,`<<set $danceskill += 1000>>`,
-                `<<set $swimmingskill += 1000>>`,`<<set $bottomskill += 1000>>`,`<<set $seductionskill += 1000>>`,`<<set $handskill += 1000>>`,`<<set $feetskill += 1000>>`,
-                `<<set $chestskill += 1000>>`,`<<set $thighskill += 1000>>`,`<<set $oralskill += 1000>>`,`<<set $analskill += 1000>>`,`<<set $vaginalskill += 1000>>`,
-                `<<set $penileskill += 1000>>`,`<<set $promiscuity += 100>>`,`<<set $exhibitionism += 100>>`,`<<set $deviancy += 100>>`,`<<set $awareness to 1000>>`,
-                `<<set $willpower to 1000>>`,`<<set $physique to 12000>>`,`<<set $orgasmtrait to 1>>`,`<<set $ejactrait to 1>>`,`<<set $molesttrait to 1>>`,
-                `<<set $rapetrait to 1>>`,`<<set $bestialitytrait to 1>>`,`<<set $tentacletrait to 1>>`,`<<set $choketrait to 1>>`
-            ]
-        },
+		{
+			link: [
+				`Super Debug Character`, function(){return V.passage}
+			],
+			widgets: [
+				`<<set $school += 4000>>`,`<<set $science += 1000>>`,`<<set $maths += 1000>>`,`<<set $english += 1000>>`,`<<set $history += 1000>>`,`<<set $sciencetrait to 4>>`,
+				`<<set $mathstrait to 4>>`,`<<set $englishtrait to 4>>`,`<<set $historytrait to 4>>`,`<<set $skulduggery += 1000>>`,`<<set $danceskill += 1000>>`,
+				`<<set $swimmingskill += 1000>>`,`<<set $bottomskill += 1000>>`,`<<set $seductionskill += 1000>>`,`<<set $handskill += 1000>>`,`<<set $feetskill += 1000>>`,
+				`<<set $chestskill += 1000>>`,`<<set $thighskill += 1000>>`,`<<set $oralskill += 1000>>`,`<<set $analskill += 1000>>`,`<<set $vaginalskill += 1000>>`,
+				`<<set $penileskill += 1000>>`,`<<set $promiscuity += 100>>`,`<<set $exhibitionism += 100>>`,`<<set $deviancy += 100>>`,`<<set $awareness to 1000>>`,
+				`<<set $willpower to 1000>>`,`<<set $physique to 12000>>`,`<<set $orgasmtrait to 1>>`,`<<set $ejactrait to 1>>`,`<<set $molesttrait to 1>>`,
+				`<<set $rapetrait to 1>>`,`<<set $bestialitytrait to 1>>`,`<<set $tentacletrait to 1>>`,`<<set $choketrait to 1>>`
+			]
+		},
 		{
 			link: [
 				`Unlock all pills`, function(){return V.passage}
@@ -2751,7 +2760,7 @@ window.researchEvents = function(default_value){
 		for (let i1 = 0; i1 < list_events.length; i1++){
 			for (let i2 = 0; i2 < list_events[i1].length; i2++){
 				let haystack = list_events[i1][i2].getAttribute("name")
-				
+
 				if (haystack != null){
 					haystack = haystack.toLowerCase()
 					if (haystack.contains(needle) == false)
@@ -2793,7 +2802,7 @@ window.addFavouriteIcon = function(section, index, id){
 		window.syncFavourites()
 		var input = document.createElement("input");
 		var parent = document.getElementById(id);
-		
+
 		input.type = "image"
 		input.className = "heart"
 		input.src = "img/ui/heart_favourite.svg"
@@ -2904,7 +2913,7 @@ window.toggleClassDebug = function(selected, mode) {
 			if (div+"Button" == selected)
 				document.getElementById(selected).classList.add("bg-color-debug-selected");
 			else
-				document.getElementById(div+"Button").classList.remove("bg-color-debug-selected");	
+				document.getElementById(div+"Button").classList.remove("bg-color-debug-selected");
 		}
 	}
 	else if (mode == "hideWhileSearching"){
@@ -2936,7 +2945,7 @@ window.patchDebugMenu = function() {
 			haystack = haystack.children
 		for (let i = 0; i < haystack.length; i++){
 			let value = haystack[i].id
-			
+
 			break_if_all_good = 0;
 			if (haystack[i].children.length < 1)
 				break
diff --git a/game/03-JavaScript/doubleslider.js b/game/03-JavaScript/doubleslider.js
index e6a5a9759c44708f1fb26feaa889ec60cf810cf7..d04e21774dfc08bc46f17e64d3f1c43e12574129 100644
--- a/game/03-JavaScript/doubleslider.js
+++ b/game/03-JavaScript/doubleslider.js
@@ -3,7 +3,7 @@
  *
  * <<doubleslider VAR1 VAR2 VAR3 LEFTCOLOR MIDDLECOLOR RIGHTCOLOR>>
  *
- * The vars should be the variable name WITHOUT the "$", while the colors can be any css-compatible color string, like "#00FF00" or "rgb(0,255,0)".
+ * The vars should be the variable name WITHOUT the "$", while the colors can be any css-compatible colour string, like "#00FF00" or "rgb(0,255,0)".
  *
  * Additional macros, or additional arguments, can be implemented to allow for different skins or different presentation styles.
  *
@@ -32,19 +32,19 @@ Macro.add("doubleslider", {
 
 			//label visibility mod
 			leftLabel.css('visibility', "visible");
-			if (data.from <= 0) leftLabel.css('visibility', "hidden"); 
+			if (data.from <= 0) leftLabel.css('visibility', "hidden");
 
 			middleLabel.css('visibility', "visible");
 			if (data.to - data.from <= 0) middleLabel.css('visibility', "hidden");
 
 			rightLabel.css('visibility', "visible");
-			if (100 - data.to <= 0) rightLabel.css('visibility', "hidden"); 
-			
+			if (100 - data.to <= 0) rightLabel.css('visibility', "hidden");
+
 			//set the label content
 			middleLabel.html(V[var2]+"%");
 			rightLabel.html(V[var3]+"%");
 
-			//set the label positions to be centered on the bars
+			//set the label positions to be centred on the bars
 			let a = (data.max-data.min);
 			var midbar = data.slider.find('.irs-bar');
 
diff --git a/game/03-JavaScript/external/color-namer.js b/game/03-JavaScript/external/color-namer.js
index 8d870e69a2ab119ac0b6d8277206cd354290f436..856fdb9a22f1e88286ee844ada2e22da86f5cc62 100644
--- a/game/03-JavaScript/external/color-namer.js
+++ b/game/03-JavaScript/external/color-namer.js
@@ -163,26 +163,26 @@ var colors = {
  * @api public
  */
 window.colorNamer = function(hex, color_map) {
-  color_map = color_map || colors;
-  var rgb = h2r(hex);
-  var min = Infinity;
-  var closest = null;
+	color_map = color_map || colors;
+	var rgb = h2r(hex);
+	var min = Infinity;
+	var closest = null;
 
-  for (var color in color_map) {
-    var rgb2 = h2r(color_map[color][0])
+	for (var color in color_map) {
+		var rgb2 = h2r(color_map[color][0])
 
-    // distance formula
-    var dist = Math.pow((rgb.r - rgb2.r) * .299, 2)
-      + Math.pow((rgb.g - rgb2.g) * .587, 2)
-      + Math.pow((rgb.b - rgb2.b) * .114, 2);
+		// distance formula
+		var dist = Math.pow((rgb.r - rgb2.r) * .299, 2)
+			+ Math.pow((rgb.g - rgb2.g) * .587, 2)
+			+ Math.pow((rgb.b - rgb2.b) * .114, 2);
 
-    if (dist <= min) {
-      closest = color;
-      min = dist;
-    }
-  }
+		if (dist <= min) {
+			closest = color;
+			min = dist;
+		}
+	}
 
-  return closest;
+	return closest;
 }
 
 window.colorNameTranslate = function(name, mode) {
diff --git a/game/03-JavaScript/external/ion.rangeSlider.js b/game/03-JavaScript/external/ion.rangeSlider.js
index 3427e7aa6680d4cf65049de85f5e87a5b8580b7e..fa03958b25eebd4d829bf5c02ba876a5e98e36f7 100644
--- a/game/03-JavaScript/external/ion.rangeSlider.js
+++ b/game/03-JavaScript/external/ion.rangeSlider.js
@@ -3,2447 +3,2447 @@
 // © Denis Ineshin, 2019
 // https://github.com/IonDen
 //
-// Project page:    http://ionden.com/a/plugins/ion.rangeSlider/en.html
-// GitHub page:     https://github.com/IonDen/ion.rangeSlider
+// Project page:	http://ionden.com/a/plugins/ion.rangeSlider/en.html
+// GitHub page:	 https://github.com/IonDen/ion.rangeSlider
 //
 // Released under MIT licence:
 // http://ionden.com/a/plugins/licence-en.html
 // =====================================================================================================================
 
 ;(function(factory) {
-    if ((typeof jQuery === 'undefined' || !jQuery) && typeof define === "function" && define.amd) {
-        define(["jquery"], function (jQuery) {
-            return factory(jQuery, document, window, navigator);
-        });
-    } else if ((typeof jQuery === 'undefined' || !jQuery) && typeof exports === "object") {
-        factory(require("jquery"), document, window, navigator);
-    } else {
-        factory(jQuery, document, window, navigator);
-    }
+	if ((typeof jQuery === 'undefined' || !jQuery) && typeof define === "function" && define.amd) {
+		define(["jquery"], function (jQuery) {
+			return factory(jQuery, document, window, navigator);
+		});
+	} else if ((typeof jQuery === 'undefined' || !jQuery) && typeof exports === "object") {
+		factory(require("jquery"), document, window, navigator);
+	} else {
+		factory(jQuery, document, window, navigator);
+	}
 } (function ($, document, window, navigator, undefined) {
-    "use strict";
-
-    // =================================================================================================================
-    // Service
-
-    var plugin_count = 0;
-
-    // IE8 fix
-    var is_old_ie = (function () {
-        var n = navigator.userAgent,
-            r = /msie\s\d+/i,
-            v;
-        if (n.search(r) > 0) {
-            v = r.exec(n).toString();
-            v = v.split(" ")[1];
-            if (v < 9) {
-                $("html").addClass("lt-ie9");
-                return true;
-            }
-        }
-        return false;
-    } ());
-    if (!Function.prototype.bind) {
-        Function.prototype.bind = function bind(that) {
-
-            var target = this;
-            var slice = [].slice;
-
-            if (typeof target != "function") {
-                throw new TypeError();
-            }
-
-            var args = slice.call(arguments, 1),
-                bound = function () {
-
-                    if (this instanceof bound) {
-
-                        var F = function(){};
-                        F.prototype = target.prototype;
-                        var self = new F();
-
-                        var result = target.apply(
-                            self,
-                            args.concat(slice.call(arguments))
-                        );
-                        if (Object(result) === result) {
-                            return result;
-                        }
-                        return self;
-
-                    } else {
-
-                        return target.apply(
-                            that,
-                            args.concat(slice.call(arguments))
-                        );
-
-                    }
-
-                };
-
-            return bound;
-        };
-    }
-    if (!Array.prototype.indexOf) {
-        Array.prototype.indexOf = function(searchElement, fromIndex) {
-            var k;
-            if (this == null) {
-                throw new TypeError('"this" is null or not defined');
-            }
-            var O = Object(this);
-            var len = O.length >>> 0;
-            if (len === 0) {
-                return -1;
-            }
-            var n = +fromIndex || 0;
-            if (Math.abs(n) === Infinity) {
-                n = 0;
-            }
-            if (n >= len) {
-                return -1;
-            }
-            k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
-            while (k < len) {
-                if (k in O && O[k] === searchElement) {
-                    return k;
-                }
-                k++;
-            }
-            return -1;
-        };
-    }
-
-
-
-    // =================================================================================================================
-    // Template
-
-    var base_html =
-        '<span class="irs">' +
-        '<span class="irs-line" tabindex="0"></span>' +
-        '<span class="irs-min">0</span><span class="irs-max">1</span>' +
-        '<span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span>' +
-        '</span>' +
-        '<span class="irs-grid"></span>';
-
-    var single_html =
-        '<span class="irs-bar irs-bar--single"></span>' +
-        '<span class="irs-shadow shadow-single"></span>' +
-        '<span class="irs-handle single"><i></i><i></i><i></i></span>';
-
-    var double_html =
-        '<span class="irs-bar"></span>' +
-        '<span class="irs-shadow shadow-from"></span>' +
-        '<span class="irs-shadow shadow-to"></span>' +
-        '<span class="irs-handle from"><i></i><i></i><i></i></span>' +
-        '<span class="irs-handle to"><i></i><i></i><i></i></span>';
-
-    var disable_html =
-        '<span class="irs-disable-mask"></span>';
-
-
-
-    // =================================================================================================================
-    // Core
-
-    /**
-     * Main plugin constructor
-     *
-     * @param input {Object} link to base input element
-     * @param options {Object} slider config
-     * @param plugin_count {Number}
-     * @constructor
-     */
-    var IonRangeSlider = function (input, options, plugin_count) {
-        this.VERSION = "2.3.1";
-        this.input = input;
-        this.plugin_count = plugin_count;
-        this.current_plugin = 0;
-        this.calc_count = 0;
-        this.update_tm = 0;
-        this.old_from = 0;
-        this.old_to = 0;
-        this.old_min_interval = null;
-        this.raf_id = null;
-        this.dragging = false;
-        this.force_redraw = false;
-        this.no_diapason = false;
-        this.has_tab_index = true;
-        this.is_key = false;
-        this.is_update = false;
-        this.is_start = true;
-        this.is_finish = false;
-        this.is_active = false;
-        this.is_resize = false;
-        this.is_click = false;
-
-        options = options || {};
-
-        // cache for links to all DOM elements
-        this.$cache = {
-            win: $(window),
-            body: $(document.body),
-            input: $(input),
-            cont: null,
-            rs: null,
-            min: null,
-            max: null,
-            from: null,
-            to: null,
-            single: null,
-            bar: null,
-            line: null,
-            s_single: null,
-            s_from: null,
-            s_to: null,
-            shad_single: null,
-            shad_from: null,
-            shad_to: null,
-            edge: null,
-            grid: null,
-            grid_labels: []
-        };
-
-        // storage for measure variables
-        this.coords = {
-            // left
-            x_gap: 0,
-            x_pointer: 0,
-
-            // width
-            w_rs: 0,
-            w_rs_old: 0,
-            w_handle: 0,
-
-            // percents
-            p_gap: 0,
-            p_gap_left: 0,
-            p_gap_right: 0,
-            p_step: 0,
-            p_pointer: 0,
-            p_handle: 0,
-            p_single_fake: 0,
-            p_single_real: 0,
-            p_from_fake: 0,
-            p_from_real: 0,
-            p_to_fake: 0,
-            p_to_real: 0,
-            p_bar_x: 0,
-            p_bar_w: 0,
-
-            // grid
-            grid_gap: 0,
-            big_num: 0,
-            big: [],
-            big_w: [],
-            big_p: [],
-            big_x: []
-        };
-
-        // storage for labels measure variables
-        this.labels = {
-            // width
-            w_min: 0,
-            w_max: 0,
-            w_from: 0,
-            w_to: 0,
-            w_single: 0,
-
-            // percents
-            p_min: 0,
-            p_max: 0,
-            p_from_fake: 0,
-            p_from_left: 0,
-            p_to_fake: 0,
-            p_to_left: 0,
-            p_single_fake: 0,
-            p_single_left: 0
-        };
-
-
-
-        /**
-         * get and validate config
-         */
-        var $inp = this.$cache.input,
-            val = $inp.prop("value"),
-            config, config_from_data, prop;
-
-        // default config
-        config = {
-            skin: "flat",
-            type: "single",
-
-            min: 10,
-            max: 100,
-            from: null,
-            to: null,
-            step: 1,
-
-            min_interval: 0,
-            max_interval: 0,
-            drag_interval: false,
-
-            values: [],
-            p_values: [],
-
-            from_fixed: false,
-            from_min: null,
-            from_max: null,
-            from_shadow: false,
-
-            to_fixed: false,
-            to_min: null,
-            to_max: null,
-            to_shadow: false,
-
-            prettify_enabled: true,
-            prettify_separator: " ",
-            prettify: null,
-
-            force_edges: false,
-
-            keyboard: true,
-
-            grid: false,
-            grid_margin: true,
-            grid_num: 4,
-            grid_snap: false,
-
-            hide_min_max: false,
-            hide_from_to: false,
-
-            prefix: "",
-            postfix: "",
-            max_postfix: "",
-            decorate_both: true,
-            values_separator: " — ",
-
-            input_values_separator: ";",
-
-            disable: false,
-            block: false,
-
-            extra_classes: "",
-
-            scope: null,
-            onStart: null,
-            onChange: null,
-            onFinish: null,
-            onUpdate: null
-        };
-
-
-        // check if base element is input
-        if ($inp[0].nodeName !== "INPUT") {
-            console && console.warn && console.warn("Base element should be <input>!", $inp[0]);
-        }
+	"use strict";
+
+	// =================================================================================================================
+	// Service
+
+	var plugin_count = 0;
+
+	// IE8 fix
+	var is_old_ie = (function () {
+		var n = navigator.userAgent,
+			r = /msie\s\d+/i,
+			v;
+		if (n.search(r) > 0) {
+			v = r.exec(n).toString();
+			v = v.split(" ")[1];
+			if (v < 9) {
+				$("html").addClass("lt-ie9");
+				return true;
+			}
+		}
+		return false;
+	} ());
+	if (!Function.prototype.bind) {
+		Function.prototype.bind = function bind(that) {
+
+			var target = this;
+			var slice = [].slice;
+
+			if (typeof target != "function") {
+				throw new TypeError();
+			}
+
+			var args = slice.call(arguments, 1),
+				bound = function () {
+
+					if (this instanceof bound) {
+
+						var F = function(){};
+						F.prototype = target.prototype;
+						var self = new F();
+
+						var result = target.apply(
+							self,
+							args.concat(slice.call(arguments))
+						);
+						if (Object(result) === result) {
+							return result;
+						}
+						return self;
+
+					} else {
+
+						return target.apply(
+							that,
+							args.concat(slice.call(arguments))
+						);
+
+					}
+
+				};
+
+			return bound;
+		};
+	}
+	if (!Array.prototype.indexOf) {
+		Array.prototype.indexOf = function(searchElement, fromIndex) {
+			var k;
+			if (this == null) {
+				throw new TypeError('"this" is null or not defined');
+			}
+			var O = Object(this);
+			var len = O.length >>> 0;
+			if (len === 0) {
+				return -1;
+			}
+			var n = +fromIndex || 0;
+			if (Math.abs(n) === Infinity) {
+				n = 0;
+			}
+			if (n >= len) {
+				return -1;
+			}
+			k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
+			while (k < len) {
+				if (k in O && O[k] === searchElement) {
+					return k;
+				}
+				k++;
+			}
+			return -1;
+		};
+	}
+
+
+
+	// =================================================================================================================
+	// Template
+
+	var base_html =
+		'<span class="irs">' +
+		'<span class="irs-line" tabindex="0"></span>' +
+		'<span class="irs-min">0</span><span class="irs-max">1</span>' +
+		'<span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span>' +
+		'</span>' +
+		'<span class="irs-grid"></span>';
+
+	var single_html =
+		'<span class="irs-bar irs-bar--single"></span>' +
+		'<span class="irs-shadow shadow-single"></span>' +
+		'<span class="irs-handle single"><i></i><i></i><i></i></span>';
+
+	var double_html =
+		'<span class="irs-bar"></span>' +
+		'<span class="irs-shadow shadow-from"></span>' +
+		'<span class="irs-shadow shadow-to"></span>' +
+		'<span class="irs-handle from"><i></i><i></i><i></i></span>' +
+		'<span class="irs-handle to"><i></i><i></i><i></i></span>';
+
+	var disable_html =
+		'<span class="irs-disable-mask"></span>';
+
+
+
+	// =================================================================================================================
+	// Core
+
+	/**
+	 * Main plugin constructor
+	 *
+	 * @param input {Object} link to base input element
+	 * @param options {Object} slider config
+	 * @param plugin_count {Number}
+	 * @constructor
+	 */
+	var IonRangeSlider = function (input, options, plugin_count) {
+		this.VERSION = "2.3.1";
+		this.input = input;
+		this.plugin_count = plugin_count;
+		this.current_plugin = 0;
+		this.calc_count = 0;
+		this.update_tm = 0;
+		this.old_from = 0;
+		this.old_to = 0;
+		this.old_min_interval = null;
+		this.raf_id = null;
+		this.dragging = false;
+		this.force_redraw = false;
+		this.no_diapason = false;
+		this.has_tab_index = true;
+		this.is_key = false;
+		this.is_update = false;
+		this.is_start = true;
+		this.is_finish = false;
+		this.is_active = false;
+		this.is_resize = false;
+		this.is_click = false;
+
+		options = options || {};
+
+		// cache for links to all DOM elements
+		this.$cache = {
+			win: $(window),
+			body: $(document.body),
+			input: $(input),
+			cont: null,
+			rs: null,
+			min: null,
+			max: null,
+			from: null,
+			to: null,
+			single: null,
+			bar: null,
+			line: null,
+			s_single: null,
+			s_from: null,
+			s_to: null,
+			shad_single: null,
+			shad_from: null,
+			shad_to: null,
+			edge: null,
+			grid: null,
+			grid_labels: []
+		};
+
+		// storage for measure variables
+		this.coords = {
+			// left
+			x_gap: 0,
+			x_pointer: 0,
+
+			// width
+			w_rs: 0,
+			w_rs_old: 0,
+			w_handle: 0,
+
+			// percents
+			p_gap: 0,
+			p_gap_left: 0,
+			p_gap_right: 0,
+			p_step: 0,
+			p_pointer: 0,
+			p_handle: 0,
+			p_single_fake: 0,
+			p_single_real: 0,
+			p_from_fake: 0,
+			p_from_real: 0,
+			p_to_fake: 0,
+			p_to_real: 0,
+			p_bar_x: 0,
+			p_bar_w: 0,
+
+			// grid
+			grid_gap: 0,
+			big_num: 0,
+			big: [],
+			big_w: [],
+			big_p: [],
+			big_x: []
+		};
+
+		// storage for labels measure variables
+		this.labels = {
+			// width
+			w_min: 0,
+			w_max: 0,
+			w_from: 0,
+			w_to: 0,
+			w_single: 0,
+
+			// percents
+			p_min: 0,
+			p_max: 0,
+			p_from_fake: 0,
+			p_from_left: 0,
+			p_to_fake: 0,
+			p_to_left: 0,
+			p_single_fake: 0,
+			p_single_left: 0
+		};
+
+
+
+		/**
+		 * get and validate config
+		 */
+		var $inp = this.$cache.input,
+			val = $inp.prop("value"),
+			config, config_from_data, prop;
+
+		// default config
+		config = {
+			skin: "flat",
+			type: "single",
+
+			min: 10,
+			max: 100,
+			from: null,
+			to: null,
+			step: 1,
+
+			min_interval: 0,
+			max_interval: 0,
+			drag_interval: false,
+
+			values: [],
+			p_values: [],
+
+			from_fixed: false,
+			from_min: null,
+			from_max: null,
+			from_shadow: false,
+
+			to_fixed: false,
+			to_min: null,
+			to_max: null,
+			to_shadow: false,
+
+			prettify_enabled: true,
+			prettify_separator: " ",
+			prettify: null,
+
+			force_edges: false,
+
+			keyboard: true,
+
+			grid: false,
+			grid_margin: true,
+			grid_num: 4,
+			grid_snap: false,
+
+			hide_min_max: false,
+			hide_from_to: false,
+
+			prefix: "",
+			postfix: "",
+			max_postfix: "",
+			decorate_both: true,
+			values_separator: " — ",
+
+			input_values_separator: ";",
+
+			disable: false,
+			block: false,
+
+			extra_classes: "",
+
+			scope: null,
+			onStart: null,
+			onChange: null,
+			onFinish: null,
+			onUpdate: null
+		};
+
+
+		// check if base element is input
+		if ($inp[0].nodeName !== "INPUT") {
+			console && console.warn && console.warn("Base element should be <input>!", $inp[0]);
+		}
 
 
-        // config from data-attributes extends js config
-        config_from_data = {
-            skin: $inp.data("skin"),
-            type: $inp.data("type"),
+		// config from data-attributes extends js config
+		config_from_data = {
+			skin: $inp.data("skin"),
+			type: $inp.data("type"),
 
-            min: $inp.data("min"),
-            max: $inp.data("max"),
-            from: $inp.data("from"),
-            to: $inp.data("to"),
-            step: $inp.data("step"),
+			min: $inp.data("min"),
+			max: $inp.data("max"),
+			from: $inp.data("from"),
+			to: $inp.data("to"),
+			step: $inp.data("step"),
 
-            min_interval: $inp.data("minInterval"),
-            max_interval: $inp.data("maxInterval"),
-            drag_interval: $inp.data("dragInterval"),
+			min_interval: $inp.data("minInterval"),
+			max_interval: $inp.data("maxInterval"),
+			drag_interval: $inp.data("dragInterval"),
 
-            values: $inp.data("values"),
+			values: $inp.data("values"),
 
-            from_fixed: $inp.data("fromFixed"),
-            from_min: $inp.data("fromMin"),
-            from_max: $inp.data("fromMax"),
-            from_shadow: $inp.data("fromShadow"),
+			from_fixed: $inp.data("fromFixed"),
+			from_min: $inp.data("fromMin"),
+			from_max: $inp.data("fromMax"),
+			from_shadow: $inp.data("fromShadow"),
 
-            to_fixed: $inp.data("toFixed"),
-            to_min: $inp.data("toMin"),
-            to_max: $inp.data("toMax"),
-            to_shadow: $inp.data("toShadow"),
+			to_fixed: $inp.data("toFixed"),
+			to_min: $inp.data("toMin"),
+			to_max: $inp.data("toMax"),
+			to_shadow: $inp.data("toShadow"),
 
-            prettify_enabled: $inp.data("prettifyEnabled"),
-            prettify_separator: $inp.data("prettifySeparator"),
+			prettify_enabled: $inp.data("prettifyEnabled"),
+			prettify_separator: $inp.data("prettifySeparator"),
 
-            force_edges: $inp.data("forceEdges"),
+			force_edges: $inp.data("forceEdges"),
 
-            keyboard: $inp.data("keyboard"),
+			keyboard: $inp.data("keyboard"),
 
-            grid: $inp.data("grid"),
-            grid_margin: $inp.data("gridMargin"),
-            grid_num: $inp.data("gridNum"),
-            grid_snap: $inp.data("gridSnap"),
+			grid: $inp.data("grid"),
+			grid_margin: $inp.data("gridMargin"),
+			grid_num: $inp.data("gridNum"),
+			grid_snap: $inp.data("gridSnap"),
 
-            hide_min_max: $inp.data("hideMinMax"),
-            hide_from_to: $inp.data("hideFromTo"),
+			hide_min_max: $inp.data("hideMinMax"),
+			hide_from_to: $inp.data("hideFromTo"),
 
-            prefix: $inp.data("prefix"),
-            postfix: $inp.data("postfix"),
-            max_postfix: $inp.data("maxPostfix"),
-            decorate_both: $inp.data("decorateBoth"),
-            values_separator: $inp.data("valuesSeparator"),
+			prefix: $inp.data("prefix"),
+			postfix: $inp.data("postfix"),
+			max_postfix: $inp.data("maxPostfix"),
+			decorate_both: $inp.data("decorateBoth"),
+			values_separator: $inp.data("valuesSeparator"),
 
-            input_values_separator: $inp.data("inputValuesSeparator"),
+			input_values_separator: $inp.data("inputValuesSeparator"),
 
-            disable: $inp.data("disable"),
-            block: $inp.data("block"),
+			disable: $inp.data("disable"),
+			block: $inp.data("block"),
 
-            extra_classes: $inp.data("extraClasses"),
-        };
-        config_from_data.values = config_from_data.values && config_from_data.values.split(",");
+			extra_classes: $inp.data("extraClasses"),
+		};
+		config_from_data.values = config_from_data.values && config_from_data.values.split(",");
 
-        for (prop in config_from_data) {
-            if (config_from_data.hasOwnProperty(prop)) {
-                if (config_from_data[prop] === undefined || config_from_data[prop] === "") {
-                    delete config_from_data[prop];
-                }
-            }
-        }
+		for (prop in config_from_data) {
+			if (config_from_data.hasOwnProperty(prop)) {
+				if (config_from_data[prop] === undefined || config_from_data[prop] === "") {
+					delete config_from_data[prop];
+				}
+			}
+		}
 
 
-        // input value extends default config
-        if (val !== undefined && val !== "") {
-            val = val.split(config_from_data.input_values_separator || options.input_values_separator || ";");
+		// input value extends default config
+		if (val !== undefined && val !== "") {
+			val = val.split(config_from_data.input_values_separator || options.input_values_separator || ";");
 
-            if (val[0] && val[0] == +val[0]) {
-                val[0] = +val[0];
-            }
-            if (val[1] && val[1] == +val[1]) {
-                val[1] = +val[1];
-            }
+			if (val[0] && val[0] == +val[0]) {
+				val[0] = +val[0];
+			}
+			if (val[1] && val[1] == +val[1]) {
+				val[1] = +val[1];
+			}
 
-            if (options && options.values && options.values.length) {
-                config.from = val[0] && options.values.indexOf(val[0]);
-                config.to = val[1] && options.values.indexOf(val[1]);
-            } else {
-                config.from = val[0] && +val[0];
-                config.to = val[1] && +val[1];
-            }
-        }
+			if (options && options.values && options.values.length) {
+				config.from = val[0] && options.values.indexOf(val[0]);
+				config.to = val[1] && options.values.indexOf(val[1]);
+			} else {
+				config.from = val[0] && +val[0];
+				config.to = val[1] && +val[1];
+			}
+		}
 
 
 
-        // js config extends default config
-        $.extend(config, options);
+		// js config extends default config
+		$.extend(config, options);
 
 
-        // data config extends config
-        $.extend(config, config_from_data);
-        this.options = config;
+		// data config extends config
+		$.extend(config, config_from_data);
+		this.options = config;
 
 
 
-        // validate config, to be sure that all data types are correct
-        this.update_check = {};
-        this.validate();
-
-
-
-        // default result object, returned to callbacks
-        this.result = {
-            input: this.$cache.input,
-            slider: null,
+		// validate config, to be sure that all data types are correct
+		this.update_check = {};
+		this.validate();
+
+
+
+		// default result object, returned to callbacks
+		this.result = {
+			input: this.$cache.input,
+			slider: null,
 
-            min: this.options.min,
-            max: this.options.max,
-
-            from: this.options.from,
-            from_percent: 0,
-            from_value: null,
-
-            to: this.options.to,
-            to_percent: 0,
-            to_value: null
-        };
-
-
-
-        this.init();
-    };
-
-    IonRangeSlider.prototype = {
-
-        /**
-         * Starts or updates the plugin instance
-         *
-         * @param [is_update] {boolean}
-         */
-        init: function (is_update) {
-            this.no_diapason = false;
-            this.coords.p_step = this.convertToPercent(this.options.step, true);
-
-            this.target = "base";
-
-            this.toggleInput();
-            this.append();
-            this.setMinMax();
-
-            if (is_update) {
-                this.force_redraw = true;
-                this.calc(true);
-
-                // callbacks called
-                this.callOnUpdate();
-            } else {
-                this.force_redraw = true;
-                this.calc(true);
-
-                // callbacks called
-                this.callOnStart();
-            }
-
-            this.updateScene();
-        },
-
-        /**
-         * Appends slider template to a DOM
-         */
-        append: function () {
-            var container_html = '<span class="irs irs--' + this.options.skin + ' js-irs-' + this.plugin_count + ' ' + this.options.extra_classes + '"></span>';
-            this.$cache.input.before(container_html);
-            this.$cache.input.prop("readonly", true);
-            this.$cache.cont = this.$cache.input.prev();
-            this.result.slider = this.$cache.cont;
-
-            this.$cache.cont.html(base_html);
-            this.$cache.rs = this.$cache.cont.find(".irs");
-            this.$cache.min = this.$cache.cont.find(".irs-min");
-            this.$cache.max = this.$cache.cont.find(".irs-max");
-            this.$cache.from = this.$cache.cont.find(".irs-from");
-            this.$cache.to = this.$cache.cont.find(".irs-to");
-            this.$cache.single = this.$cache.cont.find(".irs-single");
-            this.$cache.line = this.$cache.cont.find(".irs-line");
-            this.$cache.grid = this.$cache.cont.find(".irs-grid");
-
-            if (this.options.type === "single") {
-                this.$cache.cont.append(single_html);
-                this.$cache.bar = this.$cache.cont.find(".irs-bar");
-                this.$cache.edge = this.$cache.cont.find(".irs-bar-edge");
-                this.$cache.s_single = this.$cache.cont.find(".single");
-                this.$cache.from[0].style.visibility = "hidden";
-                this.$cache.to[0].style.visibility = "hidden";
-                this.$cache.shad_single = this.$cache.cont.find(".shadow-single");
-            } else {
-                this.$cache.cont.append(double_html);
-                this.$cache.bar = this.$cache.cont.find(".irs-bar");
-                this.$cache.s_from = this.$cache.cont.find(".from");
-                this.$cache.s_to = this.$cache.cont.find(".to");
-                this.$cache.shad_from = this.$cache.cont.find(".shadow-from");
-                this.$cache.shad_to = this.$cache.cont.find(".shadow-to");
-
-                this.setTopHandler();
-            }
-
-            if (this.options.hide_from_to) {
-                this.$cache.from[0].style.display = "none";
-                this.$cache.to[0].style.display = "none";
-                this.$cache.single[0].style.display = "none";
-            }
-
-            this.appendGrid();
-
-            if (this.options.disable) {
-                this.appendDisableMask();
-                this.$cache.input[0].disabled = true;
-            } else {
-                this.$cache.input[0].disabled = false;
-                this.removeDisableMask();
-                this.bindEvents();
-            }
-
-            // block only if not disabled
-            if (!this.options.disable) {
-                if (this.options.block) {
-                    this.appendDisableMask();
-                } else {
-                    this.removeDisableMask();
-                }
-            }
-
-            if (this.options.drag_interval) {
-                this.$cache.bar[0].style.cursor = "ew-resize";
-            }
-        },
-
-        /**
-         * Determine which handler has a priority
-         * works only for double slider type
-         */
-        setTopHandler: function () {
-            var min = this.options.min,
-                max = this.options.max,
-                from = this.options.from,
-                to = this.options.to;
-
-            if (from > min && to === max) {
-                this.$cache.s_from.addClass("type_last");
-            } else if (to < max) {
-                this.$cache.s_to.addClass("type_last");
-            }
-        },
-
-        /**
-         * Determine which handles was clicked last
-         * and which handler should have hover effect
-         *
-         * @param target {String}
-         */
-        changeLevel: function (target) {
-            switch (target) {
-                case "single":
-                    this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake);
-                    this.$cache.s_single.addClass("state_hover");
-                    break;
-                case "from":
-                    this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);
-                    this.$cache.s_from.addClass("state_hover");
-                    this.$cache.s_from.addClass("type_last");
-                    this.$cache.s_to.removeClass("type_last");
-                    break;
-                case "to":
-                    this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake);
-                    this.$cache.s_to.addClass("state_hover");
-                    this.$cache.s_to.addClass("type_last");
-                    this.$cache.s_from.removeClass("type_last");
-                    break;
-                case "both":
-                    this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);
-                    this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer);
-                    this.$cache.s_to.removeClass("type_last");
-                    this.$cache.s_from.removeClass("type_last");
-                    break;
-            }
-        },
-
-        /**
-         * Then slider is disabled
-         * appends extra layer with opacity
-         */
-        appendDisableMask: function () {
-            this.$cache.cont.append(disable_html);
-            this.$cache.cont.addClass("irs-disabled");
-        },
-
-        /**
-         * Then slider is not disabled
-         * remove disable mask
-         */
-        removeDisableMask: function () {
-            this.$cache.cont.remove(".irs-disable-mask");
-            this.$cache.cont.removeClass("irs-disabled");
-        },
-
-        /**
-         * Remove slider instance
-         * and unbind all events
-         */
-        remove: function () {
-            this.$cache.cont.remove();
-            this.$cache.cont = null;
-
-            this.$cache.line.off("keydown.irs_" + this.plugin_count);
-
-            this.$cache.body.off("touchmove.irs_" + this.plugin_count);
-            this.$cache.body.off("mousemove.irs_" + this.plugin_count);
-
-            this.$cache.win.off("touchend.irs_" + this.plugin_count);
-            this.$cache.win.off("mouseup.irs_" + this.plugin_count);
-
-            if (is_old_ie) {
-                this.$cache.body.off("mouseup.irs_" + this.plugin_count);
-                this.$cache.body.off("mouseleave.irs_" + this.plugin_count);
-            }
-
-            this.$cache.grid_labels = [];
-            this.coords.big = [];
-            this.coords.big_w = [];
-            this.coords.big_p = [];
-            this.coords.big_x = [];
-
-            cancelAnimationFrame(this.raf_id);
-        },
-
-        /**
-         * bind all slider events
-         */
-        bindEvents: function () {
-            if (this.no_diapason) {
-                return;
-            }
-
-            this.$cache.body.on("touchmove.irs_" + this.plugin_count, this.pointerMove.bind(this));
-            this.$cache.body.on("mousemove.irs_" + this.plugin_count, this.pointerMove.bind(this));
-
-            this.$cache.win.on("touchend.irs_" + this.plugin_count, this.pointerUp.bind(this));
-            this.$cache.win.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this));
-
-            this.$cache.line.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-            this.$cache.line.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-
-            this.$cache.line.on("focus.irs_" + this.plugin_count, this.pointerFocus.bind(this));
-
-            if (this.options.drag_interval && this.options.type === "double") {
-                this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "both"));
-                this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "both"));
-            } else {
-                this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-                this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-            }
-
-            if (this.options.type === "single") {
-                this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
-                this.$cache.s_single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
-                this.$cache.shad_single.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-
-                this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
-                this.$cache.s_single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
-                this.$cache.edge.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-                this.$cache.shad_single.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-            } else {
-                this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, null));
-                this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, null));
-
-                this.$cache.from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
-                this.$cache.s_from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
-                this.$cache.to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
-                this.$cache.s_to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
-                this.$cache.shad_from.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-                this.$cache.shad_to.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-
-                this.$cache.from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
-                this.$cache.s_from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
-                this.$cache.to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
-                this.$cache.s_to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
-                this.$cache.shad_from.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-                this.$cache.shad_to.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
-            }
-
-            if (this.options.keyboard) {
-                this.$cache.line.on("keydown.irs_" + this.plugin_count, this.key.bind(this, "keyboard"));
-            }
-
-            if (is_old_ie) {
-                this.$cache.body.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this));
-                this.$cache.body.on("mouseleave.irs_" + this.plugin_count, this.pointerUp.bind(this));
-            }
-        },
-
-        /**
-         * Focus with tabIndex
-         *
-         * @param e {Object} event object
-         */
-        pointerFocus: function (e) {
-            if (!this.target) {
-                var x;
-                var $handle;
-
-                if (this.options.type === "single") {
-                    $handle = this.$cache.single;
-                } else {
-                    $handle = this.$cache.from;
-                }
-
-                x = $handle.offset().left;
-                x += ($handle.width() / 2) - 1;
-
-                this.pointerClick("single", {preventDefault: function () {}, pageX: x});
-            }
-        },
-
-        /**
-         * Mousemove or touchmove
-         * only for handlers
-         *
-         * @param e {Object} event object
-         */
-        pointerMove: function (e) {
-            if (!this.dragging) {
-                return;
-            }
-
-            var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
-            this.coords.x_pointer = x - this.coords.x_gap;
-
-            this.calc();
-        },
-
-        /**
-         * Mouseup or touchend
-         * only for handlers
-         *
-         * @param e {Object} event object
-         */
-        pointerUp: function (e) {
-            if (this.current_plugin !== this.plugin_count) {
-                return;
-            }
-
-            if (this.is_active) {
-                this.is_active = false;
-            } else {
-                return;
-            }
-
-            this.$cache.cont.find(".state_hover").removeClass("state_hover");
-
-            this.force_redraw = true;
-
-            if (is_old_ie) {
-                $("*").prop("unselectable", false);
-            }
-
-            this.updateScene();
-            this.restoreOriginalMinInterval();
-
-            // callbacks call
-            if ($.contains(this.$cache.cont[0], e.target) || this.dragging) {
-                this.callOnFinish();
-            }
-
-            this.dragging = false;
-        },
-
-        /**
-         * Mousedown or touchstart
-         * only for handlers
-         *
-         * @param target {String|null}
-         * @param e {Object} event object
-         */
-        pointerDown: function (target, e) {
-            e.preventDefault();
-            var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
-            if (e.button === 2) {
-                return;
-            }
-
-            if (target === "both") {
-                this.setTempMinInterval();
-            }
-
-            if (!target) {
-                target = this.target || "from";
-            }
-
-            this.current_plugin = this.plugin_count;
-            this.target = target;
-
-            this.is_active = true;
-            this.dragging = true;
-
-            this.coords.x_gap = this.$cache.rs.offset().left;
-            this.coords.x_pointer = x - this.coords.x_gap;
-
-            this.calcPointerPercent();
-            this.changeLevel(target);
-
-            if (is_old_ie) {
-                $("*").prop("unselectable", true);
-            }
-
-            this.$cache.line.trigger("focus");
-
-            this.updateScene();
-        },
-
-        /**
-         * Mousedown or touchstart
-         * for other slider elements, like diapason line
-         *
-         * @param target {String}
-         * @param e {Object} event object
-         */
-        pointerClick: function (target, e) {
-            e.preventDefault();
-            var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
-            if (e.button === 2) {
-                return;
-            }
-
-            this.current_plugin = this.plugin_count;
-            this.target = target;
-
-            this.is_click = true;
-            this.coords.x_gap = this.$cache.rs.offset().left;
-            this.coords.x_pointer = +(x - this.coords.x_gap).toFixed();
-
-            this.force_redraw = true;
-            this.calc();
-
-            this.$cache.line.trigger("focus");
-        },
-
-        /**
-         * Keyborard controls for focused slider
-         *
-         * @param target {String}
-         * @param e {Object} event object
-         * @returns {boolean|undefined}
-         */
-        key: function (target, e) {
-            if (this.current_plugin !== this.plugin_count || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
-                return;
-            }
-
-            switch (e.which) {
-                case 83: // W
-                case 65: // A
-                case 40: // DOWN
-                case 37: // LEFT
-                    e.preventDefault();
-                    this.moveByKey(false);
-                    break;
-
-                case 87: // S
-                case 68: // D
-                case 38: // UP
-                case 39: // RIGHT
-                    e.preventDefault();
-                    this.moveByKey(true);
-                    break;
-            }
-
-            return true;
-        },
-
-        /**
-         * Move by key
-         *
-         * @param right {boolean} direction to move
-         */
-        moveByKey: function (right) {
-            var p = this.coords.p_pointer;
-            var p_step = (this.options.max - this.options.min) / 100;
-            p_step = this.options.step / p_step;
-
-            if (right) {
-                p += p_step;
-            } else {
-                p -= p_step;
-            }
-
-            this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * p);
-            this.is_key = true;
-            this.calc();
-        },
-
-        /**
-         * Set visibility and content
-         * of Min and Max labels
-         */
-        setMinMax: function () {
-            if (!this.options) {
-                return;
-            }
-
-            if (this.options.hide_min_max) {
-                this.$cache.min[0].style.display = "none";
-                this.$cache.max[0].style.display = "none";
-                return;
-            }
-
-            if (this.options.values.length) {
-                this.$cache.min.html(this.decorate(this.options.p_values[this.options.min]));
-                this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));
-            } else {
-                var min_pretty = this._prettify(this.options.min);
-                var max_pretty = this._prettify(this.options.max);
-
-                this.result.min_pretty = min_pretty;
-                this.result.max_pretty = max_pretty;
-
-                this.$cache.min.html(this.decorate(min_pretty, this.options.min));
-                this.$cache.max.html(this.decorate(max_pretty, this.options.max));
-            }
-
-            this.labels.w_min = this.$cache.min.outerWidth(false);
-            this.labels.w_max = this.$cache.max.outerWidth(false);
-        },
-
-        /**
-         * Then dragging interval, prevent interval collapsing
-         * using min_interval option
-         */
-        setTempMinInterval: function () {
-            var interval = this.result.to - this.result.from;
-
-            if (this.old_min_interval === null) {
-                this.old_min_interval = this.options.min_interval;
-            }
-
-            this.options.min_interval = interval;
-        },
-
-        /**
-         * Restore min_interval option to original
-         */
-        restoreOriginalMinInterval: function () {
-            if (this.old_min_interval !== null) {
-                this.options.min_interval = this.old_min_interval;
-                this.old_min_interval = null;
-            }
-        },
-
-
-
-        // =============================================================================================================
-        // Calculations
-
-        /**
-         * All calculations and measures start here
-         *
-         * @param update {boolean=}
-         */
-        calc: function (update) {
-            if (!this.options) {
-                return;
-            }
-
-            this.calc_count++;
-
-            if (this.calc_count === 10 || update) {
-                this.calc_count = 0;
-                this.coords.w_rs = this.$cache.rs.outerWidth(false);
-
-                this.calcHandlePercent();
-            }
-
-            if (!this.coords.w_rs) {
-                return;
-            }
-
-            this.calcPointerPercent();
-            var handle_x = this.getHandleX();
-
-
-            if (this.target === "both") {
-                this.coords.p_gap = 0;
-                handle_x = this.getHandleX();
-            }
-
-            if (this.target === "click") {
-                this.coords.p_gap = this.coords.p_handle / 2;
-                handle_x = this.getHandleX();
-
-                if (this.options.drag_interval) {
-                    this.target = "both_one";
-                } else {
-                    this.target = this.chooseHandle(handle_x);
-                }
-            }
-
-            switch (this.target) {
-                case "base":
-                    var w = (this.options.max - this.options.min) / 100,
-                        f = (this.result.from - this.options.min) / w,
-                        t = (this.result.to - this.options.min) / w;
-
-                    this.coords.p_single_real = this.toFixed(f);
-                    this.coords.p_from_real = this.toFixed(f);
-                    this.coords.p_to_real = this.toFixed(t);
-
-                    this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);
-                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
-                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
-
-                    this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);
-                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
-                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
-
-                    this.target = null;
-
-                    break;
-
-                case "single":
-                    if (this.options.from_fixed) {
-                        break;
-                    }
-
-                    this.coords.p_single_real = this.convertToRealPercent(handle_x);
-                    this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real);
-                    this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);
-
-                    this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);
-
-                    break;
-
-                case "from":
-                    if (this.options.from_fixed) {
-                        break;
-                    }
-
-                    this.coords.p_from_real = this.convertToRealPercent(handle_x);
-                    this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);
-                    if (this.coords.p_from_real > this.coords.p_to_real) {
-                        this.coords.p_from_real = this.coords.p_to_real;
-                    }
-                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
-                    this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
-                    this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
-
-                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
-
-                    break;
-
-                case "to":
-                    if (this.options.to_fixed) {
-                        break;
-                    }
-
-                    this.coords.p_to_real = this.convertToRealPercent(handle_x);
-                    this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);
-                    if (this.coords.p_to_real < this.coords.p_from_real) {
-                        this.coords.p_to_real = this.coords.p_from_real;
-                    }
-                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
-                    this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
-                    this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
-
-                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
-
-                    break;
-
-                case "both":
-                    if (this.options.from_fixed || this.options.to_fixed) {
-                        break;
-                    }
-
-                    handle_x = this.toFixed(handle_x + (this.coords.p_handle * 0.001));
-
-                    this.coords.p_from_real = this.convertToRealPercent(handle_x) - this.coords.p_gap_left;
-                    this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);
-                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
-                    this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
-                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
-
-                    this.coords.p_to_real = this.convertToRealPercent(handle_x) + this.coords.p_gap_right;
-                    this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);
-                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
-                    this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
-                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
-
-                    break;
-
-                case "both_one":
-                    if (this.options.from_fixed || this.options.to_fixed) {
-                        break;
-                    }
-
-                    var real_x = this.convertToRealPercent(handle_x),
-                        from = this.result.from_percent,
-                        to = this.result.to_percent,
-                        full = to - from,
-                        half = full / 2,
-                        new_from = real_x - half,
-                        new_to = real_x + half;
-
-                    if (new_from < 0) {
-                        new_from = 0;
-                        new_to = new_from + full;
-                    }
-
-                    if (new_to > 100) {
-                        new_to = 100;
-                        new_from = new_to - full;
-                    }
-
-                    this.coords.p_from_real = this.calcWithStep(new_from);
-                    this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
-                    this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
-
-                    this.coords.p_to_real = this.calcWithStep(new_to);
-                    this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
-                    this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
-
-                    break;
-            }
-
-            if (this.options.type === "single") {
-                this.coords.p_bar_x = (this.coords.p_handle / 2);
-                this.coords.p_bar_w = this.coords.p_single_fake;
-
-                this.result.from_percent = this.coords.p_single_real;
-                this.result.from = this.convertToValue(this.coords.p_single_real);
-                this.result.from_pretty = this._prettify(this.result.from);
-
-                if (this.options.values.length) {
-                    this.result.from_value = this.options.values[this.result.from];
-                }
-            } else {
-                this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + (this.coords.p_handle / 2));
-                this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake);
-
-                this.result.from_percent = this.coords.p_from_real;
-                this.result.from = this.convertToValue(this.coords.p_from_real);
-                this.result.from_pretty = this._prettify(this.result.from);
-                this.result.to_percent = this.coords.p_to_real;
-                this.result.to = this.convertToValue(this.coords.p_to_real);
-                this.result.to_pretty = this._prettify(this.result.to);
-
-                if (this.options.values.length) {
-                    this.result.from_value = this.options.values[this.result.from];
-                    this.result.to_value = this.options.values[this.result.to];
-                }
-            }
-
-            this.calcMinMax();
-            this.calcLabels();
-        },
-
-
-        /**
-         * calculates pointer X in percent
-         */
-        calcPointerPercent: function () {
-            if (!this.coords.w_rs) {
-                this.coords.p_pointer = 0;
-                return;
-            }
-
-            if (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer)  ) {
-                this.coords.x_pointer = 0;
-            } else if (this.coords.x_pointer > this.coords.w_rs) {
-                this.coords.x_pointer = this.coords.w_rs;
-            }
-
-            this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100);
-        },
-
-        convertToRealPercent: function (fake) {
-            var full = 100 - this.coords.p_handle;
-            return fake / full * 100;
-        },
-
-        convertToFakePercent: function (real) {
-            var full = 100 - this.coords.p_handle;
-            return real / 100 * full;
-        },
-
-        getHandleX: function () {
-            var max = 100 - this.coords.p_handle,
-                x = this.toFixed(this.coords.p_pointer - this.coords.p_gap);
-
-            if (x < 0) {
-                x = 0;
-            } else if (x > max) {
-                x = max;
-            }
-
-            return x;
-        },
-
-        calcHandlePercent: function () {
-            if (this.options.type === "single") {
-                this.coords.w_handle = this.$cache.s_single.outerWidth(false);
-            } else {
-                this.coords.w_handle = this.$cache.s_from.outerWidth(false);
-            }
-
-            this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);
-        },
-
-        /**
-         * Find closest handle to pointer click
-         *
-         * @param real_x {Number}
-         * @returns {String}
-         */
-        chooseHandle: function (real_x) {
-            if (this.options.type === "single") {
-                return "single";
-            } else {
-                var m_point = this.coords.p_from_real + ((this.coords.p_to_real - this.coords.p_from_real) / 2);
-                if (real_x >= m_point) {
-                    return this.options.to_fixed ? "from" : "to";
-                } else {
-                    return this.options.from_fixed ? "to" : "from";
-                }
-            }
-        },
-
-        /**
-         * Measure Min and Max labels width in percent
-         */
-        calcMinMax: function () {
-            if (!this.coords.w_rs) {
-                return;
-            }
-
-            this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100;
-            this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100;
-        },
-
-        /**
-         * Measure labels width and X in percent
-         */
-        calcLabels: function () {
-            if (!this.coords.w_rs || this.options.hide_from_to) {
-                return;
-            }
-
-            if (this.options.type === "single") {
-
-                this.labels.w_single = this.$cache.single.outerWidth(false);
-                this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;
-                this.labels.p_single_left = this.coords.p_single_fake + (this.coords.p_handle / 2) - (this.labels.p_single_fake / 2);
-                this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);
-
-            } else {
-
-                this.labels.w_from = this.$cache.from.outerWidth(false);
-                this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100;
-                this.labels.p_from_left = this.coords.p_from_fake + (this.coords.p_handle / 2) - (this.labels.p_from_fake / 2);
-                this.labels.p_from_left = this.toFixed(this.labels.p_from_left);
-                this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake);
-
-                this.labels.w_to = this.$cache.to.outerWidth(false);
-                this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100;
-                this.labels.p_to_left = this.coords.p_to_fake + (this.coords.p_handle / 2) - (this.labels.p_to_fake / 2);
-                this.labels.p_to_left = this.toFixed(this.labels.p_to_left);
-                this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake);
-
-                this.labels.w_single = this.$cache.single.outerWidth(false);
-                this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;
-                this.labels.p_single_left = ((this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2) - (this.labels.p_single_fake / 2);
-                this.labels.p_single_left = this.toFixed(this.labels.p_single_left);
-                this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);
-
-            }
-        },
-
-
-
-        // =============================================================================================================
-        // Drawings
-
-        /**
-         * Main function called in request animation frame
-         * to update everything
-         */
-        updateScene: function () {
-            if (this.raf_id) {
-                cancelAnimationFrame(this.raf_id);
-                this.raf_id = null;
-            }
-
-            clearTimeout(this.update_tm);
-            this.update_tm = null;
-
-            if (!this.options) {
-                return;
-            }
-
-            this.drawHandles();
-
-            if (this.is_active) {
-                this.raf_id = requestAnimationFrame(this.updateScene.bind(this));
-            } else {
-                this.update_tm = setTimeout(this.updateScene.bind(this), 300);
-            }
-        },
-
-        /**
-         * Draw handles
-         */
-        drawHandles: function () {
-            this.coords.w_rs = this.$cache.rs.outerWidth(false);
-
-            if (!this.coords.w_rs) {
-                return;
-            }
-
-            if (this.coords.w_rs !== this.coords.w_rs_old) {
-                this.target = "base";
-                this.is_resize = true;
-            }
-
-            if (this.coords.w_rs !== this.coords.w_rs_old || this.force_redraw) {
-                this.setMinMax();
-                this.calc(true);
-                this.drawLabels();
-                if (this.options.grid) {
-                    this.calcGridMargin();
-                    this.calcGridLabels();
-                }
-                this.force_redraw = true;
-                this.coords.w_rs_old = this.coords.w_rs;
-                this.drawShadow();
-            }
-
-            if (!this.coords.w_rs) {
-                return;
-            }
-
-            if (!this.dragging && !this.force_redraw && !this.is_key) {
-                return;
-            }
-
-            if (this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) {
-
-                this.drawLabels();
-
-                this.$cache.bar[0].style.left = this.coords.p_bar_x + "%";
-                this.$cache.bar[0].style.width = this.coords.p_bar_w + "%";
-
-                if (this.options.type === "single") {
-                    this.$cache.bar[0].style.left = 0;
-                    this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + "%";
-
-                    this.$cache.s_single[0].style.left = this.coords.p_single_fake + "%";
-
-                    this.$cache.single[0].style.left = this.labels.p_single_left + "%";
-                } else {
-                    this.$cache.s_from[0].style.left = this.coords.p_from_fake + "%";
-                    this.$cache.s_to[0].style.left = this.coords.p_to_fake + "%";
-
-                    if (this.old_from !== this.result.from || this.force_redraw) {
-                        this.$cache.from[0].style.left = this.labels.p_from_left + "%";
-                    }
-                    if (this.old_to !== this.result.to || this.force_redraw) {
-                        this.$cache.to[0].style.left = this.labels.p_to_left + "%";
-                    }
-
-                    this.$cache.single[0].style.left = this.labels.p_single_left + "%";
-                }
-
-                this.writeToInput();
-
-                if ((this.old_from !== this.result.from || this.old_to !== this.result.to) && !this.is_start) {
-                    this.$cache.input.trigger("change");
-                    this.$cache.input.trigger("input");
-                }
-
-                this.old_from = this.result.from;
-                this.old_to = this.result.to;
-
-                // callbacks call
-                if (!this.is_resize && !this.is_update && !this.is_start && !this.is_finish) {
-                    this.callOnChange();
-                }
-                if (this.is_key || this.is_click) {
-                    this.is_key = false;
-                    this.is_click = false;
-                    this.callOnFinish();
-                }
-
-                this.is_update = false;
-                this.is_resize = false;
-                this.is_finish = false;
-            }
-
-            this.is_start = false;
-            this.is_key = false;
-            this.is_click = false;
-            this.force_redraw = false;
-        },
-
-        /**
-         * Draw labels
-         * measure labels collisions
-         * collapse close labels
-         */
-        drawLabels: function () {
-            if (!this.options) {
-                return;
-            }
-
-            var values_num = this.options.values.length;
-            var p_values = this.options.p_values;
-            var text_single;
-            var text_from;
-            var text_to;
-            var from_pretty;
-            var to_pretty;
-
-            if (this.options.hide_from_to) {
-                return;
-            }
-
-            if (this.options.type === "single") {
-
-                if (values_num) {
-                    text_single = this.decorate(p_values[this.result.from]);
-                    this.$cache.single.html(text_single);
-                } else {
-                    from_pretty = this._prettify(this.result.from);
-
-                    text_single = this.decorate(from_pretty, this.result.from);
-                    this.$cache.single.html(text_single);
-                }
-
-                this.calcLabels();
-
-                if (this.labels.p_single_left < this.labels.p_min + 1) {
-                    this.$cache.min[0].style.visibility = "hidden";
-                } else {
-                    this.$cache.min[0].style.visibility = "visible";
-                }
-
-                if (this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1) {
-                    this.$cache.max[0].style.visibility = "hidden";
-                } else {
-                    this.$cache.max[0].style.visibility = "visible";
-                }
-
-            } else {
-
-                if (values_num) {
-
-                    if (this.options.decorate_both) {
-                        text_single = this.decorate(p_values[this.result.from]);
-                        text_single += this.options.values_separator;
-                        text_single += this.decorate(p_values[this.result.to]);
-                    } else {
-                        text_single = this.decorate(p_values[this.result.from] + this.options.values_separator + p_values[this.result.to]);
-                    }
-                    text_from = this.decorate(p_values[this.result.from]);
-                    text_to = this.decorate(p_values[this.result.to]);
-
-                    this.$cache.single.html(text_single);
-                    this.$cache.from.html(text_from);
-                    this.$cache.to.html(text_to);
-
-                } else {
-                    from_pretty = this._prettify(this.result.from);
-                    to_pretty = this._prettify(this.result.to);
-
-                    if (this.options.decorate_both) {
-                        text_single = this.decorate(from_pretty, this.result.from);
-                        text_single += this.options.values_separator;
-                        text_single += this.decorate(to_pretty, this.result.to);
-                    } else {
-                        text_single = this.decorate(from_pretty + this.options.values_separator + to_pretty, this.result.to);
-                    }
-                    text_from = this.decorate(from_pretty, this.result.from);
-                    text_to = this.decorate(to_pretty, this.result.to);
-
-                    this.$cache.single.html(text_single);
-                    this.$cache.from.html(text_from);
-                    this.$cache.to.html(text_to);
-
-                }
-
-                this.calcLabels();
-
-                var min = Math.min(this.labels.p_single_left, this.labels.p_from_left),
-                    single_left = this.labels.p_single_left + this.labels.p_single_fake,
-                    to_left = this.labels.p_to_left + this.labels.p_to_fake,
-                    max = Math.max(single_left, to_left);
-
-                if (this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left) {
-                    this.$cache.from[0].style.visibility = "hidden";
-                    this.$cache.to[0].style.visibility = "hidden";
-                    this.$cache.single[0].style.visibility = "visible";
-
-                    if (this.result.from === this.result.to) {
-                        if (this.target === "from") {
-                            this.$cache.from[0].style.visibility = "visible";
-                        } else if (this.target === "to") {
-                            this.$cache.to[0].style.visibility = "visible";
-                        } else if (!this.target) {
-                            this.$cache.from[0].style.visibility = "visible";
-                        }
-                        this.$cache.single[0].style.visibility = "hidden";
-                        max = to_left;
-                    } else {
-                        this.$cache.from[0].style.visibility = "hidden";
-                        this.$cache.to[0].style.visibility = "hidden";
-                        this.$cache.single[0].style.visibility = "visible";
-                        max = Math.max(single_left, to_left);
-                    }
-                } else {
-                    this.$cache.from[0].style.visibility = "visible";
-                    this.$cache.to[0].style.visibility = "visible";
-                    this.$cache.single[0].style.visibility = "hidden";
-                }
-
-                if (min < this.labels.p_min + 1) {
-                    this.$cache.min[0].style.visibility = "hidden";
-                } else {
-                    this.$cache.min[0].style.visibility = "visible";
-                }
-
-                if (max > 100 - this.labels.p_max - 1) {
-                    this.$cache.max[0].style.visibility = "hidden";
-                } else {
-                    this.$cache.max[0].style.visibility = "visible";
-                }
-
-            }
-        },
-
-        /**
-         * Draw shadow intervals
-         */
-        drawShadow: function () {
-            var o = this.options,
-                c = this.$cache,
-
-                is_from_min = typeof o.from_min === "number" && !isNaN(o.from_min),
-                is_from_max = typeof o.from_max === "number" && !isNaN(o.from_max),
-                is_to_min = typeof o.to_min === "number" && !isNaN(o.to_min),
-                is_to_max = typeof o.to_max === "number" && !isNaN(o.to_max),
-
-                from_min,
-                from_max,
-                to_min,
-                to_max;
-
-            if (o.type === "single") {
-                if (o.from_shadow && (is_from_min || is_from_max)) {
-                    from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);
-                    from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;
-                    from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));
-                    from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));
-                    from_min = from_min + (this.coords.p_handle / 2);
-
-                    c.shad_single[0].style.display = "block";
-                    c.shad_single[0].style.left = from_min + "%";
-                    c.shad_single[0].style.width = from_max + "%";
-                } else {
-                    c.shad_single[0].style.display = "none";
-                }
-            } else {
-                if (o.from_shadow && (is_from_min || is_from_max)) {
-                    from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);
-                    from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;
-                    from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));
-                    from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));
-                    from_min = from_min + (this.coords.p_handle / 2);
-
-                    c.shad_from[0].style.display = "block";
-                    c.shad_from[0].style.left = from_min + "%";
-                    c.shad_from[0].style.width = from_max + "%";
-                } else {
-                    c.shad_from[0].style.display = "none";
-                }
-
-                if (o.to_shadow && (is_to_min || is_to_max)) {
-                    to_min = this.convertToPercent(is_to_min ? o.to_min : o.min);
-                    to_max = this.convertToPercent(is_to_max ? o.to_max : o.max) - to_min;
-                    to_min = this.toFixed(to_min - (this.coords.p_handle / 100 * to_min));
-                    to_max = this.toFixed(to_max - (this.coords.p_handle / 100 * to_max));
-                    to_min = to_min + (this.coords.p_handle / 2);
-
-                    c.shad_to[0].style.display = "block";
-                    c.shad_to[0].style.left = to_min + "%";
-                    c.shad_to[0].style.width = to_max + "%";
-                } else {
-                    c.shad_to[0].style.display = "none";
-                }
-            }
-        },
-
-
-
-        /**
-         * Write values to input element
-         */
-        writeToInput: function () {
-            if (this.options.type === "single") {
-                if (this.options.values.length) {
-                    this.$cache.input.prop("value", this.result.from_value);
-                } else {
-                    this.$cache.input.prop("value", this.result.from);
-                }
-                this.$cache.input.data("from", this.result.from);
-            } else {
-                if (this.options.values.length) {
-                    this.$cache.input.prop("value", this.result.from_value + this.options.input_values_separator + this.result.to_value);
-                } else {
-                    this.$cache.input.prop("value", this.result.from + this.options.input_values_separator + this.result.to);
-                }
-                this.$cache.input.data("from", this.result.from);
-                this.$cache.input.data("to", this.result.to);
-            }
-        },
-
-
-
-        // =============================================================================================================
-        // Callbacks
-
-        callOnStart: function () {
-            this.writeToInput();
-
-            if (this.options.onStart && typeof this.options.onStart === "function") {
-                if (this.options.scope) {
-                    this.options.onStart.call(this.options.scope, this.result);
-                } else {
-                    this.options.onStart(this.result);
-                }
-            }
-        },
-        callOnChange: function () {
-            this.writeToInput();
-
-            if (this.options.onChange && typeof this.options.onChange === "function") {
-                if (this.options.scope) {
-                    this.options.onChange.call(this.options.scope, this.result);
-                } else {
-                    this.options.onChange(this.result);
-                }
-            }
-        },
-        callOnFinish: function () {
-            this.writeToInput();
-
-            if (this.options.onFinish && typeof this.options.onFinish === "function") {
-                if (this.options.scope) {
-                    this.options.onFinish.call(this.options.scope, this.result);
-                } else {
-                    this.options.onFinish(this.result);
-                }
-            }
-        },
-        callOnUpdate: function () {
-            this.writeToInput();
-
-            if (this.options.onUpdate && typeof this.options.onUpdate === "function") {
-                if (this.options.scope) {
-                    this.options.onUpdate.call(this.options.scope, this.result);
-                } else {
-                    this.options.onUpdate(this.result);
-                }
-            }
-        },
-
-
-
-
-        // =============================================================================================================
-        // Service methods
-
-        toggleInput: function () {
-            this.$cache.input.toggleClass("irs-hidden-input");
-
-            if (this.has_tab_index) {
-                this.$cache.input.prop("tabindex", -1);
-            } else {
-                this.$cache.input.removeProp("tabindex");
-            }
-
-            this.has_tab_index = !this.has_tab_index;
-        },
-
-        /**
-         * Convert real value to percent
-         *
-         * @param value {Number} X in real
-         * @param no_min {boolean=} don't use min value
-         * @returns {Number} X in percent
-         */
-        convertToPercent: function (value, no_min) {
-            var diapason = this.options.max - this.options.min,
-                one_percent = diapason / 100,
-                val, percent;
-
-            if (!diapason) {
-                this.no_diapason = true;
-                return 0;
-            }
-
-            if (no_min) {
-                val = value;
-            } else {
-                val = value - this.options.min;
-            }
-
-            percent = val / one_percent;
-
-            return this.toFixed(percent);
-        },
-
-        /**
-         * Convert percent to real values
-         *
-         * @param percent {Number} X in percent
-         * @returns {Number} X in real
-         */
-        convertToValue: function (percent) {
-            var min = this.options.min,
-                max = this.options.max,
-                min_decimals = min.toString().split(".")[1],
-                max_decimals = max.toString().split(".")[1],
-                min_length, max_length,
-                avg_decimals = 0,
-                abs = 0;
-
-            if (percent === 0) {
-                return this.options.min;
-            }
-            if (percent === 100) {
-                return this.options.max;
-            }
-
-
-            if (min_decimals) {
-                min_length = min_decimals.length;
-                avg_decimals = min_length;
-            }
-            if (max_decimals) {
-                max_length = max_decimals.length;
-                avg_decimals = max_length;
-            }
-            if (min_length && max_length) {
-                avg_decimals = (min_length >= max_length) ? min_length : max_length;
-            }
-
-            if (min < 0) {
-                abs = Math.abs(min);
-                min = +(min + abs).toFixed(avg_decimals);
-                max = +(max + abs).toFixed(avg_decimals);
-            }
-
-            var number = ((max - min) / 100 * percent) + min,
-                string = this.options.step.toString().split(".")[1],
-                result;
-
-            if (string) {
-                number = +number.toFixed(string.length);
-            } else {
-                number = number / this.options.step;
-                number = number * this.options.step;
-
-                number = +number.toFixed(0);
-            }
-
-            if (abs) {
-                number -= abs;
-            }
-
-            if (string) {
-                result = +number.toFixed(string.length);
-            } else {
-                result = this.toFixed(number);
-            }
-
-            if (result < this.options.min) {
-                result = this.options.min;
-            } else if (result > this.options.max) {
-                result = this.options.max;
-            }
-
-            return result;
-        },
-
-        /**
-         * Round percent value with step
-         *
-         * @param percent {Number}
-         * @returns percent {Number} rounded
-         */
-        calcWithStep: function (percent) {
-            var rounded = Math.round(percent / this.coords.p_step) * this.coords.p_step;
-
-            if (rounded > 100) {
-                rounded = 100;
-            }
-            if (percent === 100) {
-                rounded = 100;
-            }
-
-            return this.toFixed(rounded);
-        },
-
-        checkMinInterval: function (p_current, p_next, type) {
-            var o = this.options,
-                current,
-                next;
-
-            if (!o.min_interval) {
-                return p_current;
-            }
-
-            current = this.convertToValue(p_current);
-            next = this.convertToValue(p_next);
-
-            if (type === "from") {
-
-                if (next - current < o.min_interval) {
-                    current = next - o.min_interval;
-                }
-
-            } else {
-
-                if (current - next < o.min_interval) {
-                    current = next + o.min_interval;
-                }
-
-            }
-
-            return this.convertToPercent(current);
-        },
-
-        checkMaxInterval: function (p_current, p_next, type) {
-            var o = this.options,
-                current,
-                next;
-
-            if (!o.max_interval) {
-                return p_current;
-            }
-
-            current = this.convertToValue(p_current);
-            next = this.convertToValue(p_next);
-
-            if (type === "from") {
-
-                if (next - current > o.max_interval) {
-                    current = next - o.max_interval;
-                }
-
-            } else {
-
-                if (current - next > o.max_interval) {
-                    current = next + o.max_interval;
-                }
-
-            }
-
-            return this.convertToPercent(current);
-        },
-
-        checkDiapason: function (p_num, min, max) {
-            var num = this.convertToValue(p_num),
-                o = this.options;
-
-            if (typeof min !== "number") {
-                min = o.min;
-            }
-
-            if (typeof max !== "number") {
-                max = o.max;
-            }
-
-            if (num < min) {
-                num = min;
-            }
-
-            if (num > max) {
-                num = max;
-            }
-
-            return this.convertToPercent(num);
-        },
-
-        toFixed: function (num) {
-            num = num.toFixed(20);
-            return +num;
-        },
+			min: this.options.min,
+			max: this.options.max,
+
+			from: this.options.from,
+			from_percent: 0,
+			from_value: null,
+
+			to: this.options.to,
+			to_percent: 0,
+			to_value: null
+		};
+
+
+
+		this.init();
+	};
+
+	IonRangeSlider.prototype = {
+
+		/**
+		 * Starts or updates the plugin instance
+		 *
+		 * @param [is_update] {boolean}
+		 */
+		init: function (is_update) {
+			this.no_diapason = false;
+			this.coords.p_step = this.convertToPercent(this.options.step, true);
+
+			this.target = "base";
+
+			this.toggleInput();
+			this.append();
+			this.setMinMax();
+
+			if (is_update) {
+				this.force_redraw = true;
+				this.calc(true);
+
+				// callbacks called
+				this.callOnUpdate();
+			} else {
+				this.force_redraw = true;
+				this.calc(true);
+
+				// callbacks called
+				this.callOnStart();
+			}
+
+			this.updateScene();
+		},
+
+		/**
+		 * Appends slider template to a DOM
+		 */
+		append: function () {
+			var container_html = '<span class="irs irs--' + this.options.skin + ' js-irs-' + this.plugin_count + ' ' + this.options.extra_classes + '"></span>';
+			this.$cache.input.before(container_html);
+			this.$cache.input.prop("readonly", true);
+			this.$cache.cont = this.$cache.input.prev();
+			this.result.slider = this.$cache.cont;
+
+			this.$cache.cont.html(base_html);
+			this.$cache.rs = this.$cache.cont.find(".irs");
+			this.$cache.min = this.$cache.cont.find(".irs-min");
+			this.$cache.max = this.$cache.cont.find(".irs-max");
+			this.$cache.from = this.$cache.cont.find(".irs-from");
+			this.$cache.to = this.$cache.cont.find(".irs-to");
+			this.$cache.single = this.$cache.cont.find(".irs-single");
+			this.$cache.line = this.$cache.cont.find(".irs-line");
+			this.$cache.grid = this.$cache.cont.find(".irs-grid");
+
+			if (this.options.type === "single") {
+				this.$cache.cont.append(single_html);
+				this.$cache.bar = this.$cache.cont.find(".irs-bar");
+				this.$cache.edge = this.$cache.cont.find(".irs-bar-edge");
+				this.$cache.s_single = this.$cache.cont.find(".single");
+				this.$cache.from[0].style.visibility = "hidden";
+				this.$cache.to[0].style.visibility = "hidden";
+				this.$cache.shad_single = this.$cache.cont.find(".shadow-single");
+			} else {
+				this.$cache.cont.append(double_html);
+				this.$cache.bar = this.$cache.cont.find(".irs-bar");
+				this.$cache.s_from = this.$cache.cont.find(".from");
+				this.$cache.s_to = this.$cache.cont.find(".to");
+				this.$cache.shad_from = this.$cache.cont.find(".shadow-from");
+				this.$cache.shad_to = this.$cache.cont.find(".shadow-to");
+
+				this.setTopHandler();
+			}
+
+			if (this.options.hide_from_to) {
+				this.$cache.from[0].style.display = "none";
+				this.$cache.to[0].style.display = "none";
+				this.$cache.single[0].style.display = "none";
+			}
+
+			this.appendGrid();
+
+			if (this.options.disable) {
+				this.appendDisableMask();
+				this.$cache.input[0].disabled = true;
+			} else {
+				this.$cache.input[0].disabled = false;
+				this.removeDisableMask();
+				this.bindEvents();
+			}
+
+			// block only if not disabled
+			if (!this.options.disable) {
+				if (this.options.block) {
+					this.appendDisableMask();
+				} else {
+					this.removeDisableMask();
+				}
+			}
+
+			if (this.options.drag_interval) {
+				this.$cache.bar[0].style.cursor = "ew-resize";
+			}
+		},
+
+		/**
+		 * Determine which handler has a priority
+		 * works only for double slider type
+		 */
+		setTopHandler: function () {
+			var min = this.options.min,
+				max = this.options.max,
+				from = this.options.from,
+				to = this.options.to;
+
+			if (from > min && to === max) {
+				this.$cache.s_from.addClass("type_last");
+			} else if (to < max) {
+				this.$cache.s_to.addClass("type_last");
+			}
+		},
+
+		/**
+		 * Determine which handles was clicked last
+		 * and which handler should have hover effect
+		 *
+		 * @param target {String}
+		 */
+		changeLevel: function (target) {
+			switch (target) {
+				case "single":
+					this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake);
+					this.$cache.s_single.addClass("state_hover");
+					break;
+				case "from":
+					this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);
+					this.$cache.s_from.addClass("state_hover");
+					this.$cache.s_from.addClass("type_last");
+					this.$cache.s_to.removeClass("type_last");
+					break;
+				case "to":
+					this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake);
+					this.$cache.s_to.addClass("state_hover");
+					this.$cache.s_to.addClass("type_last");
+					this.$cache.s_from.removeClass("type_last");
+					break;
+				case "both":
+					this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);
+					this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer);
+					this.$cache.s_to.removeClass("type_last");
+					this.$cache.s_from.removeClass("type_last");
+					break;
+			}
+		},
+
+		/**
+		 * Then slider is disabled
+		 * appends extra layer with opacity
+		 */
+		appendDisableMask: function () {
+			this.$cache.cont.append(disable_html);
+			this.$cache.cont.addClass("irs-disabled");
+		},
+
+		/**
+		 * Then slider is not disabled
+		 * remove disable mask
+		 */
+		removeDisableMask: function () {
+			this.$cache.cont.remove(".irs-disable-mask");
+			this.$cache.cont.removeClass("irs-disabled");
+		},
+
+		/**
+		 * Remove slider instance
+		 * and unbind all events
+		 */
+		remove: function () {
+			this.$cache.cont.remove();
+			this.$cache.cont = null;
+
+			this.$cache.line.off("keydown.irs_" + this.plugin_count);
+
+			this.$cache.body.off("touchmove.irs_" + this.plugin_count);
+			this.$cache.body.off("mousemove.irs_" + this.plugin_count);
+
+			this.$cache.win.off("touchend.irs_" + this.plugin_count);
+			this.$cache.win.off("mouseup.irs_" + this.plugin_count);
+
+			if (is_old_ie) {
+				this.$cache.body.off("mouseup.irs_" + this.plugin_count);
+				this.$cache.body.off("mouseleave.irs_" + this.plugin_count);
+			}
+
+			this.$cache.grid_labels = [];
+			this.coords.big = [];
+			this.coords.big_w = [];
+			this.coords.big_p = [];
+			this.coords.big_x = [];
+
+			cancelAnimationFrame(this.raf_id);
+		},
+
+		/**
+		 * bind all slider events
+		 */
+		bindEvents: function () {
+			if (this.no_diapason) {
+				return;
+			}
+
+			this.$cache.body.on("touchmove.irs_" + this.plugin_count, this.pointerMove.bind(this));
+			this.$cache.body.on("mousemove.irs_" + this.plugin_count, this.pointerMove.bind(this));
+
+			this.$cache.win.on("touchend.irs_" + this.plugin_count, this.pointerUp.bind(this));
+			this.$cache.win.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this));
+
+			this.$cache.line.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+			this.$cache.line.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+
+			this.$cache.line.on("focus.irs_" + this.plugin_count, this.pointerFocus.bind(this));
+
+			if (this.options.drag_interval && this.options.type === "double") {
+				this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "both"));
+				this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "both"));
+			} else {
+				this.$cache.bar.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+				this.$cache.bar.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+			}
+
+			if (this.options.type === "single") {
+				this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
+				this.$cache.s_single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
+				this.$cache.shad_single.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+
+				this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
+				this.$cache.s_single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "single"));
+				this.$cache.edge.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+				this.$cache.shad_single.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+			} else {
+				this.$cache.single.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, null));
+				this.$cache.single.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, null));
+
+				this.$cache.from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
+				this.$cache.s_from.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
+				this.$cache.to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
+				this.$cache.s_to.on("touchstart.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
+				this.$cache.shad_from.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+				this.$cache.shad_to.on("touchstart.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+
+				this.$cache.from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
+				this.$cache.s_from.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "from"));
+				this.$cache.to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
+				this.$cache.s_to.on("mousedown.irs_" + this.plugin_count, this.pointerDown.bind(this, "to"));
+				this.$cache.shad_from.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+				this.$cache.shad_to.on("mousedown.irs_" + this.plugin_count, this.pointerClick.bind(this, "click"));
+			}
+
+			if (this.options.keyboard) {
+				this.$cache.line.on("keydown.irs_" + this.plugin_count, this.key.bind(this, "keyboard"));
+			}
+
+			if (is_old_ie) {
+				this.$cache.body.on("mouseup.irs_" + this.plugin_count, this.pointerUp.bind(this));
+				this.$cache.body.on("mouseleave.irs_" + this.plugin_count, this.pointerUp.bind(this));
+			}
+		},
+
+		/**
+		 * Focus with tabIndex
+		 *
+		 * @param e {Object} event object
+		 */
+		pointerFocus: function (e) {
+			if (!this.target) {
+				var x;
+				var $handle;
+
+				if (this.options.type === "single") {
+					$handle = this.$cache.single;
+				} else {
+					$handle = this.$cache.from;
+				}
+
+				x = $handle.offset().left;
+				x += ($handle.width() / 2) - 1;
+
+				this.pointerClick("single", {preventDefault: function () {}, pageX: x});
+			}
+		},
+
+		/**
+		 * Mousemove or touchmove
+		 * only for handlers
+		 *
+		 * @param e {Object} event object
+		 */
+		pointerMove: function (e) {
+			if (!this.dragging) {
+				return;
+			}
+
+			var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
+			this.coords.x_pointer = x - this.coords.x_gap;
+
+			this.calc();
+		},
+
+		/**
+		 * Mouseup or touchend
+		 * only for handlers
+		 *
+		 * @param e {Object} event object
+		 */
+		pointerUp: function (e) {
+			if (this.current_plugin !== this.plugin_count) {
+				return;
+			}
+
+			if (this.is_active) {
+				this.is_active = false;
+			} else {
+				return;
+			}
+
+			this.$cache.cont.find(".state_hover").removeClass("state_hover");
+
+			this.force_redraw = true;
+
+			if (is_old_ie) {
+				$("*").prop("unselectable", false);
+			}
+
+			this.updateScene();
+			this.restoreOriginalMinInterval();
+
+			// callbacks call
+			if ($.contains(this.$cache.cont[0], e.target) || this.dragging) {
+				this.callOnFinish();
+			}
+
+			this.dragging = false;
+		},
+
+		/**
+		 * Mousedown or touchstart
+		 * only for handlers
+		 *
+		 * @param target {String|null}
+		 * @param e {Object} event object
+		 */
+		pointerDown: function (target, e) {
+			e.preventDefault();
+			var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
+			if (e.button === 2) {
+				return;
+			}
+
+			if (target === "both") {
+				this.setTempMinInterval();
+			}
+
+			if (!target) {
+				target = this.target || "from";
+			}
+
+			this.current_plugin = this.plugin_count;
+			this.target = target;
+
+			this.is_active = true;
+			this.dragging = true;
+
+			this.coords.x_gap = this.$cache.rs.offset().left;
+			this.coords.x_pointer = x - this.coords.x_gap;
+
+			this.calcPointerPercent();
+			this.changeLevel(target);
+
+			if (is_old_ie) {
+				$("*").prop("unselectable", true);
+			}
+
+			this.$cache.line.trigger("focus");
+
+			this.updateScene();
+		},
+
+		/**
+		 * Mousedown or touchstart
+		 * for other slider elements, like diapason line
+		 *
+		 * @param target {String}
+		 * @param e {Object} event object
+		 */
+		pointerClick: function (target, e) {
+			e.preventDefault();
+			var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;
+			if (e.button === 2) {
+				return;
+			}
+
+			this.current_plugin = this.plugin_count;
+			this.target = target;
+
+			this.is_click = true;
+			this.coords.x_gap = this.$cache.rs.offset().left;
+			this.coords.x_pointer = +(x - this.coords.x_gap).toFixed();
+
+			this.force_redraw = true;
+			this.calc();
+
+			this.$cache.line.trigger("focus");
+		},
+
+		/**
+		 * Keyborard controls for focused slider
+		 *
+		 * @param target {String}
+		 * @param e {Object} event object
+		 * @returns {boolean|undefined}
+		 */
+		key: function (target, e) {
+			if (this.current_plugin !== this.plugin_count || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {
+				return;
+			}
+
+			switch (e.which) {
+				case 83: // W
+				case 65: // A
+				case 40: // DOWN
+				case 37: // LEFT
+					e.preventDefault();
+					this.moveByKey(false);
+					break;
+
+				case 87: // S
+				case 68: // D
+				case 38: // UP
+				case 39: // RIGHT
+					e.preventDefault();
+					this.moveByKey(true);
+					break;
+			}
+
+			return true;
+		},
+
+		/**
+		 * Move by key
+		 *
+		 * @param right {boolean} direction to move
+		 */
+		moveByKey: function (right) {
+			var p = this.coords.p_pointer;
+			var p_step = (this.options.max - this.options.min) / 100;
+			p_step = this.options.step / p_step;
+
+			if (right) {
+				p += p_step;
+			} else {
+				p -= p_step;
+			}
+
+			this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * p);
+			this.is_key = true;
+			this.calc();
+		},
+
+		/**
+		 * Set visibility and content
+		 * of Min and Max labels
+		 */
+		setMinMax: function () {
+			if (!this.options) {
+				return;
+			}
+
+			if (this.options.hide_min_max) {
+				this.$cache.min[0].style.display = "none";
+				this.$cache.max[0].style.display = "none";
+				return;
+			}
+
+			if (this.options.values.length) {
+				this.$cache.min.html(this.decorate(this.options.p_values[this.options.min]));
+				this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));
+			} else {
+				var min_pretty = this._prettify(this.options.min);
+				var max_pretty = this._prettify(this.options.max);
+
+				this.result.min_pretty = min_pretty;
+				this.result.max_pretty = max_pretty;
+
+				this.$cache.min.html(this.decorate(min_pretty, this.options.min));
+				this.$cache.max.html(this.decorate(max_pretty, this.options.max));
+			}
+
+			this.labels.w_min = this.$cache.min.outerWidth(false);
+			this.labels.w_max = this.$cache.max.outerWidth(false);
+		},
+
+		/**
+		 * Then dragging interval, prevent interval collapsing
+		 * using min_interval option
+		 */
+		setTempMinInterval: function () {
+			var interval = this.result.to - this.result.from;
+
+			if (this.old_min_interval === null) {
+				this.old_min_interval = this.options.min_interval;
+			}
+
+			this.options.min_interval = interval;
+		},
+
+		/**
+		 * Restore min_interval option to original
+		 */
+		restoreOriginalMinInterval: function () {
+			if (this.old_min_interval !== null) {
+				this.options.min_interval = this.old_min_interval;
+				this.old_min_interval = null;
+			}
+		},
+
+
+
+		// =============================================================================================================
+		// Calculations
+
+		/**
+		 * All calculations and measures start here
+		 *
+		 * @param update {boolean=}
+		 */
+		calc: function (update) {
+			if (!this.options) {
+				return;
+			}
+
+			this.calc_count++;
+
+			if (this.calc_count === 10 || update) {
+				this.calc_count = 0;
+				this.coords.w_rs = this.$cache.rs.outerWidth(false);
+
+				this.calcHandlePercent();
+			}
+
+			if (!this.coords.w_rs) {
+				return;
+			}
+
+			this.calcPointerPercent();
+			var handle_x = this.getHandleX();
+
+
+			if (this.target === "both") {
+				this.coords.p_gap = 0;
+				handle_x = this.getHandleX();
+			}
+
+			if (this.target === "click") {
+				this.coords.p_gap = this.coords.p_handle / 2;
+				handle_x = this.getHandleX();
+
+				if (this.options.drag_interval) {
+					this.target = "both_one";
+				} else {
+					this.target = this.chooseHandle(handle_x);
+				}
+			}
+
+			switch (this.target) {
+				case "base":
+					var w = (this.options.max - this.options.min) / 100,
+						f = (this.result.from - this.options.min) / w,
+						t = (this.result.to - this.options.min) / w;
+
+					this.coords.p_single_real = this.toFixed(f);
+					this.coords.p_from_real = this.toFixed(f);
+					this.coords.p_to_real = this.toFixed(t);
+
+					this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);
+					this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
+					this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
+
+					this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);
+					this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
+					this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
+
+					this.target = null;
+
+					break;
+
+				case "single":
+					if (this.options.from_fixed) {
+						break;
+					}
+
+					this.coords.p_single_real = this.convertToRealPercent(handle_x);
+					this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real);
+					this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);
+
+					this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);
+
+					break;
+
+				case "from":
+					if (this.options.from_fixed) {
+						break;
+					}
+
+					this.coords.p_from_real = this.convertToRealPercent(handle_x);
+					this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);
+					if (this.coords.p_from_real > this.coords.p_to_real) {
+						this.coords.p_from_real = this.coords.p_to_real;
+					}
+					this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
+					this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
+					this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
+
+					this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
+
+					break;
+
+				case "to":
+					if (this.options.to_fixed) {
+						break;
+					}
+
+					this.coords.p_to_real = this.convertToRealPercent(handle_x);
+					this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);
+					if (this.coords.p_to_real < this.coords.p_from_real) {
+						this.coords.p_to_real = this.coords.p_from_real;
+					}
+					this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
+					this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
+					this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
+
+					this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
+
+					break;
+
+				case "both":
+					if (this.options.from_fixed || this.options.to_fixed) {
+						break;
+					}
+
+					handle_x = this.toFixed(handle_x + (this.coords.p_handle * 0.001));
+
+					this.coords.p_from_real = this.convertToRealPercent(handle_x) - this.coords.p_gap_left;
+					this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);
+					this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
+					this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, "from");
+					this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
+
+					this.coords.p_to_real = this.convertToRealPercent(handle_x) + this.coords.p_gap_right;
+					this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);
+					this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
+					this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, "to");
+					this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
+
+					break;
+
+				case "both_one":
+					if (this.options.from_fixed || this.options.to_fixed) {
+						break;
+					}
+
+					var real_x = this.convertToRealPercent(handle_x),
+						from = this.result.from_percent,
+						to = this.result.to_percent,
+						full = to - from,
+						half = full / 2,
+						new_from = real_x - half,
+						new_to = real_x + half;
+
+					if (new_from < 0) {
+						new_from = 0;
+						new_to = new_from + full;
+					}
+
+					if (new_to > 100) {
+						new_to = 100;
+						new_from = new_to - full;
+					}
+
+					this.coords.p_from_real = this.calcWithStep(new_from);
+					this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);
+					this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);
+
+					this.coords.p_to_real = this.calcWithStep(new_to);
+					this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);
+					this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);
+
+					break;
+			}
+
+			if (this.options.type === "single") {
+				this.coords.p_bar_x = (this.coords.p_handle / 2);
+				this.coords.p_bar_w = this.coords.p_single_fake;
+
+				this.result.from_percent = this.coords.p_single_real;
+				this.result.from = this.convertToValue(this.coords.p_single_real);
+				this.result.from_pretty = this._prettify(this.result.from);
+
+				if (this.options.values.length) {
+					this.result.from_value = this.options.values[this.result.from];
+				}
+			} else {
+				this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + (this.coords.p_handle / 2));
+				this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake);
+
+				this.result.from_percent = this.coords.p_from_real;
+				this.result.from = this.convertToValue(this.coords.p_from_real);
+				this.result.from_pretty = this._prettify(this.result.from);
+				this.result.to_percent = this.coords.p_to_real;
+				this.result.to = this.convertToValue(this.coords.p_to_real);
+				this.result.to_pretty = this._prettify(this.result.to);
+
+				if (this.options.values.length) {
+					this.result.from_value = this.options.values[this.result.from];
+					this.result.to_value = this.options.values[this.result.to];
+				}
+			}
+
+			this.calcMinMax();
+			this.calcLabels();
+		},
+
+
+		/**
+		 * calculates pointer X in percent
+		 */
+		calcPointerPercent: function () {
+			if (!this.coords.w_rs) {
+				this.coords.p_pointer = 0;
+				return;
+			}
+
+			if (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer) ) {
+				this.coords.x_pointer = 0;
+			} else if (this.coords.x_pointer > this.coords.w_rs) {
+				this.coords.x_pointer = this.coords.w_rs;
+			}
+
+			this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100);
+		},
+
+		convertToRealPercent: function (fake) {
+			var full = 100 - this.coords.p_handle;
+			return fake / full * 100;
+		},
+
+		convertToFakePercent: function (real) {
+			var full = 100 - this.coords.p_handle;
+			return real / 100 * full;
+		},
+
+		getHandleX: function () {
+			var max = 100 - this.coords.p_handle,
+				x = this.toFixed(this.coords.p_pointer - this.coords.p_gap);
+
+			if (x < 0) {
+				x = 0;
+			} else if (x > max) {
+				x = max;
+			}
+
+			return x;
+		},
+
+		calcHandlePercent: function () {
+			if (this.options.type === "single") {
+				this.coords.w_handle = this.$cache.s_single.outerWidth(false);
+			} else {
+				this.coords.w_handle = this.$cache.s_from.outerWidth(false);
+			}
+
+			this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);
+		},
+
+		/**
+		 * Find closest handle to pointer click
+		 *
+		 * @param real_x {Number}
+		 * @returns {String}
+		 */
+		chooseHandle: function (real_x) {
+			if (this.options.type === "single") {
+				return "single";
+			} else {
+				var m_point = this.coords.p_from_real + ((this.coords.p_to_real - this.coords.p_from_real) / 2);
+				if (real_x >= m_point) {
+					return this.options.to_fixed ? "from" : "to";
+				} else {
+					return this.options.from_fixed ? "to" : "from";
+				}
+			}
+		},
+
+		/**
+		 * Measure Min and Max labels width in percent
+		 */
+		calcMinMax: function () {
+			if (!this.coords.w_rs) {
+				return;
+			}
+
+			this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100;
+			this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100;
+		},
+
+		/**
+		 * Measure labels width and X in percent
+		 */
+		calcLabels: function () {
+			if (!this.coords.w_rs || this.options.hide_from_to) {
+				return;
+			}
+
+			if (this.options.type === "single") {
+
+				this.labels.w_single = this.$cache.single.outerWidth(false);
+				this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;
+				this.labels.p_single_left = this.coords.p_single_fake + (this.coords.p_handle / 2) - (this.labels.p_single_fake / 2);
+				this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);
+
+			} else {
+
+				this.labels.w_from = this.$cache.from.outerWidth(false);
+				this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100;
+				this.labels.p_from_left = this.coords.p_from_fake + (this.coords.p_handle / 2) - (this.labels.p_from_fake / 2);
+				this.labels.p_from_left = this.toFixed(this.labels.p_from_left);
+				this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake);
+
+				this.labels.w_to = this.$cache.to.outerWidth(false);
+				this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100;
+				this.labels.p_to_left = this.coords.p_to_fake + (this.coords.p_handle / 2) - (this.labels.p_to_fake / 2);
+				this.labels.p_to_left = this.toFixed(this.labels.p_to_left);
+				this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake);
+
+				this.labels.w_single = this.$cache.single.outerWidth(false);
+				this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;
+				this.labels.p_single_left = ((this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2) - (this.labels.p_single_fake / 2);
+				this.labels.p_single_left = this.toFixed(this.labels.p_single_left);
+				this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);
+
+			}
+		},
+
+
+
+		// =============================================================================================================
+		// Drawings
+
+		/**
+		 * Main function called in request animation frame
+		 * to update everything
+		 */
+		updateScene: function () {
+			if (this.raf_id) {
+				cancelAnimationFrame(this.raf_id);
+				this.raf_id = null;
+			}
+
+			clearTimeout(this.update_tm);
+			this.update_tm = null;
+
+			if (!this.options) {
+				return;
+			}
+
+			this.drawHandles();
+
+			if (this.is_active) {
+				this.raf_id = requestAnimationFrame(this.updateScene.bind(this));
+			} else {
+				this.update_tm = setTimeout(this.updateScene.bind(this), 300);
+			}
+		},
+
+		/**
+		 * Draw handles
+		 */
+		drawHandles: function () {
+			this.coords.w_rs = this.$cache.rs.outerWidth(false);
+
+			if (!this.coords.w_rs) {
+				return;
+			}
+
+			if (this.coords.w_rs !== this.coords.w_rs_old) {
+				this.target = "base";
+				this.is_resize = true;
+			}
+
+			if (this.coords.w_rs !== this.coords.w_rs_old || this.force_redraw) {
+				this.setMinMax();
+				this.calc(true);
+				this.drawLabels();
+				if (this.options.grid) {
+					this.calcGridMargin();
+					this.calcGridLabels();
+				}
+				this.force_redraw = true;
+				this.coords.w_rs_old = this.coords.w_rs;
+				this.drawShadow();
+			}
+
+			if (!this.coords.w_rs) {
+				return;
+			}
+
+			if (!this.dragging && !this.force_redraw && !this.is_key) {
+				return;
+			}
+
+			if (this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) {
+
+				this.drawLabels();
+
+				this.$cache.bar[0].style.left = this.coords.p_bar_x + "%";
+				this.$cache.bar[0].style.width = this.coords.p_bar_w + "%";
+
+				if (this.options.type === "single") {
+					this.$cache.bar[0].style.left = 0;
+					this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + "%";
+
+					this.$cache.s_single[0].style.left = this.coords.p_single_fake + "%";
+
+					this.$cache.single[0].style.left = this.labels.p_single_left + "%";
+				} else {
+					this.$cache.s_from[0].style.left = this.coords.p_from_fake + "%";
+					this.$cache.s_to[0].style.left = this.coords.p_to_fake + "%";
+
+					if (this.old_from !== this.result.from || this.force_redraw) {
+						this.$cache.from[0].style.left = this.labels.p_from_left + "%";
+					}
+					if (this.old_to !== this.result.to || this.force_redraw) {
+						this.$cache.to[0].style.left = this.labels.p_to_left + "%";
+					}
+
+					this.$cache.single[0].style.left = this.labels.p_single_left + "%";
+				}
+
+				this.writeToInput();
+
+				if ((this.old_from !== this.result.from || this.old_to !== this.result.to) && !this.is_start) {
+					this.$cache.input.trigger("change");
+					this.$cache.input.trigger("input");
+				}
+
+				this.old_from = this.result.from;
+				this.old_to = this.result.to;
+
+				// callbacks call
+				if (!this.is_resize && !this.is_update && !this.is_start && !this.is_finish) {
+					this.callOnChange();
+				}
+				if (this.is_key || this.is_click) {
+					this.is_key = false;
+					this.is_click = false;
+					this.callOnFinish();
+				}
+
+				this.is_update = false;
+				this.is_resize = false;
+				this.is_finish = false;
+			}
+
+			this.is_start = false;
+			this.is_key = false;
+			this.is_click = false;
+			this.force_redraw = false;
+		},
+
+		/**
+		 * Draw labels
+		 * measure labels collisions
+		 * collapse close labels
+		 */
+		drawLabels: function () {
+			if (!this.options) {
+				return;
+			}
+
+			var values_num = this.options.values.length;
+			var p_values = this.options.p_values;
+			var text_single;
+			var text_from;
+			var text_to;
+			var from_pretty;
+			var to_pretty;
+
+			if (this.options.hide_from_to) {
+				return;
+			}
+
+			if (this.options.type === "single") {
+
+				if (values_num) {
+					text_single = this.decorate(p_values[this.result.from]);
+					this.$cache.single.html(text_single);
+				} else {
+					from_pretty = this._prettify(this.result.from);
+
+					text_single = this.decorate(from_pretty, this.result.from);
+					this.$cache.single.html(text_single);
+				}
+
+				this.calcLabels();
+
+				if (this.labels.p_single_left < this.labels.p_min + 1) {
+					this.$cache.min[0].style.visibility = "hidden";
+				} else {
+					this.$cache.min[0].style.visibility = "visible";
+				}
+
+				if (this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1) {
+					this.$cache.max[0].style.visibility = "hidden";
+				} else {
+					this.$cache.max[0].style.visibility = "visible";
+				}
+
+			} else {
+
+				if (values_num) {
+
+					if (this.options.decorate_both) {
+						text_single = this.decorate(p_values[this.result.from]);
+						text_single += this.options.values_separator;
+						text_single += this.decorate(p_values[this.result.to]);
+					} else {
+						text_single = this.decorate(p_values[this.result.from] + this.options.values_separator + p_values[this.result.to]);
+					}
+					text_from = this.decorate(p_values[this.result.from]);
+					text_to = this.decorate(p_values[this.result.to]);
+
+					this.$cache.single.html(text_single);
+					this.$cache.from.html(text_from);
+					this.$cache.to.html(text_to);
+
+				} else {
+					from_pretty = this._prettify(this.result.from);
+					to_pretty = this._prettify(this.result.to);
+
+					if (this.options.decorate_both) {
+						text_single = this.decorate(from_pretty, this.result.from);
+						text_single += this.options.values_separator;
+						text_single += this.decorate(to_pretty, this.result.to);
+					} else {
+						text_single = this.decorate(from_pretty + this.options.values_separator + to_pretty, this.result.to);
+					}
+					text_from = this.decorate(from_pretty, this.result.from);
+					text_to = this.decorate(to_pretty, this.result.to);
+
+					this.$cache.single.html(text_single);
+					this.$cache.from.html(text_from);
+					this.$cache.to.html(text_to);
+
+				}
+
+				this.calcLabels();
+
+				var min = Math.min(this.labels.p_single_left, this.labels.p_from_left),
+					single_left = this.labels.p_single_left + this.labels.p_single_fake,
+					to_left = this.labels.p_to_left + this.labels.p_to_fake,
+					max = Math.max(single_left, to_left);
+
+				if (this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left) {
+					this.$cache.from[0].style.visibility = "hidden";
+					this.$cache.to[0].style.visibility = "hidden";
+					this.$cache.single[0].style.visibility = "visible";
+
+					if (this.result.from === this.result.to) {
+						if (this.target === "from") {
+							this.$cache.from[0].style.visibility = "visible";
+						} else if (this.target === "to") {
+							this.$cache.to[0].style.visibility = "visible";
+						} else if (!this.target) {
+							this.$cache.from[0].style.visibility = "visible";
+						}
+						this.$cache.single[0].style.visibility = "hidden";
+						max = to_left;
+					} else {
+						this.$cache.from[0].style.visibility = "hidden";
+						this.$cache.to[0].style.visibility = "hidden";
+						this.$cache.single[0].style.visibility = "visible";
+						max = Math.max(single_left, to_left);
+					}
+				} else {
+					this.$cache.from[0].style.visibility = "visible";
+					this.$cache.to[0].style.visibility = "visible";
+					this.$cache.single[0].style.visibility = "hidden";
+				}
+
+				if (min < this.labels.p_min + 1) {
+					this.$cache.min[0].style.visibility = "hidden";
+				} else {
+					this.$cache.min[0].style.visibility = "visible";
+				}
+
+				if (max > 100 - this.labels.p_max - 1) {
+					this.$cache.max[0].style.visibility = "hidden";
+				} else {
+					this.$cache.max[0].style.visibility = "visible";
+				}
+
+			}
+		},
+
+		/**
+		 * Draw shadow intervals
+		 */
+		drawShadow: function () {
+			var o = this.options,
+				c = this.$cache,
+
+				is_from_min = typeof o.from_min === "number" && !isNaN(o.from_min),
+				is_from_max = typeof o.from_max === "number" && !isNaN(o.from_max),
+				is_to_min = typeof o.to_min === "number" && !isNaN(o.to_min),
+				is_to_max = typeof o.to_max === "number" && !isNaN(o.to_max),
+
+				from_min,
+				from_max,
+				to_min,
+				to_max;
+
+			if (o.type === "single") {
+				if (o.from_shadow && (is_from_min || is_from_max)) {
+					from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);
+					from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;
+					from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));
+					from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));
+					from_min = from_min + (this.coords.p_handle / 2);
+
+					c.shad_single[0].style.display = "block";
+					c.shad_single[0].style.left = from_min + "%";
+					c.shad_single[0].style.width = from_max + "%";
+				} else {
+					c.shad_single[0].style.display = "none";
+				}
+			} else {
+				if (o.from_shadow && (is_from_min || is_from_max)) {
+					from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);
+					from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;
+					from_min = this.toFixed(from_min - (this.coords.p_handle / 100 * from_min));
+					from_max = this.toFixed(from_max - (this.coords.p_handle / 100 * from_max));
+					from_min = from_min + (this.coords.p_handle / 2);
+
+					c.shad_from[0].style.display = "block";
+					c.shad_from[0].style.left = from_min + "%";
+					c.shad_from[0].style.width = from_max + "%";
+				} else {
+					c.shad_from[0].style.display = "none";
+				}
+
+				if (o.to_shadow && (is_to_min || is_to_max)) {
+					to_min = this.convertToPercent(is_to_min ? o.to_min : o.min);
+					to_max = this.convertToPercent(is_to_max ? o.to_max : o.max) - to_min;
+					to_min = this.toFixed(to_min - (this.coords.p_handle / 100 * to_min));
+					to_max = this.toFixed(to_max - (this.coords.p_handle / 100 * to_max));
+					to_min = to_min + (this.coords.p_handle / 2);
+
+					c.shad_to[0].style.display = "block";
+					c.shad_to[0].style.left = to_min + "%";
+					c.shad_to[0].style.width = to_max + "%";
+				} else {
+					c.shad_to[0].style.display = "none";
+				}
+			}
+		},
+
+
+
+		/**
+		 * Write values to input element
+		 */
+		writeToInput: function () {
+			if (this.options.type === "single") {
+				if (this.options.values.length) {
+					this.$cache.input.prop("value", this.result.from_value);
+				} else {
+					this.$cache.input.prop("value", this.result.from);
+				}
+				this.$cache.input.data("from", this.result.from);
+			} else {
+				if (this.options.values.length) {
+					this.$cache.input.prop("value", this.result.from_value + this.options.input_values_separator + this.result.to_value);
+				} else {
+					this.$cache.input.prop("value", this.result.from + this.options.input_values_separator + this.result.to);
+				}
+				this.$cache.input.data("from", this.result.from);
+				this.$cache.input.data("to", this.result.to);
+			}
+		},
+
+
+
+		// =============================================================================================================
+		// Callbacks
+
+		callOnStart: function () {
+			this.writeToInput();
+
+			if (this.options.onStart && typeof this.options.onStart === "function") {
+				if (this.options.scope) {
+					this.options.onStart.call(this.options.scope, this.result);
+				} else {
+					this.options.onStart(this.result);
+				}
+			}
+		},
+		callOnChange: function () {
+			this.writeToInput();
+
+			if (this.options.onChange && typeof this.options.onChange === "function") {
+				if (this.options.scope) {
+					this.options.onChange.call(this.options.scope, this.result);
+				} else {
+					this.options.onChange(this.result);
+				}
+			}
+		},
+		callOnFinish: function () {
+			this.writeToInput();
+
+			if (this.options.onFinish && typeof this.options.onFinish === "function") {
+				if (this.options.scope) {
+					this.options.onFinish.call(this.options.scope, this.result);
+				} else {
+					this.options.onFinish(this.result);
+				}
+			}
+		},
+		callOnUpdate: function () {
+			this.writeToInput();
+
+			if (this.options.onUpdate && typeof this.options.onUpdate === "function") {
+				if (this.options.scope) {
+					this.options.onUpdate.call(this.options.scope, this.result);
+				} else {
+					this.options.onUpdate(this.result);
+				}
+			}
+		},
+
+
+
+
+		// =============================================================================================================
+		// Service methods
+
+		toggleInput: function () {
+			this.$cache.input.toggleClass("irs-hidden-input");
+
+			if (this.has_tab_index) {
+				this.$cache.input.prop("tabindex", -1);
+			} else {
+				this.$cache.input.removeProp("tabindex");
+			}
+
+			this.has_tab_index = !this.has_tab_index;
+		},
+
+		/**
+		 * Convert real value to percent
+		 *
+		 * @param value {Number} X in real
+		 * @param no_min {boolean=} don't use min value
+		 * @returns {Number} X in percent
+		 */
+		convertToPercent: function (value, no_min) {
+			var diapason = this.options.max - this.options.min,
+				one_percent = diapason / 100,
+				val, percent;
+
+			if (!diapason) {
+				this.no_diapason = true;
+				return 0;
+			}
+
+			if (no_min) {
+				val = value;
+			} else {
+				val = value - this.options.min;
+			}
+
+			percent = val / one_percent;
+
+			return this.toFixed(percent);
+		},
+
+		/**
+		 * Convert percent to real values
+		 *
+		 * @param percent {Number} X in percent
+		 * @returns {Number} X in real
+		 */
+		convertToValue: function (percent) {
+			var min = this.options.min,
+				max = this.options.max,
+				min_decimals = min.toString().split(".")[1],
+				max_decimals = max.toString().split(".")[1],
+				min_length, max_length,
+				avg_decimals = 0,
+				abs = 0;
+
+			if (percent === 0) {
+				return this.options.min;
+			}
+			if (percent === 100) {
+				return this.options.max;
+			}
+
+
+			if (min_decimals) {
+				min_length = min_decimals.length;
+				avg_decimals = min_length;
+			}
+			if (max_decimals) {
+				max_length = max_decimals.length;
+				avg_decimals = max_length;
+			}
+			if (min_length && max_length) {
+				avg_decimals = (min_length >= max_length) ? min_length : max_length;
+			}
+
+			if (min < 0) {
+				abs = Math.abs(min);
+				min = +(min + abs).toFixed(avg_decimals);
+				max = +(max + abs).toFixed(avg_decimals);
+			}
+
+			var number = ((max - min) / 100 * percent) + min,
+				string = this.options.step.toString().split(".")[1],
+				result;
+
+			if (string) {
+				number = +number.toFixed(string.length);
+			} else {
+				number = number / this.options.step;
+				number = number * this.options.step;
+
+				number = +number.toFixed(0);
+			}
+
+			if (abs) {
+				number -= abs;
+			}
+
+			if (string) {
+				result = +number.toFixed(string.length);
+			} else {
+				result = this.toFixed(number);
+			}
+
+			if (result < this.options.min) {
+				result = this.options.min;
+			} else if (result > this.options.max) {
+				result = this.options.max;
+			}
+
+			return result;
+		},
+
+		/**
+		 * Round percent value with step
+		 *
+		 * @param percent {Number}
+		 * @returns percent {Number} rounded
+		 */
+		calcWithStep: function (percent) {
+			var rounded = Math.round(percent / this.coords.p_step) * this.coords.p_step;
+
+			if (rounded > 100) {
+				rounded = 100;
+			}
+			if (percent === 100) {
+				rounded = 100;
+			}
+
+			return this.toFixed(rounded);
+		},
+
+		checkMinInterval: function (p_current, p_next, type) {
+			var o = this.options,
+				current,
+				next;
+
+			if (!o.min_interval) {
+				return p_current;
+			}
+
+			current = this.convertToValue(p_current);
+			next = this.convertToValue(p_next);
+
+			if (type === "from") {
+
+				if (next - current < o.min_interval) {
+					current = next - o.min_interval;
+				}
+
+			} else {
+
+				if (current - next < o.min_interval) {
+					current = next + o.min_interval;
+				}
+
+			}
+
+			return this.convertToPercent(current);
+		},
+
+		checkMaxInterval: function (p_current, p_next, type) {
+			var o = this.options,
+				current,
+				next;
+
+			if (!o.max_interval) {
+				return p_current;
+			}
+
+			current = this.convertToValue(p_current);
+			next = this.convertToValue(p_next);
+
+			if (type === "from") {
+
+				if (next - current > o.max_interval) {
+					current = next - o.max_interval;
+				}
+
+			} else {
+
+				if (current - next > o.max_interval) {
+					current = next + o.max_interval;
+				}
+
+			}
+
+			return this.convertToPercent(current);
+		},
+
+		checkDiapason: function (p_num, min, max) {
+			var num = this.convertToValue(p_num),
+				o = this.options;
+
+			if (typeof min !== "number") {
+				min = o.min;
+			}
+
+			if (typeof max !== "number") {
+				max = o.max;
+			}
+
+			if (num < min) {
+				num = min;
+			}
+
+			if (num > max) {
+				num = max;
+			}
+
+			return this.convertToPercent(num);
+		},
+
+		toFixed: function (num) {
+			num = num.toFixed(20);
+			return +num;
+		},
 
-        _prettify: function (num) {
-            if (!this.options.prettify_enabled) {
-                return num;
-            }
+		_prettify: function (num) {
+			if (!this.options.prettify_enabled) {
+				return num;
+			}
 
-            if (this.options.prettify && typeof this.options.prettify === "function") {
-                return this.options.prettify(num);
-            } else {
-                return this.prettify(num);
-            }
-        },
+			if (this.options.prettify && typeof this.options.prettify === "function") {
+				return this.options.prettify(num);
+			} else {
+				return this.prettify(num);
+			}
+		},
 
-        prettify: function (num) {
-            var n = num.toString();
-            return n.replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g, "$1" + this.options.prettify_separator);
-        },
+		prettify: function (num) {
+			var n = num.toString();
+			return n.replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g, "$1" + this.options.prettify_separator);
+		},
 
-        checkEdges: function (left, width) {
-            if (!this.options.force_edges) {
-                return this.toFixed(left);
-            }
+		checkEdges: function (left, width) {
+			if (!this.options.force_edges) {
+				return this.toFixed(left);
+			}
 
-            if (left < 0) {
-                left = 0;
-            } else if (left > 100 - width) {
-                left = 100 - width;
-            }
+			if (left < 0) {
+				left = 0;
+			} else if (left > 100 - width) {
+				left = 100 - width;
+			}
 
-            return this.toFixed(left);
-        },
+			return this.toFixed(left);
+		},
 
-        validate: function () {
-            var o = this.options,
-                r = this.result,
-                v = o.values,
-                vl = v.length,
-                value,
-                i;
+		validate: function () {
+			var o = this.options,
+				r = this.result,
+				v = o.values,
+				vl = v.length,
+				value,
+				i;
 
-            if (typeof o.min === "string") o.min = +o.min;
-            if (typeof o.max === "string") o.max = +o.max;
-            if (typeof o.from === "string") o.from = +o.from;
-            if (typeof o.to === "string") o.to = +o.to;
-            if (typeof o.step === "string") o.step = +o.step;
+			if (typeof o.min === "string") o.min = +o.min;
+			if (typeof o.max === "string") o.max = +o.max;
+			if (typeof o.from === "string") o.from = +o.from;
+			if (typeof o.to === "string") o.to = +o.to;
+			if (typeof o.step === "string") o.step = +o.step;
 
-            if (typeof o.from_min === "string") o.from_min = +o.from_min;
-            if (typeof o.from_max === "string") o.from_max = +o.from_max;
-            if (typeof o.to_min === "string") o.to_min = +o.to_min;
-            if (typeof o.to_max === "string") o.to_max = +o.to_max;
+			if (typeof o.from_min === "string") o.from_min = +o.from_min;
+			if (typeof o.from_max === "string") o.from_max = +o.from_max;
+			if (typeof o.to_min === "string") o.to_min = +o.to_min;
+			if (typeof o.to_max === "string") o.to_max = +o.to_max;
 
-            if (typeof o.grid_num === "string") o.grid_num = +o.grid_num;
+			if (typeof o.grid_num === "string") o.grid_num = +o.grid_num;
 
-            if (o.max < o.min) {
-                o.max = o.min;
-            }
-
-            if (vl) {
-                o.p_values = [];
-                o.min = 0;
-                o.max = vl - 1;
-                o.step = 1;
-                o.grid_num = o.max;
-                o.grid_snap = true;
-
-                for (i = 0; i < vl; i++) {
-                    value = +v[i];
-
-                    if (!isNaN(value)) {
-                        v[i] = value;
-                        value = this._prettify(value);
-                    } else {
-                        value = v[i];
-                    }
-
-                    o.p_values.push(value);
-                }
-            }
-
-            if (typeof o.from !== "number" || isNaN(o.from)) {
-                o.from = o.min;
-            }
-
-            if (typeof o.to !== "number" || isNaN(o.to)) {
-                o.to = o.max;
-            }
-
-            if (o.type === "single") {
-
-                if (o.from < o.min) o.from = o.min;
-                if (o.from > o.max) o.from = o.max;
-
-            } else {
-
-                if (o.from < o.min) o.from = o.min;
-                if (o.from > o.max) o.from = o.max;
-
-                if (o.to < o.min) o.to = o.min;
-                if (o.to > o.max) o.to = o.max;
-
-                if (this.update_check.from) {
-
-                    if (this.update_check.from !== o.from) {
-                        if (o.from > o.to) o.from = o.to;
-                    }
-                    if (this.update_check.to !== o.to) {
-                        if (o.to < o.from) o.to = o.from;
-                    }
-
-                }
-
-                if (o.from > o.to) o.from = o.to;
-                if (o.to < o.from) o.to = o.from;
-
-            }
-
-            if (typeof o.step !== "number" || isNaN(o.step) || !o.step || o.step < 0) {
-                o.step = 1;
-            }
-
-            if (typeof o.from_min === "number" && o.from < o.from_min) {
-                o.from = o.from_min;
-            }
-
-            if (typeof o.from_max === "number" && o.from > o.from_max) {
-                o.from = o.from_max;
-            }
-
-            if (typeof o.to_min === "number" && o.to < o.to_min) {
-                o.to = o.to_min;
-            }
-
-            if (typeof o.to_max === "number" && o.from > o.to_max) {
-                o.to = o.to_max;
-            }
-
-            if (r) {
-                if (r.min !== o.min) {
-                    r.min = o.min;
-                }
-
-                if (r.max !== o.max) {
-                    r.max = o.max;
-                }
-
-                if (r.from < r.min || r.from > r.max) {
-                    r.from = o.from;
-                }
-
-                if (r.to < r.min || r.to > r.max) {
-                    r.to = o.to;
-                }
-            }
-
-            if (typeof o.min_interval !== "number" || isNaN(o.min_interval) || !o.min_interval || o.min_interval < 0) {
-                o.min_interval = 0;
-            }
-
-            if (typeof o.max_interval !== "number" || isNaN(o.max_interval) || !o.max_interval || o.max_interval < 0) {
-                o.max_interval = 0;
-            }
-
-            if (o.min_interval && o.min_interval > o.max - o.min) {
-                o.min_interval = o.max - o.min;
-            }
-
-            if (o.max_interval && o.max_interval > o.max - o.min) {
-                o.max_interval = o.max - o.min;
-            }
-        },
-
-        decorate: function (num, original) {
-            var decorated = "",
-                o = this.options;
-
-            if (o.prefix) {
-                decorated += o.prefix;
-            }
-
-            decorated += num;
-
-            if (o.max_postfix) {
-                if (o.values.length && num === o.p_values[o.max]) {
-                    decorated += o.max_postfix;
-                    if (o.postfix) {
-                        decorated += " ";
-                    }
-                } else if (original === o.max) {
-                    decorated += o.max_postfix;
-                    if (o.postfix) {
-                        decorated += " ";
-                    }
-                }
-            }
-
-            if (o.postfix) {
-                decorated += o.postfix;
-            }
-
-            return decorated;
-        },
-
-        updateFrom: function () {
-            this.result.from = this.options.from;
-            this.result.from_percent = this.convertToPercent(this.result.from);
-            this.result.from_pretty = this._prettify(this.result.from);
-            if (this.options.values) {
-                this.result.from_value = this.options.values[this.result.from];
-            }
-        },
-
-        updateTo: function () {
-            this.result.to = this.options.to;
-            this.result.to_percent = this.convertToPercent(this.result.to);
-            this.result.to_pretty = this._prettify(this.result.to);
-            if (this.options.values) {
-                this.result.to_value = this.options.values[this.result.to];
-            }
-        },
-
-        updateResult: function () {
-            this.result.min = this.options.min;
-            this.result.max = this.options.max;
-            this.updateFrom();
-            this.updateTo();
-        },
-
-
-        // =============================================================================================================
-        // Grid
-
-        appendGrid: function () {
-            if (!this.options.grid) {
-                return;
-            }
-
-            var o = this.options,
-                i, z,
-
-                total = o.max - o.min,
-                big_num = o.grid_num,
-                big_p = 0,
-                big_w = 0,
-
-                small_max = 4,
-                local_small_max,
-                small_p,
-                small_w = 0,
-
-                result,
-                html = '';
-
-
-
-            this.calcGridMargin();
-
-            if (o.grid_snap) {
-                big_num = total / o.step;
-            }
-
-            if (big_num > 50) big_num = 50;
-            big_p = this.toFixed(100 / big_num);
-
-            if (big_num > 4) {
-                small_max = 3;
-            }
-            if (big_num > 7) {
-                small_max = 2;
-            }
-            if (big_num > 14) {
-                small_max = 1;
-            }
-            if (big_num > 28) {
-                small_max = 0;
-            }
-
-            for (i = 0; i < big_num + 1; i++) {
-                local_small_max = small_max;
-
-                big_w = this.toFixed(big_p * i);
-
-                if (big_w > 100) {
-                    big_w = 100;
-                }
-                this.coords.big[i] = big_w;
-
-                small_p = (big_w - (big_p * (i - 1))) / (local_small_max + 1);
-
-                for (z = 1; z <= local_small_max; z++) {
-                    if (big_w === 0) {
-                        break;
-                    }
-
-                    small_w = this.toFixed(big_w - (small_p * z));
-
-                    html += '<span class="irs-grid-pol small" style="left: ' + small_w + '%"></span>';
-                }
-
-                html += '<span class="irs-grid-pol" style="left: ' + big_w + '%"></span>';
-
-                result = this.convertToValue(big_w);
-                if (o.values.length) {
-                    result = o.p_values[result];
-                } else {
-                    result = this._prettify(result);
-                }
-
-                html += '<span class="irs-grid-text js-grid-text-' + i + '" style="left: ' + big_w + '%">' + result + '</span>';
-            }
-            this.coords.big_num = Math.ceil(big_num + 1);
-
-
-
-            this.$cache.cont.addClass("irs-with-grid");
-            this.$cache.grid.html(html);
-            this.cacheGridLabels();
-        },
+			if (o.max < o.min) {
+				o.max = o.min;
+			}
+
+			if (vl) {
+				o.p_values = [];
+				o.min = 0;
+				o.max = vl - 1;
+				o.step = 1;
+				o.grid_num = o.max;
+				o.grid_snap = true;
+
+				for (i = 0; i < vl; i++) {
+					value = +v[i];
+
+					if (!isNaN(value)) {
+						v[i] = value;
+						value = this._prettify(value);
+					} else {
+						value = v[i];
+					}
+
+					o.p_values.push(value);
+				}
+			}
+
+			if (typeof o.from !== "number" || isNaN(o.from)) {
+				o.from = o.min;
+			}
+
+			if (typeof o.to !== "number" || isNaN(o.to)) {
+				o.to = o.max;
+			}
+
+			if (o.type === "single") {
+
+				if (o.from < o.min) o.from = o.min;
+				if (o.from > o.max) o.from = o.max;
+
+			} else {
+
+				if (o.from < o.min) o.from = o.min;
+				if (o.from > o.max) o.from = o.max;
+
+				if (o.to < o.min) o.to = o.min;
+				if (o.to > o.max) o.to = o.max;
+
+				if (this.update_check.from) {
+
+					if (this.update_check.from !== o.from) {
+						if (o.from > o.to) o.from = o.to;
+					}
+					if (this.update_check.to !== o.to) {
+						if (o.to < o.from) o.to = o.from;
+					}
+
+				}
+
+				if (o.from > o.to) o.from = o.to;
+				if (o.to < o.from) o.to = o.from;
+
+			}
+
+			if (typeof o.step !== "number" || isNaN(o.step) || !o.step || o.step < 0) {
+				o.step = 1;
+			}
+
+			if (typeof o.from_min === "number" && o.from < o.from_min) {
+				o.from = o.from_min;
+			}
+
+			if (typeof o.from_max === "number" && o.from > o.from_max) {
+				o.from = o.from_max;
+			}
+
+			if (typeof o.to_min === "number" && o.to < o.to_min) {
+				o.to = o.to_min;
+			}
+
+			if (typeof o.to_max === "number" && o.from > o.to_max) {
+				o.to = o.to_max;
+			}
+
+			if (r) {
+				if (r.min !== o.min) {
+					r.min = o.min;
+				}
+
+				if (r.max !== o.max) {
+					r.max = o.max;
+				}
+
+				if (r.from < r.min || r.from > r.max) {
+					r.from = o.from;
+				}
+
+				if (r.to < r.min || r.to > r.max) {
+					r.to = o.to;
+				}
+			}
+
+			if (typeof o.min_interval !== "number" || isNaN(o.min_interval) || !o.min_interval || o.min_interval < 0) {
+				o.min_interval = 0;
+			}
+
+			if (typeof o.max_interval !== "number" || isNaN(o.max_interval) || !o.max_interval || o.max_interval < 0) {
+				o.max_interval = 0;
+			}
+
+			if (o.min_interval && o.min_interval > o.max - o.min) {
+				o.min_interval = o.max - o.min;
+			}
+
+			if (o.max_interval && o.max_interval > o.max - o.min) {
+				o.max_interval = o.max - o.min;
+			}
+		},
+
+		decorate: function (num, original) {
+			var decorated = "",
+				o = this.options;
+
+			if (o.prefix) {
+				decorated += o.prefix;
+			}
+
+			decorated += num;
+
+			if (o.max_postfix) {
+				if (o.values.length && num === o.p_values[o.max]) {
+					decorated += o.max_postfix;
+					if (o.postfix) {
+						decorated += " ";
+					}
+				} else if (original === o.max) {
+					decorated += o.max_postfix;
+					if (o.postfix) {
+						decorated += " ";
+					}
+				}
+			}
+
+			if (o.postfix) {
+				decorated += o.postfix;
+			}
+
+			return decorated;
+		},
+
+		updateFrom: function () {
+			this.result.from = this.options.from;
+			this.result.from_percent = this.convertToPercent(this.result.from);
+			this.result.from_pretty = this._prettify(this.result.from);
+			if (this.options.values) {
+				this.result.from_value = this.options.values[this.result.from];
+			}
+		},
+
+		updateTo: function () {
+			this.result.to = this.options.to;
+			this.result.to_percent = this.convertToPercent(this.result.to);
+			this.result.to_pretty = this._prettify(this.result.to);
+			if (this.options.values) {
+				this.result.to_value = this.options.values[this.result.to];
+			}
+		},
+
+		updateResult: function () {
+			this.result.min = this.options.min;
+			this.result.max = this.options.max;
+			this.updateFrom();
+			this.updateTo();
+		},
+
+
+		// =============================================================================================================
+		// Grid
+
+		appendGrid: function () {
+			if (!this.options.grid) {
+				return;
+			}
+
+			var o = this.options,
+				i, z,
+
+				total = o.max - o.min,
+				big_num = o.grid_num,
+				big_p = 0,
+				big_w = 0,
+
+				small_max = 4,
+				local_small_max,
+				small_p,
+				small_w = 0,
+
+				result,
+				html = '';
+
+
+
+			this.calcGridMargin();
+
+			if (o.grid_snap) {
+				big_num = total / o.step;
+			}
+
+			if (big_num > 50) big_num = 50;
+			big_p = this.toFixed(100 / big_num);
+
+			if (big_num > 4) {
+				small_max = 3;
+			}
+			if (big_num > 7) {
+				small_max = 2;
+			}
+			if (big_num > 14) {
+				small_max = 1;
+			}
+			if (big_num > 28) {
+				small_max = 0;
+			}
+
+			for (i = 0; i < big_num + 1; i++) {
+				local_small_max = small_max;
+
+				big_w = this.toFixed(big_p * i);
+
+				if (big_w > 100) {
+					big_w = 100;
+				}
+				this.coords.big[i] = big_w;
+
+				small_p = (big_w - (big_p * (i - 1))) / (local_small_max + 1);
+
+				for (z = 1; z <= local_small_max; z++) {
+					if (big_w === 0) {
+						break;
+					}
+
+					small_w = this.toFixed(big_w - (small_p * z));
+
+					html += '<span class="irs-grid-pol small" style="left: ' + small_w + '%"></span>';
+				}
+
+				html += '<span class="irs-grid-pol" style="left: ' + big_w + '%"></span>';
+
+				result = this.convertToValue(big_w);
+				if (o.values.length) {
+					result = o.p_values[result];
+				} else {
+					result = this._prettify(result);
+				}
+
+				html += '<span class="irs-grid-text js-grid-text-' + i + '" style="left: ' + big_w + '%">' + result + '</span>';
+			}
+			this.coords.big_num = Math.ceil(big_num + 1);
+
+
+
+			this.$cache.cont.addClass("irs-with-grid");
+			this.$cache.grid.html(html);
+			this.cacheGridLabels();
+		},
 
-        cacheGridLabels: function () {
-            var $label, i,
-                num = this.coords.big_num;
+		cacheGridLabels: function () {
+			var $label, i,
+				num = this.coords.big_num;
 
-            for (i = 0; i < num; i++) {
-                $label = this.$cache.grid.find(".js-grid-text-" + i);
-                this.$cache.grid_labels.push($label);
-            }
+			for (i = 0; i < num; i++) {
+				$label = this.$cache.grid.find(".js-grid-text-" + i);
+				this.$cache.grid_labels.push($label);
+			}
 
-            this.calcGridLabels();
-        },
+			this.calcGridLabels();
+		},
 
-        calcGridLabels: function () {
-            var i, label, start = [], finish = [],
-                num = this.coords.big_num;
+		calcGridLabels: function () {
+			var i, label, start = [], finish = [],
+				num = this.coords.big_num;
 
-            for (i = 0; i < num; i++) {
-                this.coords.big_w[i] = this.$cache.grid_labels[i].outerWidth(false);
-                this.coords.big_p[i] = this.toFixed(this.coords.big_w[i] / this.coords.w_rs * 100);
-                this.coords.big_x[i] = this.toFixed(this.coords.big_p[i] / 2);
+			for (i = 0; i < num; i++) {
+				this.coords.big_w[i] = this.$cache.grid_labels[i].outerWidth(false);
+				this.coords.big_p[i] = this.toFixed(this.coords.big_w[i] / this.coords.w_rs * 100);
+				this.coords.big_x[i] = this.toFixed(this.coords.big_p[i] / 2);
 
-                start[i] = this.toFixed(this.coords.big[i] - this.coords.big_x[i]);
-                finish[i] = this.toFixed(start[i] + this.coords.big_p[i]);
-            }
+				start[i] = this.toFixed(this.coords.big[i] - this.coords.big_x[i]);
+				finish[i] = this.toFixed(start[i] + this.coords.big_p[i]);
+			}
 
-            if (this.options.force_edges) {
-                if (start[0] < -this.coords.grid_gap) {
-                    start[0] = -this.coords.grid_gap;
-                    finish[0] = this.toFixed(start[0] + this.coords.big_p[0]);
+			if (this.options.force_edges) {
+				if (start[0] < -this.coords.grid_gap) {
+					start[0] = -this.coords.grid_gap;
+					finish[0] = this.toFixed(start[0] + this.coords.big_p[0]);
 
-                    this.coords.big_x[0] = this.coords.grid_gap;
-                }
+					this.coords.big_x[0] = this.coords.grid_gap;
+				}
 
-                if (finish[num - 1] > 100 + this.coords.grid_gap) {
-                    finish[num - 1] = 100 + this.coords.grid_gap;
-                    start[num - 1] = this.toFixed(finish[num - 1] - this.coords.big_p[num - 1]);
-
-                    this.coords.big_x[num - 1] = this.toFixed(this.coords.big_p[num - 1] - this.coords.grid_gap);
-                }
-            }
-
-            this.calcGridCollision(2, start, finish);
-            this.calcGridCollision(4, start, finish);
-
-            for (i = 0; i < num; i++) {
-                label = this.$cache.grid_labels[i][0];
-
-                if (this.coords.big_x[i] !== Number.POSITIVE_INFINITY) {
-                    label.style.marginLeft = -this.coords.big_x[i] + "%";
-                }
-            }
-        },
-
-        // Collisions Calc Beta
-        // TODO: Refactor then have plenty of time
-        calcGridCollision: function (step, start, finish) {
-            var i, next_i, label,
-                num = this.coords.big_num;
+				if (finish[num - 1] > 100 + this.coords.grid_gap) {
+					finish[num - 1] = 100 + this.coords.grid_gap;
+					start[num - 1] = this.toFixed(finish[num - 1] - this.coords.big_p[num - 1]);
+
+					this.coords.big_x[num - 1] = this.toFixed(this.coords.big_p[num - 1] - this.coords.grid_gap);
+				}
+			}
+
+			this.calcGridCollision(2, start, finish);
+			this.calcGridCollision(4, start, finish);
+
+			for (i = 0; i < num; i++) {
+				label = this.$cache.grid_labels[i][0];
+
+				if (this.coords.big_x[i] !== Number.POSITIVE_INFINITY) {
+					label.style.marginLeft = -this.coords.big_x[i] + "%";
+				}
+			}
+		},
+
+		// Collisions Calc Beta
+		// TODO: Refactor then have plenty of time
+		calcGridCollision: function (step, start, finish) {
+			var i, next_i, label,
+				num = this.coords.big_num;
 
-            for (i = 0; i < num; i += step) {
-                next_i = i + (step / 2);
-                if (next_i >= num) {
-                    break;
-                }
+			for (i = 0; i < num; i += step) {
+				next_i = i + (step / 2);
+				if (next_i >= num) {
+					break;
+				}
 
-                label = this.$cache.grid_labels[next_i][0];
+				label = this.$cache.grid_labels[next_i][0];
 
-                if (finish[i] <= start[next_i]) {
-                    label.style.visibility = "visible";
-                } else {
-                    label.style.visibility = "hidden";
-                }
-            }
-        },
+				if (finish[i] <= start[next_i]) {
+					label.style.visibility = "visible";
+				} else {
+					label.style.visibility = "hidden";
+				}
+			}
+		},
 
-        calcGridMargin: function () {
-            if (!this.options.grid_margin) {
-                return;
-            }
-
-            this.coords.w_rs = this.$cache.rs.outerWidth(false);
-            if (!this.coords.w_rs) {
-                return;
-            }
-
-            if (this.options.type === "single") {
-                this.coords.w_handle = this.$cache.s_single.outerWidth(false);
-            } else {
-                this.coords.w_handle = this.$cache.s_from.outerWidth(false);
-            }
-            this.coords.p_handle = this.toFixed(this.coords.w_handle  / this.coords.w_rs * 100);
-            this.coords.grid_gap = this.toFixed((this.coords.p_handle / 2) - 0.1);
-
-            this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + "%";
-            this.$cache.grid[0].style.left = this.coords.grid_gap + "%";
-        },
-
-
-
-        // =============================================================================================================
-        // Public methods
-
-        update: function (options) {
-            if (!this.input) {
-                return;
-            }
-
-            this.is_update = true;
-
-            this.options.from = this.result.from;
-            this.options.to = this.result.to;
-            this.update_check.from = this.result.from;
-            this.update_check.to = this.result.to;
-
-            this.options = $.extend(this.options, options);
-            this.validate();
-            this.updateResult(options);
-
-            this.toggleInput();
-            this.remove();
-            this.init(true);
-        },
-
-        reset: function () {
-            if (!this.input) {
-                return;
-            }
-
-            this.updateResult();
-            this.update();
-        },
-
-        destroy: function () {
-            if (!this.input) {
-                return;
-            }
-
-            this.toggleInput();
-            this.$cache.input.prop("readonly", false);
-            $.data(this.input, "ionRangeSlider", null);
-
-            this.remove();
-            this.input = null;
-            this.options = null;
-        }
-    };
-
-    $.fn.ionRangeSlider = function (options) {
-        return this.each(function() {
-            if (!$.data(this, "ionRangeSlider")) {
-                $.data(this, "ionRangeSlider", new IonRangeSlider(this, options, plugin_count++));
-            }
-        });
-    };
-
-
-
-    // =================================================================================================================
-    // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
-    // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
-
-    // requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel
-
-    // MIT license
-
-    (function() {
-        var lastTime = 0;
-        var vendors = ['ms', 'moz', 'webkit', 'o'];
-        for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
-            window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
-            window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
-                || window[vendors[x]+'CancelRequestAnimationFrame'];
-        }
-
-        if (!window.requestAnimationFrame)
-            window.requestAnimationFrame = function(callback, element) {
-                var currTime = new Date().getTime();
-                var timeToCall = Math.max(0, 16 - (currTime - lastTime));
-                var id = window.setTimeout(function() { callback(currTime + timeToCall); },
-                    timeToCall);
-                lastTime = currTime + timeToCall;
-                return id;
-            };
-
-        if (!window.cancelAnimationFrame)
-            window.cancelAnimationFrame = function(id) {
-                clearTimeout(id);
-            };
-    }());
+		calcGridMargin: function () {
+			if (!this.options.grid_margin) {
+				return;
+			}
+
+			this.coords.w_rs = this.$cache.rs.outerWidth(false);
+			if (!this.coords.w_rs) {
+				return;
+			}
+
+			if (this.options.type === "single") {
+				this.coords.w_handle = this.$cache.s_single.outerWidth(false);
+			} else {
+				this.coords.w_handle = this.$cache.s_from.outerWidth(false);
+			}
+			this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);
+			this.coords.grid_gap = this.toFixed((this.coords.p_handle / 2) - 0.1);
+
+			this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + "%";
+			this.$cache.grid[0].style.left = this.coords.grid_gap + "%";
+		},
+
+
+
+		// =============================================================================================================
+		// Public methods
+
+		update: function (options) {
+			if (!this.input) {
+				return;
+			}
+
+			this.is_update = true;
+
+			this.options.from = this.result.from;
+			this.options.to = this.result.to;
+			this.update_check.from = this.result.from;
+			this.update_check.to = this.result.to;
+
+			this.options = $.extend(this.options, options);
+			this.validate();
+			this.updateResult(options);
+
+			this.toggleInput();
+			this.remove();
+			this.init(true);
+		},
+
+		reset: function () {
+			if (!this.input) {
+				return;
+			}
+
+			this.updateResult();
+			this.update();
+		},
+
+		destroy: function () {
+			if (!this.input) {
+				return;
+			}
+
+			this.toggleInput();
+			this.$cache.input.prop("readonly", false);
+			$.data(this.input, "ionRangeSlider", null);
+
+			this.remove();
+			this.input = null;
+			this.options = null;
+		}
+	};
+
+	$.fn.ionRangeSlider = function (options) {
+		return this.each(function() {
+			if (!$.data(this, "ionRangeSlider")) {
+				$.data(this, "ionRangeSlider", new IonRangeSlider(this, options, plugin_count++));
+			}
+		});
+	};
+
+
+
+	// =================================================================================================================
+	// http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+	// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
+
+	// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel
+
+	// MIT license
+
+	(function() {
+		var lastTime = 0;
+		var vendors = ['ms', 'moz', 'webkit', 'o'];
+		for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
+			window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
+			window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
+				|| window[vendors[x]+'CancelRequestAnimationFrame'];
+		}
+
+		if (!window.requestAnimationFrame)
+			window.requestAnimationFrame = function(callback, element) {
+				var currTime = new Date().getTime();
+				var timeToCall = Math.max(0, 16 - (currTime - lastTime));
+				var id = window.setTimeout(function() { callback(currTime + timeToCall); },
+					timeToCall);
+				lastTime = currTime + timeToCall;
+				return id;
+			};
+
+		if (!window.cancelAnimationFrame)
+			window.cancelAnimationFrame = function(id) {
+				clearTimeout(id);
+			};
+	}());
 
 }));
diff --git a/game/03-JavaScript/external/iro.js b/game/03-JavaScript/external/iro.js
index ddc4f52a33f964e81ceed32924f3ba72659c8999..d1f865bc72347d4b080b15fd2b42a4e290c061f7 100644
--- a/game/03-JavaScript/external/iro.js
+++ b/game/03-JavaScript/external/iro.js
@@ -968,7 +968,7 @@
 	return dist(cx - x, cy - y) < r;
   }
   /**
-	* @desc Get the point as the center of the wheel
+	* @desc Get the point as the centre of the wheel
 	* @param props - wheel props
 	*/
 
@@ -989,7 +989,7 @@
 
   function translateWheelAngle(props, angle, invert) {
 	var wheelAngle = props.wheelAngle;
-	var wheelDirection = props.wheelDirection; // inverted and clockwisee
+	var wheelDirection = props.wheelDirection; // inverted and clockwise
 
 	if (invert && wheelDirection === 'clockwise') { angle = wheelAngle + angle; } // clockwise (input handling)
 	else if (wheelDirection === 'clockwise') { angle = 360 - wheelAngle + angle; } // inverted and anticlockwise
@@ -1035,7 +1035,7 @@
 	x = cx - x;
 	y = cy - y; // Calculate the hue by converting the angle to radians
 
-	var hue = translateWheelAngle(props, Math.atan2(-y, -x) * (360 / TAU)); // Find the point's distance from the center of the wheel
+	var hue = translateWheelAngle(props, Math.atan2(-y, -x) * (360 / TAU)); // Find the point's distance from the centre of the wheel
 	// This is used to show the saturation level
 
 	var handleDist = Math.min(dist(x, y), handleRange);
@@ -1419,7 +1419,7 @@
 		};
 		function handleInput(x, y, inputType) {
 			if (inputType === 0 /* Start */) {
-				// input hitbox is a square, 
+				// input hitbox is a square,
 				// so we want to ignore any initial clicks outside the circular shape of the wheel
 				if (!isInputInsideWheel(props, x, y)) {
 						// returning false will cease all event handling for this interaction
@@ -1837,7 +1837,7 @@ function hexToRgb(hex) {
 }
 
 function tempEditEyeName(index, value, eye){
-	setup.colours.eyes[eye].canvasfilter.blend = setup.colours.eyes[eye].canvasfilter.blend 
+	setup.colours.eyes[eye].canvasfilter.blend = setup.colours.eyes[eye].canvasfilter.blend
 	if (V.makeup.eyelenses.left != 0 && index == 0)
 		V.makeup.eyelenses.left = value
 	else if (V.makeup.eyelenses.left == 0 && index == 0)
@@ -1894,17 +1894,17 @@ window.colorWheelContactLenses = function(){
 				p_eyes[0]
 			]),
 			layout: [
-				{ 
+				{
 				component: iro.ui.Box,
 				},
-			{ 
+			{
 				component: iro.ui.Slider,
 				options: {
 					// can also be 'saturation', 'value', 'red', 'green', 'blue', 'alpha' or 'kelvin'
 					sliderType: 'hue'
 				}
 				},
-			{ 
+			{
 				component: iro.ui.Slider,
 				options: {
 					// can also be 'saturation', 'value', 'red', 'green', 'blue', 'alpha' or 'kelvin'
@@ -1925,7 +1925,7 @@ window.colorWheelContactLenses = function(){
 			for (eye in eyes){
 				for (let s_colours in setup.colours.eyes){ // We loop through every colours currently known in the game("currently know" because new ones can be added as you get new lenses)
 					if (setup.colours.eyes[s_colours].variable == eyes[eye]){ // When we found the right colour object that matches the eye colour
-						check_condition = 1 
+						check_condition = 1
 						tempEditEyeName(eye, "colorWheelTemporary"+eye, s_colours) // we replace its colour by "colorWheelTemporary" and have this temporary colour match player's one
 						tmp_object = tempEditPlayerEyeValues(tmp_object, eye, "colorWheelTemporary"+eye, color[(V.pharmacy_order_colours == 1 ? 0 : eye)], s_colours); // we temporarily change the player eye colour, and save the original values, as to set them back afterward.
 						save_index[eye] = s_colours
diff --git a/game/03-JavaScript/external/md5.js b/game/03-JavaScript/external/md5.js
index 0b0230732cacd4428927dfd7711613493cdb4a50..50d9ea87bf11718c49b72075a8b1456f233f1279 100644
--- a/game/03-JavaScript/external/md5.js
+++ b/game/03-JavaScript/external/md5.js
@@ -132,7 +132,7 @@ function md51(s) {
  * providing access to strings as preformed UTF-8
  * 8-bit unsigned value arrays.
  */
-function md5blk(s) { /* I figured global was faster.   */
+function md5blk(s) { /* I figured global was faster.  */
 	var md5blks = [], i; /* Andy King said do it this way. */
 	for (i = 0; i < 64; i += 4) {
 		md5blks[i >> 2] = s.charCodeAt(i)
@@ -167,7 +167,7 @@ window.md5 = function(s) {
 so if possible we use it. Some IEs
 are the only ones I know of that
 need the idiotic second function,
-generated by an if clause.  */
+generated by an if clause. */
 
 function add32(a, b) {
 	return (a + b) & 0xFFFFFFFF;
diff --git a/game/03-JavaScript/eyesRelated.js b/game/03-JavaScript/eyesRelated.js
index cca72c6f0a6035f464928de11a14ccd47997f00c..8a302db6f16e7d9d37e2a7200cd5f64b42fe10bc 100644
--- a/game/03-JavaScript/eyesRelated.js
+++ b/game/03-JavaScript/eyesRelated.js
@@ -53,7 +53,7 @@ function restructureEyeColourVariable() {
 	switch (V.objectVersion.eyeRepair) {
 		case 0:
 			/* Both $leftEyeColour and $rightEyeColour should be the original colours for a character's eyes.
-				This functon below sets it to $eyecolour, if that fails, $eyeselect, then defaults to purple, the default.
+				This function below sets it to $eyecolour, if that fails, $eyeselect, then defaults to purple, the default.
 				For it to fail, it must be undefined, it is unlikely that $eyeselect is undefined, but it's likely possible. */
 			const getColour = () => (typeof V.eyecolour === 'string' ? V.eyecolour : V.eyeselect) || 'purple';
 			if (!V.leftEyeColour) {
@@ -66,7 +66,7 @@ function restructureEyeColourVariable() {
 		case 1:
 			if (V.makeup == undefined) return;
 			const lenses = V.makeup.eyelenses;
-			/* If the lens variable is a string or number, we need to generate an object, with the value appended to both .right and .left 
+			/* If the lens variable is a string or number, we need to generate an object, with the value appended to both .right and .left
 				As the heterochromia introduced forces us to define both eye colours. */
 			if (typeof lenses === 'string' || typeof lenses === 'number') {
 				V.makeup.eyelenses = {
@@ -149,12 +149,12 @@ window.eyeColorGradiant = function (rgb_beginning, rgb_end, p){ // rgb can be RG
 
 /* Randomize array in-place using Durstenfeld shuffle algorithm */
 function shuffleArray(array) {
-    for (var i = array.length - 1; i > 0; i--) {
-        var j = Math.floor(Math.random() * (i + 1));
-        var temp = array[i];
-        array[i] = array[j];
-        array[j] = temp;
-    }
+	for (var i = array.length - 1; i > 0; i--) {
+		var j = Math.floor(Math.random() * (i + 1));
+		var temp = array[i];
+		array[i] = array[j];
+		array[j] = temp;
+	}
 	return array;
 }
 
@@ -166,7 +166,7 @@ var orange = "#f59b25"
 window.determineCatEyeStages = function () { // to change the amount of changes, you only need to change the stages variable. same for target_colours
 	let target_colours = shuffleArray([green, yellow, blue, orange]) // can add or edit colours
 	let stages = 4; // amount of stages we'll have before reaching final colour
-	let total_percentage = 0.5 +  (Math.random() / 4) // Represent how much of the targeted_colour, the current eye_colours will need to adapt into. 0-1 value, where 1 == 100%;
+	let total_percentage = 0.5 + (Math.random() / 4) // Represent how much of the targeted_colour, the current eye_colours will need to adapt into. 0-1 value, where 1 == 100%;
 	var index = 0;
 	let base_colour = [setup.colours.eyes_map[V.leftEyeColour].canvasfilter.blend, setup.colours.eyes_map[V.rightEyeColour].canvasfilter.blend] // base eye colours [left, right]
 
diff --git a/game/03-JavaScript/furniture.js b/game/03-JavaScript/furniture.js
new file mode 100644
index 0000000000000000000000000000000000000000..b6a858d5673ac3c1401b15ae335a89e8d85ca863
--- /dev/null
+++ b/game/03-JavaScript/furniture.js
@@ -0,0 +1,470 @@
+const Furniture = (() => {
+	setup.furniture = new Map();
+
+	/* Keep set to false, unless during developer testing. If on true, set to false unless in use. */
+	const FORCE_UPDATE = false; /* IMPORTANT: Switch to false before the next update. */
+
+	const Categories = Object.freeze({
+		bed			: 'bed',
+		table		: 'table',
+		chair		: 'chair',
+		wardrobe	: 'wardrobe',
+		decoration	: 'decoration',
+		windowsill	: 'windowsill',
+		poster		: 'poster',
+		wallpaper	: 'wallpaper'
+	});
+
+	const Locations = Object.freeze({
+		bedroom: "bedroom",
+		cabin: "cabin",
+		cottage: "cottage"
+	});
+
+	let target = Locations.bedroom;
+
+	function furnitureInit() {
+		const mapper = setup.furniture;
+
+		/*
+		mapper.chairs.set('name', {
+			name: "stools",					Name in lowercase.
+			nameCap: "Wooden stools",		Capitalised name.
+			category: ["chair"],			Used in the shop interface.
+			type: ["chair", "expensive"],	Traits, can be multiple, shouldn't be shown because I'm too lazy to make a description /j
+			cost: 160,						Cost, 100 is one pound.
+			description: "A set of stools on which to sit on.",			Description for the shop interface to show.
+			iconFile: "stool.png",			Used in image widgets; <img id="icon" @src="'img/misc/icon/furniture/' + $_chair.iconFile">
+		});
+		
+		Egg armchairs are here to stay.
+		Egg.
+		*/
+	
+		/* ------------- CHAIRS ------------- */
+		mapper.set('stool', {
+			name: "stools",
+			nameCap: "Wooden stools",
+			category: ["chair"],
+			type: [],
+			cost: setPrice(460),
+			description: "A set of stools. Uncomfortable, but better than nothing.",
+			iconFile: "stool.png",
+		});
+		mapper.set('chair', {
+			name: "wooden chairs",
+			nameCap: "Wooden chairs",
+			category: ["chair"],
+			type: [],
+			cost: setPrice(1280),
+			description: "A set of regular wooden chairs.",
+			iconFile: "chair.png",
+		});
+		mapper.set('armchair', {
+			name: "armchairs",
+			nameCap: "Armchairs",
+			category: ["chair"],
+			type: [],
+			cost: setPrice(1970),
+			description: "A set of armchairs. Soft, relaxing and expensive.",
+			iconFile: "armchair.png",
+		});
+		mapper.set('egg', {
+			name: "egg armchairs",
+			nameCap: "Egg armchairs",
+			category: ["chair"],
+			type: [],
+			cost: setPrice(2420, 50),
+			description: "A set of armchairs with a rounded back, in exotic colours. A chore to set up.",
+			iconFile: "armchairegg.png",
+		});
+	
+		/* ------------- TABLES ------------- */
+		mapper.set('woodentable', {
+			name: "wooden table",
+			nameCap: "Wooden table",
+			category: ["table"],
+			type: [],
+			cost: setPrice(1100),
+			description: "Can be used as a working or gathering spot. Just add chairs.",
+			iconFile: "table.png",
+		});
+		mapper.set('marbletable', {
+			name: "marble-topped table",
+			nameCap: "Marble-topped table",
+			category: ["table"],
+			type: [],
+			cost: setPrice(1430),
+			description: "A regular wooden table with a twist.",
+			iconFile: "marbletable.png",
+		});
+	
+		/* ------------- BEDS ------------- */
+		mapper.set('bed', {
+			name: "basic bed",
+			nameCap: "Basic bed",
+			category: ["bed"],
+			type: ["single", "starter"],
+			cost: setPrice(0),
+			description: "An old, poor bed. Uncomfortable.",
+			iconFile: "bed.png",
+		});
+		mapper.set('singlebed', {
+			name: "single bed",
+			nameCap: "Single bed",
+			category: ["bed"],
+			type: ["single"],
+			cost: setPrice(1680),
+			description: "A bed for one.",
+			iconFile: "singlebed.png",
+		});
+		mapper.set('singlebeddeluxe', {
+			name: "deluxe single bed",
+			nameCap: "Deluxe single bed",
+			category: ["bed"],
+			type: ["single", "comfy"],
+			cost: setPrice(2400),
+			description: "An ergonomically designed bed. Very comfortable.",
+			iconFile: "singlebeddeluxe.png",
+		});
+		mapper.set('doublebed', {
+			name: "double bed",
+			nameCap: "Double bed",
+			category: ["bed"],
+			type: ["double"],
+			cost: setPrice(3400),
+			description: "A simple bed. Fits two.",
+			iconFile: "doublebed.png",
+			showFn() {
+				return target !== 'bedroom';
+			}
+		});
+		mapper.set('doublebeddeluxe', {
+			name: "deluxe double bed",
+			nameCap: "Deluxe double bed",
+			category: ["bed"],
+			type: ["double", "comfy"],
+			cost: setPrice(2840),
+			description: "A beautiful bed with a soft mattress. Very comfortable, fits two.",
+			iconFile: "doublebeddeluxe.png",
+			showFn() {
+				return target !== 'bedroom';
+			}
+		});
+		mapper.set('doublebedexotic', {
+			name: "exotic double bed",
+			nameCap: "Exotic double bed",
+			category: ["bed"],
+			type: ["double", "comfy"],
+			cost: setPrice(4884),
+			description: "A bed made in a contemporary, minimalist style. Very comfortable, fits two.",
+			iconFile: "doublebedexotic.png",
+			showFn() {
+				return target !== 'bedroom';
+			}
+		});
+		mapper.set('doublebedwicker', {
+			name: "wicker double bed",
+			nameCap: "Wicker double bed",
+			category: ["bed"],
+			type: ["double", "comfy"],
+			cost: setPrice(4860),
+			description: "An authentic bed on a rattan frame. Very comfortable, fits two.",
+			iconFile: "doublebedwicker.png",
+			showFn() {
+				return target !== 'bedroom';
+			}
+		});
+	
+		/* ------------- MISC ------------- */
+		mapper.set('plantpot', {
+			name: "plant pot",
+			nameCap: "Plant pot",
+			category: ["windowsill"],
+			type: [],
+			cost: setPrice(680),
+			description: "A clay pot with good soil. Flowers come pre-planted. Can be put on your windowsill.",
+			iconFile: "flower.png",
+			});
+		mapper.set('jar', {
+			name: "jar",
+			nameCap: "Jar",
+			category: ["windowsill"],
+			type: [],
+			cost: setPrice(1380),
+			description: "A cylindrical jar. Can be put on your windowsill.",
+			iconFile: "jar.png",
+		});
+
+		/* ------------- DECORATIONS ------------- */
+		mapper.set('calendar', {
+			name: "calendar",
+			nameCap: "Calendar",
+			category: ["decoration"],
+			type: [],
+			cost: setPrice(360),
+			description: "The days of this calendar are numbered.",
+			iconFile: "calendar.png",
+		});
+		mapper.set('painting', {
+			name: "painting",
+			nameCap: "Painting",
+			category: ["decoration"],
+			type: [],
+			cost: setPrice(680),
+			description: "It's not actually a painting. It's an illustration. ",
+			iconFile: "painting.png",
+		});
+		mapper.set('banner', {
+			name: "banner",
+			nameCap: "Banner",
+			category: ["decoration"],
+			type: [],
+			cost: setPrice(620),
+			description: "A figure from an old movie is poised in the centre.",
+			iconFile: "banner.png",
+		});
+		mapper.set('bannerlewd', {
+			name: "lewd banner",
+			nameCap: "Lewd banner",
+			category: ["decoration"],
+			type: [],
+			cost: setPrice(790),
+			description: "A banner with a tentacle.",
+			iconFile: "banner.png",
+		});
+		mapper.set('bannerfestive', {
+			name: "festive banner",
+			nameCap: "Festive banner",
+			category: ["decoration"],
+			type: [],
+			cost: setPrice(670),
+			description: "It may or may not be in season, but it still looks cool.",
+			iconFile: "bannerfestive.png",
+		});
+		mapper.set('bearplushie', {
+			name: "large bear plushie",
+			nameCap: "Large bear plushie",
+			category: ["decoration"],
+			type: [],
+			cost: setPrice(1380),
+			description: "Soft, cuddly and forever loyal.",
+			iconFile: "bearplushie.png",
+		});
+		/* ------------- WARDROBES ------------- */
+		/*  starter - 20 clothing slots for every type
+			spacious - 30 clothing slots for every type
+			organised - 40 clothing slots for every type */
+		mapper.set('wardrobe', {
+			name: "creaky wardrobe",
+			nameCap: "Creaky wardrobe",
+			category: ["wardrobe"],
+			type: ["starter"],
+			cost: setPrice(0),
+			description: "An old, creaky wardrobe. Doesn't hold much.",
+			iconFile: "wardrobe.png",
+			showFn: () => false
+		});
+		mapper.set('wardrobebasic', {
+			name: "wardrobe",
+			nameCap: "Wardrobe",
+			category: ["wardrobe"],
+			type: ["spacious"],
+			cost: setPrice(3160),
+			description: "A basic wardrobe cabinet.",
+			iconFile: "wardrobebasic.png",
+			showFn() {
+				return isWardrobeHigherTier(this);
+			}
+		});
+		mapper.set('armoire', {
+			name: "armoire",
+			nameCap: "Armoire",
+			category: ["wardrobe"],
+			type: ["spacious"],
+			cost: setPrice(3258),
+			description: "A spacious wooden armoire.",
+			iconFile: "armoire.png",
+			showFn() {
+				return isWardrobeHigherTier(this);
+			}
+		});
+		mapper.set('organiser', {
+			name: "organiser wardrobe",
+			nameCap: "Organiser wardrobe",
+			category: ["wardrobe"],
+			type: ["organiser"],
+			cost: setPrice(4296),
+			description: "A wardrobe with a lot of space.",
+			iconFile: "wardrobeorganiser.png",
+			showFn() {
+				return isWardrobeHigherTier(this);
+			}
+		});
+		mapper.set('carved', {
+			name: "carved armoire",
+			nameCap: "Carved armoire",
+			category: ["wardrobe"],
+			type: ["organiser"],
+			cost: setPrice(4620),
+			description: "Carved by hand, it holds several drawers and garment rods.",
+			iconFile: "armoirecarved.png",
+			showFn() {
+				return isWardrobeHigherTier(this);
+			}
+		});
+		/* --------------- POSTERS --------------- */
+		mapper.set('poster', {
+			name: "blank poster",
+			nameCap: "Blank poster",
+			category: ["poster"],
+			type: ["poster", "starter"],
+			cost: setPrice(135),
+			description: "The poster is currently empty.",
+			iconFile: "poster.png",
+		});
+		/* ------------- WALLPAPERS -------------- */
+		mapper.set('wallpaper', {
+			name: "blank wallpaper",
+			nameCap: "Blank wallpaper",
+			category: ["wallpaper"],
+			type: ["wallpaper", "starter"],
+			cost: setPrice(135),
+			description: "The wallpaper is currently empty.",
+			iconFile: "wallpaper.png",
+		});
+	}
+
+	function furnitureGet(type, onlySetup = false) {
+		if (typeof type !== 'string') {
+			console.debug('furnitureGet expected an argument of type: string.', type);
+			return null;
+		}
+		if (onlySetup) {
+			return setup.furniture.get(type);
+		}
+		if (!V) {
+			console.debug('furnitureGet called before SugarCube is ready, postpone execution next time.', type);
+			return null;
+		}
+		const area = V.furniture[target];
+		if (area.hasOwnProperty(type)) {
+			const current = area[type];
+			const defaults = setup.furniture.get(current.id);
+			return { ...defaults, ...current };
+		} else {
+			return null;
+		}
+	}
+
+	function furnitureSet(id, category, propertyMap) {
+		if (!setup.furniture.has(id)) {
+			Errors.report(`Furniture.Set was incorrectly passed an id not listed in furniture: ${id}`);
+			return false;
+		}
+		if (!Categories.hasOwnProperty(category)) {
+			Errors.report(`Furniture.Set was incorrectly passed an invalid category : ${category}`);
+			return false;
+		}
+		const home = V.furniture[target];
+
+		home[category] = {
+			'id'	: id
+		};
+		if (propertyMap) {
+			/* Object.defineProperties(home[category], propertyMap); */
+			Object.assign(home[category], propertyMap);
+		}
+		return true;
+	}
+
+	function furnitureIn(location) {
+		if (Object.values(Locations).includes(location)) {
+			target = location;
+		} else {
+			Errors.report(`Location provided (${location}) does not exist in the furniture system.`);
+		}
+		return Furniture;
+	}
+
+	function furnitureUpdate(fromBackComp = false) {
+		const versions = V.objectVersion;
+		if (versions.furniture === undefined || FORCE_UPDATE) {
+			versions.furniture = 0;
+		}
+		switch (versions.furniture) {
+			case 0:
+				V.furniturePriceFactor = 1;
+				V.furniture = {
+					bedroom	: {
+						bed	: {
+							id: 'bed'
+						},
+						wardrobe : {
+							id: fromBackComp ? 'organiser' : 'wardrobe'
+						}
+					}
+				}
+				wardrobeSpaceUpdater();
+				versions.furniture = 1;
+				break;
+		}
+	}
+
+	function getWardrobeTier(wardrobe) {
+		const type = wardrobe.type.find(e => ['spacious', 'organiser'].includes(e)) || 'starter';
+		const tier = { 'starter': 0, 'spacious': 1, 'organiser': 2 }[type];
+		return tier;
+	}
+
+	function isWardrobeHigherTier(wardrobe) {
+		const current = Furniture.get('wardrobe');
+		if (current) {
+			const targetTier = getWardrobeTier(wardrobe);
+			const currentTier = getWardrobeTier(current);
+			if (targetTier <= currentTier) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	function wardrobeSpaceUpdater() {
+		const wardrobe = V.wardrobe;
+		const furniture = furnitureGet('wardrobe');
+		if (typeof furniture !== 'object') return;
+		if (!(furniture.type instanceof Array)) return;
+		/* Wardrobe object appears to be good: Is an object, type is an array. */
+		if (furniture.type.includes('organiser')) {
+			wardrobe.space = 40;
+		} else if (furniture.type.includes('spacious')) {
+			wardrobe.space = 30;
+		} else {
+			wardrobe.space = 20;
+		}
+	}
+
+	function setPrice(pounds, pence = 0) {
+		return () => Math.floor((pounds * 100 + pence) * V.furniturePriceFactor);
+	}
+
+	$(document).on(':start2', function() {
+		furnitureUpdate();
+	});
+
+	/* Call the initiator function immediately. This happens when the game starts up and is loading. (Spinny wheel) */
+	furnitureInit();
+
+	return Object.freeze({
+		init			: furnitureInit,
+		get				: furnitureGet,
+		set				: furnitureSet,
+		in				: furnitureIn,
+		update			: furnitureUpdate,
+		wardrobeUpdate	: wardrobeSpaceUpdater,
+		get target() {
+			return target;
+		}
+	});
+})();
+window.Furniture = Furniture;
diff --git a/game/03-JavaScript/ingame.js b/game/03-JavaScript/ingame.js
index 1a921bda65afaae9513ef77b402af339592af096..317114df7171327cbaa66d6f93fdff2c40192c59 100644
--- a/game/03-JavaScript/ingame.js
+++ b/game/03-JavaScript/ingame.js
@@ -328,7 +328,7 @@ window.combatListColor = function (name, value, type) {
 				break;
 
 			case "leftprotect": case "rightprotect": case "leftgrip": case "rightgrip": case "leftcurl": case "rightcurl":
-				color = "sub";
+				color = "meek";
 				break;
 
 			default:
@@ -404,6 +404,65 @@ function combatDefaults() {
 
 DefineMacroS("combatDefaults", combatDefaults);
 
+/*
+* Explanation for the actionsSuccessPerSkill() function:
+* The following formula shows the old skill chance calculation.
+* (1000 - ($rng * 10) - ($enemytrust * 10) - $skill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)
+* Rearranged to
+* $skill + ($enemytrust * 10) + (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($rng * 10) gte 1000 + $enemyanger
+* The first half of the formula must be higher than the second half. So the higher the left values, the easier the action. The higher the right values, the harder the action.
+* $skill is the skill being used. That could be $handskill, $vaginalskill, $seductionskill, etc.
+* ($enemytrust * 10) is simply how much the NPC trust the player. Since $enemytrust can be negative, a bad trust can result in an increase in difficulty.
+* (($enemyarousalmax / ($enemyarousal + 1)) * 100) is the relative NPC arousal. This value can never be 100, except on the last turn.
+* The current arousal being divided by the max arousal means the higher the arousal (and by consequence the arousal percentage) the more difficult the action becomes (since the value will be lower).
+* This also means actions are more likely to succeed during the start of the combat, and get harder as the combat goes on.
+* ($rng * 10) is simply the random part of the equation, so the chance is not always locked into one result. This value varies between 0 and 1000, at a base 10 (so it can't be anything that's not a multiple of 10).
+* 1000 is the base difficulty. This rules how high the skill needs to be if all other values are 0. The higher the base difficulty, the harder the action. This is usually the main factor determining the success of the action.
+* $enemyanger is just like the trust part, but not multiplied. This means anger has 10x less impact in the action than trust, however $enemyanger cannot be negative and could be much higher than trust.
+*
+* Another form of the formula is written as
+* (700 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * $_npc.clothes[$_clothesTarget].integrity)
+* This is the difficulty to undress an NPC. The base difficulty is lower, but the arousal multiplier is different. The 100 multiplier is replaced by the NPC's clothes' integrity, which is often higher than 100. The more tattered the clothes, the harder to succeed in the action (the arousal side becomes lower).
+*
+* The function uses the following formula:
+* skill + trust + (arousalfactor * multiplier) + rng >= basedifficulty + anger
+* Which is the same as the previous formula, just renamed.
+* trust will always be $enemytrust * 10
+* arousalfactor will always be $enemyarousalmax / ($enemyarousal + 1)
+* multiplier, if not passed as an argument, will always be 100 (to complement the ($enemyarousalmax / ($enemyarousal + 1) * 100 format).
+* rng will always be $rng * 100
+* basedifficulty, if not passed as an argument, will always be 1000
+* anger is simply $enemyanger, renamed to fit in the format.
+* skill will be the selected skill. The function uses a required string argument which is skillname, being "hand", "vaginal", "seduction", etc. Whichever string is passed will be added to "skill" to make the skill variable.
+* E.g. the function passes "anal" as the only argument (and thus skillname is "anal"). skill will become the value of $analskill used in calculation.
+* So skillname is a string, and skill is an integer. Why not simply pass the skill value as the argument? Because of possible future variants, such as moor luck, affecting some variable and not the other.
+* targetid is an optional value, that doesn't see use currently but can possibly be required in the future in case any of the "enemy" variables (such as $enemyarousal or $enemytrust) become individual values ("per NPC", as health currently is).
+*
+* The output is simply: true if the action is a success, and false if the action fails.
+*/
+/**
+ * Checks skill value against combat math to determine success of an action
+ * @param {string} skillName - Simple skill name, "anus" "hand" "feet" etc
+ * @param {number} targetid - The targetted NPC's id
+ * @param {number} difficulty - Difficulty of the check, default 1000
+ * @param {number} multiplier - Multiplier on enemy arousal, default 100
+ * @returns {boolean}
+ */
+ function combatSkillCheck(skillname, targetid = 0, basedifficulty = 1000, multiplier = 100){
+	let skill = V[skillname + "skill"];
+	let rng = V.rng * 10;
+	let arousalfactor = V.enemyarousalmax / (V.enemyarousal + 1);
+	let trust = V.enemytrust * 10;
+	let anger = V.enemyanger;
+
+	if (skill + trust + (arousalfactor * multiplier) + rng >= basedifficulty + anger){
+		return true;
+	}else{
+		return false;
+	}
+}
+window.combatSkillCheck = combatSkillCheck;
+
 function hairdressersReset() {
 	jQuery(document).on('change', '.macro-listbox', function (e) {
 		new Wikifier(null, '<<replace #hairDressers>><<hairDressersOptions>><</replace>>');
@@ -554,6 +613,8 @@ window.toTitleCase = function(str) {
 	});
 }
 
+window.numbersBetween = (start, end, step = 1) => Array.from({ length: (end - start) / step + 1}, (_, i) => start + (i * step));
+
 window.getRobinLocation = function(){
 	if (V.NPCName[V.NPCNameList.indexOf("Robin")].init !== 1){
 		return;
@@ -561,8 +622,17 @@ window.getRobinLocation = function(){
 	} else if (V.robinlocationoverride && V.robinlocationoverride.during.includes(V.hour)){
 		return T.robin_location = V.robinlocationoverride.location;
 
-	} else if (V.robinmissing === 1){
-		return T.robin_location = "missing";
+	} else if (V.robinmissing === "docks"){
+		return T.robin_location = "docks";
+
+	} else if (V.robinmissing === "landfill"){
+		return T.robin_location = "landfill";
+
+	} else if (V.robinmissing === "dinner"){
+		return T.robin_location = "dinner";
+
+	} else if (V.robinmissing === "pillory"){
+		return T.robin_location = "pillory";
 
 	} else if (!between(V.hour, 7, 20)){ //if hour is 6 or lower, or 21 or higher
 		return T.robin_location = "sleep";
@@ -600,11 +670,14 @@ window.setRobinLocationOverride = function(loc, hour){
 
 window.getRobinCrossdressingStatus = function(crossdressLevel){
 	//Note returns 2 if Robin is crossdressing or 0 if not comfortable enough at that location
+	//Traumatised Robin will not crossdress.
 	if (V.NPCName[V.NPCNameList.indexOf("Robin")].init !== 1){
 		return;
 	}
 	T.robin_cd = 0;
-
+	if (V.NPCName[V.NPCNameList.indexOf("Robin")].trauma >= 40){
+		return;
+	}
 	switch (getRobinLocation()){
 		case "orphanage":
 		case "sleep":
@@ -627,7 +700,7 @@ window.getRobinCrossdressingStatus = function(crossdressLevel){
 }
 
 window.DefaultActions = {
-	create:  function (isMinimal = false, preload = false) {
+	create: function (isMinimal = false, preload = false) {
 		let storage = {};
 		setup.actionsTypes.combatTypes.forEach(type => {
 			storage[type] = {};
@@ -946,7 +1019,8 @@ window.clothesReturnLocation = function(item, type){
 //the 'modder' variable is specifically for modders name, should be kept as a short string
 window.clothesIndex = function(slot, itemToIndex) {
 	if(!slot || !itemToIndex || !itemToIndex.name || !itemToIndex.variable) {
-		console.log(`clothesIndex - slot or valid object not provided`);
+		/* console.log(`clothesIndex - slot or valid object not provided`); */
+		Errors.report(`[clothesIndex]: slot or valid object not provided`, { 'Stacktrace' : Utils.GetStack(), slot, itemToIndex });
 		return 0;
 	}
 	let index = setup.clothes[slot].findIndex((item) => item.variable === itemToIndex.variable && item.modder === itemToIndex.modder)
@@ -969,105 +1043,14 @@ window.clothesIndex = function(slot, itemToIndex) {
 	return index;
 }
 
-var pageLoading = false;
-
-Save.onLoad.add(function(save) {
-	pageLoading = true
-});
-
-// Runs before a passage load, returning a string redirects to the new passage name.
-Config.navigation.override = function (dest) {
-	const isLoading = pageLoading; // if page is freshly loading (after a refresh etc), we hold its value in a temporary variable
-	
-	pageLoading = false
-	switch (dest) {
-		case 'Pharmacy Select Custom Lenses':
-			return isLoading ? 'Pharmacy Ask Custom Lenses' : false;
-		case 'Forest Shop Outfit':
-		case 'Forest Shop Upper':
-		case 'Forest Shop Lower':
-		case 'Forest Shop Under Outfit':
-		case 'Forest Shop Under Upper':
-		case 'Forest Shop Under Lower':
-		case 'Forest Shop Head':
-		case 'Forest Shop Face':
-		case 'Forest Shop Neck':
-		case 'Forest Shop Legs':
-		case 'Forest Shop Feet':
-			return 'Forest Shop';
-
-		case 'Over Outfit Shop':
-		case 'Outfit Shop':
-		case 'Top Shop':
-		case 'Bottom Shop':
-		case 'Under Outfit Shop':
-		case 'Under Top Shop':
-		case 'Under Bottom Shop':
-		case 'Head Shop':
-		case 'Face Shop':
-		case 'Neck Shop':
-		case 'Hands Shop':
-		case 'Legs Shop':
-		case 'Shoe Shop':
-			return 'Clothing Shop';
-
-		case 'Penis Inspection Flaunt Crossdress':
-			return 'Penis Inspection Flaunt No Penis';
-
-		case 'Pussy Inspection2':
-			return 'Pussy Inspection 2';
-
-		case 'Pussy Inspection Penis':
-			return 'Pussy Inspection Flaunt No Pussy';
-
-		case 'Forest Plant Sex No Tentacles':
-			return 'Forest Plant Sex';
-
-		case 'Forest Plant Sex No Tentacles Finish':
-			return 'Forest Plant Sex Finish';
-
-		case 'Forest Plant Passout No Tentacles':
-			return 'Forest';
-
-		case 'Moor Plant Sex No Tentacles':
-			return 'Moor Plant Sex';
-
-		case 'Moor Plant Sex No Tentacles Finish':
-			return 'Moor Plant Sex Finish';
-
-		case 'Underground Plant Molestation No Tentacles':
-			return 'Underground Plant Molestation';
-
-		case 'Underground Plant Molestation No Tentacles Finish':
-			return 'Underground Plant Molestation Finish';
-
-		case 'Evens Swimming Endure':
-			return 'Events Swimming Swim Endure';
-
-		case 'Domus House Work':
-			return 'Domus Gutters Intro';
-
-		case 'Lake Underwater Tentacles Finish Figure':
-			return 'Lake Underwater Tentacles Finish';
-
-		case 'Sextoys Inventory Home':
-		case 'Sextoys Inventory Brothel':
-		case 'Sextoys Inventory Cottage':
-		case 'Sextoys Inventory Cabin':
-			return 'Sextoys Inventory';
-
-		default:
-			return false;
-	}
-}
-
 window.currentSkillValue = function(skill){
 	let result = V[skill];
 	if(!result && result !== 0) {
-		console.log(`currentSkillValue - skill '${skill}' unknown`);
+		/* console.log(`currentSkillValue - skill '${skill}' unknown`); */
+		Errors.report(`[currentSkillValue]: skill '${skill}' unknown.`, { 'Stacktrace' : Utils.GetStack(), skill });
 		return 0;
 	};
-	if(['skulduggery','physique','danceskill','swimmingskill','athletics','willpower','tending','english'].includes(skill) && V.moorLuck > 0){
+	if(['skulduggery','physique','danceskill','swimmingskill','athletics','willpower','tending','science','maths','english','history'].includes(skill) && V.moorLuck > 0){
 		result = Math.floor(result * (1 + (V.moorLuck / 100)));
 	}
 	if(['physique','danceskill','swimmingskill','athletics'].includes(skill) && V.sexStats.vagina.pregnancy.bellySize >= 10){
@@ -1162,17 +1145,6 @@ window.playerIsPenetrated = function(){
 	return [V.mouthstate, V.vaginastate, V.anusstate].some(s => ["penetrated","doublepenetrated","tentacle","tentacledeep"].includes(s))
 }
 
-window.playerHasStrapon = function(){
-	return (V.worn.under_lower.type.includes("strap-on") && V.worn.under_lower.state == "waist")
-}
-
-window.npcHasStrapon = function(index){
-	// index is 0 to 5
-	return (V.NPCList[index].penisdesc != undefined && V.NPCList[index].penisdesc.contains("strap-on"))
-	// For refactoring in the future
-	//return (V.NPCList[index].penisdesc != undefined && V.NPCList[index].strapon != undefined && V.NPCList[index].strapon.state == "worn")
-}
-
 window.getTimeString = function(minutes = 0){
 	if (minutes < 0){
 		// come on don't try negative numbers, that's silly
@@ -1232,11 +1204,11 @@ window.npcSpecifiedClothes = function (npc, name){
 	}
 }
 
-/*npc.crossdressing: 0 - doesnt at all, 1 - sometimes, 2 - always*/
+/*npc.crossdressing: 0 - doesn't at all, 1 - sometimes, 2 - always*/
 window.npcClothes = function (npc, type){
-    let crossdressing = npc.crossdressing || 0;
+	let crossdressing = npc.crossdressing || 0;
 	let gender = ['n'];
-	/* if you dont want those always crossdressing to wear neutral clothes
+	/* if you don't want those always crossdressing to wear neutral clothes
 	let gender = [];
 	if(crossdressing !== 2) gender.push('n');
 	*/
@@ -1274,121 +1246,39 @@ window.waterproofCheck = function(clothing){
 	return clothing.type.includes("swim") || clothing.type.includes("stealthy");
 }
 
-window.getSexToysofType = function (toyType){
-	var sexToys = ["dildo","whip","stroker","vibrator","all"];
-	sexToys["dildo"] = ["dildo","length of anal beads"];
-	sexToys["whip"] = ["riding crop","flog"];
-	sexToys["stroker"] = ["stroker"];
-	sexToys["vibrator"] = ["vibrator","bullet vibe"];
-	sexToys["all"] = sexToys["dildo"].concat(sexToys["whip"],sexToys["stroker"],sexToys["vibrator"]);
-
-	if (toyType != undefined){
-		if (toyType == "dildo"){
-			var dildos = sexToys["dildo"].concat(sexToys["vibrator"]);
-			return dildos;
-		}
-		else if (toyType == "stroker"){
-			return sexToys["stroker"];
-		}
-		else if (toyType == "whip"){
-			return sexToys["whip"];
-		}
-		else if (toyType == "vibrator"){
-			return sexToys["vibrator"];
-		}
-		else if (toyType == "dildos and strokers"){
-			var dildos = sexToys["dildo"].concat(sexToys["vibrator"],sexToys["stroker"]);
-			return dildos;
-		}
-		else if (toyType == "dildos and whips"){
-			var dildos = sexToys["dildo"].concat(sexToys["vibrator"],sexToys["whip"]);
-			return dildos;
-		}
-		else {
-			return sexToys["all"];
-		}
-	}
-	else {
-		//console.log("All sex toys. Length = "+sexToys["all"].length+ " and I contain: " +sexToys["all"]);
-		return sexToys["all"];
-	}
+function isLoveInterest(name) {
+	return V.loveInterest.primary === name || V.loveInterest.secondary === name || V.loveInterest.tertiary === name;
 }
+window.isLoveInterest = isLoveInterest;
 
-window.npcHasSexToyOfType = function(npcIndex,toyType){
-	var npc = V.NPCList[npcIndex];
-	if (npc.righttool != undefined || npc.lefttool != undefined){
-		var sexToys = ["dildo","whip","stroker","all"];
-		sexToys["dildo"] = getSexToysofType("dildo");
-		sexToys["whip"] = getSexToysofType("whip");
-		sexToys["stroker"] = getSexToysofType("stroker");
-		sexToys["vibrator"] = getSexToysofType("vibrator");
-		sexToys["all"] = getSexToysofType("all");
-		console.log("sex toys: "+sexToys.all);
-
-		return sexToys[toyType].contains(V.NPCList[npcIndex].righttool) || sexToys[toyType].contains(V.NPCList[npcIndex].lefttool)
-	}
-	else {
-		return false;
-	}
+window.wraithSleepEventCheck = function(){
+	return V.wraith && V.wraith.state !== "" && V.wraith.nightmare === 1 && (V.moonstate === "evening" && V.hour >= 21 || V.moonstate === "morning" && V.hour < 5);
 }
 
-window.randomSexToy = function(toyType){
-
-	if (toyType != undefined){
-		if (toyType == "dildo"){
-			var dildos = getSexToysofType("dildo");
-			return dildos[random(0,dildos.length-1)];
-		}
-		else if (toyType == "stroker"){
-			var strokers = getSexToysofType("stroker");
-			return strokers[random(0,strokers.length-1)];
-		}
-		else if (toyType == "whip"){
-			var whips = getSexToysofType("whip");
-			return whips[random(0,whips.length-1)];
-		}
-		else if (toyType == "vibrator"){
-			var vibrators = getSexToysofType("vibrator");
-			return vibrators[random(0,vibrators.length-1)];
-		}
-		else if (toyType == "dildos and strokers"){
-			var dildos = getSexToysofType("dildos and strokers");
-			return dildos[random(0,dildos.length-1)];
-		}
-		else if (toyType == "dildos and whips"){
-			var dildos = getSexToysofType("dildos and whips");
-			return dildos[random(0,dildos.length-1)];
-		}
-		else {
-			var sexToys = getSexToysofType("all")
-			return sexToys[random(0,sexToys.length-1)];
-		}
+window.fameTotal = function() {
+	let result = 0;
+	for (const key in V.fame) {
+		result += V.fame[key];
 	}
-	else {
-		//console.log("All sex toys. Length = "+sexToys["all"].length+ " and I contain: " +sexToys["all"]);
-		var sexToys = getSexToysofType("all")
-		return sexToys[random(0,sexToys.length-1)];
-	}
-}
-
-window.playerHasButtPlug = function(){
-	return (V.worn.butt_plug != undefined && V.worn.butt_plug.state == "worn" && V.worn.butt_plug.worn == 1) // V.worn.butt_plug.worn == 1 is just as a safeguard for now
+	return result;
 }
 
-window.ironmanScheduledSaves = function() {
-	let date = new Date(V.month +' '+V.monthday+', ' + V.year)
-
-	if (!V.ironmanautosaveschedule)
-		V.ironmanautosaveschedule = (date.getTime()).toString(8)
-	if (parseInt(V.ironmanautosaveschedule, 8) < date.getTime()){
-		//autosave
-		ironmanAutoSave();
-		//
-		V.ironmanautosaveschedule = (date.getTime() + (window.getRandomIntInclusive(432000, 777600) * 1000)).toString(8)
-	}
+window.fameSum = function(...fameTypes) {
+	let result = 0;
+	fameTypes.forEach(fameType => result += V.fame[fameType]);
+	return result;
 }
 
-window.wraithSleepEventCheck = function(){
-	return V.wraith && V.wraith.state !== "" && V.wraith.nightmare === 1 && (V.moonstate === "evening" && V.hour >= 21 || V.moonstate === "morning" && V.hour < 5);
+function checkTFparts() {
+	const tfParts = {}
+	Object.entries(V.transformationParts).forEach(([tfName,tf]) => /* Iterate over each transformation */
+		Object.entries(tf).forEach(([pName, pStatus]) => { /* Iterate over each part of each transformation */
+			if (pStatus !== "disabled" && pStatus !== "hidden"){ /* Filter out the parts that the player doesn't have or is suppressing */
+				tfParts[tfName+pName.toUpperFirst()] = true; /* Assign properties with camelCase names for each tf part that is visible */
+			}
+		})
+	);
+	return tfParts;
 }
+window.checkTFparts = checkTFparts;
 
diff --git a/game/03-JavaScript/link-override.js b/game/03-JavaScript/link-override.js
index 2bf8873f48cbf8b7be7a266d02758d2919a0596f..4c914e6a5b17081a62f736dc4529b5f43c0d150e 100644
--- a/game/03-JavaScript/link-override.js
+++ b/game/03-JavaScript/link-override.js
@@ -78,7 +78,7 @@ Macro.add(['button', 'link'], {
 					? () => { if (!(passage && V.nextPassage)) {Wikifier.wikifyEval(this.payload[0].contents.trim())} }
 					: null,
 				passage != null // lazy equality for null
-					? () => { 
+					? () => {
 						//check V.nextPassage and redirect all links to it if present
 						if (V.nextPassage){ V.nextPassageIntended = passage; passage = V.nextPassage; delete V.nextPassage };
 						//save sidebar scrolling position
@@ -95,7 +95,7 @@ Macro.add(['button', 'link'], {
 });
 
 
-/* required change is within Wikifier class, but since redefining it entirely would not be feasible, 
+/* required change is within Wikifier class, but since redefining it entirely would not be feasible,
 * we have to redirect `Wikifier.createInternalLink` to a local modified version
 * ideally, this should be handled within sugarcube itself */
 Wikifier.Parser.delete('link')
@@ -115,8 +115,8 @@ Wikifier.Parser.add({
 		w.nextMatch = markup.pos;
 
 		// text=(text), forceInternal=(~), link=link, setter=(setter)
-		const link  = Wikifier.helpers.evalPassageId(markup.link);
-		const text  = markup.hasOwnProperty('text') ? Wikifier.helpers.evalText(markup.text) : link;
+		const link = Wikifier.helpers.evalPassageId(markup.link);
+		const text = markup.hasOwnProperty('text') ? Wikifier.helpers.evalText(markup.text) : link;
 		const setFn = markup.hasOwnProperty('setter')
 			? Wikifier.helpers.createShadowSetterCallback(Scripting.parse(markup.setter))
 			: null
diff --git a/game/03-JavaScript/named-npc.js b/game/03-JavaScript/named-npc.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5c1e6de8cacdfa9e5d484561c2c905ea5dfe803
--- /dev/null
+++ b/game/03-JavaScript/named-npc.js
@@ -0,0 +1,69 @@
+/* This file contains utility functions for named NPCs. */
+
+function statusCheck(name) {
+	if (['Robin', 'Kylar', 'Sydney'].includes(name)) {
+		const nnpc = V.NPCName[V.NPCNameList.indexOf(name)];
+
+
+		/* To remove later */
+		if (V.debugdisable === 't' && V.debug === 0) {
+			T[name.toLowerCase()] = nnpc;
+		}
+		/* To remove later */
+
+
+		/* Assume this is successful, unless the game is severely unhinged. */
+		if (nnpc.init === 1) {
+			switch (nnpc.nam) {
+				case 'Robin':
+					getRobinLocation();
+					break;
+				case 'Kylar':
+					kylarStatusCheck(nnpc);
+					break;
+				case 'Sydney':
+					new Wikifier(null, '<<sydneyStatusCheck>>');
+					break;
+			}
+		}
+		return nnpc;
+	} else {
+		Errors.report(`getNNPC received an invalid name ${name}.`);
+		return; /* Returns undefined. */
+	}
+}
+window.statusCheck = statusCheck;
+
+function kylarStatusCheck(kylar) {
+	const kylarStatus = [];
+	// USAGE:
+	// if Kylar's love is 50+:  <<if _kylarStatus.includes("Love")>>
+	// if Kylar's love is 0-50: <<if !_kylarStatus.includes("Love")>>
+	if (kylar.love >= 50) {
+		kylarStatus.push("Love");
+	}
+	// USAGE: 
+	// if Kylar's lust is 60+:  <<if _kylarStatus.includes("Lust")>> 
+	// if Kylar's lust is 0-60: <<if !_kylarStatus.includes("Lust")>> 
+	if (kylar.lust >= 60) {
+		kylarStatus.push("Lust");
+	}
+	// USAGE: 
+	// if Kylar's jealousy is 90+:   <<if _kylarStatus.includes("MaxRage")>>
+	if (kylar.rage >= 90) {
+		kylarStatus.push("MaxRage");
+	}
+	
+	// USAGE:
+	// if Kylar's jealousy is 60+:   <<if _kylarStatus.includes("Rage")>> 
+	// if Kylar's jealousy is 30-59: <<if _kylarStatus.includes("Sus")>>
+	// if Kylar's jealousy is 0-30:  <<if _kylarStatus.includes("Calm")>>
+	if (kylar.rage >= 60) {
+		kylarStatus.push("Rage");
+	} else if (kylar.rage >= 30) {
+		kylarStatus.push("Sus");
+	} else {
+		kylarStatus.push("Calm");
+	}
+	return T.kylarStatus = kylarStatus;
+}
diff --git a/game/03-JavaScript/proto.js b/game/03-JavaScript/proto.js
index 9baeb142e0119d7565e48ddb6ca478b6846b0cb0..fe22c1ad3cb12a457df51c7b8ed3d62338c6af31 100644
--- a/game/03-JavaScript/proto.js
+++ b/game/03-JavaScript/proto.js
@@ -17,8 +17,8 @@ JSON.debug.parse = JSON.parse.bind(JSON);
 JSON.debug.stringify = JSON.stringify.bind(JSON);
 
 // We use this to prevent us from spamming the log if a
-// specific class isn't able to be found in the serializer
-// Also contains a count of the number of non-serialized object
+// specific class isn't able to be found in the serialiser
+// Also contains a count of the number of non-serialised object
 // for a given classname/path
 JSON.debug.stringifyMissingClasses = {}
 JSON.debug.stringifyClasses = {}
diff --git a/game/03-JavaScript/save.js b/game/03-JavaScript/save.js
index fa57b10fbd19cd9179e8f3fd19f6fa095401de77..e99d9b095ab665637c51f3208d255660a2adc649 100644
--- a/game/03-JavaScript/save.js
+++ b/game/03-JavaScript/save.js
@@ -1,223 +1,275 @@
-window.prepareSaveDetails = function (forceRun){
-	if("dolSaveDetails" in localStorage === false || forceRun === true){
-		var saveDetails = {autosave: null, slots:[null,null,null,null,null,null,null,null]}
-		var SugarCubeSaveDetails = Save.get();
-		if(SugarCubeSaveDetails.autosave != null){
-			saveDetails.autosave = {
-				title:SugarCubeSaveDetails.autosave.title,
-				date:SugarCubeSaveDetails.autosave.date,
-				metadata:SugarCubeSaveDetails.autosave.metadata
-			}
-			if(saveDetails.autosave.metadata === undefined){
-				saveDetails.autosave.metadata = {saveName:""};
-			}
-			if(saveDetails.autosave.metadata.saveName === undefined){
-				saveDetails.autosave.metadata.saveName = "";
-			}
-		}
-		for (var i=0; i<SugarCubeSaveDetails.slots.length;i++){
-			if(SugarCubeSaveDetails.slots[i] !== null){
-				saveDetails.slots[i] = {
-					title:SugarCubeSaveDetails.slots[i].title,
-					date:SugarCubeSaveDetails.slots[i].date,
-					metadata:SugarCubeSaveDetails.slots[i].metadata
-				};
-				if(saveDetails.slots[i].metadata === undefined){
-					saveDetails.slots[i].metadata = {saveName:"old save", saveId:0}
+const DoLSave = ((Story, Save) => {
+	'use strict';
+
+	const DEFAULT_DETAILS = Object.freeze({ id: Story.domId, autosave: null, slots: [null, null, null, null, null, null, null, null] });
+	const KEY_DETAILS = "dolSaveDetails";
+
+	function loadSave(saveSlot, confirm) {
+		if (V.confirmLoad === true && confirm === undefined) {
+			new Wikifier(null, '<<loadConfirm ' + saveSlot + '>>');
+		} else {
+			if (saveSlot === "auto") {
+				Save.autosave.load();
+			} else {
+				const saveDetails = JSON.parse(localStorage.getItem(KEY_DETAILS));
+				const metadata = saveDetails.slots[saveSlot].metadata;
+				/* Check if metadata for save matches the save's computed md5 hash. If it matches, the ironman save was not tampered with. */
+				if (metadata.ironman) {
+					const save = Save.slots.get(saveSlot);
+					const signature = md5(JSON.stringify(save.state.delta[0]));
+					// (if ironman mode enabled) following checks md5 signature of the save to see if the variables have been modified
+					if (signature !== metadata.ironman_signature) {
+						new Wikifier(null, '<<loadIronmanCheater ' + saveSlot + '>>');
+						return;
+					}
 				}
-				if(saveDetails.slots[i].metadata.saveName === undefined){
-					saveDetails.slots[i].metadata.saveName = "old save";
+				Save.slots.load(saveSlot);
+				if (V.ironmanmode) {
+					// (ironman) remove all saves(except auto-save) with the same saveId than loaded save
+					[0, 1, 2, 3, 4, 5, 6, 7].forEach(id => {
+						const saveDetail = saveDetails.slots[id];
+						if (saveDetail == null) return;
+						if (saveDetail.metadata.saveId === metadata.saveId) {
+							Save.slots.delete(id);
+							deleteSaveDetails(id);
+						}
+					});
 				}
-			}else{
-				saveDetails.slots[i] = null;
 			}
 		}
-
-		localStorage.setItem("dolSaveDetails" ,JSON.stringify(saveDetails));
 	}
-	return;
-}
 
-window.setSaveDetail = function (saveSlot, metadata, story){
-	const saveDetails = JSON.parse(localStorage.getItem("dolSaveDetails"));
-	if(saveSlot === "autosave"){
-		saveDetails.autosave = {
-			title: Story.get(V.passage).description(),
-			date:Date.now(),
-			metadata:metadata
-		};
-	}else{
-		var slot = parseInt(saveSlot);
-		saveDetails.slots[slot] = {
-			title: Story.get(V.passage).description(),
-			date:Date.now(),
-			metadata:metadata
-		};
-	}
-	localStorage.setItem("dolSaveDetails", JSON.stringify(saveDetails));
-}
-
-window.getSaveDetails = function (saveSlot){
-	if("dolSaveDetails" in localStorage) return JSON.parse(localStorage.getItem("dolSaveDetails"));
-}
-
-window.deleteSaveDetails = function (saveSlot){
-	var saveDetails = JSON.parse(localStorage.getItem("dolSaveDetails"));
-	if(saveSlot === "autosave"){
-		saveDetails.autosave = null;
-	}else{
-		var slot = parseInt(saveSlot);
-		saveDetails.slots[slot] = null;
+	function save(saveSlot, confirm, saveId, saveName) {
+		if (saveId == null) {
+			new Wikifier(null, '<<saveConfirm ' + saveSlot + '>>');
+		} else if ((V.confirmSave === true && confirm != true) || (V.saveId != saveId && saveId != null)) {
+			new Wikifier(null, '<<saveConfirm ' + saveSlot + '>>');
+		} else {
+			if (saveSlot != undefined) {
+				updateSavesCount();
+				const success = Save.slots.save(saveSlot, null, { "saveId": saveId, "saveName": saveName, "ironman": V.ironmanmode });
+				if (success) {
+					const save = Save.slots.get(saveSlot);
+					setSaveDetail(saveSlot, {
+						"saveId": saveId, "saveName": saveName,
+						"ironman": V.ironmanmode, "ironman_signature": (V.ironmanmode ? md5(JSON.stringify(save.state.delta[0])) : false)
+					});
+					V.currentOverlay = null;
+					overlayShowHide("customOverlay");
+					if (V.ironmanmode === true)
+						SugarCube.Engine.restart();
+				}
+			}
+		}
 	}
-	localStorage.setItem("dolSaveDetails" ,JSON.stringify(saveDetails));
-}
 
-window.deleteAllSaveDetails = function (saveSlot){
-	var saveDetails = {autosave: null, slots:[null,null,null,null,null,null,null,null]};
-	localStorage.setItem("dolSaveDetails" ,JSON.stringify(saveDetails));
-}
-
-window.returnSaveDetails = function () {
-	return Save.get();
-}
-
-window.resetSaveMenu = function () {
-	new Wikifier(null, '<<resetSaveMenu>>');
-}
-
-window.ironmanAutoSave = function() {
-	const saveSlot = 8;
-	updateSavesCount();
-	const success = Save.slots.save(saveSlot, null, { "saveId": V.saveId, "saveName": V.saveName, "ironman": V.ironmanmode });
-	if (success) {
-		const save = Save.slots.get(saveSlot);
-		setSaveDetail(saveSlot, {
-			"saveId": V.saveId, "saveName": V.saveName, 
-			"ironman": V.ironmanmode, "ironman_signature": (V.ironmanmode ? md5(JSON.stringify(save.state.delta[0])) : false)
-		});
+	function deleteSave(saveSlot, confirm) {
+		if (saveSlot === "all") {
+			if (confirm === undefined) {
+				new Wikifier(null, '<<clearSaveMenu>>');
+				return;
+			} else if (confirm === true) {
+				Save.clear();
+				deleteAllSaveDetails();
+			}
+		} else if (saveSlot === "auto") {
+			if (V.confirmDelete === true && confirm === undefined) {
+				new Wikifier(null, '<<deleteConfirm ' + saveSlot + '>>');
+				return;
+			} else {
+				Save.autosave.delete();
+				deleteSaveDetails("autosave");
+			}
+		} else {
+			if (V.confirmDelete === true && confirm === undefined) {
+				new Wikifier(null, '<<deleteConfirm ' + saveSlot + '>>');
+				return;
+			} else {
+				Save.slots.delete(saveSlot);
+				deleteSaveDetails(saveSlot);
+			}
+		}
+		new Wikifier(null, '<<resetSaveMenu>>');
 	}
-}
 
-window.getStateDelta = function (saveSlot) {
-	let saveDetails = getSaveDetails()
-	if (saveDetails == undefined)
-		saveDetails = returnSaveDetails()
-	else if(saveDetails.autosave == undefined || saveDetails.slots == undefined)
-		saveDetails = returnSaveDetails()
-	return saveDetails.slots[saveSlot];
-}
-
-window.loadSave = function(saveSlot, confirm) {
-	if (V.confirmLoad === true && confirm === undefined) {
-		new Wikifier(null, '<<loadConfirm ' + saveSlot + '>>');
-	} else {
-		if (saveSlot === "auto") {
-			Save.autosave.load();
-		} else {
-			const saveDetails = JSON.parse(localStorage.getItem("dolSaveDetails"));
-			const metadata = saveDetails.slots[saveSlot].metadata;
-			/* Check if metadata for save matches the save's computed md5 hash. If it matches, the ironman save was not tampered with. */
-			if (metadata.ironman) {
-				const save = Save.slots.get(saveSlot);
-				const signature = md5(JSON.stringify(save.state.delta[0]));
-				// (if ironman mode enabled) following checks md5 signature of the save to see if the variables have been modified
-				if (signature !== metadata.ironman_signature) {
-					new Wikifier(null, '<<loadIronmanCheater ' + saveSlot + '>>');
-					return;
+	function importSave(saveFile) {
+		if (!window.FileReader) return; // Browser is not compatible
+	
+		var reader = new FileReader();
+	
+		reader.onloadend = function () {
+			DeserializeGame(this.result);
+		}
+	
+		reader.readAsText(saveFile[0]);
+	}
+
+	function prepareSaveDetails(forceRun) {
+		const saveDetails = getSaveDetails();
+		if (saveDetails == null || saveDetails.id !== Story.domId || forceRun) {
+			const scSaveDetails = Save.get();
+			const dolSaveDetails = { ...DEFAULT_DETAILS };
+			/* Search SugarCube's autosave property, if it exists, reflect this in the save details. */
+			if (scSaveDetails.autosave != null) {
+				dolSaveDetails.autosave = {
+					title: scSaveDetails.autosave.title,
+					date: scSaveDetails.autosave.date,
+					metadata: scSaveDetails.autosave.metadata
+				};
+				if (dolSaveDetails.autosave.metadata === undefined) {
+					dolSaveDetails.autosave.metadata = { saveName: "" };
+				}
+				if (dolSaveDetails.autosave.metadata.saveName === undefined) {
+					dolSaveDetails.autosave.metadata.saveName = "";
 				}
 			}
-			Save.slots.load(saveSlot);
-			if (V.ironmanmode) {
-				// (ironman) remove all saves(except auto-save) with the same saveId than loaded save
-				[0, 1, 2, 3, 4, 5, 6, 7].forEach(id => {
-					const saveDetail = saveDetails.slots[id];
-					if (saveDetail == null) return;
-					if (saveDetail.metadata.saveId === metadata.saveId) {
-						Save.slots.delete(id);
-						deleteSaveDetails(id);
+			/* Check whether SugarCube's save slots exist, and populate save details with them. */
+			for (let i = 0; i < scSaveDetails.slots.length; i++) {
+				if (scSaveDetails.slots[i] !== null) {
+					dolSaveDetails.slots[i] = {
+						title: scSaveDetails.slots[i].title,
+						date: scSaveDetails.slots[i].date,
+						metadata: scSaveDetails.slots[i].metadata
+					};
+					if (dolSaveDetails.slots[i].metadata === undefined) {
+						dolSaveDetails.slots[i].metadata = { saveName: "old save", saveId: 0 }
+					}
+					if (dolSaveDetails.slots[i].metadata.saveName === undefined) {
+						dolSaveDetails.slots[i].metadata.saveName = "old save";
 					}
-				});
+				} else {
+					dolSaveDetails.slots[i] = null;
+				}
 			}
+	
+			localStorage.setItem(KEY_DETAILS, JSON.stringify(dolSaveDetails));
+			return true;
 		}
+		return false;
 	}
-}
 
-window.save = function(saveSlot, confirm, saveId, saveName) {
-	if (saveId == null) {
-		new Wikifier(null, '<<saveConfirm ' + saveSlot + '>>');
-	} else if ((V.confirmSave === true && confirm != true) || (V.saveId != saveId && saveId != null)) {
-		new Wikifier(null, '<<saveConfirm ' + saveSlot + '>>');
-	} else {
-		if (saveSlot != undefined) {
-			updateSavesCount();
-			const success = Save.slots.save(saveSlot, null, { "saveId": saveId, "saveName": saveName, "ironman": V.ironmanmode });
-			if (success) {
-				const save = Save.slots.get(saveSlot);
-				setSaveDetail(saveSlot, {
-					"saveId": saveId, "saveName": saveName, 
-					"ironman": V.ironmanmode, "ironman_signature": (V.ironmanmode ? md5(JSON.stringify(save.state.delta[0])) : false)
-				});
-				V.currentOverlay = null;
-				overlayShowHide("customOverlay");
-				if (V.ironmanmode === true)
-					SugarCube.Engine.restart();
-			}
+	function setSaveDetail(saveSlot, metadata, story) {
+		const saveDetails = JSON.parse(localStorage.getItem(KEY_DETAILS));
+		if (saveSlot === "autosave") {
+			saveDetails.autosave = {
+				id: Story.domId,
+				title: Story.get(V.passage).description(),
+				date: Date.now(),
+				metadata: metadata
+			};
+		} else {
+			var slot = parseInt(saveSlot);
+			saveDetails.slots[slot] = {
+				id: Story.domId,
+				title: Story.get(V.passage).description(),
+				date: Date.now(),
+				metadata: metadata
+			};
 		}
+		localStorage.setItem(KEY_DETAILS, JSON.stringify(saveDetails));
 	}
-}
 
-window.deleteSave = function (saveSlot, confirm) {
-	if (saveSlot === "all") {
-		if (confirm === undefined) {
-			new Wikifier(null, '<<clearSaveMenu>>');
-			return;
-		} else if (confirm === true) {
-			Save.clear();
-			deleteAllSaveDetails();
-		}
-	} else if (saveSlot === "auto") {
-		if (V.confirmDelete === true && confirm === undefined) {
-			new Wikifier(null, '<<deleteConfirm ' + saveSlot + '>>');
-			return;
-		} else {
-			Save.autosave.delete();
-			deleteSaveDetails("autosave");
+	function getSaveDetails(saveSlot) {
+		if (localStorage.hasOwnProperty(KEY_DETAILS)) {
+			const saveDetails = JSON.parse(localStorage.getItem(KEY_DETAILS));
+			if (typeof saveSlot === 'number') {
+				if (saveDetails != null) {
+					return saveDetails.slots[saveSlot];
+				}
+			} else {
+				return saveDetails;
+			}
 		}
-	} else {
-		if (V.confirmDelete === true && confirm === undefined) {
-			new Wikifier(null, '<<deleteConfirm ' + saveSlot + '>>');
-			return;
+		return null;
+	}
+
+	function deleteSaveDetails(saveSlot) {
+		const saveDetails = JSON.parse(localStorage.getItem(KEY_DETAILS));
+		if (saveSlot === "autosave") {
+			saveDetails.autosave = null;
 		} else {
-			Save.slots.delete(saveSlot);
-			deleteSaveDetails(saveSlot);
+			var slot = parseInt(saveSlot);
+			saveDetails.slots[slot] = null;
 		}
+		localStorage.setItem(KEY_DETAILS, JSON.stringify(saveDetails));
 	}
-	new Wikifier(null, '<<resetSaveMenu>>');
-}
 
-window.importSave = function (saveFile) {
-	if (!window.FileReader) return; // Browser is not compatible
+	function deleteAllSaveDetails() {
+		localStorage.setItem(KEY_DETAILS, JSON.stringify(DEFAULT_DETAILS));
+	}
 
-	var reader = new FileReader();
+	function returnSaveData() {
+		return Save.get();
+	}
 
-	reader.onloadend = function () {
-		DeserializeGame(this.result);
+	function resetSaveMenu() {
+		new Wikifier(null, '<<resetSaveMenu>>');
 	}
 
-	reader.readAsText(saveFile[0]);
-}
+	function ironmanAutoSave() {
+		const saveSlot = 8;
+		updateSavesCount();
+		const success = Save.slots.save(saveSlot, null, { "saveId": V.saveId, "saveName": V.saveName, "ironman": V.ironmanmode });
+		if (success) {
+			const save = Save.slots.get(saveSlot);
+			setSaveDetail(saveSlot, {
+				"saveId": V.saveId, "saveName": V.saveName,
+				"ironman": V.ironmanmode, "ironman_signature": (V.ironmanmode ? md5(JSON.stringify(save.state.delta[0])) : false)
+			});
+		}
+	}
 
-window.SerializeGame = function () { return Save.serialize(); }; window.DeserializeGame = function (myGameState) { return Save.deserialize(myGameState) };
+	Macro.add('incrementautosave', {
+		handler() {
+			if (!V.ironmanmode) V.saveDetails.auto.count++;
+		}
+	});
+
+	return Object.freeze({
+		save		: save,
+		load		: loadSave,
+		delete		: deleteSave,
+		import		: importSave,
+		getSaves	: returnSaveData,
+		resetMenu	: resetSaveMenu,
+		SaveDetails	: Object.freeze({
+			prepare		: prepareSaveDetails,
+			set			: setSaveDetail,
+			get			: getSaveDetails,
+			delete		: deleteSaveDetails,
+			deleteAll	: deleteAllSaveDetails
+		}),
+		IronMan		: Object.freeze({
+			autoSave	: ironmanAutoSave
+		})
+	});
+})(Story, Save);
+
+/* Legacy references, references to the global namespace should be avoided, and thus this is considered deprecated usage. */
+window.prepareSaveDetails = DoLSave.SaveDetails.prepare;
+window.setSaveDetail = DoLSave.SaveDetails.set;
+window.getSaveDetails = DoLSave.SaveDetails.get;
+window.deleteSaveDetails = DoLSave.SaveDetails.delete;
+window.deleteAllSaveDetails = DoLSave.SaveDetails.deleteAll;
+window.returnSaveDetails = DoLSave.getSaves;
+window.resetSaveMenu = DoLSave.resetMenu;
+window.ironmanAutoSave = DoLSave.IronMan.autoSave;
+window.loadSave = DoLSave.load;
+window.save = DoLSave.save;
+window.deleteSave = DoLSave.delete;
+window.importSave = DoLSave.import;
+window.SerializeGame = Save.serialize;
+window.DeserializeGame = Save.deserialize;
 
 window.getSaveData = function () {
-	var input = document.getElementById("saveDataInput");
+	const input = document.getElementById("saveDataInput");
 	updateExportDay();
 	input.value = Save.serialize();
 }
 
 window.loadSaveData = function () {
-	var input = document.getElementById("saveDataInput");
-	var result = Save.deserialize(input.value);
+	const input = document.getElementById("saveDataInput");
+	const result = Save.deserialize(input.value);
 	if (result === null) {
 		input.value = "Invalid Save."
 	}
@@ -228,86 +280,70 @@ window.clearTextBox = function (id) {
 }
 
 window.topTextArea = function (id) {
-	var textArea = document.getElementById(id);
+	const textArea = document.getElementById(id);
 	textArea.scroll(0, 0);
 }
 
 window.bottomTextArea = function (id) {
-	var textArea = document.getElementById(id);
+	const textArea = document.getElementById(id);
 	textArea.scroll(0, textArea.scrollHeight);
 }
 
 window.copySavedata = function (id) {
-	var saveData = document.getElementById(id);
+	const saveData = document.getElementById(id);
 	saveData.focus();
 	saveData.select();
 
 	try {
-		var successful = document.execCommand('copy');
+		const successful = document.execCommand('copy');
 	} catch (err) {
-		var copyTextArea = document.getElementById("CopyTextArea");
+		const copyTextArea = document.getElementById("CopyTextArea");
 		copyTextArea.value = "Copying Error";
 		console.log('Unable to copy: ', err);
 	}
 }
 
-window.copySavedata = function (id) {
-	var saveData = document.getElementById(id);
-	saveData.focus();
-	saveData.select();
-
-	try {
-		var successful = document.execCommand('copy');
-	} catch (err) {
-		var copyTextArea = document.getElementById("CopyTextArea");
-		copyTextArea.value = "Copying Error";
-		console.log('Unable to copy: ', err);
-	}
-}
-
-window.updateExportDay = function(){
-	if(V.saveDetails != undefined && SugarCube.State.history[0].variables.saveDetails != undefined){
+window.updateExportDay = function() {
+	if (V.saveDetails != undefined && State.history[0].variables.saveDetails != undefined) {
 		V.saveDetails.exported.days = clone(V.days);
-		SugarCube.State.history[0].variables.saveDetails.exported.days = clone(SugarCube.State.history[0].variables.days);
+		State.history[0].variables.saveDetails.exported.days = clone(State.history[0].variables.days);
 		V.saveDetails.exported.count++;
-		SugarCube.State.history[0].variables.saveDetails.exported.count++;
+		State.history[0].variables.saveDetails.exported.count++;
 		V.saveDetails.exported.dayCount++;
-		SugarCube.State.history[0].variables.saveDetails.exported.dayCount++;
-		var sessionJson = sessionStorage.getItem(SugarCube.Story.domId + ".state");
-		if(sessionJson != undefined){
-			var session = JSON.parse(sessionJson);
-			session.delta[0].variables.saveDetails.exported.days = clone(V.days);
-			session.delta[0].variables.saveDetails.exported.dayCount++;
-			session.delta[0].variables.saveDetails.exported.count++;
-			sessionStorage.setItem(SugarCube.Story.domId + ".state", JSON.stringify(session));
+		State.history[0].variables.saveDetails.exported.dayCount++;
+		const sessionState = session.get("state");
+		if (sessionState != null) {
+			sessionState.delta[0].variables.saveDetails.exported.days = clone(V.days);
+			sessionState.delta[0].variables.saveDetails.exported.dayCount++;
+			sessionState.delta[0].variables.saveDetails.exported.count++;
+			session.set("state", sessionState);
 		}
 	}
 }
 
-window.updateSavesCount = function(){
-	if(V.saveDetails != undefined && State.history[0].variables.saveDetails != undefined){
+window.updateSavesCount = function () {
+	if (V.saveDetails != undefined && State.history[0].variables.saveDetails != undefined) {
 		V.saveDetails.slot.count++;
 		State.history[0].variables.saveDetails.slot.count++;
 		V.saveDetails.slot.dayCount++;
 		State.history[0].variables.saveDetails.slot.dayCount++;
-		var sessionJson = sessionStorage.getItem(Story.domId + ".state");
-		if(sessionJson != undefined){
-			var session = JSON.parse(sessionJson);
-			session.delta[0].variables.saveDetails.slot.dayCount++;
-			session.delta[0].variables.saveDetails.slot.count++;
-			sessionStorage.setItem(Story.domId + ".state", JSON.stringify(session));
+		const sessionState = session.get("state");
+		if (sessionState != null) {
+			sessionState.delta[0].variables.saveDetails.slot.dayCount++;
+			sessionState.delta[0].variables.saveDetails.slot.count++;
+			session.set("state", sessionState);
 		}
 	}
 }
 
 window.importSettings = function (data, type) {
-	switch(type){
+	switch (type) {
 		case "text":
 			V.importString = document.getElementById("settingsDataInput").value
 			new Wikifier(null, '<<displaySettings "importConfirmDetails">>');
 			break;
 		case "file":
-			var reader = new FileReader();
+			const reader = new FileReader();
 			reader.addEventListener('load', function (e) {
 				V.importString = e.target.result;
 				new Wikifier(null, '<<displaySettings "importConfirmDetails">>');
@@ -321,15 +357,15 @@ window.importSettings = function (data, type) {
 }
 
 var importSettingsData = function (data) {
-	var S = null;
-	var result = data;
+	let S = null;
+	const result = data;
 	if (result != null && result != undefined) {
 		//console.log("json",JSON.parse(result));
 		S = JSON.parse(result);
 		if (V.passage === "Start" && S.starting != undefined) {
 			S.starting = settingsConvert(false, "starting", S.starting)
 		}
-		if(S.general != undefined){
+		if (S.general != undefined) {
 			S.general = settingsConvert(false, "general", S.general)
 		}
 
@@ -390,7 +426,7 @@ var importSettingsData = function (data) {
 				if (S.npc[V.NPCNameList[i]] != undefined) {
 					for (var j = 0; j < listKey.length; j++) {
 						//Overwrite to allow for "none" default value in the start passage to allow for rng to decide
-						if (V.passage === "Start" && ["pronoun","gender"].includes(listKey[j]) && S.npc[V.NPCNameList[i]][listKey[j]] === "none"){
+						if (V.passage === "Start" && ["pronoun", "gender"].includes(listKey[j]) && S.npc[V.NPCNameList[i]][listKey[j]] === "none") {
 							V.NPCName[i][listKey[j]] = S.npc[V.NPCNameList[i]][listKey[j]];
 						}
 						else if (validateValue(listObject[listKey[j]], S.npc[V.NPCNameList[i]][listKey[j]])) {
@@ -405,8 +441,8 @@ var importSettingsData = function (data) {
 
 window.validateValue = function (keys, value) {
 	//console.log("validateValue",keys,value);
-	var keyArray = Object.keys(keys);
-	var valid = false;
+	const keyArray = Object.keys(keys);
+	let valid = false;
 	if (keyArray.length === 0) {
 		valid = true;
 	}
@@ -439,7 +475,7 @@ window.validateValue = function (keys, value) {
 }
 
 window.exportSettings = function (data, type) {
-	var S = {
+	const S = {
 		general: {
 			map: {},
 			skinColor: {},
@@ -447,14 +483,17 @@ window.exportSettings = function (data, type) {
 		},
 		npc: {}
 	};
+	let listObject;
+	let listKey;
+	let namedObjects;
 	if (V.passage === "Start") {
 		S.starting = {
 			player: {},
 			skinColor: {},
 		};
-		var listObject = settingsObjects("starting");
-		var listKey = Object.keys(listObject);
-		var namedObjects = ["player", "skinColor"];
+		listObject = settingsObjects("starting");
+		listKey = Object.keys(listObject);
+		namedObjects = ["player", "skinColor"];
 
 		for (var i = 0; i < listKey.length; i++) {
 			if (namedObjects.includes(listKey[i]) && V[listKey[i]] != undefined) {
@@ -476,9 +515,9 @@ window.exportSettings = function (data, type) {
 		}
 	}
 
-	var listObject = settingsObjects("general");
-	var listKey = Object.keys(listObject);
-	var namedObjects = ["map", "skinColor", "shopDefaults"];
+	listObject = settingsObjects("general");
+	listKey = Object.keys(listObject);
+	namedObjects = ["map", "skinColor", "shopDefaults"];
 
 	for (var i = 0; i < listKey.length; i++) {
 		if (namedObjects.includes(listKey[i]) && V[listKey[i]] != undefined) {
@@ -498,13 +537,13 @@ window.exportSettings = function (data, type) {
 			}
 		}
 	}
-	var listObject = settingsObjects("npc");
-	var listKey = Object.keys(listObject);
+	listObject = settingsObjects("npc");
+	listKey = Object.keys(listObject);
 	for (var i = 0; i < V.NPCNameList.length; i++) {
 		S.npc[V.NPCNameList[i]] = {};
 		for (var j = 0; j < listKey.length; j++) {
 			//Overwrite to allow for "none" default value in the start passage to allow for rng to decide
-			if (V.passage === "Start" && ["pronoun","gender"].includes(listKey[i]) && V.NPCName[i][listKey[j]] === "none"){
+			if (V.passage === "Start" && ["pronoun", "gender"].includes(listKey[i]) && V.NPCName[i][listKey[j]] === "none") {
 				S.npc[V.NPCNameList[i]][listKey[j]] = V.NPCName[i][listKey[j]];
 			}
 			else if (validateValue(listObject[listKey[j]], V.NPCName[i][listKey[j]])) {
@@ -531,7 +570,7 @@ window.exportSettings = function (data, type) {
 }
 
 window.settingsObjects = function (type) {
-	var result = undefined;
+	let result = undefined;
 	/*boolLetter type also requires the bool type aswell*/
 	switch (type) {
 		case "starting":
@@ -545,14 +584,14 @@ window.settingsObjects = function (type) {
 				awareselect: { strings: ["innocent", "knowledgeable"], randomize: "characterTrait" },
 				background: { strings: ["waif", "nerd", "athlete", "delinquent", "promiscuous", "exhibitionist", "deviant", "beautiful", "crossdresser", "lustful", "greenthumb", "plantlover"], randomize: "characterTrait" },
 				gamemode: { strings: ["normal", "soft", "hard"] },
-				ironmanmode: {bool: false, bool:true},
-				maxStates: {min: 1, max:20, decimals: 0},
+				ironmanmode: { bool: false, bool: true },
+				maxStates: { min: 1, max: 20, decimals: 0 },
 				player: {
 					gender: { strings: ["m", "f", "h"], randomize: "characterAppearance" },
 					gender_body: { strings: ["m", "f", "a"], randomize: "characterAppearance" },
 					ballsExist: { bool: true, randomize: "characterAppearance" },
 					freckles: { bool: true, strings: ["random"], randomize: "characterAppearance" },
-					breastsize: { min: 0, max: 4, decimals: 0, randomize: "characterAppearance"  },
+					breastsize: { min: 0, max: 4, decimals: 0, randomize: "characterAppearance" },
 					penissize: { min: 0, max: 3, decimals: 0, randomize: "characterAppearance" },
 					bottomsize: { min: 0, max: 3, decimals: 0, randomize: "characterAppearance" }
 				},
@@ -608,16 +647,17 @@ window.settingsObjects = function (type) {
 				facesitdisable: { boolLetter: true, bool: true },
 				spiderdisable: { boolLetter: true, bool: true },
 				bodywritingdisable: { boolLetter: true, bool: true },
-				parasitedisable: { boolLetter: true, bool: true},
-				slugdisable: { boolLetter: true, bool: true},
-				waspdisable: {boolLetter: true, bool: true},
-				beedisable: { boolLetter: true, bool: true},
-				lurkerdisable: {boolLetter: true, bool: true},
-				horsedisable: {boolLetter: true, bool: true},
-				plantdisable: {boolLetter: true, bool: true},
-				footdisable: {boolLetter: true, bool: true},
-				toydildodisable: {boolLetter: true, bool: true},
-				toywhipdisable: {boolLetter: true, bool: true},
+				parasitedisable: { boolLetter: true, bool: true },
+				slugdisable: { boolLetter: true, bool: true },
+				waspdisable: { boolLetter: true, bool: true },
+				beedisable: { boolLetter: true, bool: true },
+				lurkerdisable: { boolLetter: true, bool: true },
+				horsedisable: { boolLetter: true, bool: true },
+				plantdisable: { boolLetter: true, bool: true },
+				footdisable: { boolLetter: true, bool: true },
+				toydildodisable: { boolLetter: true, bool: true },
+				toywhipdisable: { boolLetter: true, bool: true },
+				speechpregnancydisable: {boolLetter: true, bool: true},
 				asphyxiaLvl: { min: 0, max: 4, decimals: 0 },
 				NudeGenderDC: { min: 0, max: 2, decimals: 0 },
 				breastsizemin: { min: 0, max: 4, decimals: 0 },
@@ -658,7 +698,7 @@ window.settingsObjects = function (type) {
 				combatControls: { strings: ["radio", "lists", "limitedLists"] },
 				reducedLineHeight: { bool: true },
 				neverNudeMenus: { bool: true },
-				skipStatisticsConfirmation: { bool: true},
+				skipStatisticsConfirmation: { bool: true },
 				multipleWardrobes: { strings: [false, "isolated"] }, //, "all"
 				outfitEditorPerPage: { min: 5, max: 20, decimals: 0 }, //, "all"
 				map: {
@@ -673,12 +713,12 @@ window.settingsObjects = function (type) {
 				shopDefaults: {
 					alwaysBackToShopButton: { bool: true },
 					color: { strings: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom", "random"] },
-					colourItems: { strings: ["disable","random","default"] },
+					colourItems: { strings: ["disable", "random", "default"] },
 					compactMode: { bool: true },
 					disableReturn: { bool: true },
 					highContrast: { bool: true },
-					mannequinGender: { strings: ["same","opposite","male","female"] },
-					mannequinGenderFromClothes:  { bool: true },
+					mannequinGender: { strings: ["same", "opposite", "male", "female"] },
+					mannequinGenderFromClothes: { bool: true },
 					noHelp: { bool: true },
 					noTraits: { bool: true },
 					secColor: { strings: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom", "random"] },
@@ -697,51 +737,51 @@ window.settingsObjects = function (type) {
 	return result;
 }
 
-/*Converts specific settings to so they dont look so chaotic to players*/
-window.settingsConvert = function(exportType, type, settings){
-	var listObject = settingsObjects(type);
-	var result = settings;
-	var keys = Object.keys(listObject);
-	for (var i = 0; i < keys.length; i++){
+/*Converts specific settings to so they don't look so chaotic to players*/
+window.settingsConvert = function(exportType, type, settings) {
+	const listObject = settingsObjects(type);
+	const result = settings;
+	const keys = Object.keys(listObject);
+	for (let i = 0; i < keys.length; i++) {
 		if (result[keys[i]] === undefined) continue;
-		if(["map", "skinColor", "player", "shopDefaults"].includes(keys[i])){
+		if (["map", "skinColor", "player", "shopDefaults"].includes(keys[i])) {
 			var itemKey = Object.keys(listObject[keys[i]]);
 			for (var j = 0; j < itemKey.length; j++) {
 				if (result[keys[i]][itemKey[j]] === undefined) continue;
 				var keyArray = Object.keys(listObject[keys[i]][itemKey[j]]);
-				if(exportType){
+				if (exportType) {
 					if (keyArray.includes("boolLetter") && keyArray.includes("bool")) {
 						if (result[keys[i]][itemKey[j]] === "t") {
 							result[keys[i]][itemKey[j]] = true;
-						}else if(result[keys[i]][itemKey[j]] === "f"){
+						} else if (result[keys[i]][itemKey[j]] === "f") {
 							result[keys[i]][itemKey[j]] = false;
 						}
 					}
-				}else{
+				} else {
 					if (keyArray.includes("boolLetter") && keyArray.includes("bool")) {
 						if (result[keys[i]][itemKey[j]] === true) {
 							result[keys[i]][itemKey[j]] = "t";
-						}else if(result[keys[i]][itemKey[j]] === false){
+						} else if (result[keys[i]][itemKey[j]] === false) {
 							result[keys[i]][itemKey[j]] = "f";
 						}
 					}
 				}
 			}
-		}else{
+		} else {
 			var keyArray = Object.keys(listObject[keys[i]]);
-			if(exportType){
+			if (exportType) {
 				if (keyArray.includes("boolLetter") && keyArray.includes("bool")) {
 					if (result[keys[i]] === "t") {
 						result[keys[i]] = true;
-					}else if(result[keys[i]] === "f"){
+					} else if (result[keys[i]] === "f") {
 						result[keys[i]] = false;
 					}
 				}
-			}else{
+			} else {
 				if (keyArray.includes("boolLetter") && keyArray.includes("bool")) {
 					if (result[keys[i]] === true) {
 						result[keys[i]] = "t";
-					}else if(result[keys[i]] === false){
+					} else if (result[keys[i]] === false) {
 						result[keys[i]] = "f";
 					}
 				}
@@ -753,32 +793,32 @@ window.settingsConvert = function(exportType, type, settings){
 
 window.loadExternalExportFile = function () {
 	importScripts("DolSettingsExport.json")
-		.then(function () {
-			var textArea = document.getElementById("settingsDataInput");
+		.then(function() {
+			const textArea = document.getElementById("settingsDataInput");
 			textArea.value = JSON.stringify(DolSettingsExport);
 		})
-		.catch(function (err) {
+		.catch(function(err) {
 			//console.log(err);
-			var button = document.getElementById("LoadExternalExportFile");
+			const button = document.getElementById("LoadExternalExportFile");
 			button.value = "Error Loading";
 		});
 }
 
-window.randomizeSettings = function (filter) {
+window.randomizeSettings = function(filter) {
 	let settingsResult = {};
-	const settingContainers = ['player','skinColor'];
+	const settingContainers = ['player', 'skinColor'];
 	const randomizeSettingLoop = function (settingsObject, mainObject, subObject) {
-		if(mainObject && !settingsResult[mainObject]){
+		if (mainObject && !settingsResult[mainObject]) {
 			settingsResult[mainObject] = {};
 		}
-		if(subObject){
-			if(!settingsResult[mainObject][subObject]) settingsResult[mainObject][subObject] = {};
+		if (subObject) {
+			if (!settingsResult[mainObject][subObject]) settingsResult[mainObject][subObject] = {};
 		}
 		Object.entries(settingsObject).forEach((setting) => {
-			if(settingContainers.includes(setting[0])) {
-				randomizeSettingLoop(setting[1],mainObject,setting[0]);
-			} else if((!filter && setting[1].randomize) || (filter && filter === setting[1].randomize)){
-				if(subObject){
+			if (settingContainers.includes(setting[0])) {
+				randomizeSettingLoop(setting[1], mainObject, setting[0]);
+			} else if ((!filter && setting[1].randomize) || (filter && filter === setting[1].randomize)) {
+				if (subObject) {
 					settingsResult[mainObject][subObject][setting[0]] = randomizeSettingSet(setting[1]);
 				} else {
 					settingsResult[mainObject][setting[0]] = randomizeSettingSet(setting[1]);
@@ -786,34 +826,34 @@ window.randomizeSettings = function (filter) {
 			}
 		})
 	}
-	const randomNumber = function(min,max,decimals = 0) {
-		let decimalsMult = Math.pow(10,decimals);
+	const randomNumber = function(min, max, decimals = 0) {
+		let decimalsMult = Math.pow(10, decimals);
 		let minMult = min * decimalsMult;
 		let maxMult = max * decimalsMult;
 		let rn = (Math.floor(Math.random() * (maxMult - minMult)) + minMult) / decimalsMult;
 		return parseFloat(rn.toFixed(decimals));
 	}
-	const randomizeSettingSet = function (setting) {
+	const randomizeSettingSet = function(setting) {
 		let result;
-		var keys = Object.keys(setting);
-		if(keys.includes('min')){
+		const keys = Object.keys(setting);
+		if (keys.includes('min')) {
 			result = randomNumber(setting.min, setting.max, setting.decimals);
 		}
-		if(keys.includes('strings')){
+		if (keys.includes('strings')) {
 			result = setting.strings.pluck();
 		}
-		if(keys.includes('boolLetter')){
-			result = ['t','f'].pluck();
+		if (keys.includes('boolLetter')) {
+			result = ['t', 'f'].pluck();
 		}
-		if(keys.includes('bool')){
-			result = [true,false].pluck();
+		if (keys.includes('bool')) {
+			result = [true, false].pluck();
 		}
 		return result;
 	}
-	if(V.passage === "Start"){
-		randomizeSettingLoop(settingsObjects('starting'),'starting');
+	if (V.passage === "Start") {
+		randomizeSettingLoop(settingsObjects('starting'), 'starting');
 	}
-	randomizeSettingLoop(settingsObjects('general'),'general');
+	randomizeSettingLoop(settingsObjects('general'), 'general');
 
 	return JSON.stringify(settingsResult);
 }
@@ -830,7 +870,7 @@ window.updateMoment = function () {
 	// but for my purpose it works (i think?)
 	//delete Object.assign(moment, {delta: moment.history}).history;
 	// delta-encode the state
-	delete Object.assign(moment, {delta: State.deltaEncode(moment.history)}).history;
+	delete Object.assign(moment, { delta: State.deltaEncode(moment.history) }).history;
 	// replace saved moment in session with the new one
 	let gameName = SugarCube.Story.domId;
 	sessionStorage[gameName + ".state"] = JSON.stringify(moment);
diff --git a/game/03-JavaScript/scroll-bar.js b/game/03-JavaScript/scroll-bar.js
index d528a369e39e28ed67cba256d67b67ffae367c2f..2c7b02ab74ccd2342413ae1a59c5915bf1bf9938 100644
--- a/game/03-JavaScript/scroll-bar.js
+++ b/game/03-JavaScript/scroll-bar.js
@@ -7,7 +7,7 @@ $(document).on(":passageend", function (event) {
 	/*previous version
 	//get sidebar dom element, assign it to variable for convenience
 	let sidebar = document.querySelector("#storyCaptionDiv");
-	
+
 	//if the sidebar was not found, quit before causing errors.
 	if (sidebar == undefined) return;
 
diff --git a/game/03-JavaScript/sexShopMenu.js b/game/03-JavaScript/sexShopMenu.js
index da2e7635b1877d5e6499ee21edc30c3f2c16e3af..ea5efea9c97e5574e9510811bb076c629af9169e 100644
--- a/game/03-JavaScript/sexShopMenu.js
+++ b/game/03-JavaScript/sexShopMenu.js
@@ -243,6 +243,28 @@ setup.sextoys = [
 		unWear: setup.sextoyFunctions.unWear,
 		unCarry: setup.sextoyFunctions.unCarry,
 		display_condition: () => 1
+	}, {
+		index: 10,
+		name: "aphrodisiac pills",
+		namecap: "Aphrodisiac pills",
+		name_underscore: "aphrodisiac_pills",
+		description: "A pack of three aphrodisiac pills. The instructions say to take 'a suitable number' before sex for an enhanced experience.",
+		cost: 4000,
+		wearable: 0,
+		size: 3,
+		category: "aphrodisiacpill",
+		type: ["aphrodisiacpill"],
+		icon: "img/misc/icon/sexToys/aphrodisiacpill.png",
+		colour: 0,
+		uses: 3,
+		colour_options: ["pink"],
+		default_colour: "pink",
+		owned: setup.sextoyFunctions.owned,
+		isCarried: setup.sextoyFunctions.isCarried,
+		isWorn: setup.sextoyFunctions.isWorn,
+		unWear: setup.sextoyFunctions.unWear,
+		unCarry: setup.sextoyFunctions.unCarry,
+		display_condition: () => 1
 	}
 ];
 
@@ -284,7 +306,7 @@ window.sexShopOnItemClick = function (index) {
 	let item = setup.sextoys[index]
 	let coloring_div = "";
 
-	/* clear "Bought!/Buy it" fade in setTimeout from window.sexShopOnBuyClick  */
+	/* clear "Bought!/Buy it" fade in setTimeout from window.sexShopOnBuyClick */
 	if (window.sexShopOnGiftClick.counter !== undefined && window.sexShopOnGiftClick.counter != "off"){
 		clearTimeout(window.sexShopOnGiftClick.counter)
 		window.sexShopOnGiftClick.counter = "off"
@@ -326,7 +348,7 @@ window.sexShopOnItemClick = function (index) {
 			</div>
 			<span style="color: #bcbcbc">${item.description}</span>
 			<div id="ssm_desc_action">${coloring_div}<div style="text-align: center;">
-				<br>	
+				<br>
 				` + (V.money >= item.cost ? `<a id="ssmBuyButton" onclick="window.sexShopOnBuyClick(${item.index})" class="ssm_buy_button">
 					Buy it
 				</a> (<span class="gold">£` + item.cost / 100 + `</span>)` : `<span class="ssm_not_enough_money">Not enough money</span>` ) +
@@ -347,13 +369,13 @@ window.determineRecipient = function(index) { // conditions for gifting items to
 	if (document.getElementById("giftBr"))
 		document.getElementById("giftBr").remove()
 	if (V.money < (item.cost + (15 * 100))) // Add 15$ for gifting paperwrap
-		return ""
+		return "";
 	
-	["Alex", "Eden", "Kylar", "Robin", "Sydney"].forEach(li => {
+	for (let li of ["Alex", "Eden", "Kylar", "Robin", "Sydney"]){
 		if (V.loveInterest.primary == li || V.loveInterest.secondary == li || V.loveInterest.tertiary == li){
 			option_builder += (`<option value="${li}">${li}</option>`)
 		}
-	});
+	}
 	if (option_builder == "") // if no possible recipient, return.
 		return ""
 	builder = `<br id="giftBr"><a id="ssmGiftButton" onclick="window.sexShopOnGiftClick(${item.index})" class="ssm_gift_button">
@@ -362,30 +384,20 @@ window.determineRecipient = function(index) { // conditions for gifting items to
 	return builder
 }
 
-window.sexShopOnCloseDesc = function (elem_id) {
-	document.getElementById(elem_id).style.display = 'none'
-	/* grid item box class changes */
-	try{
-		document.getElementsByClassName("ssm_selected_a")[0].classList.remove("ssm_selected_a")
-		document.getElementsByClassName("ssm_selected_b")[0].classList.remove("ssm_selected_b")
-		document.getElementsByClassName("ssm_selected_c")[0].classList.remove("ssm_selected_c")
-	}catch{;}
-}
-
 window.sexShopOnGiftClick = function (index) {
 	let item = setup.sextoys[index];
 	let icon_class_name = document.getElementById("ssm_desc_img").className
 	let recipient = document.getElementById("recipientList").value.toLowerCase();
 
-	recipient = V.NPCName[V.NPCNameList.indexOf(recipient)]
-	window.sexShopOnGiftClick.counter = window.sexShopOnGiftClick.counter || "off"
+	recipient = window.findIndexInNPCNameVar(recipient)
+	if (recipient == undefined ) return;
 	
+	window.sexShopOnGiftClick.counter = window.sexShopOnGiftClick.counter || "off"
 	/* add item to NPC's inventory */
-	if (recipient.sextoys === undefined)
-		recipient.sextoys = {}
-	if (recipient.sextoys[item.name] === undefined) {
-		recipient.sextoys[item.name] = []
-	}
+	if (V.NPCName[recipient].sextoys == undefined)
+		V.NPCName[recipient].sextoys = {}
+	if (V.NPCName[recipient].sextoys[item.name] == undefined)
+		V.NPCName[recipient].sextoys[item.name] = []
 	let obj = {
 		"index": item.index,
 		"name": item.name,
@@ -393,8 +405,6 @@ window.sexShopOnGiftClick = function (index) {
 		"colour": (icon_class_name == '' ? item.default_colour : icon_class_name.substring(icon_class_name.indexOf("-") + 1)),
 		"worn": false,
 		"size": item.size,
-	//	"sizeDesc": {0: "", 1: "", 2: "", 3: "large", 4: "massive"}[item.size],
-	//	"desc": (this.sizeDesc + " " + this.colour + " " + this.name),
 		"carried": false,
 		"state": "worn",
 		"state_base": "worn",
@@ -405,22 +415,21 @@ window.sexShopOnGiftClick = function (index) {
 	if (item.category == "strap-on") {
 		obj.clothes_index = item.clothes_index
 	}
-	recipient.sextoys[item.name].push(obj);
-
+	V.NPCName[recipient].sextoys[item.name].push(obj);
 	/* withdraw money from player */
 	V.money -= (item.cost + (15 * 100))
-	
+
 	/* update sidebar money */
 	window.updateSideBarMoney()
-	
+
 	/* fade in/out bought green text indicator */
-	document.getElementById("ssmGiftButton").outerHTML = `<span class="ssm_gift_button ssm_fade_in" id="ssmGiftButton" style="color: #97de97">Bought!</span>`
+	document.getElementById("ssmGiftButton").outerHTML = `<span class="ssm_gift_button ssm_fade_in" id="ssmGiftButton" style="color:#97de97">Bought!</span>`
 	document.getElementById("recipientList").remove()
 	document.getElementById("spanGift").remove()
 	if (window.sexShopOnGiftClick.counter == "off"){
-		window.sexShopOnGiftClick.counter = window.setTimeout(() => {
+		window.sexShopOnGiftClick.counter = window.setTimeout(function(){
 			document.getElementById("ssmGiftButton").outerHTML = window.determineRecipient(index);
-			window.sexShopOnGiftClick.counter = "off";
+		window.sexShopOnGiftClick.counter = "off"
 		}, 1400)
 	}
 }
@@ -430,9 +439,8 @@ window.sexShopOnBuyClick = function (index) {
 	let icon_class_name = document.getElementById("ssm_desc_img").className
 	window.sexShopOnBuyClick.counter = window.sexShopOnBuyClick.counter || "off"
 	/* add item to player inventory */
-	if (V.player.inventory.sextoys[item.name] === undefined) {
+	if (V.player.inventory.sextoys[item.name] == undefined)
 		V.player.inventory.sextoys[item.name] = []
-	}
 	let obj = {
 		"index": item.index,
 		"colour": (icon_class_name == '' ? item.default_colour : icon_class_name.substring(icon_class_name.indexOf("-") + 1)),
@@ -458,13 +466,13 @@ window.sexShopOnBuyClick = function (index) {
 	/* update sidebar money */
 	window.updateSideBarMoney()
 	/* fade in "owned" icon */
-	document.getElementById("ssm_item_" + item.name_underscore).getElementsByClassName("ssm_already_owned")[0].innerHTML = `<span class="ssm_owned_text ssm_fade_in">owned</span>`;
+	document.getElementById("ssm_item_" + item.name_underscore).getElementsByClassName("ssm_already_owned")[0].innerHTML = `<span class="ssm_owned_text ssm_fade_in">owned</span>`
 	/* fade in/out bought green text indicator */
-	document.getElementById("ssmBuyButton").outerHTML = `<span class="ssm_buy_button ssm_fade_in" id="ssmBuyButton" style="color: #97de97">Bought!</span>`
+	document.getElementById("ssmBuyButton").outerHTML = `<span class="ssm_buy_button ssm_fade_in" id="ssmBuyButton" style="color:#97de97">Bought!</span>`
 	if (window.sexShopOnBuyClick.counter == "off"){
-		window.sexShopOnBuyClick.counter = window.setTimeout(() => {
+		window.sexShopOnBuyClick.counter = window.setTimeout(function(){
 			if (document.getElementById("ssmBuyButton"))
-			document.getElementById("ssmBuyButton").outerHTML = `<a id="ssmBuyButton" onclick="window.sexShopOnBuyClick(${index})" class="ssm_buy_button ssm_fade_in_fast">
+			document.getElementById("ssmBuyButton").outerHTML = `<a id="ssmBuyButton" onclick="window.sexShopOnBuyClick(` + index + `)" class="ssm_buy_button ssm_fade_in_fast">
 			Buy it
 		</a>`;
 		window.sexShopOnBuyClick.counter = "off"
@@ -473,19 +481,17 @@ window.sexShopOnBuyClick = function (index) {
 }
 
 window.createInventoryObject = function(){ // create Inventory object if it doesn't exist
-	if (V.player.inventory === undefined)
-		V.player.inventory = {
-			"sextoys": {}
-		};
-	if (V.player.inventory.sextoys === undefined){
+	var recipient;
+
+	if (V.player.inventory == undefined)
+		V.player.inventory = {}
+	if (V.player.inventory.sextoys == undefined)
 		V.player.inventory.sextoys = {}
+	for (let li of ["alex", "eden", "kylar", "robin", "sydney"]){
+		recipient = window.findIndexInNPCNameVar(li)
+		if (V.NPCName[recipient].sextoys == undefined)
+			V.NPCName[recipient].sextoys = {}
 	}
-	["Alex", "Eden", "Kylar", "Robin", "Sydney"].forEach(li => {
-		const recipient = V.NPCName[V.NPCNameList.indexOf(li)]
-		if (recipient.sextoys === undefined){
-			recipient.sextoys = {}
-		}
-	})
 }
 
 window.updateSideBarMoney = function(){
diff --git a/game/03-JavaScript/sexToysInventory.js b/game/03-JavaScript/sexToysInventory.js
index a663fb50dec553f819cbcbe9a79d284276670ff1..0956e4fb6e876bd01caf02837d37f45c67522db7 100644
--- a/game/03-JavaScript/sexToysInventory.js
+++ b/game/03-JavaScript/sexToysInventory.js
@@ -1,17 +1,17 @@
 const max_carried = 5; // maximum player can carry
 
-window.sexToysInventoryInit = function() {
-	$(function(){
+function sexToysInventoryInit() {
+	$(function() {
 		const min_cells = 12;
 		const main_grid = document.getElementById("sti_grid");
 		Object.keys(V.player.inventory.sextoys).forEach(category => {
 			const setupItem = setup.sextoys.find(toy => toy.name === category);
 			V.player.inventory.sextoys[category].forEach((item, index) => { // look for each items owned of a particular type
-				if (setupItem){
+				if (setupItem) {
 					const item_class_name = category.replace(/\s/g, '_') + "_" + index;
-					const itemStatus = (item.worn ? "worn" : item.carried ? "carried" : "" );
+					const itemStatus = (item.worn ? "worn" : item.carried ? "carried" : "");
 					const itemColour = (setupItem.colour === 1 ? "clothes-" + item.colour : "");
-					main_grid.innerHTML += 
+					main_grid.innerHTML +=
 						`<div id="sti_item_${item_class_name}" class="sti_cell sti_full" onclick="window.sexToysInventoryOnItemClick(${index},\`${category}\`)" class="">
 							<div style="position:relative;z-index: 1;">
 								<div class="sti_already_owned">
@@ -20,24 +20,25 @@ window.sexToysInventoryInit = function() {
 							</div>
 							<img id="sti_item_icon_${item_class_name}" src="${setupItem.icon}" class="${itemColour}"></img>
 							</div>
-						</div>`
+						</div>`;
 				}
-			})
-		})
+			});
+		});
 		while ((main_grid.childElementCount - 1) < min_cells || (main_grid.childElementCount - 1) % 4 != 0) { // minimum of 12 cells. minimum 4 cells per row
-			main_grid.innerHTML += `<div class="sti_cell sti_empty"></div>`
+			main_grid.innerHTML += '<div class="sti_cell sti_empty"></div>';
 		}
-		main_grid.innerHTML += 
+		main_grid.innerHTML +=
 			`<div style="position: relative;">
 				<div id="carryCount" class="sti_grid_carried_count"></div>
-			</div>`
-		window.updateCarryCountUI()
+			</div>`;
+		updateCarryCountUI();
 	});
 }
+window.sexToysInventoryInit = sexToysInventoryInit;
 
-window.sexToysInventoryOnItemClick = function (index, category) {
+function sexToysInventoryOnItemClick(index, category) {
 	const item = setup.sextoys.find(obj => obj.name === category);
-	if (item === undefined){
+	if (item === undefined) {
 		throw new Error(`Sex toy could not be found! index: [${index}]; category: [${category}]`);
 	}
 	/* grid item box class changes */
@@ -46,8 +47,8 @@ window.sexToysInventoryOnItemClick = function (index, category) {
 
 	const invItem = V.player.inventory.sextoys[category][index];
 	const invItemClassName = document.getElementById(`sti_item_icon_${item.name_underscore}_${index}`).className;
-	
-	$(`#sti_item_${item.name_underscore}_${index}`)[0].classList.add("sti_selected")
+
+	$(`#sti_item_${item.name_underscore}_${index}`)[0].classList.add("sti_selected");
 	/* description box */
 	document.getElementById("sti_descContainer").innerHTML = `
 	<div id="sti_desc_img" class="${invItemClassName}">
@@ -73,257 +74,281 @@ window.sexToysInventoryOnItemClick = function (index, category) {
 				</a>
 			</div>
 		</div>
-	</div>`
-	document.getElementById("stiDescPillContainer").style.display = ""
-	window.greyButtonsIfCarryLimitReached(index, category)
+	</div>`;
+	document.getElementById("stiDescPillContainer").style.display = "";
+	greyButtonsIfCarryLimitReached(index, category);
 }
-
-window.sexToysInventoryOnCarryClick = function (index, category) {
-	const toy = V.player.inventory.sextoys[category][index];
-	const setupCategory = setup.sextoys[toy.index].category;
-
-	if (!toy.carried) {
-		if (window.countCarriedSextoys() >= max_carried) return; // if player has reached maximum item carried, stop the function
-		toy.carried = true;
-	} else {
-		if (toy.worn && setupCategory != "strap-on") {
-			delete V.worn[setupCategory];
-		}
-		toy.carried = false;
-		toy.worn = false;
-	}
-
-	document.getElementById("stiWearButton").textContent = (toy.worn ? "Take it off" : "Wear it");
-	document.getElementById("stiCarryButton").textContent = (toy.carried ? "Put it back" : "Carry it");
+window.sexToysInventoryOnItemClick = sexToysInventoryOnItemClick;
+
+function sexToysInventoryOnCarryClick(index, category) {
+	let shortcut_category = setup.sextoys[V.player.inventory.sextoys[category][index].index].category;
+
+	if (V.player.inventory.sextoys[category][index].carried == false && countCarriedSextoys() >= max_carried) // if player has reached maximum item carried, stop the function
+		return;
+	V.player.inventory.sextoys[category][index].carried = !V.player.inventory.sextoys[category][index].carried;
+	if (V.player.inventory.sextoys[category][index].worn == true && shortcut_category != "strap-on")
+		V.worn[shortcut_category] = undefined;
+	if (V.player.inventory.sextoys[category][index].carried == false) // if player chose "Put back in the cupboard"
+		V.player.inventory.sextoys[category][index].worn = false; // also unwear the item
+	document.getElementById("stiWearButton").textContent = (V.player.inventory.sextoys[category][index].worn) ? "Take off" : "Wear it"; // update button text value
+	document.getElementById("stiCarryButton").textContent = (V.player.inventory.sextoys[category][index].carried != true ? "Carry it" : "Put back in the cupboard"); // update button text value
 	// update worn/carried tag on cell
-	document.getElementById(`sti_already_owned_${category.replace(/\s/g, '_')}_${index}`).textContent = (toy.worn ? "worn" : (toy.carried ? "carried" : ""));
-	if (setupCategory == "strap-on" && !toy.worn){ // this is an exception for strap-ons. Upon "wearing", also set them in under_lower as they don't have their own category yet.
+	document.getElementById("sti_already_owned_" + category.replace(/\s/g, '_') + "_" + index).textContent = (V.player.inventory.sextoys[category][index].worn == true ? "worn" : V.player.inventory.sextoys[category][index].carried == true ? "carried" : "");
+	if (shortcut_category == "strap-on" && V.player.inventory.sextoys[category][index].worn == false) { // this is an exception for strap-ons. Upon "wearing", also set them in under_lower as they don't have their own category yet.
 		V.worn.under_lower = setup.clothes.under_lower[0];
-		window.setLowerVisibility();
+		Wikifier.wikifyEval(' <<updatesidebarimg>>');
 	}
-	window.updateCarryCountUI()
-	window.greyButtonsIfCarryLimitReached(index, category)
+	updateCarryCountUI();
+	greyButtonsIfCarryLimitReached(index, category);
 }
+window.sexToysInventoryOnCarryClick = sexToysInventoryOnCarryClick;
 
-window.sexToysInventoryOnWearClick = function (index, category) { // "Wear it" / "Take it off"
-	const item = V.player.inventory.sextoys[category][index];
-	const setupCategory = setup.sextoys[item.index].category;
+function sexToysInventoryOnWearClick(index, category) { // "Wear it" / "Take off"
+	let shortcut_category = setup.sextoys[V.player.inventory.sextoys[category][index].index].category;
 
-	if (setupCategory == "strap-on" && V.worn.under_lower.cursed == 1){ // if player tries to wear a strapon but that under_lower is cursed
-		document.getElementById("stiCursedText").outerHTML = `<div id="stiCursedText" class="ssm_fade_in">You try to remove the ${V.worn.under_lower.name}, but fail.</div>`
-		return
+	if (shortcut_category == "strap-on" && V.worn.under_lower.cursed == 1) { // if player tries to wear a strapon but that under_lower is cursed
+		document.getElementById("stiCursedText").outerHTML = `<div id="stiCursedText" class="ssm_fade_in">You try to remove the ` + V.worn.under_lower.name + ` but fail</div>`;
+		return;
 	}
-	if (setupCategory == "butt_plug" && V.worn.genitals.cursed == 1 && V.worn.genitals.anal_shield == 1){ // if player tries to wear a butt plug but there is a cursed chastity belt fitted with an anal shield
-		document.getElementById("stiCursedText").outerHTML = `<div id="stiCursedText" class="ssm_fade_in">You can't push the ${item.name} past the ${V.worn.genitals.name}'s anal shield</div>`
-		return
+	if (shortcut_category == "butt_plug" && V.worn.genitals.cursed == 1 && V.worn.genitals.anal_shield == 1) { // if player tries to wear a butt plug but there is a cursed chastity belt fitted with an anal shield
+		document.getElementById("stiCursedText").outerHTML = `<div id="stiCursedText" class="ssm_fade_in">You can't push the ` + V.player.inventory.sextoys[category][index].name + ` past the ` + V.worn.genitals.name + `'s anal shield</div>`;
+		return;
 	}
-	if (!item.carried && window.countCarriedSextoys() >= max_carried) // if player has reached maximum item carried, stop the function
-		return
-	if (item.worn && setupCategory != "strap-on")
-		delete V.worn[setupCategory];
-	if (!item.worn){ // If player chose "Wear it"
-		const cat = setup.sextoys.find(i => i.name === category); // retrieve main category of our item in setup.sextoys
-
-		setup.sextoys.forEach(setup_item => {
-			if (setup_item.category === cat) {
-				V.player.inventory.sextoys[setup_item.name].forEach(i_item => {
-					if (i_item.worn) i_item.worn = false;
-				});
+	if (V.player.inventory.sextoys[category][index].carried == false && countCarriedSextoys() >= max_carried) // if player has reached maximum item carried, stop the function
+		return;
+	if (V.player.inventory.sextoys[category][index].worn == true && shortcut_category != "strap-on")
+		V.worn[shortcut_category] = undefined;
+	if (V.player.inventory.sextoys[category][index].worn == false) { // If player chose "Wear it"
+		for (let s_item of setup.sextoys) { // retrieve main category of our item in setup.sextoys
+			if (s_item.name == category)
+				var cat = s_item.category;
+		}
+		for (let s_item of setup.sextoys) {// search for items with same main category
+			if (s_item.category == cat) { // we find item with same main category than the item we try to wear
+				for (let i_item in V.player.inventory.sextoys[s_item.name]) // we go through each of this item owned in player inventory
+					V.player.inventory.sextoys[s_item.name][i_item].worn = false; // we unwear each of them.
 			}
-		})
+		}
 	}
-	item.worn = !item.worn
-	if (item.worn && setupCategory != "strap-on"){
-		V.worn[setupCategory] = item
-		V.worn[setupCategory].state = "worn"
+	V.player.inventory.sextoys[category][index].worn = !V.player.inventory.sextoys[category][index].worn; // then wear chose item.
+	if (shortcut_category != "strap-on") {
+		V.worn[shortcut_category] = V.player.inventory.sextoys[category][index];
+		V.worn[shortcut_category].state = "worn";
 	}
-	item.carried = true // also carry the item if not done already
-	document.getElementById("stiWearButton").textContent = (item.worn ? "Take it off" : "Wear it") // update button text value
-	document.getElementById("stiCarryButton").textContent = (item.carried ? "Put it back" : "Carry it") // update button text value
-	document.getElementById(`sti_already_owned_${category.replace(/\s/g, '_')}_${index}`).textContent = (item.worn ? "worn" : item.carried ? "carried" : "" )
-	if (setupCategory == "strap-on"){ // this is an exception for strap-ons. Upon "wearing", also set them in under_lower as they don't have their own category yet.
-		if (item.worn){
-			Wikifier.wikifyEval('<<underlowerundress "wardrobe">>');
-			V.worn.under_lower = {...setup.clothes.under_lower[item.clothes_index],
-								  ...{colour:item.colour}}
-			item.worn = true; //underlowerundress unsets this value, so it must be set again.
-		} else {
-			V.worn.under_lower = setup.clothes.under_lower[0]
+	V.player.inventory.sextoys[category][index].carried = true; // also carry the item if not done alreadys
+	document.getElementById("stiWearButton").textContent = (V.player.inventory.sextoys[category][index].worn) ? "Take off" : "Wear it"; // update button text value
+	document.getElementById("stiCarryButton").textContent = (V.player.inventory.sextoys[category][index].carried != true ? "Carry it" : "Put back in the cupboard"); // update button text value
+	document.getElementById("sti_already_owned_" + category.replace(/\s/g, '_') + "_" + index).textContent = (V.player.inventory.sextoys[category][index].worn ? "worn" : V.player.inventory.sextoys[category][index].carried ? "carried" : "");
+	$("[id*='sti_already_owned_']").each(function (i, element) {
+		let c = element.getAttribute("data-category");
+		let ind = element.getAttribute("data-index");
+		element.textContent = (V.player.inventory.sextoys[c][ind].worn ? "worn" : V.player.inventory.sextoys[c][ind].carried ? "carried" : "");
+	});
+	if (shortcut_category == "strap-on") { // this is an exception for strap-ons. Upon "wearing", also set them in under_lower as they don't have their own category yet.
+		if (V.player.inventory.sextoys[category][index].worn == true) {
+			Wikifier.wikifyEval(' <<underlowerundress "wardrobe">>');
+			V.worn.under_lower = {
+				...setup.clothes.under_lower[V.player.inventory.sextoys[category][index].clothes_index],
+				...{ colour: V.player.inventory.sextoys[category][index].colour }
+			};
 		}
-		window.setLowerVisibility(!item.worn);
+		else
+			V.worn.under_lower = setup.clothes.under_lower[0]
+		Wikifier.wikifyEval(' <<updatesidebarimg>>');
 	}
-	$("[id*='sti_already_owned_']").each(function(i, element){
-		const data_item = V.player.inventory.sextoys[element.getAttribute("data-category")][element.getAttribute("data-index")];
-		element.textContent = (data_item.worn ? "worn" : data_item.carried ? "carried" : "" )
-	})
-	window.updateCarryCountUI()
-	window.greyButtonsIfCarryLimitReached(index, category);
+	updateCarryCountUI();
+	greyButtonsIfCarryLimitReached(index, category);
 }
+window.sexToysInventoryOnWearClick = sexToysInventoryOnWearClick;
 
-window.sexToysInventoryOnThrowClick = function(index, category){
+function sexToysInventoryOnThrowClick(index, category) {
 	const playerItem = V.player.inventory.sextoys[category][index];
-	const setupCategory = setup.sextoys[playerItem.index].category
-	const last_index = document.getElementById("sti_grid").childElementCount - 1
+	const setupCategory = setup.sextoys[playerItem.index].category;
+	const last_index = document.getElementById("sti_grid").childElementCount - 1;
 	const category_name = category.replace(/\s/g, '_');
 	/* remove div */
-	document.getElementById(`sti_item_${category_name}_${index}`).remove()
+	document.getElementById(`sti_item_${category_name}_${index}`).remove();
 	/* add new empty div */
-	document.getElementById("sti_grid").children[last_index - 2].outerHTML += `<div class="sti_cell sti_empty"></div>`
+	document.getElementById("sti_grid").children[last_index - 2].outerHTML += `<div class="sti_cell sti_empty"></div>`;
 	/* close description */
-	window.sextoysOnCloseDesc("stiDescPillContainer")
+	sextoysOnCloseDesc("stiDescPillContainer");
 	if (playerItem.worn && setupCategory != "strap-on") {
 		delete V.worn[setupCategory];
 	}
 	/* handle strapons */
 	if (setupCategory === "strap-on") {
-		V.worn.under_lower = setup.clothes.under_lower[0]
-		window.setLowerVisibility(true);
+		V.worn.under_lower = setup.clothes.under_lower[0];
+		setLowerVisibility(true);
 	}
 	/* remove item from inventory object */
-	V.player.inventory.sextoys[category].splice(index, 1)
-	$("[id*='sti_item']").each(function(i, element){updateNumberInString(element, index, category)})
-	$("[id*='sti_already_owned']").each(function(i, element){updateNumberInString(element, index, category)})
-	window.updateCarryCountUI()
+	V.player.inventory.sextoys[category].splice(index, 1);
+	$("[id*='sti_item']").each(function (i, element) { updateNumberInString(element, index, category) });
+	$("[id*='sti_already_owned']").each(function (i, element) { updateNumberInString(element, index, category) });
+	updateCarryCountUI();
 }
+window.sexToysInventoryOnThrowClick = sexToysInventoryOnThrowClick;
 
-window.sextoysOnCloseDesc = function (elem_id) {
-	document.getElementById(elem_id).style.display = 'none'
+function sextoysOnCloseDesc(elem_id) {
+	document.getElementById(elem_id).style.display = 'none';
 	/* grid item box class changes */
 	const selectedBox = document.getElementsByClassName("sti_selected")[0];
 	if (selectedBox) selectedBox.classList.remove("sti_selected");
 }
+window.sextoysOnCloseDesc = sextoysOnCloseDesc;
 
-function updateNumberInString(element, index_min, category){
+function updateNumberInString(element, index_min, category) {
 	if (!element.id.contains(category.replace(/\s/g, '_'))) return; //No need to update, this element is unrelated.
 
 	const index = parseInt(element.id.match(/\d+$/)[0]); //extract the index from the element's ID and force it into a number.
 
 	if (index === NaN) throw new Error(`Misconfigured sex toy ID: ${element.id}`);
 	if (index < index_min || index <= 0) return; //No need to update, this element comes BEFORE the removed item, so its index is unaffected.
-	
-	element.id = element.id.replace(/\d+/, index-1);
+
+	element.id = element.id.replace(/\d+/, index - 1);
 	if (element.getAttribute("onclick"))
-		element.setAttribute("onclick", `window.sexToysInventoryOnItemClick(${index-1},\`${category}\`)`)
+		element.setAttribute("onclick", `window.sexToysInventoryOnItemClick(${index - 1},\`${category}\`)`);
 }
 
-window.checkSextoysGift = function (npc_name) {
+function checkSextoysGift(npc_name) {
 	const npc = V.NPCName.find(n => n.nam === npc_name);
-	if (!npc){
+	if (!npc) {
 		throw new Error("Invalid NPC name given!");
 	} else {
-		return Object.values(npc.sextoys).some(category => category.some(item => item.gift_state === "held"))
+		return Object.values(npc.sextoys).some(category => category.some(item => item.gift_state === "held"));
 	}
 }
+window.checkSextoysGift = checkSextoysGift;
 
-window.listUniqueCarriedSextoys = function () {
+function listUniqueCarriedSextoys() {
 	const list = []
 	Object.values(V.player.inventory.sextoys).forEach(category =>
-		category.filter(item => item.carried).forEach(item => list.push(item))
-	);
+		category.filter(item => item.carried).forEach(item => list.push(item)));
 	return list;
 }
+window.listUniqueCarriedSextoys = listUniqueCarriedSextoys;
 
-window.playerHasSexToys = function () {
-	return Object.values(V.player.inventory.sextoys).some(category => category.length > 0)
+function playerHasSexToys() {
+	return Object.values(V.player.inventory.sextoys).some(category => category.length > 0);
 }
+window.playerHasSexToys = playerHasSexToys;
 
-window.straponExceptionWearOff = function(){
+function straponExceptionWearOff() {
 	V.player.inventory.sextoys.forEach(category => {
 		category.forEach(item => {
 			if (item.name === V.worn.under_lower.name) item.worn = false;
-		})
-	})
+		});
+	});
 }
+window.straponExceptionWearOff = straponExceptionWearOff;
 
-window.patchStraponsWearStatus = function () {
+function patchStraponsWearStatus() {
 	Object.values(V.player.inventory.sextoys).forEach(category => category.filter(strapon => strapon.type.includes("strap-on")).forEach(strapon => {
-		if (strapon.name !== V.worn.under_lower.name) strapon.worn = false
-		else if (strapon.colour == V.worn.under_lower.colour) strapon.worn = true
+		if (strapon.name !== V.worn.under_lower.name) strapon.worn = false;
+		else if (strapon.colour == V.worn.under_lower.colour) strapon.worn = true;
 	}));
 }
+window.patchStraponsWearStatus = patchStraponsWearStatus;
 
-window.checkIfNPCHasCategorySextoy = function (npc_name, category){
-	const setupToys = Object.values(setup.sextoys).map(n => (n.category === category ? n.name : false)).filter(Boolean);
-	if (setupToys.length === 0){
-		throw new Error("Invalid sex toy category given!");
-	}
-
+function checkIfNPCHasCategorySextoy(npc_name, category) {
 	const npc = V.NPCName.find(n => n.nam === npc_name);
-	if (!npc){
+	if (!npc) {
 		throw new Error("Invalid NPC name given!");
 	}
 
-	const npcSextoys = [];
+	const categoryToyNames = Object.values(setup.sextoys).filter(n => n.category === category).map(n => n.name);
+	if (categoryToyNames.length === 0) {
+		throw new Error("Invalid sex toy category given!");
+	}
+
+	const npcSexToys = [];
 	Object.values(npc.sextoys).forEach(category => {
-		if (setupToys.includes(category)) category.forEach(item => {
-			if (item.gift_state != "held") npcSextoys.push(item);
-		})
+		category.forEach(item => {
+			if (categoryToyNames.includes(item.name) && item.gift_state != "held")
+				npcSexToys.push(item);
+		});
 	});
-
-	return npcSextoys;
+	return npcSexToys;
 }
+window.checkIfNPCHasCategorySextoy = checkIfNPCHasCategorySextoy;
 
-window.handSextoysGiftToNPC = function (npc_name){
+function handSextoysGiftToNPC(npc_name) {
 	const npc = V.NPCName.find(n => n.nam === npc_name);
-	if (!npc){
+	if (!npc) {
 		throw new Error("Invalid NPC name given!");
 	}
-	npc.sextoys.forEach(category => {
+	Object.values(npc.sextoys).forEach(category => {
 		category.forEach(item => {
 			if (item.gift_state === "held") item.gift_state = "received";
-		})
-	})
+		});
+	});
 }
+window.handSextoysGiftToNPC = handSextoysGiftToNPC;
 
-window.countCarriedSextoys = function() {
+function findIndexInNPCNameVar(npc_name) {
+	for (let npc in V.NPCName) {
+		if (V.NPCName[npc].nam.toLowerCase() == npc_name.toLowerCase())
+			return npc;
+	}
+}
+window.findIndexInNPCNameVar = findIndexInNPCNameVar;
+
+function countCarriedSextoys() {
 	let count = 0;
 
 	Object.values(V.player.inventory.sextoys).forEach(category => {
-		count += category.filter(item => item.carried).length
-	})
+		count += category.filter(item => item.carried).length;
+	});
 	return count;
 }
-
-window.updateCarryCountUI = function() {
-	const colour = (window.countCarriedSextoys() >= max_carried ? "red" : "");
-	document.getElementById("carryCount").outerHTML = 
-	`<div id="carryCount" class="sti_grid_carried_count">
-		Items carried: <span class="${colour}">${window.countCarriedSextoys()}/${max_carried}</span>
-	</div>`
+window.countCarriedSextoys = countCarriedSextoys;
+
+function updateCarryCountUI() {
+	const colour = (countCarriedSextoys() >= max_carried ? "red" : "");
+	document.getElementById("carryCount").outerHTML =
+		`<div id="carryCount" class="sti_grid_carried_count">
+		Items carried: <span class="${colour}">${countCarriedSextoys()}/${max_carried}</span>
+	</div>`;
 }
+window.updateCarryCountUI = updateCarryCountUI;
 
-window.greyButtonsIfCarryLimitReached = function(index, category) {
-	if (window.countCarriedSextoys() >= max_carried){
+function greyButtonsIfCarryLimitReached(index, category) {
+	if (countCarriedSextoys() >= max_carried) {
 		const item = V.player.inventory.sextoys[category][index];
 		if (!item.carried) {
-			document.getElementById("stiCarryButton").classList.add("sti_carry_limit_reached")
-			if (!item.worn) document.getElementById("stiWearButton").classList.add("sti_carry_limit_reached")
+			document.getElementById("stiCarryButton").classList.add("sti_carry_limit_reached");
+			if (!item.worn) document.getElementById("stiWearButton").classList.add("sti_carry_limit_reached");
 		}
 	}
 }
+window.greyButtonsIfCarryLimitReached = greyButtonsIfCarryLimitReached;
 
-window.wardrobeStripStraponException = function (item_name) {
+function wardrobeStripStraponException(item_name) {
 	V.player.inventory.sextoys[item_name].forEach(item => item.worn = false);
-	V.worn.under_lower = setup.clothes.under_lower[0]
+	V.worn.under_lower = setup.clothes.under_lower[0];
 }
+window.wardrobeStripStraponException = wardrobeStripStraponException;
 
-window.tempHideLower = function() {
+function tempHideLower() {
 	if (T.lowerVisible === undefined) T.lowerVisible = true;
-	window.setLowerVisibility(!T.lowerVisible);
+	setLowerVisibility(!T.lowerVisible);
 }
+window.tempHideLower = tempHideLower;
 
-window.setLowerVisibility = function(desiredVisibility){
-	const elem = document.querySelector("#stiShowUnderwear > .link-internal");
+function setLowerVisibility(desiredVisibility) {
 	T.lowerVisible = desiredVisibility;
-	if (!T.lowerVisible){
+	if (!T.lowerVisible) {
 		const tmp = V.worn.lower;
 		V.worn.lower = setup.clothes.lower[0];
 		Wikifier.wikifyEval('<<updatesidebarimg>>');
-		V.worn.lower = tmp
+		V.worn.lower = tmp;
 	} else {
 		Wikifier.wikifyEval('<<updatesidebarimg>>');
 	}
 
-	elem.text = (!T.lowerVisible ? "Show lower clothing" : "Hide lower clothing");
+	const elem = document.querySelector("#stiShowUnderwear > .link-internal");
+	if (elem !== null)
+		elem.text = (!T.lowerVisible ? "Show lower clothing" : "Hide lower clothing");
+
 	Links.generateLinkNumbers($(".passage"));
-}
\ No newline at end of file
+}
+window.setLowerVisibility = setLowerVisibility;
diff --git a/game/03-JavaScript/sextoys.js b/game/03-JavaScript/sextoys.js
new file mode 100644
index 0000000000000000000000000000000000000000..b3616b3f543f07f09809e55ee37e8339f3d0e384
--- /dev/null
+++ b/game/03-JavaScript/sextoys.js
@@ -0,0 +1,126 @@
+function playerHasStrapon() {
+	return (V.worn.under_lower.type.includes("strap-on") && V.worn.under_lower.state == "waist")
+}
+window.playerHasStrapon = playerHasStrapon;
+
+function npcHasStrapon(index) {
+	if (typeof index !== 'number') {
+		if (V.debugdisable === 'f' || V.debug === 1)
+			Errors.report(`[npcHasStrapon]: index must be a number, was ${typeof index}.`, { index });
+		return false;
+	} else if (index < 0 || index > 5) {
+		if (V.debugdisable === 'f' || V.debug === 1)
+			Errors.report(`[npcHasStrapon]: index must be between 0 and 5 inclusive, was ${index}.`, { index });
+		return false;
+	}
+	// index is 0 to 5
+	const npc = V.NPCList[index];
+	return (npc && npc.strapon && npc.strapon.state === "worn");
+}
+window.npcHasStrapon = npcHasStrapon;
+
+function getSexToysofType(toyType) {
+	var sexToys = ["dildo","whip","stroker","vibrator","all"];
+	sexToys["dildo"] = ["dildo","length of anal beads"];
+	sexToys["whip"] = ["riding crop","flog"];
+	sexToys["stroker"] = ["stroker"];
+	sexToys["vibrator"] = ["vibrator","bullet vibe"];
+	sexToys["all"] = sexToys["dildo"].concat(sexToys["whip"],sexToys["stroker"],sexToys["vibrator"]);
+
+	if (toyType != undefined){
+		if (toyType == "dildo"){
+			var dildos = sexToys["dildo"].concat(sexToys["vibrator"]);
+			return dildos;
+		}
+		else if (toyType == "stroker"){
+			return sexToys["stroker"];
+		}
+		else if (toyType == "whip"){
+			return sexToys["whip"];
+		}
+		else if (toyType == "vibrator"){
+			return sexToys["vibrator"];
+		}
+		else if (toyType == "dildos and strokers"){
+			var dildos = sexToys["dildo"].concat(sexToys["vibrator"],sexToys["stroker"]);
+			return dildos;
+		}
+		else if (toyType == "dildos and whips"){
+			var dildos = sexToys["dildo"].concat(sexToys["vibrator"],sexToys["whip"]);
+			return dildos;
+		}
+		else {
+			return sexToys["all"];
+		}
+	}
+	else {
+		//console.log("All sex toys. Length = "+sexToys["all"].length+ " and I contain: " +sexToys["all"]);
+		return sexToys["all"];
+	}
+}
+window.getSexToysofType = getSexToysofType;
+
+function npcHasSexToyOfType(npcIndex,toyType) {
+	var npc = V.NPCList[npcIndex];
+	if (npc.righttool != undefined || npc.lefttool != undefined){
+		var sexToys = ["dildo","whip","stroker","all"];
+		sexToys.dildo = getSexToysofType("dildo");
+		sexToys.whip = getSexToysofType("whip");
+		sexToys.stroker = getSexToysofType("stroker");
+		sexToys.vibrator = getSexToysofType("vibrator");
+		sexToys.all = getSexToysofType("all");
+
+		/* Only output to console if in debug mode. */
+		if (V.debug) console.log("sex toys: "+sexToys.all);
+
+		return sexToys[toyType].includes(V.NPCList[npcIndex].righttool) || sexToys[toyType].includes(V.NPCList[npcIndex].lefttool)
+	}
+	else {
+		return false;
+	}
+}
+window.npcHasSexToyOfType = npcHasSexToyOfType;
+
+function randomSexToy(toyType) {
+	if (toyType != undefined){
+		if (toyType == "dildo"){
+			var dildos = getSexToysofType("dildo");
+			return dildos[random(0,dildos.length-1)];
+		}
+		else if (toyType == "stroker"){
+			var strokers = getSexToysofType("stroker");
+			return strokers[random(0,strokers.length-1)];
+		}
+		else if (toyType == "whip"){
+			var whips = getSexToysofType("whip");
+			return whips[random(0,whips.length-1)];
+		}
+		else if (toyType == "vibrator"){
+			var vibrators = getSexToysofType("vibrator");
+			return vibrators[random(0,vibrators.length-1)];
+		}
+		else if (toyType == "dildos and strokers"){
+			var dildos = getSexToysofType("dildos and strokers");
+			return dildos[random(0,dildos.length-1)];
+		}
+		else if (toyType == "dildos and whips"){
+			var dildos = getSexToysofType("dildos and whips");
+			return dildos[random(0,dildos.length-1)];
+		}
+		else {
+			var sexToys = getSexToysofType("all")
+			return sexToys[random(0,sexToys.length-1)];
+		}
+	}
+	else {
+		//console.log("All sex toys. Length = "+sexToys["all"].length+ " and I contain: " +sexToys["all"]);
+		var sexToys = getSexToysofType("all")
+		return sexToys[random(0,sexToys.length-1)];
+	}
+}
+window.randomSexToy = randomSexToy;
+
+function playerHasButtPlug() {
+	return (V.worn.butt_plug != undefined && V.worn.butt_plug.state == "worn" && V.worn.butt_plug.worn == 1) // V.worn.butt_plug.worn == 1 is just as a safeguard for now
+}
+window.playerHasButtPlug = playerHasButtPlug;
diff --git a/game/03-JavaScript/ui-radiovar.js b/game/03-JavaScript/ui-radiovar.js
index 17ee0f57c13b53a07ad31848c8caa83d66ebbe68..51f23ee49bc747e306041891c1f6a90792b9aab3 100644
--- a/game/03-JavaScript/ui-radiovar.js
+++ b/game/03-JavaScript/ui-radiovar.js
@@ -21,7 +21,7 @@ Macro.add("radiovar", {
 				tabindex: 0,
 				type: "radio"
 			})
-			.prop("checked", State.getVar(varname) ==  value)
+			.prop("checked", State.getVar(varname) == value)
 			.addClass("macro-radiovar")
 			.on('change.macros', function () {
 				if (this.checked) {
diff --git a/game/04-Variables/canvasmodel-example.js b/game/04-Variables/canvasmodel-example.js
index 6dfaac9e6c34bc64dbcc89aee4ded0903450e5e1..e76eca79678dd4d8d1452f28256bd80054ae2cd9 100644
--- a/game/04-Variables/canvasmodel-example.js
+++ b/game/04-Variables/canvasmodel-example.js
@@ -20,7 +20,7 @@ Renderer.CanvasModels["sexdemo"] = {
 
 	/**
 	 * Default option values.
-	 * All possible options should be initialized to some non-crashing values here.
+	 * All possible options should be initialised to some non-crashing values here.
 	 * Should also have a `filter:{}` option for model filters
 	 */
 	defaultOptions() {
diff --git a/game/04-Variables/canvasmodel-main.js b/game/04-Variables/canvasmodel-main.js
index c010fe60f1a29c9e8d60f44dc5982e12ea8730a8..f272abc81667c24f60c162e509123831fae3a66c 100644
--- a/game/04-Variables/canvasmodel-main.js
+++ b/game/04-Variables/canvasmodel-main.js
@@ -225,7 +225,6 @@ Renderer.CanvasModels["main"] = {
 			"show_tf": true,
 			"show_clothes": true,
 			// body
-			"fools": setup.isFools(),
 			"mannequin": false,
 			"breasts": "",
 			"breast_size": 1,
@@ -268,8 +267,8 @@ Renderer.CanvasModels["main"] = {
 			"blink": true,
 			"eyes_half": false,
 			"eyes_bloodshot": false,
-			"left_eye":"purple",
-			"right_eye":"purple",
+			"left_eye": "purple",
+			"right_eye": "purple",
 			"brows": "none",
 			"mouth": "none",
 			"tears": 0,
@@ -329,85 +328,85 @@ Renderer.CanvasModels["main"] = {
 			"worn_upper_integrity": "full",
 			"worn_upper_colour": "white",
 			"worn_upper_acc_colour": "white",
-			"worn_upper_setup": {type:[]}, // generated option
+			"worn_upper_setup": { type: [] }, // generated option
 			"worn_over_upper": 0,
 			"worn_over_upper_alpha": 1,
 			"worn_over_upper_integrity": "full",
 			"worn_over_upper_colour": "white",
 			"worn_over_upper_acc_colour": "white",
-			"worn_over_upper_setup": {type:[]}, // generated option
+			"worn_over_upper_setup": { type: [] }, // generated option
 			"worn_genitals": 0,
 			"worn_genitals_alpha": 1,
 			"worn_genitals_integrity": "full",
 			"worn_genitals_colour": "white",
 			"worn_genitals_acc_colour": "white",
-			"worn_genitals_setup": {type:[]}, // generated option
+			"worn_genitals_setup": { type: [] }, // generated option
 			"worn_lower": 0,
 			"worn_lower_alpha": 1,
 			"worn_lower_integrity": "full",
 			"worn_lower_colour": "white",
 			"worn_lower_acc_colour": "white",
-			"worn_lower_setup": {type:[]}, // generated option
+			"worn_lower_setup": { type: [] }, // generated option
 			"worn_over_lower": 0,
 			"worn_over_lower_alpha": 1,
 			"worn_over_lower_integrity": "full",
 			"worn_over_lower_colour": "white",
 			"worn_over_lower_acc_colour": "white",
-			"worn_over_lower_setup": {type:[]}, // generated option
+			"worn_over_lower_setup": { type: [] }, // generated option
 			"worn_under_lower": 0,
 			"worn_under_lower_alpha": 1,
 			"worn_under_lower_integrity": "full",
 			"worn_under_lower_colour": "white",
 			"worn_under_lower_acc_colour": "white",
-			"worn_under_lower_setup": {type:[]}, // generated option
+			"worn_under_lower_setup": { type: [] }, // generated option
 			"worn_under_upper": 0,
 			"worn_under_upper_alpha": 1,
 			"worn_under_upper_integrity": "full",
 			"worn_under_upper_colour": "white",
 			"worn_under_upper_acc_colour": "white",
-			"worn_under_upper_setup": {type:[]}, // generated option
+			"worn_under_upper_setup": { type: [] }, // generated option
 			"worn_hands": 0,
 			"worn_hands_alpha": 1,
 			"worn_hands_integrity": "full",
 			"worn_hands_colour": "white",
 			"worn_hands_acc_colour": "white",
-			"worn_hands_setup": {type:[]}, // generated option
+			"worn_hands_setup": { type: [] }, // generated option
 			"worn_head": 0,
 			"worn_head_alpha": 1,
 			"worn_head_integrity": "full",
 			"worn_head_colour": "white",
 			"worn_head_acc_colour": "white",
-			"worn_head_setup": {type:[]}, // generated option
+			"worn_head_setup": { type: [] }, // generated option
 			"worn_over_head": 0,
 			"worn_over_head_alpha": 1,
 			"worn_over_head_integrity": "full",
 			"worn_over_head_colour": "white",
 			"worn_over_head_acc_colour": "white",
-			"worn_over_head_setup": {type:[]}, // generated option
+			"worn_over_head_setup": { type: [] }, // generated option
 			"worn_face": 0,
 			"worn_face_alpha": 1,
 			"worn_face_integrity": "full",
 			"worn_face_colour": "white",
 			"worn_face_acc_colour": "white",
-			"worn_face_setup": {type:[]}, // generated option
+			"worn_face_setup": { type: [] }, // generated option
 			"worn_neck": 0,
 			"worn_neck_alpha": 1,
 			"worn_neck_integrity": "full",
 			"worn_neck_colour": "white",
 			"worn_neck_acc_colour": "white",
-			"worn_neck_setup": {type:[]}, // generated option
+			"worn_neck_setup": { type: [] }, // generated option
 			"worn_legs": 0,
 			"worn_legs_alpha": 1,
 			"worn_legs_integrity": "full",
 			"worn_legs_colour": "white",
 			"worn_legs_acc_colour": "white",
-			"worn_legs_setup": {type:[]}, // generated option
+			"worn_legs_setup": { type: [] }, // generated option
 			"worn_feet": 0,
 			"worn_feet_alpha": 1,
 			"worn_feet_integrity": "full",
 			"worn_feet_colour": "white",
 			"worn_feet_acc_colour": "white",
-			"worn_feet_setup": {type:[]}, // generated option
+			"worn_feet_setup": { type: [] }, // generated option
 			// misc
 			"genitals_chastity": false, // generated option
 			"upper_tucked": false,
@@ -441,13 +440,13 @@ Renderer.CanvasModels["main"] = {
 					'swimshorts',
 					'swimsuitTop', 'swimsuitBottom',
 					'bikiniTop', 'bikiniBottom'
-				].map(slotname=>[slotname, options['skin_tone_'+slotname]]).
-					filter(slot=>slot[1] >= 0); // [slotname, tanvalue], only for tanvalue >= 0
+				].map(slotname => [slotname, options['skin_tone_' + slotname]]).
+					filter(slot => slot[1] >= 0); // [slotname, tanvalue], only for tanvalue >= 0
 				// Brightest on top
 				tanslots.sort((a, b) => b[1] - a[1]);
 				tanslots.forEach((slot, i) => {
 					options.filters[slot[0]] = setup.colours.getSkinFilter(options.skin_type, slot[1]);
-					options['ztan_'+slot[0]] = options['ztan_'+slot[0]] + 0.01*i;
+					options['ztan_' + slot[0]] = options['ztan_' + slot[0]] + 0.01 * i;
 				});
 			}
 		}
@@ -467,7 +466,7 @@ Renderer.CanvasModels["main"] = {
 			if (key === "custom") {
 				filter = clone(options.filters[customFilterName]);
 				if (!filter) {
-					console.error("custom "+debugName+" colour not configured");
+					console.error("custom " + debugName + " colour not configured");
 					return {};
 				}
 			} else {
@@ -490,8 +489,8 @@ Renderer.CanvasModels["main"] = {
 		options.filters.left_eye = lookupColour(setup.colours.eyes_map, options.left_eye, "eyes", "eyes_custom", "eyes");
 		options.filters.right_eye = lookupColour(setup.colours.eyes_map, options.right_eye, "eyes", "eyes_custom", "eyes");
 		options.filters.hair = lookupColour(setup.colours.hair_map, options.hair_colour, "hair", "hair_custom", "hair");
-		options.filters.brows = lookupColour(setup.colours.hair_map, options.brows_colour||options.hair_colour, "brows", "brows_custom", "brows");
-		options.filters.pbhair = lookupColour(setup.colours.hair_map, options.pbhair_colour||options.hair_colour, "pbhair", "pbhair_custom", "pbhair");
+		options.filters.brows = lookupColour(setup.colours.hair_map, options.brows_colour || options.hair_colour, "brows", "brows_custom", "brows");
+		options.filters.pbhair = lookupColour(setup.colours.hair_map, options.pbhair_colour || options.hair_colour, "pbhair", "pbhair_custom", "pbhair");
 		if (options.lipstick_colour) {
 			options.filters.lipstick = lookupColour(setup.colours.lipstick_map, options.lipstick_colour, "lipstick", "lipstick_custom", "lipstick");
 		} else {
@@ -584,10 +583,10 @@ Renderer.CanvasModels["main"] = {
 		// Generate mask images
 		if (options.worn_over_head_setup.mask_img === 1 &&
 			!(options.hood_down && options.worn_over_head_setup.hood && options.worn_over_head_setup.outfitSecondary !== undefined)) {
-			options.head_mask_src = "img/clothes/head/"+options.worn_over_head_setup.variable+"/mask.png";
+			options.head_mask_src = "img/clothes/head/" + options.worn_over_head_setup.variable + "/mask.png";
 		} else if (options.worn_head_setup.mask_img === 1 &&
 			!(options.hood_down && options.worn_head_setup.hood && options.worn_head_setup.outfitSecondary !== undefined)) {
-			options.head_mask_src = "img/clothes/head/"+options.worn_head_setup.variable+"/mask.png";
+			options.head_mask_src = "img/clothes/head/" + options.worn_head_setup.variable + "/mask.png";
 		} else {
 			options.head_mask_src = null;
 		}
@@ -607,7 +606,6 @@ Renderer.CanvasModels["main"] = {
 		 */
 		"base": {
 			srcfn(options) {
-				if (options.fools) return "img/body/fools/basenoarms.png";
 				if (options.mannequin) return "img/body/mannequin/basenoarms.png"
 				return "img/body/basenoarms.png"
 			},
@@ -645,7 +643,7 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.breasts,
 			animation: "idle"
 		},
-		"belly":{
+		"belly": {
 			srcfn(options) {
 				/*ToDo: Pregnancy, uncomment to properly enable*/
 				/*if(between(options.belly,1,20)){
@@ -663,9 +661,9 @@ Renderer.CanvasModels["main"] = {
 			srcfn(options) {
 				switch (options.nipples_parasite) {
 					case "urchin":
-						return 'img/body/breasts/chestparasite'+options.breast_size+'.png'
+						return 'img/body/breasts/chestparasite' + options.breast_size + '.png'
 					case "slime":
-						return 'img/body/breasts/chestslime'+options.breast_size+'.png'
+						return 'img/body/breasts/chestslime' + options.breast_size + '.png'
 					default:
 						return "";
 				}
@@ -835,7 +833,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"sclera": {
 			srcfn(options) {
-				return 'img/face/' + options.facestyle + '/' + (options.eyes_bloodshot?"sclerabloodshot":"sclera") + '.png'
+				return 'img/face/' + options.facestyle + '/' + (options.eyes_bloodshot ? "sclerabloodshot" : "sclera") + '.png'
 			},
 			showfn(options) {
 				return options.show_face;
@@ -844,7 +842,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"left_iris": {
 			srcfn(options) {
-				return 'img/face/' + options.facestyle + '/' + (options.trauma?"irisempty":"iris") + (options.eyes_half ? "_halfclosed" : "") + '_left.png'
+				return 'img/face/' + options.facestyle + '/' + (options.trauma ? "irisempty" : "iris") + (options.eyes_half ? "_halfclosed" : "") + '_left.png'
 			},
 			showfn(options) {
 				return options.show_face;
@@ -855,7 +853,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"right_iris": {
 			srcfn(options) {
-				return 'img/face/' + options.facestyle + '/' + (options.trauma?"irisempty":"iris") + (options.eyes_half ? "_halfclosed" : "") + '_right.png'
+				return 'img/face/' + options.facestyle + '/' + (options.trauma ? "irisempty" : "iris") + (options.eyes_half ? "_halfclosed" : "") + '_right.png'
 			},
 			showfn(options) {
 				return options.show_face;
@@ -1015,9 +1013,9 @@ Renderer.CanvasModels["main"] = {
 		},
 		"hair_extra": { // Extra layer for thighs+ long hair for certain styles
 			srcfn(options) {
-				if (options.hair_sides_length === "feet" && ["default","loose","straight","curl","defined curl","neat"].includes(options.hair_sides_type)) {
+				if (options.hair_sides_length === "feet" && ["default", "loose", "straight", "curl", "defined curl", "neat"].includes(options.hair_sides_type)) {
 					return "img/hair/back/" + options.hair_sides_type + '/' + "feet.png"
-				} else if (options.hair_sides_length === "thighs" && ["default","loose","curl","defined curl","neat"].includes(options.hair_sides_type)) {
+				} else if (options.hair_sides_length === "thighs" && ["default", "loose", "curl", "defined curl", "neat"].includes(options.hair_sides_type)) {
 					return "img/hair/back/" + options.hair_sides_type + '/' + "thighs.png"
 				} else {
 					return ""
@@ -1090,8 +1088,8 @@ Renderer.CanvasModels["main"] = {
 					return "img/body/penis/penis_chastity.png"
 				} else if (!playerHasStrapon()) {
 					return "img/body/" +
-						(options.balls ? 'penis/':'penisnoballs/') +
-						(options.penis === "virgin" ? "penis_virgin" : "penis") +options.penis_size + ".png"
+						(options.balls ? 'penis/' : 'penisnoballs/') +
+						(options.penis === "virgin" ? "penis_virgin" : "penis") + options.penis_size + ".png"
 				} else {
 					return; //if the player has a strapon, then we want to hide their penis
 				}
@@ -1117,9 +1115,9 @@ Renderer.CanvasModels["main"] = {
 			srcfn(options) {
 				switch (options.penis_parasite) {
 					case "urchin":
-						return 'img/body/penis/penisparasite'+options.penis_size+'.png'
+						return 'img/body/penis/penisparasite' + options.penis_size + '.png'
 					case "slime":
-						return 'img/body/penis/penisslime'+options.penis_size+'.png'
+						return 'img/body/penis/penisslime' + options.penis_size + '.png'
 					default:
 						return "";
 				}
@@ -1127,7 +1125,7 @@ Renderer.CanvasModels["main"] = {
 			showfn(options) {
 				return options.crotch_visible && !!options.penis && !!options.penis_parasite && !options.genitals_chastity;
 			},
-			zfn(options){
+			zfn(options) {
 				if (options.crotch_exposed) {
 					return ZIndices.parasite
 				} else {
@@ -1150,7 +1148,7 @@ Renderer.CanvasModels["main"] = {
 			showfn(options) {
 				return options.crotch_visible && !!options.clit_parasite && !options.chastity;
 			},
-			zfn(options){
+			zfn(options) {
 				if (options.crotch_exposed) {
 					return ZIndices.parasite
 				} else {
@@ -1180,7 +1178,7 @@ Renderer.CanvasModels["main"] = {
 		 */
 		"angel_wings_right": {
 			srcfn(options) {
-				return 'img/transformations/angel/rightwing/'+options.angel_wings_type+'.png'
+				return 'img/transformations/angel/rightwing/' + options.angel_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.angel_wings_type) && options.angel_wing_right === "idle"
@@ -1190,7 +1188,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"angel_wings_rightcover": {
 			srcfn(options) {
-				return 'img/transformations/angel/rightcover/'+options.angel_wings_type+'.png'
+				return 'img/transformations/angel/rightcover/' + options.angel_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.angel_wings_type) && options.angel_wing_right === "cover"
@@ -1200,7 +1198,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"angel_wings_left": {
 			srcfn(options) {
-				return 'img/transformations/angel/leftwing/'+options.angel_wings_type+'.png'
+				return 'img/transformations/angel/leftwing/' + options.angel_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.angel_wings_type) && options.angel_wing_left === "idle"
@@ -1210,7 +1208,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"angel_wings_leftcover": {
 			srcfn(options) {
-				return 'img/transformations/angel/leftcover/'+options.angel_wings_type+'.png'
+				return 'img/transformations/angel/leftcover/' + options.angel_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.angel_wings_type) && options.angel_wing_left === "cover"
@@ -1220,7 +1218,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"angel_halo_back": {
 			srcfn(options) {
-				return 'img/transformations/angel/backhalo/'+options.angel_halo_type+'.png'
+				return 'img/transformations/angel/backhalo/' + options.angel_halo_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.angel_halo_type)
@@ -1230,7 +1228,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"angel_halo_front": {
 			srcfn(options) {
-				return 'img/transformations/angel/fronthalo/'+options.angel_halo_type+'.png'
+				return 'img/transformations/angel/fronthalo/' + options.angel_halo_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.angel_halo_type)
@@ -1250,7 +1248,7 @@ Renderer.CanvasModels["main"] = {
 		 */
 		"fallen_wings_right": {
 			srcfn(options) {
-				return 'img/transformations/fallen/rightwing/'+options.fallen_wings_type+'.png'
+				return 'img/transformations/fallen/rightwing/' + options.fallen_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.fallen_wings_type) && options.fallen_wing_right === "idle"
@@ -1260,7 +1258,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"fallen_wings_rightcover": {
 			srcfn(options) {
-				return 'img/transformations/fallen/rightcover/'+options.fallen_wings_type+'.png'
+				return 'img/transformations/fallen/rightcover/' + options.fallen_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.fallen_wings_type) && options.fallen_wing_right === "cover"
@@ -1270,7 +1268,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"fallen_wings_left": {
 			srcfn(options) {
-				return 'img/transformations/fallen/leftwing/'+options.fallen_wings_type+'.png'
+				return 'img/transformations/fallen/leftwing/' + options.fallen_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.fallen_wings_type) && options.fallen_wing_left === "idle"
@@ -1280,7 +1278,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"fallen_wings_leftcover": {
 			srcfn(options) {
-				return 'img/transformations/fallen/leftcover/'+options.fallen_wings_type+'.png'
+				return 'img/transformations/fallen/leftcover/' + options.fallen_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.fallen_wings_type) && options.fallen_wing_left === "cover"
@@ -1290,7 +1288,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"fallen_halo_back": {
 			srcfn(options) {
-				return 'img/transformations/fallen/backbrokenhalo/'+options.fallen_halo_type+'.png'
+				return 'img/transformations/fallen/backbrokenhalo/' + options.fallen_halo_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.fallen_halo_type)
@@ -1300,7 +1298,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"fallen_halo_front": {
 			srcfn(options) {
-				return 'img/transformations/fallen/frontbrokenhalo/'+options.fallen_halo_type+'.png'
+				return 'img/transformations/fallen/frontbrokenhalo/' + options.fallen_halo_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.fallen_halo_type)
@@ -1320,7 +1318,7 @@ Renderer.CanvasModels["main"] = {
 		 */
 		"demon_wings": {
 			srcfn(options) {
-				return 'img/transformations/demon/wings/'+options.demon_wings_type+'.png'
+				return 'img/transformations/demon/wings/' + options.demon_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.demon_wings_type) && options.demon_wings_state === "idle"
@@ -1330,7 +1328,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"demon_wings_flaunt": {
 			srcfn(options) {
-				return 'img/transformations/demon/flauntwings/'+options.demon_wings_type+'.png'
+				return 'img/transformations/demon/flauntwings/' + options.demon_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.demon_wings_type) && options.demon_wings_state === "flaunt"
@@ -1340,7 +1338,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"demon_wings_cover": {
 			srcfn(options) {
-				return 'img/transformations/demon/leftcover/'+options.demon_wings_type+'.png'
+				return 'img/transformations/demon/leftcover/' + options.demon_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.demon_wings_type) && options.demon_wings_state === "cover"
@@ -1350,7 +1348,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"demon_tail": {
 			srcfn(options) {
-				return 'img/transformations/demon/tail/'+options.demon_tail_type+'.png'
+				return 'img/transformations/demon/tail/' + options.demon_tail_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.demon_tail_type) && options.demon_tail_state === "idle"
@@ -1360,7 +1358,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"demon_tail_flaunt": {
 			srcfn(options) {
-				return 'img/transformations/demon/flaunttail/'+options.demon_tail_type+'.png'
+				return 'img/transformations/demon/flaunttail/' + options.demon_tail_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.demon_tail_type) && options.demon_tail_state === "flaunt"
@@ -1370,7 +1368,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"demon_tail_cover": {
 			srcfn(options) {
-				return 'img/transformations/demon/rightcover/'+options.demon_tail_type+'.png'
+				return 'img/transformations/demon/rightcover/' + options.demon_tail_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.demon_tail_type) && options.demon_tail_state === "cover"
@@ -1380,7 +1378,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"demon_horns": {
 			srcfn(options) {
-				return 'img/transformations/demon/horns/'+options.demon_horns_type+'.png'
+				return 'img/transformations/demon/horns/' + options.demon_horns_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.demon_horns_type)
@@ -1399,7 +1397,7 @@ Renderer.CanvasModels["main"] = {
 		 */
 		"wolf_tail": {
 			srcfn(options) {
-				return 'img/transformations/wolf/tail/'+options.wolf_tail_type+'.png'
+				return 'img/transformations/wolf/tail/' + options.wolf_tail_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.wolf_tail_type)
@@ -1410,7 +1408,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"wolf_ears": {
 			srcfn(options) {
-				return 'img/transformations/wolf/ears/'+options.wolf_ears_type+'.png'
+				return 'img/transformations/wolf/ears/' + options.wolf_ears_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.wolf_ears_type)
@@ -1424,7 +1422,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"wolf_pits": {
 			srcfn(options) {
-				return 'img/transformations/hirsute/pits/'+options.wolf_pits_type+'.png'
+				return 'img/transformations/hirsute/pits/' + options.wolf_pits_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.wolf_pits_type)
@@ -1435,7 +1433,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"wolf_pubes": {
 			srcfn(options) {
-				return 'img/transformations/hirsute/pubes/'+options.wolf_pubes_type+'.png'
+				return 'img/transformations/hirsute/pubes/' + options.wolf_pubes_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.wolf_pubes_type)
@@ -1446,7 +1444,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"wolf_cheeks": {
 			srcfn(options) {
-				return 'img/transformations/wolf/cheeks/'+options.wolf_cheeks_type+'.png'
+				return 'img/transformations/wolf/cheeks/' + options.wolf_cheeks_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.wolf_cheeks_type)
@@ -1467,7 +1465,7 @@ Renderer.CanvasModels["main"] = {
 
 		"cat_tail": {
 			srcfn(options) {
-				return 'img/transformations/cat/tail/'+options.cat_tail_type+'.png'
+				return 'img/transformations/cat/tail/' + options.cat_tail_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.cat_tail_type)
@@ -1478,7 +1476,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"cat_ears": {
 			srcfn(options) {
-				return 'img/transformations/cat/ears/'+options.cat_ears_type+'.png'
+				return 'img/transformations/cat/ears/' + options.cat_ears_type + '.png'
 			},
 			masksrcfn(options) {
 				return options.head_mask_src;
@@ -1501,7 +1499,7 @@ Renderer.CanvasModels["main"] = {
 		 */
 		"cow_horns": {
 			srcfn(options) {
-				return 'img/transformations/cow/horns/'+options.cow_horns_type+'.png'
+				return 'img/transformations/cow/horns/' + options.cow_horns_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.cow_horns_type)
@@ -1511,7 +1509,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"cow_ears": {
 			srcfn(options) {
-				return 'img/transformations/cow/ears/'+options.cow_ears_type+'.png'
+				return 'img/transformations/cow/ears/' + options.cow_ears_type + '.png'
 			},
 			masksrcfn(options) {
 				return options.head_mask_src;
@@ -1534,7 +1532,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"cow_tail": {
 			srcfn(options) {
-				return 'img/transformations/cow/tail/'+options.cow_tail_type+'.png'
+				return 'img/transformations/cow/tail/' + options.cow_tail_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.cow_tail_type)
@@ -1554,7 +1552,7 @@ Renderer.CanvasModels["main"] = {
 
 		"bird_wings_right": {
 			srcfn(options) {
-				return 'img/transformations/bird/rightwing/'+options.bird_wings_type+'.png'
+				return 'img/transformations/bird/rightwing/' + options.bird_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_wings_type) && options.bird_wing_right === "idle"
@@ -1565,7 +1563,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_wings_rightcover": {
 			srcfn(options) {
-				return 'img/transformations/bird/rightcover/'+options.bird_wings_type+'.png'
+				return 'img/transformations/bird/rightcover/' + options.bird_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_wings_type) && options.bird_wing_right === "cover"
@@ -1576,7 +1574,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_wings_left": {
 			srcfn(options) {
-				return 'img/transformations/bird/leftwing/'+options.bird_wings_type+'.png'
+				return 'img/transformations/bird/leftwing/' + options.bird_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_wings_type) && options.bird_wing_left === "idle"
@@ -1587,7 +1585,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_wings_leftcover": {
 			srcfn(options) {
-				return 'img/transformations/bird/leftcover/'+options.bird_wings_type+'.png'
+				return 'img/transformations/bird/leftcover/' + options.bird_wings_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_wings_type) && options.bird_wing_left === "cover"
@@ -1598,7 +1596,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_tail": {
 			srcfn(options) {
-				return 'img/transformations/bird/tail/'+options.bird_tail_type+'.png'
+				return 'img/transformations/bird/tail/' + options.bird_tail_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_tail_type)
@@ -1609,7 +1607,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_eyes": {
 			srcfn(options) {
-				return 'img/transformations/bird/eyes/'+options.bird_eyes_type+'.png'
+				return 'img/transformations/bird/eyes/' + options.bird_eyes_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && options.show_face && tf_enabled(options.bird_eyes_type)
@@ -1619,7 +1617,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_malar": {
 			srcfn(options) {
-				return 'img/transformations/bird/malar/'+options.bird_malar_type+'.png'
+				return 'img/transformations/bird/malar/' + options.bird_malar_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_malar_type)
@@ -1630,7 +1628,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_plumage": {
 			srcfn(options) {
-				return 'img/transformations/bird/plumage/'+options.bird_plumage_type+'.png'
+				return 'img/transformations/bird/plumage/' + options.bird_plumage_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_plumage_type)
@@ -1641,7 +1639,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"bird_pubes": {
 			srcfn(options) {
-				return 'img/transformations/bird/pubes/'+options.bird_pubes_type+'.png'
+				return 'img/transformations/bird/pubes/' + options.bird_pubes_type + '.png'
 			},
 			showfn(options) {
 				return options.show_tf && tf_enabled(options.bird_pubes_type)
@@ -1662,11 +1660,15 @@ Renderer.CanvasModels["main"] = {
 		 */
 		"writing_forehead": {
 			srcfn(options) {
+				const area_name = "forehead"
 				let writing = setup.bodywriting[options.writing_forehead];
 				if (writing.type === "text") {
-					return "img/bodywriting/forehead.png"
-				} else if (writing.type === "object"){
-					return 'img/bodywriting/' + writing.writing + '/forehead.png'
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + '.png';
+				} else if (writing.type === "object") {
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + '.png'
 				} else {
 					return '';
 				}
@@ -1679,11 +1681,15 @@ Renderer.CanvasModels["main"] = {
 		},
 		"writing_left_cheek": {
 			srcfn(options) {
+				const area_name = "left_cheek"
 				let writing = setup.bodywriting[options.writing_left_cheek];
 				if (writing.type === "text") {
-					return "img/bodywriting/left_cheek.png"
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + '.png';
 				} else if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/left_cheek.png'
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + '.png'
 				} else {
 					return '';
 				}
@@ -1694,17 +1700,17 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
-		"writing_right_cheek":{
+		"writing_right_cheek": {
 			srcfn(options) {
+				const area_name = "right_cheek"
 				let writing = setup.bodywriting[options.writing_right_cheek];
 				if (writing.type === "text") {
-					if (writing.arrow === 1) {
-						return "img/bodywriting/right_cheek_arrow.png"
-					} else {
-						return "img/bodywriting/right_cheek.png"
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
 					}
+					return 'img/bodywriting/text/default/' + area_name + '.png';
 				} else if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/right_cheek.png'
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + (writing.arrow ? "_arrow" : "") + '.png'
 				} else {
 					return '';
 				}
@@ -1715,13 +1721,17 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
-		"writing_breasts":{
+		"writing_breasts": {
 			srcfn(options) {
+				const area_name = "breasts"
 				let writing = setup.bodywriting[options.writing_breasts];
 				if (writing.type === "text") {
-					return 'img/bodywriting/breasts1.png' // See also layer "writing_breasts_extra"
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + '1.png';
 				} else if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/breasts'+options.breast_size+'.png'
+					return 'img/bodywriting/' + writing.writing + '/breasts' + options.breast_size + '.png'
 				} else {
 					return '';
 				}
@@ -1732,11 +1742,11 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
-		"writing_breasts_extra":{
+		"writing_breasts_extra": {
 			srcfn(options) {
 				let writing = setup.bodywriting[options.writing_breasts];
-				if (writing.type === "text" && options.breast_size >= 2) {
-					return 'img/bodywriting/breasts' + options.breast_size + '.png'
+				if ((!writing.sprites || writing.sprites.length == 0) && writing.type === "text" && options.breast_size >= 2) {
+					return 'img/bodywriting/text/default/breasts' + options.breast_size + '.png'
 				} else {
 					return '';
 				}
@@ -1747,13 +1757,17 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
-		"writing_left_shoulder":{
+		"writing_left_shoulder": {
 			srcfn(options) {
+				const area_name = "left_shoulder"
 				let writing = setup.bodywriting[options.writing_left_shoulder];
 				if (writing.type === "text") {
-					return "img/bodywriting/left_shoulder.png"
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + '.png';
 				} else if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/left_shoulder.png'
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + '.png'
 				} else {
 					return '';
 				}
@@ -1764,13 +1778,17 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
-		"writing_right_shoulder":{
+		"writing_right_shoulder": {
 			srcfn(options) {
+				const area_name = "right_shoulder"
 				let writing = setup.bodywriting[options.writing_right_shoulder];
 				if (writing.type === "text") {
-					return "img/bodywriting/right_shoulder.png"
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + '.png';
 				} else if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/right_shoulder.png'
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + '.png'
 				} else {
 					return '';
 				}
@@ -1787,15 +1805,17 @@ Renderer.CanvasModels["main"] = {
 			},
 			animation: "idle"
 		},
-		"writing_pubic":{
+		"writing_pubic": {
 			srcfn(options) {
+				const area_name = "pubic"
 				let writing = setup.bodywriting[options.writing_pubic];
-				if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/pubic.png'
-				} else if (writing.arrow === 1) {
-					return "img/bodywriting/pubic_arrow.png"
-				} else if (writing.type === "text") {
-					return "img/bodywriting/pubic.png"
+				if (writing.type === "text") {
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + (writing.arrow ? "_arrow" : "") + '.png';
+				} else if (writing.type === "object") {
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + '.png'
 				} else {
 					return '';
 				}
@@ -1806,15 +1826,17 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
-		"writing_left_thigh":{
+		"writing_left_thigh": {
 			srcfn(options) {
+				const area_name = "left_thigh"
 				let writing = setup.bodywriting[options.writing_left_thigh];
-				if (writing.arrow === 1) {
-					return "img/bodywriting/left_thigh_arrow.png"
-				} else if (writing.type === "text") {
-					return "img/bodywriting/left_thigh.png"
+				if (writing.type === "text") {
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + (writing.arrow ? "_arrow" : "") + '.png';
 				} else if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/left_thigh.png'
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + '.png'
 				} else {
 					return '';
 				}
@@ -1825,15 +1847,17 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
-		"writing_right_thigh":{
+		"writing_right_thigh": {
 			srcfn(options) {
+				const area_name = "right_thigh"
 				let writing = setup.bodywriting[options.writing_right_thigh];
-				if (writing.arrow === 1) {
-					return "img/bodywriting/right_thigh_arrow.png"
-				} else if (writing.type === "text") {
-					return "img/bodywriting/right_thigh.png"
+				if (writing.type === "text") {
+					if (writing.sprites && writing.sprites.length > 0 && writing.sprites.includes(area_name)) {
+						return 'img/bodywriting/text/' + writing.key + '/' + area_name + '.png';
+					}
+					return 'img/bodywriting/text/default/' + area_name + (writing.arrow ? "_arrow" : "") + '.png';
 				} else if (writing.type === "object") {
-					return 'img/bodywriting/' + writing.writing + '/right_thigh.png'
+					return 'img/bodywriting/' + writing.writing + '/' + area_name + '.png'
 				} else {
 					return '';
 				}
@@ -1844,9 +1868,20 @@ Renderer.CanvasModels["main"] = {
 			z: ZIndices.skin,
 			animation: "idle"
 		},
+
+		/***
+		 *    ██████  ██████  ██ ██████  ███████
+		 *    ██   ██ ██   ██ ██ ██   ██ ██
+		 *    ██   ██ ██████  ██ ██████  ███████
+		 *    ██   ██ ██   ██ ██ ██           ██
+		 *    ██████  ██   ██ ██ ██      ███████
+		 * 
+		 * 
+		 */
+
 		"drip_vaginal": {
 			srcfn(options) {
-				return "img/body/cum/VaginalCumDrip"+options.drip_vaginal+".png"
+				return "img/body/cum/VaginalCumDrip" + options.drip_vaginal + ".png"
 			},
 			showfn(options) {
 				return !!options.drip_vaginal;
@@ -1858,7 +1893,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"drip_anal": {
 			srcfn(options) {
-				return "img/body/cum/AnalCumDrip"+options.drip_anal+".png"
+				return "img/body/cum/AnalCumDrip" + options.drip_anal + ".png"
 			},
 			showfn(options) {
 				return !!options.drip_anal;
@@ -1870,7 +1905,7 @@ Renderer.CanvasModels["main"] = {
 		},
 		"drip_mouth": {
 			srcfn(options) {
-				return "img/body/cum/MouthCumDrip"+options.drip_mouth+".png"
+				return "img/body/cum/MouthCumDrip" + options.drip_mouth + ".png"
 			},
 			showfn(options) {
 				return options.show_face && !!options.drip_mouth;
@@ -2103,7 +2138,7 @@ Renderer.CanvasModels["main"] = {
 			srcfn(options) {
 				let path = 'img/clothes/hands/' +
 					options.worn_hands_setup.variable + '/' +
-					(options.arm_left === "cover" ? "left_cover" : "left" ) + '.png';
+					(options.arm_left === "cover" ? "left_cover" : "left") + '.png';
 				return gray_suffix(path, options.filters['worn_hands']);
 			},
 			showfn(options) {
@@ -2113,7 +2148,7 @@ Renderer.CanvasModels["main"] = {
 					options.arm_left !== "none"
 			},
 			zfn(options) {
-				return options.arm_left === "cover" ? ZIndices.hands : (options.zarms+0.2);
+				return options.arm_left === "cover" ? ZIndices.hands : (options.zarms + 0.2);
 			},
 			filters: ["worn_hands"],
 			animation: "idle"
@@ -2122,7 +2157,7 @@ Renderer.CanvasModels["main"] = {
 			srcfn(options) {
 				let path = 'img/clothes/hands/' +
 					options.worn_hands_setup.variable + '/' +
-					(options.arm_left === "cover" ? "left_cover" : "left" ) + '_acc.png';
+					(options.arm_left === "cover" ? "left_cover" : "left") + '_acc.png';
 				return gray_suffix(path, options.filters['worn_hands_acc']);
 			},
 			showfn(options) {
@@ -2133,7 +2168,7 @@ Renderer.CanvasModels["main"] = {
 					options.arm_left !== "none"
 			},
 			zfn(options) {
-				return options.arm_left === "cover" ? ZIndices.hands : (options.zarms+0.2);
+				return options.arm_left === "cover" ? ZIndices.hands : (options.zarms + 0.2);
 			},
 			filters: ["worn_hands_acc"],
 			animation: "idle"
@@ -2142,7 +2177,7 @@ Renderer.CanvasModels["main"] = {
 			srcfn(options) {
 				let path = 'img/clothes/hands/' +
 					options.worn_hands_setup.variable + '/' +
-					(options.arm_right === "cover" ? "right_cover" : "right" ) + '.png';
+					(options.arm_right === "cover" ? "right_cover" : "right") + '.png';
 				return gray_suffix(path, options.filters['worn_hands']);
 			},
 			showfn(options) {
@@ -2152,7 +2187,7 @@ Renderer.CanvasModels["main"] = {
 					options.arm_right !== "none"
 			},
 			zfn(options) {
-				return options.arm_right === "cover" ? ZIndices.hands : (options.zarms+0.2);
+				return options.arm_right === "cover" ? ZIndices.hands : (options.zarms + 0.2);
 			},
 			filters: ["worn_hands"],
 			animation: "idle"
@@ -2161,7 +2196,7 @@ Renderer.CanvasModels["main"] = {
 			srcfn(options) {
 				let path = 'img/clothes/hands/' +
 					options.worn_hands_setup.variable + '/' +
-					(options.arm_right === "cover" ? "right_cover" : "right" ) + '_acc.png';
+					(options.arm_right === "cover" ? "right_cover" : "right") + '_acc.png';
 				return gray_suffix(path, options.filters['worn_hands_acc']);
 			},
 			showfn(options) {
@@ -2172,7 +2207,7 @@ Renderer.CanvasModels["main"] = {
 					options.arm_right !== "none"
 			},
 			zfn(options) {
-				return options.arm_right === "cover" ? ZIndices.hands : (options.zarms+0.2);
+				return options.arm_right === "cover" ? ZIndices.hands : (options.zarms + 0.2);
 			},
 			filters: ["worn_hands_acc"],
 			animation: "idle"
@@ -2275,7 +2310,7 @@ function tf_enabled(type) { return type !== "disabled" && type !== "hidden" }
 // If the filter has hard-light blending, add _gray to path
 function gray_suffix(path, filter) {
 	if (!filter || filter.blendMode !== "hard-light" || !filter.blend) return path;
-	return path.replace('.png','_gray.png');
+	return path.replace('.png', '_gray.png');
 }
 
 // Layer generating functions.
@@ -2284,31 +2319,31 @@ function genlayer_clothing_main(slot, overrideOptions) {
 	return Object.assign({
 		srcfn(options) {
 			let isHoodDown = options.hood_down &&
-				options["worn_"+slot+"_setup"].hood &&
-				options["worn_"+slot+"_setup"].outfitSecondary !== undefined;
+				options["worn_" + slot + "_setup"].hood &&
+				options["worn_" + slot + "_setup"].outfitSecondary !== undefined;
 			let path = 'img/clothes/' +
 				slot + '/' +
 				options["worn_" + slot + "_setup"].variable + '/' +
 				options["worn_" + slot + "_integrity"] + (isHoodDown ? '_down' : '') + '.png';
-			return gray_suffix(path, options.filters['worn_'+slot]);
+			return gray_suffix(path, options.filters['worn_' + slot]);
 		},
 		showfn(options) {
 			return options.show_clothes &&
-				options["worn_"+slot] > 0 &&
-				options["worn_"+slot+"_setup"].mainImage !== 0
+				options["worn_" + slot] > 0 &&
+				options["worn_" + slot + "_setup"].mainImage !== 0
 		},
 		alphafn(options) {
-			return options["worn_"+slot+"_alpha"]
+			return options["worn_" + slot + "_alpha"]
 		},
 		z: ZIndices[slot],
-		filters: ["worn_"+slot],
+		filters: ["worn_" + slot],
 		animation: "idle"
 	}, overrideOptions)
 }
 function genlayer_clothing_accessory(slot, overrideOptions) {
 	return Object.assign({
 		srcfn(options) {
-			let setup = options["worn_"+slot+"_setup"];
+			let setup = options["worn_" + slot + "_setup"];
 			let isHoodDown = options.hood_down &&
 				setup.hood &&
 				setup.outfitSecondary !== undefined;
@@ -2318,62 +2353,62 @@ function genlayer_clothing_accessory(slot, overrideOptions) {
 				'acc' +
 				(setup.accessory_integrity_img ? '_' + options["worn_" + slot + "_integrity"] : '') +
 				(isHoodDown ? '_down' : '') + '.png';
-			return gray_suffix(path, options.filters['worn_'+slot+'_acc']);
+			return gray_suffix(path, options.filters['worn_' + slot + '_acc']);
 		},
 		showfn(options) {
 			return options.show_clothes &&
-				options["worn_"+slot] > 0 &&
-				options["worn_"+slot+"_setup"].accessory === 1
+				options["worn_" + slot] > 0 &&
+				options["worn_" + slot + "_setup"].accessory === 1
 		},
 		alphafn(options) {
-			return options["worn_"+slot+"_alpha"]
+			return options["worn_" + slot + "_alpha"]
 		},
 		z: ZIndices[slot],
-		filters: ["worn_"+slot+"_acc"],
+		filters: ["worn_" + slot + "_acc"],
 		animation: "idle"
 	}, overrideOptions)
 }
 function genlayer_clothing_breasts(slot, overrideOptions) {
 	return Object.assign({
 		srcfn(options) {
-			let path = 'img/clothes/'+
-				slot+'/' +
-				options["worn_"+slot+"_setup"].variable + '/' +
+			let path = 'img/clothes/' +
+				slot + '/' +
+				options["worn_" + slot + "_setup"].variable + '/' +
 				(Math.min(options.breast_size, 5)) + '.png';
-			return gray_suffix(path, options.filters['worn_'+slot]);
+			return gray_suffix(path, options.filters['worn_' + slot]);
 		},
 		z: ZIndices[slot],
 		showfn(options) {
 			return options.show_clothes &&
-				options["worn_"+slot] > 0 &&
-				options["worn_"+slot+"_setup"].breast_img === 1
+				options["worn_" + slot] > 0 &&
+				options["worn_" + slot + "_setup"].breast_img === 1
 		},
 		alphafn(options) {
-			return options["worn_"+slot+"_alpha"]
+			return options["worn_" + slot + "_alpha"]
 		},
-		filters: ["worn_"+slot],
+		filters: ["worn_" + slot],
 		animation: "idle"
 	}, overrideOptions)
 }
 function genlayer_clothing_breasts_acc(slot, overrideOptions) {
 	return Object.assign({
 		srcfn(options) {
-			let path = 'img/clothes/'+
-				slot+'/' +
-				options["worn_"+slot+"_setup"].variable + '/' +
+			let path = 'img/clothes/' +
+				slot + '/' +
+				options["worn_" + slot + "_setup"].variable + '/' +
 				(Math.min(options.breast_size, 5)) + '_acc.png';
-			return gray_suffix(path, options.filters['worn_'+slot+'_acc']);
+			return gray_suffix(path, options.filters['worn_' + slot + '_acc']);
 		},
 		z: ZIndices[slot],
 		showfn(options) {
 			return options.show_clothes &&
-				options["worn_"+slot] > 0 &&
-				options["worn_"+slot+"_setup"].breast_acc_img === 1
+				options["worn_" + slot] > 0 &&
+				options["worn_" + slot + "_setup"].breast_acc_img === 1
 		},
 		alphafn(options) {
-			return options["worn_"+slot+"_alpha"]
+			return options["worn_" + slot + "_alpha"]
 		},
-		filters: ["worn_"+slot+"_acc"],
+		filters: ["worn_" + slot + "_acc"],
 		animation: "idle"
 	}, overrideOptions)
 }
@@ -2389,24 +2424,24 @@ function genlayer_clothing_back_img(slot, overrideOptions) {
 		showfn(options) {
 			if (!options.show_clothes) return false;
 			let isHoodDown = options.hood_down &&
-				options["worn_"+slot+"_setup"].hood &&
-				options["worn_"+slot+"_setup"].outfitSecondary !== undefined;
-			return options["worn_"+slot] > 0 && options["worn_"+slot+"_setup"].back_img === 1 && !isHoodDown;
+				options["worn_" + slot + "_setup"].hood &&
+				options["worn_" + slot + "_setup"].outfitSecondary !== undefined;
+			return options["worn_" + slot] > 0 && options["worn_" + slot + "_setup"].back_img === 1 && !isHoodDown;
 		},
 		alphafn(options) {
-			return options["worn_"+slot+"_alpha"]
+			return options["worn_" + slot + "_alpha"]
 		},
-		z: ZIndices[slot+'_back'],
+		z: ZIndices[slot + '_back'],
 		filtersfn(options) {
-			switch (options["worn_"+slot+"_setup"].back_img_colour) {
+			switch (options["worn_" + slot + "_setup"].back_img_colour) {
 				case "none":
 					return [];
 				case "":
 				case undefined:
 				case "primary":
-					return ["worn_"+slot];
+					return ["worn_" + slot];
 				case "secondary":
-					return ["worn_"+slot+"_acc"]
+					return ["worn_" + slot + "_acc"]
 			}
 		},
 		animation: "idle"
@@ -2423,29 +2458,29 @@ function genlayer_clothing_back_img(slot, overrideOptions) {
 function genlayer_clothing_arm(arm, slot, overrideOptions) {
 	return Object.assign({
 		srcfn(options) {
-			let path = 'img/clothes/'+
-				slot+'/' +
-				options["worn_"+slot+"_setup"].variable + '/' +
-				(options["arm_"+arm] === "cover" ? (arm+'_cover.png') : (arm+".png"));
+			let path = 'img/clothes/' +
+				slot + '/' +
+				options["worn_" + slot + "_setup"].variable + '/' +
+				(options["arm_" + arm] === "cover" ? (arm + '_cover.png') : (arm + ".png"));
 			return gray_suffix(path, options.filters[this.filtersfn(options)[0]]);
 		},
 		showfn(options) {
 			return options.show_clothes &&
-				options["worn_"+slot] > 0 &&
-				options["worn_"+slot+"_setup"].sleeve_img === 1 &&
-				options["arm_"+arm] !== "none"
+				options["worn_" + slot] > 0 &&
+				options["worn_" + slot + "_setup"].sleeve_img === 1 &&
+				options["arm_" + arm] !== "none"
 		},
 		alphafn(options) {
-			return options["worn_"+slot+"_alpha"]
+			return options["worn_" + slot + "_alpha"]
 		},
 		filtersfn(options) {
-			switch (options["worn_"+slot+"_setup"].sleeve_colour) {
+			switch (options["worn_" + slot + "_setup"].sleeve_colour) {
 				case undefined:
 				case "":
 				case "primary":
-					return ["worn_"+slot];
+					return ["worn_" + slot];
 				case "secondary":
-					return ["worn_"+slot+"_acc"];
+					return ["worn_" + slot + "_acc"];
 				case "no":
 				default:
 					return [];
@@ -2464,30 +2499,30 @@ function genlayer_clothing_arm(arm, slot, overrideOptions) {
 function genlayer_clothing_arm_acc(arm, slot, overrideOptions) {
 	return Object.assign({
 		srcfn(options) {
-			let path = 'img/clothes/'+
-				slot+'/' +
-				options["worn_"+slot+"_setup"].variable + '/' +
-				(options["arm_"+arm] === "cover" ? (arm+'_cover_acc.png') : (arm+"_acc.png"));
+			let path = 'img/clothes/' +
+				slot + '/' +
+				options["worn_" + slot + "_setup"].variable + '/' +
+				(options["arm_" + arm] === "cover" ? (arm + '_cover_acc.png') : (arm + "_acc.png"));
 			return gray_suffix(path, options.filters[this.filtersfn(options)[0]]);
 		},
 		showfn(options) {
 			return options.show_clothes &&
-				options["worn_"+slot] > 0 &&
-				options["worn_"+slot+"_setup"].sleeve_img === 1 &&
-				options["worn_"+slot+"_setup"].sleeve_acc_img === 1 &&
-				options["arm_"+arm] !== "none"
+				options["worn_" + slot] > 0 &&
+				options["worn_" + slot + "_setup"].sleeve_img === 1 &&
+				options["worn_" + slot + "_setup"].sleeve_acc_img === 1 &&
+				options["arm_" + arm] !== "none"
 		},
 		alphafn(options) {
-			return options["worn_"+slot+"_alpha"]
+			return options["worn_" + slot + "_alpha"]
 		},
 		filtersfn(options) {
-			switch (options["worn_"+slot+"_setup"].accessory_colour_sidebar) {
+			switch (options["worn_" + slot + "_setup"].accessory_colour_sidebar) {
 				case undefined:
 				case "":
 				case "primary":
-					return ["worn_"+slot];
+					return ["worn_" + slot];
 				case "secondary":
-					return ["worn_"+slot+"_acc"];
+					return ["worn_" + slot + "_acc"];
 				case "no":
 				default:
 					return [];
diff --git a/game/04-Variables/npcNamed.twee b/game/04-Variables/npcNamed.twee
index d0d45d6345828e9af677d75da51e9e6e73111861..51e52de82cce556ea805bc181f371526206b0866 100644
--- a/game/04-Variables/npcNamed.twee
+++ b/game/04-Variables/npcNamed.twee
@@ -328,7 +328,7 @@
 		<<case "Black Wolf">>
 			/* Has anal, oral, kiss, and handholding virginities. Missing penile/vaginal. */
 			<<set $NPCName[_args[0]].virginity.penile to false>>
-			<<set $NPCName[_args[0]].virginity.vaginal to false>>		
+			<<set $NPCName[_args[0]].virginity.vaginal to false>>
 		<<case "Gwylan">>
 			/* Missing all virginities. */
 			<<set $NPCName[_args[0]].virginity to clone(setup.NPCVirginityTypes)>>
diff --git a/game/04-Variables/presets.twee b/game/04-Variables/presets.twee
index 88ba4d172ddd56a7f20ca876be1fd0468d7cd7ff..e96c888983e695241b5eedde9900f59338c5dea7 100644
--- a/game/04-Variables/presets.twee
+++ b/game/04-Variables/presets.twee
@@ -5,13 +5,13 @@
 	<<set _preset to "">>
 	<<switch _args[0]>>
 		<<case "vrelDefault">>
-			<<set _preset to '{"general":{"map":{"movement":true,"top":false,"markers":false},"skinColor":{"tanImgEnabled":"f","tanningEnabled":false},"malechance":50,"dgchance":0,"cbchance":0,"malevictimchance":50,"homochance":4,"breast_mod":0,"penis_mod":0,"whitechance":90,"blackchance":10,"straponchance":0,"alluremod":1,"beastmalechance":80,"monsterchance":50,"monsterhallucinations":"t","blackwolfmonster":0,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"military","tipdisable":"f","debugdisable":"t","statdisable":"f","cheatdisabletoggle":"t","showCaptionText":true,"confirmSave":false,"confirmLoad":false,"confirmDelete":true,"newWardrobeStyle":false,"imgLighten":"","sidebarStats":"Disabled","sidebarTime":"Disabled","combatControls":"radio","reducedLineHeight":false},"npc":{"Avery":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Bailey":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Briar":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Charlie":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Darryl":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Doren":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Eden":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Gwylan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Harper":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Jordan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Kylar":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Landry":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Leighton":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Mason":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Morgan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"River":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Robin":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Sam":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Sirris":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Whitney":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Winter":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Black Wolf":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Niki":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Quinn":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Remy":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Alex":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"a","ballsExist":false,"freckles":false,"breastsize":0,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":2,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif","gamemode":"normal","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
+			<<set _preset to '{"general":{"map":{"movement":true,"top":false,"markers":false},"skinColor":{"tanImgEnabled":"f","tanningEnabled":false},"malechance":50,"dgchance":0,"cbchance":0,"malevictimchance":50,"homochance":4,"breast_mod":0,"penis_mod":0,"whitechance":90,"blackchance":10,"straponchance":0,"alluremod":1,"beastmalechance":80,"monsterchance":50,"monsterhallucinations":"t","blackwolfmonster":0,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"military","tipdisable":"f","debugdisable":"t","statdisable":"f","cheatdisabletoggle":"t","showCaptionText":true,"confirmSave":false,"confirmLoad":false,"confirmDelete":true,"newWardrobeStyle":false,"imgLighten":"","sidebarStats":"Disabled","sidebarTime":"Disabled","combatControls":"radio","reducedLineHeight":false},"npc":{"Avery":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Bailey":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Briar":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Charlie":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Darryl":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Doren":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Eden":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Gwylan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Harper":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Jordan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Kylar":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Landry":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Leighton":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Mason":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Morgan":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"River":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Robin":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Sam":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Sirris":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Whitney":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Winter":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Black Wolf":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Niki":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Quinn":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Remy":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Alex":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"a","ballsExist":false,"freckles":false,"breastsize":0,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":2,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif","gamemode":"normal","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
 		<<case "lollipopScythe">>
-			<<set _preset to '{"general":{"map":{"movement":true,"top":true,"markers":true},"skinColor":{"tanImgEnabled":"t","tanningEnabled":true},"malechance":75,"dgchance":25,"cbchance":0,"malevictimchance":90,"homochance":75,"breast_mod":0,"penis_mod":2,"whitechance":90,"blackchance":10,"straponchance":25,"alluremod":1,"beastmalechance":100,"monsterchance":0,"monsterhallucinations":"t","blackwolfmonster":0,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f", "slugdisable":"f", "waspdisable":"f", "lurkerdisable":"f", "beedisable":"f","horsedisable","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"military","tipdisable":"t","debugdisable":"f","statdisable":"f","cheatdisabletoggle":"t","showCaptionText":true,"confirmSave":false,"confirmLoad":false,"confirmDelete":true,"newWardrobeStyle":true,"imgLighten":"","sidebarStats":"Disabled","sidebarTime":"Disabled","combatControls":"radio","reducedLineHeight":true},"npc":{"Avery":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Bailey":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Briar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Charlie":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Darryl":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Doren":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Eden":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Gwylan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"Harper":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Jordan":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Kylar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Landry":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Leighton":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Mason":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Morgan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"River":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Robin":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Sam":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Sirris":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Whitney":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Winter":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Black Wolf":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Niki":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Quinn":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Remy":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Alex":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"h","gender_body":"f","ballsExist":true,"freckles":false,"breastsize":4,"penissize":0,"bottomsize":0},"skinColor":{"natural":"light","range":40},"bodysize":0,"breastsensitivity":5,"genitalsensitivity":5,"eyeselect":"pink","hairselect":"platinumblond","hairlength":400,"awareselect":"innocent","background":"beautiful","gamemode":"hard","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
+			<<set _preset to '{"general":{"map":{"movement":true,"top":true,"markers":true},"skinColor":{"tanImgEnabled":"t","tanningEnabled":true},"malechance":75,"dgchance":25,"cbchance":0,"malevictimchance":90,"homochance":75,"breast_mod":0,"penis_mod":2,"whitechance":90,"blackchance":10,"straponchance":25,"alluremod":1,"beastmalechance":100,"monsterchance":0,"monsterhallucinations":"t","blackwolfmonster":0,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f", "slugdisable":"f", "waspdisable":"f", "lurkerdisable":"f", "beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"military","tipdisable":"t","debugdisable":"f","statdisable":"f","cheatdisabletoggle":"t","showCaptionText":true,"confirmSave":false,"confirmLoad":false,"confirmDelete":true,"newWardrobeStyle":true,"imgLighten":"","sidebarStats":"Disabled","sidebarTime":"Disabled","combatControls":"radio","reducedLineHeight":true},"npc":{"Avery":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Bailey":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Briar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Charlie":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Darryl":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Doren":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Eden":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Gwylan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"Harper":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Jordan":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Kylar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Landry":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Leighton":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Mason":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Morgan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"River":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Robin":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Sam":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Sirris":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Whitney":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Winter":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Black Wolf":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Niki":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Quinn":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Remy":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Alex":{"pronoun":"m","gender":"m","penissize":4,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"h","gender_body":"f","ballsExist":true,"freckles":false,"breastsize":4,"penissize":0,"bottomsize":0},"skinColor":{"natural":"light","range":40},"bodysize":0,"breastsensitivity":5,"genitalsensitivity":5,"eyeselect":"pink","hairselect":"platinumblond","hairlength":400,"awareselect":"innocent","background":"beautiful","gamemode":"hard","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
 		<<case "purityGuy">>
-			<<set _preset to '{"general":{"map":{"movement":true,"top":false,"markers":true},"skinColor":{"tanImgEnabled":"t","tanningEnabled":true},"malechance":50,"dgchance":0,"cbchance":0,"malevictimchance":10,"homochance":10,"breast_mod":0,"penis_mod":0,"whitechance":100,"blackchance":0,"straponchance":0,"alluremod":1.2,"beastmalechance":50,"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":2,"bestialitydisable":"f","swarmdisable":"t","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"t","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable","breastsizemax":6,"bottomsizemax":4,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"ampm","tipdisable":"f","debugdisable":"f","statdisable":"f","cheatdisabletoggle":"t","showCaptionText":true,"confirmSave":true,"confirmLoad":true,"confirmDelete":true,"newWardrobeStyle":true,"imgLighten":"","sidebarStats":"All","sidebarTime":"top","combatControls":"radio","reducedLineHeight":false},"npc":{"Avery":{"pronoun":"f","gender":"f","penissize":1,"breastsize":4},"Bailey":{"pronoun":"m","gender":"m","penissize":3,"breastsize":2},"Briar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Charlie":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Darryl":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Doren":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Eden":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Gwylan":{"pronoun":"f","gender":"f","penissize":1,"breastsize":0},"Harper":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Jordan":{"pronoun":"f","gender":"f","penissize":3,"breastsize":5},"Kylar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Landry":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Leighton":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Mason":{"pronoun":"f","gender":"f","penissize":3,"breastsize":2},"Morgan":{"pronoun":"f","gender":"f","penissize":3,"breastsize":3},"River":{"pronoun":"f","gender":"f","penissize":3,"breastsize":0},"Robin":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Sam":{"pronoun":"f","gender":"f","penissize":1,"breastsize":3},"Sirris":{"pronoun":"f","gender":"f","penissize":3,"breastsize":0},"Whitney":{"pronoun":"f","gender":"f","penissize":4,"breastsize":0},"Winter":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Black Wolf":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Niki":{"pronoun":"f","gender":"f","penissize":3,"breastsize":2},"Quinn":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Remy":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Alex":{"pronoun":"f","gender":"f","penissize":1,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"f","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":1},"skinColor":{"natural":"light","range":0},"bodysize":2,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"amber","hairselect":"blond","hairlength":400,"awareselect":"innocent","background":"beautiful","gamemode":"normal","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
+			<<set _preset to '{"general":{"map":{"movement":true,"top":false,"markers":true},"skinColor":{"tanImgEnabled":"t","tanningEnabled":true},"malechance":50,"dgchance":0,"cbchance":0,"malevictimchance":10,"homochance":10,"breast_mod":0,"penis_mod":0,"whitechance":100,"blackchance":0,"straponchance":0,"alluremod":1.2,"beastmalechance":50,"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":2,"bestialitydisable":"f","swarmdisable":"t","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"t","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":6,"bottomsizemax":4,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"ampm","tipdisable":"f","debugdisable":"f","statdisable":"f","cheatdisabletoggle":"t","showCaptionText":true,"confirmSave":true,"confirmLoad":true,"confirmDelete":true,"newWardrobeStyle":true,"imgLighten":"","sidebarStats":"All","sidebarTime":"top","combatControls":"radio","reducedLineHeight":false},"npc":{"Avery":{"pronoun":"f","gender":"f","penissize":1,"breastsize":4},"Bailey":{"pronoun":"m","gender":"m","penissize":3,"breastsize":2},"Briar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Charlie":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Darryl":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Doren":{"pronoun":"m","gender":"m","penissize":1,"breastsize":0},"Eden":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Gwylan":{"pronoun":"f","gender":"f","penissize":1,"breastsize":0},"Harper":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Jordan":{"pronoun":"f","gender":"f","penissize":3,"breastsize":5},"Kylar":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Landry":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Leighton":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Mason":{"pronoun":"f","gender":"f","penissize":3,"breastsize":2},"Morgan":{"pronoun":"f","gender":"f","penissize":3,"breastsize":3},"River":{"pronoun":"f","gender":"f","penissize":3,"breastsize":0},"Robin":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Sam":{"pronoun":"f","gender":"f","penissize":1,"breastsize":3},"Sirris":{"pronoun":"f","gender":"f","penissize":3,"breastsize":0},"Whitney":{"pronoun":"f","gender":"f","penissize":4,"breastsize":0},"Winter":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Black Wolf":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Niki":{"pronoun":"f","gender":"f","penissize":3,"breastsize":2},"Quinn":{"pronoun":"m","gender":"m","penissize":3,"breastsize":0},"Remy":{"pronoun":"m","gender":"m","penissize":2,"breastsize":0},"Alex":{"pronoun":"f","gender":"f","penissize":1,"breastsize":0},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"f","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":1},"skinColor":{"natural":"light","range":0},"bodysize":2,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"amber","hairselect":"blond","hairlength":400,"awareselect":"innocent","background":"beautiful","gamemode":"normal","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
 		<<case "fangi">>
-			<<set _preset to '{"general":{"map":{"movement":true,"top":false,"markers":false},"skinColor":{"tanImgEnabled":"t","tanningEnabled":true},"malechance":0,"dgchance":0,"cbchance":0,"malevictimchance":1,"homochance":75,"breast_mod":0,"penis_mod":0,"whitechance":90,"blackchance":10,"straponchance":0,"alluremod":1,"beastmalechance":0,"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":1,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"military","tipdisable":"f","debugdisable":"f","statdisable":"f","cheatdisabletoggle":"f","showCaptionText":true,"confirmSave":false,"confirmLoad":false,"confirmDelete":true,"newWardrobeStyle":false,"imgLighten":"","sidebarStats":"Disabled","sidebarTime":"Disabled","combatControls":"radio","reducedLineHeight":false},"npc":{"Avery":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Bailey":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Briar":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Charlie":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Darryl":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Doren":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Eden":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Gwylan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Harper":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Jordan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Kylar":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Landry":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Leighton":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Mason":{"pronoun":"f","gender":"f","penissize":0,"breastsize":2},"Morgan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"River":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Robin":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Sam":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Sirris":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Whitney":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Winter":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Black Wolf":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Niki":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Quinn":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Remy":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Alex":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"f","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":3,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif","gamemode":"normal","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
+			<<set _preset to '{"general":{"map":{"movement":true,"top":false,"markers":false},"skinColor":{"tanImgEnabled":"t","tanningEnabled":true},"malechance":0,"dgchance":0,"cbchance":0,"malevictimchance":1,"homochance":75,"breast_mod":0,"penis_mod":0,"whitechance":90,"blackchance":10,"straponchance":0,"alluremod":1,"beastmalechance":0,"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":1,"bestialitydisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","breastsizemax":12,"bottomsizemax":8,"penissizemax":4,"penissizemin":-1,"images":1,"sidebarAnimations":true,"combatAnimations":true,"silhouettedisable":"f","numberify_enabled":1,"timestyle":"military","tipdisable":"f","debugdisable":"f","statdisable":"f","cheatdisabletoggle":"f","showCaptionText":true,"confirmSave":false,"confirmLoad":false,"confirmDelete":true,"newWardrobeStyle":false,"imgLighten":"","sidebarStats":"Disabled","sidebarTime":"Disabled","combatControls":"radio","reducedLineHeight":false},"npc":{"Avery":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Bailey":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Briar":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Charlie":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Darryl":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Doren":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Eden":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Gwylan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Harper":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Jordan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Kylar":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Landry":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Leighton":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Mason":{"pronoun":"f","gender":"f","penissize":0,"breastsize":2},"Morgan":{"pronoun":"f","gender":"f","penissize":0,"breastsize":5},"River":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Robin":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Sam":{"pronoun":"f","gender":"f","penissize":0,"breastsize":4},"Sirris":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Whitney":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Winter":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Black Wolf":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Niki":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Quinn":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Remy":{"pronoun":"f","gender":"f","penissize":0,"breastsize":3},"Alex":{"pronoun":"f","gender":"f","penissize":0,"breastsize":1},"Great Hawk":{"pronoun":"none","gender":"none","penissize":0,"breastsize":0}},"starting":{"player":{"gender":"f","gender_body":"f","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":3,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif","gamemode":"normal","asphyxiaLvl":3,"blinkingdisable":"f","halfcloseddisable":"f","pbdisable":"t"}}'>>
 		<<case "femaleWaif">>
 			<<set _preset to '{"starting":{"player":{"gender":"f","gender_body":"f","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":3,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif"}}'>>
 		<<case "maleWaif">>
@@ -51,13 +51,13 @@
 		<<case "monstersAll">>
 			<<set _preset to '{"general":{"monsterchance":100,"monsterhallucinations":"f","blackwolfmonster":2,"greathawkmonster":2,"bestialitydisable":"f"}}'>>
 		<<case "kinkDefault">>
-			<<set _preset to '{"general":{"bestialitydisable":"f","swarmdisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","toydildodisable":"f","toywhipdisable":"f"}}'>>
+			<<set _preset to '{"general":{"bestialitydisable":"f","swarmdisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f"}}'>>
 		<<case "kinkVanilla">>
-			<<set _preset to '{"general":{"bestialitydisable":"t","swarmdisable":"t","swarmdisable":"t","slimedisable":"t","voredisable":"t","tentacledisable":"t","plantdisable":"t","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"t","analpregdisable":"t","watersportsdisable":"t","facesitdisable":"t","spiderdisable":"t","bodywritingdisable":"f","parasitedisable":"t", "slugdisable":"t","waspdisable":"t","lurkerdisable":"t","beedisable":"t","horsedisable":"t","toydildodisable":"f","toywhipdisable":"f"}}'>>
+			<<set _preset to '{"general":{"bestialitydisable":"t","swarmdisable":"t","swarmdisable":"t","slimedisable":"t","voredisable":"t","tentacledisable":"t","plantdisable":"t","analdisable":"f","analdoubledisable":"t","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"t","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"t","analpregdisable":"t","watersportsdisable":"t","facesitdisable":"t","spiderdisable":"t","bodywritingdisable":"f","parasitedisable":"t", "slugdisable":"t","waspdisable":"t","lurkerdisable":"t","beedisable":"t","horsedisable":"t","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f"}}'>>
 		<<case "kinkNoBeasts">>
-			<<set _preset to '{"general":{"bestialitydisable":"t","swarmdisable":"t","swarmdisable":"t","slimedisable":"f","voredisable":"t","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"t","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"t","bodywritingdisable":"f","parasitedisable":"t","slugdisable":"t","waspdisable":"t","lurkerdisable":"t","beedisable":"t","horsedisable":"t","toydildodisable":"f","toywhipdisable":"f"}}'>>
+			<<set _preset to '{"general":{"bestialitydisable":"t","swarmdisable":"t","swarmdisable":"t","slimedisable":"f","voredisable":"t","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"t","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"t","bodywritingdisable":"f","parasitedisable":"t","slugdisable":"t","waspdisable":"t","lurkerdisable":"t","beedisable":"t","horsedisable":"t","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f"}}'>>
 		<<case "kinkEverything">>
-			<<set _preset to '{"general":{"bestialitydisable":"f","swarmdisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","toydildodisable":"f","toywhipdisable":"f"}}'>>
+			<<set _preset to '{"general":{"bestialitydisable":"f","swarmdisable":"f","swarmdisable":"f","slimedisable":"f","voredisable":"f","tentacledisable":"f","plantdisable":"f","analdisable":"f","analdoubledisable":"f","footdisable":"f","analingusdisablegiving":"f","analingusdisablereceiving":"f","vaginaldoubledisable":"f","transformdisable":"f","transformdisabledivine":"f","breastfeedingdisable":"f","analpregdisable":"f","watersportsdisable":"f","facesitdisable":"f","spiderdisable":"f","bodywritingdisable":"f","parasitedisable":"f","slugdisable":"f","waspdisable":"f","lurkerdisable":"f","beedisable":"f","horsedisable":"f","pregnancyspeechdisable":"f","toydildodisable":"f","toywhipdisable":"f"}}'>>
 		<<case "gameNormal">>
 			<<set _preset to '{"general":{"alluremod":1,"cheatdisabletoggle":"t","checkstyle":"words","clothesPrice":1,"multipleWardrobes":"isolated"},"starting":{"gamemode":"normal"}}'>>
 		<<case "gameSoft">>
diff --git a/game/04-Variables/variables-passageFooter.twee b/game/04-Variables/variables-passageFooter.twee
index 9fc8f671c4d3d7a2dd500d941dd20bb9fdf6a3bc..7eeb2d427ca9f9cbe1664bb741945a67cbe9fd84 100644
--- a/game/04-Variables/variables-passageFooter.twee
+++ b/game/04-Variables/variables-passageFooter.twee
@@ -46,7 +46,10 @@
 <<elseif !_link and !tags().includes("exitCheckBypass")>>
 	/* Does not trigger if the scene has a red link. Those will probably be reported anyway */
 	<br>
-	<<error `"the passage " + $passage + " has no usable links"` `"Previous passage: " + $passagePrev + " | phase: " + $phase + " | rng: " + $rng`>>
+	<<error {
+		message	: `The passage ${$passage} has no usable links.`,
+		source	: `Previous passage: ${$passagePrev} | phase: ${$phase} | rng: ${$rng}.`
+	}>>
 	<br><br>
 	Please report this,
 	<<if $cheatdisable is "f">>
diff --git a/game/04-Variables/variables-passageHeader.twee b/game/04-Variables/variables-passageHeader.twee
index 57983cd0a97d30db7d4c2451d6a3fda8d5b03baf..d2b68d516dff138fb64d3b1ec4c5f3c3723f994e 100644
--- a/game/04-Variables/variables-passageHeader.twee
+++ b/game/04-Variables/variables-passageHeader.twee
@@ -31,7 +31,7 @@
 	/* Variables that you need to check on every passage */
 	<<set $link_table to []>>
 	<<set $map.hideLinksCheck to []>>
-	/*  Determine if the player is in a safe passage. Used to catch softlocks */
+	/* Determine if the player is in a safe passage. Used to catch softlocks */
 	<<if setup.majorAreas.includes($passage)>>
 		<<set $safePassage to $passage>>
 	<</if>>
diff --git a/game/04-Variables/variables-start.twee b/game/04-Variables/variables-start.twee
index ca4dc718b9bbe1dbf59b5110e8adf907ed1739c0..395c2cd7a19c27f9b62ef8a19b638074ab937528 100644
--- a/game/04-Variables/variables-start.twee
+++ b/game/04-Variables/variables-start.twee
@@ -235,6 +235,7 @@
 <<set $cow to 0>>
 <<set $birdbuild to 0>>
 <<set $harpy to 0>>
+<<set $stray_happiness to 50>>
 
 <<set $seductionskill to 0>>
 <<set $oralskill to 0>>
@@ -532,20 +533,22 @@
 <<set $english_star to 0>>
 <<set $history_star to 0>>
 
-<<set $fame to 0>>
-<<set $fameexhibitionism to 0>>
-<<set $fameprostitution to 0>>
-<<set $famebestiality to 0>>
-<<set $famesex to 0>>
-<<set $famerape to 0>>
-<<set $famegood to 0>>
-<<set $famebusiness to 0>>
-<<set $famescrap to 0>>
-<<set $famepimp to 0>>
-<<set $famesocial to 0>>
-<<set $famemodel to 0>>
-<<set $famepark to 0>>
-<<set $famepregnancy to 0>>
+<<set $fame to {
+	exhibitionism: 0,
+	prostitution: 0,
+	bestiality: 0,
+	sex: 0,
+	rape: 0,
+	good: 0,
+	business: 0,
+	scrap: 0,
+	pimp: 0,
+	social: 0,
+	model: 0,
+	pregnancy: 0
+}>>
+
+<<set $park_fame to 0>>
 <<set $park_run_seen_by to []>>
 
 <<set $spray to 0>>
diff --git a/game/04-Variables/variables-start2.twee b/game/04-Variables/variables-start2.twee
index 861278b489aeaff1ddc89f496675f493d609b781..6cb58d1969bb18e13ff5584e2d3bf981cdcfaa84 100644
--- a/game/04-Variables/variables-start2.twee
+++ b/game/04-Variables/variables-start2.twee
@@ -1,7 +1,7 @@
 :: Widgets variablesStart2 [widget]
 <<widget "variablesStart2">>
 /*Variables required at the start of passage 'Start2', please remove if not required"*/
-/*This widget should be used to initialize most or all variables that are required when you begin a new game. also check <<gameStartOnly>> for other initializations. */
+/*This widget should be used to initialise most or all variables that are required when you begin a new game. also check <<gameStartOnly>> for other initialisations. */
 
 <<if $hairselect is "random">>
 	<<set $hairselect to ["red","jetblack","black","brown","softbrown","lightbrown","burntorange","blond","softblond","platinumblond","ashyblond","strawberryblond","ginger"].random()>>
@@ -119,6 +119,29 @@
 <<set $player.perceived_breastsize = $player.breastsize>>
 <<set $player.perceived_bottomsize = $player.bottomsize>>
 
+<<if $startingseason is "random">>
+	<<set $startingseason to ["autumn","winter","spring","summer"].random()>>
+<</if>>
+
+<<switch $startingseason>> /* The yeardays countdown begins on September 1st, autumn start is on Sep 4th */
+	<<case "winter">>
+		<<set $yeardays to 91>>
+		<<set $month to "december">>
+		<<set $season to "winter">>
+	<<case "spring">>
+		<<set $yeardays to 182>>
+		<<set $month to "march">>
+		<<set $season to "spring">>
+	<<case "summer">>
+		<<set $yeardays to 273>>
+		<<set $month to "june">>
+		<<set $season to "summer">>
+	<<default>>
+		<<set $yeardays to 3>>
+		<<set $month to "september">>
+		<<set $season to "autumn">>
+<</switch>>
+
 <<if $background is "nerd">>
 	<<set $science += 100>><<set $maths += 100>><<set $english += 100>><<set $history += 100>><<set $school += 400>><<set $cool to 0>>
 	<<set $sciencetrait to 1>><<set $mathstrait to 1>><<set $englishtrait to 1>><<set $historytrait to 1>>
@@ -283,10 +306,14 @@
 	numberPerTrain: [],
 }>>
 
-<<set $kylar to {}>>
-<<set $kylar.raped to 0>>
-<<set $kylar.riddle to 0>>
-<<set $kylar.timer to {halls:0,street:0,home:0,love:0}>>
+<<set $robinTattoo to []>>
+<<set $robinmissing to 0>>
+<<set $kylar to {
+	raped: 0,
+	riddle: 0,
+	timer: {halls:0,street:0,home:0,love:0},
+	fameStage: 0,
+}>>
 <<set $kylarSeen to []>>
 <<set $kylarDaily to {}>>
 <<set $museumAntiqueJournalHints to []>>
@@ -321,5 +348,8 @@
 <<set $adultshopprogress to 0>>
 <<set $adultshopcontribution to 0>>
 
-<<run window.createInventoryObject()>>
+<<run createInventoryObject()>>
+
+<<set $robinPunishments to []>>
+<<set $robinTraumaMultiplier to 1>>
 <</widget>>
diff --git a/game/04-Variables/variables-static.twee b/game/04-Variables/variables-static.twee
index 6dab1fffe78a43cf38c6f5c94a2f5c328cf197ba..eff27201f2d2a9961ffedfca318f040f32fec6ce 100644
--- a/game/04-Variables/variables-static.twee
+++ b/game/04-Variables/variables-static.twee
@@ -487,10 +487,10 @@ and are required for processing for loops, default objects, etc.*/
 }>>
 
 <<set setup.majorAreas to [
-	"Orphanage", "Bedroom", "Barb Street", "Cliff Street", "Connudatus Street", "Danube Street", "Domus Street", "Elk Street", 
-	"Harvest Street", "High Street", "Mer Street", "Nightingale Street", "Oxford Street", "Starfish Street", "Wolf Street", 
-	"Residential alleyways", "Commercial alleyways", "Industrial alleyways", "Park", "Hallways", "Brothel", "Strip Club", 
-	"Beach", "Ocean Breeze", "Docks Work", "Residential Drain", "Commercial Drain", "Industrial Drain", "Forest", "Farmland", 
+	"Orphanage", "Bedroom", "Barb Street", "Cliff Street", "Connudatus Street", "Danube Street", "Domus Street", "Elk Street",
+	"Harvest Street", "High Street", "Mer Street", "Nightingale Street", "Oxford Street", "Starfish Street", "Wolf Street",
+	"Residential alleyways", "Commercial alleyways", "Industrial alleyways", "Park", "Hallways", "Brothel", "Strip Club",
+	"Beach", "Ocean Breeze", "Docks Work", "Residential Drain", "Commercial Drain", "Industrial Drain", "Forest", "Farmland",
 	"Livestock Field", "Moor", "Forest Wolf Cave", "Wolf Cave", "Wolf Cave Clearing", "Asylum", "Asylum Cell", "Underground Cell", "Prison Cell"
 ]>>
 
@@ -513,7 +513,7 @@ and are required for processing for loops, default objects, etc.*/
 }>>
 
 <<set setup.npcPenisRemarks to {
-	"big": ["Your body feels weak at the sight.","You shudder at the sight.","You moan involuntarily at its size.","You gasp at its massive girth.","Your thighs feel weak as you look on."],	
+	"big": ["Your body feels weak at the sight.","You shudder at the sight.","You moan involuntarily at its size.","You gasp at its massive girth.","Your thighs feel weak as you look on."],
 	"small": ["You stifle a laugh at the sight.","You smirk at the sight.","You stifle a chuckle at the sight.","You stifle a giggle at the sight.","You try not to laugh."]
 }>>
 
diff --git a/game/04-Variables/variables-versionUpdate.twee b/game/04-Variables/variables-versionUpdate.twee
index 1a6b8233ac5128b4a39b8d5ea626868b41067e89..200c028c8f6c9929cd1582b3b704af5e1c6f8ea9 100644
--- a/game/04-Variables/variables-versionUpdate.twee
+++ b/game/04-Variables/variables-versionUpdate.twee
@@ -1007,7 +1007,7 @@
 <<if ndef $pillory_tenant>> /* Pillory related */
 	<<setup_pillory>>
 <</if>>
-<<if ndef $police_intro>>						   /* Police hack related*/
+<<if ndef $police_intro>>							/* Police hack related*/
 	<<set $police_intro to 0>>
 	<<set $police_access_card to 0>>
 	<<set $police_hack to 0>>
@@ -2126,6 +2126,10 @@
 	<<set $vaginaldoubledisable to "f">>
 <</if>>
 
+<<if $furniturePriceFactor is undefined>>
+	<<set $furniturePriceFactor to 1>>
+<</if>>
+
 <<if $rentmod is undefined>>
 	<<set $rentmod to 1>>
 <<elseif $rentmod gt 3>>
@@ -2509,7 +2513,7 @@
 <</if>>
 
 <<if !$NPC_names_m>>
-	<<init_names>>	
+	<<init_names>>
 <</if>>
 
 <<if $prison and $prison.kylar is undefined>>
@@ -2645,9 +2649,9 @@
 	<<run window.backCompPillsInventory()>> /* restructure V.sexStats.pills inventory */
 	<<set $runWardrobeSanityChecker to true>>
 
-	<<if $objectVersion.updateClothes lt 29 or $objectVersion.updateClothes is undefined>>
+	<<if $objectVersion.updateClothes lt 30 or $objectVersion.updateClothes is undefined>>
 		<<updateClothes>>
-		<<set $objectVersion.updateClothes to 29>>
+		<<set $objectVersion.updateClothes to 30>>
 		<!--If you have added any `colour_combat` or `accessory_colour_combat` to clothes that need their `colour` or `accessory_colour`, this will clear them.
 		Remove `colour_combat` or `accessory_colour_combat` where this is the case, they are independant so `colour_combat` will only clear `colour`-->
 	<</if>>
@@ -2669,7 +2673,7 @@
 		<<set $nectar_addiction to 0>>
 		<<set $nectar_timer to 0>>
 	<</if>>
-	
+
 	<<if $hypnotised is undefined>>
 		<<set $hypnotised to 0>>
 		<<set $famemodel to 0>>
@@ -2691,7 +2695,7 @@
 		<</if>>
 	<</for>>
 
-	<!-- Jimmy: Reset NPC slots if necessary by checking .type === 0 
+	<!-- Jimmy: Reset NPC slots if necessary by checking .type === 0
 			Old versions prior to 3.4.* did not have empty slots properly set to baseNPC. -->
 	<<for $_i = 0; $_i < $NPCList.length; $_i++>>
 		<<if $combat isnot 1>>
@@ -2723,12 +2727,12 @@
 			}
 		}
 	>>
-	
+
 	<!-- Jimmy: Run updater for EventSystem.
 				Only runs if behind on schema, and if $event exists. -->
 	<<run EventSystem.Update()>>
 
-	<!-- Jimmy: Updater for NNPCs that lack pronouns structures. 
+	<!-- Jimmy: Updater for NNPCs that lack pronouns structures.
 				Based off of $perNPCFix located in VVU -->
 	<<if $pronounsNPCFix isnot 1>>
 		<<for $_npc range $NPCName>>
@@ -2774,7 +2778,7 @@
 		<</for>>
 	<</if>>
 
-	<!-- v0.3.5.4: pubic hair was accidentally disabled on new saves bc it wasn't initialized properly. --> 
+	<!-- v0.3.5.4: pubic hair was accidentally disabled on new saves bc it wasn't initialised properly. -->
 	<<pbhairinit>>
 
 	<!-- v0.3.6.2: blind stats mode -->
@@ -2814,7 +2818,7 @@
 		<<if $per_npc.wraith.gender is "m">><<set $per_npc.wraith.vagina to "none">><</if>>
 		<<if $per_npc.wraith.gender is "f">><<set $per_npc.wraith.penis to "none">><</if>>
 	<</if>>
-	
+
 	<!-- v0.3.6.2: namednpcs update -->
 	<<updateNewNamedNpcs>>
 
@@ -2865,13 +2869,13 @@
 			<</switch>>
 			<<npcClothesName $_robin $_clothesReplace>>
 			<<run delete $_robin.currentOutfit>>
-		<</if>>	
+		<</if>>
 	<</if>>
 
 	<!-- v0.3.6.2: Updating NPC clothing when needed -->
 	<<if $objectVersion.npcClothes lt 1 or $objectVersion.npcClothes is undefined>>
 		<<set $objectVersion.npcClothes to 1>>
-		<<if $halloween is 1 and $robinmissing isnot 1 and $hour gte 16 and $hour lt 19 and $monthday is 31 and $halloween_robin_costume and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+		<<if $halloween is 1 and $robinmissing is 0 and $hour gte 16 and $hour lt 19 and $monthday is 31 and $halloween_robin_costume and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
 			<<if !$NPCName[$NPCNameList.indexOf("Robin")].outfits>>
 				<<initNNPCClothes "Robin">>
 			<</if>>
@@ -2882,7 +2886,7 @@
 		<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "prison">>
 			<<if !$NPCName[$NPCNameList.indexOf("Kylar")].outfits>>
 				<<initNNPCClothes "Kylar">>
-			<</if>>	
+			<</if>>
 			<<if !$NPCName[$NPCNameList.indexOf("Kylar")].outfits.includes("prisonJumpsuit")>>
 				<<addNNPCOutfit "Kylar" "prisonJumpsuit">>
 			<</if>>
@@ -2949,7 +2953,7 @@
 		<<set setup.debugMenu = {}>>
 		<<set setup.debugMenu.cacheDebugDiv = {}>>
 	<</if>>
-	
+
 	<!-- v0.3.6.2: Init variables necessary for custom contact lenses -->
 	<<if ndef $left_before_nurse_returned>>
 		<<set $left_before_nurse_returned to 0>>
@@ -2966,7 +2970,7 @@
 	<<if ndef $makeup.owned.custom_eyelenses>>
 		<<set $makeup.owned.custom_eyelenses to []>> /* pharmacy custom eye lenses */
 	<</if>>
-	
+
 	<<if $adultShop is undefined>>
 		<<set $adultShop to {
 			ban: 0,
@@ -3091,11 +3095,11 @@
 		<</if>>
 	<</if>>
 
-	<!-- v0.3.7.4	 RobinCrossDressingQuest update -->
+	<!-- v0.3.7.4 RobinCrossDressingQuest update -->
 	<<if $NPCName[$NPCNameList.indexOf("Robin")].cdquest is undefined>>
 		<<set $NPCName[$NPCNameList.indexOf("Robin")].cdquest to 0>>
 	<</if>>
-	
+
 	<!-- v0.3.7.4: sleep code readability update -->
 	<<if $schoolwake isnot undefined>>
 		<<unset $schoolwake>>
@@ -3156,7 +3160,7 @@
 		<<unset $undergroundescape>>
 		<<set $undergroundbrothelescaped to true>>
 	<</if>>
-	
+
 	<<if $adultshopprogress is undefined>>
 		<<set $adultshopprogress to 0>>
 	<</if>>
@@ -3185,7 +3189,7 @@
 		<</script>>
 		<<set $objectVersion.sexToys to 1>>
 	<</if>>
-	
+
 	<!-- v0.3.8.2: sex toy and double penetration stats-->
 	<<if $toymultiplepenetration is undefined>>
 		<<set $toymultiplepenetration to "f">>
@@ -3226,7 +3230,162 @@
 		<</if>>
 	<</if>>
 
+	<!-- 0.3.8.2: starting season backwards compatibility check -->
+	<<if $startingseason is undefined>>
+		<<set $startingseason to "autumn">>
+	<</if>>
+
+	<!-- v0.3.8.6: Fixing mismatched specialtransform after losing your virginity -->
+	<<if $demon gte 1 or $angel gte 1 or $fallenangel gte 2>>
+		<<set $specialTransform to 1>>
+	<<else>>
+		<<set $specialTransform to 0>>
+	<</if>>
+
+	<!-- v0.3.8.6: Traubin overhaul -->
+	<<if $robinTraumaMultiplier is undefined>>
+		<<set $robinTraumaMultiplier to 1>>
+	<</if>>
+
+	<<if $robinSeen is undefined>>
+		<<set $robinSeen to []>>
+	<</if>>
+
+	<<if !$robinTattoo>>
+		<<set $robinTattoo to []>>
+	<</if>>
 
+	<<if $robinPunishments is undefined>>
+		<<set $robinPunishments to []>>
+		<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gt 0>>
+			<<set $robinPunishments.pushUnique("docks")>>
+			<<set $robinLastPunishment to "docks">>
+		<</if>>
+	<</if>>
 
+	<<if $robinmissing is undefined>>
+		<<set $robinmissing to 0>>
+	<<elseif $robinmissing is 1>>
+		<<set $robinmissing to "docks">>
+		<<set $robinLastPunishment to "docks">>
+	<</if>>
+
+	<<if $baileyOverdue is undefined>>
+		<<set $baileyOverdue to 0>>
+		<<set $baileypaychain to 0>>
+	<</if>>
+
+	<<if $NPCList[0].index is undefined>>
+		<<for _i to 0; _i lt $NPCList.length; _i++>>
+			<<set $NPCList[_i].index to _i>>
+		<</for>>
+	<</if>>
+
+	<!-- v0.3.8.6: furniture update -->
+	<<run Furniture.update(true)>>
+
+
+	<!-- v0.3.8.6: Sydney Rite of Promise protects PC's angel TF -->
+	<!-- !! Readjust after marriage is added !! -->
+	<<if $templePromised isnot "" and $player.virginity.vaginal is true and $player.virginity.penile is true>>
+		<<set $virginityProtected to true>>
+	<</if>>
+
+	<!-- v0.3.8.6: give existing clothing (school shirt) a default accessory colour. (Light blue) -->
+	<<script>>
+		const itemChanger = item => {
+			if (item.index === 5) {
+				/* We found our school shirt. */
+				if (item.accessory_colour === 0) {
+					item.accessory_colour = "light blue";
+					item.accessory_colour_combat = "light blue";
+				}
+			}
+		};
+		V.wardrobe.upper.forEach(itemChanger);
+		itemChanger(V.worn.upper);
+	<</script>>
+
+	<!-- v0.3.8.6: Awarding the "Robin's Song" feat to players who missed it -->
+	<<if $NPCName[$NPCNameList.indexOf("Robin")].cdquest gte 7>>
+		<<earnFeat "Robin's Song">>
+	<</if>>
+
+	<!-- <= v0.3.8.6: fame object -->
+	<<if typeof $fame is "number">>
+		<<set $fame to {
+			exhibitionism: $fameexhibitionism,
+			prostitution: $fameprostitution,
+			bestiality: $famebestiality,
+			sex: $famesex,
+			rape: $famerape,
+			good: $famegood,
+			business: $famebusiness,
+			scrap: $famescrap,
+			pimp: $famepimp,
+			social: $famesocial,
+			model: $famemodel,
+			pregnancy: $famepregnancy
+		}>>
+
+		<<if $statsFreeze and !$frozenValues>> <!-- For scenes like Janet and Raul, Pinch, or the Schism -->
+			<<set $real_fame to {
+				exhibitionism: $real_fameexhibitionism,
+				prostitution: $fameprostitution,
+				bestiality: $famebestiality,
+				sex: $real_famesex,
+				rape: $real_famerape,
+				good: $famegood,
+				business: $famebusiness,
+				scrap: $real_famescrap,
+				pimp: $famepimp,
+				social: $famesocial,
+				model: $famemodel,
+				pregnancy: $famepregnancy
+			}>>
+		<</if>>
+
+		<<unset $fameexhibitionism>>
+		<<unset $fameprostitution>>
+		<<unset $famebestiality>>
+		<<unset $famesex>>
+		<<unset $famerape>>
+		<<unset $famegood>>
+		<<unset $famebusiness>>
+		<<unset $famescrap>>
+		<<unset $famepimp>>
+		<<unset $famesocial>>
+		<<unset $famemodel>>
+		<<unset $famepregnancy>>
+		<<unset $real_fameexhibitionism>>
+		<<unset $real_famesex>>
+		<<unset $real_famerape>>
+		<<unset $real_famescrap>>
+
+		<<if $park_fame is undefined>>
+			<<set $park_fame to $famepark>>
+			<<unset $famepark>>
+		<</if>>
+	<</if>>
+
+	<!-- <= v0.3.8.6: Modeling rework -->
+	<<if $photo and $photo.fame_stage>>
+		<<set $photo.audienceSize to Math.ceil( $photo.fame_stage / 2 )>>
+		<<set $photo.timesWithThisAudienceSize to ( ( ( $photo.fame_stage - 1 ) % 2 ) + 1 )>>
+		<<run delete $photo.fame_stage>>
+	<</if>>
+
+	<!-- v0.3.8.6: Kylar rework -->
+	<<if $kylar.fameStage is undefined>>
+		<<set $kylar.fameStage to 0>>
+	<</if>>
+
+	<<if $pregnancyspeechdisable is undefined>>
+		<<set $pregnancyspeechdisable to "f">>
+	<</if>>
+	
+	<<if $stray_happiness is undefined>>
+		<<set $stray_happiness to 50>>
+	<</if>>
 
 <</widget>>
diff --git a/game/base-clothing/canvasmodel-img.twee b/game/base-clothing/canvasmodel-img.twee
index 8b6c9e83871cd6ce716d3ba1614df5ffd61c0b03..2192197d3d75eb0f905e4f2e456ecb4ca9e4b63f 100644
--- a/game/base-clothing/canvasmodel-img.twee
+++ b/game/base-clothing/canvasmodel-img.twee
@@ -110,12 +110,12 @@ if ($skinColor.tanningEnabled is true){
 <</if>>
 
 <<if $wraithSkin>>
-    <<set _modeloptions.mannequin to true>>
-    <<set _modeloptions.skin_type to 'custom'>>
-    <<set _modeloptions.filters.body to {blend:'#ffffff',blendMode:'multiply',desaturate:true}>>
-    <<set _modeloptions.filters.breasts to _modeloptions.filters.body>>
-    <<set _modeloptions.filters.penis to _modeloptions.filters.body>>
-    <<set _modeloptions.show_tanlines to false>>
+	<<set _modeloptions.mannequin to true>>
+	<<set _modeloptions.skin_type to 'custom'>>
+	<<set _modeloptions.filters.body to {blend:'#ffffff',blendMode:'multiply',desaturate:true}>>
+	<<set _modeloptions.filters.breasts to _modeloptions.filters.body>>
+	<<set _modeloptions.filters.penis to _modeloptions.filters.body>>
+	<<set _modeloptions.show_tanlines to false>>
 <</if>>
 
 <!--
@@ -444,7 +444,7 @@ Set model options & filters for player clothes
 <</if>>
 
 <<set _modeloptions.hood_down to $hoodDown>>
-<<if ((($worn.over_head.hood is 1 and $worn.over_head.mask_img isnot 1) or ($worn.head.hood is 1 and $worn.head.mask_img isnot 1))) and $hoodDown is 0>> 
+<<if ((($worn.over_head.hood is 1 and $worn.over_head.mask_img isnot 1) or ($worn.head.hood is 1 and $worn.head.mask_img isnot 1))) and $hoodDown is 0>>
 	<<set _modeloptions.hair_sides_length to "short">>
 	<<set _modeloptions.hair_fringe_length to "short">>
 <</if>>
@@ -535,9 +535,9 @@ Set model options & filters for player clothes
 		<</if>>
 	<</if>>
 	<<if playerHasStrapon()>>
-        <<set _modeloptions.worn_under_lower to $worn.under_lower.index>>
-        <<set _modeloptions.worn_under_lower_colour to ($worn.under_lower.colourCustom ? $worn.under_lower.colourCustom : $worn.under_lower.colour)>>
-    <</if>>
+		<<set _modeloptions.worn_under_lower to $worn.under_lower.index>>
+		<<set _modeloptions.worn_under_lower_colour to ($worn.under_lower.colourCustom ? $worn.under_lower.colourCustom : $worn.under_lower.colour)>>
+	<</if>>
 
 	<<if $sidebarRenderer is 'both'>>
 		<<rendermodel 'canvasimg-both'>>
diff --git a/game/base-clothing/captiontext.twee b/game/base-clothing/captiontext.twee
index afae572f2cc95eba3451d2ff2bc4ef99149a64ba..8f9257d017a73586b6fd3dcd9114ec7e07d4a998 100644
--- a/game/base-clothing/captiontext.twee
+++ b/game/base-clothing/captiontext.twee
@@ -8,17 +8,17 @@
 	<<set _text_output to "">>
 
 	<<set _wearing to "You are " + (_topless ? "<span class='pink'>topless</span>, " : "") + "wearing ">>
-	
+
 	<<if !_overNaked>>
 		<<clothingCaptionTextOver>>
 	<</if>>
-	
+
 	<<if !_middleNaked>>
 		<<clothingCaptionTextMiddle>>
 	<</if>>
-	
+
 	<<clothingCaptionTextUnder>>
-	
+
 	<<switch Math.clamp(_clothingCaptionItems.length, 0, 3)>>
 	<<case 3>>
 		<<set _lastItem to _clothingCaptionItems.pop()>>
@@ -57,18 +57,18 @@
 		<<set $_wornItemWord to setup.clothes[_args[0]][clothesIndex(_args[0],$_wornItem)].word>>
 		<<set $_output += ($_wornItemWord isnot "n" ? $_wornItemWord : "") + " ">>
 	<</if>>
-	
+
 	/* word 2: damage, example "frayed" */
 	<<run $_output += window.integrityWord($_wornItem,_args[0])>>
 
 	/* word 3: colour, example: "red" */
 	<<run $_output += window.clothesColour($_wornItem) + " ">>
-	
+
 	/* word 4: clothes name, example: "school shirt" */
 	<<set $_output += $_wornItem.name>>
 
 	/* push */
-	<<set _clothingCaptionItems.pushUnique($_output)>>	
+	<<set _clothingCaptionItems.pushUnique($_output)>>
 <</widget>>
 
 <<widget "clothingCaptionTextOver">><<silently>>
@@ -113,7 +113,7 @@
 	<<if $worn.under_upper.name isnot "naked" and $worn.under_lower.name isnot "naked">>
 		<!--Both-->
 		<<set _nothingBut to $_exposed and _underOutfit>>
-		
+
 		<<pushClothingCaption "under_upper">>
 		<<if !_underOutfit>>
 			<<pushClothingCaption "under_lower">>
@@ -142,16 +142,22 @@
 <<widget "clothingCaptionTextGenitals">><<silently>>
 <<if $worn.genitals.name isnot "naked">>
 	<<if _bottomless>>
-		<<set $_text_output to " <span class='red'>Your <<genitalsintegrity>> $worn.genitals.name <<if $worn.genitals.anal_shield is 1>>with an anal shield<</if>> gives you no comfort.</span>">>
+		<<set $_text_output to " <span class='red'>Your <<genitalsintegrity>> $worn.genitals.name <<if $worn.genitals.anal_shield is 1>>with an anal shield<</if>><<if playerHasButtPlug()>> and $worn.butt_plug.name<</if>> gives you no comfort.</span>">>
 	<<else>>
-		<<set $_text_output to " You wear <<genitalsword>> <<genitalsintegrity>> $worn.genitals.name<<if $worn.genitals.anal_shield is 1>> with an anal shield<</if>>.">>
+		<<set $_text_output to " You wear <<genitalsword>> <<genitalsintegrity>> $worn.genitals.name<<if $worn.genitals.anal_shield is 1>> with an anal shield<</if>><<if playerHasButtPlug()>> and $worn.butt_plug.name<</if>>.">>
 	<</if>>
+<<elseif playerHasButtPlug()>>
+	<<set $_a to ($worn.butt_plug.name is "anal beads"? "": "a")>>
+	<<set $_text_output to " You wear $_a $worn.butt_plug.name.">>
 <</if>>
 <</silently>><<if $_text_output>><<print $_text_output>><</if>>
 <</widget>>
 
 <<widget "clothingCaptionTextMask">>
-	<<if $worn.face.type.includes("mask")>><br>Your identity is concealed by your <<faceintegrity>> $worn.face.name.<</if>>
+	<<if $worn.face.type.includes("mask")>>
+		<br>
+		Your identity is concealed by your <<faceintegrity>> $worn.face.name.
+	<</if>>
 <</widget>>
 
 <<widget "clothingCaptionTextNothing">><<silently>>
@@ -169,7 +175,7 @@
 
 <<widget "clothingstatecompare">>
 	/* One argument, a clothing article whose state you want to compare against its original state. Must be the ENTIRE variable, not .name! */
-	/* Returns the difference between the current and base states. Negative means it's pulled down, positive means it's pulled up.  */
+	/* Returns the difference between the current and base states. Negative means it's pulled down, positive means it's pulled up. */
 	/* If the clothing was pulled to the side, this returns 0. It would also return 0 if the current state is the base state. */
 	<<set _compare_result to _clothing_levels.indexOf($worn[_args[0]].state) - _clothing_levels.indexOf(setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].state_base)>>
 	<<if $worn[_args[0]].state is "totheside">><<set _compare_result to 0>><</if>>
@@ -223,14 +229,14 @@
 			<<set $_highestLevelCovered to $_wornClothing.name>>
 			<<break>> /* don't check clothing below the current layer if this layer is blocking visibility */
 		<</if>>
-		
+
 		<<set $_revealType to $_clothingRevealType[$_clothing]>>
-		
+
 		<<set $_clothes[$_revealType].pushUnique($_wornClothing.name)>>
 		<<set $_plural[$_revealType] to ($_plural[$_revealType] or ($_wornClothing.plural is 1))>>
 		<<set $_isExposed to true>>
 	<</for>>
-	
+
 	<<if $_isExposed>>
 		/* Find which areas are exposed */
 		<<if $_highestLevelCovered is "">>
@@ -254,11 +260,11 @@
 			<</if>>
 			<<set $_verbIsPlural to ($_clothes[$_type].length gte 2 or $_plural[$_type])>>
 			<<switch $_type>>
-				<<case "wet">> 		 <<set $_verb to ($_verbIsPlural ? " are drenched, " : " is drenched, ")>>
-				<<case "exposed">> 	 <<set $_verb to ($_verbIsPlural ? " have been pulled aside, " : " has been pulled aside, ")>>
-				<<case "up">> 		 <<set $_verb to ($_verbIsPlural ? " have been pulled up, " : " has been pulled up, ")>>
-				<<case "down">> 	 <<set $_verb to ($_verbIsPlural ? " have been pulled down, " : " has been pulled down, ")>>
-				<<case "totheside">> <<set $_verb to ($_verbIsPlural ? " have been pulled to the side, " : " has been pulled to the side, ")>>
+				<<case "wet">>			<<set $_verb to ($_verbIsPlural ? " are drenched, " : " is drenched, ")>>
+				<<case "exposed">>		<<set $_verb to ($_verbIsPlural ? " have been pulled aside, " : " has been pulled aside, ")>>
+				<<case "up">>			<<set $_verb to ($_verbIsPlural ? " have been pulled up, " : " has been pulled up, ")>>
+				<<case "down">>			<<set $_verb to ($_verbIsPlural ? " have been pulled down, " : " has been pulled down, ")>>
+				<<case "totheside">>	<<set $_verb to ($_verbIsPlural ? " have been pulled to the side, " : " has been pulled to the side, ")>>
 			<</switch>>
 
 			<<if _output isnot "">><<set _output += " and your ">><</if>>
diff --git a/game/base-clothing/clothing-feet.twee b/game/base-clothing/clothing-feet.twee
index 5396dbd5026f9446d0f917fc0cd40d7068db68c4..32bb6347c141c88e1e2a039747ea51cebbbea73c 100644
--- a/game/base-clothing/clothing-feet.twee
+++ b/game/base-clothing/clothing-feet.twee
@@ -809,6 +809,34 @@
 	location: 0,
 	iconFile: "cowboy_boots.png",
 	accIcon: 0
+},
+
+	{index: 28,
+	name: "high top trainers",
+	name_cap: "High top trainers",
+	variable: "hightops",
+	integrity: 300,
+	integrity_max: 300,
+	fabric_strength: 20,
+	reveal: 1,
+	word: "n",
+	plural: 1,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	colour_sidebar: 1,
+	type: ["normal"],
+	gender: "n",
+	warmth: 10,
+	cost: 6000,
+	description: "Fashionable and practical.",
+	shop: ["clothing"],
+	accessory: 0,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	cursed: 0,
+	location: 0,
+	iconFile: "trainers.png",
+	accIcon: "trainers_acc.png"
 }
 
 
diff --git a/game/base-clothing/clothing-lower.twee b/game/base-clothing/clothing-lower.twee
index b54d085e4e9e8bc804e3843b4ce7b65415241558..5c8110224ff5e12a12d8249ad919b2bf4a8fd79a 100644
--- a/game/base-clothing/clothing-lower.twee
+++ b/game/base-clothing/clothing-lower.twee
@@ -3889,6 +3889,98 @@
 	iconFile: 0,
 	accIcon: 0,
 	outfitSecondary: ["upper","split dress"]
+},
+
+	{index: 86,
+	name: "skimpy lolita skirt",
+	name_cap: "Skimpy lolita skirt",
+	variable: "skimpylolita",
+	integrity: 100,
+	integrity_max: 100,
+	fabric_strength: 30,
+	reveal: 400,
+	rearresize: 0,
+	word: "a",
+	one_piece: 1,
+	skirt: 1,
+	skirt_down: 1,
+	short: 0,
+	state: "waist",
+	state_base: "waist",
+	plural: 0,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	colour_sidebar: 1,
+	exposed: 0,
+	exposed_base: 0,
+	vagina_exposed: 0,
+	vagina_exposed_base: 0,
+	anus_exposed: 0,
+	anus_exposed_base: 0,
+	type: ["normal"],
+	set: "sundress",
+	gender: "f",
+	femininity: 200,
+	warmth: 15,
+	cost: 0,
+	description: "A blend of fashions.",
+	shop: ["clothing"],
+	accessory: 1,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	high_img: 0,
+	back_img: 0,
+	cursed: 0,
+	location: 0,
+	iconFile: 0,
+	accIcon: 0,
+	outfitSecondary: ["upper","skimpy lolita dress"]
+},
+
+	{index: 87,
+	name: "short ballgown skirt",
+	name_cap: "Short ballgown skirt",
+	variable: "shortballgown",
+	integrity: 80,
+	integrity_max: 80,
+	fabric_strength: 30,
+	reveal: 800,
+	rearresize: -2,
+	word: "a",
+	one_piece: 1,
+	skirt: 1,
+	skirt_down: 1,
+	short: 0,
+	state: "waist",
+	state_base: "waist",
+	plural: 0,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	colour_sidebar: 1,
+	exposed: 0,
+	exposed_base: 0,
+	vagina_exposed: 0,
+	vagina_exposed_base: 0,
+	anus_exposed: 0,
+	anus_exposed_base: 0,
+	type: ["formal"],
+	set: "ballgown",
+	gender: "f",
+	femininity: 200,
+	warmth: 50,
+	cost: 0,
+	description: "Scandalously short.",
+	shop: ["clothing"],
+	accessory: 0,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	high_img: 1,
+	back_img: 0,
+	cursed: 0,
+	location: 0,
+	iconFile: 0,
+	accIcon: 0,
+	outfitSecondary: ["upper","short ballgown"]
 }
 
 ]>>
diff --git a/game/base-clothing/clothing-neck.twee b/game/base-clothing/clothing-neck.twee
index 0121cb19a8106c81a077a2d0c7c98c1a0f55c84c..734329fca162eff38b77859c992cbd2fa7559195 100644
--- a/game/base-clothing/clothing-neck.twee
+++ b/game/base-clothing/clothing-neck.twee
@@ -769,6 +769,36 @@
 	location: 0,
 	iconFile: "collar.png",
 	accIcon: 0
+},
+
+	{index: 26,
+	name: "spiked collar with leash",
+	name_cap: "Spiked collar with leash",
+	variable: "spikedleash",
+	integrity: 40,
+	integrity_max: 40,
+	fabric_strength: 20,
+	reveal: 100,
+	word: "a",
+	plural: 0,
+	colour: 0,
+	colour_options: [],
+	colour_combat:"black",
+	type: ["fetish", "costume", "eerie"],
+	gender: "n",
+	femininity: 0,
+	warmth: 0,
+	cost: 1500,
+	description: "Menaces with spikes of steel.",
+	shop: ["clothing"],
+	collared: 1,
+	accessory: 1,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	cursed: 0,
+	location: 0,
+	iconFile: "spiked_collar.png",
+	accIcon: 0
 }
 
 ]>>
diff --git a/game/base-clothing/clothing-sets.twee b/game/base-clothing/clothing-sets.twee
index 7c77324ca16b1377a6a01c0f738dea52fa2272cf..e46323bb2ca9377229e182038a5de760da5b8e26 100644
--- a/game/base-clothing/clothing-sets.twee
+++ b/game/base-clothing/clothing-sets.twee
@@ -43,6 +43,10 @@
 		<<set _passage to 'Prison Bed'>>
 		<<set $wardrobe_location to "prison">>
 		<<set $storeLocation to "prison bed">>
+	<<case "Robin Bed">>
+		<<set _passage to "Robin Room Bed">>
+		<<set $wardrobe_location to "wardrobe">>
+		<<set $storeLocation to "bed">>
 	<<default>>
 		<<set _passage to "Bed">>
 		<<set $wardrobe_location to "wardrobe">>
@@ -52,7 +56,15 @@
 <<if $alwaysSleepNaked isnot true>>
 	<<for _i to 0; _i lt $outfit.length; _i++>>
 		<<if $outfit[_i].type.includes("sleep")>>
-			<<bedicon>><<print '<<link [["Wear "+$outfit[_i].name+($outfit[_i].colors is false? "" : " [C]") + " and climb in bed"|"'+_passage+'"]]>><<set $wear_outfit to ' + _i + '>><<saveTempHairStyle>><</link>>'>>
+			<<if _passage is "Bed">>
+				<<furnitureicon _bed.iconFile>>
+			<<else>>
+				<<bedicon>>
+			<</if>>
+			<<capture _i>>
+				<<set _outfitname to $outfit[_i].name + ($outfit[_i].colors is false? "" : " [C]")>>
+				<<link [["Wear "+_outfitname+" and climb in bed"|_passage]]>><<set $wear_outfit to _i>><<saveTempHairStyle>><</link>>
+			<</capture>>
 			<br>
 		<</if>>
 	<</for>>
@@ -211,7 +223,7 @@
 						<</if>>
 						/*Check for slime corruption*/
 						<<if _corruptionEquipSkip.includes(_equip[_i])>>
-							<<if $corruption_slime gte 80 and $willpower lt 800 and _selectedWardrobe[_equip[_i]][_j].reveal lt 500 and !_selectedWardrobe[_equip[_i]][_j].type.includesAny("school", "event")>>
+							<<if $corruption_slime gte 80 and currentSkillValue('willpower') lt 800 and _selectedWardrobe[_equip[_i]][_j].reveal lt 500 and !_selectedWardrobe[_equip[_i]][_j].type.includesAny("school", "event")>>
 								<<set _notEquipped[_equip[_i]] to {"name": $outfit[$wear_outfit][_equip[_i]], "reason": "corruption_slime_deny"}>>
 								<<break>>
 							<</if>>
@@ -353,7 +365,7 @@
 	<</if>>
 <</if>>
 
-<<if $wear_outfit isnot "none">>
+<<if $wear_outfit isnot "none" and _notEquipped>>
 	<<set _keys to Object.keys(_notEquipped)>>
 	<<if _keys.length gt 0>>
 		<<set _resultStrings to {}>>
@@ -482,9 +494,9 @@
 <div id="outfitEditorHelp" class="hidden">
 	All options change the settings the moment you change the option, however, they will only save or be updated in the passage only if you first change the passage (Leave the wardrobe or click on 'Update Wardrobe' at the bottom of this overlay).
 	<br><br>
-	Changing the clothing items may result in the colour settings being reset for that item. This is caused from going from an item with colour options to one that doesnt have any colour options. Just because you can change it to some item's doesn't mean you have access to every item.
+	Changing the clothing items may result in the colour settings being reset for that item. This is caused from going from an item with colour options to one that doesn't have any colour options. Just because you can change it to some item's doesn't mean you have access to every item.
 	<br><br>
-	Location is where the Outfit is unique to and will only show for that wardrobe. Please note, where it says 'No access', this is either based on the multiple wardrobe setting or may not be avaliable till a later version of the game. In most cases the 'Orphanage' wardrobe will be shared when Multiple wardrobes is set to 'isolated only' or is disabled.
+	Location is where the Outfit is unique to and will only show for that wardrobe. Please note, where it says 'No access', this is either based on the multiple wardrobe setting or may not be available till a later version of the game. In most cases the 'Orphanage' wardrobe will be shared when Multiple wardrobes is set to 'isolated only' or is disabled.
 	<br><br>
 </div>
 <<if _outfitEditorFilter is undefined>>
diff --git a/game/base-clothing/clothing-under-upper.twee b/game/base-clothing/clothing-under-upper.twee
index 18f5a3c40d848f3980402a2553ebfcb3ba574510..6068f01d19216e5cde83aba9685901e9aac911bc 100644
--- a/game/base-clothing/clothing-under-upper.twee
+++ b/game/base-clothing/clothing-under-upper.twee
@@ -933,7 +933,7 @@
 	cursed: 0,
 	location: 0,
 	iconFile: "swim_shirt.png",
- 	accIcon: 0
+	accIcon: 0
 },
 
 {index: 22,
@@ -975,7 +975,7 @@
 	cursed: 0,
 	location: 0,
 	iconFile: "vest.png",
- 	accIcon: 0
+	accIcon: 0
 },
 
 	{index: 23,
@@ -1085,7 +1085,7 @@
 	colour_sidebar: 1,
 	exposed: 1,
 	exposed_base: 1,
-	type: ["costume", "sticky"],
+	type: ["costume", "sticky", "naked"],
 	set: "under_upper",
 	gender: "f",
 	femininity: 300,
@@ -1228,7 +1228,7 @@
 	cursed: 0,
 	location: 0,
 	iconFile: "undershirt.png",
- 	accIcon: "undershirt_acc.png"
+	accIcon: "undershirt_acc.png"
 },
 
 	{index: 29,
diff --git a/game/base-clothing/clothing-under.twee b/game/base-clothing/clothing-under.twee
index 2eeb7b18c0d6a0bee31c2aa58fa3cf66b3616d88..bfda306799b72e94099760ab7555a7331ff087ec 100644
--- a/game/base-clothing/clothing-under.twee
+++ b/game/base-clothing/clothing-under.twee
@@ -1438,7 +1438,7 @@
 
 	{index: 33,
 	name:"strap-on",
-    name_cap:"Strap-on",
+	name_cap:"Strap-on",
 	variable: "straponlower",
 	integrity: 2000,
 	integrity_max: 2000,
diff --git a/game/base-clothing/clothing-upper.twee b/game/base-clothing/clothing-upper.twee
index 49ff48ddeb1b6e5e1e552ed889ade8eea40ac90d..9220a4dd1ea34b575befbdc31a30bd2e8233e8b3 100644
--- a/game/base-clothing/clothing-upper.twee
+++ b/game/base-clothing/clothing-upper.twee
@@ -248,14 +248,15 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	shop: ["clothing", "school", "adult"],
 	accessory: 1,
 	accessory_colour: 0,
-	accessory_colour_options: [],
-	accessory_colour_combat:"blue",
+	accessory_colour_options: ["black", "blue", "light blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	accessory_colour_combat: "light blue",
+	accessory_colour_sidebar: 1,
 	sleeve_img: 1,
 	breast_img: 1,
 	cursed: 0,
 	location: 0,
 	iconFile: "school_shirt.png",
-	accIcon: "school_shirt_acc.png",
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -2152,7 +2153,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "peacoat.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2198,7 +2199,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "gothic_gown.png",
- 	accIcon: 0,
+	accIcon: 0,
 	outfitPrimary:{lower:"gothic skirt"},
 	notuck: 0
 },
@@ -2242,7 +2243,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "gothic_jacket.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2286,7 +2287,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "swim_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -2329,7 +2330,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "waiters_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2372,7 +2373,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "lederhosen.png",
- 	accIcon: 0,
+	accIcon: 0,
 	outfitPrimary:{lower:"lederhosen bottoms"},
 	notuck: 0
 },
@@ -2416,7 +2417,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "karate_jacket.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2460,7 +2461,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "sailor_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -2504,7 +2505,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "short_sailor_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2548,7 +2549,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "padded_football_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -2592,7 +2593,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "gym_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -2636,7 +2637,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "cheerleading_top.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2680,7 +2681,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "hunting_coat.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2724,7 +2725,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "letterman_jacket.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2768,7 +2769,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "racing_silks.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -2811,7 +2812,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "shadbelly_coat.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2854,7 +2855,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "mummy_top.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -2899,7 +2900,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "diving_suit.png",
- 	accIcon: 0,
+	accIcon: 0,
 	outfitPrimary:{lower:"diving suit bottom"},
 	notuck: 0
 },
@@ -2987,7 +2988,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "classic_gothic_gown.png",
- 	accIcon: 0,
+	accIcon: 0,
 	outfitPrimary:{lower:"classic gothic skirt"},
 	notuck: 0
 },
@@ -3032,7 +3033,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "scout_shirt.png",
- 	accIcon: "scout_shirt_acc.png",
+	accIcon: "scout_shirt_acc.png",
 	notuck: 0
 },
 
@@ -3076,7 +3077,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "soccer_shirt.png",
- 	accIcon: "soccer_shirt_acc.png",
+	accIcon: "soccer_shirt_acc.png",
 	notuck: 0
 },
 
@@ -3119,7 +3120,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "puffer_jacket.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 1
 },
 
@@ -3162,7 +3163,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "camo_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -3205,7 +3206,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "star_pyjama_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -3248,7 +3249,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "moon_pyjama_shirt.png",
- 	accIcon: 0,
+	accIcon: 0,
 	notuck: 0
 },
 
@@ -3290,7 +3291,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "full_body_leotard.png",
- 	accIcon: 0,
+	accIcon: 0,
 	outfitPrimary:{lower:"catsuit bottoms"}
 },
 
@@ -3421,7 +3422,7 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	cursed: 0,
 	location: 0,
 	iconFile: "bathrobe.png",
- 	accIcon: 0,
+	accIcon: 0,
 	outfitPrimary:{lower:"bathrobe bottom"},
 	notuck: 0
 },
@@ -4074,6 +4075,94 @@ plural - widget will output "are" if 1, and "is" if 0. eg - Your hat <<upperplur
 	accIcon: "split_dress_acc.png",
 	outfitPrimary:{lower:"split dress skirt"},
 	notuck: 0
+},
+
+	{index: 94,
+	name: "skimpy lolita dress",
+	name_cap: "Skimpy lolita dress",
+	variable: "skimpylolita",
+	integrity: 70,
+	integrity_max: 70,
+	fabric_strength: 30,
+	reveal: 600,
+	bustresize: 0,
+	word: "a",
+	one_piece: 1,
+	strap: 0,
+	open: 0,
+	state: "waist",
+	state_base: "waist",
+	state_top: "chest",
+	state_top_base: "chest",
+	plural: 0,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	colour_sidebar: 1,
+	exposed: 0,
+	exposed_base: 0,
+	type: ["normal"],
+	set: "skimpylolita",
+	gender: "f",
+	femininity: 200,
+	warmth: 20,
+	cost: 9500,
+	description: "A blend of fashions.",
+	shop: ["clothing"],
+	accessory: 1,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	sleeve_img: 0,
+	breast_img: 0,
+	cursed: 0,
+	location: 0,
+	iconFile: "skimpy_lolita_dress.png",
+	accIcon: "skimpy_lolita_dress_acc.png",
+	outfitPrimary:{lower:"skimpy lolita skirt"},
+	notuck: 0
+},
+
+	{index: 95,
+	name: "short ballgown",
+	name_cap: "Short ballgown",
+	variable: "shortballgown",
+	integrity: 70,
+	integrity_max: 70,
+	fabric_strength: 20,
+	reveal: 800,
+	bustresize: 0,
+	word: "a",
+	one_piece: 1,
+	strap: 0,
+	open: 1,
+	state: "waist",
+	state_base: "waist",
+	state_top: "chest",
+	state_top_base: "chest",
+	plural: 0,
+	colour: 0,
+	colour_options: ["black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow", "custom"],
+	colour_sidebar: 1,
+	exposed: 0,
+	exposed_base: 0,
+	type: ["formal"],
+	set: "ballgown",
+	gender: "f",
+	femininity: 200,
+	warmth: 40,
+	cost: 48000,
+	description: "Scandalously short.",
+	shop: ["clothing"],
+	accessory: 0,
+	accessory_colour: 0,
+	accessory_colour_options: [],
+	sleeve_img: 0,
+	breast_img: 0,
+	cursed: 0,
+	location: 0,
+	iconFile: "short_ballgown.png",
+	accIcon: 0,
+	outfitPrimary:{lower:"short ballgown skirt"},
+	notuck: 0
 }
 
 ]>>
diff --git a/game/base-clothing/images.twee b/game/base-clothing/images.twee
index 2a9b37a0cf486deab13c725bcd4fb2809abd0466..7ee703532c8f7d59eae5070c0ffb8b6164f93094 100644
--- a/game/base-clothing/images.twee
+++ b/game/base-clothing/images.twee
@@ -255,24 +255,36 @@
 	<<if $bodywritingImages is true>>
 		<<if $skin.forehead.writing>>
 			<<if $skin.forehead.type is "text">>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/forehead.png">
+				<<if $skin.forehead.sprites and $skin.forehead.sprites.length > 0 and $skin.forehead.sprites.includes('forehead')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.forehead.key + '/forehead.png'">
+				<<else>>
+					<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/forehead.png">
+				<</if>>
 			<<elseif $skin.forehead.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.forehead.writing + '/forehead.png'">
 			<</if>>
 		<</if>>
 		<<if $skin.left_cheek.writing>>
 			<<if $skin.left_cheek.type is "text">>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/left_cheek.png">
+				<<if $skin.left_cheek.sprites and $skin.left_cheek.sprites.length > 0 and $skin.left_cheek.sprites.includes('left_cheek')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.left_cheek.key + '/left_cheek.png'">
+				<<else>>
+					<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_cheek.png">
+				<</if>>
 			<<elseif $skin.left_cheek.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.left_cheek.writing + '/left_cheek.png'">
 			<</if>>
 		<</if>>
 		<<if $skin.right_cheek.writing>>
 			<<if $skin.right_cheek.type is "text">>
-				<<if $skin.right_cheek.arrow is 1>>
-					<img class="layer-skin anim-idle-2f" src="img/bodywriting/right_cheek_arrow.png">
+				<<if $skin.right_cheek.sprites and $skin.right_cheek.sprites.length > 0 and $skin.right_cheek.sprites.includes('right_cheek')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.right_cheek.key + '/right_cheek.png'">
 				<<else>>
-					<img class="layer-skin anim-idle-2f" src="img/bodywriting/right_cheek.png">
+					<<if $skin.right_cheek.arrow is 1>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_cheek_arrow.png">
+					<<else>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_cheek.png">
+					<</if>>
 				<</if>>
 			<<elseif $skin.right_cheek.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.right_cheek.writing + '/right_cheek.png'">
@@ -280,17 +292,25 @@
 		<</if>>
 		<<if $skin.breasts.writing>>
 			<<if $skin.breasts.type is "text">>
-				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/breasts1.png'">
-				<<if _breastSize gte 2>>
-					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/breasts'+_breastSize+'.png'">
-				<</if>>
+				<<if $skin.breasts.sprites and $skin.breasts.sprites.length > 0 and $skin.breasts.sprites.includes('breasts')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.breasts.key + '/breasts.png'">
+				<<else>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/default/breasts1.png'">
+					<<if _breastSize gte 2>>
+						<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/default/breasts'+_breastSize+'.png'">
+					<</if>>
+				<</if>>				
 			<<elseif $skin.breasts.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.breasts.writing + '/breasts'+_breastSize+'.png'">
 			<</if>>
 		<</if>>
 		<<if $skin.left_shoulder.writing>>
 			<<if $skin.left_shoulder.type is "text">>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/left_shoulder.png">
+				<<if $skin.left_shoulder.sprites and $skin.left_shoulder.sprites.length > 0 and $skin.left_shoulder.sprites.includes('left_shoulder')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.left_shoulder.key + '/left_shoulder.png'">
+				<<else>>
+					<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_shoulder.png">
+				<</if>>
 			<<elseif $skin.left_shoulder.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.left_shoulder.writing + '/left_shoulder.png'">
 			<</if>>
@@ -302,7 +322,11 @@
 				<<set _skin to "s">>
 			<</if>>
 			<<if $skin.right_shoulder.type is "text">>
-				<img @class="'layer-' + _skin + 'kin anim-idle-2f'" src="img/bodywriting/right_shoulder.png">
+				<<if $skin.right_shoulder.sprites and $skin.right_shoulder.sprites.length > 0 and $skin.right_shoulder.sprites.includes('right_shoulder')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.right_shoulder.key + '/right_shoulder.png'">
+				<<else>>
+					<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_shoulder.png">
+				<</if>>
 			<<elseif $skin.right_shoulder.type is "object">>
 				<img @class="'layer-' + _skin + 'kin anim-idle-2f'" @src="'img/bodywriting/' + $skin.right_shoulder.writing + '/right_shoulder.png'">
 			<</if>>
@@ -310,26 +334,44 @@
 		<<if $skin.pubic.writing>>
 			<<if $skin.pubic.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.pubic.writing + '/pubic.png'">
-			<<elseif $skin.pubic.arrow is 1>>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/pubic_arrow.png">
 			<<elseif $skin.pubic.type is "text">>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/pubic.png">
+				<<if $skin.pubic.sprites and $skin.pubic.sprites.length > 0 and $skin.pubic.sprites.includes('pubic')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.pubic.key + '/pubic.png'">
+				<<else>>
+					<<if $skin.pubic.arrow is 1>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/pubic_arrow.png">
+					<<else>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/pubic.png">
+					<</if>>
+				<</if>>
 			<</if>>
 		<</if>>
 		<<if $skin.left_thigh.writing>>
-			<<if $skin.left_thigh.arrow is 1>>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/left_thigh_arrow.png">
-			<<elseif $skin.left_thigh.type is "text">>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/left_thigh.png">
+			<<if $skin.left_thigh.type is "text">>
+				<<if $skin.left_thigh.sprites and $skin.left_thigh.sprites.length > 0 and $skin.left_thigh.sprites.includes('left_thigh')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.left_thigh.key + '/left_thigh.png'">
+				<<else>>
+					<<if $skin.left_thigh.arrow is 1>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_thigh_arrow.png">
+					<<else>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/left_thigh.png">
+					<</if>>
+				<</if>>
 			<<elseif $skin.left_thigh.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.left_thigh.writing + '/left_thigh.png'">
 			<</if>>
 		<</if>>
 		<<if $skin.right_thigh.writing>>
-			<<if $skin.right_thigh.arrow is 1>>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/right_thigh_arrow.png">
-			<<elseif $skin.right_thigh.type is "text">>
-				<img class="layer-skin anim-idle-2f" src="img/bodywriting/right_thigh.png">
+			<<if $skin.right_thigh.type is "text">>
+				<<if $skin.right_thigh.sprites and $skin.right_thigh.sprites.length > 0 and $skin.right_thigh.sprites.includes('right_thigh')>>
+					<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/text/' + $skin.right_thigh.key + '/right_thigh.png'">
+				<<else>>
+					<<if $skin.right_thigh.arrow is 1>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_thigh_arrow.png">
+					<<else>>
+						<img class="layer-skin anim-idle-2f" src="img/bodywriting/text/default/right_thigh.png">
+					<</if>>
+				<</if>>
 			<<elseif $skin.right_thigh.type is "object">>
 				<img class="layer-skin anim-idle-2f" @src="'img/bodywriting/' + $skin.right_thigh.writing + '/right_thigh.png'">
 			<</if>>
@@ -598,7 +640,7 @@
 	<<run window.defineCustomEyeColourStyle()>> /* define Filter: css style for eyes for old renderer */
 
 	<<if $possessed>>
-		<<set _colourEye to ($wraith.state is "haunt" and !$schism ? "eye-redPossessed" : "eye-bluePossessed")>>		
+		<<set _colourEye to ($wraith.state is "haunt" and !$schism ? "eye-redPossessed" : "eye-bluePossessed")>>
 	<<else>>
 		<<set _colourEye to "">>
 		<<if $passage == "Start">>
@@ -1737,9 +1779,7 @@
 	<img class="layer-sexupper anim-idle-2f" src="img/sex/missionary/active/head/minisnowman/active.png">
 <</if>>
 
-<<if !$worn.upper.type.includes("naked") and $worn.upper.name isnot "gym shirt"
-										 and $worn.upper.name isnot "tube top"
-										 and $worn.upper.name isnot "towel top">>
+<<if !$worn.upper.type.includes("naked") and !["gym shirt","tube top","towel top"].includes($worn.upper.name)>>
 	<<if $worn.upper.name is "turtleneck" and $worn.upper.state is "chest">>
 
 	<<elseif $player.perceived_breastsize is 0>>
@@ -1869,8 +1909,7 @@
 		<<set _tubeimg = $worn.upper.state_top>>
 		<<set _anim = " anim-idle-2f">>
 	<</if>>
-	<<if ($anususe is "penis" or _leg_position is "up") and
-		 (_tubeimg is "ankles" or _tubeimg is "knees" or _tubeimg is "thighs")>>
+	<<if ($anususe is "penis" or _leg_position is "up") and ["ankles","knees","thighs"].includes(_tubeimg)>>
 		<<set _tubeimg += "up">>
 	<</if>>
 	<img @class="'layer-sexupper colour-upper'+_anim" @src="'img/sex/missionary/active/tubetop/'+_tubeimg+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')">
@@ -2237,11 +2276,9 @@
 
 <<if $worn.head.name is "mini snowman">>
 	<img class="layer-sexupper anim-idle-2f" src="img/sex/missionary/active/head/minisnowman/active.png">
-<</if>> 
+<</if>>
 
-<<if !$worn.upper.type.includes("naked") and $worn.upper.name isnot "gym shirt"
-										 and $worn.upper.name isnot "tube top"
-										 and $worn.upper.name isnot "towel top">>
+<<if !$worn.upper.type.includes("naked") and !["gym shirt","tube top","towel top"].includes($worn.upper.name)>>
 	<<if $worn.upper.name is "turtleneck" and $worn.upper.state is "chest">>
 	<<elseif $player.perceived_breastsize is 0>>
 	<img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" src="img/sex/missionary/active/breastcover/none.png" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')">
@@ -2345,8 +2382,7 @@
 	<<else>>
 		<<set _tubeimg = $worn.upper.state_top>>
 	<</if>>
-	<<if ($anususe is "penis" or _leg_position is "up") and
-		 (_tubeimg is "ankles" or _tubeimg is "knees" or _tubeimg is "thighs")>>
+	<<if ($anususe is "penis" or _leg_position is "up") and ["ankles","knees","thighs"].includes(_tubeimg)>>
 		<<set _tubeimg += "up">>
 	<</if>>
 	<img @class="'layer-sexupper colour-upper anim-doggy-4f-'+_animspeed" @src="'img/sex/missionary/active/tubetop/'+_tubeimg+'.png'" @style="($worn.upper.colour is 'custom' ? $worn.upper.colourCustom + _upperOpacity : '')">
@@ -3407,7 +3443,7 @@
 				<</if>>
 			</div>
 		<</if>>
-		
+
 		<<faceimg 1>>
 		<</if>> /* $sidebarRenderer is img */
 	</div>
diff --git a/game/base-clothing/init.twee b/game/base-clothing/init.twee
index 031542edc224d1164165214392f8632eb390aaf8..e97313a4bab5cce4803294b92a37d5263f2105cc 100644
--- a/game/base-clothing/init.twee
+++ b/game/base-clothing/init.twee
@@ -75,7 +75,7 @@
 <<set $wardrobe.hands to []>>
 <<set $wardrobe.legs to []>>
 <<set $wardrobe.feet to []>>
-<<set $wardrobe.space to 40>>
+<<set $wardrobe.space to 20>>
 
 <<set $outfit to [{
 	index: 0,
@@ -354,326 +354,328 @@
 
 <<set _npcClothesItems to {
 	"upper": {
-		"shirt":                   {name:"shirt",                   integrity_max:100, word:"a", action:"lift"},
-		"naked":                   {name:"naked",                   integrity_max:100, word:"n", action:"none"},
-		"school shirt":            {name:"school shirt",            integrity_max:100, word:"a", action:"unbutton"},
-		"school blouse":           {name:"school blouse",           integrity_max:100, word:"a", action:"unbutton"},
-		"dress shirt":             {name:"dress shirt",             integrity_max:100, word:"a", action:"unbutton"},
-		"school blazer":           {name:"school blazer",           integrity_max:100, word:"a", action:"pull"},
-		"teacher's uniform":       {name:"teacher's uniform",       integrity_max:100, word:"a", action:"unbutton"},
-		"swim shirt":              {name:"swim shirt",              integrity_max:100, word:"a", action:"lift"},
-		"school swimsuit top":     {name:"school swimsuit top",     integrity_max:100, word:"a", action:"pull"},
-		"bikini top":              {name:"bikini top",              integrity_max:100, word:"a", action:"pull"},
-		"microkini top":           {name:"microkini top",           integrity_max:100, word:"a", action:"pull"},
-		"diving suit":             {name:"diving suit",             integrity_max:100, word:"a", action:"unzip"},
-		"sailor shirt":            {name:"sailor shirt",            integrity_max:100, word:"a", action:"unbutton"},
-		"hi-vis jacket":           {name:"hi-vis jacket",           integrity_max:100, word:"a", action:"unzip"},
-		"denim shirt":             {name:"denim shirt",             integrity_max:100, word:"a", action:"unbutton"},
-		"hoodie":                  {name:"hoodie",                  integrity_max:100, word:"a", action:"lift"},
-		"vest":                    {name:"vest",                    integrity_max:100, word:"a", action:"lift"},
-		"police shirt":            {name:"police shirt",            integrity_max:100, word:"a", action:"unbutton"},
-		"uniform shirt":           {name:"uniform shirt",           integrity_max:100, word:"a", action:"unbutton"},
-		"monk robe top":           {name:"monk robe top",           integrity_max:100, word:"a", action:"open"},
-		"nun robe top":            {name:"nun robe top",            integrity_max:100, word:"a", action:"open"},
-		"robe top":                {name:"robe top",                integrity_max:100, word:"a", action:"open"},
-		"black robe top":          {name:"black robe top",          integrity_max:100, word:"a", action:"open"},
-		"jumpsuit shirt":          {name:"jumpsuit shirt",          integrity_max:100, word:"a", action:"unzip"},
-		"tuxedo shirt":            {name:"tuxedo shirt",            integrity_max:100, word:"a", action:"unbutton"},
-		"evening gown top":        {name:"evening gown top",        integrity_max:100, word:"a", action:"pull"},
-		"ballgown top":            {name:"ballgown top",            integrity_max:100, word:"a", action:"pull"},
-		"gothic jacket and vest":  {name:"gothic jacket and vest",  integrity_max:100, word:"a", action:"unbutton"},
-		"gothic gown top":         {name:"gothic gown top",         integrity_max:100, word:"a", action:"pull"},
-		"business suit top":       {name:"business suit top",       integrity_max:100, word:"a", action:"unbutton"},
-		"t-shirt":                 {name:"t-shirt",                 integrity_max:100, word:"a", action:"lift"},
-		"sundress top":            {name:"sundress top",            integrity_max:100, word:"a", action:"pull"},
-		"tracksuit top":           {name:"tracksuit top",           integrity_max:100, word:"a", action:"unzip"},
-		"peacoat":                 {name:"peacoat",                 integrity_max:100, word:"a", action:"unbutton"},
-		"turtleneck":              {name:"turtleneck",              integrity_max:100, word:"a", action:"lift"},
-		"collared shirt":          {name:"collared shirt",          integrity_max:100, word:"a", action:"unbutton"},
-		"blazer":                  {name:"blazer",                  integrity_max:100, word:"a", action:"lift"},
-		"sports jersey":           {name:"sports jersey",           integrity_max:100, word:"a", action:"lift"},
-		"sweater vest":            {name:"sweater vest",            integrity_max:100, word:"a", action:"lift"},
-		"v neck":                  {name:"v neck",                  integrity_max:100, word:"a", action:"lift"},
-		"tank top":                {name:"tank top",                integrity_max:100, word:"a", action:"pull"},
-		"blouse":                  {name:"blouse",                  integrity_max:100, word:"a", action:"lift"},
-		"crop top":                {name:"crop top",                integrity_max:100, word:"a", action:"pull"},
-		"tank top":                {name:"tank top",                integrity_max:100, word:"a", action:"pull"},
-		"bra":                     {name:"bra",                     integrity_max:100, word:"a", action:"undo"},
-		"puffer jacket":           {name:"puffer jacket",           integrity_max:100, word:"a", action:"unzip"},
-		"trenchcoat":              {name:"trenchcoat",              integrity_max:100, word:"a", action:"open"},
-		"coat":                    {name:"coat",                    integrity_max:100, word:"a", action:"open"},
-		"hoodie":                  {name:"hoodie",                  integrity_max:100, word:"a", action:"lift"},
-		"sweater":                 {name:"sweater",                 integrity_max:100, word:"a", action:"lift"},
-		"rain coat":               {name:"rain coat",               integrity_max:100, word:"a", action:"unzip"},
-		"flannel":                 {name:"flannel",                 integrity_max:100, word:"a", action:"unbutton"},
-		"woolen jumper":           {name:"woolen jumper",           integrity_max:100, word:"a", action:"lift"},
-		"fleece jumper":           {name:"fleece jumper",           integrity_max:100, word:"a", action:"lift"},
-		"jacket":                  {name:"jacket",                  integrity_max:100, word:"a", action:"unzip"},
-		"camo jacket":             {name:"camo jacket",             integrity_max:100, word:"a", action:"unzip"},
-		"trench coat":             {name:"trench coat",             integrity_max:100, word:"a", action:"open"},
-		"leather vest":            {name:"leather vest",            integrity_max:100, word:"a", action:"open"},
-		"leather harness":         {name:"leather harness",         integrity_max:100, word:"a", action:"open"},
-		"bathrobe":                {name:"bathrobe",                integrity_max:100, word:"a", action:"open"},
-		"lab coat":                {name:"lab coat",                integrity_max:100, word:"a", action:"unbutton"},
-		"security vest":           {name:"security vest",           integrity_max:100, word:"a", action:"unbutton"},
-		"doctor's coat":           {name:"doctor's coat",           integrity_max:100, word:"a", action:"unbutton"},
-		"nurse's coat":            {name:"nurse's coat",            integrity_max:100, word:"a", action:"unbutton"},
-		"patient gown":            {name:"patient gown",            integrity_max:100, word:"a", action:"pull"},
-		"jumpsuit top":            {name:"jumpsuit top",            integrity_max:100, word:"a", action:"unzip"},
-		"coverall top":            {name:"coverall top",            integrity_max:100, word:"a", action:"unzip"},
-		"dance shirt":             {name:"dance shirt",             integrity_max:100, word:"a", action:"pull"},
-		"shirtless suit":          {name:"shirtless suit",          integrity_max:100, word:"a", action:"open"},
-		"low-neck dress":          {name:"low-neck dress",          integrity_max:100, word:"a", action:"pull"},
-		"riding top":              {name:"riding top",              integrity_max:100, word:"a", action:"unbutton"},
-		"shadbelly coat":          {name:"shadbelly coat",          integrity_max:100, word:"a", action:"unbutton"},
-		"ramshackle hunting coat": {name:"ramshackle hunting coat", integrity_max:100, word:"a", action:"unbutton"},
-		"ruined suit":             {name:"ruined suit",             integrity_max:100, word:"a", action:"open"},
-		"grey sweater":            {name:"grey sweater",            integrity_max:100, word:"a", action:"lift"},
-		"grey cardigan":           {name:"grey cardigan",           integrity_max:100, word:"a", action:"open"},
-		"leather jacket":          {name:"leather jacket",          integrity_max:100, word:"a", action:"open"},
-		"jacaranda vest":          {name:"jacaranda vest",          integrity_max:100, word:"a", action:"pull"},
-		"blossoming growths":      {name:"blossoming growths",      integrity_max:100, word:"n", action:"pull"},
-		"leaf shirt":              {name:"leaf shirt",              integrity_max:100, word:"a", action:"pull"},
-		"leaf corset":             {name:"leaf corset",             integrity_max:100, word:"a", action:"pull"},
-		"pine top":                {name:"pine top",                integrity_max:100, word:"a", action:"pull"},
-		"plant top":               {name:"plant top",               integrity_max:100, word:"a", action:"pull"},
-		"sundress":                {name:"sundress",                integrity_max:100, word:"a", action:"lift"},
-		"tuxedo":                  {name:"tuxedo",                  integrity_max:100, word:"a", action:"unbutton"},
-		"gothic gown":             {name:"gothic gown",             integrity_max:100, word:"a", action:"pull"},
-		"kimono":                  {name:"kimono",                  integrity_max:100, word:"a", action:"pull"},
-		"christmas top":           {name:"christmas top",           integrity_max:100, word:"a", action:"pull"},
-		"ribbons":                 {name:"ribbons",                 integrity_max:100, word:"n", action:"unwrap"},
-		"pyjama shirt":            {name:"pyjama shirt",            integrity_max:100, word:"a", action:"lift"},
-		"ghost sheet":             {name:"ghost sheet",             integrity_max:100, word:"a", action:"lift"},
-		"vampire jacket":          {name:"vampire jacket",          integrity_max:100, word:"a", action:"open"},
-		"witch dress":             {name:"witch dress",             integrity_max:100, word:"a", action:"pull"},
-		"flowing robe":            {name:"flowing robe",            integrity_max:100, word:"a", action:"lift"}
+		"shirt":					{name:"shirt",						integrity_max:100, word:"a", action:"lift"},
+		"naked":					{name:"naked",						integrity_max:100, word:"n", action:"none"},
+		"school shirt":				{name:"school shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"school blouse":			{name:"school blouse",				integrity_max:100, word:"a", action:"unbutton"},
+		"dress shirt":				{name:"dress shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"school blazer":			{name:"school blazer",				integrity_max:100, word:"a", action:"pull"},
+		"teacher's uniform":		{name:"teacher's uniform",			integrity_max:100, word:"a", action:"unbutton"},
+		"swim shirt":				{name:"swim shirt",					integrity_max:100, word:"a", action:"lift"},
+		"school swimsuit top":		{name:"school swimsuit top",		integrity_max:100, word:"a", action:"pull"},
+		"bikini top":				{name:"bikini top",					integrity_max:100, word:"a", action:"pull"},
+		"microkini top":			{name:"microkini top",				integrity_max:100, word:"a", action:"pull"},
+		"diving suit":				{name:"diving suit",				integrity_max:100, word:"a", action:"unzip"},
+		"sailor shirt":				{name:"sailor shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"hi-vis jacket":			{name:"hi-vis jacket",				integrity_max:100, word:"a", action:"unzip"},
+		"denim shirt":				{name:"denim shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"hoodie":					{name:"hoodie",						integrity_max:100, word:"a", action:"lift"},
+		"vest":						{name:"vest",						integrity_max:100, word:"a", action:"lift"},
+		"police shirt":				{name:"police shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"uniform shirt":			{name:"uniform shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"monk robe top":			{name:"monk robe top",				integrity_max:100, word:"a", action:"open"},
+		"nun robe top":				{name:"nun robe top",				integrity_max:100, word:"a", action:"open"},
+		"robe top":					{name:"robe top",					integrity_max:100, word:"a", action:"open"},
+		"black robe top":			{name:"black robe top",				integrity_max:100, word:"a", action:"open"},
+		"jumpsuit shirt":			{name:"jumpsuit shirt",				integrity_max:100, word:"a", action:"unzip"},
+		"tuxedo shirt":				{name:"tuxedo shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"evening gown top":			{name:"evening gown top",			integrity_max:100, word:"a", action:"pull"},
+		"ballgown top":				{name:"ballgown top",				integrity_max:100, word:"a", action:"pull"},
+		"gothic jacket and vest":	{name:"gothic jacket and vest",		integrity_max:100, word:"a", action:"unbutton"},
+		"gothic gown top":			{name:"gothic gown top",			integrity_max:100, word:"a", action:"pull"},
+		"business suit top":		{name:"business suit top",			integrity_max:100, word:"a", action:"unbutton"},
+		"t-shirt":					{name:"t-shirt",					integrity_max:100, word:"a", action:"lift"},
+		"sundress top":				{name:"sundress top",				integrity_max:100, word:"a", action:"pull"},
+		"tracksuit top":			{name:"tracksuit top",				integrity_max:100, word:"a", action:"unzip"},
+		"peacoat":					{name:"peacoat",					integrity_max:100, word:"a", action:"unbutton"},
+		"turtleneck":				{name:"turtleneck",					integrity_max:100, word:"a", action:"lift"},
+		"collared shirt":			{name:"collared shirt",				integrity_max:100, word:"a", action:"unbutton"},
+		"blazer":					{name:"blazer",						integrity_max:100, word:"a", action:"lift"},
+		"sports jersey":			{name:"sports jersey",				integrity_max:100, word:"a", action:"lift"},
+		"sweater vest":				{name:"sweater vest",				integrity_max:100, word:"a", action:"lift"},
+		"v neck":					{name:"v neck",						integrity_max:100, word:"a", action:"lift"},
+		"tank top":					{name:"tank top",					integrity_max:100, word:"a", action:"pull"},
+		"blouse":					{name:"blouse",						integrity_max:100, word:"a", action:"lift"},
+		"crop top":					{name:"crop top",					integrity_max:100, word:"a", action:"pull"},
+		"tank top":					{name:"tank top",					integrity_max:100, word:"a", action:"pull"},
+		"bra":						{name:"bra",						integrity_max:100, word:"a", action:"undo"},
+		"puffer jacket":			{name:"puffer jacket",				integrity_max:100, word:"a", action:"unzip"},
+		"trenchcoat":				{name:"trenchcoat",					integrity_max:100, word:"a", action:"open"},
+		"coat":						{name:"coat",						integrity_max:100, word:"a", action:"open"},
+		"hoodie":					{name:"hoodie",						integrity_max:100, word:"a", action:"lift"},
+		"sweater":					{name:"sweater",					integrity_max:100, word:"a", action:"lift"},
+		"rain coat":				{name:"rain coat",					integrity_max:100, word:"a", action:"unzip"},
+		"flannel":					{name:"flannel",					integrity_max:100, word:"a", action:"unbutton"},
+		"woolen jumper":			{name:"woolen jumper",				integrity_max:100, word:"a", action:"lift"},
+		"fleece jumper":			{name:"fleece jumper",				integrity_max:100, word:"a", action:"lift"},
+		"jacket":					{name:"jacket",						integrity_max:100, word:"a", action:"unzip"},
+		"camo jacket":				{name:"camo jacket",				integrity_max:100, word:"a", action:"unzip"},
+		"trench coat":				{name:"trench coat",				integrity_max:100, word:"a", action:"open"},
+		"leather vest":				{name:"leather vest",				integrity_max:100, word:"a", action:"open"},
+		"leather harness":			{name:"leather harness",			integrity_max:100, word:"a", action:"open"},
+		"bathrobe":					{name:"bathrobe",					integrity_max:100, word:"a", action:"open"},
+		"lab coat":					{name:"lab coat",					integrity_max:100, word:"a", action:"unbutton"},
+		"security vest":			{name:"security vest",				integrity_max:100, word:"a", action:"unbutton"},
+		"doctor's coat":			{name:"doctor's coat",				integrity_max:100, word:"a", action:"unbutton"},
+		"nurse's coat":				{name:"nurse's coat",				integrity_max:100, word:"a", action:"unbutton"},
+		"patient gown":				{name:"patient gown",				integrity_max:100, word:"a", action:"pull"},
+		"jumpsuit top":				{name:"jumpsuit top",				integrity_max:100, word:"a", action:"unzip"},
+		"coverall top":				{name:"coverall top",				integrity_max:100, word:"a", action:"unzip"},
+		"dance shirt":				{name:"dance shirt",				integrity_max:100, word:"a", action:"pull"},
+		"shirtless suit":			{name:"shirtless suit",				integrity_max:100, word:"a", action:"open"},
+		"low-neck dress":			{name:"low-neck dress",				integrity_max:100, word:"a", action:"pull"},
+		"riding top":				{name:"riding top",					integrity_max:100, word:"a", action:"unbutton"},
+		"shadbelly coat":			{name:"shadbelly coat",				integrity_max:100, word:"a", action:"unbutton"},
+		"ramshackle hunting coat":	{name:"ramshackle hunting coat",	integrity_max:100, word:"a", action:"unbutton"},
+		"ruined suit":				{name:"ruined suit",				integrity_max:100, word:"a", action:"open"},
+		"grey sweater":				{name:"grey sweater",				integrity_max:100, word:"a", action:"lift"},
+		"grey cardigan":			{name:"grey cardigan",				integrity_max:100, word:"a", action:"open"},
+		"leather jacket":			{name:"leather jacket",				integrity_max:100, word:"a", action:"open"},
+		"jacaranda vest":			{name:"jacaranda vest",				integrity_max:100, word:"a", action:"pull"},
+		"blossoming growths":		{name:"blossoming growths",			integrity_max:100, word:"n", action:"pull"},
+		"leaf shirt":				{name:"leaf shirt",					integrity_max:100, word:"a", action:"pull"},
+		"leaf corset":				{name:"leaf corset",				integrity_max:100, word:"a", action:"pull"},
+		"pine top":					{name:"pine top",					integrity_max:100, word:"a", action:"pull"},
+		"plant top":				{name:"plant top",					integrity_max:100, word:"a", action:"pull"},
+		"sundress":					{name:"sundress",					integrity_max:100, word:"a", action:"lift"},
+		"tuxedo":					{name:"tuxedo",						integrity_max:100, word:"a", action:"unbutton"},
+		"gothic gown":				{name:"gothic gown",				integrity_max:100, word:"a", action:"pull"},
+		"kimono":					{name:"kimono",						integrity_max:100, word:"a", action:"pull"},
+		"christmas top":			{name:"christmas top",				integrity_max:100, word:"a", action:"pull"},
+		"ribbons":					{name:"ribbons",					integrity_max:100, word:"n", action:"unwrap"},
+		"pyjama shirt":				{name:"pyjama shirt",				integrity_max:100, word:"a", action:"lift"},
+		"ghost sheet":				{name:"ghost sheet",				integrity_max:100, word:"a", action:"lift"},
+		"vampire jacket":			{name:"vampire jacket",				integrity_max:100, word:"a", action:"open"},
+		"witch dress":				{name:"witch dress",				integrity_max:100, word:"a", action:"pull"},
+		"flowing robe":				{name:"flowing robe",				integrity_max:100, word:"a", action:"lift"}
 	},
 	"lower": {
-		"naked":                   {name:"naked",                   integrity_max:100, word:"n", action:"none"},
-		"trousers":                {name:"trousers",                integrity_max:100, word:"n", action:"pull"},
-		"skirt":                   {name:"skirt",                   integrity_max:100, word:"a", action:"lift"},
-		"school shorts":           {name:"school shorts",           integrity_max:100, word:"n", action:"pull"},
-		"school skirt":            {name:"school skirt",            integrity_max:100, word:"a", action:"lift"},
-		"short school skirt":      {name:"short school skirt",      integrity_max:100, word:"a", action:"lift"},
-		"school trousers":         {name:"school trousers",         integrity_max:100, word:"n", action:"pull"},
-		"long school skirt":       {name:"long school skirt",       integrity_max:100, word:"a", action:"lift"},
-		"teacher's slacks":        {name:"teacher's slacks",        integrity_max:100, word:"n", action:"unzip"},
-		"school swim shorts":      {name:"school swim shorts",      integrity_max:100, word:"n", action:"pull"},
-		"school swimsuit bottoms": {name:"school swimsuit bottoms", integrity_max:100, word:"n", action:"aside"},
-		"swim shorts":             {name:"swim shorts",             integrity_max:100, word:"n", action:"pull"},
-		"board shorts":            {name:"board shorts",            integrity_max:100, word:"n", action:"pull"},
-		"bikini bottoms":          {name:"bikini bottoms",          integrity_max:100, word:"n", action:"pull"},
-		"microkini bottoms":       {name:"microkini bottoms",       integrity_max:100, word:"n", action:"pull"},
-		"diving suit bottoms":     {name:"diving suit bottoms",     integrity_max:100, word:"n", action:"unzip"},
-		"sailor trousers":         {name:"sailor trousers",         integrity_max:100, word:"n", action:"unzip"},
-		"cargo trousers":          {name:"cargo trousers",          integrity_max:100, word:"n", action:"pull"},
-		"police trousers":         {name:"police trousers",         integrity_max:100, word:"n", action:"unzip"},
-		"police skirt":            {name:"police skirt",            integrity_max:100, word:"a", action:"lift"},
-		"uniform trousers":        {name:"uniform trousers",        integrity_max:100, word:"n", action:"unzip"},
-		"monk robes":              {name:"monk robes",              integrity_max:100, word:"n", action:"aside"},
-		"nun robe skirt":          {name:"nun robe skirt",          integrity_max:100, word:"a", action:"lift"},
-		"robes":                   {name:"robes",                   integrity_max:100, word:"n", action:"aside"},
-		"black robes":             {name:"black robes",             integrity_max:100, word:"n", action:"aside"},
-		"jumpsuit bottoms":        {name:"jumpsuit bottoms",        integrity_max:100, word:"n", action:"unzip"},
-		"tuxedo trousers":         {name:"tuxedo trousers",         integrity_max:100, word:"n", action:"unzip"},
-		"evening gown":            {name:"evening gown",            integrity_max:100, word:"a", action:"lift"},
-		"ballgown skirt":          {name:"ballgown skirt",          integrity_max:100, word:"a", action:"lift"},
-		"breeches":                {name:"breeches",                integrity_max:100, word:"a", action:"pull"},
-		"gothic trousers":         {name:"gothic trousers",         integrity_max:100, word:"n", action:"unzip"},
-		"gothic gown":             {name:"gothic gown",             integrity_max:100, word:"a", action:"lift"},
-		"business trousers":       {name:"business trousers",       integrity_max:100, word:"n", action:"unzip"},
-		"sundress skirt":          {name:"sundress skirt",          integrity_max:100, word:"a", action:"lift"},
-		"tracksuit bottoms":       {name:"tracksuit bottoms",       integrity_max:100, word:"n", action:"pull"},
-		"slacks":                  {name:"slacks",                  integrity_max:100, word:"n", action:"unzip"},
-		"jeans":                   {name:"jeans",                   integrity_max:100, word:"n", action:"unbutton"},
-		"khakis":                  {name:"khakis",                  integrity_max:100, word:"n", action:"unzip"},
-		"jeans":                   {name:"jeans",                   integrity_max:100, word:"n", action:"unzip"},
-		"shorts":                  {name:"shorts",                  integrity_max:100, word:"n", action:"pull"},
-		"miniskirt":               {name:"miniskirt",               integrity_max:100, word:"a", action:"lift"},
-		"boyshorts":               {name:"boyshorts",               integrity_max:100, word:"n", action:"pull"},
-		"panties":                 {name:"panties",                 integrity_max:100, word:"n", action:"pull"},
-		"boxers":                  {name:"boxers",                  integrity_max:100, word:"n", action:"unbutton"},
-		"briefs":                  {name:"briefs",                  integrity_max:100, word:"n", action:"pull"},
-		"jorts":                   {name:"jorts",                   integrity_max:100, word:"n", action:"pull"},
-		"sweatpants":              {name:"sweatpants",              integrity_max:100, word:"n", action:"pull"},
-		"rain bottoms":            {name:"rain bottoms",            integrity_max:100, word:"n", action:"pull"},
-		"camo bottoms":            {name:"camo bottoms",            integrity_max:100, word:"n", action:"unzip"},
-		"assless chaps":           {name:"assless chaps",           integrity_max:100, word:"n", action:"pull"},
-		"hot pants":               {name:"hot pants",               integrity_max:100, word:"n", action:"pull"},
-		"leather trousers":        {name:"leather trousers",        integrity_max:100, word:"n", action:"pull"},
-		"bathrobe":                {name:"bathrobe",                integrity_max:100, word:"a", action:"lift"},
-		"lab trousers":            {name:"lab trousers",            integrity_max:100, word:"n", action:"unzip"},
-		"security trousers":       {name:"security trousers",       integrity_max:100, word:"n", action:"unzip"},
-		"white trousers":          {name:"white trousers",          integrity_max:100, word:"n", action:"pull"},
-		"white skirt":             {name:"white skirt",             integrity_max:100, word:"a", action:"lift"},
-		"gown skirt":              {name:"gown skirt",              integrity_max:100, word:"a", action:"lift"},
-		"jumpsuit trousers":       {name:"jumpsuit trousers",       integrity_max:100, word:"n", action:"pull"},
-		"coverall bottoms":        {name:"coverall bottoms",        integrity_max:100, word:"n", action:"unzip"},
-		"dance shorts":            {name:"dance shorts",            integrity_max:100, word:"n", action:"pull"},
-		"formal trousers":         {name:"formal trousers",         integrity_max:100, word:"n", action:"pull"},
-		"cropped dress skirt":     {name:"cropped dress skirt",     integrity_max:100, word:"a", action:"lift"},
-		"riding trousers":         {name:"riding trousers",         integrity_max:100, word:"n", action:"pull"},
-		"chapette breeches":       {name:"chapette breeches",       integrity_max:100, word:"n", action:"pull"},
-		"torn hunting trousers":   {name:"torn hunting trousers",   integrity_max:100, word:"n", action:"pull"},
-		"ruined trousers":         {name:"ruined trousers",         integrity_max:100, word:"n", action:"pull"},
-		"dark trousers":           {name:"dark trousers",           integrity_max:100, word:"n", action:"pull"},
-		"torn jeans":              {name:"torn jeans",              integrity_max:100, word:"n", action:"unbutton"},
-		"bloomers":                {name:"bloomers",                integrity_max:100, word:"n", action:"lift"},
-		"bell flower dress":       {name:"bell flower dress",       integrity_max:100, word:"a", action:"lift"},
-		"lotus skirt":             {name:"lotus skirt",             integrity_max:100, word:"a", action:"lift"},
-		"leaf skirt":              {name:"leaf skirt",              integrity_max:100, word:"a", action:"lift"},
-		"evergreen dress":         {name:"evergreen dress",         integrity_max:100, word:"a", action:"lift"},
-		"plant skirt":             {name:"plant skirt",             integrity_max:100, word:"a", action:"lift"},
-		"kimono bottoms":          {name:"kimono bottoms",          integrity_max:100, word:"n", action:"lift"},
-		"christmas bottoms":       {name:"christmas bottoms",       integrity_max:100, word:"n", action:"pull"},
-		"ribbons":                 {name:"ribbons",                 integrity_max:100, word:"n", action:"unwrap"},
-		"pyjama bottoms":          {name:"pyjama bottoms",          integrity_max:100, word:"n", action:"pull"},
-		"ghost sheet":             {name:"ghost sheet",             integrity_max:100, word:"a", action:"lift"},
-		"vampire trousers":        {name:"vampire trousers",        integrity_max:100, word:"n", action:"pull"},
-		"witch dress skirt":       {name:"witch dress skirt",       integrity_max:100, word:"a", action:"lift"},
-		"flowing robe":            {name:"flowing robe",            integrity_max:100, word:"a", action:"lift"}
+		"naked":					{name:"naked",						integrity_max:100, word:"n", action:"none"},
+		"trousers":					{name:"trousers",					integrity_max:100, word:"n", action:"pull"},
+		"skirt":					{name:"skirt",						integrity_max:100, word:"a", action:"lift"},
+		"school shorts":			{name:"school shorts",				integrity_max:100, word:"n", action:"pull"},
+		"school skirt":				{name:"school skirt",				integrity_max:100, word:"a", action:"lift"},
+		"short school skirt":		{name:"short school skirt",			integrity_max:100, word:"a", action:"lift"},
+		"school trousers":			{name:"school trousers",			integrity_max:100, word:"n", action:"pull"},
+		"long school skirt":		{name:"long school skirt",			integrity_max:100, word:"a", action:"lift"},
+		"teacher's slacks":			{name:"teacher's slacks",			integrity_max:100, word:"n", action:"unzip"},
+		"school swim shorts":		{name:"school swim shorts",			integrity_max:100, word:"n", action:"pull"},
+		"school swimsuit bottoms":	{name:"school swimsuit bottoms",	integrity_max:100, word:"n", action:"aside"},
+		"swim shorts":				{name:"swim shorts",				integrity_max:100, word:"n", action:"pull"},
+		"board shorts":				{name:"board shorts",				integrity_max:100, word:"n", action:"pull"},
+		"bikini bottoms":			{name:"bikini bottoms",				integrity_max:100, word:"n", action:"pull"},
+		"microkini bottoms":		{name:"microkini bottoms",			integrity_max:100, word:"n", action:"pull"},
+		"diving suit bottoms":		{name:"diving suit bottoms",		integrity_max:100, word:"n", action:"unzip"},
+		"sailor trousers":			{name:"sailor trousers",			integrity_max:100, word:"n", action:"unzip"},
+		"cargo trousers":			{name:"cargo trousers",				integrity_max:100, word:"n", action:"pull"},
+		"police trousers":			{name:"police trousers",			integrity_max:100, word:"n", action:"unzip"},
+		"police skirt":				{name:"police skirt",				integrity_max:100, word:"a", action:"lift"},
+		"uniform trousers":			{name:"uniform trousers",			integrity_max:100, word:"n", action:"unzip"},
+		"monk robes":				{name:"monk robes",					integrity_max:100, word:"n", action:"aside"},
+		"nun robe skirt":			{name:"nun robe skirt",				integrity_max:100, word:"a", action:"lift"},
+		"robes":					{name:"robes",						integrity_max:100, word:"n", action:"aside"},
+		"black robes":				{name:"black robes",				integrity_max:100, word:"n", action:"aside"},
+		"jumpsuit bottoms":			{name:"jumpsuit bottoms",			integrity_max:100, word:"n", action:"unzip"},
+		"tuxedo trousers":			{name:"tuxedo trousers",			integrity_max:100, word:"n", action:"unzip"},
+		"evening gown":				{name:"evening gown",				integrity_max:100, word:"a", action:"lift"},
+		"ballgown skirt":			{name:"ballgown skirt",				integrity_max:100, word:"a", action:"lift"},
+		"breeches":					{name:"breeches",					integrity_max:100, word:"a", action:"pull"},
+		"gothic trousers":			{name:"gothic trousers",			integrity_max:100, word:"n", action:"unzip"},
+		"gothic gown":				{name:"gothic gown",				integrity_max:100, word:"a", action:"lift"},
+		"business trousers":		{name:"business trousers",			integrity_max:100, word:"n", action:"unzip"},
+		"sundress skirt":			{name:"sundress skirt",				integrity_max:100, word:"a", action:"lift"},
+		"tracksuit bottoms":		{name:"tracksuit bottoms",			integrity_max:100, word:"n", action:"pull"},
+		"slacks":					{name:"slacks",						integrity_max:100, word:"n", action:"unzip"},
+		"jeans":					{name:"jeans",						integrity_max:100, word:"n", action:"unbutton"},
+		"khakis":					{name:"khakis",						integrity_max:100, word:"n", action:"unzip"},
+		"jeans":					{name:"jeans",						integrity_max:100, word:"n", action:"unzip"},
+		"shorts":					{name:"shorts",						integrity_max:100, word:"n", action:"pull"},
+		"miniskirt":				{name:"miniskirt",					integrity_max:100, word:"a", action:"lift"},
+		"boyshorts":				{name:"boyshorts",					integrity_max:100, word:"n", action:"pull"},
+		"panties":					{name:"panties",					integrity_max:100, word:"n", action:"pull"},
+		"boxers":					{name:"boxers",						integrity_max:100, word:"n", action:"unbutton"},
+		"briefs":					{name:"briefs",						integrity_max:100, word:"n", action:"pull"},
+		"jorts":					{name:"jorts",						integrity_max:100, word:"n", action:"pull"},
+		"sweatpants":				{name:"sweatpants",					integrity_max:100, word:"n", action:"pull"},
+		"rain bottoms":				{name:"rain bottoms",				integrity_max:100, word:"n", action:"pull"},
+		"camo bottoms":				{name:"camo bottoms",				integrity_max:100, word:"n", action:"unzip"},
+		"assless chaps":			{name:"assless chaps",				integrity_max:100, word:"n", action:"pull"},
+		"hot pants":				{name:"hot pants",					integrity_max:100, word:"n", action:"pull"},
+		"leather trousers":			{name:"leather trousers",			integrity_max:100, word:"n", action:"pull"},
+		"bathrobe":					{name:"bathrobe",					integrity_max:100, word:"a", action:"lift"},
+		"lab trousers":				{name:"lab trousers",				integrity_max:100, word:"n", action:"unzip"},
+		"security trousers":		{name:"security trousers",			integrity_max:100, word:"n", action:"unzip"},
+		"white trousers":			{name:"white trousers",				integrity_max:100, word:"n", action:"pull"},
+		"white skirt":				{name:"white skirt",				integrity_max:100, word:"a", action:"lift"},
+		"gown skirt":				{name:"gown skirt",					integrity_max:100, word:"a", action:"lift"},
+		"jumpsuit trousers":		{name:"jumpsuit trousers",			integrity_max:100, word:"n", action:"pull"},
+		"coverall bottoms":			{name:"coverall bottoms",			integrity_max:100, word:"n", action:"unzip"},
+		"dance shorts":				{name:"dance shorts",				integrity_max:100, word:"n", action:"pull"},
+		"formal trousers":			{name:"formal trousers",			integrity_max:100, word:"n", action:"pull"},
+		"cropped dress skirt":		{name:"cropped dress skirt",		integrity_max:100, word:"a", action:"lift"},
+		"riding trousers":			{name:"riding trousers",			integrity_max:100, word:"n", action:"pull"},
+		"chapette breeches":		{name:"chapette breeches",			integrity_max:100, word:"n", action:"pull"},
+		"torn hunting trousers":	{name:"torn hunting trousers",		integrity_max:100, word:"n", action:"pull"},
+		"ruined trousers":			{name:"ruined trousers",			integrity_max:100, word:"n", action:"pull"},
+		"dark trousers":			{name:"dark trousers",				integrity_max:100, word:"n", action:"pull"},
+		"torn jeans":				{name:"torn jeans",					integrity_max:100, word:"n", action:"unbutton"},
+		"bloomers":					{name:"bloomers",					integrity_max:100, word:"n", action:"lift"},
+		"bell flower dress":		{name:"bell flower dress",			integrity_max:100, word:"a", action:"lift"},
+		"lotus skirt":				{name:"lotus skirt",				integrity_max:100, word:"a", action:"lift"},
+		"leaf skirt":				{name:"leaf skirt",					integrity_max:100, word:"a", action:"lift"},
+		"evergreen dress":			{name:"evergreen dress",			integrity_max:100, word:"a", action:"lift"},
+		"plant skirt":				{name:"plant skirt",				integrity_max:100, word:"a", action:"lift"},
+		"kimono bottoms":			{name:"kimono bottoms",				integrity_max:100, word:"n", action:"lift"},
+		"christmas bottoms":		{name:"christmas bottoms",			integrity_max:100, word:"n", action:"pull"},
+		"ribbons":					{name:"ribbons",					integrity_max:100, word:"n", action:"unwrap"},
+		"pyjama bottoms":			{name:"pyjama bottoms",				integrity_max:100, word:"n", action:"pull"},
+		"ghost sheet":				{name:"ghost sheet",				integrity_max:100, word:"a", action:"lift"},
+		"vampire trousers":			{name:"vampire trousers",			integrity_max:100, word:"n", action:"pull"},
+		"witch dress skirt":		{name:"witch dress skirt",			integrity_max:100, word:"a", action:"lift"},
+		"flowing robe":				{name:"flowing robe",				integrity_max:100, word:"a", action:"lift"}
 	}
 }>>
 
 <<set setup.npcClothesSets to [
-	{name: "naked",               type: "naked", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("naked", "naked"), desc: "naked"},
-	{name: "maleDefault",         type: "default", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"},
-	{name: "femaleDefault",       type: "default", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"},
+	{name: "naked",					type: "naked", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("naked", "naked"), desc: "naked"},
+	{name: "maleDefault",			type: "default", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"},
+	{name: "femaleDefault",			type: "default", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "maleSchool",          type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "school shorts"), desc: "school uniform"},
-	{name: "femaleSchool",        type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "school skirt"), desc: "school uniform"},
-	{name: "femaleSchoolShort",   type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "short school skirt"), desc: "school uniform"},
-	{name: "maleSchoolLong",      type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school blouse", "school trousers"), desc: "school uniform"},
-	{name: "femaleSchoolLong",    type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school blouse", "long school skirt"), desc: "school uniform"},
-	{name: "maleSchoolDress",     type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("dress shirt", "school trousers"), desc: "school uniform"},
-	{name: "femaleSchoolDress",   type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("dress shirt", "school skirt"), desc: "school uniform"},
-	{name: "maleSchoolBlazer",    type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school blazer", "school trousers"), desc: "school uniform"},
-	{name: "femaleSchoolBlazer",  type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school blazer", "long school skirt"), desc: "school uniform"},
-	{name: "teacher",             type: "teacher", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("teacher's uniform", "teacher's slacks"), desc: "teacher's uniform"},
+	{name: "maleSchool",			type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "school shorts"), desc: "school uniform"},
+	{name: "femaleSchool",			type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "school skirt"), desc: "school uniform"},
+	{name: "femaleSchoolShort",		type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school shirt", "short school skirt"), desc: "school uniform"},
+	{name: "maleSchoolLong",		type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school blouse", "school trousers"), desc: "school uniform"},
+	{name: "femaleSchoolLong",		type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school blouse", "long school skirt"), desc: "school uniform"},
+	{name: "maleSchoolDress",		type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("dress shirt", "school trousers"), desc: "school uniform"},
+	{name: "femaleSchoolDress",		type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("dress shirt", "school skirt"), desc: "school uniform"},
+	{name: "maleSchoolBlazer",		type: "school", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("school blazer", "school trousers"), desc: "school uniform"},
+	{name: "femaleSchoolBlazer",	type: "school", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("school blazer", "long school skirt"), desc: "school uniform"},
+	{name: "teacher",				type: "teacher", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("teacher's uniform", "teacher's slacks"), desc: "teacher's uniform"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "maleSchoolSwim",      type: "schoolSwim", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "school swim shorts"), desc: "school swimsuit"},
-	{name: "maleSchoolSwimShirt", type: "schoolSwim", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("swim shirt", "school swim shorts"), desc: "school swimsuit"},
-	{name: "femaleSchoolSwim",    type: "schoolSwim", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("school swimsuit top", "school swimsuit bottoms"), desc: "school swimsuit"},
-	{name: "maleSwim1",           type: "beach", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "swim shorts"), desc: "swimsuit"},
-	{name: "maleSwim2",           type: "beach", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "board shorts"), desc: "swimsuit"},
-	{name: "femaleSwim1",         type: "beach", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("bikini top", "bikini bottoms"), desc: "bikini"},
-	{name: "femaleSwim2",         type: "beach", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("microkini top", "microkini bottoms"), desc: "microkini"},
-	{name: "neutralSwim",         type: "beach", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("swim shirt", "board shorts"), desc: "swimsuit"},
-	{name: "divingSuit",          type: "beachDive", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("diving suit", "diving suit bottoms"), desc: "diving suit"},
-	{name: "sailor",              type: "sailor", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sailor shirt", "sailor trousers"), desc: "sailor outfit"},
-	{name: "docker1",             type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hi-vis jacket", "cargo trousers"), desc: "hi-vis jacket and cargo trousers"},
-	{name: "docker2",             type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("denim shirt", "jeans"), desc: "denim shirt and jeans"},
-	{name: "docker3",             type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hoodie", "cargo trousers"), desc: "hoodie and cargo trousers"},
-	{name: "docker4",             type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("vest", "jeans"), desc: "vest and jeans"},
+	{name: "maleSchoolSwim",		type: "schoolSwim", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "school swim shorts"), desc: "school swimsuit"},
+	{name: "maleSchoolSwimShirt",	type: "schoolSwim", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("swim shirt", "school swim shorts"), desc: "school swimsuit"},
+	{name: "femaleSchoolSwim",		type: "schoolSwim", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("school swimsuit top", "school swimsuit bottoms"), desc: "school swimsuit"},
+	{name: "maleSwim1",				type: "beach", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "swim shorts"), desc: "swimsuit"},
+	{name: "maleSwim2",				type: "beach", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "board shorts"), desc: "swimsuit"},
+	{name: "femaleSwim1",			type: "beach", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("bikini top", "bikini bottoms"), desc: "bikini"},
+	{name: "femaleSwim2",			type: "beach", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("microkini top", "microkini bottoms"), desc: "microkini"},
+	{name: "neutralSwim",			type: "beach", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("swim shirt", "board shorts"), desc: "swimsuit"},
+	{name: "divingSuit",			type: "beachDive", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("diving suit", "diving suit bottoms"), desc: "diving suit"},
+	{name: "sailor",				type: "sailor", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sailor shirt", "sailor trousers"), desc: "sailor outfit"},
+	{name: "docker1",				type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hi-vis jacket", "cargo trousers"), desc: "hi-vis jacket and cargo trousers"},
+	{name: "docker2",				type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("denim shirt", "jeans"), desc: "denim shirt and jeans"},
+	{name: "docker3",				type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hoodie", "cargo trousers"), desc: "hoodie and cargo trousers"},
+	{name: "docker4",				type: "docker", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("vest", "jeans"), desc: "vest and jeans"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "malePolice",          type: "police", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("police shirt", "police trousers"), desc: "police uniform"},
-	{name: "femalePolice",        type: "police", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("police shirt", "police skirt"), desc: "police uniform"},
-	{name: "neutralPolice",       type: "police", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("uniform shirt", "uniform trousers"), desc: "police uniform"},
-	{name: "maleRobe",            type: "temple", gender: "m", outfit: 1, clothes: npcAssignClothesToSet("monk robe top", "monk robes"), desc: "robe"},
-	{name: "femaleRobe",          type: "temple", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("nun robe top", "nun robe skirt"), desc: "robe"},
-	{name: "neutralRobe",         type: "temple", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("robe top", "robes"), desc: "robe"},
-	{name: "neutralRobeBlack",    type: "templeBlack", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("black robe top", "black robes"), desc: "black robe"},
-	{name: "prisonJumpsuit",      type: "prison", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("jumpsuit shirt", "jumpsuit bottoms"), desc: "prison jumpsuit"},
+	{name: "malePolice",			type: "police", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("police shirt", "police trousers"), desc: "police uniform"},
+	{name: "femalePolice",			type: "police", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("police shirt", "police skirt"), desc: "police uniform"},
+	{name: "neutralPolice",			type: "police", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("uniform shirt", "uniform trousers"), desc: "police uniform"},
+	{name: "maleRobe",				type: "temple", gender: "m", outfit: 1, clothes: npcAssignClothesToSet("monk robe top", "monk robes"), desc: "robe"},
+	{name: "femaleRobe",			type: "temple", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("nun robe top", "nun robe skirt"), desc: "robe"},
+	{name: "neutralRobe",			type: "temple", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("robe top", "robes"), desc: "robe"},
+	{name: "neutralRobeBlack",		type: "templeBlack", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("black robe top", "black robes"), desc: "black robe"},
+	{name: "prisonJumpsuit",		type: "prison", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("jumpsuit shirt", "jumpsuit bottoms"), desc: "prison jumpsuit"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "maleFormal1",         type: "formal", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tuxedo shirt", "tuxedo trousers"), desc: "tuxedo"},
-	{name: "femaleFormal1",       type: "formal", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("evening gown top", "evening gown"), desc: "formal gown"},
-	{name: "femaleFormal2",       type: "formal", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("ballgown top", "ballgown skirt"), desc: "ballgown"},
-	{name: "neutralFormal",       type: "formal", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("dress shirt", "breeches"), desc: "formal clothes"},
-	{name: "maleFormalRare",      type: "formalRare", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("gothic jacket and vest", "gothic trousers"), desc: "gothic suit"},
-	{name: "femaleFormalRare",    type: "formalRare", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("gothic gown top", "gothic gown"), desc: "gothic gown"},
-	{name: "business",            type: "business", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("business suit top", "business trousers"), desc: "business suit"},
+	{name: "maleFormal1",			type: "formal", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tuxedo shirt", "tuxedo trousers"), desc: "tuxedo"},
+	{name: "femaleFormal1",			type: "formal", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("evening gown top", "evening gown"), desc: "formal gown"},
+	{name: "femaleFormal2",			type: "formal", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("ballgown top", "ballgown skirt"), desc: "ballgown"},
+	{name: "neutralFormal",			type: "formal", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("dress shirt", "breeches"), desc: "formal clothes"},
+	{name: "maleFormalRare",		type: "formalRare", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("gothic jacket and vest", "gothic trousers"), desc: "gothic suit"},
+	{name: "femaleFormalRare",		type: "formalRare", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("gothic gown top", "gothic gown"), desc: "gothic gown"},
+	{name: "business",				type: "business", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("business suit top", "business trousers"), desc: "business suit"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "maleTown1",           type: "town", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "trousers"), desc: "t-shirt and shorts"},
-	{name: "femaleTown1",         type: "town", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress top", "sundress skirt"), desc: "sundress"},
-	{name: "maleTown2",           type: "town", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"},
-	{name: "femaleTown2",         type: "town", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"},
-	{name: "townTrack",           type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("tracksuit top", "tracksuit bottoms"), desc: "tracksuit"},
-	{name: "townCoat",            type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("peacoat", "slacks"), desc: "peacoat and slacks"},
-	{name: "townTurtleneck",      type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("turtleneck", "jeans"), desc: "turtleneck and jeans"},
-	{name: "townCollar",          type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("collared shirt", "khakis"), desc: "collared shirt and khakis"},
-	{name: "townBlazer",          type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("blazer", "trousers"), desc: "blazer and trousers"},
-	{name: "townJersey",          type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sports jersey", "trousers"), desc: "sports jersey and trousers"},
-	{name: "townSweaterVest",     type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater vest", "khakis"), desc: "sweater vest and khakis"},
-	{name: "townVNeck",           type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("v neck", "jeans"), desc: "v neck shirt and jeans"},
+	{name: "maleTown1",				type: "town", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "trousers"), desc: "t-shirt and shorts"},
+	{name: "femaleTown1",			type: "town", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress top", "sundress skirt"), desc: "sundress"},
+	{name: "maleTown2",				type: "town", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"},
+	{name: "femaleTown2",			type: "town", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"},
+	{name: "townTrack",				type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("tracksuit top", "tracksuit bottoms"), desc: "tracksuit"},
+	{name: "townCoat",				type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("peacoat", "slacks"), desc: "peacoat and slacks"},
+	{name: "townTurtleneck",		type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("turtleneck", "jeans"), desc: "turtleneck and jeans"},
+	{name: "townCollar",			type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("collared shirt", "khakis"), desc: "collared shirt and khakis"},
+	{name: "townBlazer",			type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("blazer", "trousers"), desc: "blazer and trousers"},
+	{name: "townJersey",			type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sports jersey", "trousers"), desc: "sports jersey and trousers"},
+	{name: "townSweaterVest",		type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater vest", "khakis"), desc: "sweater vest and khakis"},
+	{name: "townVNeck",				type: "town", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("v neck", "jeans"), desc: "v neck shirt and jeans"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "maleWarm1",           type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "shorts"), desc: "t-shirt and shorts"},
-	{name: "femaleWarm1",         type: "warm", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress top", "sundress skirt"), desc: "sundress"},
-	{name: "maleWarm2",           type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tank top", "shorts"), desc: "tank top and shorts"},
-	{name: "femaleWarm2",         type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("blouse", "skirt"), desc: "blouse and skirt"},
-	{name: "maleWarmShirtless",   type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "shorts"), desc: "shorts"},
-	{name: "femaleWarmCrop",      type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("crop top", "miniskirt"), desc: "crop top and miniskirt"},
-	{name: "femaleWarmTank",      type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("tank top", "boyshorts"), desc: "tank top and boyshorts"},
-	{name: "neutralWarmBlazer",   type: "warm", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("blazer", "shorts"), desc: "blazer and shorts"},
-	{name: "neutralWarmJersey",   type: "warm", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sports jersey", "jorts"), desc: "sports jersey and jorts"},
+	{name: "maleWarm1",				type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "shorts"), desc: "t-shirt and shorts"},
+	{name: "femaleWarm1",			type: "warm", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress top", "sundress skirt"), desc: "sundress"},
+	{name: "maleWarm2",				type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tank top", "shorts"), desc: "tank top and shorts"},
+	{name: "femaleWarm2",			type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("blouse", "skirt"), desc: "blouse and skirt"},
+	{name: "maleWarmShirtless",		type: "warm", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "shorts"), desc: "shorts"},
+	{name: "femaleWarmCrop",		type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("crop top", "miniskirt"), desc: "crop top and miniskirt"},
+	{name: "femaleWarmTank",		type: "warm", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("tank top", "boyshorts"), desc: "tank top and boyshorts"},
+	{name: "neutralWarmBlazer",		type: "warm", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("blazer", "shorts"), desc: "blazer and shorts"},
+	{name: "neutralWarmJersey",		type: "warm", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sports jersey", "jorts"), desc: "sports jersey and jorts"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "coldPuffer",          type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("puffer jacket", "slacks"), desc: "puffer jacket"},
-	{name: "coldTrench",          type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("trenchcoat", "jeans"), desc: "trenchcoat"},
-	{name: "coldCoat",            type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("coat", "jeans"), desc: "coat"},
-	{name: "coldHoodie",          type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hoodie", "sweatpants"), desc: "hoodie"},
-	{name: "coldSweater",         type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater", "sweatpants"), desc: "sweater and sweatpants"},
-	{name: "rainCoat",            type: "rain", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("rain coat", "rain bottoms"), desc: "rain coat"},
+	{name: "coldPuffer",			type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("puffer jacket", "slacks"), desc: "puffer jacket"},
+	{name: "coldTrench",			type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("trenchcoat", "jeans"), desc: "trenchcoat"},
+	{name: "coldCoat",				type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("coat", "jeans"), desc: "coat"},
+	{name: "coldHoodie",			type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("hoodie", "sweatpants"), desc: "hoodie"},
+	{name: "coldSweater",			type: "cold", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater", "sweatpants"), desc: "sweater and sweatpants"},
+	{name: "rainCoat",				type: "rain", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("rain coat", "rain bottoms"), desc: "rain coat"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "wildsFlannel",        type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("flannel", "jeans"), desc: "flannel and jeans"},
-	{name: "wildsWJumper",        type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("woolen jumper", "khakis"), desc: "woolen jumper"},
-	{name: "wildsFJumper",        type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("fleece jumper", "khakis"), desc: "fleece jumper"},
-	{name: "wildsJacket",         type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("jacket", "khakis"), desc: "jacket and khakis"},
-	{name: "forestCamo",          type: "forest", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("camo jacket", "camo bottoms"), desc: "camouflaged hunting outfit"},
+	{name: "wildsFlannel",			type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("flannel", "jeans"), desc: "flannel and jeans"},
+	{name: "wildsWJumper",			type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("woolen jumper", "khakis"), desc: "woolen jumper"},
+	{name: "wildsFJumper",			type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("fleece jumper", "khakis"), desc: "fleece jumper"},
+	{name: "wildsJacket",			type: "wilds", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("jacket", "khakis"), desc: "jacket and khakis"},
+	{name: "forestCamo",			type: "forest", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("camo jacket", "camo bottoms"), desc: "camouflaged hunting outfit"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "brothelTrench",       type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("trench coat", "assless chaps"), desc: "trench coat"},
-	{name: "brothelVest",         type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather vest", "hot pants"), desc: "leather vest"},
-	{name: "brothelHarness",      type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather harness", "leather trousers"), desc: "leather harness"},
-	{name: "bathrobe",            type: "spa", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("bathrobe", "bathrobe"), desc: "bathrobe"},
+	{name: "brothelTrench",			type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("trench coat", "assless chaps"), desc: "trench coat"},
+	{name: "brothelVest",			type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather vest", "hot pants"), desc: "leather vest"},
+	{name: "brothelHarness",		type: "brothel", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather harness", "leather trousers"), desc: "leather harness"},
+	{name: "bathrobe",				type: "spa", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("bathrobe", "bathrobe"), desc: "bathrobe"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "compoundLab",         type: "compoundLab", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("lab coat", "lab trousers"), desc: "lab coat"},
-	{name: "security",            type: "security", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("security vest", "security trousers"), desc: "security uniform"},
-	{name: "doctor",              type: "hospital", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("doctor's coat", "white trousers"), desc: "doctor uniform"},
-	{name: "nurse",               type: "hospital", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("nurse's coat", "white skirt"), desc: "nurse uniform"},
-	{name: "patient",             type: "patient", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("patient gown", "gown skirt"), desc: "patient gown"},
-	{name: "jumpsuit",            type: "worker", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("jumpsuit top", "jumpsuit trousers"), desc: "jumpsuit"},
-	{name: "coveralls",           type: "worker", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("coverall top", "coverall bottoms"), desc: "coveralls"},
+	{name: "compoundLab",			type: "compoundLab", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("lab coat", "lab trousers"), desc: "lab coat"},
+	{name: "security",				type: "security", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("security vest", "security trousers"), desc: "security uniform"},
+	{name: "doctor",				type: "hospital", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("doctor's coat", "white trousers"), desc: "doctor uniform"},
+	{name: "nurse",					type: "hospital", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("nurse's coat", "white skirt"), desc: "nurse uniform"},
+	{name: "patient",				type: "patient", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("patient gown", "gown skirt"), desc: "patient gown"},
+	{name: "jumpsuit",				type: "worker", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("jumpsuit top", "jumpsuit trousers"), desc: "jumpsuit"},
+	{name: "coveralls",				type: "worker", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("coverall top", "coverall bottoms"), desc: "coveralls"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "maleUndies",          type: "undies", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "briefs"), desc: "briefs"},
-	{name: "femaleUndies",        type: "undies", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("bra", "panties"), desc: "bra and panties"},
+	{name: "maleUndies",			type: "undies", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("naked", "briefs"), desc: "briefs"},
+	{name: "femaleUndies",			type: "undies", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("bra", "panties"), desc: "bra and panties"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "dance",               type: "dance_studio", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("dance shirt", "dance shorts"), desc: "dance uniform"},
-	{name: "maleBriar",           type: "Briar", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirtless suit", "formal trousers"), desc: "shirtless suit"},
-	{name: "femaleBriar",         type: "Briar", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("low-neck dress", "cropped dress skirt"), desc: "plunging neckline dress"},
-	{name: "riding",              type: "riding", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("riding top", "riding trousers"), desc: "riding outfit"},
-	{name: "ridingFormal",        type: "Remy", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("shadbelly coat", "chapette breeches"), desc: "formal riding outfit"},
-	{name: "Eden",                type: "Eden", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ramshackle hunting coat", "torn hunting trousers"), desc: "hunting outfit"},
-	{name: "Morgan",              type: "Morgan", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ruined suit", "ruined trousers"), desc: "ruined outfit"},
-	{name: "maleLandry",          type: "Landry", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("grey sweater", "dark trousers"), desc: "grey sweater"},
-	{name: "femaleLandry",        type: "Landry", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("grey cardigan", "dark trousers"), desc: "grey cardigan"},
-	{name: "Whitney",             type: "Whitney", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather jacket", "torn jeans"), desc: "leather jacket"},
-	{name: "AlexJorts",           type: "Alex", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("flannel", "jorts"), desc: "flannel and jorts"},
-	{name: "AlexSkirt",           type: "Alex", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("flannel", "skirt"), desc: "flannel and skirt"},
-	{name: "maleAlexSleep",       type: "Alex", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "boxers"), desc: "t-shirt and boxers"},
-	{name: "femaleAlexSleep",     type: "Alex", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "boyshorts"), desc: "t-shirt and boyshorts"},
+	{name: "dance",					type: "dance_studio", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("dance shirt", "dance shorts"), desc: "dance uniform"},
+	{name: "maleBriar",				type: "Briar", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirtless suit", "formal trousers"), desc: "shirtless suit"},
+	{name: "femaleBriar",			type: "Briar", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("low-neck dress", "cropped dress skirt"), desc: "plunging neckline dress"},
+	{name: "riding",				type: "riding", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("riding top", "riding trousers"), desc: "riding outfit"},
+	{name: "ridingFormal",			type: "Remy", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("shadbelly coat", "chapette breeches"), desc: "formal riding outfit"},
+	{name: "Eden",					type: "Eden", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ramshackle hunting coat", "torn hunting trousers"), desc: "hunting outfit"},
+	{name: "Morgan",				type: "Morgan", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ruined suit", "ruined trousers"), desc: "ruined outfit"},
+	{name: "maleLandry",			type: "Landry", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("grey sweater", "dark trousers"), desc: "grey sweater"},
+	{name: "femaleLandry",			type: "Landry", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("grey cardigan", "dark trousers"), desc: "grey cardigan"},
+	{name: "Whitney",				type: "Whitney", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("leather jacket", "torn jeans"), desc: "leather jacket"},
+	{name: "AlexJorts",				type: "Alex", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("flannel", "jorts"), desc: "flannel and jorts"},
+	{name: "AlexSkirt",				type: "Alex", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("flannel", "skirt"), desc: "flannel and skirt"},
+	{name: "maleAlexSleep",			type: "Alex", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "boxers"), desc: "t-shirt and boxers"},
+	{name: "femaleAlexSleep",		type: "Alex", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("t-shirt", "boyshorts"), desc: "t-shirt and boyshorts"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "malePlantSpring",     type: "plantSpring", gender: "m", outfit: 1, clothes: npcAssignClothesToSet("jacaranda vest", "bloomers"), desc: "mass of leafy coverings"},
-	{name: "femalePlantSpring",   type: "plantSpring", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("blossoming growths", "bell flower dress"), desc: "mass of leafy coverings"},
-	{name: "plantSummer",         type: "plantSummer", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("leaf shirt", "lotus skirt"), desc: "mass of leafy coverings"},
-	{name: "plantAutumn",         type: "plantAutumn", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("leaf corset", "leaf skirt"), desc: "mass of leafy coverings"},
-	{name: "plantWinter",         type: "plantWinter", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("pine top", "evergreen dress"), desc: "mass of leafy coverings"},
-	{name: "plantGeneric",        type: "plant", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("plant top", "plant skirt"), desc: "plant top and skirt"},
+	{name: "malePlantSpring",		type: "plantSpring", gender: "m", outfit: 1, clothes: npcAssignClothesToSet("jacaranda vest", "bloomers"), desc: "mass of leafy coverings"},
+	{name: "femalePlantSpring",		type: "plantSpring", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("blossoming growths", "bell flower dress"), desc: "mass of leafy coverings"},
+	{name: "plantSummer",			type: "plantSummer", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("leaf shirt", "lotus skirt"), desc: "mass of leafy coverings"},
+	{name: "plantAutumn",			type: "plantAutumn", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("leaf corset", "leaf skirt"), desc: "mass of leafy coverings"},
+	{name: "plantWinter",			type: "plantWinter", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("pine top", "evergreen dress"), desc: "mass of leafy coverings"},
+	{name: "plantGeneric",			type: "plant", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("plant top", "plant skirt"), desc: "plant top and skirt"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "robinGiftShirt",      type: "robinGift", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "shorts"), desc: "shirt and shorts"},
-	{name: "robinGiftSundress",   type: "robinGift", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress", "sundress skirt"), desc: "sundress"},
-	{name: "robinGiftTux",        type: "robinGift", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tuxedo", "tuxedo trousers"), desc: "tuxedo"},
-	{name: "robinGiftGown",       type: "robinGift", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("gothic gown", "gothic gown"), desc: "gothic gown"},
-	{name: "robinGiftKimono",     type: "robinGift", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("kimono", "kimono bottoms"), desc: "kimono"},
-	{name: "robinGiftChristmas",  type: "robinGift", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("christmas top", "christmas bottoms"), desc: "christmas outfit"},
-	{name: "robinLewdRibbons",    type: "robinRibbons", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ribbons", "ribbons"), desc: "mass of ribbons"},
+	{name: "robinGiftShirt",		type: "robinGift", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "shorts"), desc: "shirt and shorts"},
+	{name: "robinGiftSundress",		type: "robinGift", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("sundress", "sundress skirt"), desc: "sundress"},
+	{name: "robinGiftTux",			type: "robinGift", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("tuxedo", "tuxedo trousers"), desc: "tuxedo"},
+	{name: "robinGiftGown",			type: "robinGift", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("gothic gown", "gothic gown"), desc: "gothic gown"},
+	{name: "robinGiftKimono",		type: "robinGift", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("kimono", "kimono bottoms"), desc: "kimono"},
+	{name: "robinGiftChristmas",	type: "robinGift", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("christmas top", "christmas bottoms"), desc: "christmas outfit"},
+	{name: "robinLewdRibbons",		type: "robinRibbons", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("ribbons", "ribbons"), desc: "mass of ribbons"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "pyjamas",             type: "sleep", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("pyjama shirt", "pyjama bottoms"), desc: "pyjama shirt and bottoms"},
-	{name: "ghost",               type: "halloween", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("ghost sheet", "ghost sheet"), desc: "ghost costume"},
-	{name: "vampire",             type: "halloween", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("vampire jacket", "vampire trousers"), desc: "vampire costume"},
-	{name: "witch",               type: "halloween", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("witch dress", "witch dress skirt"), desc: "witch costume"},
-	{name: "moonRobe",            type: "Wraith", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("flowing robe", "flowing robe"), desc: "flowing robe"},
+	{name: "pyjamas",				type: "sleep", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("pyjama shirt", "pyjama bottoms"), desc: "pyjama shirt and bottoms"},
+	{name: "ghost",					type: "halloween", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("ghost sheet", "ghost sheet"), desc: "ghost costume"},
+	{name: "vampire",				type: "halloween", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("vampire jacket", "vampire trousers"), desc: "vampire costume"},
+	{name: "witch",					type: "halloween", gender: "f", outfit: 1, clothes: npcAssignClothesToSet("witch dress", "witch dress skirt"), desc: "witch costume"},
+	{name: "moonRobe",				type: "Wraith", gender: "n", outfit: 1, clothes: npcAssignClothesToSet("flowing robe", "flowing robe"), desc: "flowing robe"},
 	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
-	{name: "maleDefault",         type: "default", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"},
-	{name: "femaleDefault",       type: "default", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"}
+	{name: "sweater",             type: "sweater", gender: "n", outfit: 0, clothes: npcAssignClothesToSet("sweater", "jeans"), desc: "sweater and jeans"},
+	/*--------------------------------------------------------------------------------------------------------------------------------------------------*/
+	{name: "maleDefault",			type: "default", gender: "m", outfit: 0, clothes: npcAssignClothesToSet("shirt", "trousers"), desc: "shirt and trousers"},
+	{name: "femaleDefault",			type: "default", gender: "f", outfit: 0, clothes: npcAssignClothesToSet("shirt", "skirt"), desc: "shirt and skirt"}
 
 ]>>
 <</widget>>
diff --git a/game/base-clothing/school-shop.twee b/game/base-clothing/school-shop.twee
index 86dd640432406b519caf9f2be4b0868b69d8f8d2..baff132c580eb0c2b8eae754f20df46478359db6 100644
--- a/game/base-clothing/school-shop.twee
+++ b/game/base-clothing/school-shop.twee
@@ -19,24 +19,24 @@
 		<<link [[Next|School Library Shop]]>><<endevent>><</link>>
 		<br>
 	<<else>>
-        Around the corner from the rental counter is a small area reserved for school-sanctioned clothing. Shirts, trousers, and skirts hang from circular stands, while swimsuits stay compactly folded on shelves.
+		Around the corner from the rental counter is a small area reserved for school-sanctioned clothing. Shirts, trousers, and skirts hang from circular stands, while swimsuits stay compactly folded on shelves.
 		<br><br>
-        <<if $schoolShopAction is undefined>>
-            <<set $schoolShopAction to []>>
-        <</if>>
-		<<NPCStatusCheck "Sydney">>
-        <<if $schoolShopAction.includes("wear") or $schoolShopAction.includes("try") or $schoolShopAction.includes("under")>>
+		<<if $schoolShopAction is undefined>>
+			<<set $schoolShopAction to []>>
+		<</if>>
+		<<run statusCheck("Sydney")>>
+		<<if $schoolShopAction.includes("wear") or $schoolShopAction.includes("try") or $schoolShopAction.includes("under")>>
 			<<if random(1,10) is 1>>
 				You hear Sydney speaking outside. "Um, the changing room is currently occupied! Sorry."
 			<<elseif !$sydneyDaily.peek and random(1,10) is 2 and (_sydneyStatus.includes("corrupt") or _sydneyStatus.includes("Lust"))>>
 				<<set $sydneyDaily.peek to true>><<set $sydneySeen.pushUnique("changing room")>>
 				You hear the curtain shift behind you. You quickly turn around and hear a gasp. <span class="lewd">Sydney's face disappears behind the curtain.</span> <<stress 3>><<gstress>><<npcincr Sydney lust 1>><<glust>><<arousal 50>><<garousal>>
 			<<else>>
-           		Sydney patiently waits for you outside the changing room.
+				Sydney patiently waits for you outside the changing room.
 			<</if>>
-        <<else>>
-		    Sydney patiently waits for you.
-        <</if>>
+		<<else>>
+			Sydney patiently waits for you.
+		<</if>>
 		<br><br>
 		<div id="tryonstats-div"><<tryOnStats>></div>
 		<<unset $shopListStartCount>>
@@ -58,11 +58,11 @@
 			<<link "View over outfits">><<replace "#clothingShop-div">><<OverOutfitShop>><</replace>><</link>>
 			<br><br>
 		<</if>>
-        /*
+		/*
 		*<<clothingcategoryicon "outfit">>
 		*<<link "View outfits">><<replace "#clothingShop-div">><<OutfitShop>><</replace>><</link>>
 		*<br>
-        */
+		*/
 		<<clothingcategoryicon "upper">>
 		<<link "View tops">><<replace "#clothingShop-div">><<TopShop>><</replace>><</link>>
 		<br>
@@ -84,14 +84,14 @@
 		<<clothingcategoryicon "face">>
 		<<link "View Face Accessories">><<replace "#clothingShop-div">><<FaceShop>><</replace>><</link>>
 		<br>
-        /*
+		/*
 		*<<clothingcategoryicon "neck">>
 		*<<link "View Neck Accessories">><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>>
 		*<br>
-        */
+		*/
 		<<clothingcategoryicon "hand">>
 		<<link "View Hand Accessories">><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>>
-		<br>  
+		<br>
 		<<clothingcategoryicon "legs">>
 		<<link "View Legwear">><<replace "#clothingShop-div">><<LegsShop>><</replace>><</link>>
 		<br>
diff --git a/game/base-clothing/shop.twee b/game/base-clothing/shop.twee
index e20edf434f7f499ebb51bb606ee27e66d06104b8..3b3dc19b7c1576f41cac54309f8041268f1de473 100644
--- a/game/base-clothing/shop.twee
+++ b/game/base-clothing/shop.twee
@@ -37,7 +37,7 @@
 				<<set $gwylan_aborted to 0>>
 				<br><br>
 				<<He>> rubs the back of <<his>> neck. "By the way, sorry for not saving you before, but I'm not messing with the alpha. I don't want the entire pack breaking my door down."
-			
+
 			<<elseif $gwylan_aborted is 3>>
 				<<set $gwylan_aborted to 0>>
 				<br><br>
@@ -75,12 +75,12 @@
 		<<elseif $gwylan_aborted is 2>>
 			<<set $gwylan_aborted to 0>>
 			"Hey," Gwylan says as you walk in. "Sorry for not saving you before, but I'm not messing with the alpha. I don't want the entire pack breaking my door down."
-		
+
 		<<elseif $gwylan_aborted is 3>>
 			<<set $gwylan_aborted to 0>>
 			<br><br>
-			"Hey," Gwylan says as you walk in. <<nnpc_He "Gwylan">> looks concerned. "Are you feeling okay? You look a little pale, and I thought I heard you screaming the other night..."	
-		
+			"Hey," Gwylan says as you walk in. <<nnpc_He "Gwylan">> looks concerned. "Are you feeling okay? You look a little pale, and I thought I heard you screaming the other night..."
+
 		<<else>>
 			You hear Gwylan shuffling somewhere in the gloom.
 		<</if>>
@@ -134,7 +134,7 @@
 		<br>
 		<<clothingcategoryicon "hand">>
 		<<link "Look in the tilted vanity">><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>>
-		<br>  
+		<br>
 		<<clothingcategoryicon "legs">>
 		<<link "Look in the worn stocking">><<replace "#clothingShop-div">><<LegsShop>><</replace>><</link>>
 		<br>
diff --git a/game/base-clothing/storeActions.twee b/game/base-clothing/storeActions.twee
index af59290f400a617ddc63bd6ba0388cffd87ec4a4..5e1e89f8fb773772646a0f1797e27835acc4cf01 100644
--- a/game/base-clothing/storeActions.twee
+++ b/game/base-clothing/storeActions.twee
@@ -297,7 +297,7 @@
 	<</if>>
 <</if>>
 
-<<if !$worn.lower.cursed and $worn.lower.name isnot "naked"	and !_middleOutfit>>
+<<if !$worn.lower.cursed and $worn.lower.name isnot "naked" and !_middleOutfit>>
 	<<if $exhibitionism gte 15 or _over_lower_protected or _under_lower_protected>>
 		<<set _stripOptions[$worn.lower.name] to "stripLower">>
 	<</if>>
diff --git a/game/base-clothing/update.twee b/game/base-clothing/update.twee
index faf4c4fbda36498800a86a1e9551fd3e45121dd4..7adce0f0adb0f4c7ed9f687e3d22f75e383be12c 100644
--- a/game/base-clothing/update.twee
+++ b/game/base-clothing/update.twee
@@ -246,7 +246,7 @@
 	<<if $brotheljob>>
 		<<set $wardrobes.brothel.unlocked to true>>
 	<</if>>
-	
+
 	<<set $wardrobes.schoolBoys.name to "Schools boy's locker">>
 	<<set $wardrobes.schoolBoys.unlocked to true>>
 	<<set $wardrobes.schoolBoys.under_lower.push(setup.clothes.under_lower[7])>>
@@ -313,13 +313,13 @@
 <</if>>
 
 <<if $objectVersion.wardrobes lt 4>>
-    <<if $wardrobe.genitals is undefined>>
-        <<set $wardrobe.genitals to []>>
-    <</if>>
-    <<for $_label, $_value range $wardrobes>>
-        <<if $_label isnot "wardrobe" and $wardrobes[$_label].unlocked isnot undefined and $wardrobes[$_label].genitals is undefined>>
-            <<set $wardrobes[$_label].genitals to []>>
-        <</if>>
-    <</for>>
+	<<if $wardrobe.genitals is undefined>>
+		<<set $wardrobe.genitals to []>>
+	<</if>>
+	<<for $_label, $_value range $wardrobes>>
+		<<if $_label isnot "wardrobe" and $wardrobes[$_label].unlocked isnot undefined and $wardrobes[$_label].genitals is undefined>>
+			<<set $wardrobes[$_label].genitals to []>>
+		<</if>>
+	<</for>>
 <</if>>
 <</widget>>
diff --git a/game/base-clothing/wardrobes.twee b/game/base-clothing/wardrobes.twee
index b6112ef2aa89699752a256945fa91b392fb8e627..fdae43142313c4487f075b7e98ffffbab203188f 100644
--- a/game/base-clothing/wardrobes.twee
+++ b/game/base-clothing/wardrobes.twee
@@ -149,7 +149,7 @@
 	<</if>>
 	/*Prevent equip when the ear slime doesn't allow it*/
 	<<if _wearId gte 0 and _slimePrevent.includes(_equip[_ie]) and $corruption_slime gte 80 and $wardrobeOption is "wear">>
-		<<if $willpower lt 800 and _item.reveal lt 500 and !_item.type.includesAny("school", "event")>>
+		<<if currentSkillValue('willpower') lt 800 and _item.reveal lt 500 and !_item.type.includesAny("school", "event")>>
 			<span class="red">You were unable to equip your _item.name as the slime in your ear did not permit it.</span>
 			<br>
 			<<continue>>
diff --git a/game/base-clothing/widgets.twee b/game/base-clothing/widgets.twee
index 51fb46f1393a3ef2baa7bfbe1f57b70a936ffc85..9d1a4ddaa2d0f99c28729439b4da95716563cf23 100644
--- a/game/base-clothing/widgets.twee
+++ b/game/base-clothing/widgets.twee
@@ -418,7 +418,7 @@
 /*Returns all carried clothes back to the wardrobe*/
 <<widget "returnCarried">>
 	<<set _skip to ["naked","towel top","large towel","towel skirt","large towel bottom","plant skirt","plant top"]>>
-	
+
 	<<if _args[0] is "wardrobe" or $wardrobes[_args[0]] is undefined>>
 		<<set $_selectedWardrobe to $wardrobe>>
 	<<else>>
@@ -505,10 +505,10 @@
 
 		/*Re-buy*/
 		<<if _args[0] isnot "genitals" and $clothingrebuy is 1>>
-			<<if $carried[_args[0]].name isnot "naked">>
+			<<if $carried[_args[0]].name isnot "naked" and $carried[_args[0]].cursed isnot 1>>
 				<<generalRuinedRebuy _args[0] $carried>>
 			<</if>>
-			<<if $worn[_args[0]].name isnot "naked">>
+			<<if $worn[_args[0]].name isnot "naked" and $worn[_args[0]].cursed isnot 1>>
 				<<generalRuinedRebuy _args[0] $worn>>
 			<</if>>
 		<</if>>
@@ -1216,16 +1216,18 @@
 <<widget "storeItem">>
 <<set _storeSkip to ["naked","towel top","large towel","towel skirt","large towel bottom","plant skirt","plant top"]>>
 <<for _u to 0; _u lt $store[_args[1]].length; _u++>>
-	<<if _args[0] is $store[_args[1]][_u].location>>
-		<<set _outfitPrimaryPrevious to $store[_args[1]][_u].outfitPrimary>>
+	<<set $_item to $store[_args[1]][_u]>>
+	<<if _args[0] is $_item.location>>
+		<<set _outfitPrimaryPrevious to $_item.outfitPrimary>>
 		<<if _outfitPrimaryPrevious isnot undefined>>
 			<<for _labelStore, _value range _outfitPrimaryPrevious>>
 				<<for _iStore to 0; _iStore lt $store[_labelStore].length; _iStore++>>
-					<<if _args[0] is $store[_labelStore][_iStore].location>>
-						<<if $store[_labelStore][_iStore].outfitSecondary isnot undefined>>
-							<<if $store[_labelStore][_iStore].outfitSecondary[1] is $store[_args[1]][_iStore].name>>
-								<<if !_storeSkip.includes($store[_labelStore][_iStore].name)>>
-									<<set $wardrobe[_labelStore].push(clone($store[_labelStore][_iStore]))>>
+					<<set $_itemPair to $store[_labelStore][_iStore]>>
+					<<if _args[0] is $_itemPair.location>>
+						<<if $_itemPair.outfitSecondary isnot undefined>>
+							<<if $_itemPair.outfitSecondary[1] is $_item.name>>
+								<<if !_storeSkip.includes($_itemPair.name)>>
+									<<set $wardrobe[_labelStore].push(clone($_itemPair))>>
 								<</if>>
 								<<set $store[_labelStore].deleteAt(_iStore)>>
 							<</if>>
@@ -1236,8 +1238,8 @@
 			<</for>>
 		<</if>>
 		<<unset _outfitPrimaryPrevious>>
-		<<if !_storeSkip.includes($store[_args[1]][_u].name) and $store[_args[1]][_u].temp is undefined>>
-			<<set $wardrobe[_args[1]].push(clone($store[_args[1]][_u]))>>
+		<<if !_storeSkip.includes($_item.name) and $_item.temp is undefined>>
+			<<set $wardrobe[_args[1]].push(clone($_item))>>
 		<</if>>
 		<<set $store[_args[1]].deleteAt(_u)>>
 		<<break>>
@@ -1463,6 +1465,11 @@
 <<set $upperwet to 0>><<set $lowerwet to 0>><<set $underlowerwet to 0>><<set $underupperwet to 0>>
 <</widget>>
 
+<<widget "dry_full">>
+<<dry>>
+<<set $upperwetstage to 0>><<set $lowerwetstage to 0>><<set $underupperwetstage to 0>><<set $underlowerwetstage to 0>>
+<</widget>>
+
 /*The "searchWardrobeForItem" widget searches the wardrobe for an item that matches a given item stored somewhere else, the argument are as follows; slot, item index.*/
 
 <<widget "searchWardrobeForItem">>
@@ -1707,9 +1714,10 @@
 			<<set $_value.lastTaken to _args[0]>>
 		<<else>>
 			<!-- Expanded error handling here to help with understanding an intermittent issue. If a bug is squashed relating to an undefined $worn entry, this error handler may become redundant. -->
-			<<set $_msg to `Expected an object in $worn[${$_label}], export and report this to developers.`>>
-			<<set $_src to `Location: ${Utils.GetStack()}.\nLabel: ${$_label}. Value: ${$_value}. Wardrobe: ${_args[0]}.`>>
-			<<error $_msg $_src>>
+			<<error {
+				message	: `Expected an object in $worn[${$_label}].`,
+				source	: `Location: ${Utils.GetStack()}.\nLabel: ${$_label}. Value: ${$_value}. Wardrobe: ${_args[0]}.`
+			}>>
 		<</if>>
 	<</for>>
 <</if>>
diff --git a/game/base-combat/actions-anus.twee b/game/base-combat/actions-anus.twee
index 9eebc730588e9d1dc046e67b73b929b6947a0a94..37de44307447524fd1287ef83c54b74966e8473f 100644
--- a/game/base-combat/actions-anus.twee
+++ b/game/base-combat/actions-anus.twee
@@ -93,9 +93,9 @@
 		<<if $consensual is 1 and (($promiscuity lte 74 and $enemytype is "man" or $deviancy lte 74 and $enemytype isnot "man") and !$promiscuityIgnore) or $awareness lt 300>>
 			<!-- Do Nothing -->
 		<<else>>
-			<<if $NPCList[$anustarget].penis is "anusdouble" or $NPCList[$anustarget].penis is "anusdoubleimminent" or $NPCList[$anustarget].chastity.penis.includes("chastity")>>
+			<<if $NPCList[$anustarget].penis is "anusdouble" or $NPCList[$anustarget].penis is "anusimminentdouble" or $NPCList[$anustarget].chastity.penis.includes("chastity")>>
 				<<set _anusaction["Envelop " + $NPCList[$anusdoubletarget].pronouns.his + " " + $NPCList[$anusdoubletarget].penisdesc] to "anuspenisdoublefuck">>
-			<<elseif $NPCList[$anusdoubletarget].penis is "anusdouble" or $NPCList[$anusdoubletarget].penis is "anusdoubleimminent" or $NPCList[$anusdoubletarget].chastity.penis.includes("chastity")>>
+			<<elseif $NPCList[$anusdoubletarget].penis is "anusdouble" or $NPCList[$anusdoubletarget].penis is "anusimminentdouble" or $NPCList[$anusdoubletarget].chastity.penis.includes("chastity")>>
 				<<set _anusaction["Envelop " + $NPCList[$anustarget].pronouns.his + " " + $NPCList[$anustarget].penisdesc] to "anuspenisdoublefuck">>
 			<<elseif !($NPCList[$anustarget].chastity.penis.includes("chastity") and $NPCList[$anusdoubletarget].chastity.penis.includes("chastity"))>>
 				<<set _anusaction["Envelop both their penises"] to "anuspenisdoublefuck">>
@@ -250,7 +250,7 @@
 <<if $anusaction is "anustopenis">>
 	<<personselect $anustarget>>
 	<<set $anusaction to 0>><<submission 10 $anustarget>><<analskilluse>><<combatpromiscuity5>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $analskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("anal", $anustarget)>>
 		<<if $NPCList[$anustarget].penis is 0>>
 			<<submission 2 $anustarget>><<set $anususe to "penis">><<set $NPCList[$anustarget].penis to "anusentrance">><<set $anusstate to "entrance">><<set $anusactiondefault to "penistease">>
 			<<if $leftarm is "anus">>
@@ -319,13 +319,13 @@
 
 <<widget "effectsanustopenisdouble">>
 <<if $anusaction is "anustopenisdouble">><<set $anusaction to 0>><<submission 10 $anustarget $anusdoubletarget>><<analskilluse>><<combatpromiscuity5>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $analskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
-		<<submission 2 $anustarget $anusdoubletarget>><<set $anususe to "penisdouble">><<set $NPCList[$anusdoubletarget].penis to "anusdoubleentrance">><<set $anusstate to "doubleentrance">>
+	<<if combatSkillCheck("anal", $anusdoubletarget)>>
+		<<submission 2 $anustarget $anusdoubletarget>><<set $anususe to "penisdouble">><<set $NPCList[$anusdoubletarget].penis to "anusentrancedouble">><<set $anusstate to "doubleentrance">>
 		<<if $NPCList[$anustarget].penis is "anusimminent">>
-			<<set $NPCList[$anustarget].penis to "anusdoubleimminent">>
+			<<set $NPCList[$anustarget].penis to "anusimminentdouble">>
 			<<set $anusstate to "doubleimminent">>
 		<<elseif $NPCList[$anustarget].penis is "anusentrance">>
-			<<set $NPCList[$anustarget].penis to "anusdoubleentrance">>
+			<<set $NPCList[$anustarget].penis to "anusentrancedouble">>
 			<<set $anusstate to "doubleentrance">>
 		<<else>>
 			<<set $NPCList[$anustarget].penis to "anusdouble">>
@@ -355,7 +355,7 @@
 	<<if $anusaction is "anuspenisdoublefuck">>
 		<<set $anusaction to 0>><<submission 20 $anustarget $anusdoubletarget>><<analskilluse>><<combatpromiscuity5>>
 		<<set _doublepenissize to $NPCList[$anustarget].penissize>>
-				
+
 		<<set _npcA to $anustarget>>
 		<<set _npcB to $anusdoubletarget>>
 		<<set _npcdicksizeA to $NPCList[_npcA].penissize>>
diff --git a/game/base-combat/actions-feet.twee b/game/base-combat/actions-feet.twee
index 7886171b2acad0ad1439684c3559d31b9f0128a0..5a4e3adb0bf90491df217d1303b05fcb05627b77 100644
--- a/game/base-combat/actions-feet.twee
+++ b/game/base-combat/actions-feet.twee
@@ -70,7 +70,7 @@
 
 <<widget "feetKick">>
 <<if $feettarget isnot "self">>
-	<<if $consensual isnot 1>>
+	<<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($feettarget))>>
 		<<set _feetaction["Kick"] to "kick">>
 	<</if>>
 <</if>>
diff --git a/game/base-combat/actions-hands.twee b/game/base-combat/actions-hands.twee
index bf51070db5cec8c0e9b30780578047acf01e4fbc..6914816d303fad055dba58a6013e5eac319c59f7 100644
--- a/game/base-combat/actions-hands.twee
+++ b/game/base-combat/actions-hands.twee
@@ -2,7 +2,7 @@
 <<widget "leftdefault">>
 <<if $lefttarget isnot "self">>
 	<<set _leftaction["Stroke"] to "leftchest">>
-	<<if $consensual isnot 1>>
+	<<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($lefttarget))>>
 		<<set _leftaction["Punch"] to "lefthit">>
 	<</if>>
 <</if>>
@@ -212,7 +212,7 @@
 
 <<widget "leftspraynew">>
 <<if $lefttarget isnot "self">>
-	<<if $consensual isnot 1 and $spray gte 1>>
+	<<if $consensual isnot 1 and $spray gte 1 and $NPCList.some(npc => npc.health >= 0 && (!$fightTargets || $fightTargets.includes(npc.index)))>>
 		<<set _leftaction["Pepper spray"] to "spray">>
 	<</if>>
 <</if>>
@@ -220,7 +220,7 @@
 
 <!-- Deprecated, not in use. See "leftstealnew"-->
 <<widget "leftsteal">>
-<<if $skulduggery gte 200 and $stealstateleft isnot 3 and $enemytype is "man" and $abomination isnot 1 and $npc.length is 0 and $water isnot 1 and $punishmentposition isnot "gloryhole">>
+<<if currentSkillValue('skulduggery') gte 200 and $stealstateleft isnot 3 and $enemytype is "man" and $abomination isnot 1 and $npc.length is 0 and $water isnot 1 and $punishmentposition isnot "gloryhole">>
 <<set $skulduggerydifficulty to 1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger>>
 	<<if $leftactiondefault is "steal">>
 	| <label><span class="brat">Steal</span> <<radiobutton "$leftaction" "steal" checked>> <<skulduggerydifficulty>><<combatcrime>></label>
@@ -232,7 +232,7 @@
 
 <<widget "leftstealnew">>
 <<if $lefttarget isnot "self" and !($stealtarget.includes($lefttarget))>>
-	<<if $skulduggery gte 200 and $enemytype is "man" and $abomination isnot 1 and !($npcrow.includes($lefttarget)) and $water isnot 1 and $punishmentposition isnot "gloryhole">>
+	<<if currentSkillValue('skulduggery') gte 200 and $enemytype is "man" and $abomination isnot 1 and !($npcrow.includes($lefttarget)) and $water isnot 1 and $punishmentposition isnot "gloryhole">>
 		<<set $skulduggerydifficulty to (1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger) * $stealdifficulty>>
 		/*Missing <<skulduggerydifficulty>><<combatcrime>>*/
 		<<if $stealstateleft is undefined>>
@@ -451,7 +451,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 <<widget "rightdefault">>
 <<if $righttarget isnot "self">>
 	<<set _rightaction["Stroke"] to "rightchest">>
-	<<if $consensual isnot 1>>
+	<<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($righttarget))>>
 		<<set _rightaction["Punch"] to "righthit">>
 	<</if>>
 <</if>>
@@ -657,7 +657,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 
 <<widget "rightspraynew">>
 <<if $righttarget isnot "self">>
-	<<if $consensual isnot 1 and $spray gte 1>>
+	<<if $consensual isnot 1 and $spray gte 1 and $NPCList.some(npc => npc.health >= 0 && (!$fightTargets || $fightTargets.includes(npc.index)))>>
 		<<set _rightaction["Pepper spray"] to "spray">>
 	<</if>>
 <</if>>
@@ -665,7 +665,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 
 <!-- Deprecated, not in use. See "rightstealnew"-->
 <<widget "rightsteal">>
-<<if $skulduggery gte 200 and $stealstateright isnot 3 and $enemytype is "man" and $abomination isnot 1 and $npc.length is 0 and $water isnot 1 and $punishmentposition isnot "gloryhole">>
+<<if currentSkillValue('skulduggery') gte 200 and $stealstateright isnot 3 and $enemytype is "man" and $abomination isnot 1 and $npc.length is 0 and $water isnot 1 and $punishmentposition isnot "gloryhole">>
 <<set $skulduggerydifficulty to 1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger>>
 	<<if $rightactiondefault is "steal">>
 	| <label><span class="brat">Steal</span> <<radiobutton "$rightaction" "steal" checked>> <<skulduggerydifficulty>><<combatcrime>></label>
@@ -677,7 +677,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 
 <<widget "rightstealnew">>
 <<if $righttarget isnot "self" and !($stealtarget.includes($righttarget))>>
-	<<if $skulduggery gte 200 and $enemytype is "man" and $abomination isnot 1 and !($npcrow.includes($righttarget)) and $water isnot 1 and $punishmentposition isnot "gloryhole">>
+	<<if currentSkillValue('skulduggery') gte 200 and $enemytype is "man" and $abomination isnot 1 and !($npcrow.includes($righttarget)) and $water isnot 1 and $punishmentposition isnot "gloryhole">>
 		<<set $skulduggerydifficulty to (1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger) * $stealdifficulty>>
 		/*Missing <<skulduggerydifficulty>><<combatcrime>>*/
 		<<if $stealstateright is undefined>>
@@ -1042,10 +1042,10 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 		<<if _args[0] is "left">>
 			/* rest */
 			<<set _leftaction["Rest"] to "heldSexToy">>
-			
+
 			/* Drop sex toy */
 			<<set _leftaction["Drop your "+$currentSexToyLeft.name] to "dildoDrop">>
-			
+
 			/* NPC fuck */
 			<<if $lefttarget isnot undefined and $lefttarget isnot "self">>
 				<<if $NPCList[$lefttarget].vagina isnot "none" and $NPCList[$lefttarget].vagina is 0 and $currentSexToyLeft.type.includes("dildo")>>
@@ -1059,7 +1059,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 				<<if $analdisable is "f" and $NPCList[$lefttarget].vagina isnot "none" and $NPCList[$lefttarget].vagina is 0 and $currentSexToyLeft.type.includes("dildo")>>
 					<<set _leftaction["Move your "+$currentSexToyLeft.name+" to "+$NPCList[$lefttarget].pronouns.his+" anus"] to "dildoOtherAnusTease">>
 				<</if>>
-				
+
 				<<if $analdisable is "f" and $NPCList[$lefttarget].penis isnot "none" and $NPCList[$lefttarget].penis is 0 and $currentSexToyLeft.type.includes("dildo")>>
 					<<set _leftaction["Move your "+$currentSexToyLeft.name+" to "+$NPCList[$lefttarget].pronouns.his+" anus"] to "dildoOtherAnusTease">>
 				<</if>>
@@ -1080,7 +1080,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 				<</if>>
 			<</if>>
 		<</if>>
-		
+
 		<<if _args[0] is "right">>
 			/* rest */
 			<<set _rightaction["Rest"] to "heldSexToy">>
@@ -1221,7 +1221,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 :: Widgets Effects Hands [widget]
 <<widget "effectshandsclothes">>
 
-/* Unified each clothing action for both hands.  To add conditionals for both hands, use: if $leftaction is $rightaction as a block inside */
+/* Unified each clothing action for both hands. To add conditionals for both hands, use: if $leftaction is $rightaction as a block inside */
 
 <<if $leftaction is "over_upper" or $rightaction is "over_upper">>
 	<<if $leftaction is "over_upper">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>>
@@ -1293,7 +1293,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 	<</if>>
 <</if>>
 
-/* Todo: over_lower here, but I don't know what the conditions should be.  Please remove this comment when it's been fixed. */
+/* Todo: over_lower here, but I don't know what the conditions should be. Please remove this comment when it's been fixed. */
 
 <<if $leftaction is "lower" or $rightaction is "lower">>
 	<<if $leftaction is "lower">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>>
@@ -1313,7 +1313,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 <<if $leftaction is "under_lower" or $rightaction is "under_lower">>
 	<<if $leftaction is "under_lower">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>>
 	<<if $rightaction is "under_lower">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>>
-	
+
 	<<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.vagina_exposed to 1>><<set $worn.under_lower.exposed to 2>>
 	<<set $worn.under_lower.state to "thighs">>
 	/* Strapon code is here, if needed to move to the genital-clothing section */
@@ -1351,8 +1351,10 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 	<<if $spray gte 2>>
 		<<set $enemyhealth -= 400>>
 		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
-			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
-				<<set $NPCList[_npctodamage].health -= (400/$enemyno)>>/* Divide damage by all current active enemies. */
+			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated" and (!$fightTargets or $fightTargets.includes(_npctodamage))>>
+				<<set _enemydivide to $fightTargets ? $enemyno-$fightTargets.length : $enemyno>> /* Divide damage by all current active enemies. */
+				<<set _thedamage to 400/_enemydivide>>
+				<<set $NPCList[_npctodamage].health -= _thedamage>>
 				<<if $enemyno gte 2>>
 					<<npcdamage _npctodamage>>
 				<</if>>
@@ -1375,8 +1377,10 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 	<<elseif $spray gte 1>>
 		<<set $enemyhealth -= 200>>
 		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
-			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
-				<<set $NPCList[_npctodamage].health -= (200/$enemyno)>>/* Divide damage by all current active enemies. */
+			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated" and (!$fightTargets or $fightTargets.includes(_npctodamage))>>
+				<<set _enemydivide to $fightTargets ? $enemyno-$fightTargets.length : $enemyno>> /* Divide damage by all current active enemies. */
+				<<set _thedamage to 200/_enemydivide>>
+				<<set $NPCList[_npctodamage].health -= _thedamage>>
 				<<if $enemyno gte 2>>
 					<<npcdamage _npctodamage>>
 				<</if>>
@@ -1410,8 +1414,10 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 	<<if $spray gte 1>>
 		<<set $enemyhealth -= 200>>
 		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
-			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
-				<<set $NPCList[_npctodamage].health -= (200/$enemyno)>>/* Divide damage by all current active enemies. */
+			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated" and (!$fightTargets or $fightTargets.includes(_npctodamage))>>
+				<<set _enemydivide to $fightTargets ? $enemyno-$fightTargets.length : $enemyno>> /* Divide damage by all current active enemies. */
+				<<set _thedamage to 200/_enemydivide>>
+				<<set $NPCList[_npctodamage].health -= _thedamage>>
 				<<if $enemyno gte 2>>
 					<<npcdamage _npctodamage>>
 				<</if>>
@@ -1445,8 +1451,10 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 	<<if $spray gte 1>>
 		<<set $enemyhealth -= 200>>
 		<<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>>
-			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated">>
-				<<set $NPCList[_npctodamage].health -= (200/$enemyno)>>/* Divide damage by all current active enemies. */
+			<<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated" and (!$fightTargets or $fightTargets.includes(_npctodamage))>>
+				<<set _enemydivide to $fightTargets ? $enemyno-$fightTargets.length : $enemyno>> /* Divide damage by all current active enemies. */
+				<<set _thedamage to 200/_enemydivide>>
+				<<set $NPCList[_npctodamage].health -= _thedamage>>
 				<<if $enemyno gte 2>>
 					<<npcdamage _npctodamage>>
 				<</if>>
@@ -1935,8 +1943,8 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 	<<set $rng to random(1, 100)>>
 	<<set $_hand to _args[0]>>
 	<<set $_npcHand to $NPCList[_n][$_hand + "hand"]>>
-	
-	<!-- Note for future coders: this is an EXCEPTION, because there are a LOT of pen_x states, and this is the best way to handle it. --> 
+
+	<!-- Note for future coders: this is an EXCEPTION, because there are a LOT of pen_x states, and this is the best way to handle it. -->
 	<!-- If you are adding new states, add them to the switch. Do your BEST to NOT ADD EXTRA CODE TO THIS WIDGET outside of the switch. -->
 	<<if $_npcHand isnot 0 and $_npcHand.startsWith("pen_")>>
 		<<set $_penbodypart to $_npcHand.slice(4)>>
@@ -2025,7 +2033,7 @@ $NPCList[5].lefthand is "pen" or $NPCList[5].righthand is "pen">>
 			You retrieve your $currentSexToyRight.name with your right hand.
 		<</if>>
 	<</if>>
-	
+
 <</widget>>
 
 <<widget "effectsDropSexToy">>
diff --git a/game/base-combat/actions-mouth.twee b/game/base-combat/actions-mouth.twee
index 44beef4cfb8368401118f0822e43594da1362030..45eb24e2e88975887001baf2a7e38a614923ee4c 100644
--- a/game/base-combat/actions-mouth.twee
+++ b/game/base-combat/actions-mouth.twee
@@ -208,7 +208,7 @@
 
 <<widget "combatPenisPenetrated">>
 <<set _mouthaction["Suck"] to "suck">>
-<<if $consensual isnot 1>>
+<<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtaget))>>
 	<<set _mouthaction["Bite"] to "bite">>
 <</if>>
 <<if $head isnot "grappled" and $head isnot "bound">>
@@ -218,7 +218,7 @@
 
 <<widget "combatOthervagina">>
 <<set _mouthaction["Lick"] to "vaginalick">>
-<<if $consensual isnot 1>>
+<<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtaget))>>
 	<<set _mouthaction["Bite"] to "bitepussy">>
 <</if>>
 <<if $head isnot "grappled" and $head isnot "bound" and $mouthuse isnot "facesit">>
@@ -252,7 +252,7 @@
 <<if $consensual is 1 or $head isnot "breasts">>
 	<<set _mouthaction["Pull away"] to "breastpull">>
 <</if>>
-<<if $consensual isnot 1>>
+<<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtaget))>>
 	<<set _mouthaction["Bite"] to "breastbite">>
 <</if>>
 <</widget>>
\ No newline at end of file
diff --git a/game/base-combat/actions-penis.twee b/game/base-combat/actions-penis.twee
index 52ab68cf1c4407e6fcf5badffe560ae560b92a4a..a34ac96e234d352097d41f660a01301a9c1ba045 100644
--- a/game/base-combat/actions-penis.twee
+++ b/game/base-combat/actions-penis.twee
@@ -378,7 +378,7 @@
 <<if $penisaction is "penistovagina">>
 	<<personselect $penistarget>>
 	<<set $penisaction to 0>><<submission 10 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
-	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<if $NPCList[$penistarget].vagina is 0>>
 			<<set $_target to $NPCList[$penistarget]>>
 			<<set $_target.vagina to "penisentrance">>
@@ -412,7 +412,7 @@
 <<if $penisaction is "penistoanus">>
 	<<personselect $penistarget>>
 	<<set $penisaction to 0>><<submission 10 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
-	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<if ($NPCList[$penistarget].vagina is 0 or $NPCList[$penistarget].vagina is "none") and ($NPCList[$penistarget].penis is 0 or $NPCList[$penistarget].penis is "none")>>
 			<<set $_target to $NPCList[$penistarget]>>
 			<<if $_target.vagina isnot "none">>
@@ -470,7 +470,7 @@
 			<<penilestat>><<raped>><<penisraped>>
 		<<elseif $player.virginity.penile is true>>
 			<<penis_lube_text>> <span class="pink">you <<peniletext>> thrust your virgin penis into <<combatpersons>> pussy.</span>
-			<span class="red">You feel your foreskin separate from your glans, forever robbing you of your purity.</span>
+			<span class="red">You feel your foreskin separate from your glans, <<virginitylosttext $NPCList[_n].fullDescription>>.</span>
 			<<sex 100 $penistarget>><<violence 30 $penistarget>><<bruise penis>><<set $speechpenisvirgin to 1>>
 			<<penilestat>><<raped>><<penisraped>>
 		<</if>>
@@ -510,7 +510,7 @@
 			<<penilestat>><<raped>><<penisraped>>
 		<<elseif $player.virginity.penile is true>>
 			<<penis_lube_text>> <span class="pink">you <<peniletext>> thrust your virgin penis into <<combatpersons>> ass.</span>
-			<span class="red">You feel your foreskin separate from your glans, forever robbing you of your purity.</span>
+			<span class="red">You feel your foreskin separate from your glans, <<virginitylosttext $NPCList[_n].fullDescription>>.</span>
 			<<sex 100 $penistarget>><<violence 30 $penistarget>><<bruise penis>><<set $speechpenisvirgin to 1>>
 			<<penilestat>><<raped>><<penisraped>>
 		<</if>>
@@ -532,7 +532,7 @@
 <<if $penisaction is "penistopenis">>
 	<<personselect $penistarget>>
 	<<set $penisaction to 0>><<submission 5 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
-	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<if $NPCList[$penistarget].penis is 0>>
 			<<set $_target to $NPCList[$penistarget]>>
 			<<submission 5 $penistarget>><<set $penisuse to "otherpenis">><<set $penisstate to "otherpenisentrance">>
@@ -561,7 +561,7 @@
 <<if $penisaction is "penistopenisfuck" and ["penisentrance", "penisimminent"].includes($NPCList[$penistarget].penis)>>
 	<<personselect $penistarget>>
 	<<set $penisaction to 0>><<submission 5 $penistarget>><<penileskilluse>><<combatpromiscuity5>>
-	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $penileskill + ($rng * 10) gte (1000 + $enemyanger)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<submission 5 $penistarget>><<set $penisuse to "otherpenis">><<set $penisstate to "otherpenis">>
 		<<set $NPCList[$penistarget].penis to "penis">><<set $penisactiondefault to "fencingcooperate">>
 		<span class="blue">You press <<combatpersons>> <<npcPenisSimple $penistarget>> with your penis<<if $worn.genitals.type.includes("chastity")>>, through your $worn.genitals.name<</if>>.</span>
diff --git a/game/base-combat/actions-speech.twee b/game/base-combat/actions-speech.twee
index 47117a5525c65bf572d8b58adccaadd923abef1c..d20a963dde2b2e8bc6f267486f8e5e29a5bba7b5 100644
--- a/game/base-combat/actions-speech.twee
+++ b/game/base-combat/actions-speech.twee
@@ -35,14 +35,17 @@
 				<<set _askActions["to not choke you" + _diffText] to "nochoke">>
 			<</if>>
 		<</if>>
-		
-        <<set $_npcname to $npc[$npcrow.indexOf($mouthtarget)]>>
-        <<if ["Robin","Kylar","Alex","Avery","Whitney","Eden","Sydney"].includes($_npcname) and !npcHasStrapon($mouthtarget)
-            and [0, "clothed"].includes($NPCList[$mouthtarget].vagina)>>
-            <<if ["Avery","Whitney"].includes($_npcname) or $npc[$npcrow.indexOf($mouthtarget)] is $_npcname and checkIfNPCHasCategorySextoy($_npcname,"strap-on")>>
-                <<set _askActions["to wear a strap-on"] to "wearStrapon">>
-            <</if>>
-        <</if>>
+
+		<<set $_npcname to $npc[$npcrow.indexOf($mouthtarget)]>>
+		<<if ["Robin","Kylar","Alex","Avery","Whitney","Eden","Sydney"].includes($_npcname) and !npcHasStrapon($mouthtarget)
+			and [0, "clothed"].includes($NPCList[$mouthtarget].vagina)>>
+			<<if ["Avery","Whitney"].includes($_npcname) or $npc[$npcrow.indexOf($mouthtarget)] is $_npcname and checkIfNPCHasCategorySextoy($_npcname,"strap-on").length > 0>>
+				<<set _askActions["to wear a strap-on"] to "wearStrapon">>
+			<</if>>
+		<</if>>
+		<<if npcHasStrapon($mouthtarget) and $NPCList[$mouthtarget].penis is 0>>
+			<<set _askActions["to remove "+$NPCList[$mouthtarget].pronouns.his+" strap-on"] to "removeStrapon">>
+		<</if>>
 
 	<<else>>
 		<<set _mouthaction["Scream"] to "scream">>
@@ -51,7 +54,9 @@
 			<<set _mouthaction["Forgive"] to "forgive">>
 		<</if>>
 		<<if $submissive lte 850>>
-			<<set _mouthaction["Demand"] to "demand">>
+			<<if $fightTargets is undefined>>
+				<<set _mouthaction["Demand"] to "demand">>
+			<</if>>
 		<</if>>
 	<</if>>
 	<<if $worn.over_upper.name isnot "naked" and $worn.over_upper.cursed isnot 1 or $worn.upper.name isnot "naked" and $worn.upper.cursed isnot 1 or $worn.under_upper.name isnot "naked" and $worn.under_upper.cursed isnot 1>>
diff --git a/game/base-combat/actions-text.twee b/game/base-combat/actions-text.twee
index d8575ca233a5a4e36888b9a876d21c016cbbdf30..cb7014bc4e152ec2ca376abbf90a33664eacfc30 100644
--- a/game/base-combat/actions-text.twee
+++ b/game/base-combat/actions-text.twee
@@ -102,7 +102,7 @@
 <</widget>>
 
 <<widget "penises">>
-	<!-- possible alternatives:  ...-->
+	<!-- possible alternatives: ...-->
 	<<if $arousal gte ($arousalmax / 5) * 4>>
 		shafts
 	<<elseif $arousal gte ($arousalmax / 5) * 3>>
@@ -629,9 +629,10 @@
 
 <<widget "actionsStroke">>
 	<<if _args.length lte 0>>
-		<<set $_message to "Missing parameters for <<actionsStroke>>">>
-		<<set $_source to "Called from: " + Utils.GetStack()>>
-		<<error $_message $_source>>
+		<<error {
+			message	: "Missing parameters for <<actionsStroke>>",
+			source	: "Called from: " + Utils.GetStack()
+		}>>
 	<</if>>
 	<<if $enemytype is "beast">>
 		You pat the <<beasttype>> on the head.
@@ -1395,7 +1396,7 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 						You <<voice "plead">>. "You're scarier... than Avery..."
 					<</if>>
 				<</if>>
-				
+
 			<<case "Great Hawk">>
 				<<set $speechnamedrop to 1>>
 				<<if $npc.includes("Great Hawk")>>
@@ -1516,7 +1517,7 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 				<</if>>
 
 			<<case "Sydney">>
-				<<NPCStatusCheck "Sydney">>
+				<<run statusCheck("Sydney")>>
 				<<set $speechnamedrop to 1>>
 				<<if $npc.includes("Sydney")>>
 					<<if _sydneyStatus.includes("corrupt")>>
@@ -1643,13 +1644,17 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 			<<default>>
 			<</switch>>
 		<<elseif $npc.includes("Robin")>>
-			You <<voice "plead">>. "N...not you, too..."
+			<<if $robinmist>>
+				You <<voice "plead">>. "Robin, please! You can fight it!"
+			<<else>>
+				You <<voice "plead">>. "N...not you, too..."
+			<</if>>
 		<<elseif $vaginastate is "imminent">>
 			<<if $player.virginity.vaginal is true>>
 				<<if $awarelevel gte 1>>
-			You <<voice "plead">>. "Please don't put it in, I'm a virgin!"
+					You <<voice "plead">>. "Please don't put it in, I'm a virgin!"
 				<<else>>
-			You <<voice "plead">>. "Please stop poking me there, that's my private place!"
+					You <<voice "plead">>. "Please stop poking me there, that's my private place!"
 				<</if>>
 			<<else>>
 				You <<voice "plead">>. "Please don't put it in!"
@@ -1778,13 +1783,13 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 <<checkforloveinterests>>
 <<if $npc.includes(_loveInterest) and random(0,100) lte 45>>
 	<<switch _loveInterest>>
-		<<case "Robin">> 
+		<<case "Robin">>
 			<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 70>>
 				You <<voice "moan">>. "You know just how to turn me on."
 			<<else>>
 				You <<voice "moan">>. "I'm gonna melt, you're making me so happy."
 			<</if>>
-		<<case "Sydney">> 
+		<<case "Sydney">>
 			<<if !_sydneyChastity>>
 				<<if _sydneyStatus.includes("corrupt")>>
 					You <<voice "moan">>. "You're the most delicious sin of all."
@@ -1794,30 +1799,36 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 			<<else>>
 				You <<voice "moan">>. "You make me so lustful."
 			<</if>>
-		<<case "Whitney">> 
+		<<case "Whitney">>
 			You <<voice "moan">>. "Use me, Whitney. I'm yours."
-		<<case "Black Wolf">> 
+		<<case "Black Wolf">>
 			<<if $wolfpackleader is 1>>
 				You <<voice "moan">>. "Good <<nnpc_gendery "Black Wolf">>. Keep going."
-			<<else>>
+			<<elseif $pregnancyspeechdisable is "f">>
 				You <<voice "moan">>. "Breed me, alpha!"
+			<<else>>
+				You <<voice "moan">>. "Fuck me, alpha!"
 			<</if>>
-		<<case "Great Hawk">> 
+		<<case "Great Hawk">>
 			You <<voice "moan">>. "You're not a terror. You're all I need."
-		<<case "Eden">> 
+		<<case "Eden">>
 			You <<voice "moan">>. "I belong to you, and you alone."
-		<<case "Avery">> 
+		<<case "Avery">>
 			You <<voice "moan">>. "You're worth more than any payout."
-		<<case "Alex">> 
+		<<case "Alex">>
 			You <<voice "moan">>. "I couldn't ask for a better partner."
-		<<case "Kylar">> 
+		<<case "Kylar">>
 			You <<voice "moan">>. "You're the only one I need, Kylar."
 	<</switch>>
 <<elseif $enemytype is "beast">>
 	<<if $vaginastate is "imminent">>
 		<<if $player.virginity.vaginal is true>>
 			<<if $awarelevel gte 1>>
-				You <<voice "moan">>. "You want to breed with me? But it's my first time."
+				<<if $pregnancyspeechdisable is "f">>
+					You <<voice "moan">>. "You want to breed with me? But it's my first time."
+				<<else>>
+					You <<voice "moan">>. "You want to fuck me? But it's my first time."
+				<</if>>
 			<<else>>
 				You <<voice "moan">>. "Why are you poking my pussy? Silly <<beasttype>>!"
 			<</if>>
@@ -1827,7 +1838,11 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 	<<elseif $penisstate is "imminent">>
 		<<if $player.virginity.penile is true>>
 			<<if $awarelevel gte 1>>
-				You <<voice "moan">>. "You want to breed with me? But it's my first time."
+				<<if $pregnancyspeechdisable is "f">>
+					You <<voice "moan">>. "You want to breed with me? But it's my first time."
+				<<else>>
+					You <<voice "moan">>. "You want to fuck me? But it's my first time."
+				<</if>>
 			<<else>>
 				You <<voice "moan">>. "Why are you poking my penis? Silly <<beasttype>>!"
 			<</if>>
@@ -1837,7 +1852,11 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 	<<elseif $penisstate is "otheranusimminent">>
 		<<if $player.virginity.penile is true>>
 			<<if $awarelevel gte 1>>
-				You <<voice "moan">>. "You want to breed with me? But it's my first time."
+				<<if $pregnancyspeechdisable is "f">>
+					You <<voice "moan">>. "You want to breed with me? But it's my first time."
+				<<else>>
+					You <<voice "moan">>. "You want to fuck me? But it's my first time."
+				<</if>>
 			<<else>>
 				You <<voice "moan">>. "Why are you poking my willy? Silly <<beasttype>>!"
 			<</if>>
@@ -1847,7 +1866,11 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 	<<elseif $anusstate is "imminent">>
 		<<if $player.virginity.anal is true>>
 			<<if $awarelevel gte 1>>
-				You <<voice "moan">>. "You want to breed with me? Please be gentle, that hole hasn't been used before."
+				<<if $pregnancyspeechdisable is "f">>
+					You <<voice "moan">>. "You want to breed with me? Please be gentle, that hole hasn't been used before."
+				<<else>>
+					You <<voice "moan">>. "You want to fuck me? Please be gentle, that hole hasn't been used before."
+				<</if>>
 			<<else>>
 				You <<voice "moan">>. "Why are you poking my bottom? Silly <<beasttype>>!"
 			<</if>>
@@ -1857,7 +1880,7 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 	<<elseif $vaginastate is "penetrated">>
 		<<if $arousal lte $arousalmax / 5>>
 			You <<voice "moan">>. "A <<beasttypes>> cock is inside me, mating with me."
-		<<elseif $arousal lte ($arousalmax / 5) * 4>>
+		<<elseif $arousal lte ($arousalmax / 5) * 4 and $pregnancyspeechdisable is "f">>
 			You <<voice "moan">>. "Good <<beasttype>>. B-breed me with your <<beasttype>> cock."
 		<<else>>
 			You <<voice "moan">>. "I-I'm gonna cum, from a <<beasttype>> f-fucking my pussy."
@@ -1998,10 +2021,12 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 		<<if $awarelevel gte 1>>
 			<<if $arousal lte $arousalmax / 5>>
 				You <<voice "moan">>. "Good <<beasttype>>. Please be gentle with me."
-			<<elseif $arousal lte ($arousalmax / 5) * 3>>
+			<<elseif $arousal lte ($arousalmax / 5) * 3 and $pregnancyspeechdisable is "f">>
 				You <<voice "moan">>. "You want to breed with me? I'm flattered."
-			<<else>>
+			<<elseif $pregnancyspeechdisable is "f">>
 				You <<voice "moan">>. "B-breed me. Make me your <<beasttype>> bitch."
+			<<else>>
+				You <<voice "moan">>. "F-fuck me. Make me your <<beasttype>> bitch."
 			<</if>>
 		<<else>>
 			<<if $arousal lte $arousalmax / 5>>
@@ -2431,7 +2456,7 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 				You <<voice "demand">>. "What do you want from me?!"
 			<</if>>
 		<<elseif $rng lte 30>>
-			<<if $robinmissing is 1>>
+			<<if $robinmissing isnot 0>>
 				You <<voice "demand">>. "What the fuck did you do to Robin?"
 			<<elseif $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 60>>
 				You <<voice "demand">>. "It's your fault Robin is hurt!"
@@ -2753,7 +2778,11 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 					<<if $arousal lte $arousalmax / 5>>
 						<<if $rng lte 35>>
 							<<if $awarelevel gte 1>>
-								You <<voice "demand">>. "Only the wolves can breed with me!"
+								<<if $pregnancyspeechdisable is "f">>
+									You <<voice "demand">>. "Only the wolves can breed with me!"
+								<<else>>
+									You <<voice "demand">>. "Only the wolves can fuck me!"
+								<</if>>
 							<<else>>
 								You <<voice "demand">>. "Leave me alone! I only cuddle with the wolves!"
 							<</if>>
@@ -2949,7 +2978,7 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 				<</if>>
 
 			<<case "Sydney">>
-				<<NPCStatusCheck "Sydney">>
+				<<run statusCheck("Sydney")>>
 				<<set $speechnamedrop to 1>>
 				<<if $npc.includes("Sydney")>>
 					<<if _sydneyStatus.includes("corrupt")>>
@@ -3077,7 +3106,11 @@ You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<
 		<</switch>>
 
 	<<elseif $npc.includes("Robin")>>
-		You <<voice "demand">>. "Robin, get a hold of yourself!"
+		<<if $robinmist>>
+			You <<voice "demand">>. "Robin, stop! This isn't like you!"
+		<<else>>
+			You <<voice "demand">>. "Robin, get a hold of yourself!"
+		<</if>>
 
 	<<elseif $vaginastate is "imminent">>
 		<<if $player.virginity.vaginal is true>>
@@ -4383,7 +4416,7 @@ _otheraction _youraction
 	<<set _npcB to (_n is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>>
 	/* State 1 is out of sync, state 2 is in sync */
 	<<set _dvp to ($NPCList[_npcA].penis isnot "vaginadouble" and $NPCList[_npcB].penis isnot "vaginadouble" ? 1 : 2)>>
-	
+
 	<<if $enemytype is "beast">> <!-- future proofing for beasts, text has not been updated -->
 		<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
 			<<if $arousal gte ($arousalmax / 5) * 4>>
@@ -4663,16 +4696,16 @@ You <<peniletext>> rub your <<penisSimple>> against <<their _args[0]>> labia.
 	<</if>>
 <<else>>
 	<<if $arousal gte ($arousalmax / 5) * 4>>
-	   <<if $player.penissize gte 2>>
+		<<if $player.penissize gte 2>>
 			<<set _hammering to either("hammering deep into", "pounding", "bottoming out in", "battering", "driving deep and hard into", "thrusting deep into", "slamming the bottom of")>>
 			<<set _youraction to "Driven by instinct, you _skillfully fasten the pace, your _penis _hammering _their pussy as you approach your peak.">>
-	   <<else>>
+		<<else>>
 			<<set _hammering to either("hammering hard into", "pounding", "battering", "pushed fully into", "thrusting fast and hard into")>>
 			<<set _youraction to "Driven by instinct, you _skillfully fasten the pace, your _penis _hammering _their pussy as you approach your peak.">>
-	   <</if>>
-   <<elseif $arousal gte ($arousalmax / 5) * 2>>
+		<</if>>
+	<<elseif $arousal gte ($arousalmax / 5) * 2>>
 		<<set _youraction to "You _skillfully thrust your _penis deep into _their pussy, in sync with _her movements.">>
-   <<else>>
+	<<else>>
 		<<set _youraction to "You _skillfully slide your _penis in and out of _their pussy, in sync with _her movements.">>
 	<</if>>
 <</if>>
@@ -5171,7 +5204,7 @@ You <<peniletext>> tease <<their _args[0]>> anus with your <<penis>>.
 		<<else>>
 			<<set _dap to 2>>
 		<</if>>
-	
+
 	<<if _dap is 2>>
 		/* Beasts are only encountered individually. This is futureproofing */
 		<<if $enemytype is "beast">>
@@ -5314,7 +5347,7 @@ You <<peniletext>> tease <<their _args[0]>> anus with your <<penis>>.
 	<<elseif $enemyanger lte 100>>
 		<span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's incessant probing before it can penetrate you.</span> It snarls in frustration.
 	<<else>>
-		<span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's savage probing before it can penetrate you.</span> It frenziedly tries to regain purchase, furious at its attempt to breed being impeded.
+		<span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's savage probing before it can penetrate you.</span> It frenziedly tries to regain purchase, furious at its attempt to <<if $pregnancyspeechdisable is "f">>breed<<else>>fuck<</if>> being impeded.
 	<</if>>
 <<else>>
 	<<if $pain lte 20>>
@@ -5410,7 +5443,7 @@ You <<peniletext>> tease <<their _args[0]>> anus with your <<penis>>.
 	<<elseif $enemyanger lte 100>>
 		<span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's incessant probing before it can penetrate you.</span> It snarls in frustration.
 	<<else>>
-		<span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's savage probing before it can penetrate you.</span> It frenziedly tries to regain purchase, furious at its attempt to breed being impeded.
+		<span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's savage probing before it can penetrate you.</span> It frenziedly tries to regain purchase, furious at its attempt to <<if $pregnancyspeechdisable is "f">>breed<<else>>fuck<</if>> being impeded.
 	<</if>>
 <<else>>
 	<<if $pain lte 20>>
@@ -5441,75 +5474,75 @@ You <<peniletext>> tease <<their _args[0]>> anus with your <<penis>>.
 
 <<widget "actionsconfront">>
 <<if $angel gte 6 and random(1, 2) is 2>>
-    <<set _rng to random(1, 3)>>
-    <<switch _rng>>
-        <<case 1>>
+	<<set _rng to random(1, 3)>>
+	<<switch _rng>>
+		<<case 1>>
 			"Please don't debase yourself," you say. "The angels are watching."
-        <<case 2>>
+		<<case 2>>
 			"I'll forgive you if you hurt me," you say. "But the demons won't."
-        <<case 3>>
+		<<case 3>>
 			You mumble a quiet prayer.
-    <</switch>>
+	<</switch>>
 <<elseif $fallenangel gte 2 and random(1, 2) is 2>>
-    <<set _rng to random(1, 3)>>
-    <<switch _rng>>
-        <<case 1>>
+	<<set _rng to random(1, 3)>>
+	<<switch _rng>>
+		<<case 1>>
 			"You're going to hurt me too," you laugh. "Aren't you?"
-        <<case 2>>
+		<<case 2>>
 			"D-don't touch me," you say. "Not now. Not again."
-        <<case 3>>
+		<<case 3>>
 			"D-don't hurt me," you say. "Please don't."
-    <</switch>>
+	<</switch>>
 <<elseif $demon gte 6 and random(1, 2) is 2>>
-    <<set _rng to random(1, 3)>>
-    <<switch _rng>>
-        <<case 1>>
+	<<set _rng to random(1, 3)>>
+	<<switch _rng>>
+		<<case 1>>
 			"Are you going to 'prey' on me?" you ask with a smirk. "Delicious."
-        <<case 2>>
+		<<case 2>>
 			"Couldn't keep your eyes off," you say. "Don't worry. I'm used to it."
-        <<case 3>>
+		<<case 3>>
 			"Try it," you say. "I'm hungry."
-    <</switch>>
+	<</switch>>
 <<elseif $wolfgirl gte 6 and random(1, 2) is 2>>
-    <<set _rng to random(1, 3)>>
-    <<switch _rng>>
-        <<case 1>>
+	<<set _rng to random(1, 3)>>
+	<<switch _rng>>
+		<<case 1>>
 			"Come closer," you say. "I dare you." You run your tongue over your exposed fangs.
-        <<case 2>>
+		<<case 2>>
 			You growl.
-        <<case 3>>
+		<<case 3>>
 			"I might be alone," you say. "But a lone wolf is still dangerous."
-    <</switch>>
+	<</switch>>
 <<elseif $cat gte 6 and random(1, 2) is 2>>
-    <<set _rng to random(1, 3)>>
-    <<switch _rng>>
-        <<case 1>>
+	<<set _rng to random(1, 3)>>
+	<<switch _rng>>
+		<<case 1>>
 			"I'm not helpless," you say. "Try me." You run your tongue over your exposed fangs.
-        <<case 2>>
+		<<case 2>>
 			You hiss.
-        <<case 3>>
+		<<case 3>>
 			"Come closer," you say. "I'm itching to use these claws."
-    <</switch>>
+	<</switch>>
 <<elseif $cow gte 6 and random(1, 2) is 2>>
-    <<set _rng to random(1, 3)>>
-    <<switch _rng>>
-        <<case 1>>
+	<<set _rng to random(1, 3)>>
+	<<switch _rng>>
+		<<case 1>>
 			"I'm not helpless," you say. "Keep away, or I'll charge you down."
-        <<case 2>>
+		<<case 2>>
 			"I know I'm a prize," you say. "But you'll be sorry if you try anything."
-        <<case 3>>
+		<<case 3>>
 			"Always after my milk," you tut. "But you haven't earned it."
-    <</switch>>
+	<</switch>>
 <<elseif $harpy gte 6 and random(1, 2) is 2>>
-    <<set _rng to random(1, 3)>>
-    <<switch _rng>>
-        <<case 1>>
+	<<set _rng to random(1, 3)>>
+	<<switch _rng>>
+		<<case 1>>
 			You screech.
-        <<case 2>>
+		<<case 2>>
 			"Don't try anything," you say. "My mate won't be happy, and I'll remember you."
-        <<case 3>>
+		<<case 3>>
 			"I'll peck you if you get too close," you say. "Don't think I won't."
-    <</switch>>
+	<</switch>>
 <<elseif $anxiety gte 1 and $controlled is 0>>
 	<<set _rng to random(1, 3)>>
 	<<switch _rng>>
@@ -5522,47 +5555,47 @@ You <<peniletext>> tease <<their _args[0]>> anus with your <<penis>>.
 	<</switch>>
 	<<gstress>><<stress 6>>
 <<else>>
-    <<set _rng to random(1, 5)>>
-    <<if $submissive gte 1150>>
-        <<switch _rng>>
-            <<case 1>>
+	<<set _rng to random(1, 5)>>
+	<<if $submissive gte 1150>>
+		<<switch _rng>>
+			<<case 1>>
 				"St-stay back," you say. "I-I can defend myself."
-            <<case 2>>
+			<<case 2>>
 				"Please don't come closer," you say.
-            <<case 3>>
+			<<case 3>>
 				"Don't hurt me," you say. "Please don't."
-            <<case 4>>
+			<<case 4>>
 				"You'll get in trouble if you touch me," you say.
-            <<case 5>>
+			<<case 5>>
 				"Don't try anything," you say. "P-people know I'm here."
-        <</switch>>
-    <<elseif $submissive lte 850>>
-        <<switch _rng>>
-            <<case 1>>
+		<</switch>>
+	<<elseif $submissive lte 850>>
+		<<switch _rng>>
+			<<case 1>>
 				"Stay the fuck away," you say. "Or I'll make you sorry."
-            <<case 2>>
+			<<case 2>>
 				"Touch me and I'll kick your ass," you say.
-            <<case 3>>
+			<<case 3>>
 				"What you looking at?" you ask.
-            <<case 4>>
+			<<case 4>>
 				"Keep walking," you say. "Or I'll break your face."
-            <<case 5>>
+			<<case 5>>
 				"Don't even think about it," you say. "I've dealt with worse scum than you."
-        <</switch>>
-    <<else>>
-        <<switch _rng>>
-            <<case 1>>
+		<</switch>>
+	<<else>>
+		<<switch _rng>>
+			<<case 1>>
 				"Keep your distance," you say. "Or you'll be sorry."
-            <<case 2>>
+			<<case 2>>
 				"Don't touch me," you say. "Or you'll be in trouble."
-            <<case 3>>
+			<<case 3>>
 				"Don't try anything," you say.
-            <<case 4>>
+			<<case 4>>
 				"I know how to look after myself," you say. "Don't you dare."
-            <<case 5>>
+			<<case 5>>
 				"Keep moving," you say. "I'm not defenceless."
-        <</switch>>
-    <</if>>
+		<</switch>>
+	<</if>>
 <</if>>
 <</widget>>
 
diff --git a/game/base-combat/actions-vagina.twee b/game/base-combat/actions-vagina.twee
index 0fd3dd2ca2f1807f8da9b04b3d73177c9f29ef5b..da559e1a2f1ef481950009636252c94a37d67c6f 100644
--- a/game/base-combat/actions-vagina.twee
+++ b/game/base-combat/actions-vagina.twee
@@ -167,9 +167,9 @@
 
 <<widget "actionsvaginaVaginaImminent">>
 <<if $consensual is 0 or ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>>
-   <<set _vaginaaction["Cooperate"] to "othervaginarub">>
+	<<set _vaginaaction["Cooperate"] to "othervaginarub">>
 <<else>>
-   <<set _vaginaaction["Rub"] to "othervaginarub">>
+	<<set _vaginaaction["Rub"] to "othervaginarub">>
 <</if>>
 	<<set _vaginaaction["Pull away"] to "tribescape">>
 <</widget>>
@@ -183,9 +183,9 @@
 
 <<widget "actionsvaginaMouthPenetrated">>
 <<if $consensual is 0 or ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>>
-   <<set _vaginaaction["Cooperate"] to "othermouthcooperate">>
+	<<set _vaginaaction["Cooperate"] to "othermouthcooperate">>
 <<else>>
-   <<set _vaginaaction["Hump"] to "othermouthcooperate">>
+	<<set _vaginaaction["Hump"] to "othermouthcooperate">>
 <</if>>
 <</widget>>
 
@@ -217,9 +217,9 @@
 
 <<widget "actionsvaginaVaginaEntrance">>
 <<if $consensual is 0 or ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>>
-   <<set _vaginaaction["Cooperate"] to "othervaginarub">>
+	<<set _vaginaaction["Cooperate"] to "othervaginarub">>
 <<else>>
-   <<set _vaginaaction["Rub"] to "othervaginarub">>
+	<<set _vaginaaction["Rub"] to "othervaginarub">>
 <</if>>
 <</widget>>
 
@@ -227,7 +227,7 @@
 <<actionsvaginapenisfucknew>>
 <<set _vaginaaction["Rub"] to "rub">>
 <<if ($consensual is 0 or ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $vaginalskill gte 800>>
-   <<set _vaginaaction["Edging"] to "penisEdging">>
+	<<set _vaginaaction["Edging"] to "penisEdging">>
 <</if>>
 <<set _vaginaaction["Pull away"] to "escape">>
 <</widget>>
@@ -235,12 +235,12 @@
 <<widget "actionsvaginaPenisPenetrated">>
 <<set _vaginaaction["Take it"] to "take">>
 <<if $consensual is 0 or ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>>
-   <<set _vaginaaction["Cooperate"] to "cooperate">>
+	<<set _vaginaaction["Cooperate"] to "cooperate">>
 <<else>>
-   <<set _vaginaaction["Fuck"] to "cooperate">>
+	<<set _vaginaaction["Fuck"] to "cooperate">>
 <</if>>
 <<if ($consensual is 0 or ($promiscuity gte 55 and $enemytype is "man") or ($deviancy gte 55 and $enemytype isnot "man")) and $vaginalskill gte 800>>
-   <<set _vaginaaction["Edging"] to "penisEdging">>
+	<<set _vaginaaction["Edging"] to "penisEdging">>
 <</if>>
 <<if $vaginaldoubledisable is "f" and _secondtarget is true and ($anususe is 0 or ($anususe isnot 0 and $anususe isnot "penisdouble")) and $awareness gte 300>>
 	<<if $npc.includes($NPCList[$vaginadoubletarget].fullDescription)>>
@@ -253,9 +253,9 @@
 
 <<widget "actionsvaginaVagina">>
 <<if $consensual is 0 or ($promiscuity lte 54 and $enemytype is "man" and !$promiscuityIgnore) or ($deviancy lte 54 and $enemytype isnot "man" and !$promiscuityIgnore)>>
-   <<set _vaginaaction["Cooperate"] to "tribcooperate">>
+	<<set _vaginaaction["Cooperate"] to "tribcooperate">>
 <<else>>
-   <<set _vaginaaction["Rub"] to "tribcooperate">>
+	<<set _vaginaaction["Rub"] to "tribcooperate">>
 <</if>>
 	<<set _vaginaaction["Take it"] to "tribtake">>
 	<<set _vaginaaction["Pull away"] to "tribescape">>
@@ -327,7 +327,7 @@
 <<if $vaginaaction is "vaginatopenis">>
 	<<personselect $vaginatarget>>
 	<<set $vaginaaction to 0>><<submission 10 $vaginatarget>><<vaginalskilluse>><<combatpromiscuity5>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("vaginal", $vaginatarget)>>
 		<<if $NPCList[$vaginatarget].penis is 0>>
 			<<submission 2 $vaginatarget>><<set $vaginause to "penis">><<set $NPCList[$vaginatarget].penis to "vaginaentrance">><<set $vaginastate to "entrance">><<set $vaginaactiondefault to "penistease">>
 			<<if $leftarm is "vagina">>
@@ -358,7 +358,7 @@
 <<if $vaginaaction is "vaginatovagina">>
 	<<personselect $vaginatarget>>
 	<<set $vaginaaction to 0>><<submission 5 $vaginatarget>><<vaginalskilluse>><<combatpromiscuity5>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("vaginal", $vaginatarget)>>
 		<<if $NPCList[$vaginatarget].vagina is 0>>
 			<<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaentrance">><<set $NPCList[$vaginatarget].vagina to "vaginaentrance">><<submission 5 $vaginatarget>><<set $vaginaactiondefault to "othervaginarub">>
 			<<if $leftarm is "vagina">>
@@ -382,7 +382,7 @@
 <<widget "effectsvaginatovaginafuck">>
 <<if $vaginaaction is "vaginatovaginafuck" and $NPCList[$vaginatarget].vagina.toString().includes("vagina")>>
 	<<set $vaginaaction to 0>><<submission 5 $vaginatarget>><<vaginalskilluse>><<combatpromiscuity5>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("vaginal", $vaginatarget)>>
 		<<submission 5 $vaginatarget>><<set $vaginause to "othervagina">><<set $vaginastate to "othervagina">><<set $NPCList[$vaginatarget].vagina to "vagina">><<set $vaginaactiondefault to "tribcooperate">>
 		<span class="blue">You press <<personselect $vaginatarget>><<combatperson>>'s pussy with your own.</span>
 	<<else>>
@@ -418,16 +418,16 @@
 			<<else>>
 				<<switch $NPCList[$vaginatarget].penissize>>
 					<<case 5>>
-						The sheer size forces all thought from your mind. <span class="red">Your hymen is obliterated, forever robbing you of your purity.</span>
+						The sheer size forces all thought from your mind. <span class="red">Your hymen is obliterated, <<virginitylosttext $NPCList[_n].fullDescription>></span>
 						<<violence 50 $vaginatarget>>
 					<<case 4>>
-						<span class="red">Your hymen is destroyed, forever robbing you of your purity.</span>
+						<span class="red">Your hymen is destroyed, <<virginitylosttext $NPCList[_n].fullDescription>></span>
 						<<violence 40 $vaginatarget>>
 					<<case 1>>
-						<span class="red">You feel your hymen tear despite its size, forever robbing you of your purity.</span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span>
+						<span class="red">You feel your hymen tear despite its size, <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span>
 						<<violence 20 $vaginatarget>>
 					<<default>>
-						<span class="red">You feel your hymen tear, forever robbing you of your purity.</span>
+						<span class="red">You feel your hymen tear, <<virginitylosttext $NPCList[_n].fullDescription>></span>
 						<<violence 30 $vaginatarget>>
 				<</switch>>
 			<</if>>
@@ -443,18 +443,18 @@
 <<widget "effectsvaginatopenisdouble">>
 <<if $vaginaaction is "vaginatopenisdouble" and $NPCList[$vaginadoubletarget].penis is 0>>
 	<<set $vaginaaction to 0>><<submission 10 $vaginatarget $vaginadoubletarget>><<vaginalskilluse>><<set $vaginaactiondefault to "vaginatopenisdouble">><<combatpromiscuity5>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
-		<<submission 2 $vaginatarget $vaginadoubletarget>><<set $vaginause to "penisdouble">><<set $NPCList[$vaginadoubletarget].penis to "vaginadoubleentrance">><<set $vaginastate to "doubleentrance">>
+	<<if combatSkillCheck("vaginal", $vaginadoubletarget)>>
+		<<submission 2 $vaginatarget $vaginadoubletarget>><<set $vaginause to "penisdouble">><<set $NPCList[$vaginadoubletarget].penis to "vaginaentrancedouble">><<set $vaginastate to "doubleentrance">>
 		<<if $NPCList[$vaginatarget].penis is "vaginaimminent">>
-			<<set $NPCList[$vaginatarget].penis to "vaginadoubleimminent">>
+			<<set $NPCList[$vaginatarget].penis to "vaginaimminentdouble">>
 			<<set $vaginastate to "doubleimminent">>
 		<<elseif $NPCList[$vaginatarget].penis is "vaginaentrance">>
-			<<set $NPCList[$vaginatarget].penis to "vaginadoubleentrance">>
+			<<set $NPCList[$vaginatarget].penis to "vaginaentrancedouble">>
 		<<else>>
 			<<set $NPCList[$vaginatarget].penis to "vaginadouble">>
 			<<set $vaginastate to "doublepenetrated">>
 		<</if>>
-		
+
 		<<if $leftarm is "vagina">>
 			<<set $leftarm to 0>>
 		<</if>>
@@ -520,13 +520,13 @@
 				<<else>>
 					<<switch _doublepenissize>>
 						<<case 5>>
-							The sheer size of their cocks forces all thought from your mind. <span class="red">Your hymen is obliterated, forever robbing you of your purity.</span>
+							The sheer size of their cocks forces all thought from your mind. <span class="red">Your hymen is obliterated, <<virginitylosttext $NPCList[_n].fullDescription>></span>
 							<<violence 50 $vaginatarget $vaginadoubletarget>>
 						<<case 4>>
-							<span class="red">Your hymen is destroyed by both cocks, forever robbing you of your purity.</span>
+							<span class="red">Your hymen is destroyed by both cocks, <<virginitylosttext $NPCList[_n].fullDescription>></span>
 							<<violence 40 $vaginatarget $vaginadoubletarget>>
 						<<default>>
-							<span class="red">You feel your hymen tear from both cocks, forever robbing you of your purity.</span>
+							<span class="red">You feel your hymen tear from both cocks, <<virginitylosttext $NPCList[_n].fullDescription>></span>
 							<<violence 30 $vaginatarget $vaginadoubletarget>>
 					<</switch>>
 				<</if>>
diff --git a/game/base-combat/actions.twee b/game/base-combat/actions.twee
index a5ea0f87a121128206bed766a65c218fda98ac93..91d5a508a9cebdea61e52bc153cafd289843563e 100644
--- a/game/base-combat/actions.twee
+++ b/game/base-combat/actions.twee
@@ -97,18 +97,18 @@
 <<if $debug is 1>>
 	__Debug__
 	<br>
-	Enemy Health: $enemyhealth -- Enemy Health Max: $enemyhealthmax 
+	Enemy Health: $enemyhealth -- Enemy Health Max: $enemyhealthmax
 	<br>
 	Enemy number: $enemyno -- Enemy max number: $enemynomax
 	<br><br>
 	<<for _i to 0; _i lt $enemynomax; _i++>>
 		#<<print _i>>: $NPCList[_i].fullDescription
-		<br> 
+		<br>
 		Head Location: $NPCList[_i].location.head -- Genitals Location: $NPCList[_i].location.genitals
 		<br>
 		Active: $NPCList[_i].active -- Stance: $NPCList[_i].stance -- Health: $NPCList[_i].health
 		<br>
-		Penis: $NPCList[_i].penis -- Vagina: $NPCList[_i].vagina -- Mouth: $NPCList[_i].mouth -- Anus: $NPCList[_i].anus 
+		Penis: $NPCList[_i].penis -- Vagina: $NPCList[_i].vagina -- Mouth: $NPCList[_i].mouth -- Anus: $NPCList[_i].anus
 		/* Note: Anus is literally not a real var for npcs yet. Don't think anything is wrong when you see it isn't printing a logical value. A rework is required first. */
 		<br>
 		Left Hand: $NPCList[_i].lefthand -- Right Hand: $NPCList[_i].righthand
diff --git a/game/base-combat/actionsGeneration.twee b/game/base-combat/actionsGeneration.twee
index 8d5e88d2439b38aa8f854f8adce32c1f5616bc9b..10c1dcffa5118b83a651c99a421948ecb8ae4d19 100644
--- a/game/base-combat/actionsGeneration.twee
+++ b/game/base-combat/actionsGeneration.twee
@@ -160,24 +160,26 @@
 <</widget>>
 
 <<widget "replaceAction">>
+<<set $_rape to ($actionDefaults || {}).rape || {}>>
+<<set $_consent to ($actionDefaults || {}).rape || {}>>
 <<switch _args[0]>>
 	<<case "Alternative">>
-		<<if $actionDefaults?.rape?.Alternative === undefined
-			|| $actionDefaults?.consensual?.Alternative === undefined>>
+		<<if $_rape.Alternative === undefined
+			|| $_consent.Alternative === undefined>>
 			<<setupDefaults>>
 		<</if>>
 		<<set $defaultsType to "Alternative">>
 		<<set $replaceAction to "Alternative">>
 	<<case "Submissive">>
-		<<if $actionDefaults?.rape?.Submissive === undefined
-			|| $actionDefaults?.consensual?.Submissive === undefined>>
+		<<if $_rape.Submissive === undefined
+			|| $_consent.Submissive === undefined>>
 			<<setupDefaults>>
 		<</if>>
 		<<set $defaultsType to "Submissive">>
 		<<set $replaceAction to "Submissive">>
 	<<case "Defiant">>
-		<<if $actionDefaults?.rape?.Defiant === undefined
-			|| $actionDefaults?.consensual?.Defiant === undefined>>
+		<<if $_rape.Defiant === undefined
+			|| $_consent.Defiant === undefined>>
 			<<setupDefaults>>
 		<</if>>
 		<<set $defaultsType to "Defiant">>
@@ -217,7 +219,7 @@
 /*After the list of actions is setup, as long as there is more than one provide it will continue on to setting up the defaults*/
 /*This will use the object setup in "base-system\attitudes.twee"*/
 
-/*To provide extra imformation to the player, widgets such as `<<leftactionDifficulty>> can be used to display extra*/
+/*To provide extra information to the player, widgets such as `<<leftactionDifficulty>> can be used to display extra*/
 /*information to the player such as "<<handdifficulty>>"" or "<<skulduggerydifficulty>><<combatcrime>>"*/
 /*This will use the previous "actionValue"*/
 
@@ -265,7 +267,7 @@
 	<</if>>
 <<case "penis">>
 	<<set _leftOptions to "penis">>
-	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "leftarm">><<set $lefttarget to _j>>Your left hand is <<if $NPCList[_j].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<combatpersons>> $NPCList[_j].penisdesc<<if $NPCList[_j].chastity.penis.includes("chastity")>> through <<his>> $NPCList[_j].chastity.penis<</if>>.</span>
+	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "leftarm">><<set $lefttarget to $index>>Your left hand is <<if $NPCList[_j].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<combatpersons>> $NPCList[_j].penisdesc<<if $NPCList[_j].chastity.penis.includes("chastity")>> through <<his>> $NPCList[_j].chastity.penis<</if>>.</span>
 <<case "grappled">>
 	<<if $orgasmdown gte 1>>
 		<<set _leftOptions to "bothBound">>
@@ -298,7 +300,7 @@
 	<</if>>
 <<case "othervagina">>
 	<<set _leftOptions to "pussy">>
-	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "leftarm">><<set $lefttarget to _j>>Your left hand is <<if $NPCList[_j].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[_j].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].chastity.vagina<</if>>.</span>
+	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "leftarm">><<set $lefttarget to $index>>Your left hand is <<if $NPCList[_j].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[_j].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].chastity.vagina<</if>>.</span>
 <<case "vagina">>
 	<<set _leftOptions to "coverVagina">>
 	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is protecting your <<pussy>>.</span>
@@ -360,13 +362,13 @@
 	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is <<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.vagina<</if>> with your $currentSexToyLeft.name.</span>
 <<case "dildoOtherPussyFuck">>
 	<<set _leftOptions to "dildoOtherPussyFuck">>
-	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "leftDildo">><<set $lefttarget to _j>>Your left hand fucks the <<combatpersons>> pussy with the $currentSexToyLeft.name.</span>
+	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "leftDildo">><<set $lefttarget to $index>>Your left hand fucks the <<combatpersons>> pussy with the $currentSexToyLeft.name.</span>
 <<case "dildoOtherAnusTease">>
 	<<set _leftOptions to "dildoOtherAnusTease">>
 	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is <<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> ass<<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.vagina<</if>> with your $currentSexToyLeft.name.</span>
 <<case "dildoOtherAnusFuck">>
 	<<set _leftOptions to "dildoOtherAnusFuck">>
-	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "leftDildoAnus">><<set $lefttarget to _j>>Your left hand fucks <<combatpersons>> ass with the $currentSexToyLeft.name.</span>
+	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "leftDildoAnus">><<set $lefttarget to $index>>Your left hand fucks <<combatpersons>> ass with the $currentSexToyLeft.name.</span>
 <<case "strokerOtherPenisTease">>
 	<<set _leftOptions to "strokerOtherPenisTease">>
 	<span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is <<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> <<npcPenisSimple $lefttarget>><<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.penis<</if>> with your $currentSexToyLeft.name.</span>
@@ -628,7 +630,7 @@
 	<</if>>
 <<case "penis">>
 	<<set _rightOptions to "penis">>
-	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "rightarm">><<set $righttarget to _j>>Your right hand is <<if $NPCList[_j].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<combatpersons>> $NPCList[_j].penisdesc<<if $NPCList[_j].chastity.penis.includes("chastity")>> through <<his>> $NPCList[_j].chastity.penis<</if>>.</span>
+	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "rightarm">><<set $righttarget to $index>>Your right hand is <<if $NPCList[_j].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<combatpersons>> $NPCList[_j].penisdesc<<if $NPCList[_j].chastity.penis.includes("chastity")>> through <<his>> $NPCList[_j].chastity.penis<</if>>.</span>
 <<case "grappled">>
 	<<if $orgasmdown gte 1>>
 		<<set _rightOptions to "bothBound">>
@@ -661,7 +663,7 @@
 	<</if>>
 <<case "othervagina">>
 	<<set _rightOptions to "pussy">>
-	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "rightarm">><<set $righttarget to _j>>Your right hand is <<if $NPCList[_j].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[_j].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].chastity.vagina<</if>>.</span>
+	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "rightarm">><<set $righttarget to $index>>Your right hand is <<if $NPCList[_j].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[_j].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].chastity.vagina<</if>>.</span>
 <<case "vagina">>
 	<<set _rightOptions to "coverVagina">>
 	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is protecting your <<pussy>>.</span>
@@ -723,13 +725,13 @@
 	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is <<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].chastity.vagina<</if>> with your $currentSexToyRight.name.</span>
 <<case "dildoOtherPussyFuck">>
 	<<set _rightOptions to "dildoOtherPussyFuck">>
-	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "rightDildo">><<set $righttarget to _j>>Your left hand fucks <<combatpersons>> pussy with the $currentSexToyRight.name.</span>
+	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "rightDildo">><<set $righttarget to $index>>Your left hand fucks <<combatpersons>> pussy with the $currentSexToyRight.name.</span>
 <<case "dildoOtherAnusTease">>
 	<<set _rightOptions to "dildoOtherAnusTease">>
 	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is <<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> ass<<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[_j].chastity.vagina<</if>> with your $currentSexToyRight.name.</span>
 <<case "dildoOtherAnusFuck">>
 	<<set _rightOptions to "dildoOtherAnusFuck">>
-	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "rightDildoAnus">><<set $righttarget to _j>>Your right hand fucks <<combatpersons>> ass with the $currentSexToyRight.name.</span>
+	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "rightDildoAnus">><<set $righttarget to $index>>Your right hand fucks <<combatpersons>> ass with the $currentSexToyRight.name.</span>
 <<case "strokerOtherPenisTease">>
 	<<set _rightOptions to "strokerOtherPenisTease">>
 	<span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is <<if $NPCList[$righttarget].chastity.penis.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> <<npcPenisSimple $righttarget>><<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.penis<</if>> with your $currentSexToyRight.name.</span>
@@ -916,7 +918,7 @@
 			<<set _rightaction["Drop your " + $currentSexToyRight.name] to "strokerDrop">>
 		<<case "dildoOtherPussyTease">>
 			<<if $NPCList[$righttarget].vagina is 0>>
-				/*<<set _rightaction["Tease " + $NPCList[$righttarget].pronouns.his + " pussy"] to "dildoOtherPussyTease">>*/ /* Kept incase someone 	wants to make this happen in the future. */
+				/*<<set _rightaction["Tease " + $NPCList[$righttarget].pronouns.his + " pussy"] to "dildoOtherPussyTease">>*/ /* Kept incase someone wants to make this happen in the future. */
 				<<set _rightaction["Fuck " + $NPCList[$righttarget].pronouns.his + " pussy with your "+$currentSexToyRight.name] to "dildoOtherPussyFuck">>
 			<</if>>
 			<<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDropRight">>
@@ -1001,10 +1003,10 @@
 		<</if>>
 	<<case "penis">>
 		<<set _feetOptions to "penis">>
-		<span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "feet">><<set $feettarget to _j>>Your feet are <<if $NPCList[_j].chastity.penis.includes("chastity")>>pressed against<<else>>holding<</if>> <<combatpersons>> <<npcPenis _j>>.</span>
+		<span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "feet">><<set $feettarget to $index>>Your feet are <<if $NPCList[_j].chastity.penis.includes("chastity")>>pressed against<<else>>holding<</if>> <<combatpersons>> <<npcPenis _j>>.</span>
 	<<case "othervagina">>
 		<<set _feetOptions to "othervagina">>
-		<span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "feet">><<set $feettarget to _j>>Your feet are <<if $NPCList[_j].chastity.vagina.includes("chastity")>>pressed against<<else>>holding back<</if>> <<combatpersons>> <<npcVagina _j>>.</span>
+		<span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "feet">><<set $feettarget to $index>>Your feet are <<if $NPCList[_j].chastity.vagina.includes("chastity")>>pressed against<<else>>holding back<</if>> <<combatpersons>> <<npcVagina _j>>.</span>
 	<<case "bound">>
 		<<if $possessed>>
 			Your legs thrash in their shackles, unbidden.
@@ -1115,6 +1117,9 @@
 <</widget>>
 
 <<widget "mouthActionInit">>
+<<if $robinRentEvent is 1 and ["pay","still"].includes($combatPhase)>>
+	<<set _mouthGold to true>>
+<</if>>
 <<if $orgasmdown gte 1>>
 	<<if $mouthuse is 0>>
 		<<set _mouthOptions to "orgasm">>
@@ -1177,20 +1182,20 @@
 			<<set $mouthtarget to _firsttarget>>
 		<</if>>
 	<<case "othervagina">>
-		<<set _mouthOptions to "othervagina">><<selectNpcWithPartInPosition "vagina" "mouth">><<set $mouthtarget to _j>>
+		<<set _mouthOptions to "othervagina">><<selectNpcWithPartInPosition "vagina" "mouth">><<set $mouthtarget to $index>>
 		<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<combatPerson>>'s pussy presses against your lips.</span>
 	<<case "kiss">>
 		<<set _mouthOptions to "kiss">>
 		<<switch $mouthstate>>
 			<<case "kissentrance">>
-				<<selectNpcWithPartInPosition "mouth" "kissentrance">><<set $mouthtarget to _j>>
+				<<selectNpcWithPartInPosition "mouth" "kissentrance">><<set $mouthtarget to $index>>
 				<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is about to be pressed by <<combatpersons>>.</span>
 				<<if $player.virginity.kiss is true>><span class="red">Your first kiss is about to be taken.</span><</if>>
 			<<case "kissimminent">>
-				<<selectNpcWithPartInPosition "mouth" "kissimminent">><<set $mouthtarget to _j>>
+				<<selectNpcWithPartInPosition "mouth" "kissimminent">><<set $mouthtarget to $index>>
 				<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is pressed by <<combatpersons>>.</span>
 			<<case "kiss">>
-				<<selectNpcWithPartInPosition "mouth" "kiss">><<set $mouthtarget to _j>>
+				<<selectNpcWithPartInPosition "mouth" "kiss">><<set $mouthtarget to $index>>
 				<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is engulfed by <<combatpersons>>.</span>
 		<</switch>>
 	<<case "facesit">>
@@ -1199,7 +1204,7 @@
 			<<set _mouthOptions to "facesit">><<selectNpcWithPartInPosition "vagina" "facesit">>
 		<<case "anal">>
 			<<set _mouthOptions to "otheranus">><<selectNpcWithPartInPosition "vagina" "facesitanal">>
-		<</switch>><<set $mouthtarget to _j>>
+		<</switch>><<set $mouthtarget to $index>>
 		<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<facesitFlavorText>></span>
 	<<case "gagged">>
 		<<set _mouthOptions to "gagged">>
@@ -1212,33 +1217,33 @@
 		<<switch $mouthstate>>
 		<<case "entrance">>
 			<<set _mouthOptions to "penisEntrance">>
-			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouthentrance">><<set $mouthtarget to _j>><<combatPerson>>'s <<npcPenis _j>> hovers in front of your mouth.</span>
+			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouthentrance">><<set $mouthtarget to $index>><<combatPerson>>'s <<npcPenis $index>> hovers in front of your mouth.</span>
 		<<case "imminent">>
 			<<set _mouthOptions to "penisImminent">>
-			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouthimminent">><<set $mouthtarget to _j>><<combatPerson>>'s <<npcPenis _j>> presses against your lips.</span>
+			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouthimminent">><<set $mouthtarget to $index>><<combatPerson>>'s <<npcPenis $index>> presses against your lips.</span>
 		<<case "penetrated">>
 			<<set _mouthOptions to "penisPenetrated">>
-			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouth">><<set $mouthtarget to _j>><<combatPerson>>'s <<npcPenis _j>> penetrates your mouth.</span>
+			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouth">><<set $mouthtarget to $index>><<combatPerson>>'s <<npcPenis $index>> penetrates your mouth.</span>
 		<<case "gagged">>
 			<<set _mouthOptions to "gagged">>
 			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is helplessly gagged.</span>
 		<<case "breasts">>
 			<<set _mouthOptions to "breasts">>
-			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<breastFlavorText>></span><<set $mouthtarget to _j>>
+			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<breastFlavorText>></span><<set $mouthtarget to $index>>
 		<<case "nipple">>
 			<<set _mouthOptions to "nipple">>
-			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<nippleFlavorText>></span><<set $mouthtarget to _j>>
+			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<nippleFlavorText>></span><<set $mouthtarget to $index>>
 		<<case "otheranus">>
-			<<set _mouthOptions to "otheranus">><<selectNpcWithPartInPosition "penis" "mouthotheranus">><<set $mouthtarget to _j>>
+			<<set _mouthOptions to "otheranus">><<selectNpcWithPartInPosition "penis" "mouthotheranus">><<set $mouthtarget to $index>>
 			<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<combatPerson>>'s ass presses against your lips.</span>
 		<<default>>
 			<<if $mouthuse is "righthand" or $mouthuse is "lefthand">>
 				<<set _mouthOptions to $mouthuse>>
 				<<if $mouthuse is "righthand">>
-					<<selectNpcWithPartInPosition "righthand" "mouth">>
+					<<selectNpcWithPartInPosition "hand" "mouth">>
 				<<else>>
 					<<selectNpcWithPartInPosition "lefthand" "mouth">>
-				<</if>><<set $mouthtarget to _j>>
+				<</if>><<set $mouthtarget to $index>>
 				<span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is blocked by <<combatpersons>> hand, muffling any noise you make.</span>
 			<<else>>
 				<<set _mouthOptions to "blocked">>
@@ -1362,8 +1367,10 @@
 			<<combatMouthOtherAnus>>
 		<<case "kiss">>
 			<<set _mouthaction["Kiss"] to "kissback">>
-			<<set _mouthaction["Pull away"] to "pullawaykiss">>
-			<<if $consensual isnot 1>>
+			<<if $head isnot "grappled" and $head isnot "bound">>
+				<<set _mouthaction["Pull away"] to "pullawaykiss">>
+			<</if>>
+			<<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtaget))>>
 				<<set _mouthaction["Headbutt"] to "headbutt">>
 			<</if>>
 			<<if $mouthstate isnot "kiss" and $mouthstate isnot "kissimminent">>
@@ -1380,10 +1387,10 @@
 			<<combatBreast>>
 		<<case "nipple">>
 			<<combatNipple>>
-		<<case "lefthand">>
-			<<set _mouthaction["Bite"] to "handbite">>
-		<<case "righthand">>
-			<<set _mouthaction["Bite"] to "handbite">>
+		<<case "lefthand" "righthand">>
+			<<if $fightTargets is undefined or $fightTargets.includes($mouthtaget)>>
+				<<set _mouthaction["Bite"] to "handbite">>
+			<</if>>
 		<<case "orgasm">>
 			<<set _mouthaction["Stifle"] to "stifleorgasm">>
 			<<set _mouthaction["Let it out"] to "letoutorgasm">>
@@ -1427,46 +1434,46 @@
 			<<set $penistarget to _firsttarget>>
 		<</if>>
 	<<case "othermouthentrance">>
-		<<set _penisOptions to "mouthEntrance">><<selectNpcWithPartInPosition "mouth" "penisentrance">><<set $penistarget to _j>>
+		<<set _penisOptions to "mouthEntrance">><<selectNpcWithPartInPosition "mouth" "penisentrance">><<set $penistarget to $index>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')">You feel breath on your <<penis>>.</span>
 	<<case "othermouthimminent">>
-		<<set _penisOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "penisimminent">><<set $penistarget to _j>>
+		<<set _penisOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "penisimminent">><<set $penistarget to $index>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>>'s lips press against the tip of your <<penis>>.</span>
 	<<case "othermouth">>
-		<<set _penisOptions to "mouthPenetration">><<selectNpcWithPartInPosition "mouth" "penis">><<set $penistarget to _j>>
+		<<set _penisOptions to "mouthPenetration">><<selectNpcWithPartInPosition "mouth" "penis">><<set $penistarget to $index>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>>'s mouth envelops your <<penis>>.</span>
 	<<case "entrance">>
 		<<set _penisOptions to "pussyEntrance">>
-		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "penisentrance">><<set $penistarget to _j>><<combatPerson>>'s <<npcVagina _j>> hovers near your <<penis>>.</span>
+		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "penisentrance">><<set $penistarget to $index>><<combatPerson>>'s <<npcVagina _j>> hovers near your <<penis>>.</span>
 	<<case "imminent">>
 		<<set _penisOptions to "pussyImminent">>
-		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "penisimminent">><<set $penistarget to _j>><<combatPerson>>'s <<npcVagina _j>> presses against your <<penis>>.</span>
+		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "penisimminent">><<set $penistarget to $index>><<combatPerson>>'s <<npcVagina _j>> presses against your <<penis>>.</span>
 	<<case "penetrated">>
-		<<set _penisOptions to "pussyPenetration">><<selectNpcWithPartInPosition "vagina" "penis">><<set $penistarget to _j>>
+		<<set _penisOptions to "pussyPenetration">><<selectNpcWithPartInPosition "vagina" "penis">><<set $penistarget to $index>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>>'s vagina envelops your <<penis>>.</span>
 	<<case "otheranusentrance">>
 		<<set _penisOptions to "anusEntrance">>
-		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusentrance">><<set $penistarget to _j>><<combatPerson>>'s <<npcAnus _j>> hovers near your <<penis>>.</span>
+		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusentrance">><<set $penistarget to $index>><<combatPerson>>'s <<npcAnus _j>> hovers near your <<penis>>.</span>
 	<<case "otheranusimminent">>
 		<<set _penisOptions to "anusImminent">>
-		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusimminent">><<set $penistarget to _j>><<combatPerson>>'s <<npcAnus _j>> presses against your <<penis>>.</span>
+		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusimminent">><<set $penistarget to $index>><<combatPerson>>'s <<npcAnus _j>> presses against your <<penis>>.</span>
 	<<case "otheranus">>
-		<<set _penisOptions to "anusPenetration">><<selectNpcWithPartInPositionAnus "otheranus">><<set $penistarget to _j>>
+		<<set _penisOptions to "anusPenetration">><<selectNpcWithPartInPositionAnus "otheranus">><<set $penistarget to $index>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>>'s ass envelops your <<penis>>.</span>
 	<<case "otherpenisentrance">>
 		<<set _penisOptions to "penisEntrance">>
-		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penisentrance">><<set $penistarget to _j>><<combatPerson>>'s <<npcPenisSimple $penistarget>> hovers near your <<penis>>.</span>
+		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penisentrance">><<set $penistarget to $index>><<combatPerson>>'s <<npcPenisSimple $penistarget>> hovers near your <<penis>>.</span>
 	<<case "otherpenisimminent">>
 		<<set _penisOptions to "penisImminent">>
-		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penisimminent">><<set $penistarget to _j>><<combatPerson>>'s <<npcPenisSimple $penistarget>> threatens your <<penis>>.</span>
+		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penisimminent">><<set $penistarget to $index>><<combatPerson>>'s <<npcPenisSimple $penistarget>> threatens your <<penis>>.</span>
 	<<case "otherpenis">>
 		<<set _penisOptions to "penisPenetration">>
-		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penis">><<set $penistarget to _j>><<combatPerson>>'s <<npcPenisSimple $penistarget>> presses against your <<penis>>.</span>
+		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penis">><<set $penistarget to $index>><<combatPerson>>'s <<npcPenisSimple $penistarget>> presses against your <<penis>>.</span>
 	<<case "otherhandentrance">>
-		<<set _penisOptions to "otherHandEntrance">><<selectNpcWithPartInPosition "hand" "penisentrance">><<set $penistarget to _j>>
+		<<set _penisOptions to "otherHandEntrance">><<selectNpcWithPartInPosition "hand" "penisentrance">><<set $penistarget to $index>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>>'s fingers brush against your shaft.</span>
 	<<case "otherhand">>
-		<<set _penisOptions to "otherHand">><<selectNpcWithPartInPosition "hand" "penis">><<set $penistarget to _j>>
+		<<set _penisOptions to "otherHand">><<selectNpcWithPartInPosition "hand" "penis">><<set $penistarget to $index>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>> holds your penis.</span>
 	<<case "strokerSelfPenis">>
 		<<set _penisOptions to "strokerSelfPenis">>
@@ -1477,7 +1484,7 @@
 		<</if>>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')">Your $_stroker envelops your <<penis>>.</span>
 	<<case "stroker">>
-		<<set _penisOptions to "strokerPenetration">><<selectNpcWithPartInPosition "hand" "penisstroker ">>
+		<<set _penisOptions to "strokerPenetration">><<selectNpcWithPartInPosition "hand" "penisstroker">>
 		<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>>'s stroker envelops your <<penis>>.</span>
 	<<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">>
 		<<set $_changetype to true>><<penisActionInitTentacle>>
@@ -1486,11 +1493,11 @@
 	<<default>>
 		<<switch $penisuse>>
 		<<case "clit">>
-			<<set _penisOptions to "penisAgainstClit">><<selectNpcWithPartInPosition "vagina" "frot">><<set $penistarget to _j>>
+			<<set _penisOptions to "penisAgainstClit">><<selectNpcWithPartInPosition "vagina" "frot">><<set $penistarget to $index>>
 			<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')">You press your <<penis>> against <<his>> <<if $enemytype is "beast">><<beasttype>> pussy<<else>>clit<</if>>.</span>
 		<<case "otheranusrub">>
 			<<set _penisOptions to "penisAgainstAss">>
-			<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusfrot">><<set $penistarget to _j>>You hold your <<penis>> between <<his>> ass cheeks<<if $NPCList[_j].chastity.anus.includes("shield")>>, teasing through <<his>> $NPCList[_j].chastity.anus<</if>>.</span>
+			<span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusfrot">><<set $penistarget to $index>>You hold your <<penis>> between <<his>> ass cheeks<<if $NPCList[_j].chastity.anus.includes("shield")>>, teasing through <<his>> $NPCList[_j].chastity.anus<</if>>.</span>
 		<</switch>>
 	<</switch>>
 	<<if $lastOptions.penis isnot _penisOptions>>
@@ -1645,17 +1652,17 @@
 			<<set $vaginatarget to _firsttarget>>
 		<</if>>
 	<<case "othermouthentrance">>
-		<<set _vaginaOptions to "mouthEntranch">><<selectNpcWithPartInPosition "mouth" "vaginaentrance">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "mouthEntranch">><<selectNpcWithPartInPosition "mouth" "vaginaentrance">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">You feel breath on your <<pussy>>.</span>
 	<<case "othermouthimminent">>
-		<<set _vaginaOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "vaginaimminent">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "vaginaimminent">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>>'s lips press against your labia.</span>
 	<<case "othermouth">>
-		<<set _vaginaOptions to "mouthPenetrated">><<selectNpcWithPartInPosition "mouth" "vagina">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "mouthPenetrated">><<selectNpcWithPartInPosition "mouth" "vagina">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>>'s tongue penetrates your <<pussy>>.</span>
 	<<case "entrance">>
 		<<set _vaginaOptions to "penisEntrance">>
-		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vaginaentrance">><<set $vaginatarget to _j>><<combatPerson>>'s <<npcPenis _j>> hovers near your <<pussy>>.</span>
+		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vaginaentrance">><<set $vaginatarget to $index>><<combatPerson>>'s <<npcPenis _j>> hovers near your <<pussy>>.</span>
 		<<if $vaginaldoubledisable is "f">>
 			<<getDoubleTargetList>>
 		<</if>>
@@ -1672,7 +1679,7 @@
 		<</if>>
 	<<case "imminent">>
 		<<set _vaginaOptions to "penisImminent">>
-		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vaginaimminent">><<set $vaginatarget to _j>><<combatPerson>>'s <<npcPenis _j>> presses against your <<pussy>>.</span>
+		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vaginaimminent">><<set $vaginatarget to $index>><<combatPerson>>'s <<npcPenis _j>> presses against your <<pussy>>.</span>
 		<<if $vaginaldoubledisable is "f">>
 			<<getDoubleTargetList>>
 		<</if>>
@@ -1689,7 +1696,7 @@
 		<</if>>
 	<<case "penetrated">>
 		<<set _vaginaOptions to "penisPenetrated">>
-		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vagina">><<set $vaginatarget to _j>><<combatPerson>>'s <<npcPenis _j>> penetrates your <<pussy>>.</span>
+		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vagina">><<set $vaginatarget to $index>><<combatPerson>>'s <<npcPenis _j>> penetrates your <<pussy>>.</span>
 		<<if $vaginaldoubledisable is "f">>
 			<<getDoubleTargetList>>
 		<</if>>
@@ -1705,21 +1712,21 @@
 			</span>
 		<</if>>
 	<<case "othervaginaentrance">>
-		<<set _vaginaOptions to "vaginaEntrance">><<selectNpcWithPartInPosition "vagina" "vaginaentrance">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "vaginaEntrance">><<selectNpcWithPartInPosition "vagina" "vaginaentrance">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>>'s pussy hovers near yours.</span>
 	<<case "othervaginaimminent">>
-		<<set _vaginaOptions to "vaginaImminent">><<selectNpcWithPartInPosition "vagina" "vaginaimminent">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "vaginaImminent">><<selectNpcWithPartInPosition "vagina" "vaginaimminent">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>>'s pussy threatens yours.</span>
 	<<case "othervagina">>
-		<<set _vaginaOptions to "vaginaPenetrated">><<selectNpcWithPartInPosition "vagina" "vagina">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "vaginaPenetrated">><<selectNpcWithPartInPosition "vagina" "vagina">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>>'s pussy presses against yours.</span>
 	<<case "doubleentrance">>
 		<<set _vaginaOptions to "penisDoubleEntrance">>
-		<<set $_npcA to ($NPCList[$vaginatarget].penis is "vaginadoubleentrance" ? $vaginatarget : $vaginadoubletarget)>>
-		<<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginadoubleentrance" ? $vaginadoubletarget : $vaginatarget)>>
-		<<if $NPCList[$vaginatarget].penis is "vaginadoubleentrance" and $NPCList[$vaginadoubletarget].penis is "vaginadoubleentrance">>
+		<<set $_npcA to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginatarget : $vaginadoubletarget)>>
+		<<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginadoubletarget : $vaginatarget)>>
+		<<if $NPCList[$vaginatarget].penis is "vaginaentrancedouble" and $NPCList[$vaginadoubletarget].penis is "vaginaentrancedouble">>
 			<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Their cocks hover near your <<pussy>>.</span>
-		<<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadoubleentrance") or ($NPCList[$vaginatarget].penis is "vaginadoubleentrance" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>>
+		<<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginaentrancedouble") or ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>>
 			<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">
 			<<personselect $_npcA>><<combatPerson>>'s <<npcPenisSimple $_npcA>> presses against your ?vulva while <<personselect $_npcB>><<combatperson>>'s <<npcPenisSimple $_npcB>> hovers nearby.
 			</span>
@@ -1728,11 +1735,11 @@
 		<</if>>
 	<<case "doubleimminent">>
 		<<set _vaginaOptions to "penisDoubleImminent">>
-		<<set $_npcA to ($NPCList[$vaginatarget].penis is "vaginadoubleimminent" ? $vaginatarget : $vaginadoubletarget)>>
-		<<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginadoubleimminent" ? $vaginadoubletarget : $vaginatarget)>>
-		<<if $NPCList[$vaginatarget].penis is "vaginadoubleimminent" and $NPCList[$vaginadoubletarget].penis is "vaginadoubleimminent">>
+		<<set $_npcA to ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" ? $vaginatarget : $vaginadoubletarget)>>
+		<<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" ? $vaginadoubletarget : $vaginatarget)>>
+		<<if $NPCList[$vaginatarget].penis is "vaginaimminentdouble" and $NPCList[$vaginadoubletarget].penis is "vaginaimminentdouble">>
 			<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Their cocks press against your <<pussy>>.</span>
-		<<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadoubleimminent") or ($NPCList[$vaginatarget].penis is "vaginadoubleimminent" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>>
+		<<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginaimminentdouble") or ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>>
 			<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">
 			<<personselect $_npcA>><<combatPerson>>'s <<npcPenisSimple $_npcA>> penetrates your vagina while <<personselect $_npcB>><<combatperson>>'s <<npcPenisSimple $_npcB>> presses against your ?vulva.
 			</span>
@@ -1747,7 +1754,7 @@
 		<<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginadouble" ? $vaginadoubletarget : $vaginatarget)>>
 		<<if $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">>
 			<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Their cocks penetrate your <<pussy>>.</span>
-		<<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadoubleimminent") or ($NPCList[$vaginatarget].penis is "vaginadoubleimminent" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>>
+		<<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginaimminentdouble") or ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>>
 			<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">
 			<<personselect $_npcA>><<combatPerson>>'s <<npcPenisSimple $_npcA>> penetrates your vagina while <<personselect $_npcB>><<combatperson>>'s <<npcPenisSimple $_npcB>> presses against your ?vulva.
 			</span>
@@ -1757,10 +1764,10 @@
 			</span>
 		<</if>>
 	<<case "otherhandentrance">>
-		<<set _vaginaOptions to "otherHandEntrance">><<selectNpcWithPartInPosition "hand" "vaginaentrance">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "otherHandEntrance">><<selectNpcWithPartInPosition "hand" "vaginaentrance">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>>'s fingers press against your ?vulva.</span>
 	<<case "otherhand">>
-		<<set _vaginaOptions to "otherHand">><<selectNpcWithPartInPosition "hand" "vaginaentrance">><<set $vaginatarget to _j>>
+		<<set _vaginaOptions to "otherHand">><<selectNpcWithPartInPosition "hand" "vaginaentrance">><<set $vaginatarget to $index>>
 		<span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>> fingers your pussy.</span>
 	<<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">>
 		<<set $_changetype to true>><<vaginaActionInitTentacle>>
@@ -1890,13 +1897,13 @@
 <<widget "anusActionInit">>
 <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>>
 	<<if $bottomuse is "mouth">>
-		<<set _anusOptions to "faceAgainstAnus">><<selectNpcWithPartInPosition "mouth" "bottom">><<set $anustarget to _j>>
+		<<set _anusOptions to "faceAgainstAnus">><<selectNpcWithPartInPosition "mouth" "bottom">><<set $anustarget to $index>>
 		<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You press your <<bottom>> against <<combatpersons>> face.</span>
 	<<elseif $bottomuse is "penis">>
-		<<set _anusOptions to "penisAgainstAnus">><<selectNpcWithPartInPosition "penis" "cheeks">><<set $anustarget to _j>>
+		<<set _anusOptions to "penisAgainstAnus">><<selectNpcWithPartInPosition "penis" "cheeks">><<set $anustarget to $index>>
 		<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You hold <<combatpersons>> <<npcPenis _j>> between your buttocks.</span>
 	<<elseif $bottomuse is "hand">>
-		<<set _anusOptions to "handAgainstAnus">><<selectNpcWithPartInPosition "hand" "bottom">><<set $anustarget to _j>>
+		<<set _anusOptions to "handAgainstAnus">><<selectNpcWithPartInPosition "hand" "bottom">><<set $anustarget to $index>>
 		<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You rub your clenched buttcheeks against <<combatpersons>> hand.</span>
 	<<else>>
 		<<switch $anusstate>>
@@ -1921,22 +1928,22 @@
 				<<set $anustarget to _firsttarget>>
 			<</if>>
 		<<case "othermouthentrance">>
-			<<set _anusOptions to "mouthEntrance">><<selectNpcWithPartInPosition "mouth" "anusentrance">><<set $anustarget to _j>>
+			<<set _anusOptions to "mouthEntrance">><<selectNpcWithPartInPosition "mouth" "anusentrance">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You feel breath on your <<bottom>>.</span>
 		<<case "othermouthimminent">>
-			<<set _anusOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "anusimminent">><<set $anustarget to _j>>
+			<<set _anusOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "anusimminent">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s lips press against your anus<<andButtPlug>>.</span>
 		<<case "othermouth">>
-			<<set _anusOptions to "mouthPenetration">><<selectNpcWithPartInPosition "mouth" "anus">><<set $anustarget to _j>>
+			<<set _anusOptions to "mouthPenetration">><<selectNpcWithPartInPosition "mouth" "anus">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s tongue penetrates your <<bottom>>.</span>
 		<<case "handentrance">>
-			<<set _anusOptions to "handEntrance">><<selectNpcWithPartInPosition "hand" "anusentrance">><<set $anustarget to _j>>
+			<<set _anusOptions to "handEntrance">><<selectNpcWithPartInPosition "hand" "anusentrance">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You feel <<combatperson>>'s hand on your <<bottom>>.</span>
 		<<case "hand">>
-			<<set _anusOptions to "handPenetration">><<selectNpcWithPartInPosition "hand" "anus">><<set $anustarget to _j>>
+			<<set _anusOptions to "handPenetration">><<selectNpcWithPartInPosition "hand" "anus">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s finger penetrates your <<bottom>>.</span>
 		<<case "entrance">>
-			<<set _anusOptions to "penisEntrance">><<selectNpcWithPartInPosition "penis" "anusentrance">><<set $anustarget to _j>>
+			<<set _anusOptions to "penisEntrance">><<selectNpcWithPartInPosition "penis" "anusentrance">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s <<npcPenis _j>> hovers near your <<bottom>><<andButtPlug>>.</span>
 			<<if $analdoubledisable is "f">>
 				<<getDoubleTargetList>>
@@ -1953,10 +1960,10 @@
 				</span>
 			<</if>>
 		<<case "imminent">>
-			<<set _anusOptions to "penisImminent">><<selectNpcWithPartInPosition "penis" "anusimminent">><<set $anustarget to _j>>
+			<<set _anusOptions to "penisImminent">><<selectNpcWithPartInPosition "penis" "anusimminent">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s <<npcPenis _j>> presses against your anus<<andButtPlug>>.</span>
 		<<case "penetrated">>
-			<<set _anusOptions to "penisPenetration">><<selectNpcWithPartInPosition "penis" "anus">><<set $anustarget to _j>>
+			<<set _anusOptions to "penisPenetration">><<selectNpcWithPartInPosition "penis" "anus">><<set $anustarget to $index>>
 			<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s <<npcPenisSimple _j>> penetrates your anus.</span>
 			<<if $analdoubledisable is "f">>
 				<<getDoubleTargetList>>
@@ -1974,9 +1981,9 @@
 			<</if>>
 		<<case "doubleentrance">>
 			<<set _anusOptions to "penisDoubleEntrance">>
-			<<if $NPCList[$anustarget].penis is "anusdoubleentrance" and $NPCList[$anusdoubletarget].penis is "anusdoubleentrance">>
+			<<if $NPCList[$anustarget].penis is "anusentrancedouble" and $NPCList[$anusdoubletarget].penis is "anusentrancedouble">>
 				<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Their cocks hover near your <<bottom>><<andButtPlug>>.</span>
-			<<elseif ($NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdoubleentrance") or ($NPCList[$anustarget].penis is "anusdoubleentrance" and $NPCList[$anusdoubletarget].penis is "anusdouble")>>
+			<<elseif ($NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusentrancedouble") or ($NPCList[$anustarget].penis is "anusentrancedouble" and $NPCList[$anusdoubletarget].penis is "anusdouble")>>
 				<<selectNpcWithPartInPosition "penis" "anusdouble">>
 				<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s <<npcPenisSimple _j>> penetrates your anus while the other penis hovers nearby.</span>
 			<<else>>
@@ -1984,9 +1991,9 @@
 			<</if>>
 		<<case "doubleimminent">>
 			<<set _anusOptions to "penisDoubleImminent">>
-			<<if $NPCList[$anustarget].penis is "anusdoubleimminent" and $NPCList[$anusdoubletarget].penis is "anusdoubleimminent">>
+			<<if $NPCList[$anustarget].penis is "anusimminentdouble" and $NPCList[$anusdoubletarget].penis is "anusimminentdouble">>
 				<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Their cocks press against your anus<<andButtPlug>>.</span>
-			<<elseif ($NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdoubleimminent") or ($NPCList[$anustarget].penis is "anusdoubleimminent" and $NPCList[$anusdoubletarget].penis is "anusdouble")>>
+			<<elseif ($NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusimminentdouble") or ($NPCList[$anustarget].penis is "anusimminentdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble")>>
 				<<selectNpcWithPartInPosition "penis" "anusdouble">>
 				<span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPerson>>'s <<npcPenisSimple _j>> penetrates your anus while the other penis presses against the entrance.</span>
 			<<else>>
@@ -2124,7 +2131,7 @@
 <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>>
 	<<switch $chestuse>>
 	<<case "penis">>
-		<<set _chestOptions to "penis">><<selectNpcWithPartInPosition "penis" "chest">><<set $chesttarget to _j>>
+		<<set _chestOptions to "penis">><<selectNpcWithPartInPosition "penis" "chest">><<set $chesttarget to $index>>
 		<span @class="($lastOptions.chest isnot _chestOptions ?'gold':'')"><<combatPerson>>'s <<npcPenisSimple _j>> rests <<print ($player.breastsize is 0 ?"against":"between")>> your <<breasts>>.</span>
 	<<case "tentaclerub">>
 		<<set $_changetype to true>><<chestActionInitTentacle>>
@@ -2186,10 +2193,10 @@
 	<<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>>
 		<<switch $thighuse>>
 		<<case "mouth">>
-			<<set _thighOptions to "mouth">><<selectNpcWithPartInPosition "mouth" "thigh">><<set $thightarget to _j>>
+			<<set _thighOptions to "mouth">><<selectNpcWithPartInPosition "mouth" "thigh">><<set $thightarget to $index>>
 			<span @class="($lastOptions.thigh isnot _thighOptions ?'gold':'')">You press your thigh against <<combatpersons>> mouth.</span>
 		<<case "penis">>
-			<<set _thighOptions to "penis">><<selectNpcWithPartInPosition "penis" "thighs">><<set $thightarget to _j>>
+			<<set _thighOptions to "penis">><<selectNpcWithPartInPosition "penis" "thighs">><<set $thightarget to $index>>
 			<span @class="($lastOptions.thigh isnot _thighOptions ?'gold':'')">You hold <<combatpersons>> penis between your thighs.</span>
 		<</switch>>
 
@@ -2277,7 +2284,7 @@
 				<<set _targetYourself to true>>
 			<</if>>
 			<<break>>
-		<<elseif $NPCList[_namecontroller].active is "active" and  $NPCList[_namecontroller].stance isnot "defeated">>
+		<<elseif $NPCList[_namecontroller].active is "active" and $NPCList[_namecontroller].stance isnot "defeated">>
 			<<if $NPCList[_namecontroller].description is "pale figure">>
 				<<set _smoltext to $NPCList[_namecontroller].description>>
 				<<set $_wraithbreak to true>>
@@ -2674,7 +2681,7 @@
 	<<set $rightaction to $rightactiondefault>>
 	<<set _textColor to combatListColor('rightaction', (Object.values(_rightaction).includes($rightaction) ? $rightaction : Object.values(_rightaction)[0]), "Self")>>
 	<<generateCombatActionOthers _rightaction "rightaction" _textColor $rightaction "Self">>
-	
+
 	<<if $combatControls.includes("ists")>>
 		<div id="rightactionDifficulty">
 			<<rightactionDifficulty>>
@@ -2837,7 +2844,7 @@
 <<set _feetaction to {}>>
 <<set _feetaction["Rest"] to "rest">>
 <<if Object.values(_targetlistarms).includes("swarm")>>
-	<<if $water is 1 and $vorecreature is 0 and $swimmingskill gt 700 and $consensual isnot 1>>
+	<<if $water is 1 and $vorecreature is 0 and currentSkillValue('swimmingskill') gt 700 and $consensual isnot 1>>
 		<<set _feetaction["Swim to safety"] to "swim">>
 	<</if>>
 <</if>>
@@ -2865,7 +2872,7 @@
 	<label>
 		<<print '<<radiobutton "$'+_args[1]+'" "'+_valueC+'" ' + (_valueC is _args[2] ? "checked" : "") + '>>'>>
 		<span @class="combatListColor('', _valueC, _args[3])"><<print _labelC>></span>
-        <<print '<<'+$args[1]+'Difficulty'+$args[3]+' "'+_valueC+'">>'>> |
+		<<print '<<'+$args[1]+'Difficulty'+$args[3]+' "'+_valueC+'">>'>> |
 	</label>
 <</for>>
 <</widget>>
diff --git a/game/base-combat/audience.twee b/game/base-combat/audience.twee
index 90f954a19fc63a6162c41049249e563b12a9fd37..d702d6af95132c10d8b0bcb45fb3a7263faed854 100644
--- a/game/base-combat/audience.twee
+++ b/game/base-combat/audience.twee
@@ -38,7 +38,11 @@
 				<<if $face is "covered">>
 					"You're fucking a <<beasttype>>, don't pretend you have any dignity."
 				<<else>>
-					"So glad I was here to see this <<bitch>> get bred."
+					<<if $pregnancyspeechdisable is "f">>
+						"So glad I was here to see this <<bitch>> get bred."
+					<<else>>
+						"So glad I was here to see this <<bitch>> get fucked."
+					<</if>>
 				<</if>>
 			<</if>>
 		<<else>>
@@ -68,7 +72,7 @@
 				<<if $face is "covered">>
 					"Move your hands, I want to see your expression when the <<beasttype>> fucks you."
 				<<else>>
-					"I want a picture of <<pher>> expression when it fucks <<pher>> proper."
+					"I want a picture of <<pher>> expression when it fucks <<phim>> proper."
 				<</if>>
 			<</if>>
 		<<else>>
@@ -688,7 +692,7 @@
 				<</if>>
 			<<else>>
 				<<if $rng gte 67>>
-					"Get his top off, I wanna see that fine young chest."
+					"Get his top off, I wanna see that fine chest."
 				<<elseif $rng gte 33>>
 					"I wish I could take a picture of what's under his top."
 				<<else>>
@@ -739,7 +743,7 @@
 				<</if>>
 			<<else>>
 				<<if $rng gte 67>>
-					"Get his top off, I wanna see that fine young chest."
+					"Get his top off, I wanna see that fine chest."
 				<<elseif $rng gte 33>>
 					"I wish I could take a picture of what's under his top."
 				<<else>>
@@ -907,7 +911,7 @@
 		<</if>>
 	<<elseif $anusstate is "othermouthimminent">>
 		<<if $orgasmdown gte 1>>
-			"What does little <<girl>> ass taste like?"
+			"What does <<pher>> cumming ass taste like?"
 		<<else>>
 			"How's <<pshe>> taste?"
 		<</if>>
@@ -949,7 +953,7 @@
 				<</if>>
 			<<else>>
 				<<if $rng gte 67>>
-					"<<pShes>> such a lewd little <<girl>>, <<pshe>> needs to be punished."
+					"<<pShes>> such a lewd <<girl>>, <<pshe>> needs to be punished."
 				<<elseif $rng gte 33>>
 					"Get <<pher>> clothes off while <<pshe>> spasms, I want a clear shot of <<pher>> ass."
 				<<else>>
@@ -998,7 +1002,11 @@
 	<<elseif $vaginastate is "imminent">>
 		<<if $enemytype is "beast">>
 			<<if $orgasmdown gte 1>>
-				"<<pHer>> <<bitch>> pussy is twitching and it's not even in yet. <<pShe>> can't wait to be bred."
+				<<if $pregnancyspeechdisable is "f">>
+					"<<pHer>> <<bitch>> pussy is twitching and it's not even in yet. <<pShe>> can't wait to be bred."
+				<<else>>
+					"<<pHer>> <<bitch>> pussy is twitching and it's not even in yet. <<pShe>> can't wait to be fucked."
+				<</if>>
 			<<else>>
 				"I hope I catch the moment <<pher>> pussy is first violated."
 			<</if>>
@@ -1257,7 +1265,7 @@
 				<<else>>
 					<<if $vaginause is "cover">>
 						<<if $rng gte 67>>
-							"Move your hand, I want to see your little pussy."
+							"Move your hand, I want to see your pussy."
 						<<elseif $rng gte 33>>
 							"Aww, <<pshes>> shy."
 						<<else>>
@@ -1428,7 +1436,7 @@
 			or ($NPCList[$vaginatarget].penis isnot "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble"))>>
 			<<if $orgasmdown gte 1>>
 				<<if $face is "covered">>
-					"<<pHer>> pussy is  cumming at the thought of double dicking!"
+					"<<pHer>> pussy is cumming at the thought of double dicking!"
 				<<else>>
 					"About to get double stuffed now, slut."
 				<</if>>
@@ -1550,7 +1558,7 @@
 				<<if $face is "covered">>
 					"Fuck <<phim>> harder!"
 				<<else>>
-					"Keep ravaging this <<girls>> ass, I want more pictures."
+					"Keep ravaging this <<girl>>'s ass, I want more pictures."
 				<</if>>
 			<</if>>
 		<</if>>
@@ -1964,18 +1972,18 @@
 
 <<if $face isnot "covered">>
 	<<if $exposed is 1>>
-		<<fameexhibitionism 1 pic>>
+		<<fameexhibitionism 1 "pic">>
 	<<elseif $exposed gte 2>>
-		<<fameexhibitionism 2 pic>>
+		<<fameexhibitionism 2 "pic">>
 	<</if>>
 	<<if $sexavoid is 0 or $rapeavoid is 0>>
 		<<if $consensual is 1>>
-			<<famesex 1 pic>>
+			<<famesex 1 "pic">>
 		<<else>>
-			<<famerape 1 pic>>
+			<<famerape 1 "pic">>
 		<</if>>
 		<<if $enemytype is "beast">>
-			<<famebestiality 1 pic>>
+			<<famebestiality 1 "pic">>
 		<</if>>
 	<</if>>
 <</if>>
diff --git a/game/base-combat/beast-generation.twee b/game/base-combat/beast-generation.twee
index 0e1b6bda477ca2c1b215432b5641d6fefae27bd9..d5a108ad26749a17e3ebbb2e6ad38b99a59bfbd9 100644
--- a/game/base-combat/beast-generation.twee
+++ b/game/base-combat/beast-generation.twee
@@ -127,7 +127,7 @@
 <!-- Set hallucination creatures to always be monsters. Shadow types could be .monster = "shadow" -->
 <<if $NPCList[_n].type is "creature" and !_tower_creature>>
 	<<set $NPCList[_n].monster to "monster">>
-<<elseif ($monsterchance gte $rng and ($hallucinations gte 1 or $monsterhallucinations is "f")) or (_beast_monster is "monster") or ($bestialitydisable is "t" and $NPCList[0].monster is "monster")>>
+<<elseif _beast_monster isnot "beast" and ($monsterchance gte $rng and ($hallucinations gte 1 or $monsterhallucinations is "f")) or (_beast_monster is "monster") or ($bestialitydisable is "t" and $NPCList[0].monster is "monster")>>
 	<<set $NPCList[_n].monster to "monster">>
 	<<if ["dog","pig","wolf","dolphin","boar","fox","hawk","cow"].includes($NPCList[_n].type)>> <!-- Remove claws from many monster types -->
 		<<run delete $NPCList[_n].claws>> <!-- It can't have claws - using undefined to maintain back compat with previous saves mid-combat ($claws) -->
diff --git a/game/base-combat/beast.twee b/game/base-combat/beast.twee
index a5c3c8bc15fdf3c1e3a2bfceb65825da68c66666..02d53188094c7ce36e80cb67004056bdf8afb355 100644
--- a/game/base-combat/beast.twee
+++ b/game/base-combat/beast.twee
@@ -224,10 +224,10 @@
 		<<set $rng to random(1, 100)>>
 		<<if $worn.under_lower.vagina_exposed is 1 and $worn.genitals.type.includes("chastity")>>
 			<<if $NPCList[_n].penissize gte 5>>
-				<<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your $worn.genitals.name, desperate to breed the <<pussy>> beneath. <<bHe>> <<beast_growls_text>> in pain, but <span class="pink">the device feels looser after each push.</span>
+				<<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your $worn.genitals.name, desperate to <<if $pregnancyspeechdisable is "f">>breed<<else>>fuck<</if>> the <<pussy>> beneath. <<bHe>> <<beast_growls_text>> in pain, but <span class="pink">the device feels looser after each push.</span>
 				<<sex 10>><<set $worn.genitals.integrity -= 240>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>>
 			<<else>>
-				<<bHe>> thrusts against your $worn.genitals.name, desperate to breed the <<pussy>> beneath. <<bHe>> hurts <<bhimself>> against the hard material and withdraws, <<beast_growling_text>>.
+				<<bHe>> thrusts against your $worn.genitals.name, desperate to <<if $pregnancyspeechdisable is "f">>breed<<else>>fuck<</if>> the <<pussy>> beneath. <<bHe>> hurts <<bhimself>> against the hard material and withdraws, <<beast_growling_text>>.
 				<<set $NPCList[_n].penis to 0>><<set $vaginause to 0>><<set $vaginastate to 0>><<sex 20>><<set $worn.genitals.integrity -= 40>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>>
 			<</if>>
 		<<elseif $worn.under_lower.vagina_exposed is 0>>
@@ -407,6 +407,9 @@
 				<<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.under_lower.name.
 				<<sex 5>><<set $worn.under_lower.integrity -= 10>>
 			<</if>>
+		<<elseif playerHasButtPlug() and $worn.under_lower.anus_exposed is 1>>
+			<<bHe>> thrusts against your $worn.butt_plug.name, desperate to violate your <<bottom>>. <<bHe>> withdraws, <<beast_growling_text>>.
+			<<set $NPCList[_n].penis to 0>><<set $anususe to 0>><<set $anusstate to 0>><<sex 20>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>>
 		<<elseif $worn.under_lower.anus_exposed is 1>>
 			<<if $anusWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 2) is 2>>
 				<<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your <<bottom>>. <<anus_lube_text>> <span class="pink">the tip presses into you, a thrust away from penetrating.</span>
@@ -789,7 +792,7 @@
 	<<elseif $worn.lower.vagina_exposed is 1>>
 		<<set $rng to random(1, 100)>>
 		<<if $worn.under_lower.vagina_exposed is 1 and $worn.genitals.type.includes("chastity")>>
-			<<bHe>> thrusts against your $worn.genitals.name, desperate to breed with the <<penis>> beneath. <<bHe>> hurts <<bhimself>> against the hard material and withdraws, <<beast_growling_text>>.
+			<<bHe>> thrusts against your $worn.genitals.name, desperate to <<if $pregnancyspeechdisable is "f">>breed<<else>>fuck<</if>> with the <<penis>> beneath. <<bHe>> hurts <<bhimself>> against the hard material and withdraws, <<beast_growling_text>>.
 			<<set $NPCList[_n].vagina to 0>><<set $penisuse to 0>><<set $penisstate to 0>><<sex 20>><<set $worn.genitals.integrity -= 10>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>>
 		<<elseif $worn.under_lower.vagina_exposed is 0>>
 			<<bHe>> rubs <<bhis>> pussy against your <<penis>> through your $worn.under_lower.name.
@@ -1250,6 +1253,11 @@
 	<</if>>
 <</if>>
 
+<<if $NPCList[_n].mouth is "bottom">>
+	<<bHe>> licks your <<bottom>><<if playerHasButtPlug()>> and prods your $worn.butt_plug with <<bhis>> tongue<</if>>.
+	<<neutral 5 _n>>
+<</if>>
+
 <<if $NPCList[_n].mouth is "anus">>
 	<<if $rng gte 101>>
 		<span class="purple"><<bHe>> retracts <<bhis>> tongue from your anus.</span>
@@ -1585,7 +1593,7 @@
 				<<sex 3>><<set $NPCList[_n].mouth to "vaginaentrance">><<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">><<set $vaginatarget to _n>>
 			<</if>>
 		<<elseif ($enemyanger + $rng) lte 100 and $position isnot "wall" and $analingusdisablereceiving is "f">>
-			<<bHe>> buries <<bhis>> wet tongue between your <<bottom>> cheeks, <span class="blue">and prods your <<if $worn.genitals.type.includes("chastity")>>$worn.genitals.name<<else>>opening<</if>>.</span>
+			<<bHe>> buries <<bhis>> wet tongue between your <<bottom>> cheeks, <span class="blue">and prods your <<if $worn.genitals.type.includes("chastity")>>$worn.genitals.name<<elseif playerHasButtPlug()>>$worn.butt_plug.name<<else>>opening<</if>>.</span>
 			<br>
 			<<sex 3>><<set $NPCList[_n].mouth to "anusentrance">><<set $anususe to "othermouth">><<set $anusstate to "othermouthentrance">><<set $anustarget to _n>>
 		<<elseif ($enemyanger + $rng) lte 125 and $position isnot "wall">>
diff --git a/game/base-combat/effects-disabled.twee b/game/base-combat/effects-disabled.twee
index 5cc66f7068152580b7115dc8ad1489bf065ea009..a9a0965b9131b20578248f1a0d5b6ab70f5691bd 100644
--- a/game/base-combat/effects-disabled.twee
+++ b/game/base-combat/effects-disabled.twee
@@ -347,7 +347,7 @@
 
 <<if $leftaction == "leftpoke" && $rightaction == "rightpoke">>
 	<<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftpoke">><<set $rightactiondefault to "rightpoke">>
-	You poke yourself. 
+	You poke yourself.
 	Is this real? <span class="green"> + Focus</span>
 	<<set $traumafocus += 2>>
 	<<set _br to true>>
diff --git a/game/base-combat/effects.twee b/game/base-combat/effects.twee
index e17902a97ffb2b8afb1437ab7df9c76feb874030..79e8be8b305ef47ec34b43cce73b7b8651f4e9b0 100644
--- a/game/base-combat/effects.twee
+++ b/game/base-combat/effects.twee
@@ -4,6 +4,14 @@
 <!-- "FOR" loops work by counting backward from highest numbered combatant to lowest e.g. 5 to 0. -->
 <!-- In case of train combat, count stops after 1, e.g. 5 to 5. -->
 <!-- Lots of further opportunity to reduce code using <<for>><</for>> loops with NPC objects NG 2.8-->
+/*
+* Switched all instances of skill checks, that simply repeat themselves with a different variable, for the JS function combatSkillCheck()
+* The function can be found at "game/03-JavaScript/ingame.js". It takes one required argument and three optional arguments.
+* Argument 0 is for the skill being used. For simplycity at writing, you only pass the important part of the skill, E.g. "hand", or "feet", or "oral".
+* Argument 1 (optional) is used for the target of that action. This is used to future-proof the possibility of using the target's specific arousal/trust/anger in calculation.
+* Argument 2 (optional) is the base difficulty used for the action. Most actions use 1000 base difficulty, which is the default if left blank, but some actions take different chances (like undressing).
+* Argument 3 (optional) is the extra multiplier for the arousal side. This is only used in undressing so far, but might as well add it as an option.
+*/
 
 /*ToDo: Pregnancy, remove to properly enable*/
 <<if $pregnancyTesting is undefined>>
@@ -121,7 +129,7 @@
 
 <<if $leftaction is "lefthandholdnew">>
 	<<set $leftaction to 0>><<set $leftactiondefault to "lefthandholdnew">>
-	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $handskill + ($rng * 10) gte (1000 + $enemyanger)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<set $NPCList[$lefttarget].righthand to "handhold">>
 		You take <<someones $lefttarget>> left hand in your own.
 		<<set $leftarm to "handheld">><<set $leftactiondefault to "lefthandholdkeep">>
@@ -156,7 +164,7 @@
 
 <<if $rightaction is "righthandholdnew">>
 	<<set $rightaction to 0>><<set $rightactiondefault to "righthandholdnew">>
-	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $handskill + ($rng * 10) gte (1000 + $enemyanger)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<set $NPCList[$righttarget].lefthand to "handhold">>
 		<<set $rightarm to "handheld">>
 		You take <<hisselect $righttarget>> right hand in your own.
@@ -191,7 +199,7 @@
 
 <<if $leftaction is "leftgrab">>
 	<<set $leftaction to 0>><<set $leftactiondefault to "leftgrab">><<handskilluse>><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 1 $lefttarget>><<handstat>>
 		<<if $NPCList[$lefttarget].penis is 0>>
 			<<set $leftactiondefault to "leftwork">><<set $NPCList[$lefttarget].penis to "leftarm">><<set $leftarm to "penis">>
@@ -206,7 +214,7 @@
 
 <<if $rightaction is "rightgrab">>
 	<<set $rightaction to 0>><<set $rightactiondefault to "rightgrab">><<handskilluse>><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 1 $righttarget>><<handstat>>
 		<<if $NPCList[$righttarget].penis is 0>>
 			<<set $NPCList[$righttarget].penis to "rightarm">><<set $rightarm to "penis">>
@@ -234,7 +242,7 @@
 
 <<if $leftaction is "leftwork">>
 	<<set $leftaction to 0>><<set $leftactiondefault to "leftwork">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 3 $lefttarget>><<actionsshaftrub $lefttarget>>
 	<<elseif $NPCList[$lefttarget].penis is "leftarm">>
 		<<set $leftactiondefault to "leftgrab">>
@@ -245,7 +253,7 @@
 
 <<if $rightaction is "rightwork">>
 	<<set $rightaction to 0>><<set $rightactiondefault to "rightwork">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 3 $righttarget>><<actionsshaftrub $righttarget>>
 	<<elseif $NPCList[$righttarget].penis is "rightarm">>
 		<<set $rightactiondefault to "rightgrab">>
@@ -698,7 +706,7 @@
 
 <<if $leftaction is "leftclit">>
 <<set $leftaction to 0>><<set $leftactiondefault to "leftclit">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<actionsclitstroke $lefttarget>><<submission 10 $lefttarget>><<set $speechhandjobvagina to 1>>
 	<<elseif $NPCList[$lefttarget].vagina is "leftarm">>
 		<<set $leftarm to 0>><<set $leftactiondefault to "leftplay">>
@@ -710,7 +718,7 @@
 
 <<if $rightaction is "rightclit">>
 	<<set $rightaction to 0>><<set $rightactiondefault to "rightclit">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<actionsclitstroke $righttarget>><<submission 10 $righttarget>><<set $speechhandjobvagina to 1>>
 	<<elseif $NPCList[$righttarget].vagina is "rightarm">>
 		<<set $rightarm to 0>><<set $rightactiondefault to "rightplay">>
@@ -734,7 +742,7 @@
 
 <<if $leftaction is "leftplay">>
 	<<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "leftplay">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 1 $lefttarget>><<handstat>>
 		<<if $NPCList[$lefttarget].vagina is 0>>
 			<<set $leftactiondefault to "leftclit">><<set $NPCList[$lefttarget].vagina to "leftarm">><<set $leftarm to "othervagina">><<personselect $lefttarget>>
@@ -749,7 +757,7 @@
 
 <<if $rightaction is "rightplay">>
 	<<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "rightplay">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 1 $righttarget>><<handstat>>
 		<<if $NPCList[$righttarget].vagina is 0>>
 			<<set $rightactiondefault to "rightclit">><<set $NPCList[$righttarget].vagina to "rightarm">><<set $rightarm to "othervagina">><<personselect $righttarget>>
@@ -1214,7 +1222,7 @@
 	<<handskilluse>><<combatpromiscuity2>><<brat 2 $righttarget>>
 	<<set $_npc to $NPCList[$righttarget]>><<set $_clothesTarget to $undressRightTarget>>
 	<<personselect $righttarget>>
-	<<if (700 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * $_npc.clothes[$_clothesTarget].integrity)>>
+	<<if combatSkillCheck("hand", $lefttarget, 700, $_npc.clothes[$_clothesTarget].integrity)>>
 		<!-- Using a switch to make it easier to add more NPC clothes types later -->
 		<<switch $_clothesTarget>>
 			<<case "upper">>
@@ -1246,7 +1254,7 @@
 	<<set $rightaction to 0>><<set $rightactiondefault to "rightUndressOther">><<handskilluse>><<combatpromiscuity2>><<brat 1 $righttarget>>
 	<<set $_npc to $NPCList[$righttarget]>><<set $_clothesTarget to $undressRightTarget>>
 	<<personselect $righttarget>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * $_npc.clothes[$_clothesTarget].integrity)>>
+	<<if combatSkillCheck("hand", $righttarget, 1000, $_npc.clothes[$_clothesTarget].integrity)>>
 		<!-- Using a switch to make it easier to add more NPC clothes types later -->
 		<<switch $_clothesTarget>>
 			<<case "upper">>
@@ -1278,7 +1286,7 @@
 	<<set $leftaction to 0>><<set $leftactiondefault to "leftUndressOther">><<handskilluse>><<combatpromiscuity2>><<brat 1 $lefttarget>>
 	<<set $_npc to $NPCList[$lefttarget]>><<set $_clothesTarget to $undressLeftTarget>>
 	<<personselect $lefttarget>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * $_npc.clothes[$_clothesTarget].integrity)>>
+	<<if combatSkillCheck("hand", $lefttarget, 1000, $_npc.clothes[$_clothesTarget].integrity)>>
 		<!-- Using a switch to make it easier to add more NPC clothes types later -->
 		<<switch $_clothesTarget>>
 			<<case "upper">>
@@ -1329,7 +1337,7 @@
 <<if $leftaction is "leftmasturbatepussy">>
 	<<set $leftaction to 0>><<set $leftactiondefault to "leftmasturbatepussy">><<combatpromiscuity3>>
 	<<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or $worn.lower.skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>>
-	
+
 	<<if $_genitals_exposed>>
 		<<if $arousal gt ($arousalmax/5)*4>>
 			You run your fingers over your exposed <<pussy>> and shiver in anticipation.
@@ -1356,7 +1364,7 @@
 <<if $rightaction is "rightmasturbatepussy">>
 	<<set $rightaction to 0>><<set $rightactiondefault to "rightmasturbatepussy">><<combatpromiscuity3>>
 	<<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or $worn.lower.skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>>
-	
+
 	<<if $_genitals_exposed>>
 		<<if $arousal gt ($arousalmax/5)*4>>
 			You run your fingers over your exposed <<pussy>> and shiver in anticipation.
@@ -1383,7 +1391,7 @@
 <<if $leftaction is "leftmasturbatepenis">>
 	<<set $leftaction to 0>><<set $leftactiondefault to "leftmasturbatepenis">><<combatpromiscuity3>>
 	<<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or $worn.lower.skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>>
-	
+
 	<<if $_genitals_exposed>>
 		<<if $arousal gt ($arousalmax/5)*4>>
 			You stroke your exposed <<penis>> and shiver in anticipation.
@@ -1410,7 +1418,7 @@
 <<if $rightaction is "rightmasturbatepenis">>
 	<<set $rightaction to 0>><<set $rightactiondefault to "rightmasturbatepenis">><<combatpromiscuity3>>
 	<<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or $worn.lower.skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>>
-	
+
 	<<if $_genitals_exposed>>
 		<<if $arousal gt ($arousalmax/5)*4>>
 			You stroke your exposed <<penis>> and shiver in anticipation.
@@ -1479,17 +1487,6 @@
 	<<submission 3>>
 <</if>>
 
-<<widget "useLube">>
-	<<set $_lube to $player.inventory.sextoys["lube"][0]>>
-	<<set $_lube.uses -= 1>>
-	<<run console.log("using lube? " + V.player.inventory.sextoys["lube"][0].name + " " + V.player.inventory.sextoys["lube"][0].uses)>>
-	<<if $_lube.uses lte 0>>
-		<<run V.player.inventory.sextoys["lube"].splice(0,1)>>
-		<<run console.log("used up all the lube")>>
-		You squeeze the last of the lube out of the bottle.
-	<</if>>
-<</widget>>
-
 /* Combat sex toys */
 
 <<if $leftaction is "dildoSelfPussyEntrance">>
@@ -1777,7 +1774,7 @@
 <<if $leftaction is "dildoOtherPussyFuck">>
 	/* Note: deliberately does not take virginities */
 	<<set $leftaction to 0>><<set $leftactiondefault to "dildoOtherPussyFuck">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 10 $lefttarget>><<set $speechdildovagina to 1>><<set $leftarm to "dildoOtherPussyFuck">><<set $NPCList[0].vagina to "leftDildo">>
 
 		You <<handtext>> fuck <<their $lefttarget>> pussy with your $currentSexToyLeft.name in your left hand.
@@ -1793,7 +1790,7 @@
 <<if $rightaction is "dildoOtherPussyFuck">>
 	/* Note: deliberately does not take virginities */
 	<<set $rightaction to 0>><<set $rightactiondefault to "dildoOtherPussyFuck">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 10 $righttarget>><<set $speechdildovagina to 1>><<set $rightarm to "dildoOtherPussyFuck">><<set $NPCList[0].vagina to "rightDildo">>
 
 		You <<handtext>> fuck <<their $righttarget>> pussy with your $currentSexToyRight.name in your right hand.
@@ -1820,7 +1817,7 @@
 
 <<if $leftaction is "dildoOtherPussyTease">>
 	<<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "dildoOtherPussyTease">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 1 $lefttarget>><<sextoystat>>
 		<<if $NPCList[$lefttarget].vagina is 0>>
 			<<set $leftactiondefault to "dildoOtherPussyFuck">><<set $leftarm to "dildoOtherPussyTease">><<personselect $lefttarget>>
@@ -1835,7 +1832,7 @@
 
 <<if $rightaction is "dildoOtherPussyTease">>
 	<<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "dildoOtherPussyTease">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 1 $righttarget>><<sextoystat>>
 		<<if $NPCList[$righttarget].vagina is 0>>
 			<<set $rightactiondefault to "dildoOtherPussyFuck">><<set $rightarm to "dildoOtherPussyTease">><<personselect $righttarget>>
@@ -1853,7 +1850,7 @@
 <<if $leftaction is "dildoOtherAnusFuck">>
 	/* Note: deliberately does not take virginities */
 	<<set $leftaction to 0>><<set $leftactiondefault to "dildoOtherAnusFuck">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 10 $lefttarget>><<set $speechdildoanus to 1>><<set $leftarm to "dildoOtherAnusFuck">>
 		<<if $NPCList[$lefttarget].vagina isnot "none">>
 			<<set $NPCList[$lefttarget].vagina to "leftDildoAnus">>
@@ -1880,7 +1877,7 @@
 <<if $rightaction is "dildoOtherAnusFuck">>
 	/* Note: deliberately does not take virginities */
 	<<set $rightaction to 0>><<set $rightactiondefault to "dildoOtherAnusFuck">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 10 $righttarget>><<set $speechdildoanus to 1>><<set $rightarm to "dildoOtherAnusFuck">>
 		<<if $NPCList[$righttarget].vagina isnot "none">>
 			<<set $NPCList[$righttarget].vagina to "rightDildoAnus">>
@@ -1931,7 +1928,7 @@
 
 <<if $leftaction is "dildoOtherAnusTease">>
 	<<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "dildoOtherAnusTease">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 1 $lefttarget>><<sextoystat>>
 		<<if $NPCList[$lefttarget].vagina is 0>>
 			<<set $leftactiondefault to "dildoOtherAnusFuck">><<set $NPCList[$lefttarget].vagina to "leftDildoAnus">><<set $leftarm to "dildoOtherAnusFuck">><<personselect $lefttarget>>
@@ -1949,7 +1946,7 @@
 
 <<if $rightaction is "dildoOtherAnusTease">>
 	<<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "dildoOtherAnusTease">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 1 $righttarget>><<sextoystat>>
 		<<if $NPCList[$righttarget].vagina is 0>>
 			<<set $rightactiondefault to "dildoOtherAnusFuck">><<set $NPCList[$righttarget].vagina to "rightDildoAnus">><<set $rightarm to "dildoOtherAnusFuck">><<personselect $righttarget>>
@@ -1969,7 +1966,7 @@
 
 <<if $leftaction is "strokerOtherPenisTease">>
 	<<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "strokerOtherPenisTease">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 1 $lefttarget>><<sextoystat>>
 		<<if $NPCList[$lefttarget].penis is 0>>
 			<<set $leftactiondefault to "strokerOtherPenisTease">><<set $NPCList[$lefttarget].penis to "leftStroker">><<set $leftarm to "strokerOtherPenisFuck">><<personselect $lefttarget>>
@@ -1984,7 +1981,7 @@
 
 <<if $rightaction is "strokerOtherPenisTease">>
 	<<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "strokerOtherPenisTease">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 1 $righttarget>><<sextoystat>>
 		<<if $NPCList[$righttarget].penis is 0>>
 			<<set $rightactiondefault to "strokerOtherPenisTease">><<set $NPCList[$righttarget].penis to "rightstroker">><<set $rightarm to "strokerOtherPenisFuck">><<personselect $righttarget>>
@@ -2001,7 +1998,7 @@
 <<if $leftaction is "strokerOtherPenisFuck">>
 	/* Note: deliberately does not take virginities */
 	<<set $leftaction to 0>><<set $leftactiondefault to "strokerOtherPenisFuck">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $lefttarget)>>
 		<<submission 10 $lefttarget>><<set $speechstroker to 1>><<set $leftarm to "strokerOtherPenisFuck">><<set $NPCList[$lefttarget].penis to "leftStroker">>
 
 		You <<handtext>> fuck <<their $lefttarget>> <<npcPenis $lefttarget>> with the $currentSexToyLeft.name in your left hand.
@@ -2017,7 +2014,7 @@
 <<if $rightaction is "strokerOtherPenisFuck">>
 	/* Note: deliberately does not take virginities */
 	<<set $rightaction to 0>><<set $rightactiondefault to "strokerOtherPenisFuck">><<handskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $handskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("hand", $righttarget)>>
 		<<submission 10 $righttarget>><<set $speechstroker to 1>><<set $rightarm to "strokerOtherPenisFuck">><<set $NPCList[$righttarget].penis to "rightstroker">>
 
 		You <<handtext>> fuck <<their $righttarget>> <<npcPenis $righttarget>> with the $currentSexToyRight.name in your right hand.
@@ -2119,7 +2116,7 @@
 
 <<if $feetaction is "grab">>
 	<<set $feetaction to 0>><<set $feetactiondefault to "grab">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $feetskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("feet", $feettarget)>>
 		<<submission 2 $feettarget>>
 		<<if $NPCList[$feettarget].penis is 0>>
 			<<set $feetactiondefault to "grabrub">><<set $NPCList[$feettarget].penis to "feet">><<set $feetuse to "penis">><<feetstat>><<feetskilluse>>
@@ -2169,7 +2166,7 @@
 
 <<if $feetaction is "grabrub">>
 	<<feetskilluse>><<set $feetactiondefault to "grabrub">><<set $feetaction to 0>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $feetskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("feet", $feettarget)>>
 		<<actionsgrabrub $feettarget>><<submission 2 $feettarget>>
 	<<elseif $NPCList[$feettarget].penis is "feet">>
 		<<set $feetactiondefault to "grab">><<personselect $feettarget>>
@@ -2182,7 +2179,7 @@
 
 <<if $feetaction is "vaginagrab">>
 	<<feetskilluse>><<set $feetaction to 0>><<set $feetactiondefault to "vaginagrab">><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $feetskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("feet", $feettarget)>>
 		<<submission 2 $feettarget>>
 		<<if $NPCList[$feettarget].vagina is 0>>
 			<<set $feetactiondefault to "vaginagrabrub">><<set $feetuse to "othervagina">><<set $NPCList[$feettarget].vagina to "feet">><<feetstat>><span class="lblue">You <<feettext>> press your feet against <<hisselect $feettarget>> pussy<<if $NPCList[$feettarget].chastity.vagina.includes("chastity")>> through <<hisselect $feettarget>> $NPCList[$feettarget].chastity.vagina<</if>>.</span>
@@ -2198,7 +2195,7 @@
 
 <<if $feetaction is "vaginagrabrub">>
 	<<set $feetaction to 0>><<feetskilluse>><<set $feetactiondefault to "vaginagrabrub">>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $feetskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("feet", $feettarget)>>
 		<<actionsfeetpussy $feettarget>><<submission 2 $feettarget>>
 	<<elseif $NPCList[$feettarget].vagina is "feet">>
 		<<set $feetactiondefault to "vaginagrab">><<personselect $feettarget>>
@@ -2432,7 +2429,7 @@
 				<<events_stalk_nnpc "Wraith">>
 			<<else>>
 				<br><br>
-				 <<events_stalk>>
+				<<events_stalk>>
 			<</if>>
 		<<else>>
 			<<switch $location>>
@@ -2574,7 +2571,7 @@
 
 <<if $mouthaction is "kisslips">>
 	<<set $mouthaction to 0>><<set $mouthactiondefault to "kisslips">><<personselect $mouthtarget>>
-	<<if (($enemyarousalmax / ($enemyarousal + 1)) * 100) + ($enemytrust * 10) + $handskill + ($rng * 10) gte (1000 + $enemyanger)>>
+	<<if combatSkillCheck("oral", $mouthtarget)>>
 		You move your lips close to <<hers>>.
 		<<set $mouthuse to "kiss">><<set $mouthstate to "kissentrance">>
 		<<set $NPCList[$mouthtarget].mouth to "kissentrance">>
@@ -2652,7 +2649,7 @@
 	<<if $penisbitten is 1>>
 		<<He>> smacks your head away from <<his>> penis.
 		<<violence 5>>
-	<<elseif (1000 - ($rng * 10) - ($enemytrust * 10) - $oralskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<elseif combatSkillCheck("oral", $mouthtarget)>>
 		<<set $mouthsubmit to 1>><<oralskilluse>>
 		<<if $NPCList[$mouthtarget].penis is 0>>
 			<<set $NPCList[$mouthtarget].penis to "mouthentrance">><<set $mouthactiondefault to "lick">><<set $mouthuse to "penis">><<set $mouthstate to "entrance">>
@@ -2700,7 +2697,7 @@
 	<<if $penisbitten is 1>>
 		<<He>> smacks your head away from <<his>> pussy.
 		<<violence 5>>
-	<<elseif (1000 - ($rng * 10) - ($enemytrust * 10) - $oralskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<elseif combatSkillCheck("oral", $mouthtarget)>>
 		<<oralskilluse>>
 		<<if $NPCList[$mouthtarget].vagina is 0>>
 			<span class="lblue">You <<oraltext>> move your mouth to <<hisselect $mouthtarget>> <<npcVagina $mouthtarget>><<if !$npcSub>> and <<he>> waits expectantly<</if>>.</span>
@@ -2731,7 +2728,7 @@
 		<</if>>
 		<<gwillpower>><<willpower 1>>
 	<<else>>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $oralskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<if combatSkillCheck("oral", $mouthtarget)>>
 			<<set $mouthstate to 0>><<set $mouthuse to 0>>
 			<<set $NPCList[$mouthtarget].chest to 0>>
 			<<set $NPCList[$mouthtarget].location.head to 0>>
@@ -2761,7 +2758,7 @@
 	<<if $breastbitten is 1>>
 		<<He>> smacks your head away from <<his>> chest.
 		<<violence 5>>
-	<<elseif (1000 - ($rng * 10) - ($enemytrust * 10) - $oralskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<elseif combatSkillCheck("oral", $mouthtarget)>>
 		<<if $NPCList[$mouthtarget].chest is 0>>
 			<<set $mouthactiondefault to "breastlick">>
 			<span class="lblue">You <<oraltext>> move your mouth to <<hisselect $mouthtarget>> $NPCList[$mouthtarget].breastsdesc.</span>
@@ -2848,7 +2845,7 @@
 	<<else>>
 		You scream for help.
 		<<if $loveInterest>>
-			<<if ($loveInterest.primary is "Eden" or $loveInterest.secondary is "Eden") and $location is "forest" and !($npc.includes("Eden"))>>
+			<<if ($loveInterest.primary is "Eden" or $loveInterest.secondary is "Eden") and $location is "forest" and !($npc.includes("Eden")) and (!$undergroundbrothel or !$undergroundbrothel.active)>>
 				<<if $rng lte 50>>
 					"Eden! Get them off of me!"
 				<<else>>
@@ -2887,7 +2884,10 @@
 			<<set $speechapologiseno to 1>>
 		<</if>>
 	<<else>>
-		<<if $robinRentEvent is 1 and $combatPhase is "Robin">>
+		<<if $robinmist>>
+			You shout. "I'm sorry I wasn't there for you!"
+			<<set $speechapologiseno to 1>>
+		<<elseif $robinRentEvent is 1 and $combatPhase is "Robin">>
 			You tell <<him>> you're sorry for not paying <<him>>.
 			<<set $speechapologiseno to 1>>
 		<<else>>
@@ -2945,7 +2945,7 @@
 		You desperately suck on the penis invading your mouth.
 		<<willpower 1>>
 	<<else>>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $oralskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<if combatSkillCheck("oral", $mouthtarget)>>
 			<<set $pullaway to 1>>
 			<<if $NPCList[$mouthtarget].penis is "mouth">>
 				<<set $NPCList[$mouthtarget].penis to "mouthimminent">><<set $mouthstate to "imminent">><span class="green"><<He>> doesn't stop you.</span>
@@ -2987,7 +2987,7 @@
 		<span class="red">However, you can't tear yourself from the sweet nectar.</span> You desperately lick the pussy pressing against your mouth.
 		<<willpower 1>>
 	<<else>>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $oralskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<if combatSkillCheck("oral", $mouthtarget)>>
 			<<set $mouthuse to 0>><<set $mouthstate to 0>><<set $pullaway to 1>>
 			<<set $NPCList[$mouthtarget].vagina to 0>><span class="green"><<He>> doesn't stop you.</span>
 			<<set $NPCList[$mouthtarget].location.genitals to 0>>
@@ -3029,7 +3029,7 @@
 <</if>>
 
 <<if $mouthaction is "vaginalick" and ($NPCList[$mouthtarget].vagina is "mouth" or $NPCList[$mouthtarget].vagina is "facesit")>>
-    <<set $mouthaction to 0>><<set $mouthactiondefault to "vaginalick">><<actionspussylick $mouthtarget>><<submission 10 $mouthtarget>><<oralskilluse>>
+	<<set $mouthaction to 0>><<set $mouthactiondefault to "vaginalick">><<actionspussylick $mouthtarget>><<submission 10 $mouthtarget>><<oralskilluse>>
 <</if>>
 
 <<if $mouthaction is "pullawaykiss" and $NPCList[$mouthtarget].mouth.toString().includes("kiss")>>
@@ -3047,7 +3047,7 @@
 		<</if>>
 		<<willpower 1>>
 	<<else>>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $oralskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<if combatSkillCheck("oral", $mouthtarget)>>
 			<<set $mouthuse to 0>><<set $mouthstate to 0>>
 			<<set $NPCList[$mouthtarget].mouth to 0>><span class="green"><<He>> doesn't stop you.</span>
 			<<set $NPCList[$mouthtarget].location.head to 0>>
@@ -3145,7 +3145,7 @@
 
 <<if $mouthaction is "grasp" and $NPCList[$mouthtarget].penis is "mouthentrance">>
 	<<set $mouthaction to 0>><<set $mouthactiondefault to "grasp">><<chestskilluse>><<combatpromiscuity3>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $chestskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("chest", $mouthtarget)>>
 		<<set $chestactiondefault to "rub">><<set $chestuse to "penis">><<cheststat>><<set $mouthstate to 0>><<set $mouthuse to 0>><<set $mouthactiondefault to "peniskiss">>
 		<<set $NPCList[$mouthtarget].penis to "chest">><<personselect $mouthtarget>><<set $chesttarget to $mouthtarget>>
 		<<if $breastcup is "none">>
@@ -3170,7 +3170,7 @@
 	<<else>>
 		<<set $mouthactiondefault to "rest">><<brat 10>>
 		You tell <<him>> you've had enough and want to stop.
-		<<if !$loveDrunk and $NPCList[0].type isnot "plant" and ((1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole)>>
+		<<if !$loveDrunk and $NPCList[0].type isnot "plant" and combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<set $finish to 1>>
 			<<if $trueconsensual isnot 1 and $gamemode is "soft">>
 				<<set $enemyhealth to -100>>
@@ -3189,7 +3189,7 @@
 				<<case "plant">>
 					<span class="red"><<He>> shakes <<his>> head happily.</span>
 				<<case "beast">>
-					Eager to breed, <span class="red"><<bhe>> ignores your desire.</span>
+					Eager to <<if $pregnancyspeechdisable is "f">>breed<<else>>fuck<</if>>, <span class="red"><<bhe>> ignores your desire.</span>
 				<<default>>
 					<span class="red"><<if $enemyno gte 2>>They refuse!<<else>><<He>> refuses!<</if>></span>
 			<</switch>>
@@ -3209,7 +3209,7 @@
 		<<else>>
 			You tell <<him>> you don't want anything penetrating your vagina.
 		<</if>>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<if combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<set $novaginal to 1>><span class="green">They nod in acknowledgement.</span>
 			<<if $vaginastate is "penetrated">>
 				<<set $vaginastate to "entrance">>
@@ -3241,7 +3241,7 @@
 		<<else>>
 			You tell <<him>> you don't want anything penetrating your anus.
 		<</if>>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<if combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<set $noanal to 1>><span class="green">They nod in acknowledgement.</span>
 			<<if $anusstate is "penetrated">>
 				<<set $anusstate to "entrance">>
@@ -3273,7 +3273,7 @@
 		<<else>>
 			You tell <<him>> you don't want your penis put inside anything.
 		<</if>>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<if combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<set $nopenile to 1>><span class="green">They nod in acknowledgement.</span>
 			<<if $penisstate is "penetrated">>
 				<<set $penisstate to "entrance">>
@@ -3319,7 +3319,7 @@
 
 		<<if $combatgoal is "strip">>
 			<span class="pink">"No," they laugh. "You'll look better without it."</span>
-		<<elseif (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<elseif combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<set $noupper to 1>><span class="green">They nod in acknowledgement.</span>
 			<<for _j = 0; _j lt $enemynomax; _j++>>
 				<<if $NPCList[_j].lefthand is "overupperclothes">>
@@ -3366,7 +3366,7 @@
 
 		<<if $combatgoal is "strip">>
 			<span class="pink">"No," they laugh. "You'll look better without it."</span>
-		<<elseif (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<elseif combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<set $noupper to 1>><span class="green">They nod in acknowledgement.</span>
 			<<for _j = 0; _j lt $enemynomax; _j++>>
 				<<if $NPCList[_j].lefthand is "mask">>
@@ -3397,7 +3397,7 @@
 	<<else>>
 		<<set $mouthactiondefault to "rest">><<brat 5>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>>
 		You tell <<him>> you don't want <<his>> hands around your neck.
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<if combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<set $nochoke to 1>><span class="green">They nod in acknowledgement.</span>
 			<<if $neckuse is "hand">>
 				<<unset $neckuse>>
@@ -3450,7 +3450,7 @@
 		<<set $mouthactiondefault to "rest">><<sub 2>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>>
 		<<set $condomAsk to true>>
 		You tell <<him>> you want to use condoms.
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<if combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<if $consensual is 0>>
 				<<set $condomUse to true>>
 				They pause a moment before responding,
@@ -3560,7 +3560,7 @@
 		<<set $mouthactiondefault to "rest">><<sub 2>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>>
 		<<set $condomAsk to true>>
 		You tell <<him>> you do not want to use condoms.
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+		<<if combatSkillCheck("seduction", $mouthtarget) or $gamemode is "soft" or $gloryhole>>
 			<<if $consensual is 0>>
 				They pause a moment before responding,
 				<<set _response to [
@@ -3659,7 +3659,7 @@
 	<<if $money gte $rentmoney>>
 		<<set $speechpay to 1>>
 		<<if $submissive gte 1150>>
-			"S-stop!" you shout. "I'll pay you so... j-just let Robin go."
+			"S-stop!" you shout. "I'll pay you, so... j-just let Robin go."
 		<<elseif $submissive lte 850>>
 			"I'll pay you," you say through gritted teeth. "So get your hands off <<nnpc_him "Robin">>."
 		<<else>>
@@ -3670,11 +3670,12 @@
 		<<if $submissive gte 1150>>
 			"S-stop!" you shout. "I don't have enough, b-but... just let <<nnpc_him "Robin">> go, please!"
 		<<elseif $submissive lte 850>>
-			"I'll don't have enough," you say through gritted teeth. "So get your hands off <<nnpc_him "Robin">>."
+			"I don't have enough," you say through gritted teeth. "So get your hands off <<nnpc_him "Robin">>."
 		<<else>>
 			"Let go of <<nnpc_him "Robin">>!" you shout. "I don't have your money. I can't pay."
 		<</if>>
 	<</if>>
+	<<control -10>><<lcontrol>>
 <</if>>
 
 <<if $mouthaction is "ask" and $askAction is "wearStrapon">>
@@ -3685,16 +3686,45 @@
 		<<brat 5>>
 		<<set $mouthactiondefault to "rest">>
 		You ask <<him>> to wear <<his>> strap-on.
-		<<if ($npc[$npcrow.indexOf(_n)] is "Eden"    and $NPCName[$NPCNameList.indexOf("Eden")].love lte 100)
-		  or ($npc[$npcrow.indexOf(_n)] is "Whitney" and $NPCName[$NPCNameList.indexOf("Whitney")].love lte 10)>>
+		<<if ($npc[$npcrow.indexOf(_n)] is "Eden" and $NPCName[$NPCNameList.indexOf("Eden")].love lte 100)
+		or ($npc[$npcrow.indexOf(_n)] is "Whitney" and $NPCName[$NPCNameList.indexOf("Whitney")].love lte 10)>>
 			<<print either("I'll do what I want, bitch.","Shut up slut, I'm in control here.")>>
 			<<violence 5>><<brat 2>>
 		<<else>>
-			<<set $_target to $mouthtarget>>
-			<<personselect $_target>>
+			<<personselect $mouthtarget>>
 			<<He>> nods and moves to don <<his>> strap-on.
-			<<npcstrapon $_target>>
-			<<set $NPCList[$_target].penis to "strap-on">>
+			<<npcstrapon $mouthtarget>>
+			<<set $NPCList[$mouthtarget].penis to "strap-on">>
+		<</if>>
+	<</if>>
+<</if>>
+
+<<if $mouthaction is "ask" and $askAction is "removeStrapon">>
+	<<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>>
+	<<if $neckuse is "hand" and $oxygen lt $oxygenmax and $asphyxiaLvl gte 2>>
+		<<wheeze "ask <<him>> to remove <<his>> strap-on">><<brat 1>>
+	<<else>>
+		<<brat 5>><<set $mouthactiondefault to "rest">>
+		You ask <<personselect $mouthtarget>><<combatperson>> to remove <<his>> strap-on.
+		<<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>>
+		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $seductionskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100) or $gamemode is "soft" or $gloryhole>>
+			<<He>> nods and removes <<his>> $NPCList[$mouthtarget].penisdesc.
+
+			/* Remove their strap-on. If they have a penis, give them back their penis. */
+			<<set $_npcname to $npc[$npcrow.indexOf($mouthtarget)]>>
+			<<set $_npctarget to $NPCName[$NPCNameList.indexOf($_npcname)]>>
+			<<if ["Robin","Kylar","Alex","Avery","Whitney","Eden","Sydney"].includes($_npcname) and $_npctarget.penis isnot "none">>
+				<<set $NPCList[$mouthtarget].penisdesc to $_npctarget.penisdesc>><<set $NPCList[$mouthtarget].penis to 0>>
+			<<else>>
+				<<set $NPCList[$mouthtarget].penis to "none">><<set $NPCList[$mouthtarget].vagina to 0>>
+			<</if>>
+			<<set $NPCList[$mouthtarget].strapon.state to "removed">>
+		<<else>>
+			<<if $consensual is 1>>
+				<<set $consensual to 0>>
+				<<molested>><<controlloss>>
+			<</if>>
+			They pause a moment before responding. <span class="red">"Stupid slut, you think you can tell me what to do?"</span>
 		<</if>>
 	<</if>>
 <</if>>
@@ -3828,7 +3858,7 @@
 
 <<if $vaginaaction is "penisthighs" and $NPCList[$vaginatarget].penis is "vaginaentrance">>
 	<<set $vaginaaction to 0>><<meek 1 $vaginatarget>><<thighskilluse>><<set $vaginaactiondefault to "penisthighs">><<combatpromiscuity4>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $thighskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("thigh", $vaginatarget)>>
 		<<set $thighactiondefault to "rub">>
 		<<personselect $vaginatarget>>
 		<span class="lblue">You <<thightext>> grab <<hisselect $vaginatarget>> $NPCList[$vaginatarget].penisdesc between your thighs.</span>
@@ -3871,7 +3901,7 @@
 		<<violence 2>><<hitstat>><<bruise bottom>>
 	<<else>>
 		<<set $vaginaaction to 0>><<meek 5 $vaginatarget>><<analskilluse>><<set $vaginaactiondefault to "penisanus">>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $analskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<if combatSkillCheck("anal", $vaginatarget)>>
 			<<personselect $vaginatarget>>
 			<span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> <<npcPenisSimple $vaginatarget>> in front of your butt.</span>
 			<<if $NPCList[$vaginatarget].type is "plant" and $NPCList[$vaginatarget].penissize gte 4>>
@@ -3888,7 +3918,7 @@
 <<set $rng to random(1, 100)>>
 <<if $vaginaaction is "penisanusdvp">>
 	<<if $anusstate isnot 0 and $anusstate is "entrance" or $anusstate is "imminent">>
-		<<if $analdoubledisable is "f" and  random(0,2) isnot 0 and $awareness gte 300>>
+		<<if $analdoubledisable is "f" and random(0,2) isnot 0 and $awareness gte 300>>
 			<<set $vaginaaction to "penisanusdouble">>
 		<<else>>
 			You give your <<bottom>> a little wiggle, but receive a slap.
@@ -3899,18 +3929,18 @@
 		<<violence 2>><<hitstat>><<bruise bottom>>
 	<<else>>
 		<<set $vaginaaction to 0>><<meek 5>><<analskilluse>><<set $vaginaactiondefault to "penisanusdvp">>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $analskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<set _npcA to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginatarget : $vaginadoubletarget)>>
+		<<set _npcB to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginadoubletarget : $vaginatarget)>>
 
-			<<set _npcA to ($NPCList[$vaginatarget].penis is "vaginadoubleentrance" ? $vaginatarget : $vaginadoubletarget)>>
-			<<set _npcB to ($NPCList[$vaginatarget].penis is "vaginadoubleentrance" ? $vaginadoubletarget : $vaginatarget)>>
+		<<if combatSkillCheck("anal", _npcA)>>
 
 			<<if $NPCList[_npcB].penis is "vaginadouble">>
 				<<set $NPCList[_npcB].penis to "vagina">>
 				<<set $vaginastate to "penetrated">>
-			<<elseif $NPCList[_npcB].penis is "vaginadoubleimminent">>
+			<<elseif $NPCList[_npcB].penis is "vaginaimminentdouble">>
 				<<set $NPCList[_npcB].penis to "vaginaimminent">>
 				<<set $vaginastate to "imminent">>
-			<<elseif $NPCList[_npcB].penis is "vaginadoubleentrance">>
+			<<elseif $NPCList[_npcB].penis is "vaginaentrancedouble">>
 				<<set $NPCList[_npcB].penis to "vaginaentrance">>
 				<<set $vaginastate to "entrance">>
 			<</if>>
@@ -3931,21 +3961,21 @@
 <<set $rng to random(1, 100)>>
 <<if $vaginaaction is "penisanusdouble">>
 	<<set $vaginaaction to 0>><<meek 5 $vaginatarget>><<analskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $analskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("anal", $vaginatarget)>>
 		<<personselect $vaginatarget>><<set $vaginaactiondefault to "rest">>
 		<span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> penis to join the phallus in front of your butt.</span>
 		<<submission 2 $vaginatarget>>
 		<<set $anususe to "penisdouble">><<set $anusstate to "doubleentrance">><<set $vaginause to 0>><<set $vaginastate to 0>>
-		<<set $NPCList[$vaginatarget].penis to "anusdoubleentrance">>
+		<<set $NPCList[$vaginatarget].penis to "anusentrancedouble">>
 		<<set $anusdoubletarget to $vaginatarget>>
 		<<if $NPCList[$anustarget].penis is "anus">>
 			<<set $NPCList[$anustarget].penis to "anusdouble">>
 			<<set $anusstate to "doublepenetrated">>
 		<<elseif $NPCList[$anustarget].penis is "anusimminent">>
-			<<set $NPCList[$anustarget].penis to "anusdoubleimminent">>
+			<<set $NPCList[$anustarget].penis to "anusimminentdouble">>
 			<<set $anusstate to "doubleimminent">>
 		<<elseif $NPCList[$anustarget].penis is "anusentrance">>
-			<<set $NPCList[$anustarget].penis to "anusdoubleentrance">>
+			<<set $NPCList[$anustarget].penis to "anusentrancedouble">>
 			<<set $anusstate to "doubleentrance">>
 		<<elseif $NPCList[$anustarget].penis is "cheeks">>
 			<<set $NPCList[$anustarget].penis to "anusentrance">>
@@ -4051,21 +4081,21 @@
 	<<set _npcA to $vaginatarget>>
 	<<set _npcB to $vaginadoubletarget>>
 
-	<<if $NPCList[_npcA].penis is "vaginadoubleimminent">>
-		<<set $NPCList[_npcA].penis to "vaginadoubleentrance">><<set $NPCList[_npcA].speechvaginaescape to 1>>
+	<<if $NPCList[_npcA].penis is "vaginaimminentdouble">>
+		<<set $NPCList[_npcA].penis to "vaginaentrancedouble">><<set $NPCList[_npcA].speechvaginaescape to 1>>
 
-	<<elseif $NPCList[_npcA].penis is "vaginadoubleentrance" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */
+	<<elseif $NPCList[_npcA].penis is "vaginaentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */
 		<<set _otherNPCindex to _npcB>><<set $NPCList[_npcA].location.genitals to 0>><<set $NPCList[_npcA].speechvaginaescape to 1>><<set $enemyanger += 15>>
 		<<set $NPCList[_npcA].penis to 0>>
 		<span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcA].fullDescription + "'s " + $NPCList[_npcA].penisdesc + ".">></span>
 	<</if>>
-	<<if $NPCList[_npcB].penis is "vaginadoubleimminent">>
-		<<set $NPCList[_npcB].penis to "vaginadoubleentrance">><<set $NPCList[_npcB].speechvaginaescape to 1>>
+	<<if $NPCList[_npcB].penis is "vaginaimminentdouble">>
+		<<set $NPCList[_npcB].penis to "vaginaentrancedouble">><<set $NPCList[_npcB].speechvaginaescape to 1>>
 
-	<<elseif $NPCList[_npcB].penis is "vaginadoubleentrance" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular vaginal */
+	<<elseif $NPCList[_npcB].penis is "vaginaentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular vaginal */
 		<<set _otherNPCindex to _npcA>><<set $NPCList[_npcB].location.genitals to 0>><<set $NPCList[_npcB].speechanusescape to 1>><<set $enemyanger += 15>>
 		<<set $NPCList[_npcB].penis to 0>>
-		<span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") +  $NPCList[_npcB].fullDescription + "'s " + $NPCList[_npcB].penisdesc + ".">></span>
+		<span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcB].fullDescription + "'s " + $NPCList[_npcB].penisdesc + ".">></span>
 	<</if>>
 
 	<<if _otherNPCindex isnot "f" and $NPCList[_otherNPCindex].penis isnot 0 and $NPCList[_otherNPCindex].penis.includes("double")>>
@@ -4074,10 +4104,10 @@
 			<<case "vaginadouble">>
 				<<set $NPCList[_otherNPCindex].penis to "vagina">>
 				<<set $vaginastate to "penetrated">>
-			<<case "vaginadoubleentrance">>
+			<<case "vaginaentrancedouble">>
 				<<set $NPCList[_otherNPCindex].penis to "vaginaentrance">>
 				<<set $vaginastate to "entrance">>
-			<<case "vaginadoubleimminent">>
+			<<case "vaginaimminentdouble">>
 				<<set $NPCList[_otherNPCindex].penis to "vaginaimminent">>
 				<<set $vaginastate to "imminent">>
 		<</switch>>
@@ -4086,7 +4116,7 @@
 
 <<if $vaginaaction is "thighbay" and $NPCList[$vaginatarget].mouth is "vaginaentrance">>
 	<<set $vaginaaction to 0>><<meek 1 $vaginatarget>><<thighskilluse>><<set $vaginaactiondefault to "thighbay">><<combatpromiscuity1>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $thighskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("thigh", $vaginatarget)>>
 		<<set $thighactiondefault to "othermouthrub">>
 		<<personselect $vaginatarget>>
 		<span class="lblue">You <<thightext>> press your thigh against <<hisselect $vaginatarget>> mouth.</span>
@@ -4140,7 +4170,7 @@
 
 <<if $anusaction is "penischeeks" and $NPCList[$anustarget].penis is "anusentrance">>
 	<<set $anusaction to 0>><<meek 1 $anustarget>><<bottomskilluse>><<set $anusactiondefault to "penischeeks">><<combatpromiscuity4>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $bottomskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("bottom", $anustarget)>>
 		<<set $cheekactiondefault to "rub">>
 		<<personselect $anustarget>>
 		<<set $NPCList[$anustarget].penis to "cheeks">><<bottomstat>><<submission 2 $anustarget>><<set $bottomuse to "penis">><<set $anususe to "penis">><<set $anusstate to "cheeks">>
@@ -4166,7 +4196,7 @@
 		<<violence 2>><<hitstat>><<bruise bottom>>
 	<<elseif $NPCList[$anustarget].penis is "anusentrance">>
 		<<set $anusaction to 0>><<meek 10 $anustarget>><<analskilluse>><<set $anusactiondefault to "penispussy">>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<if combatSkillCheck("vaginal", $anustarget)>>
 			<<personselect $anustarget>>
 			<<submission 2 $anustarget>><<set $vaginause to "penis">><<set $NPCList[$anustarget].penis to "vaginaentrance">><<set $anususe to 0>><<set $vaginastate to "entrance">><<set $anusstate to 0>><<set $vaginatarget to $anustarget>><<set $anustarget to 0>>
 			<span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your butt.</span>
@@ -4190,21 +4220,12 @@
 		<<violence 2>><<hitstat>><<bruise bottom>>
 	<<else>>
 		<<set $anusaction to 0>><<meek 10 $anustarget>><<analskilluse>><<set $anusactiondefault to "penispussy">>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
-
-			<<set _npcA to ($NPCList[$anustarget].penis is "anusdoubleentrance" ? $anustarget : $anusdoubletarget)>>
-			<<set _npcB to ($NPCList[$anustarget].penis is "anusdoubleentrance" ? $anusdoubletarget : $anustarget)>>
-
-			<<if $NPCList[_npcB].penis is "anusdouble">>
-				<<set $NPCList[_npcB].penis to "anus">>
-				<<set $anusstate to "penetrated">>
-			<<elseif $NPCList[_npcB].penis is "anusdoubleimminent">>
-				<<set $NPCList[_npcB].penis to "anusimminent">>
-				<<set $anusstate to "imminent">>
-			<<elseif $NPCList[_npcB].penis is "anusdoubleentrance">>
-				<<set $NPCList[_npcB].penis to "anusentrance">>
-				<<set $anusstate to "entrance">>
-			<</if>>
+		<<set _npcA to ($NPCList[$anustarget].penis is "anusentrancedouble" ? $anustarget : $anusdoubletarget)>>
+		<<set _npcB to ($NPCList[$anustarget].penis is "anusentrancedouble" ? $anusdoubletarget : $anustarget)>>
+
+		<<if combatSkillCheck("vaginal", _npcA)>>
+			<<set $NPCList[_npcB].penis to $NPCList[_npcB].penis.replace("double", "")>>
+			<<set $anusstate to $anusstate.replace("double", "")>>
 			<<personselect _npcA>>
 
 			<<submission 2 _npcA>><<set $vaginause to "penis">><<set $NPCList[_npcA].penis to "vaginaentrance">><<set $anususe to "penis">><<set $vaginastate to "entrance">><<set $vaginatarget to _npcA>>
@@ -4218,34 +4239,16 @@
 <<set $rng to random(1, 100)>>
 <<if $anusaction is "penispussydouble">>
 	<<set $anusaction to 0>><<meek 10>><<analskilluse>><<set $anusactiondefault to "penispussydouble">>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
-		<<for _j = 0; _j lt $enemyno; _j++>>
-			<<if $NPCList[_j].penis is "anusentrance">>
-				<<personselect _j>>
-				<<submission 2>><<set $vaginause to "penisdouble">><<set $NPCList[_j].penis to "vaginadoubleentrance">><<set $anususe to 0>><<set $vaginastate to "doubleentrance">><<set $anusstate to 0>>
-				<span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your butt to join the phallus in front of your pussy.</span>
+	<<if combatSkillCheck("vaginal", $anustarget)>>
+		<<selectNpcWithPartInPosition "penis" "anusentrance">>
+		<<personselect _j>>
+		<<submission 2 _j>><<set $vaginause to "penisdouble">><<set $NPCList[_j].penis to "vaginaentrancedouble">><<set $anususe to 0>><<set $vaginastate to "double" + $vaginastate>><<set $anusstate to 0>>
+		<span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your butt to join the phallus in front of your pussy.</span>
 
-				<<set $vaginatarget to _n>>
-				<<set $vaginadoubletarget to "f">>
-				<<for _k = 0; _k lt $enemyno; _k++>>
-					<<if $NPCList[_k].penis is "vagina">>
-						<<set $NPCList[_k].penis to "vaginadouble">>
-						<<set $vaginadoubletarget to _k>>
-						<<break>>
-					<<elseif $NPCList[_k].penis is "vaginaimminent">>
-						<<set $NPCList[_k].penis to "vaginadoubleimminent">>
-						<<set $vaginadoubletarget to _k>>
-						<<break>>
-					<<elseif $NPCList[_k].penis is "vaginaentrance">>
-						<<set $NPCList[_k].penis to "vaginadoubleentrance">>
-						<<set $vaginadoubletarget to _k>>
-						<<break>>
-					<</if>>
-				<</for>>
-
-				<<break>>
-			<</if>>
-		<</for>>
+		<<set $vaginadoubletarget to _j>>
+		<<unset _npc>>
+		<<set _npc to $NPCList[$NPCList.findIndex(x => x.penis.includes("vagina"))]>>
+		<<set _npc.penis to _npc.penis + "double">>
 	<<else>>
 		You spread your thighs, but fail to garner interest.
 	<</if>>
@@ -4262,7 +4265,7 @@
 
 <<if $anusaction is "bottombay" and $NPCList[$anustarget].mouth is "anusentrance">>
 	<<set $anusaction to 0>><<meek 1 $anustarget>><<bottomskilluse>><<set $anusactiondefault to "bottombay">><<combatpromiscuity1>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $bottomskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("bottom", $anustarget)>>
 		<<set $cheekactiondefault to "othermouthrub">>
 		<<personselect $anustarget>>
 		<span class="lblue">You <<bottomtext>> press your <<bottom>> against <<hisselect $anustarget>> mouth.</span>
@@ -4274,7 +4277,7 @@
 
 <<if $anusaction is "bottomhandbay">>
 	<<set $anusaction to 0>><<meek 1 $anustarget>><<bottomskilluse>><<set $anusactiondefault to "bottomhandbay">><<combatpromiscuity1>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $bottomskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("bottom", $anustarget)>>
 		<<set $cheekactiondefault to "handrub">>
 		<<personselect $anustarget>>
 		<span class="lblue">You <<bottomtext>> rub your clenched <<bottom>> cheeks against <<hisselect $anustarget>> hand.</span>
@@ -4361,10 +4364,10 @@
 
 <<if $anusaction is "penisdoubletease">>
 	<<set $anusactiondefault to "penisdoubletease">><<set $cheekaction to 0>>
-	<<if $NPCList[$anustarget].penis is "anusdoubleentrance" and $NPCList[$anusdoubletarget].penis isnot "anusdoubleentrance">>
+	<<if $NPCList[$anustarget].penis is "anusentrancedouble" and $NPCList[$anusdoubletarget].penis isnot "anusentrancedouble">>
 		You tease <<if !($npc.includes($NPCList[$anustarget].fullDescription))>>the <</if>>$NPCList[$anustarget].fullDescription's tip
 		while rubbing your bowel walls against <<if !($npc.includes($NPCList[$anusdoubletarget].fullDescription))>>the <</if>>$NPCList[$anusdoubletarget].fullDescription's $NPCList[$anusdoubletarget].penisdesc.
-	<<elseif $NPCList[$anustarget].penis isnot "anusdoubleentrance" and $NPCList[$anusdoubletarget].penis is "anusdoubleentrance">>
+	<<elseif $NPCList[$anustarget].penis isnot "anusentrancedouble" and $NPCList[$anusdoubletarget].penis is "anusentrancedouble">>
 		You tease <<if !($npc.includes($NPCList[$anusdoubletarget].fullDescription))>>the <</if>>$NPCList[$anusdoubletarget].fullDescription's tip
 		while rubbing your bowel walls against <<if !($npc.includes($NPCList[$anustarget].fullDescription))>>the <</if>>$NPCList[$anustarget].fullDescription's $NPCList[$anustarget].penisdesc.
 	<<else>>
@@ -4381,21 +4384,21 @@
 	<<set _npcA to $anustarget>>
 	<<set _npcB to $anusdoubletarget>>
 
-	<<if $NPCList[_npcA].penis is "anusdoubleimminent">>
-		<<set $NPCList[$anustarget].penis to "anusdoubleentrance">><<set $NPCList[$anustarget].speechanusescape to 1>>
+	<<if $NPCList[_npcA].penis is "anusimminentdouble">>
+		<<set $NPCList[$anustarget].penis to "anusentrancedouble">><<set $NPCList[$anustarget].speechanusescape to 1>>
 
-	<<elseif $NPCList[_npcA].penis is "anusdoubleentrance" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */
+	<<elseif $NPCList[_npcA].penis is "anusentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */
 		<<set _otherNPCindex to _npcB>><<set $NPCList[_npcA].location.genitals to 0>><<set $NPCList[_npcA].speechanusescape to 1>><<set $enemyanger += 15>>
 		<<set $NPCList[_npcA].penis to 0>>
 		<span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcA].fullDescription + "'s " + $NPCList[_npcA].penisdesc + ".">></span>
 	<</if>>
-	<<if $NPCList[_npcB].penis is "anusdoubleimminent">>
-		<<set $NPCList[_npcB].penis to "anusdoubleentrance">><<set $NPCList[_npcB].speechanusescape to 1>>
+	<<if $NPCList[_npcB].penis is "anusimminentdouble">>
+		<<set $NPCList[_npcB].penis to "anusentrancedouble">><<set $NPCList[_npcB].speechanusescape to 1>>
 
-	<<elseif $NPCList[_npcB].penis is "anusdoubleentrance" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */
+	<<elseif $NPCList[_npcB].penis is "anusentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */
 		<<set _otherNPCindex to _npcA>><<set $NPCList[_npcB].location.genitals to 0>><<set $NPCList[_npcB].speechanusescape to 1>><<set $enemyanger += 15>>
 		<<set $NPCList[_npcB].penis to 0>>
-		<span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") +  $NPCList[_npcB].fullDescription + "'s " + $NPCList[_npcB].penisdesc + ".">></span>
+		<span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcB].fullDescription + "'s " + $NPCList[_npcB].penisdesc + ".">></span>
 	<</if>>
 
 	<<if _otherNPCindex isnot "f" and $NPCList[_otherNPCindex].penis isnot 0 and $NPCList[_otherNPCindex].penis.includes("double")>>
@@ -4404,10 +4407,10 @@
 		<<case "anusdouble">>
 			<<set $NPCList[_otherNPCindex].penis to "anus">>
 			<<set $anusstate to "penetrated">>
-		<<case "anusdoubleentrance">>
+		<<case "anusentrancedouble">>
 			<<set $NPCList[_otherNPCindex].penis to "anusentrance">>
 			<<set $anusstate to "entrance">>
-		<<case "anusdoubleimminent">>
+		<<case "anusimminentdouble">>
 			<<set $NPCList[_otherNPCindex].penis to "anusimminent">>
 			<<set $anusstate to "imminent">>
 		<</switch>>
@@ -4434,7 +4437,7 @@
 		<<set $anusaction to 0>>
 	<</if>>
 	<<bottomskilluse>><<set $cheekactiondefault to "rub">>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $bottomskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("bottom", $anustarget)>>
 		<<actionscheekrub $anustarget>><<set $cheekactiondefault to "rub">><<submission 3 $anustarget>><<bottomstat>>
 	<<elseif $NPCList[$anustarget].penis is "cheeks">>
 		<<set $cheekactiondefault to "cheeks">>
@@ -4459,7 +4462,7 @@
 
 <<if $cheekaction is "handrub" or $anusaction is "bottomhandbay">>
 	<<set $cheekaction to 0>><<set $cheekactiondefault to "handrub">><<bottomskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $bottomskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("bottom", $anustarget)>>
 		<<set $cheekactiondefault to "handrub">><<bottomstat>><<sex 5 $anustarget>>
 		<<actionsmouthbottomrub $anustarget>>
 	<<else>>
@@ -4516,7 +4519,7 @@
 
 <<if $cheekaction is "othermouthrub" or $anusaction is "otherMouthAnusRub">>
 	<<set $cheekaction to 0>><<set $cheekactiondefault to "othermouthrub">><<bottomskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $bottomskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("bottom", $anustarget)>>
 		<<set $cheekactiondefault to "othermouthrub">><<bottomstat>><<sex 5 $anustarget>>
 		<<actionsmouthbottomrub $anustarget>>
 	<<elseif $NPCList[$anustarget].mouth is "bottom">>
@@ -4571,8 +4574,8 @@
 
 <<if $thighaction is "rub">>
 	<<set $thighaction to 0>><<thighskilluse>><<set $thighactiondefault to "rub">>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $thighskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>><<set $thighactiondefault to "rub">>
-		<<actionsthighrub $thightarget>><<thighstat>><<sex 5 $thightarget>>
+	<<if combatSkillCheck("thigh", $thightarget)>>
+		<<set $thighactiondefault to "rub">><<actionsthighrub $thightarget>><<thighstat>><<sex 5 $thightarget>>
 	<<elseif $NPCList[$thightarget].penis is "thighs">>
 		<<set $thighactiondefault to "thighs">><<set $thighuse to 0>>
 		<<if $vaginause is 0>><<set $vaginause to "penis">>
@@ -4602,7 +4605,7 @@
 
 <<if $thighaction is "othermouthrub">>
 	<<set $thighaction to 0>><<set $thighactiondefault to "othermouthrub">><<thighskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $thighskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("thigh", $thightarget)>>
 		<<set $thighactiondefault to "othermouthrub">><<thighstat>><<sex 5 $thightarget>>
 		<<actionsmouththighrub $thightarget>>
 	<<elseif $NPCList[$thightarget].mouth is "thigh">>
@@ -4683,7 +4686,7 @@
 
 <<if $penisaction is "bay" and $NPCList[$penistarget].vagina is "penisentrance">>
 	<<set $penisaction to 0>><<meek 1 $penistarget>><<penileskilluse>><<set $penisactiondefault to "bay">><<combatpromiscuity4>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $penileskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<set $penisactiondefault to "rub">>
 		<<personselect $penistarget>>
 		<span class="lblue">You <<peniletext>> press your penis against <<hisselect $penistarget>> clit.</span>
@@ -4694,7 +4697,7 @@
 <</if>>
 
 <<if $penisaction is "clitrub">><<set $penisaction to 0>><<set $penisactiondefault to "rub">><<penileskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $penileskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<set $penisactiondefault to "rub">><<sex 5 $penistarget>>
 		<<actionsclitrub $penistarget>>
 	<<elseif $NPCList[$penistarget].vagina is "frot">>
@@ -4775,7 +4778,7 @@
 
 <<if $penisaction is "thighbay" and $NPCList[$penistarget].mouth is "penisentrance">>
 	<<set $penisaction to 0>><<meek 1 $penistarget>><<thighskilluse>><<set $penisactiondefault to "thighbay">><<combatpromiscuity1>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $thighskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("thigh", $penistarget)>>
 		<<set $thighactiondefault to "othermouthrub">>
 		<<personselect $penistarget>>
 		<span class="lblue">You <<thightext>> press your thigh against <<hisselect $penistarget>> mouth.</span>
@@ -4807,7 +4810,7 @@
 
 <<if $penisaction is "otheranusbay">>
 	<<set $penisaction to 0>><<meek 1 $penistarget>><<penileskilluse>><<set $penisactiondefault to "otheranusbay">><<combatpromiscuity4>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $penileskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<set $penisactiondefault to "otheranusrub">><<personselect $penistarget>>
 		<<if $NPCList[$penistarget].vagina is "otheranusentrance">>
 			<span class="lblue">You <<peniletext>> point your <<penis>> away from <<hisselect $penistarget>> anus, rubbing between <<his>> cheeks.</span>
@@ -4824,7 +4827,7 @@
 
 <<if $penisaction is "otheranusrub">>
 	<<set $penisaction to 0>><<set $penisactiondefault to "otheranusrub">><<penileskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $penileskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("penile", $penistarget)>>
 		<<set $penisactiondefault to "otheranusrub">><<sex 5 $penistarget>>
 		<<actionsotheranusrub $penistarget>>
 	<<else>>
@@ -4884,7 +4887,7 @@
 
 <<if $penisaction is "penisthighs"and $NPCList[$penistarget].penis is "penisentrance">>
 	<<set $penisaction to 0>><<meek 1 $penistarget>><<thighskilluse>><<set $penisactiondefault to "penisthighs">><<combatpromiscuity4>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $thighskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("thigh", $penistarget)>>
 		<<set $thighactiondefault to "rub">>
 		<<personselect $penistarget>>
 		<span class="lblue">You <<thightext>> grab <<hisselect $penistarget>> $NPCList[$penistarget].penisdesc between your thighs.</span>
@@ -4897,7 +4900,7 @@
 
 <<if $penisaction is "penisanus" and ["penisentrance", "penisimminent"].includes($NPCList[$penistarget].penis)>>
 	<<set $penisaction to 0>><<meek 5 $penistarget>><<analskilluse>><<set $penisactiondefault to "penisanus">>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $analskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("anal", $penistarget)>>
 		<<personselect $penistarget>><<set $anustarget to $penistarget>>
 		<span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> <<npcPenis $penistarget>> in front of your butt.</span>
 		<<if $NPCList[$penistarget].type is "plant" and $NPCList[$penistarget].penissize gte 4>>
@@ -4913,17 +4916,17 @@
 <<set $rng to random(1, 100)>>
 <<if $penisaction is "penisanusdouble">>
 	<<set $penisaction to 0>><<meek 5 $penistarget>><<analskilluse>>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $analskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("anal", $penistarget)>>
 		<<personselect $penistarget>><<set $penisactiondefault to "rest">>
 		<span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> penis to join the phallus in front of your butt.</span>
-		<<submission 2 $penistarget>><<set $anususe to "penisdouble">><<set $NPCList[$penistarget].penis to "anusdoubleentrance">><<set $penisuse to 0>><<set $anusstate to "doubleentrance">><<set $penisstate to 0>>
+		<<submission 2 $penistarget>><<set $anususe to "penisdouble">><<set $NPCList[$penistarget].penis to "anusentrancedouble">><<set $penisuse to 0>><<set $anusstate to "doubleentrance">><<set $penisstate to 0>>
 		<<set $anusdoubletarget to $penistarget>>
 		<<if $NPCList[$anustarget].penis is "anus">>
 			<<set $NPCList[$anustarget].penis to "anusdouble">>
 		<<elseif $NPCList[$anustarget].penis is "anusimminent">>
-			<<set $NPCList[$anustarget].penis to "anusdoubleimminent">>
+			<<set $NPCList[$anustarget].penis to "anusimminentdouble">>
 		<<elseif $NPCList[$anustarget].penis is "anusentrance">>
-			<<set $NPCList[$anustarget].penis to "anusdoubleentrance">>
+			<<set $NPCList[$anustarget].penis to "anusentrancedouble">>
 		<<elseif $NPCList[$anustarget].penis is "cheeks">>
 			<<set $NPCList[$anustarget].penis to "anusentrance">>
 			<<set $bottomuse to 0>> /* Issues with ass cheeks likely stem from this culprit right here */
@@ -4949,7 +4952,7 @@
 		<<violence 2>><<hitstat>><<bruise bottom>>
 	<<elseif ["penisentrance", "penisimminent"].includes($NPCList[$penistarget].penis)>>
 		<<set $penisaction to 0>><<meek 10 $penistarget>><<penileskill>><<set $penisactiondefault to "penispussy">>
-		<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+		<<if combatSkillCheck("vaginal", $penistarget)>>
 			<<personselect $penistarget>>
 			<<submission 2 $penistarget>><<set $vaginause to "penis">><<set $NPCList[$penistarget].penis to "vaginaentrance">><<set $penisuse to 0>>
 			<<set $vaginastate to "entrance">><<set $penisstate to 0>><<set $vaginatarget to $penistarget>><<set $penistarget to 0>>
@@ -4963,11 +4966,11 @@
 <<set $rng to random(1, 100)>>
 <<if $penisaction is "penispussydouble">>
 	<<set $penisaction to 0>><<meek 10>><<penileskilluse>><<set $penisactiondefault to "penispussydouble">>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $vaginalskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("vaginal", $penistarget)>>
 		<<for _j = 0; _j lt $enemyno; _j++>>
 			<<if $NPCList[_j].penis is "penisentrance" or $NPCList[_j].penis is "penisimminent">>
 				<<personselect _j>>
-				<<submission 2>><<set $vaginause to "penisdouble">><<set $NPCList[_j].penis to "vaginadoubleentrance">><<set $penisuse to 0>><<set $vaginastate to "doubleentrance">><<set $penisstate to 0>>
+				<<submission 2>><<set $vaginause to "penisdouble">><<set $NPCList[_j].penis to "vaginaentrancedouble">><<set $penisuse to 0>><<set $vaginastate to "doubleentrance">><<set $penisstate to 0>>
 				<span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your <<penis>> to join the phallus in front of your pussy.</span>
 
 				<<set $vaginatarget to _n>>
@@ -4978,11 +4981,11 @@
 						<<set $vaginadoubletarget to _k>>
 						<<break>>
 					<<elseif $NPCList[_k].penis is "vaginaimminent">>
-						<<set $NPCList[_k].penis to "vaginadoubleimminent">>
+						<<set $NPCList[_k].penis to "vaginaimminentdouble">>
 						<<set $vaginadoubletarget to _k>>
 						<<break>>
 					<<elseif $NPCList[_k].penis is "vaginaentrance">>
-						<<set $NPCList[_k].penis to "vaginadoubleentrance">>
+						<<set $NPCList[_k].penis to "vaginaentrancedouble">>
 						<<set $vaginadoubletarget to _k>>
 						<<break>>
 					<</if>>
@@ -5016,7 +5019,7 @@
 
 <<if $chestaction is "rub">>
 	<<set $chestaction to 0>><<set $chestactiondefault to "rub">>
-	<<if (1000 - ($rng * 10) - ($enemytrust * 10) - $chestskill + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>>
+	<<if combatSkillCheck("chest", $chesttarget)>>
 		<<if $player.breastsize is 0>>
 			You <<chesttext>> rub your <<breasts>> against <<hisselect $chesttarget>> penis.
 		<<else>>
@@ -5060,6 +5063,17 @@
 </div>
 <</widget>>
 
+<<widget "useLube">>
+	<<set $_lube to $player.inventory.sextoys["lube"][0]>>
+	<<set $_lube.uses -= 1>>
+	<<run console.log("using lube? " + V.player.inventory.sextoys["lube"][0].name + " " + V.player.inventory.sextoys["lube"][0].uses)>>
+	<<if $_lube.uses lte 0>>
+		<<run V.player.inventory.sextoys["lube"].splice(0,1)>>
+		<<run console.log("used up all the lube")>>
+		You squeeze the last of the lube out of the bottle.
+	<</if>>
+<</widget>>
+
 <<widget "wheeze">>
 	<<set _action to _args[0] or "say something">>
 	<<switch _args[1]>>
diff --git a/game/base-combat/ejaculation-eden.twee b/game/base-combat/ejaculation-eden.twee
index 1c3047decfc20f748995c9234e0f14414d4b4e84..40b26a838a8db445dcc3c8fc64fd86e07c45c787 100644
--- a/game/base-combat/ejaculation-eden.twee
+++ b/game/base-combat/ejaculation-eden.twee
@@ -32,55 +32,55 @@
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> moan as <<his>> hips thrust against your face, <<his>> thighs shaking with orgasm.
-				
+
 			<<case 3 4>>
 				<<His>> blush deepens and mouth gapes as <<he>> cums, <<his>> body twitching all over.
-				
+
 			<<case 5>>
 				<<He>> screams, cupping your head in <<his>> hand and thrusting against your face as <<he>> cums.
-				
+
 				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "leftarm">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs as you finish with <<his>> pussy, <<his>> thighs trembling against your hand as <<his>> body convulses.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<<case 3 4>>
 				<<His>> blush deepens and <<his>> mouth gapes as <<he>> cums. You feel <<his>> pussy twitch against <<his>> hand.
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<<case 5>>
 				<<He>> screams as <<he>> grasps your hand and fucks your fingers with <<his>> pussy. You feel <<his>> interior twitch.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "rightarm">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<His>> knees tremble and <<he>> grasps your body for support as you finish with <<his>> pussy.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<<case 3 4>>
 				<<His>> blush deepen and <<his>> mouth gapes as <<he>> cums. You feel <<his>> pussy twitch.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<<case 5>>
 				<<He>> screams and grasps your hand before fucking <<his>> pussy with your fingers. You feel <<his>> insides twitch.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs and trembles as <<he>> cums, barely able to keep <<his>> fingers inside <<his>> pussy.
-				
+
 			<<case 3 4>>
 				<<He>> moans shakes, <<his>> juices dripping on the ground. <<He>> withdraws <<his>> hand and sighs.
-				
+
 			<<case 5>>
 				<<He>> screams as <<he>> cums, <<his>> juices soaking <<his>> pussy and thighs. "You might need to clean me up."
-				
+
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "leftDildo">>
 			<<switch random(1, 5)>>
@@ -126,15 +126,15 @@
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> moans as you knead <<his>> pussy with your feet. <<His>> body trembles in orgasm.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<<case 3 4>>
 				<<He>> shakes as <<he>> cums, <<his>> pussy twitching beneath your feet.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<<case 5>>
 				<<He>> screams as <<he>> cums. <<He>> shakes for a moment, then <<his>> whole body falls limp.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
@@ -143,13 +143,13 @@
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> moans with pleasure as <<he>> cums. You feel <<his>> pussy twitch against yours.
-				
+
 			<<case 3 4>>
 				<<He>> moans as your <<pussy>> rubs against <<his>>, legs shaking as <<he>> cums.
-				
+
 			<<case 5>>
 				<<He>> screams, cupping <<his>> arms under your shoulders as <<his>> entire body shakes. You feel <<his>> pussy twitch against yours.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "othermouth">>
@@ -159,40 +159,40 @@
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<<case 3 4>>
 				<<He>> gives your <<pussy>> a slow, savage lick. You feel it shake as <<he>> cums.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<<case 5>>
 				<<He>> screams and clutches <<his>> thighs as <<he>> cums, breathing hard on your <<pussy>>.
-				
+
 			<</switch>>
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> shakes as <<he>> cums, driving <<his>> ass hard against your <<penis>>.
-				
+
 			<<case 3 4>>
 				<<He>> shakes as <<he>> cums, <<his>> ass pounding your <<penis>> with savage intensity.
-				
+
 			<<case 5>>
 				<<He>> screams and bucks against your <<penis>> as <<he>> cums. "I knew there was a reason I kept you around."
-				
+
 				<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "penis">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> grasps your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock. <<He>> shudders with pleasure. "You're mine. Don't ever forget it."
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 			<<case 3 4>>
 				<<His>> blush deepens and <<his>> body convulses as <<he>> cums. <<His>> pussy twitches around your <<penis>>.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 			<<case 5>>
 				<<He>> screams and bucks against your lap as <<he>> cums, taking your <<penis>> as hard as <<he>> can.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 				<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
@@ -203,31 +203,31 @@
 			<<He>> bucks <<his>> ass against your cock as <<he>> cums, rubbing it between <<his>> cheeks. "Next time I want you to fuck me. I don't keep you around to toy with my ass."
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> rubs <<his>> clit against your cock as <<he>> cums, <<his>> whole body shuddering. <<He>> looks frustrated. "I want nothing more than to have that cock inside me. I deserve a medal for restraint."
-			
-			<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+			<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis">>
 			<<switch random(1, 4)>>
 			<<case 1 2>>
 				<<He>> cums as you fuck <<his>> mouth. You feel <<him>> tremble.
-				
+
 			<<case 3 4>>
 				<<He>> cums with <<his>> lips still wrapped around your <<penis>>, and grasps your thighs with both hands.
-				
+
 			<</switch>>
 		<<else>>
 			<<He>> convulses in orgasmic bliss.
-			
+
 		<</if>>
 	<<else>>
 		<<if $NPCList[_nn].vagina is "footjob">>
 			<<switch random(1, 5)>>
 			<<case 1 2 3>>
 				<<He>> gasps as <<he>> cums. <<He>> smiles as <<he>> recovers, resting <<his>> foot on your tummy. "That's a good <<girl>>."
-				
+
 			<<case 4 5>>
 				<<He>> moans as <<he>> cums. <<He>> moves <<his>> foot away from your <<genitals>> to spare you the violent spasms.
-				
+
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps your hair as <<he>> cums, pulling it tight. "If only you weren't locked up," <<he>> pants. "I'm gonna find out who has the key."
@@ -235,14 +235,14 @@
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> moans as <<he>> cums. You feel <<his>> pussy twitch against yours.
-				
+
 			<<case 3 4>>
 				<<He>> moans as <<he>> grasps you by the throat and rubs <<his>> pussy hard against yours.
 				<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-				
+
 			<<case 5>>
 				<<He>> screams, grasping your hair and mashing <<his>> body against yours. <<His>> whole body twitches with violent spasms.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "othermouth">>
@@ -255,7 +255,7 @@
 			<<else>>
 				<<He>> moans and grasps your hair, rubbing <<his>> pussy against you as <<his>> thighs shake with orgasm.
 			<</if>>
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus">>
@@ -275,22 +275,22 @@
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> grasps your the throat, pulling you down and rubbing <<his>> clit against your cock as <<he>> cums. "I want to fuck your cock properly next time. Your teasing drives me mad."
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-			
+
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis">>
 			<<He>> cums as you fuck <<his>> mouth, until <<he>> pulls away and gasps for air. "That's enough."
-			
+
 		<<else>>
 			<<switch random(1, 7)>>
 			<<case 1 2 3>>
 				<<He>> trembles with orgasm. <<He>> pulls you close. "Good <<girl>>," <<he>> whispers.
-				
+
 			<<case 4 5 6>>
 				<<He>> sighs as <<he>> cums, and gives your <<bottom>> a light spank. "You're my prized possession," <<he>> says. "Don't forget it."
-				
+
 			<<case 7>>
 				<<He>> rubs <<his>> clit and screams as <<he>> cums, before lying back and panting, one arm over <<his>> eyes and the other grasping your hair.
-				
+
 				<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.goo += 1>>
 			<</switch>>
 		<</if>>
@@ -306,7 +306,7 @@
 		<<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals.
 	<<elseif $NPCList[_nn].penis is "idle">>
 		<<He>> moans as a wet patch forms on <<his>> trousers. You stifle a giggle at the sight.
-		
+
 	<<elseif $NPCList[_nn].penis is "thighs">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
@@ -314,11 +314,11 @@
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grasps your legs for purchase as <<he>> approaches <<his>> peak, before ejaculating between your thighs and onto your tummy.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
@@ -343,7 +343,7 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on your labia. "I deserve a medal for restraint," <<he>> says. "Your unguarded pussy was right there, teasing me."
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> tries to push <<his>> $NPCList[_nn].penisdesc into you as <<he>> approaches <<his>> peak, but <<his>> body's spasms betray <<him>>. <<He>> ejaculates, sending white streams of semen onto your labia. "Fuck," <<he>> says. "So close."
@@ -365,7 +365,7 @@
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 7>>
 			<<He>> convulses and pounds your crotch as <<he>> cums, sending thick waves of semen into your <<pussy>>. It drips down your thighs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<vaginalejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
@@ -383,7 +383,7 @@
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> squeezes your cheeks together and moans as <<he>> cums, ejaculating a massive load that covers your <<bottom>>. "You're so fucking hot."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
@@ -392,15 +392,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pinches your <<bottom>> as <<he>> rubs <<his>> cock against it. <<He>> ejaculates, semen spurting over your cheeks.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> cums against your <<bottom>> with a shudder.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans as <<he>> cums against your <<bottom>>, sending thick ropes of semen onto your cheeks.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
@@ -409,11 +409,11 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> tries to thrust into your <<bottom>> as <<he>> approaches <<his>> peak, but cums too soon. Semen splatters against your cheeks. "Fuck. Sometimes you're just too hot."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grasps your hips for purchase and tries to fuck your <<bottom>>, but is overcome by sensation and ejaculates over your cheeks.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<His>> $NPCList[_nn].penisdesc pressen against your <<bottom>> as <<he>> cums. Thick ropes of semen erupt over your cheeks.
@@ -429,7 +429,7 @@
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 7>>
 			<<He>> convulses and, with a final thrust, cums in your ass. Thick waves of semen pump into you. It drips down your thighs
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -437,15 +437,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> thrusts between your <<breasts>> as <<he>> ejaculates, covering your chest in semen.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> rubs <<his>> penis against your <<breasts>>, and shudders into orgasm.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 7>>
 			<<He>> grasps your neck as <<he>> bears down on your <<breasts>>, moaning as <<he>> cums. Semen erupts over your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>. "I think you'll need a bath."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "mouthentrance">>
@@ -468,7 +468,7 @@
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> tries to penetrate your mouth, but cums too early. It drips down your lips and chin. "I couldn't hold on long enough."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 7>>
 			<<He>> shudders as <<he>> approaches <<his>> peak. <<He>> grasps your hair and tries to thrust <<his>> $NPCList[_nn].penisdesc into your mouth, but <<his>> body trembles too much. Thick ropes of cum cover your cheeks and chin. Some fluid makes it past your lips.
@@ -493,15 +493,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans as <<he>> cums between your feet, ejaculating over them.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> cums between your feet, leaving them slick with semen.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 7>>
 			<<He>> moans and attacks your feet with savage thrusts. <<His>> ejaculate arcs as high as your thighs.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -509,11 +509,11 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans as <<he>> cums, penis pulsing in your hands and covering them both in cum. "You're good with your hands."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> cums onto your hands, leaving them slick with semen.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms, moans, and thrusts against your hands, thick streams of cum erupting from <<his>> $NPCList[_nn].penisdesc and splattering over your face. "You're a fine <<wife>>."
@@ -527,11 +527,11 @@
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> cums onto your hand, slickening your fingers. "You can't work like that. You should wash up."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. "Sorry about the mess," <<he>> pants. "Go get cleaned up."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
@@ -542,7 +542,7 @@
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> cums onto your hand, slickening your fingers. "You can't work like that. You should wash up."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> moans as thick ropes of semen erupt from <<his>> $NPCList[_nn].penisdesc, covering your hand. "Good job," <<he>> pants. "But make sure you clean up the mess."
@@ -552,7 +552,7 @@
 		<<switch random(1, 4)>>
 		<<case 1>>
 			<<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "Marking my territory. Trespassers will pay."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 2>>
 			<<He>> rubs <<his>> $NPCList[_nn].penisdesc as <<he>> approaches <<his>> peak. It erupts over your face. "You're a mess," <<he>> pants. "Get yourself cleaned up."
@@ -562,20 +562,20 @@
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4>>
 			<<He>> strokes <<his>> penis and moans, ejaculating onto your <<breasts>>.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "otheranus">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans as you fuck <<his>> ass, <<his>> ejaculate spraying onto <<his>> own stomach. "You're such a good <<wife>>."
-			
+
 		<<case 4 5>>
 			<<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates onto the ground. <<He>> comes to <<his>> senses, and looks a bit ashamed. "I let my guard down. I shouldn't let that happen. What if we're attacked?"
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "I don't want you to ever leave."
-			
+
 		<</switch>>
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and $worn.genitals.type.includes("chastity")>>
 		<<He>> moans as <<he>> cums, ejaculating over your $worn.genitals.name. "All the ways I would fuck you," <<He>> gasps. "If not for that chastity device."
@@ -583,30 +583,30 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> reaches behind you and grasps your <<bottom>>, helping you thrust against <<his>> cheeks. You feel <<his>> body shudder in orgasm. "Next time," <<he>> gasps. "I want you to fuck my ass properly."
-			
+
 		<<case 4 5>>
 			<<He>> moans and ejaculates onto the ground as you thrust against <<his>> ass. You leave <<him>> panting.
-			
+
 		<<case 6 7>>
 			<<He>> sighs and ejaculates onto <<his>> own chest.
-			
+
 		<</switch>>
 	<!-- Special case male PC being orally serviced by male NPC with no other contact -->
 	<<elseif $NPCList[_nn].mouth is "penis">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums as you fuck <<his>> mouth, gasping against your cock. "Don't forget," <<he>> says. "You're mine forever."
-			
+
 		<<case 4 5>>
 			<<He>> cums on the ground as you fuck <<his>> mouth, leaving a pool beneath <<him>>.
-			
+
 		<<case 6 7>>
 			<<He>> grasps your <<bottom>> and drives your <<penis>> deeper into <<his>> mouth. <<He>> trembles, and ejaculates onto <<his>> own chest.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "othermouth">>
 		<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body.
-		
+
 	<</if>>
 	<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
 		Despite wearing a condom, it was too damaged to stop the cum.
@@ -617,19 +617,19 @@
 		<<genericCondomEjaculation>>
 	<<elseif $NPCList[_nn].penis is "idle">>
 		<<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display, but any mirth is soon driven from your mind by dread.
-		
+
 	<<elseif $NPCList[_nn].penis is "thighs">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grasps your thighs and thrusts <<his>> $NPCList[_nn].penisdesc hard between them as <<his>> cum shoots onto your tummy.
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. "You're mine. Don't forget it."
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
@@ -655,11 +655,11 @@
 		<<case 1 2 3>>
 			<<He>> tries to thrust into your <<pussy>>, but cums too soon, ejaculating onto your labia. <span class="red"><<He>> slaps your <<bottom>> in frustration.</span>
 			<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grasps your hips for purchase and tries to violate your <<pussy>>, but it's too late. <<His>> semen covers your labia. "Sometimes," <<he>> gasps. "It's like you're too hot."
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans as <<he>> approaches <<his>> peak, <<his>> $NPCList[_nn].penisdesc twitching against your <<pussy>>. Thick ropes of semen shoot over your labia and <<bottom>>. "You should get cleaned up," <<he>> pants, shutting <<his>> eyes for a moment.
@@ -675,7 +675,7 @@
 		<<case 4 5 6>>
 			<<He>> grasps your throat and pounds <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air.
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 7>>
@@ -690,12 +690,12 @@
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> pinches your <<bottom>>, then grasps your hips and pulls you closer, ejaculating over your cheeks.
-			
+
 			<!-- Really should be onto PCs back given position. Or hair maybe. Esp next one -->
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> squeezes your <<bottom>> cheeks together and moans as <<he>> cums, ejaculating a massive load. "You're a mess," <<he>> gasps. "Go clean up."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
@@ -705,7 +705,7 @@
 		<<case 1 2 3>>
 			<<He>> <span class="blue">slaps your <<bottom>></span> and rubs <<his>> $NPCList[_nn].penisdesc against you. <<He>> trembles as <<he>> cums, semen splattering onto your cheeks.
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>>
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> rubs <<his>> $NPCList[_nn].penisdesc between your <<bottom>> cheeks. You feel it twitch as <<he>> cums, followed by warm semen on your skin.
@@ -721,11 +721,11 @@
 		<<case 1 2 3>>
 			<<He>> grasps your hips for purchase and tries to drive <<his>> $NPCList[_nn].penisdesc into your <<bottom>>. <<He>> cums before <<he>> can make it, covering your cheeks with semen. <span class="red"><<He>> smacks your ass in frustration.</span>
 			<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> tries to penetrate your <<bottom>> as <<he>> shudders into orgasm, but can't control <<his>> trembling body well enough. <<His>> cock slides wide, shooting white streams of semen over your cheeks. "You're such a tease," <<he>> gasps. "Next time I'm cumming inside."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans as <<his>> $NPCList[_nn].penisdesc twitches against your <<bottom>>, covering it with thick ropes of semen. "I took it easy on you. Next time you're taking my whole cock."
@@ -741,7 +741,7 @@
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 7>>
 			<<He>> convulses and, with a final thrust, cums into your ass. Thick waves of semen pump into you. Semen drips over your thighs. "You're a mess," <<he>> gasps. "Go clean yourself up."
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -755,7 +755,7 @@
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 7>>
 			<<He>> grasps the back of your neck and mashes your face against <<his>> body as <<he>> cums. Semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>> as you gasp for air. "Remember. You need to be there for me whenever my cock needs servicing."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "mouthentrance">>
@@ -793,12 +793,12 @@
 			<<He>> grasps your throat as <<his>> $NPCList[_nn].penisdesc trembles in your mouth. You gag as cum surges down your throat.
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-			
+
 		<<case 7>>
 			<<He>> grasps your hair with both hands, <<his>> $NPCList[_nn].penisdesc thrusting down your throat as <<he>> cums. Semen streams down your throat, then fills your mouth and covers your face as <<he>> pulls out. "I'm your protector," <<he>> pants. "You should show me respect."
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "feet">>
 		<<switch random(1, 7)>>
@@ -807,7 +807,7 @@
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> moans as <<he>> cums on your feet, leaving them slick with semen.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 7>>
 			<<He>> moans as <<he>> thrusts <<his>> $NPCList[_nn].penisdesc between your feet. Semen shoots onto your legs.
@@ -821,7 +821,7 @@
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> cums on your hands, leaving them slick with semen.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> thrusts <<his>> $NPCList[_nn].penisdesc between your hands harder as <<he>> cums. Semen shoots through the air, splattering your face. "You're a mess," <<he>> gasps. "My fault, but you need to clean up."
@@ -839,7 +839,7 @@
 			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 6 7>>
 			<<He>> spasms and moans as thick streams of cum shoot onto your <<breasts>>. "I need to train you to control cock better."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
@@ -847,7 +847,7 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans as you work <<his>> shaft with your right hand. You give <<him>> a final squeeze, and <<he>> cums, <<his>> whole body shuddering.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5>>
 			<<He>> spasms and moans, thick streams of cum shooting from <<his>> $NPCList[_nn].penisdesc and landing on your face.
@@ -855,7 +855,7 @@
 			<<handejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 6 7>>
 			<<He>> moans as <<he>> cums in your hand, <<his>> whole body trembling. "Good <<girl>>," <<he>> gasps. "See? Your duties aren't so difficult."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -875,7 +875,7 @@
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 5>>
 			<<He>> moans and shudders as cum flies all over your body. <<His>> muscles weakening, <<he>> leans on your shoulder for support.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 			<<hairejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.hair.semen += 1>>
@@ -886,10 +886,10 @@
 			<<He>> moans as you fuck <<his>> ass, semen erupting from <<his>> $NPCList[_nn].penisdesc and pooling on the ground beneath <<him>>. "Don't think," <<he>> gasps. "That cumming from having your cock in my ass means I can't protect you."
 		<<case 4 5>>
 			<<He>> moans as you pound <<his>> ass, <<his>> ejaculate covering the ground beneath <<him>>.
-			
+
 		<<case 6 7>>
 			<<He>> moans as you fuck <<his>> ass, <<his>> semen arcing onto <<his>> own chest.
-			
+
 		<</switch>>
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums, ejaculating over your $worn.genitals.name. "Once I get the key," <<he>> pants. "Your ass is gonna get ravaged."
@@ -897,7 +897,7 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans as you fuck <<his>> cheeks. <<He>> reaches behind you and grasps your <<bottom>>, rubbing against you as <<he>> climaxes. <<He>> ejaculates onto the ground. "Fuck me properly next time," <<he>> pants. "Don't be shy."
-			
+
 		<<case 4 5>>
 			<<He>> moans as you rub against <<his>> ass. <<His>> $NPCList[_nn].penisdesc erupts onto the ground in front of <<him>>. "You're a tease," <<he>> gasps. "I couldn't take the anticipation."
 		<<case 6 7>>
@@ -910,15 +910,15 @@
 			<<He>> cums as you fuck <<his>> mouth, <<his>> whole body shuddering as <<his>> semen shoots from <<his>> $NPCList[_nn].penisdesc and onto the floor beneath <<him>>.
 		<<case 4 5>>
 			<<He>> cums on the ground as you fuck <<his>> mouth. <<He>> pulls away. "I'm done. For now."
-			
+
 		<<case 6 7>>
-			<<He>> grasps your <<print ($player.ballsExist ? "balls" : "pussy")>> and drives your cock down <<his>> throat. 
+			<<He>> grasps your <<print ($player.ballsExist ? "balls" : "pussy")>> and drives your cock down <<his>> throat.
 			<<He>> ejaculates on <<his>> own chest as <<he>> shudders around your length.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis isnot "none">>
 		<<He>> shakes with arousal as <<he>> cums.
-		
+
 	<</if>>
 	<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
 		Despite wearing a condom, it was too damaged to stop the cum.
diff --git a/game/base-combat/ejaculation-kylar.twee b/game/base-combat/ejaculation-kylar.twee
index 998580770617c4408ddd77d59ab1861634ba7a66..97712cc37c2337b344e442ecb9af1d9e5e591145 100644
--- a/game/base-combat/ejaculation-kylar.twee
+++ b/game/base-combat/ejaculation-kylar.twee
@@ -32,55 +32,55 @@
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, small thighs shaking with orgasm.
-				
+
 			<<case 3 4>>
 				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably.
-				
+
 			<<case 5>>
 				<<He>> screams, cupping the back of your head in <<his>> hands and grinding <<his>> clit against your nose.
-				
+
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "leftarm">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<<case 3 4>>
 				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<<case 5>>
 				<<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "rightarm">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs as you finish with <<his>> pussy, knees knocking as <<his>> body convulses.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<<case 3 4>>
 				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<<case 5>>
 				<<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers.
-				
+
 			<<case 3 4>>
 				<<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs.
-				
+
 			<<case 5>>
 				<<He>> screams as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate. "I love pleasuring myself with you."
-				
+
 				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "leftDildo">>
@@ -127,183 +127,183 @@
 			<<switch random(1, 4)>>
 			<<case 1 2>>
 				<<He>> moans as you knead <<his>> pussy, jamming your toes inside with <<his>> hands as <<he>> finishes cumming.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<<case 3 4>>
 				<<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out."
-			
+
 		<<elseif $NPCList[_nn].vagina is "vagina">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> cums as you scissor your pussies together, moaning with pleasure.
-				
+
 			<<case 3 4>>
 				<<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, thin legs shaking as <<he>> cums.
-				
+
 			<<case 5>>
 				<<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes; you are surprised by how strong <<he>> is. Ejaculate drenches your crotch as <<he>> squirts.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "othermouth">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<<case 3 4>>
 				<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<<case 5>>
 				<<He>> screams into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs.
-				
+
 			<</switch>>
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan.
-				
+
 			<<case 3 4>>
 				<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning.
-				
+
 			<<case 5>>
 				<<He>> screams and bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "I feel so good when I'm with you."
-				
+
 				<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "penis">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> grabs your shoulders with <<his>> small hands as <<he>> cums, bouncing down hard against your cock as <<he>> shudders with pleasure. "You make me feel so good."
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 			<<case 3 4>>
 				<<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 			<<case 5>>
 				<<He>> cries out and bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 				<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity devices," <<he>> says. "I'll work it out. Then you can fill me."
-			
+
 		<<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">>
 			<<He>> cums on your <<penis>>. "Please fuck me next time. Please. I can't stand being teased like this. I need you inside me..."
-			
+
 		<<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out. Then you can fill me."
-			
+
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">>
 			<<He>> bucks <<his>> ass against your cock as <<he>> cums. <<He>> begins crying, "Why won't you fuck me? Don't you love me?"
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out."
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> grinds <<his>> clit hard against your cock as <<he>> cums, ejaculating on your cock. <<He>> looks panicked, "Why didn't you penetrate me? Who else is there? You can tell me..."
-			
-			<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+			<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis">>
 			<<switch random(1, 4)>>
 			<<case 1 2>>
 				<<He>> cums as you fuck <<his>> mouth, smiling as <<he>> finishes.
-				
+
 			<<case 3 4>>
 				<<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a slimy mess. "I love what you do to me."
-				
+
 			<</switch>>
 		<<else>>
 			<<He>> convulses in orgasmic bliss.
-			
+
 		<</if>>
 	<<else>>
 		<<if $NPCList[_nn].vagina is "footjob">>
 			<<switch random(1, 5)>>
 			<<case 1 2 3>>
 				<<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and stands over you, your <<lewdness>> on display below <<him>>. "There are so many ways I can pleasure you; we can explore all of them."
-				
+
 			<<case 4 5>>
 				<<He>> laughs as <<he>> cums, removing <<his>> foot from your crotch. "It makes me feel so powerful pleasuring you like this."
-				
+
 				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says.
-			
+
 		<<elseif $NPCList[_nn].vagina is "vagina">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> groans as <<he>> cums, dragging <<his>> wet pussy across your ass and thighs.
-				
+
 			<<case 3 4>>
 				<<He>> moans as <<he>> digs <<his>> nails into your shoulders and grinds downs hard on your <<pussy>>. You are surprised by <<his>> strength.
-				
+
 			<<case 5>>
 				<<He>> screams, grabbing you by the hair and mashing <<his>> entire body against yours. Ejaculate streams from <<his>> pussy, drenching you.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "othermouth">>
 			<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your stomach.
-			
+
 		<<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">>
 			<<He>> moans as <<he>> cums. <<He>> grabs you by the hair and pull <<his>> face close; you are surprised by <<his>> strength. "Don't forget I'm the only one allowed to pleasure you."
-			
+
 		<<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">>
 			<<He>> groans and cups your head, grinding <<his>> clit against your nose as <<his>> small thighs shake with orgasm.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus">>
 			<<He>> shakes as <<he>> cums, reaching back and digging <<his>> nails into your thighs as <<he>> releases a final moan.
-			
+
 		<<elseif $NPCList[_nn].vagina is "penis">>
 			<<He>> digs <<his>> small fingers into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure.
-			
+
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need you inside me. Th-there must be a skeleton key for chastity stuff."
-			
+
 		<<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">>
 			<<He>> moans as <<he>> cums on your throbbing cock. <<He>> tears up, "Why didn't you fuck me? Who else is there? Tell me!"
-			
+
 		<<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need you inside me. Th-there must be a skeleton key for chastity stuff."
-			
+
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">>
 			<<He>> swivels <<his>> ass against your cock as <<he>> cums. <<He>> begins crying "Please fuck me next time. I swear I'll be good..."
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says.
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> grinds <<his>> clit hard against your cock as <<he>> cums. "Why didn't you fuck me? Am I not good enough for you? Is there someone else? There better not be someone else."
-			
+
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis">>
 			<<He>> cums as you fuck <<his>> mouth, pushing away as <<he>> gasps for air. "I can't take anymore... please forgive me."
-			
+
 		<<else>>
 			<<switch random(1, 7)>>
 			<<case 1 2 3>>
 				<<He>> trembles with orgasm. Pulling your face close <<he>> says, "I want you with me forever."
-				
+
 			<<case 4 5 6>>
 				<<He>> sighs quietly as <<he>> cums, stroking your back. "You know I'd die without you, don't you?"
-				
+
 			<<case 7>>
 				<<He>> rapidly rubs <<his>> clit and screams as <<he>> cums; <<his>> pussy squirting and dripping down to <<his>> knees. "I can't control myself when I'm with you."
-				
+
 			<</switch>>
 		<</if>>
 	<</if>>
@@ -318,58 +318,58 @@
 		<<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals.
 	<<elseif $NPCList[_nn].penis is "idle">>
 		<<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a giggle at the sight.
-		
+
 	<<elseif $NPCList[_nn].penis is "thighs">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums against your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to go inside you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems upset with <<himself>>.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> seems disappointed.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
@@ -377,89 +377,89 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina.
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 4 5 6>>
 			<<He>> quiets and grabs your shoulders with <<his>> small hands, pulling you onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless.
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 7>>
 			<<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<vaginalejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "cheeks" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "cheeks">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks.
-			
+
 			<!-- Really should be onto PCs back given position. Or hair maybe. Esp next one -->
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch; <<he>> seems pleased.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pinches your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems upset with <<himself>>.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anus">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans and thrusts into your ass as <<he>> cums. You gasp as you feel semen filling you.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 7>>
 			<<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. You're surprised at the amount; cum oozes from your ass and runs down your legs.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -467,28 +467,28 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 			<<case 4 5 6>>
 			<<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 7>>
 			<<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "mouthentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. <<He>> says "Oh my God I'm so sorry" but <<his>> face looks excited.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <span class="green"><<He>> leans down and licks it off.</span>
 		<<case 7>>
 			<<He>> gasps and strokes <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. You're impressed by the volume and <<he>> looks oddly pleased with <<himself>>.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -496,15 +496,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis; <<he>> seems upset with <<his>> lack of control.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems upset with <<himself>>.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 7>>
 			<<He>> cups your head but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -513,15 +513,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cups you under the chin with one hand and holds the back of your head with the other, thrusting into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 7>>
 			<<He>> palms your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> flails. "It's hard to control myself with you."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -529,15 +529,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your feet, slickening them with semen.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 7>>
 			<<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -545,15 +545,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your hands, slickening them with semen.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. "Oh God, I'm so sorry" <<he>> says, but <<his>> face betrays <<his>> words.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<</switch>>
@@ -561,15 +561,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. "You make me feel so good."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your left hand. Semen drips down your fingers. "I love how you make me feel."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. You're impressed by the volume from such a small body.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
@@ -577,73 +577,73 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as your work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "You make me feel so special."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your right hand. Semen cools on your fingers. "I love how you make me feel."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. You're impressed by the volume from such a small body.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is 0>>
 		<<switch random(1, 4)>>
 		<<case 1>>
 			<<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "I guess that's OK because you're mine."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 2>>
 			<<He>> rapidly rubs <<his>> cock and moans, ejaculating on the ground. "You make me feel so good."
-			
+
 		<<case 3>>
 			<<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "I'm sorry, I just couldn't help myself."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4>>
 			<<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<He>> apologies and licks up the mess.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "otheranus">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "I love how you make me feel."
-			
+
 		<<case 4 5>>
 			<<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>.
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "I want you to stay with me forever..."
-			
+
 		<</switch>>
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish. "Please fuck me properly next time. Please. I can't stand being teased. Please..."
-			
+
 		<<case 4 5>>
 			<<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> seems disappointed, "Why didn't you fuck me? Don't you love me? Am I not good enough for you?"
-			
+
 		<<case 6 7>>
 			<<He>> sobs as <<he>> ejaculates onto <<his>> own chest and begins crying, "Why didn't you fuck me? Tell me what I can do to deserve your cock..."
-			
+
 		<</switch>>
-		
+
 	<<elseif $NPCList[_nn].penis is "penis" and $worn.genitals.type.includes("chastity")>>
 		<<switch random(2)>>
 			<<case 0>>
 				<<He>> gasps as <<he>> shoots <<his>> impressive load all over your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out."
-			
+
 			<<case 1>>
 				<<He>> moans in ecstacy, drenching your $worn.genitals.name in ropes of hot cum. "N-no... we need to be together!" <<He>> gasps in frustration.
-		
+
 			<<case 2>>
 				<<He>> screams in pleasure, showering your $worn.genitals.name in streams of sticky cum. <<He>> uses the milky fluid to finger paint love hearts on your cheek. "Mine."
-		
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "penis">>
 		<<switch random(1, 7)>>
@@ -658,23 +658,23 @@
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 3>>
 			<<He>> cums as you frot your <<penises>> together, shooting <<his>> impressive load over your <<penis>> and stomach. <<He>> wipes some of <<his>> cum on your lips. "Taste our love juices."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 4>>
 			<<He>> moans as <<he>> grinds downs hard on your <<penis>> to finish, thin legs shaking as <<he>> cums. <<He>> uses the cum as lube, furiously milking out the last of <<his>> cum against your <<penis>>.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 5>>
 			<<He>> giggles as <<he>> rubs hard against your <<penis>> to finish. <<He>> uses the cum as lube, furiously milking out the last of <<his>> semen against your <<penis>>. "N-next time I want you to im-impregnate my ass," <<he>> smirks.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 6>>
 			<<He>> screams as <<he>> grinds hard against your <<penis>> to finish, thin legs shaking as <<he>> cums. "N-next time I want you to fuck me."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes; you are surprised by how strong <<he>> is. Ropes of semen drench your crotch as <<he>> cums.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
 
@@ -682,24 +682,24 @@
 		<<switch random(1, 7)>>
 		<<case 1 2>>
 			<<He>> cums before <<he>> can frot your <<penis>>, ejaculating on the outside. Semen coats your cock and tummy; <<he>> seems upset with <<himself>>.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 3 4>>
 			<<He>> ejaculates onto your <<penis>> before <<he>> can frot your <<penises>> together, sending white streams of semen running down your <<penis>>; <<he>> seems disappointed.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 5>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<penis>> and ass.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 6>>
 			<<He>> whimpers as <<he>> ejaculates onto <<his>> own chest and begins crying. "W-why? Why didn't you fuck me? What can I do to deserve your cock?"
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> cums before your <<penises>> touch, covering you in <<his>> massive load. Semen coats your tummy, and crotch. <<He>> pants in your ear, "S-sorry for the mess. I love you so much."
-			
+
 			<<set $kylarSeen.pushUnique("saidLove")>>
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
@@ -709,18 +709,18 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums as you fuck <<his>> mouth, gasping against your cock. "God I love you so much."
-			
+
 			<<set $kylarSeen.pushUnique("saidLove")>>
 		<<case 4 5>>
 			<<He>> cums on the ground as you fuck <<his>> mouth. <<He>> backs away, "I'm sorry; I can't take anymore. Please forgive me."
-			
+
 		<<case 6 7>>
 			<<He>> grabs you by the ass and drives your cock deeply into <<his>> throat, ejaculating on <<his>> chest as <<he>> throats your cock.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "othermouth">>
 		<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body.
-		
+
 	<</if>>
 	<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
 		Despite wearing a condom, it was too damaged to stop the cum.
@@ -731,58 +731,58 @@
 		<<genericCondomEjaculation>>
 	<<elseif $NPCList[_nn].penis is "idle">>
 		<<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display.
-		
+
 	<<elseif $NPCList[_nn].penis is "thighs">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs, and wipes <<his>> cock clean on your ass.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs your legs, slamming <<his>> crotch hard into your ass as <<he>> cums and ejaculates onto your tummy.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<He>> seems impressed with <<himself>>.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grabs your hips, pulling you back and ejaculating onto your <<pussy>>. Semen coats your outer lips and pools around your legs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<He>> seems impressed with the mess <<hes>> made.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy. <<He>> turns beet red in anger, small fists shaking, but does nothing.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your cunt; <<he>> pulls <<his>> own hair in frustration.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<He>> seems upset at first, but then smiles as <<he>> looks down on your <<lewdness>> covered in <<his>> cum.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
@@ -790,90 +790,90 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grabs your hair, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your cunt.
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 4 5 6>>
 			<<He>> quiets and pounds <<his>> cock into you as <<he>> cums. Semen fills your <<pussy>> as you gasp at the feeling of being filled against your will.
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 7>>
 			<<He>> convulses and grinds down on your cunt as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<He>> looks down at the mess <<hes>> made with satisfaction.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<vaginalejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "cheeks" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "cheeks">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> palms your cheeks with <<his>> small hands and pulls you hard against <<him>>, ejaculating between your cheeks. You are surprised by <<his>> strength.
-			
+
 			<!-- Really should be onto PCs back given position. Or hair maybe. Esp next one -->
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. "You make me feel alive."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> holds your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel semen dripping down your crack, and feel filthy inside.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems furious, but at <<himself>>, shaking with anger.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. <<He>> seems disappointed but smiles as <<he>> looks at your drenched ass.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anus">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans, pounding your ass mercilessly as <<he>> cums. You whimper as you feel unwelcome semen streaming in your asshole.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> wordlessly grabs your hair, pulling you hard onto <<his>> cock as <<he>> cums. Semen fills you as you cry out. "I know you'll come to love me as much as I love you."
-			
+
 			<<set $kylarSeen.pushUnique("saidLove")>>
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 7>>
 			<<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your ass and runs down your legs. "No one will ever love you as much as I do."
-			
+
 			<<set $kylarSeen.pushUnique("saidLove")>>
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
@@ -882,29 +882,29 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pinches your <<breasts>> together on <<his>> cock as <<he>> cums, ejaculating onto them. "I guess I'm marking my territory" <<he>> says with a smile.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes the tip of <<his>> cock between your <<breasts>> and ejaculates onto them. Your <<breasts>> cool as semen slides down your body.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 7>>
 			<<He>> puts <<his>> hand behind your neck, mashing your face against <<his>> body and bearing down on your <<breasts>>; semen shoots between and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>> as you gasp.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "mouthentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grabs your chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. "It's OK because we belong to each other."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and palming your head, ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> licks off your face.
-			
+
 		<<case 7>>
 			<<He>> grasps your hair tightly in <<his>> small fist, stroking <<his>> cock while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "I'm sorry but it's your fault; you make me lose control of myself."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -912,15 +912,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grips hair at the nape your neck, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <<His>> face reddens in silent anger.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; frustrated, <<he>> stamps <<his>> feet in tantrum.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 7>>
 			<<He>> grasps your hair but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<He>> looks frustrated.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -928,15 +928,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grabs you under the chin with one hand and by your hair with the other, shoving <<his>> cock down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs you by the shoulder in one hand and grasps the base of <<his>> cock in the other, quietly ejaculating into your mouth. You gag as cum fills your mouth and drips down your throat.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 7>>
 			<<He>> palms your head, wildly thrusting <<his>> cock down your throat as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. "I just get so excited when you're with me."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -944,15 +944,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your feet, slickening them with semen.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 7>>
 			<<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. <<He>> seems impressed with the mess.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -960,15 +960,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your hands, slickening them with semen.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. "I'm sorry but I guess it's OK because we belong to each other."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<</switch>>
@@ -976,14 +976,14 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. Grabbing your hand by the wrist, <<he>> licks it clean.
-			
+
 		<<case 3 4>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process.
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 6 7>>
 			<<He>> spasms and moans, shooting thick streams of cum and splattering your chest in the process.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
@@ -991,7 +991,7 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as your work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze; <<he>> flicks <<his>> cock clean on the ground.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your chest, which is splattered with cum in the process.
@@ -999,7 +999,7 @@
 			<<handejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 6 7>>
 			<<He>> grunts and shoots thick ropes of semen onto your hand, making an impressive mess.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -1007,22 +1007,22 @@
 		<<switch random(1, 5)>>
 		<<case 1>>
 			<<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "I love that we can do this together, don't you?"
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 2>>
 			<<He>> rapidly rubs <<his>> cock and cums on the ground.
-			
+
 		<<case 3>>
 			<<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. <<He>> looks at your <<lewdness>> covered in <<his>> ejaculate and smiles.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4>>
 			<<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 5>>
 			<<He>> moans and rubs <<his>> cock wildly, sending cum flying all over your body. "I'm sorry, but I just lose control when you're near me."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
@@ -1030,42 +1030,42 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as you fuck <<his>> ass; ejaculating on the ground. "I love how you make me feel."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5>>
 			<<He>> moans as you pound <<his>> ass, and ejaculates on the ground.
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
-			
+
 		<</switch>>
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff."
-		
+
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> noisily cums as you fuck <<his>> cheeks, digging <<his>> fingers into your ass from behind and grinding your cock against <<his>> ass to finish. "Why didn't you fuck me? Am I not good enough for you?"
-			
+
 		<<case 4 5>>
 			<<He>> moans as you rub against <<his>> anus, and ejaculates on the ground. <<He>> begins crying, "Why don't you fuck me? Is there something wrong with me? Tell me so I can fix it!"
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <<He>> seems sad rather than spent.
-			
+
 		<</switch>>
-		
+
 	<<elseif $NPCList[_nn].penis is "penis" and $worn.genitals.type.includes("chastity")>>
 		<<switch random(2)>>
 			<<case 0>>
 				<<He>> gasps as <<he>> shoots <<his>> impressive load all over your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out."
-			
+
 			<<case 1>>
 				<<He>> moans in ecstacy, drenching your $worn.genitals.name in ropes of hot cum. "N-no... we need to be together!" <<He>> gasps in frustration.
-		
+
 			<<case 2>>
 				<<He>> screams in pleasure, showering your $worn.genitals.name in streams of sticky cum. <<He>> uses the milky fluid to finger paint love hearts on your cheek. "Mine."
-		
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "penis">>
 		<<switch random(1, 7)>>
@@ -1080,23 +1080,23 @@
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 3>>
 			<<He>> cums as you frot your <<penises>> together, shooting <<his>> impressive load over your <<penis>> and stomach. <<He>> wipes some of <<his>> cum on your lips. "Taste our love juices."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 4>>
 			<<He>> moans as <<he>> grinds downs hard on your <<penis>> to finish, thin legs shaking as <<he>> cums. <<He>> uses the cum as lube, furiously milking out the last of <<his>> cum against your <<penis>>.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 5>>
 			<<He>> groans as <<he>> rubs hard against your <<penis>> to finish. <<He>> uses the cum as lube, furiously milking out the last of <<his>> semen against your <<penis>>. "Next time I want you to impregnate my ass," <<he>> hisses.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 6>>
 			<<He>> screams as <<he>> grinds hard against your <<penis>> to finish, thin legs shaking as <<he>> cums. "N-next time I want you to fuck me."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes; you are surprised by how strong <<he>> is. Ropes of semen drench your crotch as <<he>> cums.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
 
@@ -1104,24 +1104,24 @@
 		<<switch random(1, 7)>>
 		<<case 1 2>>
 			<<He>> cums before <<he>> can frot your <<penis>>, ejaculating on the outside. Semen coats your cock and tummy; <<he>> seems upset with <<himself>>.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 3 4>>
 			<<He>> ejaculates onto your <<penis>> before <<he>> can frot your <<penises>> together, sending white streams of semen running down your <<penis>>; <<he>> seems disappointed.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 5>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<penis>> and ass.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 6>>
 			<<He>> whimpers as <<he>> ejaculates onto <<his>> own chest and begins crying. "W-why? Why didn't you fuck me? What can I do to deserve your cock?"
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> cums before your <<penises>> touch, covering you in <<his>> massive load. Semen coats your chest, tummy, and crotch. <<He>> licks your ear and whispers, "Look at you, covered in my cum. Mine now."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
@@ -1130,18 +1130,18 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums as you fuck <<his>> mouth; groaning as <<he>> ejaculates on the ground. "I'm sorry, I just can't take anymore."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 4 5>>
 			<<He>> cums on the ground as you fuck <<his>> mouth; <<he>> pulls away abruptly. "Please stop, I've had enough."
-			
+
 		<<case 6 7>>
 			<<He>> grabs your ass in <<his>> hands, pulling your cock into <<his>> throat; <<he>> ejaculates on <<his>> chest as <<he>> throats your <<genitals>>.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "othermouth">>
 		<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body.
-		
+
 	<</if>>
 	<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
 		Despite wearing a condom, it was too damaged to stop the cum.
diff --git a/game/base-combat/ejaculation-leighton.twee b/game/base-combat/ejaculation-leighton.twee
index d003d46f0ce7ce284956da992a625b1c018c0f49..34d1478790948eac1dd6f429d0e162a071bd940d 100644
--- a/game/base-combat/ejaculation-leighton.twee
+++ b/game/base-combat/ejaculation-leighton.twee
@@ -32,171 +32,171 @@
 			<<switch random(1, 4)>>
 			<<case 1 2>>
 				<<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, thighs shaking with orgasm.
-				
+
 			<<case 3 4>>
 				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably.
-				
+
 			<<case 5>>
 				<<He>> cups your head in <<his>> hand and grinds <<his>> clit against your nose, covering your face in ejaculate.
-				
+
 				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "leftarm">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs as you finish with <<his>> pussy, shaking <<his>> thighs together against your hand as <<his>> body convulses.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<<case 3 4>>
 				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt twitching against your hand uncontrollably.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<<case 5>>
 				<<He>> stifles a moan, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "rightarm">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs as you finish with <<his>> pussy, knees shaking as <<his>> body convulses.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<<case 3 4>>
 				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt twitching against your hand uncontrollably.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<<case 5>>
 				<<He>> stifles a moan, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
-				
+
 				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers.
-				
+
 			<<case 3 4>>
 				<<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs.
-				
+
 			<<case 5>>
 				<<He>> shakes as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate; <<he>> removes <<his>> hand from your pussy and wipes it off on your face, chuckling.
-				
+
 				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "feet">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> moans as you knead <<his>> pussy, jamming your toes inside with <<his>> hands as <<he>> finishes cumming.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<<case 3 4>>
 				<<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<<case 5>>
 				<<He>> tenses as <<he>> comes, soaking your feet with ejaculate. You jump back in surprise, nearly slipping on your wet feet.
-				
+
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "vagina">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> cums as you scissor your pussies together, moaning with pleasure.
-				
+
 			<<case 3 4>>
 				<<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, legs shaking as <<he>> cums.
-				
+
 			<<case 5>>
 				<<He>> cups <<his>> arms under your shoulders as <<his>> entire body shakes. Ejaculate streams from <<his>> pussy, drenching you.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "othermouth" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "othermouth">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<<case 3 4>>
 				<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<<case 5>>
 				<<He>> sighs into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs.
-				
+
 			<</switch>>
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "otheranus">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan.
-				
+
 			<<case 3 4>>
 				<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning.
-				
+
 			<<case 5>>
 				<<He>> bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "You've been taught well."
-				
+
 				<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "penis">>
 			<<switch random(1, 6)>>
 			<<case 1 2>>
 				<<He>> grabs your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. "That was a wonderful performance."
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 			<<case 3 4>>
 				<<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 			<<case 5>>
 				<<He>> bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+				<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 				<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">>
 			<<He>> cums on your <<penis>>; "Next time I expect penetration."
-			
+
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">>
 			<<He>> bucks <<his>> ass against your cock as <<he>> cums. "Next time I expect you to properly service me, not toy with me."
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> grinds <<his>> clit hard against your cock as <<he>> cums, ejaculating on your cock. <<He>> looks frustrated, "Next time I expect a good fucking, or there will be consequences..."
-			
-			<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
+			<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis">>
 			<<switch random(1, 4)>>
 			<<case 1 2>>
 				<<He>> cums as you fuck <<his>> mouth, pushing you off as <<he>> finishes.
-				
+
 			<<case 3 4>>
 				<<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a slimy mess. "Such a mess; you should go jump in the shower."
-				
+
 			<</switch>>
 		<<else>>
 			<<He>> convulses in orgasmic bliss.
-			
+
 		<</if>>
 	<<else>>
 		<<if $NPCList[_nn].vagina is "footjob">>
@@ -204,80 +204,80 @@
 			<<case 1 2 3>>
 				<<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and moves <<his>> foot to your body, <span class="red">stepping down heavily as you gasp for breath.</span> "I hope you're learning that I own you."
 				<<gtrauma>><<gstress>><<gpain>><<violence 6>><<bruise chest>><<hitstat>>
-				
+
 			<<case 4 5>>
 				<<He>> cums, chuckling as <<he>> removes <<his>> foot from your crotch and rubs it against your face, covering your face in your own wetness.
-				
+
 				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "vagina">>
 			<<switch random(1, 5)>>
 			<<case 1 2>>
 				<<He>> groans as <<he>> cums, dragging <<his>> wet pussy across your ass and thighs.
-				
+
 			<<case 3 4>>
 				<<He>> moans as <<he>> grabs you by the throat and grinds downs hard on your <<pussy>>.
 				<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-				
+
 			<<case 5>>
 				<<He>> grabs you by the hair, mashing <<his>> entire body against yours. Ejaculate streams from <<his>> pussy, drenching you.
-				
+
 				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "othermouth">>
 			<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body.
-			
+
 		<<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">>
 			<<He>> moans as <<he>> cums. <<He>> <span class="pink">grabs you by the hair and pulls you close:</span> "I hope you're learning that I own you."
-			
+
 		<<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">>
 			<<He>> groans and grabs you by the hair, grinding <<his>> crotch roughly against your face as <<his>> thighs shake with orgasm.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus">>
 			<<He>> shakes as <<he>> cums, grabbing you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and dragging your cock deeply into <<his>> ass as <<he>> releases a final moan.
-			
+
 		<<elseif $NPCList[_nn].vagina is "penis">>
 			<<He>> digs <<his>> nails painfully into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure.
-			
+
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">>
 			<<He>> moans as <<he>> cums on your throbbing cock. "Next time I expect penetration, or there will be consequences."
-			
+
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">>
 			<<He>> swivels <<his>> ass against your cock as <<he>> cums. "Next time I expect to be fucked properly or I'll punish you."
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot" and $worn.genitals.type.includes("chastity")>>
 			<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-			
+
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> grabs you by the throat, pulling you down and grinding <<his>> clit hard against your cock as <<he>> cums. "Next time you need to penetrate me or I'll punish you."
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-			
+
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis">>
 			<<He>> cums as you fuck <<his>> mouth, shoving you away as <<he>> gasps for air. "That's enough."
-			
+
 		<<else>>
 			<<switch random(1, 7)>>
 			<<case 1 2 3>>
 				<<He>> trembles with orgasm. Pulling your face close <<he>> says, "I hope you're learning that you're subject to my desires."
-				
+
 			<<case 4 5 6>>
 				<<He>> sighs quietly as <<he>> cums, smacking your ass. "Don't forget that I own you."
-				
+
 			<<case 7>>
 				<<He>> rapidly rubs <<his>> clit, stifling a moan as <<he>> cums; <<his>> pussy squirting and covering you in ejaculate.
-				
+
 				<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.goo += 1>>
 			<</switch>>
 		<</if>>
@@ -293,58 +293,58 @@
 		<<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals.
 	<<elseif $NPCList[_nn].penis is "idle">>
 		<<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a giggle at the sight.
-		
+
 	<<elseif $NPCList[_nn].penis is "thighs">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems disappointed.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> seems disappointed.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. "Quite a mess; you really should hit the showers."
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
@@ -352,89 +352,89 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina.
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 4 5 6>>
 			<<He>> quiets and grabs your shoulders, pulling you deeply onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless.
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 7>>
 			<<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<vaginalejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "cheeks" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "cheeks">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks.
-			
+
 			<!-- Really should be onto PCs back given position. Or hair maybe. Esp next one -->
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch; <<he>> seems pleased.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pinches your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems disappointed.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems disappointed.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anus">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans and thrusts deeply into your ass as <<he>> cums. You gasp as you take <<his>> entire length, and feel semen filling your insides.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 7>>
 			<<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. It's more than you can hold; cum oozes from your ass and runs down your legs.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -442,30 +442,30 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 7>>
 			<<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>. "Such a mess. You should hit the showers."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "mouthentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face; <<he>> chuckles at the resulting mess and hands you a tissue.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles and hands you a tissue.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 7>>
 			<<He>> grasps the top of your head, stroking <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. "Tsk tsk. You really need to learn to swallow. Such a mess."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -473,15 +473,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis; <<he>> seems disappointed.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems disappointed.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 7>>
 			<<He>> grasps your hair but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -490,11 +490,11 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cups you under the chin with one hand and by your hair with the other, thrusting deeply into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 7>>
 			<<He>> grasps the back of your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and drips down your chin. "Tsk tsk. You really need to learn to swallow." <<He>> hands you a tissue to clean up.
@@ -505,15 +505,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your feet, slickening them with semen.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 7>>
 			<<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -521,15 +521,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. "Such an enthusiatic student, using both hands."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your hands, slickening them with semen.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<He>> chuckles and hands you a tissue.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<</switch>>
@@ -537,15 +537,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. "Such a mess; you should wash your hands."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your left hand. Semen drips down your fingers. <<He>> hands you a tissue.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. <<He>> smiles and hands you a gym towel to clean up.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
@@ -553,82 +553,82 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as your work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "What messy fingers; you should go wash your hands."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your right hand. Semen cools on your fingers. <<He>> smiles and hands you a tissue.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. <<He>> smiles and hands you a gym towel to clean up.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is 0>>
 		<<switch random(1, 4)>>
 		<<case 1>>
 			<<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "Such a fast learner."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 2>>
 			<<He>> rapidly rubs <<his>> cock and aims at your face, covering it with semen. <<He>> smiles and hands you a tissue.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 3>>
 			<<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4>>
 			<<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "otheranus">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "Thanks, that's quite enough."
-			
+
 		<<case 4 5>>
 			<<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>.
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish. "Next time I expect penetration."
-			
+
 		<<case 4 5>>
 			<<He>> moans as you rub against <<his>> anus and ejaculates on the ground. You roll off <<him>>.
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
-			
+
 		<</switch>>
 	<!-- Special case male PC being orally serviced by male NPC with no other contact -->
 	<<elseif $NPCList[_nn].mouth is "penis" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].mouth is "penis">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums as you fuck <<his>> mouth, gasping against your cock. "You're quite the talented student."
-			
+
 		<<case 4 5>>
 			<<He>> cums on the ground as you fuck <<his>> mouth. <<He>> pushes you away, "Thanks, that's quite enough."
-			
+
 		<<case 6 7>>
 			<<He>> grabs you by the ass and drives your cock deeply into <<his>> throat, ejaculating on <<his>> chest as <<he>> throats your cock.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "othermouth">>
 		<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body.
-		
+
 	<</if>>
 	<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
 		Despite wearing a condom, it was too damaged to stop the cum.
@@ -639,59 +639,59 @@
 		<<genericCondomEjaculation>>
 	<<elseif $NPCList[_nn].penis is "idle">>
 		<<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display.
-		
+
 	<<elseif $NPCList[_nn].penis is "thighs">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs, and wipes <<his>> cock clean on your ass.
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs your legs, slamming <<his>> crotch hard into your ass as <<he>> cums and ejaculates onto your tummy.
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 7>>
 			<<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. "You'll submit for my pleasure anytime I wish; don't forget it."
-			
+
 			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shoves <<his>> thumb into your ass, pulling you back and ejaculating onto your <<pussy>>. Semen coats your outer lips and pools around your legs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt; flicking <<his>> cock dry on your body.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass; <<he>> dries <<his>> cock on your thighs.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "vaginaimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <span class="red"><<he>> spanks your ass angrily.</span>
 			<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your cunt; <<he>> groans in disappointment.
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. "I hope you're learning that you're mine any time I want you."
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
@@ -699,92 +699,92 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grabs your hair, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your bruised cunt.
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 4 5 6>>
 			<<He>> quiets and grabs your throat, pounding <<his>> cock into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air.
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-			
+
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
 		<<case 7>>
 			<<He>> convulses and grinds down on your cunt as <<he>> cums, smashing your <<clit>> and sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. "With more training you'll learn to better control your body."
-			
+
 			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 			<<vaginalejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "cheeks" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "cheeks">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass; giving you a parting smack on the butt.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> pinches the top of your cheeks with <<his>> hands and pulls you hard against <<him>>, ejaculating between your cheeks.
-			
+
 			<!-- Really should be onto PCs back given position. Or hair maybe. Esp next one -->
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. "You're a mess; perhaps I should throw you in the pool..."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> <span class="blue">slaps your asscheek with one hand</span> and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack.
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>>
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel semen dripping down your crack, and feel filthy inside.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. "I restrained myself; next time you're taking the whole shaft."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "anusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <span class="red"><<he>> spanks your ass angrily.</span>
 			<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems disappointed.
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 7>>
 			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. "I restrained myself. Next time you're taking my entire length."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anus">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> moans, pounding your ass mercilessly as <<he>> cums. You whimper as you take <<his>> entire length, and feel unwelcome semen streaming in your asshole.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> wordlessly grabs your hair, pulling you hard onto <<his>> cock as <<he>> cums. Semen fills you as you cry out, <<his>> girth stretching your anus.
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 		<<case 7>>
 			<<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your ass and runs down your legs. "Such a mess. With more training, you'll be able to better control yourself."
-			
+
 			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -792,30 +792,30 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pinches your <<breasts>> together on <<his>> cock as <<he>> cums, ejaculating onto them. "I hope you're learning that you exist for my pleasure."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs your hair to force you to look at <<him>> while <<he>> strokes the tip of <<his>> cock between your <<breasts>> and wordlessly ejaculates onto them. "I want you to look at me while I use you for my pleasure." Your <<breasts>> cool as semen slides down your body.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 7>>
 			<<He>> puts <<his>> hand behind your neck, mashing your face against <<his>> body and bears down on your <<breasts>>; semen shoots between and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>> as you gasp for air. "You're mine to use for my pleasure."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "mouthentrance">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grabs your chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. "I hope you understand who the master is."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> strokes <<his>> cock and holding you by the ears, quietly ejaculates onto your face. Warm cum drips down your forehead and nose. "Such a messy student; just look at you."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 7>>
 			<<He>> grasps your hair tightly in <<his>> fist, stroking <<his>> cock while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need more practise swallowing, you sloppy hoodlum."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -823,15 +823,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grips hair at the nape your neck, ejaculating onto your lips as you barely brush against the tip of <<his>> penis.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; frustrated, <<he>> wipes the cum off your face and shoves it in your mouth.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 7>>
 			<<He>> grasps your hair but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<He>> looks frustrated.
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -839,33 +839,33 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> grabs you under the chin with one hand and by your hair with the other, shoving <<his>> cock down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow.
-			
+
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> grabs you by the throat in one hand and grasps the base of <<his>> cock in the other, quietly ejaculating into your mouth. You gag as cum fills your mouth and drips down your throat.
 			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-			
+
 		<<case 7>>
 			<<He>> grasps your hair by the temples, wildly thrusting <<his>> cock down your throat as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. "Don't forget that you remain enrolled here at my pleasure."
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 			<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "feet">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your feet, slickening them with semen.
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 		<<case 7>>
 			<<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. "Such a filthy wretch."
-			
+
 			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
@@ -873,15 +873,15 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5 6>>
 			<<He>> quietly cums on your hands, slickening them with semen.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 7>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. "Such a messy <<girl>>."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
 			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<</switch>>
@@ -889,16 +889,16 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. Grabbing your hand by the wrist, <<he>> forces it into your mouth so you can taste <<him>>.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 		<<case 3 4>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 6 7>>
 			<<He>> spasms and moans, shooting thick streams of cum and splattering your chest in the process. "I need to train you to control my cock better."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
 			<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
@@ -906,16 +906,16 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as your work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze; <<he>> flicks <<his>> cock clean on your face.
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 4 5>>
 			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your chest, which is splattered with cum in the process. "You're a mess; go clean up."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 			<<handejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 		<<case 6 7>>
 			<<He>> grunts and shoots thick ropes of semen onto your hand, making an impressive mess. "Disgusting. Go clean yourself up."
-			
+
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
@@ -923,23 +923,23 @@
 		<<switch random(1, 5)>>
 		<<case 1>>
 			<<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "Don't forget you remain enrolled here at my pleasure."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 2>>
 			<<He>> rapidly rubs <<his>> cock and aims at your face, covering it with semen. "Your proper place is on your knees servicing my cock; don't forget it."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 3>>
 			<<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "A gift to remember me by."
-			
+
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<<case 4>>
 			<<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. "Such a messy pupil. Off you go, clean yourself up."
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<<case 5>>
 			<<He>> moans and rubs <<his>> cock wildly, sending cum flying all over your body; <<he>> wipes <<his>> penis clean in your hair.
-			
+
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 			<<hairejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.hair.semen += 1>>
@@ -948,47 +948,47 @@
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> groans as you fuck <<his>> ass; <<he>> catches <<his>> ejaculate in <<his>> hand and wipes it on your face. "I hope you're learning who owns you."
-			
+
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 4 5>>
 			<<He>> moans as you pound <<his>> ass, and ejaculates on the ground.
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent" and $worn.genitals.type.includes("chastity")>>
 		<<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key."
-		
+
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> noisily cums as you fuck <<his>> cheeks, digging <<his>> nails into your ass from behind and grinding your cock against <<his>> ass to finish. "I expect you to fuck me properly next time or you'll be punished."
-			
+
 		<<case 4 5>>
 			<<He>> moans as you rub against <<his>> anus, and ejaculates on the ground; <<he>> seems disappointed.
-			
+
 		<<case 6 7>>
 			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "That was fine, but next time you're bottom. Be ready."
-			
+
 		<</switch>>
 	<!-- Special case male PC being orally serviced by male NPC with no other contact -->
 	<<elseif $NPCList[_nn].mouth is "penis">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cums as you fuck <<his>> mouth; <<he>> catches <<his>> semen and rubs it into your stomach as <<he>> pushes you away. "I'm done now; off with you."
-			
+
 			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<<case 4 5>>
 			<<He>> cums on the ground as you fuck <<his>> mouth; <<he>> bites your cock, stopping you abruptly. "Enought, I'm finished."
-			
+
 		<<case 6 7>>
 			<<He>> grabs you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and painfully drives your cock into <<his>> throat; <<he>> ejaculates on <<his>> chest as <<he>> throats your cock.
-			
+
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "othermouth">>
 		<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body.
-		
+
 	<</if>>
 	<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
 		Despite wearing a condom, it was too damaged to stop the cum.
@@ -1003,15 +1003,15 @@
 	<<case 1 2>>
 		<<He>> absently strokes you, <span class="green">making you feel warm inside.</span> "Such a willing pupil; I've much more to teach you."
 		<<lstress>><<ltrauma>><<lpain>><<violence -3>>
-		
+
 	<<case 3 4>>
 		<<He>> strokes your hair, <span class="green">making you feel warm inside.</span> "I think you'll benefit from my attention."
 		<<lstress>><<ltrauma>><<lpain>><<violence -3>>
-		
+
 	<<case 5>>
 		<<He>> brushes your cheek with <<his>> hand. "Such a <<if $player.gender_appearance is "m">>handsome<<else>>beautiful<</if>> student." <span class="green">Your face flushes with pleasure.</span>
 		<<lstress>><<ltrauma>><<lpain>><<violence -3>>
-		
+
 	<</switch>>
 	<br><br>
 <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5>>
diff --git a/game/base-combat/ejaculation-plant.twee b/game/base-combat/ejaculation-plant.twee
index 11fa0763ca26cbe3efa1b60b8f8ba4c123c53161..0358cc34b3efa985b2a359244d7221f11d25c39a 100644
--- a/game/base-combat/ejaculation-plant.twee
+++ b/game/base-combat/ejaculation-plant.twee
@@ -52,7 +52,7 @@
 				<<case 3 4>>
 					<<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your hand.
 				<<case 5>>
-					<<He>> moans, spraying nectar onto your hand. With a mischievious look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you."
+					<<He>> moans, spraying nectar onto your hand. With a mischievous look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you."
 					<<nectarfed 8>>
 			<</switch>>
 		<</if>>
@@ -177,7 +177,7 @@
 		<<else>>
 			<<He>> grinds <<his>> clit hard against your <<penis>> as <<he>> cums, ejaculating on your cock. "I still wish you penetrated me," <<he>> says, "but that was good."
 		<</if>>
-		<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+		<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 	<<elseif $NPCList[_nn].mouth is "penis">>
 		<<switch random(1, 5)>>
 			<<case 1 2>>
@@ -417,7 +417,7 @@
 				<<default>>
 					<<switch random(1, 5)>>
 						<<case 1 2>>
-							<<He>> moans and thrusts deep into your <<bottom>> as <<he>> cums. You gasp as you take <<his>> entire length and nectar fills your insides. 
+							<<He>> moans and thrusts deep into your <<bottom>> as <<he>> cums. You gasp as you take <<his>> entire length and nectar fills your insides.
 						<<case 3 4>>
 							<<He>> grasps your shoulders and pulls you back onto <<his>> $NPCList[_nn].penisdesc with a squeal. You feel nectar fill your <<bottom>>.
 						<<case 5>>
@@ -514,7 +514,7 @@
 				<<case 3 4>>
 					<<He>> cums on your hands, slickening them with nectar. "I feel so special. Thank you!"
 				<<case 5>>
-					<<He>> spasms and moans, shooting thick streams of nectar and coating your hands. With a mischievious look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you."
+					<<He>> spasms and moans, shooting thick streams of nectar and coating your hands. With a mischievous look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you."
 					<<nectarfed 8>>
 			<</switch>>
 		<</if>>
@@ -533,7 +533,7 @@
 				<<case 3 4>>
 					<<He>> cums on your hand, slickening it with nectar. "I feel so special. Thank you!"
 				<<case 5>>
-					<<He>> spasms and moans, shooting thick streams of nectar and coating your hands. With a mischievious look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you."
+					<<He>> spasms and moans, shooting thick streams of nectar and coating your hands. With a mischievous look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you."
 					<<nectarfed 8>>
 			<</switch>>
 		<</if>>
@@ -597,7 +597,7 @@
 					<<He>> moans and <<his>> legs shake as <<he>> cums against your <<penis>>.
 			<</switch>>
 			Nectar coats your <<penis>>.
-			<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+			<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 		<</if>>
 	<<elseif $NPCList[_nn].mouth is "penis">>
 		<<switch random(1, 5)>>
diff --git a/game/base-combat/ejaculation-robin.twee b/game/base-combat/ejaculation-robin.twee
index cf9347bbbe1acabd039ed5fc240fa831ec121088..3399e608f8afafe7beb1c6c78dfa002fe136cab5 100644
--- a/game/base-combat/ejaculation-robin.twee
+++ b/game/base-combat/ejaculation-robin.twee
@@ -30,59 +30,51 @@
 	<<if $consensual is 1>>
 		<<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, small thighs shaking with orgasm.
-				
-			<<case 3 4>>
-				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably.
-				
-			<<case 5>>
-				<<He>> screams, cupping the back of your head in <<his>> hands and grinding <<his>> clit against your nose.
-				
+				<<case 1 2>>
+					<<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, small thighs shaking with orgasm.
+				<<case 3 4>>
+					<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably.
+				<<case 5>>
+					<<He>> screams, cupping the back of your head in <<his>> hands and grinding <<his>> clit against your nose.
 			<</switch>>
+
 		<<elseif $NPCList[_nn].vagina is "leftarm">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses.
-				
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
-			<<case 3 4>>
-				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand.
-				
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
-			<<case 5>>
-				<<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
-				
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
+				<<case 1 2>>
+					<<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
+				<<case 3 4>>
+					<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
+				<<case 5>>
+					<<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
 			<</switch>>
+
 		<<elseif $NPCList[_nn].vagina is "rightarm">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> sighs as you finish with <<his>> pussy, knees knocking as <<his>> body convulses.
-				
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
-			<<case 3 4>>
-				<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand.
-				
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
-			<<case 5>>
-				<<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
-				
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
+				<<case 1 2>>
+					<<He>> sighs as you finish with <<his>> pussy, knees knocking as <<his>> body convulses.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
+				<<case 3 4>>
+					<<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
+				<<case 5>>
+					<<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
 			<</switch>>
+
 		<<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers.
-				
-			<<case 3 4>>
-				<<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs.
-				
-			<<case 5>>
-				<<He>> screams as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate. "I love pleasuring myself with you."
-				
-				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
+				<<case 1 2>>
+					<<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers.
+				<<case 3 4>>
+					<<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs.
+				<<case 5>>
+					<<He>> screams as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate. "I love pleasuring myself with you."
+					<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
+
 		<<elseif $NPCList[_nn].vagina is "leftDildo">>
 			<<switch random(1, 5)>>
 				<<case 1 2>>
@@ -93,6 +85,7 @@
 					<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name.
 			<</switch>>
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.goo += 1>>
+
 		<<elseif $NPCList[_nn].vagina is "rightDildo">>
 			<<switch random(1, 5)>>
 				<<case 1 2>>
@@ -103,6 +96,7 @@
 					<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name.
 			<</switch>>
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.goo += 1>>
+
 		<<elseif $NPCList[_nn].vagina is "leftDildoAnus">>
 			<<switch random(1, 5)>>
 				<<case 1 2>>
@@ -113,6 +107,7 @@
 					<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm.
 			<</switch>>
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>>
+
 		<<elseif $NPCList[_nn].vagina is "rightDildoAnus">>
 			<<switch random(1, 5)>>
 				<<case 1 2>>
@@ -123,109 +118,104 @@
 					<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm.
 			<</switch>>
 			<<handejacstat>><<ejacstat>><<set $hygiene += 500>>
+
 		<<elseif $NPCList[_nn].vagina is "feet">>
 			<<switch random(1, 4)>>
 			<<case 1 2>>
 				<<He>> moans as you knead <<his>> pussy, jamming your toes inside with <<his>> hands as <<he>> finishes cumming.
-				
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<<case 3 4>>
 				<<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes.
-				
 				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 			<</switch>>
+
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Your underwear is really hard," <<he>> says.
+
 		<<elseif $NPCList[_nn].vagina is "vagina">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> cums as you scissor your pussies together, moaning with pleasure.
-				
-			<<case 3 4>>
-				<<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, thin legs shaking as <<he>> cums.
-				
-			<<case 5>>
-				<<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes. Ejaculate drenches your crotch as <<he>> squirts.
-				
-				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
+				<<case 1 2>>
+					<<He>> cums as you scissor your pussies together, moaning with pleasure.
+				<<case 3 4>>
+					<<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, thin legs shaking as <<he>> cums.
+				<<case 5>>
+					<<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes. Ejaculate drenches your crotch as <<he>> squirts.
+					<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
 			<</switch>>
+
 		<<elseif $NPCList[_nn].vagina is "othermouth">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids.
-				
-				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
-			<<case 3 4>>
-				<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick.
-				
-				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
-			<<case 5>>
-				<<He>> screams into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs.
-				
+				<<case 1 2>>
+					<<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids.
+					<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
+				<<case 3 4>>
+					<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick.
+					<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
+				<<case 5>>
+					<<He>> screams into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs.
 			<</switch>>
+
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Your underwear is really hard," <<he>> says.
+
 		<<elseif $NPCList[_nn].vagina is "otheranus">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan.
-				
-			<<case 3 4>>
-				<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning.
-				
-			<<case 5>>
-				<<He>> screams and bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "I feel so good when I'm with you."
-				
-				<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
+				<<case 1 2>>
+					<<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan.
+				<<case 3 4>>
+					<<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning.
+				<<case 5>>
+					<<He>> screams and bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "I feel so good when I'm with you."
+					<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
+
 		<<elseif $NPCList[_nn].vagina is "penis">>
 			<<switch random(1, 5)>>
-			<<case 1 2>>
-				<<He>> grabs your shoulders with <<his>> small hands as <<he>> cums, bouncing down hard against your cock as <<he>> shudders with pleasure. "You make me feel so good."
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
-			<<case 3 4>>
-				<<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
-			<<case 5>>
-				<<He>> cries out and bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs.
-				
-				<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
-				<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
+				<<case 1 2>>
+					<<He>> grabs your shoulders with <<his>> small hands as <<he>> cums, bouncing down hard against your cock as <<he>> shudders with pleasure. "You make me feel so good."
+				<<case 3 4>>
+					<<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch.
+				<<case 5>>
+					<<He>> cries out and bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs.
+					<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 			<</switch>>
+			<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "It's really hard."
+
 		<<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">>
 			<<He>> cums on your <<penis>> as you rub against the entrance and moans with pleasure.
+
 		<<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "It's really hard."
+
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">>
 			<<He>> bucks <<his>> ass against your cock as <<he>> cums, body shaking involuntarily.
+
 		<<elseif $NPCList[_nn].vagina is "frot" and $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> cums against your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "It's really hard."
+
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> grinds <<his>> clit hard against your cock as <<he>> cums, ejaculating on your cock. <<He>> smiles as <<he>> gets up.
-			
-			<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+			<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis">>
 			<<switch random(1, 4)>>
-			<<case 1 2>>
-				<<He>> cums as you fuck <<his>> mouth, smiling as <<he>> finishes.
-				
-			<<case 3 4>>
-				<<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a slimy mess. "I love what you do to me."
-				
+				<<case 1 2>>
+					<<He>> cums as you fuck <<his>> mouth, smiling as <<he>> finishes.
+				<<case 3 4>>
+					<<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a slimy mess. "I love what you do to me."
 			<</switch>>
+
 		<<else>>
 			<<He>> convulses in orgasmic bliss.
-			
 		<</if>>
+
 	<<else>><!-- There should be non non-consensual Robin events -->
-		<<He>> collapses into orgasmic bliss.
-		
+		<<He>> cries out as <<he>> orgasms. <<He>> stops moving save for ragged breathing.
 	<</if>>
 	<br><br>
 <</if>>
@@ -234,356 +224,299 @@
 <<if $consensual is 1>>
 	<<if _condomResult is "contained">>
 		<<genericCondomEjaculation>>
+
 	<<elseif npcHasStrapon(_nn)>>
 		<<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals.
+
 	<<elseif $NPCList[_nn].penis is "idle">>
 		<<He>> groans as a wet patch forms on <<his>> trousers. You giggle at the sight.
-		
+
 	<<elseif $NPCList[_nn].penis is "thighs">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs.
-			
-			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy.
-			
-			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
-		<<case 7>>
-			<<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy.
-			
-			<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
-			<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs.
+				<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
+			<<case 4 5 6>>
+				<<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy.
+				<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
+			<<case 7>>
+				<<He>> groans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy.
+				<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
+				<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
+
 	<<elseif $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?"
+
 	<<elseif $NPCList[_nn].penis is "vaginaentrance">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs.
-			
-			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt.
-			
-			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-		<<case 7>>
-			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass.
-			
-			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs.
+			<<case 4 5 6>>
+				<<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt.
+			<<case 7>>
+				<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass.
+				<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
+		<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?"
+
 	<<elseif $NPCList[_nn].penis is "vaginaimminent">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems disappointed.
-			
-			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> looks disappointed.
-			
-			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-		<<case 7>>
-			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass.
-			
-			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems disappointed.
+			<<case 4 5 6>>
+				<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> looks disappointed.
+			<<case 7>>
+				<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass.
+				<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
+		<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "vagina">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina.
-			
-			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
-			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
-		<<case 4 5 6>>
-			<<He>> quiets and grabs your shoulders with <<his>> small hands, pulling you onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless.
-			
-			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
-			<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
-		<<case 7>>
-			<<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs.
-			
-			<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-			<<vaginalejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
-			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina.
+			<<case 4 5 6>>
+				<<He>> quiets and grabs your shoulders with <<his>> small hands, pulling you onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless.
+			<<case 7>>
+				<<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs.
+
+				<<vaginalentranceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
+				<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
+		<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
+		<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription "human">>
+
 	<<elseif $NPCList[_nn].penis is "cheeks" and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?"
+
 	<<elseif $NPCList[_nn].penis is "cheeks">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks.
-			
-			<!-- Really should be onto PCs back given position. Or hair maybe. Esp next one -->
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-		<<case 7>>
-			<<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch; <<he>> seems pleased.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
+			<<case 1 2 3>>
+				<<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass.
+			<<case 4 5 6>>
+				<<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks.
+				<!-- Really should be onto PCs back given position. Or hair maybe. Esp next one -->
+				<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+			<<case 7>>
+				<<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. <<He>> seems pleased.
+				<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
+		<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?"
+
 	<<elseif $NPCList[_nn].penis is "anusentrance">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> palms your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-		<<case 7>>
-			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
+			<<case 1 2 3>>
+				<<He>> palms your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack.
+			<<case 4 5 6>>
+				<<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom.
+			<<case 7>>
+				<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch.
+				<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
+		<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?"
+
 	<<elseif $NPCList[_nn].penis is "anusimminent">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems disappointed.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-		<<case 7>>
-			<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch.
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
+			<<case 1 2 3>>
+				<<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems disappointed.
+			<<case 4 5 6>>
+				<<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset.
+			<<case 7>>
+				<<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch.
+				<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
+		<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "anus">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> moans and thrusts into your ass as <<he>> cums. You gasp as you feel semen filling you.
-			
-			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure.
-			
-			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
-		<<case 7>>
-			<<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. You're surprised at the amount; cum oozes from your ass and runs down your legs.
-			
-			<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
-			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> moans and thrusts into your ass as <<he>> cums. You gasp as you feel semen filling you.
+			<<case 4 5 6>>
+				<<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure.
+			<<case 7>>
+				<<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. You're surprised at the amount; cum oozes from your ass and runs down your legs.
+				<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
+		<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 	<<elseif $NPCList[_nn].penis is "chest">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum.
-			
-			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them.
-			
-			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
-		<<case 7>>
-			<<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>.
-			
-			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum.
+			<<case 4 5 6>>
+				<<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them.
+			<<case 7>>
+				<<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>.
 		<</switch>>
+		<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "mouthentrance">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. <<He>> giggles and <<his>> face looks excited.
-			
-			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles and cleans you off.
-			
-		<<case 7>>
-			<<He>> gasps and strokes <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. You're impressed by the volume and <<he>> looks oddly pleased with <<himself>>.
-			
-			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
-			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. <<He>> giggles and <<his>> face looks excited.
+				<<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
+			<<case 4 5 6>>
+				<<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles and cleans you off.
+			<<case 7>>
+				<<He>> gasps and strokes <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. You're impressed by the volume and <<he>> looks oddly pleased with <<himself>>.
+				<<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
+				<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
+		<<faceejacstat>><<ejacstat>>
+
 	<<elseif $NPCList[_nn].penis is "mouthimminent">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
 			<<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis; <<he>> seems disappointed with <<his>> lack of control.
-			
-			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
+
 		<<case 4 5 6>>
 			<<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems disappointed.
-			
-			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<<case 7>>
 			<<He>> cups your head but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth.
-			
-			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 		<</switch>>
+		<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "mouth">>
-	<!-- this is picking up women NPCs...? -->
+		<!-- this is picking up women NPCs...? -->
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> cups you under the chin with one hand and holds the back of your head with the other, thrusting into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth.
-			
-			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat.
-			
-			<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
-		<<case 7>>
-			<<He>> palms your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> flails. "Wow, that was fun!"
-			
-			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
-			<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> cups you under the chin with one hand and holds the back of your head with the other, thrusting into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth.
+			<<case 4 5 6>>
+				<<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat.
+			<<case 7>>
+				<<He>> palms your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> flails. "Wow, that was fun!"
+				<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<</switch>>
+		<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "feet">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet.
-			
-			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> quietly cums on your feet, slickening them with semen.
-			
-			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
-		<<case 7>>
-			<<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process.
-			
-			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
-			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet.
+			<<case 4 5 6>>
+				<<He>> quietly cums on your feet, slickening them with semen.
+			<<case 7>>
+				<<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process.
 		<</switch>>
+		<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum.
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> quietly cums on your hands, slickening them with semen.
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
-		<<case 7>>
-			<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<He>> giggles and apologises.
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
-			<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum.
+			<<case 4 5 6>>
+				<<He>> quietly cums on your hands, slickening them with semen.
+			<<case 7>>
+				<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<He>> giggles and apologises.
+				<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 		<</switch>>
+	<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "leftarm">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. "You make me feel good."
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
-		<<case 4 5 6>>
-			<<He>> quietly cums on your left hand. Semen drips down your fingers. "I love how you make me feel."
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
-		<<case 7>>
-			<<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. You're impressed by the volume from such a small body.
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
-			<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. "You make me feel good."
+
+			<<case 4 5 6>>
+				<<He>> quietly cums on your left hand. Semen drips down your fingers. "I love how you make me feel."
+			<<case 7>>
+				<<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. You're impressed by the volume from such a small body.
+				<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 		<</switch>>
+		<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is "rightarm">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> groans as your work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "You make me feel special."
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
+			<<case 1 2 3>>
+				<<He>> groans as your work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "You make me feel special."
 			<<case 4 5 6>>
-			<<He>> quietly cums on your right hand. Semen cools on your fingers. "I love how you make me feel."
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
-		<<case 7>>
-			<<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. You're impressed by the volume from such a small body.
-			
-			<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
+				<<He>> quietly cums on your right hand. Semen cools on your fingers. "I love how you make me feel."
+			<<case 7>>
+				<<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. You're impressed by the volume from such a small body.
 		<</switch>>
+		<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
+
 	<<elseif $NPCList[_nn].penis is 0>>
 		<<switch random(1, 4)>>
-		<<case 1>>
-			<<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. <<He>> laughs at the mess.
-			
-			<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
-		<<case 2>>
-			<<He>> rapidly rubs <<his>> cock and moans, ejaculating on the ground. "You make me feel good."
-			
-		<<case 3>>
-			<<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "That was fun!"
-			
-			<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-		<<case 4>>
-			<<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<He>> giggles at the mess <<hes>> made.
-			
+			<<case 1>>
+				<<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. <<He>> laughs at the mess.
+				<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
+			<<case 2>>
+				<<He>> rapidly rubs <<his>> cock and moans, ejaculating on the ground. "You make me feel good."
+			<<case 3>>
+				<<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "That was fun!"
+				<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+			<<case 4>>
+				<<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<He>> giggles at the mess <<hes>> made.
 		<</switch>>
+
 	<<elseif $NPCList[_nn].penis is "otheranus">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "That feels so good."
-			
-		<<case 4 5>>
-			<<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>.
-			
-		<<case 6 7>>
-			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "That was great; when can we do it again?"
-			
+			<<case 1 2 3>>
+				<<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "That feels so good."
+			<<case 4 5>>
+				<<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>.
+			<<case 6 7>>
+				<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "That was great; when can we do it again?"
 		<</switch>>
+
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and $worn.genitals.type.includes("chastity")>>
 		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?"
+
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 		<<switch random(1, 7)>>
-		<<case 1 2 3>>
-			<<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish.
-			
-		<<case 4 5>>
-			<<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> smiles contentedly.
-			
-		<<case 6 7>>
-			<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
-			
+			<<case 1 2 3>>
+				<<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish.
+			<<case 4 5>>
+				<<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> smiles contentedly.
+			<<case 6 7>>
+				<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
 		<</switch>>
-		
+
 	<<elseif $NPCList[_nn].penis is "penis" and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> shoots <<his>> cum over your $worn.genitals.name. <<He>> strokes your face. "You're so cute."
+		<<He>> gasps as <<he>> shoots <<his>> cum over your $worn.genitals.name. <<He>> strokes your face. "You're so cute."
 
 	<<elseif $NPCList[_nn].penis is "penis">>
-			<<He>> cums as you knead your <<penises>> together, moaning with pleasure. "That was fun."
+		<<He>> cums as you knead your <<penises>> together, moaning with pleasure. "That was fun."
 
 	<<elseif $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">>
 		<<if $worn.genitals.type.includes("chastity")>>
 			<<He>> gasps as <<he>> shoots <<his>> cum over your $worn.genitals.name. <<He>> strokes your face. "You're so cute."
-
 		<<else>>
 			<<He>> cums before <<he>> can frot your <<penis>>. <<His>> Semen coats your cock and tummy. <<He>> smiles contentedly.
-
 		<</if>>
+
 	<!-- Special case male PC being orally serviced by male NPC with no other contact -->
 	<<elseif $NPCList[_nn].mouth is "penis">>
 		<<switch random(1, 5)>>
-		<<case 1 2 3>>
-			<<He>> cums as you fuck <<his>> mouth, gasping against your cock. "That was so much fun!"
-			
-		<<case 4 5>>
-			<<He>> cums on the ground as you fuck <<his>> mouth. You stop and pet <<his>> head.
-			
+			<<case 1 2 3>>
+				<<He>> cums as you fuck <<his>> mouth, gasping against your cock. "That was so much fun!"
+			<<case 4 5>>
+				<<He>> cums on the ground as you fuck <<his>> mouth. You stop and pet <<his>> head.
 		<</switch>>
+
 	<<elseif $NPCList[_nn].penis is "othermouth">>
 		<<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body.
-		
 	<</if>>
+
 	<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
 		Despite wearing a condom, it was too damaged to stop the cum.
 	<</if>>
 	<br><br>
+
 <<else>><!-- There should be non non-consensual Robin events -->
-	<<He>> collapses into orgasmic bliss.
-	<br><br>
+	<<He>> cries out as <<he>> orgasms. <<He>> stops moving save for ragged breathing.
 <</if>>
-
+<br><br>
 <!-- No finishing moves for Robin. It would be out of character given size and personality -->
 <</widget>>
\ No newline at end of file
diff --git a/game/base-combat/ejaculation-sydney.twee b/game/base-combat/ejaculation-sydney.twee
index 196b047c82073715a9780547457d7cffd04885e4..7cbd73368657905ba867b76fd8f6a7b444838c7f 100644
--- a/game/base-combat/ejaculation-sydney.twee
+++ b/game/base-combat/ejaculation-sydney.twee
@@ -23,7 +23,7 @@
 <<else>>
 	<<set $pronoun to "i">>
 <</if>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <!-- Female SYDNEY -->
 <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">>
@@ -205,7 +205,7 @@
 			<</if>>
 		<!-- following appear to be Male PC to Female Antagonist only? -->
 		<<elseif $NPCList[_nn].vagina is "otheranus" and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"How can it still feel so good through two devices?" <<he>> asks.
 			<<else>>
@@ -273,21 +273,21 @@
 			<<else>>
 				<<switch _sydneyStatus>>
 					<<case "pure" "pureLust">>
-						<<He>> wraps <<his>> arms around you as <<he>> cums, instinctively bouncing against your cock as <<he>> shudders with pleasure. <<if $internalejac>><<He>> pats <<his>> belly. "Am... am I gonna have a baby?" <<npcincr Sydney purity -5>><<llspurity>><<set $sydneyDaily.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>>
+						<<He>> wraps <<his>> arms around you as <<he>> cums, instinctively bouncing against your cock as <<he>> shudders with pleasure. <<if $internalejac and $pregnancyspeechdisable is "f">><<He>> pats <<his>> belly. "Am... am I gonna have a baby?" <<npcincr Sydney purity -5>><<llspurity>><<set $sydneyDaily.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>>
 						<br><br>
-						<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+						<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 					<<case "corrupt" "corruptLust">>
-						<<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. <<if $internalejac>><<He>> pats <<his>> belly. "Keep this up and I'll get pregnant for sure." <<npcincr Sydney purity -5>><<llspurity>><<set $sydneyDaily.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>>
+						<<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. <<if $internalejac>><<if $pregnancyspeechdisable is "f">><<He>> pats <<his>> belly. "Keep this up and I'll get pregnant for sure."<</if>> <<npcincr Sydney purity -5>><<llspurity>><<set $sydneyDaily.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>>
 						<br><br>
-						<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+						<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 					<<default>>
 						<<He>> cries out and bucks on your lap as <<he>> cums. <<if $internalejac>><<He>> pats <<his>> belly. "W-well, <<sydneyMum>> always said <<nnpc_he "Sirris">> wanted grandkids..." <<npcincr Sydney purity -5>><<llspurity>><<set $sydneyDaily.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>>
 						<br><br>
-						<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+						<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 				<</switch>>
 			<</if>>
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"How can it still feel so good through two devices?" <<he>> asks.
 			<<else>>
@@ -300,7 +300,7 @@
 			<<He>> cums on your <<penis>> as you rub against the entrance, and <<he>> moans with pleasure.
 			<br><br>
 		<<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"How can it still feel so good through two devices?" <<he>> asks.
 			<<else>>
@@ -313,7 +313,7 @@
 			<<He>> bucks <<his>> ass against your cock as <<he>> cums, body shaking involuntarily.
 			<br><br>
 		<<elseif $NPCList[_nn].vagina is "frot" and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"How can it still feel so good through two devices?" <<he>> asks.
 			<<else>>
@@ -323,7 +323,7 @@
 		<<elseif $NPCList[_nn].vagina is "frot">>
 			<<He>> grinds <<his>> <<sydneyGenitals>> hard against your cock as <<he>> cums. <<He>> covers <<his>> blush, but you think <<hes>> smiling.
 			<br><br>
-			<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+			<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 		<!-- Special case male PC with female NPC -->
 		<<elseif $NPCList[_nn].mouth is "penis" and playerHasStrapon()>>
 			<<switch _sydneyStatus>>
@@ -362,7 +362,7 @@
 				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.goo += 1>>
 			<</switch>>
 		<<elseif $NPCList[_nn].vagina is "vagina" and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"I'll break both of these things one day," <<he>> says.
 			<<else>>
@@ -406,10 +406,10 @@
 			<<He>> digs <<his>> fingers into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure.
 			<br><br>
 		<<elseif $NPCList[_nn].vagina is "penis">>
-			<<He>> digs <<his>> fingers into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. <<if $internalejac>><<He>> pats <<his>> belly. "If I keep doing this, I'll get your baby for sure." <<npcincr Sydney purity -5>><<llspurity>><<set $sydneyDaily.sydneyCum to true>><<else>> <<He>> looks irritated and manic. "I wanted you to cum inside! Did I not go hard enough?!" <<npcincr Sydney purity -2>><<lspurity>><</if>>
+			<<He>> digs <<his>> fingers into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. <<if $internalejac and $pregnancyspeechdisable is "f">><<He>> pats <<his>> belly. "If I keep doing this, I'll get your baby for sure." <<npcincr Sydney purity -5>><<llspurity>><<set $sydneyDaily.sydneyCum to true>><<else>> <<He>> looks irritated and manic. "I wanted you to cum inside! Did I not go hard enough?!" <<npcincr Sydney purity -2>><<lspurity>><</if>>
 			<br><br>
 		<<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"I'll break both of these things one day," <<he>> says. "I need you inside me."
 			<<else>>
@@ -432,10 +432,10 @@
 				<<if $bodywritingLvl gte 2>>
 					<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 				<</if>>
-			<</if>>			
+			<</if>>
 			<br><br>
 		<<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"I'll break both of these things one day," <<he>> says. "I need you inside me."
 			<<else>>
@@ -446,7 +446,7 @@
 			<</if>>
 			<br><br>
 		<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">>
-			<<He>> swivels <<his>> ass against your cock as <<he>> cums. 
+			<<He>> swivels <<his>> ass against your cock as <<he>> cums.
 			<<if _sydneyChastity>>
 				"I'll break this thing one day," <<he>> says. "I need you inside me."
 			<<else>>
@@ -454,10 +454,10 @@
 				<<if $bodywritingLvl gte 2>>
 					<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 				<</if>>
-			<</if>>			
+			<</if>>
 			<br><br>
 		<<elseif $NPCList[_nn].vagina is "frot" and $worn.genitals.type.includes("chastity")>>
-			<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+			<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 			<<if _sydneyChastity>>
 				"I'll break both of these things one day," <<he>> says.
 			<<else>>
@@ -525,7 +525,7 @@
 			<</switch>>
 		<</if>>
 	<<elseif $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
-		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. 
+		<<He>> gasps as <<he>> cums onto your $worn.genitals.name.
 		<<if _sydneyChastity>>
 			"How can it still feel so good through two devices?" <<he>> asks.
 		<<else>>
@@ -559,7 +559,7 @@
 			<</switch>>
 		<</if>>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
-		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. 
+		<<He>> gasps as <<he>> cums onto your $worn.genitals.name.
 		<<if _sydneyChastity>>
 			"How can it still feel so good through two devices?" <<he>> asks.
 		<<else>>
@@ -597,7 +597,7 @@
 		<<else>>
 			<<switch _sydneyStatus>>
 				<<case "pure" "pureLust">>
-					<<He>> wraps <<his>> arms around you as <<he>> cums, instinctively thrusting deep into you as <<he>> shudders with pleasure. "Are... are you gonna have a baby?" <<npcincr Sydney purity -5>><<llspurity>>
+					<<He>> wraps <<his>> arms around you as <<he>> cums, instinctively thrusting deep into you as <<he>> shudders with pleasure. <<if $pregnancyspeechdisable is "f">>"Are... are you gonna have a baby?"<</if>> <<npcincr Sydney purity -5>><<llspurity>>
 					<br><br>
 					<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 				<<case "corrupt" "corruptLust">>
@@ -613,7 +613,7 @@
 			<</switch>>
 		<</if>>
 	<<elseif $NPCList[_nn].penis is "cheeks" and $worn.genitals.type.includes("chastity")>>
-		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. 
+		<<He>> gasps as <<he>> cums onto your $worn.genitals.name.
 		<<if _sydneyChastity>>
 			"How can it still feel so good through two devices?" <<he>> asks.
 		<<else>>
@@ -642,7 +642,7 @@
 			<</switch>>
 		<</if>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
-		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. 
+		<<He>> gasps as <<he>> cums onto your $worn.genitals.name.
 		<<if _sydneyChastity>>
 			"How can it still feel so good through two devices?" <<he>> asks.
 		<<else>>
@@ -674,7 +674,7 @@
 			<</switch>>
 		<</if>>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
-		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. 
+		<<He>> gasps as <<he>> cums onto your $worn.genitals.name.
 		<<if _sydneyChastity>>
 			"How can it still feel so good through two devices?" <<he>> asks.
 		<<else>>
@@ -692,7 +692,7 @@
 		<<else>>
 			<<switch _sydneyStatus>>
 				<<case "pure" "pureLust">>
-					<<He>> covers <<his>> mouth and pulls away from your ass at the last second. You feel warm semen dripping down your bottom. 
+					<<He>> covers <<his>> mouth and pulls away from your ass at the last second. You feel warm semen dripping down your bottom.
 					<br><br>
 					<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 				<<case "corrupt" "corruptLust">>
@@ -732,7 +732,7 @@
 			<<He>> moans loudly as <<he>> releases a full load onto your chest.
 			<br><br>
 			<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
-		<<else>>	
+		<<else>>
 			<<switch _sydneyStatus>>
 				<<case "pure" "pureLust">>
 					<<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>. <<He>> grunts as semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>.
@@ -756,7 +756,7 @@
 			<<He>> moans loudly as <<he>> releases a full load onto your face.
 			<br><br>
 			<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
-		<<else>>	
+		<<else>>
 			<<switch _sydneyStatus>>
 				<<case "pure" "pureLust">>
 					You stroke <<his>> cock and <<he>> quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles and cleans you off, and examines <<his>> cum between <<his>> fingers.
@@ -905,7 +905,7 @@
 			<</switch>>
 		<</if>>
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and $worn.genitals.type.includes("chastity")>>
-		<<He>> gasps as <<he>> cums onto your $worn.genitals.name. 
+		<<He>> gasps as <<he>> cums onto your $worn.genitals.name.
 		<<if _sydneyChastity>>
 			"How can it still feel so good through two devices?" <<he>> asks.
 		<<else>>
@@ -1007,7 +1007,7 @@
 				<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
-		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. 
+		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry.
 		<<if _sydneyChastity>>
 			"I'll break these things one day," <<he>> says. "I need to be inside you."
 		<<else>>
@@ -1015,7 +1015,7 @@
 			<<if $bodywritingLvl gte 2>>
 				<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 			<</if>>
-		<</if>>			
+		<</if>>
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "vaginaentrance">>
 		<<switch random(1, 7)>>
@@ -1034,7 +1034,7 @@
 			<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
-		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. 
+		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry.
 		<<if _sydneyChastity>>
 			"I'll break these things one day," <<he>> says. "I need to be inside you."
 		<<else>>
@@ -1042,11 +1042,11 @@
 			<<if $bodywritingLvl gte 2>>
 				<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 			<</if>>
-		<</if>>			
+		<</if>>
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent" and _sydneyChastity>>
-		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. 
-		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."	
+		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry.
+		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "vaginaimminent">>
 		<<switch random(1, 7)>>
@@ -1067,7 +1067,7 @@
 	<<elseif $NPCList[_nn].penis is "vagina">>
 		<<switch random(1, 7)>>
 		<<case 1 2 3>>
-			<<He>> grabs your hair, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your cunt. "I'm not going to stop until I put a baby in you."
+			<<He>> grabs your hair, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your cunt. <<if $pregnancyspeechdisable is "f">>"I'm not going to stop until I put a baby in you."<</if>>
 			<br><br>
 			<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 		<<case 4 5 6>>
@@ -1082,7 +1082,7 @@
 			<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "cheeks" and $worn.genitals.type.includes("chastity")>>
-		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. 
+		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry.
 		<<if _sydneyChastity>>
 			"I'll break these things one day," <<he>> says. "I need to be inside you."
 		<<else>>
@@ -1090,11 +1090,11 @@
 			<<if $bodywritingLvl gte 2>>
 				<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 			<</if>>
-		<</if>>			
+		<</if>>
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "cheeks" and _sydneyChastity>>
-		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. 
-		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."	
+		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry.
+		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "cheeks">>
 		<<switch random(1, 7)>>
@@ -1112,7 +1112,7 @@
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
-		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. 
+		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry.
 		<<if _sydneyChastity>>
 			"I'll break these things one day," <<he>> says. "I need to be inside you."
 		<<else>>
@@ -1120,11 +1120,11 @@
 			<<if $bodywritingLvl gte 2>>
 				<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 			<</if>>
-		<</if>>			
+		<</if>>
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "anusentrance" and _sydneyChastity>>
-		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. 
-		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."	
+		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry.
+		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "anusentrance">>
 		<<switch random(1, 7)>>
@@ -1142,7 +1142,7 @@
 			<<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.bottom.semen += 2>>
 		<</switch>>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.type.includes("chastity") and $worn.genitals.anal_shield is 1>>
-		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. 
+		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry.
 		<<if _sydneyChastity>>
 			"I'll break these things one day," <<he>> says. "I need to be inside you."
 		<<else>>
@@ -1150,11 +1150,11 @@
 			<<if $bodywritingLvl gte 2>>
 				<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 			<</if>>
-		<</if>>			
+		<</if>>
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "anusimminent" and _sydneyChastity>>
-		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. 
-		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."	
+		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry.
+		"I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless."
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "anusimminent">>
 		<<switch random(1, 7)>>
@@ -1351,7 +1351,7 @@
 			<br><br>
 		<</switch>>
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and $worn.genitals.type.includes("chastity")>>
-		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. 
+		<<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry.
 		<<if _sydneyChastity>>
 			"I'll break these things one day," <<he>> says. "I need to be inside you."
 		<<else>>
@@ -1359,11 +1359,11 @@
 			<<if $bodywritingLvl gte 2>>
 				<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 			<</if>>
-		<</if>>			
+		<</if>>
 		<br><br>
 	<<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and _sydneyChastity>>
-		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. 
-		"I'll break this thing one day," <<he>> says. "I need you inside me."	
+		<<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry.
+		"I'll break this thing one day," <<he>> says. "I need you inside me."
 		<br><br>
 	<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 		<<switch random(1, 7)>>
@@ -1381,7 +1381,7 @@
 				<<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>>
 			<</if>>
 	<<elseif $NPCList[_nn].penis isnot 0 and $NPCList[_nn].penis.startsWith("penis") and $worn.genitals.type.includes("chastity")>>
-		<<He>> gasps as <<he>> cums against your $worn.genitals.name. 
+		<<He>> gasps as <<he>> cums against your $worn.genitals.name.
 		<<if _sydneyChastity>>
 			"I'll break both of these things one day," <<he>> says.
 		<<else>>
@@ -1449,7 +1449,7 @@
 
 <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 6.5>>
 
-	With a sudden manic expression, <<he>> <span class="red">grips your hair and pulls your face to <<hers>>.</span> 
+	With a sudden manic expression, <<he>> <span class="red">grips your hair and pulls your face to <<hers>>.</span>
 	<<switch _sydneyStatus>>
 		<<case "corrupt" "corruptLust">>
 			"Don't test me, darling," <<he>> says in a husky, breathless whisper. "I know how to make it hurt. If you can't handle my lust, you're not ready for my wrath." <<He>> kisses you on the cheek.
diff --git a/game/base-combat/ejaculation.twee b/game/base-combat/ejaculation.twee
index f4229698e5459591004b5b8715654b134021a912..7574d4176182af749aa918ea647309199eae1987 100644
--- a/game/base-combat/ejaculation.twee
+++ b/game/base-combat/ejaculation.twee
@@ -122,159 +122,173 @@
 			<</if>>
 
 			<<if npcHasStrapon(_nn)>>
-				<<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals.
-			<</if>>
+				<<switch $NPCList[_nn].penis>>
+					<<case leftDildoAnus rightDildoAnus>>
+						<<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyLeft.name.
+					<<default>>
+						<<He>> ?orgasmMoans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals.
+				<</switch>>
+			<<else>>
 
-			<<if $NPCList[_nn].penis is "thighs">>
-				<<He>> ejaculates onto your thighs.
-				<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "otheranusfrot">>
+					<<He>> ejaculates into <<his>> hand as <<he>> rubs <<his>> ass against your <<penis>>.
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
-				<<He>> ejaculates onto your $worn.genitals.name.
-				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-			<<elseif $NPCList[_nn].penis is "vaginaentrance">>
-				<<if $worn.genitals.type.includes("hidden")>>
+				<<if $NPCList[_nn].penis is "otheranus">>
+					<<He>> ?orgasmMoans and ejaculates <<print either("onto <<his>> chest","into the air","into <<his>> hand")>> as <<he>> <<print either("fucks","slams","thrusts")>> <<his>> ass against your <<penis>>.
+				<</if>>
+
+				<<if $NPCList[_nn].penis is "thighs">>
+					<<He>> ejaculates onto your thighs.
+					<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
+				<</if>>
+
+				<<if $NPCList[_nn].penis is "vaginaentrance" and $worn.genitals.type.includes("chastity")>>
 					<<He>> ejaculates onto your $worn.genitals.name.
-				<<else>>
-					<<He>> ejaculates onto your <<pussy>>.
+					<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
+				<<elseif $NPCList[_nn].penis is "vaginaentrance" and !npcHasStrapon(_nn)>>
+					<<if $worn.genitals.type.includes("hidden")>>
+						<<He>> ejaculates onto your $worn.genitals.name.
+					<<else>>
+						<<He>> ejaculates onto your <<pussy>>.
+					<</if>>
+					<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 				<</if>>
-				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-			<</if>>
 
-			<<if $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
-				<<He>> ejaculates onto your $worn.genitals.name.
-				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-			<<elseif $NPCList[_nn].penis is "vaginaimminent">>
-				<<if $worn.genitals.type.includes("hidden")>>
+				<<if $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
 					<<He>> ejaculates onto your $worn.genitals.name.
-				<<else>>
-					<<He>> ejaculates onto your <<pussy>>.
+					<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
+				<<elseif $NPCList[_nn].penis is "vaginaimminent">>
+					<<if $worn.genitals.type.includes("hidden")>>
+						<<He>> ejaculates onto your $worn.genitals.name.
+					<<else>>
+						<<He>> ejaculates onto your <<pussy>>.
+					<</if>>
+					<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 				<</if>>
-				<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-			<</if>>
 
-			<<if $NPCList[_nn].penis is "vagina">>
-				<<He>> ejaculates deep into your womb.
-				<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
-				<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "vagina">>
+					<<He>> ejaculates deep into your womb.
+					<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
+					<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "cheeks">>
-				<<He>> ejaculates onto your back.
-				<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "cheeks">>
+					<<He>> ejaculates onto your back.
+					<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "anusentrance">>
-				<<if $worn.genitals.anal_shield is 1>>
-					<<He>> ejaculates on your $worn.genitals.name.
-				<<else>>
-					<<He>> ejaculates between your <<bottom>> cheeks.
+				<<if $NPCList[_nn].penis is "anusentrance">>
+					<<if $worn.genitals.anal_shield is 1>>
+						<<He>> ejaculates on your $worn.genitals.name.
+					<<else>>
+						<<He>> ejaculates between your <<bottom>> cheeks.
+					<</if>>
+					<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 				<</if>>
-				<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-			<</if>>
 
-			<<if $NPCList[_nn].penis is "anusimminent">>
-				<<if $worn.genitals.anal_shield is 1>>
-					<<He>> ejaculates on your $worn.genitals.name.
-				<<else>>
-					<<He>> ejaculates between your <<bottom>> cheeks.
+				<<if $NPCList[_nn].penis is "anusimminent">>
+					<<if $worn.genitals.anal_shield is 1>>
+						<<He>> ejaculates on your $worn.genitals.name.
+					<<else>>
+						<<He>> ejaculates between your <<bottom>> cheeks.
+					<</if>>
+					<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 				<</if>>
-				<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-			<</if>>
 
-			<<if $NPCList[_nn].penis is "anus">>
-				<<He>> ejaculates into your bowels.
-				<<analejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "anus">>
+					<<He>> ejaculates into your bowels.
+					<<analejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "chest">>
-				<<He>> ejaculates onto your chest.
-				<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "chest">>
+					<<He>> ejaculates onto your chest.
+					<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "mouthentrance">>
-				<<He>> ejaculates onto your face.
-				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "mouthentrance">>
+					<<He>> ejaculates onto your face.
+					<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "mouthimminent">>
-				<<He>> ejaculates onto your face.
-				<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "mouthimminent">>
+					<<He>> ejaculates onto your face.
+					<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "mouth">>
-				<<He>> ejaculates down the back of your throat.
-				<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "mouth">>
+					<<He>> ejaculates down the back of your throat.
+					<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "feet">>
-				<<He>> ejaculates on your feet.
-				<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "feet">>
+					<<He>> ejaculates on your feet.
+					<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">>
-				<<He>> ejaculates on your hands.
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">>
+					<<He>> ejaculates on your hands.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.rightarm.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "leftarm">>
-				<<He>> ejaculates on your hand.
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "leftarm">>
+					<<He>> ejaculates on your hand.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.leftarm.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "rightarm">>
-				<<He>> ejaculates on your hand.
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "rightarm">>
+					<<He>> ejaculates on your hand.
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "leftDildoAnus">>
-				<<switch random(1, 5)>>
-					<<case 1>>
-						<<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyLeft.name.
-					<<case 2>>
-						<<He>> ?orgasmMoans and ejaculates into the air as you fuck <<his>> ass with your $currentSexToyLeft.name. It splatters on the floor.
-					<<case 3 4>>
-						<<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name.
-					<<case 5>>
-						<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm.
-				<</switch>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "leftDildoAnus">>
+					<<switch random(1, 5)>>
+						<<case 1>>
+							<<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyLeft.name.
+						<<case 2>>
+							<<He>> ?orgasmMoans and ejaculates into the air as you fuck <<his>> ass with your $currentSexToyLeft.name. It splatters on the floor.
+						<<case 3 4>>
+							<<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name.
+						<<case 5>>
+							<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm.
+					<</switch>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is "rightDildoAnus">>
-				<<switch random(1, 5)>>
-					<<case 1>>
-						<<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyRight.name.
-					<<case 2>>
-						<<He>> ?orgasmMoans and ejaculates into the air as you fuck <<his>> ass with your $currentSexToyLeft.name. It splatters on the floor.
-					<<case 3 4>>
-						<<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name.
-					<<case 5>>
-						<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm.
-				<</switch>>
-				<<handejacstat>><<ejacstat>><<set $hygiene += 500>>
-			<</if>>
+				<<if $NPCList[_nn].penis is "rightDildoAnus">>
+					<<switch random(1, 5)>>
+						<<case 1>>
+							<<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyRight.name.
+						<<case 2>>
+							<<He>> ?orgasmMoans and ejaculates into the air as you fuck <<his>> ass with your $currentSexToyLeft.name. It splatters on the floor.
+						<<case 3 4>>
+							<<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name.
+						<<case 5>>
+							<<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm.
+					<</switch>>
+					<<handejacstat>><<ejacstat>><<set $hygiene += 500>>
+				<</if>>
 
-			<<if $NPCList[_nn].penis is 0>>
-				<<if $gloryhole>>
-					<<He>> ejaculates into the air. It splatters on the floor.
-				<<else>>
-					<<He>> ejaculates onto your tummy.
-					<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
+				<<if $NPCList[_nn].penis is 0>>
+					<<if $gloryhole>>
+						<<He>> ejaculates into the air. It splatters on the floor.
+					<<else>>
+						<<He>> ejaculates onto your tummy.
+						<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
+					<</if>>
 				<</if>>
-			<</if>>
 
-			<<if $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">>
-				<<if $gloryhole>>
-					<<He>> ejaculates into the air. It splatters on the floor.
-				<<else>>
-					<<He>> ejaculates onto your tummy.
-					<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
+				<<if $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">>
+					<<if $gloryhole>>
+						<<He>> ejaculates into the air. It splatters on the floor.
+					<<else>>
+						<<He>> ejaculates onto your tummy.
+						<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
+					<</if>>
 				<</if>>
-			<</if>>
 
-			<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
-				Despite wearing a condom, it was too damaged to stop the cum.
+				<<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">>
+					Despite wearing a condom, it was too damaged to stop the cum.
+				<</if>>
 			<</if>>
 			<br><br>
 
@@ -430,7 +444,7 @@
 										<<stress 4>><<npcincr Avery rage -5>><<gstress>><<larage>>
 									<<else>>
 										<<He>> lifts your chin, peering down with a smile.
-										<<print either(	
+										<<print either(
 											`"You're simply priceless."`,
 											`"Such a perfect <<girl>>."`,
 											`"You are a prize, dear."`
@@ -669,7 +683,7 @@
 										<<He>> <<print either("raises <<his>> middle finger","makes a peace sign","sticks <<his>> tongue out")>> as the camera flashes.
 										<<stress 6>><<status 1>><<gstress>><<gcool>>
 									<</if>>
-									<<famesex 1 pic>>
+									<<famesex 1 "pic">>
 								<<default>>
 									<<He>> runs <<his>> hand down your back, and caresses your <<bottom>>. <span class="lewd">You shiver from the sensation.</span>
 									<<lstress>><<ltrauma>><<lpain>><<garousal>><<violence -3>><<arousal 500>>
@@ -711,7 +725,7 @@
 									<</if>>
 									<<He>> <<print either("raises <<his>> middle finger","makes a peace sign","sticks <<his>> tongue out")>> as the camera flashes.
 									<<trauma 6>><<stress 6>><<gtrauma>><<gstress>>
-									<<famerape 1 pic>>
+									<<famerape 1 "pic">>
 								<<default>>
 									Whitney sneers.
 									<<print either(
@@ -813,10 +827,10 @@
 					<<elseif $NPCList[_nn].vagina is "feet">>
 						<<switch random(1, 5)>>
 						<<case 1 2>>
-							<<He>> moans and grasps your ankles as <<he>> cums. 
+							<<He>> moans and grasps your ankles as <<he>> cums.
 							<<set _postOrgasmSpeech to `"I love being treated like a dirty slut."`>>
 						<<case 3 4>>
-							<<He>> grasps <<his>> $NPCList[_nn].breastsdesc as <<he>> cums against your feet. 
+							<<He>> grasps <<his>> $NPCList[_nn].breastsdesc as <<he>> cums against your feet.
 							<<set _postOrgasmSpeech to `"I love it when you dominate me."`>>
 						<<case 5>>
 							<<He>> screams as <<he>> cums, almost making you jump. <<His>> juices run over your feet.
@@ -872,17 +886,17 @@
 						<<case 3 4>>
 							<<He>> shakes against your <<penis>> as <<he>> cums, moaning and grinding into you as deep as <<he>> can.
 						<<case 5>>
-							<<He>> screams and bucks into your crotch as <<he>> cums. 
+							<<He>> screams and bucks into your crotch as <<he>> cums.
 							<<set _postOrgasmSpeech to `"Oh God you make me feel good."`>>
 							<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 						<</switch>>
 					<<elseif $NPCList[_nn].vagina is "penis">>
 						<<switch random(1, 6)>>
 						<<case 1 2>>
-							<<He>> throws <<his>> arms around your shoulders as <<he>> cums, driving <<his>> pussy down hard against your <<penis>>. 
+							<<He>> throws <<his>> arms around your shoulders as <<he>> cums, driving <<his>> pussy down hard against your <<penis>>.
 							<<set _postOrgasmSpeech to `"Your cock was made for me," <<he>> whispers.`>>
 						<<case 3 4>>
-							<<He>> sighs as <<he>> cums, <<his>> blush deepening. 
+							<<He>> sighs as <<he>> cums, <<his>> blush deepening.
 							<<set _postOrgasmSpeech to `"Oh, look what your cock did to me."`>>
 						<<case 5>>
 							<<He>> wraps <<his>> arms under your shoulders and presses <<his>> $NPCList[_nn].breastdesc against you as <<he>> cums. You feel <<his>> pussy twitch against your <<penis>>.
@@ -890,28 +904,28 @@
 							<<He>> screams and pounds your <<penis>> with <<his>> pelvis as <<he>> cums, <<his>> whole body shaking.
 							<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.goo += 1>>
 						<</switch>>
-						<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+						<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 					<<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">>
-						<<He>> bites <<his>> lip as <<he>> cums on your <<penis>>. 
+						<<He>> bites <<his>> lip as <<he>> cums on your <<penis>>.
 						<<set _postOrgasmSpeech to `"I want you inside me next time."`>>
 					<<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">>
-						<<He>> rubs <<his>> ass against your <<penis>> as <<he>> cums. 
+						<<He>> rubs <<his>> ass against your <<penis>> as <<he>> cums.
 						<<set _postOrgasmSpeech to `"That felt so good. I want you to pound my ass next time."`>>
 					<<elseif $NPCList[_nn].vagina is "frot">>
 						<<He>> grinds <<his>> clit hard against your <<penis>> as <<he>> cums, ejaculating on your cock and breathlessly begging you to screw <<him>> properly next time.
-						<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+						<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 					<!-- Below cases occur when NPC vagina is not in contact with PC -->
 					<<elseif $NPCList[_nn].mouth is "penis">>
 						<<if $submissive gte 1150>>
-							<<He>> cums as you fuck <<his>> mouth, and seems intent on licking your <<penis>> clean. 
+							<<He>> cums as you fuck <<his>> mouth, and seems intent on licking your <<penis>> clean.
 							<<set _postOrgasmSpeech to `"I'm so naughty."`>>
 						<<elseif $submissive lte 850>>
-							<<He>> cums as you fuck <<his>> mouth with savage thrusts. You grasp <<his>> hair and push yourself even deeper inside. <<He>> gags and sputters, <<his>> juices running down <<his>> thighs. 
+							<<He>> cums as you fuck <<his>> mouth with savage thrusts. You grasp <<his>> hair and push yourself even deeper inside. <<He>> gags and sputters, <<his>> juices running down <<his>> thighs.
 							<<set _postOrgasmSpeech to `"I love it when you dominate me."`>>
-							<<penileejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
+							<<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.penis.goo += 1>>
 							<<feetejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.goo += 1>>
 						<<else>>
-							<<He>> cums as you fuck <<his>> mouth, gasping against your <<penis>>. 
+							<<He>> cums as you fuck <<his>> mouth, gasping against your <<penis>>.
 							<<set _postOrgasmSpeech to `"I'm so dirty."`>>
 						<</if>>
 					<<elseif $NPCList[_nn].mouth is "kiss">>
@@ -921,7 +935,7 @@
 						<<case 1 2 3>>
 							<<He>> buckles at the knees, <<his>> $NPCList[_nn].breastsdesc trembling as <<he>> cums. <<His>> juices run down <<his>> thighs.
 						<<case 4 5 6>>
-							<<He>> sighs as <<he>> cums, and pats your <<bottom>>. 
+							<<He>> sighs as <<he>> cums, and pats your <<bottom>>.
 							<<set _postOrgasmSpeech to `"That was fun."`>>
 						<<case 7>>
 							<<He>> rubs <<his>> clit and screams as <<he>> cums, <<his>> juices dripping onto you.
@@ -1042,7 +1056,7 @@
 							<<case 1>>
 								<<He>> trembles as <<he>> cums, slapping you across the ass with <<his>> $NPCList[_nn].penisdesc.
 							<<case 2>>
-								<<He>> moans as <<he>> cums, then spanks your ass with <<his>> $NPCList[_nn].penisdesc. 
+								<<He>> moans as <<he>> cums, then spanks your ass with <<his>> $NPCList[_nn].penisdesc.
 								<<set _postOrgasmSpeech to `"Something to remember me by, whore."`>>
 							<<case 3>>
 								<<He>> cums without a sound, and rubs <<his>> $NPCList[_nn].penisdesc along your back.
@@ -1065,7 +1079,7 @@
 							<<case 1>>
 								<<He>> trembles as <<he>> cums, slapping you across the ass with <<his>> $NPCList[_nn].penisdesc.
 							<<case 2>>
-								<<He>> moans as <<he>> cums, then spanks your ass with <<his>> $NPCList[_nn].penisdesc. 
+								<<He>> moans as <<he>> cums, then spanks your ass with <<his>> $NPCList[_nn].penisdesc.
 								<<set _postOrgasmSpeech to `"Something to remember me by, whore."`>>
 							<<case 3>>
 								<<He>> cums without a sound, and rubs <<his>> $NPCList[_nn].penisdesc along your back.
@@ -1109,7 +1123,7 @@
 							<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<<tummyejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 						<</switch>>
-					<<elseif ($NPCList[_nn].penis is "vaginaentrance" or $NPCList[_nn].penis is "vaginadoubleentrance") and $worn.genitals.type.includes("chastity")>>
+					<<elseif ($NPCList[_nn].penis is "vaginaentrance" or $NPCList[_nn].penis is "vaginaentrancedouble") and $worn.genitals.type.includes("chastity")>>
 						<<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your $worn.genitals.name without a word, sending white streams of semen running down your thighs.
 						<<set _postOrgasmSpeech to "">>
 						<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
@@ -1125,20 +1139,20 @@
 							<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<</switch>>
 						<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-					<<elseif ($NPCList[_nn].penis is "vaginaimminent" or $NPCList[_nn].penis is "vaginadoubleimminent") and $worn.genitals.type.includes("chastity")>>
-						<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. 
+					<<elseif ($NPCList[_nn].penis is "vaginaimminent" or $NPCList[_nn].penis is "vaginaimminentdouble") and $worn.genitals.type.includes("chastity")>>
+						<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs.
 						<<set _postOrgasmSpeech to `"Wish I could have fucked you properly."`>>
 						<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
 					<<elseif $NPCList[_nn].penis is "vaginaimminent">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating over your labia. Semen drips into a pool beneath you. 
+							<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating over your labia. Semen drips into a pool beneath you.
 							<<set _postOrgasmSpeech to `"Damn it, I wanted to cum inside you."`>>
 						<<case 4 5 6>>
-							<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate, sending white streams of semen running down your labia. 
+							<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate, sending white streams of semen running down your labia.
 							<<set _postOrgasmSpeech to `"Fuck, that should have gone inside."`>>
 						<<case 7>>
-							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>. 
+							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>.
 							<<set _postOrgasmSpeech to `"Wish I could have cum inside you. I just made a mess instead."`>>
 							<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<</switch>>
@@ -1171,7 +1185,7 @@
 							<</switch>>
 						<</switch>>
 
-					<<elseif $NPCList[_nn].penis is "vaginadoubleentrance">>
+					<<elseif $NPCList[_nn].penis is "vaginaentrancedouble">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
 							<<He>> holds you firm by the hip with one hand and holds <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your <<pussy>>. Semen covers you and pools around your legs.
@@ -1183,16 +1197,16 @@
 							<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<</switch>>
 						<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
-					<<elseif $NPCList[_nn].penis is "vaginadoubleimminent">>
+					<<elseif $NPCList[_nn].penis is "vaginaimminentdouble">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating over your labia. Semen drips into a pool beneath you. 
+							<<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating over your labia. Semen drips into a pool beneath you.
 							<<set _postOrgasmSpeech to `"Damn it, I wanted to cum inside you."`>>
 						<<case 4 5 6>>
-							<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate, sending white streams of semen running down your labia. 
+							<<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate, sending white streams of semen running down your labia.
 							<<set _postOrgasmSpeech to `"Fuck, that should have gone inside."`>>
 						<<case 7>>
-							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>. 
+							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>.
 							<<set _postOrgasmSpeech to `"Wish I could have cum inside you. I just made a mess instead."`>>
 							<<bottomejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<</switch>>
@@ -1201,7 +1215,7 @@
 						/* consensual */
 						<<switch $NPCList[_nn].penissize>>
 						<<case 4>>
-							<<He>> convulses and <<print either("glides into","grinds into","thrusts deep into","rams into")>> your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of semen into your <<pussy>>. It drips down your thighs. 
+							<<He>> convulses and <<print either("glides into","grinds into","thrusts deep into","rams into")>> your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of semen into your <<pussy>>. It drips down your thighs.
 							<<set _postOrgasmSpeech to [`"Look at the mess we made of your pussy!"`,`"Did you like double stuffing, slut?"`,`"Nothing like a good double slut!"`].random()>>
 							<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 							<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
@@ -1239,8 +1253,8 @@
 							<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>> <!-- intentional dupe line, total of 1000 and 2 -->
 						<</switch>>
 						<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-					<<elseif ($NPCList[_nn].penis is "anusentrance" or $NPCList[_nn].penis is "anusdoubleentrance") and $worn.genitals.anal_shield is 1>>
-						<<He>> cums before <<he>> can penetrate your ass. Semen coats your <<bottom>> and drips down your thighs. 
+					<<elseif ($NPCList[_nn].penis is "anusentrance" or $NPCList[_nn].penis is "anusentrancedouble") and $worn.genitals.anal_shield is 1>>
+						<<He>> cums before <<he>> can penetrate your ass. Semen coats your <<bottom>> and drips down your thighs.
 						<<set _postOrgasmSpeech to `"Damn it, I wanted to pound your ass properly."`>>
 						<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
 					<<elseif $NPCList[_nn].penis is "anusentrance">>
@@ -1254,19 +1268,19 @@
 							<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>> <!-- intentional dupe line, total of 1000 and 2 -->
 						<</switch>>
 						<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
-					<<elseif ($NPCList[_nn].penis is "anusimminent" or $NPCList[_nn].penis is "anusdoubleimminent") and $worn.genitals.anal_shield is 1>>
-						<<He>> cums before <<he>> can penetrate your ass, ejaculating over your cheeks. Semen coats your <<bottom>> and pools beneath you. 
+					<<elseif ($NPCList[_nn].penis is "anusimminent" or $NPCList[_nn].penis is "anusimminentdouble") and $worn.genitals.anal_shield is 1>>
+						<<He>> cums before <<he>> can penetrate your ass, ejaculating over your cheeks. Semen coats your <<bottom>> and pools beneath you.
 						<<set _postOrgasmSpeech to `"Fuck, I wanted to cum inside that ass of yours."`>>
 						<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
 					<<elseif $NPCList[_nn].penis is "anusimminent">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> cums before penetrating your ass, ejaculating over your cheeks. Semen coats your <<bottom>> and pools beneath you. 
+							<<He>> cums before penetrating your ass, ejaculating over your cheeks. Semen coats your <<bottom>> and pools beneath you.
 							<<set _postOrgasmSpeech to `"If only I could have waited a bit longer. That could've gone inside."`>>
 						<<case 4 5 6>>
 							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>> before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems disappointed.
 						<<case 7>>
-							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>. 
+							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>.
 							<<set _postOrgasmSpeech to `"Your ass looks so fuckable. Can't believe I couldn't wait."`>>
 							<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>> <!-- intentional dupe line, total of 1000 and 2 -->
 						<</switch>>
@@ -1309,7 +1323,7 @@
 								<<case 4 5 6>>
 									<<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus.
 								<<case 7>>
-									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. 
+									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs.
 									<<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>>
 									<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<</switch>>
@@ -1318,20 +1332,20 @@
 								<<case 1 2>>
 									<<He>> moans, pounding your <<bottom>> and <<personselect _otherNPCindex>><<combatpersons>> <<npcPenisSimple _otherNPCindex>> without mercy as <<personselect _nn>><<he>> cums. You whimper as you take <<his>> entire length, feeling warm semen streaming into your bowels.
 								<<case 3 4>>
-									<<He>> screams, ramming your <<bottom>> and <<personselect _otherNPCindex>><<combatpersons>> <<npcPenisSimple _otherNPCindex>> savagely as <<personselect _nn>><<he>> cums. You whimper as you take <<his>> entire length. Despite the pain, you can't help but enjoy the feel of semen streaming into your bowels. 
+									<<He>> screams, ramming your <<bottom>> and <<personselect _otherNPCindex>><<combatpersons>> <<npcPenisSimple _otherNPCindex>> savagely as <<personselect _nn>><<he>> cums. You whimper as you take <<his>> entire length. Despite the pain, you can't help but enjoy the feel of semen streaming into your bowels.
 									<<set _postOrgasmSpeech to `"I can't believe you took both of our cocks. I think I'm in love!"`>>
 								<<case 5 6>>
 									<<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums while giving no thought to the comfort of <<personselect _otherNPCindex>><<combatpersons>> <<npcPenisSimple _otherNPCindex>>. <span class="blue">You moan as you feel semen fill you,</span> <<personselect _nn>><<his>> length pulsing in your anus.
 								<<case 7>>
-									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. 
+									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs.
 									<<set _postOrgasmSpeech to `"You need to learn how to take two cocks. Don't worry, I'm sure you'll get lots of practice."`>>
 									<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<</switch>>
 							<<violence 3>>
 						<</if>>
 						<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
-						
-					<<elseif $NPCList[_nn].penis is "anusdoubleimminent" or $NPCList[_nn].penis is "anusdoubleentrance">>
+
+					<<elseif $NPCList[_nn].penis is "anusimminentdouble" or $NPCList[_nn].penis is "anusentrancedouble">>
 						<<set _otherNPCindex to 0>>
 						<<if _nn is $anustarget>>
 							<<set _otherNPCindex to $anusdoubletarget>>
@@ -1340,22 +1354,22 @@
 						<</if>>
 						<<switch random(1, 7)>>
 						<<case 1 2>>
-							<<He>> cums before <<he>> can penetrate you, accidentally ejaculating all over the $NPCList[_otherNPCindex].fullDescription and their $NPCList[_otherNPCindex].penisdesc. 
+							<<He>> cums before <<he>> can penetrate you, accidentally ejaculating all over the $NPCList[_otherNPCindex].fullDescription and their $NPCList[_otherNPCindex].penisdesc.
 							<<set _postOrgasmSpeech to `"That's what you get for not giving me a turn with <<pher>> slut ass!"`>>
 						<<case 3 4>>
-							<<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down. <<He>> slaps the $NPCList[_otherNPCindex].fullDescription's backside. 
+							<<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down. <<He>> slaps the $NPCList[_otherNPCindex].fullDescription's backside.
 							<<set _postOrgasmSpeech to `"Next time let me join the fun."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 5>>
-							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you and the $NPCList[_otherNPCindex].fullDescription's cock, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks. 
+							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you and the $NPCList[_otherNPCindex].fullDescription's cock, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks.
 							<<set _postOrgasmSpeech to `"Fuck. I was so close."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 6>>
-							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>, down your crotch, and over the $NPCList[_otherNPCindex].fullDescription's thighs. 
+							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>, down your crotch, and over the $NPCList[_otherNPCindex].fullDescription's thighs.
 							<<set _postOrgasmSpeech to `"Such a dirty, teasing slut."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 7>>
-							<<He>> <span class="blue">spanks you</span> with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> ejaculates onto your <<bottom>> with a shudder. 
+							<<He>> <span class="blue">spanks you</span> with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> ejaculates onto your <<bottom>> with a shudder.
 							<<set _postOrgasmSpeech to `"Should've taken us both, <<bitch>>."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<</switch>>
@@ -1367,7 +1381,7 @@
 						<<case 4 5 6>>
 							<<He>> rubs the tip of <<his>> $NPCList[_nn].penisdesc between your <<breasts>> as <<he>> cums. Warm semen runs down your chest.
 						<<case 7>>
-							<<He>> grasps the back of your neck as <<he>> bears down on your <<breasts>>, moaning as <<he>> cums. Semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>. 
+							<<He>> grasps the back of your neck as <<he>> bears down on your <<breasts>>, moaning as <<he>> cums. Semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>>.
 							<<set _postOrgasmSpeech to `"Oops. That happens sometimes."`>>
 						<</switch>>
 						<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
@@ -1385,10 +1399,10 @@
 							<<case 1 2 3>>
 								<<He>> cups your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your face. <<He>> seems pleased with the mess.
 							<<case 4 5 6>>
-								<<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your face. Warm cum drips down your forehead and nose. 
+								<<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your face. Warm cum drips down your forehead and nose.
 								<<set _postOrgasmSpeech to `"I love giving facials."`>>
 							<<case 7>>
-								<<He>> grasps your hair, stroking <<his>> $NPCList[_nn].penisdesc while aiming straight at your mouth. Thick ropes of cum cover your face. Some of it lands in your mouth. 
+								<<He>> grasps your hair, stroking <<his>> $NPCList[_nn].penisdesc while aiming straight at your mouth. Thick ropes of cum cover your face. Some of it lands in your mouth.
 								<<set _postOrgasmSpeech to `"I bet you're impressed."`>>
 								<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 							<</switch>>
@@ -1397,13 +1411,13 @@
 					<<elseif $NPCList[_nn].penis is "mouthimminent">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> cups your hair, ejaculating onto your lips as you barely brush against the tip of <<his>> $NPCList[_nn].penisdesc. <<He>> seems disappointed. 
+							<<He>> cups your hair, ejaculating onto your lips as you barely brush against the tip of <<his>> $NPCList[_nn].penisdesc. <<He>> seems disappointed.
 							<<set _postOrgasmSpeech to `"Really wanted to feel that mouth around me."`>>
 						<<case 4 5 6>>
-							<<He>> brushes <<his>> $NPCList[_nn].penisdesc against your face, and cums. It drips down your lips and chin. 
+							<<He>> brushes <<his>> $NPCList[_nn].penisdesc against your face, and cums. It drips down your lips and chin.
 							<<set _postOrgasmSpeech to `"Didn't mean to cum so soon."`>>
 						<<case 7>>
-							<<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc into your mouth, but <<his>> spasms sabotage <<his>> efforts. Thick ropes of cum cover your face. Some lands in your mouth. 
+							<<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc into your mouth, but <<his>> spasms sabotage <<his>> efforts. Thick ropes of cum cover your face. Some lands in your mouth.
 							<<set _postOrgasmSpeech to `"Really made a mess of your face."`>>
 							<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 						<</switch>>
@@ -1423,7 +1437,7 @@
 							<<case 4 5 6>>
 								<<He>> grasps the base of <<his>> $NPCList[_nn].penisdesc and moans as <<he>> ejaculates into your mouth. You feel warm cum drip down your throat.
 							<<case 7>>
-								<<He>> grasps your hair and thrusts <<his>> $NPCList[_nn].penisdesc into your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> pulls out. 
+								<<He>> grasps your hair and thrusts <<his>> $NPCList[_nn].penisdesc into your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> pulls out.
 								<<set _postOrgasmSpeech to `"I just can't control myself with you."`>>
 								<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 							<</switch>>
@@ -1432,13 +1446,13 @@
 					<<elseif $NPCList[_nn].penis is "feet">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> pushes your feet together and moans as <<he>> cums. Ejaculate covers your feet. 
+							<<He>> pushes your feet together and moans as <<he>> cums. Ejaculate covers your feet.
 							<<set _postOrgasmSpeech to `"Your feet are just adorable!"`>>
 						<<case 4 5 6>>
-							<<He>> cums on your feet, slickening them with semen. 
+							<<He>> cums on your feet, slickening them with semen.
 							<<set _postOrgasmSpeech to `"Next time I want to fuck you properly."`>>
 						<<case 7>>
-							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> ejaculates, splattering your feet and legs with cum. 
+							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> ejaculates, splattering your feet and legs with cum.
 							<<set _postOrgasmSpeech to `"Look at the mess we made."`>>
 							<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 						<</switch>>
@@ -1446,13 +1460,13 @@
 					<<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> moans as <<he>> cums, penis pulsing in your hands, covering them both in cum. 
+							<<He>> moans as <<he>> cums, penis pulsing in your hands, covering them both in cum.
 							<<set _postOrgasmSpeech to `"I love your enthusiasm. Two handed handjobs are best."`>>
 						<<case 4 5 6>>
-							<<He>> cums on your hands, slickening them with semen. 
+							<<He>> cums on your hands, slickening them with semen.
 							<<set _postOrgasmSpeech to `"I'd rather fuck you next time, but I like that you used both hands."`>>
 						<<case 7>>
-							<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work that you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your face, which ends up splattered. 
+							<<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work that you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your face, which ends up splattered.
 							<<set _postOrgasmSpeech to `"Better look out next time."`>>
 							<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 						<</switch>>
@@ -1460,13 +1474,13 @@
 					<<elseif $NPCList[_nn].penis is "leftarm">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> moans as <<he>> cums, <<his>> hot $NPCList[_nn].penisdesc sliding in your left hand and covering it with cum. 
+							<<He>> moans as <<he>> cums, <<his>> hot $NPCList[_nn].penisdesc sliding in your left hand and covering it with cum.
 							<<set _postOrgasmSpeech to `"That was a nice change."`>>
 						<<case 4 5 6>>
-							<<He>> cums on your left hand. Semen drips down your fingers. 
+							<<He>> cums on your left hand. Semen drips down your fingers.
 							<<set _postOrgasmSpeech to `"I'm gonna fuck you properly next time."`>>
 						<<case 7>>
-							<<He>> spasms and moans. Thick streams of cum and splatter over your <<breasts>>. 
+							<<He>> spasms and moans. Thick streams of cum and splatter over your <<breasts>>.
 							<<set _postOrgasmSpeech to `"You're really good at hand jobs."`>>
 							<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 						<</switch>>
@@ -1475,13 +1489,13 @@
 					<<elseif $NPCList[_nn].penis is "rightarm">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> moans as you work <<his>> shaft with your right hand. You give <<him>> a final squeeze, and <<he>> cums. Your hand is covered in warm semen. 
+							<<He>> moans as you work <<his>> shaft with your right hand. You give <<him>> a final squeeze, and <<he>> cums. Your hand is covered in warm semen.
 							<<set _postOrgasmSpeech to `"That was interesting."`>>
 						<<case 4 5 6>>
-							<<He>> cums on your right hand. 
+							<<He>> cums on your right hand.
 							<<set _postOrgasmSpeech to `"Next time I'll fuck you properly."`>>
 						<<case 7>>
-							<<He>> moans and shoots thick ropes of semen over your right hand. 
+							<<He>> moans and shoots thick ropes of semen over your right hand.
 							<<set _postOrgasmSpeech to `"You're such a hot thing."`>>
 						<</switch>>
 						<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
@@ -1507,27 +1521,27 @@
 					<<elseif $NPCList[_nn].penis is 0>>
 						<<switch random(1, 5)>>
 						<<case 1>>
-							<<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your tummy. 
+							<<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your tummy.
 							<<set _postOrgasmSpeech to `"God you're hot."`>>
 
 							<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 						<<case 2>>
-							<<He>> rubs <<his>> $NPCList[_nn].penisdesc and aims at your face before ejaculating, covering it with semen. 
+							<<He>> rubs <<his>> $NPCList[_nn].penisdesc and aims at your face before ejaculating, covering it with semen.
 							<<set _postOrgasmSpeech to `"You're so cute. I just couldn't help myself."`>>
 
 							<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 						<<case 3>>
-							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and, aiming at your ass, ejaculates on your bottom. 
+							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and, aiming at your ass, ejaculates on your bottom.
 							<<set _postOrgasmSpeech to `"I could rub myself to you for hours."`>>
 
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 4>>
-							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and moans, ejaculating on your <<breasts>>. 
+							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and moans, ejaculating on your <<breasts>>.
 							<<set _postOrgasmSpeech to `"You look great with my cum on you."`>>
 
 							<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 						<<case 5>>
-							<<He>> moans and rubs <<his>> $NPCList[_nn].penisdesc with wild strokes, sending cum flying over your chest and tummy. 
+							<<He>> moans and rubs <<his>> $NPCList[_nn].penisdesc with wild strokes, sending cum flying over your chest and tummy.
 							<<set _postOrgasmSpeech to `"You're so hot. I can't control myself."`>>
 
 							<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
@@ -1536,55 +1550,55 @@
 					<<elseif $NPCList[_nn].penis is "otheranus">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. 
+							<<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach.
 							<<set _postOrgasmSpeech to `"That was great."`>>
 
 						<<case 4 5>>
-							<<He>> whimpers as you pound <<his>> ass, crying out as <<he>> ejaculates on the ground. 
+							<<He>> whimpers as you pound <<his>> ass, crying out as <<he>> ejaculates on the ground.
 							<<set _postOrgasmSpeech to `"You made me feel like your bitch."`>>
 
 						<<case 6 7>>
-							<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. 
+							<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
 							<<set _postOrgasmSpeech to `"Being fucked by you makes me feel so hot."`>>
 
 						<</switch>>
 					<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> cums as you fuck <<his>> cheeks, grinding your <<penis>> against <<his>> ass to finish. 
+							<<He>> cums as you fuck <<his>> cheeks, grinding your <<penis>> against <<his>> ass to finish.
 							<<set _postOrgasmSpeech to `"You should fuck me properly next time."`>>
 
 						<<case 4 5>>
-							<<He>> moans and ejaculates on the ground as you rub against <<his>> ass. 
+							<<He>> moans and ejaculates on the ground as you rub against <<his>> ass.
 							<<set _postOrgasmSpeech to `"You're such a tease. I thought you were going to enter me, but I couldn't hold on."`>>
 
 						<<case 6 7>>
-							<<He>> sighs and ejaculates onto <<his>> own chest. 
+							<<He>> sighs and ejaculates onto <<his>> own chest.
 							<<set _postOrgasmSpeech to `"I love having my ass toyed with."`>>
 
 						<</switch>>
 					<<elseif $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">>
-						<<He>> shakes with arousal as <<he>> cums all over your <<penis>>. 
+						<<He>> shakes with arousal as <<he>> cums all over your <<penis>>.
 						<<set _postOrgasmSpeech to `"That was awesome."`>>
 						<br>
 					<!-- Special case male PC being orally serviced by male NPC with no other contact -->
 					<!-- This is picking up female NPCs as well -->
 					<<elseif $NPCList[_nn].mouth is "penis">>
 						<<if $submissive gte 1150>>
-							<<He>> cums as you fuck <<his>> mouth, gasping against your <<penis>>. 
+							<<He>> cums as you fuck <<his>> mouth, gasping against your <<penis>>.
 							<<set _postOrgasmSpeech to `"I love giving head."`>>
 
 						<<elseif $submissive lte 850>>
-							<<He>> whimpers and cums on the ground as you grab <<his>> hair and pound <<his>> face. 
+							<<He>> whimpers and cums on the ground as you grab <<his>> hair and pound <<his>> face.
 							<<set _postOrgasmSpeech to `"Please, I can't take any more." You push <<him>> away.`>>
 
 						<<else>>
-							<<He>> grasps your <<bottom>> and drives your <<penis>> deep down <<his>> throat. <<He>> ejaculates on <<his>> chest as <<he>> gags on your cock. <<He>> gasps for air and smiles. 
+							<<He>> grasps your <<bottom>> and drives your <<penis>> deep down <<his>> throat. <<He>> ejaculates on <<his>> chest as <<he>> gags on your cock. <<He>> gasps for air and smiles.
 							<<set _postOrgasmSpeech to `"I love it when you abuse me."`>>
 
 						<</if>>
 					<<elseif $NPCList[_nn].penis is "othermouth">>
-						<<He>> shakes with arousal as <<he>> cums. 
+						<<He>> shakes with arousal as <<he>> cums.
 						<<set _postOrgasmSpeech to `"That was awesome."`>>
 
 					<<else>>
@@ -1606,7 +1620,7 @@
 
 							<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 						<<case 7>>
-							<<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. 
+							<<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy.
 							<<set _postOrgasmSpeech to `"Take that you little bitch."`>>
 
 							<<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
@@ -1628,7 +1642,7 @@
 						<</switch>>
 						<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 					<<elseif $NPCList[_nn].penis is "vaginaimminent" and $worn.genitals.type.includes("chastity")>>
-						<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. 
+						<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs.
 						<<set _postOrgasmSpeech to `"Wish you weren't wearing that thing."`>>
 						<br><br>
 						<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
@@ -1638,7 +1652,7 @@
 							<<He>> cums before penetrating your <<pussy>>, ejaculating on your labia and tummy. <span class="red"><<He>> slaps your <<bottom>> hard in anger.</span>
 							<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
 						<<case 4 5 6>>
-							<<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia. 
+							<<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia.
 							<<set _postOrgasmSpeech to `"Fuck. I wanted that to go inside."`>>
 						<<case 7>>
 							<<He>> moans and spasms as <<he>> cums, trying to penetrate your <<pussy>> with desperate thrusts. <<He>> lacks the coordination mid-climax, instead sending thick ropes of semen over your labia and <<bottom>> "I'm fucking you properly next time, slut."
@@ -1648,7 +1662,7 @@
 					<<elseif $NPCList[_nn].penis is "vagina">>
 						<<switch $NPCList[_nn].penissize>>
 						<<case 4>>
-							<<He>> convulses and pounds your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen drips from your vagina and down your legs. 
+							<<He>> convulses and pounds your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen drips from your vagina and down your legs.
 							<<set _postOrgasmSpeech to `"Doesn't look like you can handle my load."`>>
 
 							<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
@@ -1662,25 +1676,25 @@
 							<<switch random(1, 7)>>
 							<<case 1 2 3>>
 								<<He>> grabs your hair and thrusts <<his>> $NPCList[_nn].penisdesc deep into your <<pussy>> as <<he>> cums. You feel semen splash inside.
-		
+
 								<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 								<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
 							<<case 4 5 6>>
 								<<He>> <span class="purple">grasps your throat</span> and pounds <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air.
 								<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-		
+
 								<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 								<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
 							<<case 7>>
-								<<He>> convulses and pounds your <<pussy>> as <<he>> cums. Rubbing against your <<clit>> and sending thick waves of cum into your body. Semen drips from your vagina and down your legs. 
+								<<He>> convulses and pounds your <<pussy>> as <<he>> cums. Rubbing against your <<clit>> and sending thick waves of cum into your body. Semen drips from your vagina and down your legs.
 								<<set _postOrgasmSpeech to `"Didn't think you could handle my load."`>>
-		
+
 								<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 								<<vaginalentranceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 								<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<</switch>>
 						<</switch>>
-					<<elseif $NPCList[_nn].penis is "vaginadoubleentrance">>
+					<<elseif $NPCList[_nn].penis is "vaginaentrancedouble">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
 							<<He>> grasps your <<bottom>> and tries to pull you onto <<him>> as <<he>> ejaculates over your <<pussy>>. Semen coats your outer labia and pools around your legs.
@@ -1692,37 +1706,37 @@
 						<</switch>>
 						<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 						<br>
-					<<elseif $NPCList[_nn].penis is "vaginadoubleimminent" and $worn.genitals.type.includes("chastity")>>
+					<<elseif $NPCList[_nn].penis is "vaginaimminentdouble" and $worn.genitals.type.includes("chastity")>>
 						<<set _otherNPCIndex to (_nn is $vaginatarget ? $vaginatarget : $vaginadoubletarget)>>
 						<<switch random(2)>>
 							<<case 0>>
-								<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. 
+								<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs.
 								<<set _postOrgasmSpeech to `"Wish you weren't wearing that thing."`>>
 								<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
 							<<case 1>>
-								<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs and <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenisSimple _otherNPCIndex>>. 
+								<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs and <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenisSimple _otherNPCIndex>>.
 								<<set _postOrgasmSpeech to `"Fucking whore, look what I've done."`>>
 								<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
 							<<default>>
-								<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. 
+								<<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs.
 								<<set _postOrgasmSpeech to `"Wish you weren't wearing that thing."`>>
 								<<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
 						<</switch>>
 						<br>
-					<<elseif $NPCList[_nn].penis is "vaginadoubleimminent">>
+					<<elseif $NPCList[_nn].penis is "vaginaimminentdouble">>
 						<<set _otherNPCIndex to (_nn is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>>
 						<<switch random(1, 7)>>
 						<<case 1 2>>
 							<<He>> cums before penetrating your <<pussy>>, ejaculating on your labia and tummy. <span class="red"><<He>> slaps your <<bottom>> hard in anger.</span>
 							<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
 						<<case 3 4>>
-							<<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia. 
+							<<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia.
 							<<set _postOrgasmSpeech to `"Fuck. I wanted that to go inside."`>>
 						<<case 5 6>>
 							<<He>> cums before penetrating your <<pussy>>, ejaculating on your labia and all over <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenis _otherNPCIndex>>. <span class="red"><<personselect _nn>><<He>> slaps your <<bottom>> hard in anger.</span>
 							<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
 						<<case 4 5>>
-							<<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia. 
+							<<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia.
 							<<set _postOrgasmSpeech to `"Fuck. I wanted that to go inside."`>>
 						<<case 7>>
 							<<He>> moans and spasms as <<he>> cums, trying to penetrate your <<pussy>> with desparate thrusts. <<He>> lacks the coordination mid-climax, instead sending thick ropes of semen over your labia and <<bottom>> "I'm fucking you properly next time, slut."
@@ -1735,7 +1749,7 @@
 						<<set _otherNPCIndex to (_nn is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>>
 						<<switch $NPCList[_nn].penissize>>
 						<<case 4 5>>
-							<<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen drips from your vagina and down your legs. 
+							<<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen drips from your vagina and down your legs.
 							<<set _postOrgasmSpeech to [`"Doesn't look like you can handle my load."`,`"Learn how to take double stuffing, worthless whore."`,`"Look at the mess I made of your pussy!"`,`"We ruined your pussy. Dirty whore."`].random()>>
 							<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
 							<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
@@ -1748,27 +1762,27 @@
 							<<switch random(1, 7)>>
 							<<case 1 2 3>>
 								<<He>> grabs your hair and <<print either("pounds","brutalises","thrusts","rams")>> <<his>> $NPCList[_nn].penisdesc deep into your <<pussy>> as <<he>> cums. You feel unwelcome semen splash inside.
-		
+
 								<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 								<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
 							<<case 4 5>>
 								<<He>> <span class="purple">grasps your throat</span> and pounds <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air.
 								<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-		
+
 								<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 								<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
 							<<case 6>>
-								<<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your <<pussy>> as <<he>> cums, giving no head to <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenis _otherNPCIndex>>. Semen drips from your vagina and down your legs. 
+								<<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your <<pussy>> as <<he>> cums, giving no head to <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenis _otherNPCIndex>>. Semen drips from your vagina and down your legs.
 								<<set _postOrgasmSpeech to `"Filthy cum slut, take it!"`>>
-								
+
 								<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
 								<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 								<<vaginalentranceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
 								<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<<case 7>>
-								<<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your <<pussy>> as <<he>> cums. Rubbing against your <<clit>> and sending thick waves of cum into your body. Semen drips from your vagina and down your legs. 
+								<<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your <<pussy>> as <<he>> cums. Rubbing against your <<clit>> and sending thick waves of cum into your body. Semen drips from your vagina and down your legs.
 								<<set _postOrgasmSpeech to `"Didn't think you could handle my load."`>>
-								
+
 								<<recordVaginalSperm "pc" $NPCList[_nn].fullDescription `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>>
 								<<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vagina.semen += 1>>
 								<<vaginalentranceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.vaginaoutside.semen += 1>>
@@ -1801,13 +1815,13 @@
 						<<case 4 5 6>>
 							<<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down.
 						<<case 7>>
-							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>> and down your crotch. 
+							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>> and down your crotch.
 							<<set _postOrgasmSpeech to `"What a dirty slut you are."`>>
 							<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>> <!-- intentional dupe line, total of 1000 and 2 -->
 						<</switch>>
 						<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 					<<elseif $NPCList[_nn].penis is "anusimminent" and $worn.genitals.anal_shield is 1>>
-						<<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>>, sending white streams of semen running down your thighs. 
+						<<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>>, sending white streams of semen running down your thighs.
 						<<set _postOrgasmSpeech to `"Fuck. If only this thing wasn't in the way."`>>
 						<br><br>
 						<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>><<set $player.bodyliquid.thigh.semen += 1>>
@@ -1817,10 +1831,10 @@
 							<<He>> cums before <<he>> can penetrate you, ejaculating onto your cheeks. Semen coats your <<bottom>>. <span class="red"><<He>> smacks your ass in frustration.</span>
 							<<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>>
 						<<case 4 5 6>>
-							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks. 
+							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks.
 							<<set _postOrgasmSpeech to `"Fuck. I was so close."`>>
 						<<case 7>>
-							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against your <<bottom>> as <<he>> cums, sending thick ropes of semen onto your cheeks. 
+							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against your <<bottom>> as <<he>> cums, sending thick ropes of semen onto your cheeks.
 							<<set _postOrgasmSpeech to `"Next time I'm going balls deep."`>>
 							<<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>> <!-- intentional dupe line, total of 1000 and 2 -->
 						<</switch>>
@@ -1828,7 +1842,7 @@
 					<<elseif $NPCList[_nn].penis is "anus">>
 						<<switch $NPCList[_nn].penissize>>
 						<<case 4>>
-							<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. 
+							<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs.
 							<<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>>
 							<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 							<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
@@ -1843,15 +1857,15 @@
 							<<case 4 5 6>>
 								<<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus.
 							<<case 7>>
-								<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. 
+								<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs.
 								<<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>>
 								<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<</switch>>
 							<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 						<</switch>>
-					
+
 					<<elseif $NPCList[_nn].penis is "anusdouble">>
-						/* 	State 1: One in, the other out
+						/*	State 1: One in, the other out
 							State 2: both dicks inside */
 						<<set _dap to 0>>
 						<<set _otherNPCindex to $anustarget>>
@@ -1870,7 +1884,7 @@
 								<<case 4 5 6>>
 									<<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus.
 								<<case 7>>
-									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. 
+									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs.
 									<<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>>
 									<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<</switch>>
@@ -1879,12 +1893,12 @@
 								<<case 1 2>>
 									<<He>> moans, pounding your <<bottom>> and the $NPCList[_otherNPCindex].fullDescription's <<npcPenisSimple _otherNPCindex>> without mercy as <<he>> cums. You whimper as you take <<his>> entire length, feeling unwelcome semen streaming into your bowels.
 								<<case 3 4>>
-									<<He>> screams, ramming your <<bottom>> and the $NPCList[_otherNPCindex].fullDescription's <<npcPenisSimple _otherNPCindex>> savagely as <<he>> cums. You whimper as you take <<his>> entire length. Despite the pain, you can't help but enjoy the feel of semen streaming into your bowels. 
+									<<He>> screams, ramming your <<bottom>> and the $NPCList[_otherNPCindex].fullDescription's <<npcPenisSimple _otherNPCindex>> savagely as <<he>> cums. You whimper as you take <<his>> entire length. Despite the pain, you can't help but enjoy the feel of semen streaming into your bowels.
 									<<set _postOrgasmSpeech to `"I can't believe you took both of our cocks. I think I'm in love!"`>>
 								<<case 5 6>>
 									<<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums while giving no thought to the comfort of the other cock. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus.
 								<<case 7>>
-									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. 
+									<<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs.
 									<<set _postOrgasmSpeech to `"You need to learn how to take two cocks. Don't worry, I'm sure you'll get lots of practice."`>>
 									<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 							<</switch>>
@@ -1892,7 +1906,7 @@
 						<<analejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.anus.semen += 1>>
 						<<gstress>><<gtrauma>><<gpain>><<violence 5>><<bruise bottom>><<hitstat>>
 
-					<<elseif $NPCList[_nn].penis is "anusdoubleimminent" or $NPCList[_nn].penis is "anusdoubleentrance">>
+					<<elseif $NPCList[_nn].penis is "anusimminentdouble" or $NPCList[_nn].penis is "anusentrancedouble">>
 						<<set _otherNPCindex to 0>>
 						<<if _nn is $anustarget>>
 							<<set _otherNPCindex to $anusdoubletarget>>
@@ -1901,22 +1915,22 @@
 						<</if>>
 						<<switch random(1, 7)>>
 						<<case 1 2>>
-							<<He>> cums before <<he>> can penetrate you, accidentally ejaculating all over the $NPCList[_otherNPCindex].fullDescription and their $NPCList[_otherNPCindex].penisdesc. 
+							<<He>> cums before <<he>> can penetrate you, accidentally ejaculating all over the $NPCList[_otherNPCindex].fullDescription and their $NPCList[_otherNPCindex].penisdesc.
 							<<set _postOrgasmSpeech to `"That's what you get for not giving me a turn with <<pher>> slut ass!"`>>
 						<<case 3 4>>
-							<<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down. <<He>> slaps the $NPCList[_otherNPCindex].fullDescription's backside. 
+							<<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down. <<He>> slaps the $NPCList[_otherNPCindex].fullDescription's backside.
 							<<set _postOrgasmSpeech to `"Next time let me join the fun."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 5>>
-							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you and the $NPCList[_otherNPCindex].fullDescription's cock, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks. 
+							<<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you and the $NPCList[_otherNPCindex].fullDescription's cock, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks.
 							<<set _postOrgasmSpeech to `"Fuck. I was so close."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 6>>
-							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>, down your crotch, and over the $NPCList[_otherNPCindex].fullDescription's thighs. 
+							<<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>, down your crotch, and over the $NPCList[_otherNPCindex].fullDescription's thighs.
 							<<set _postOrgasmSpeech to `"Such a dirty, teasing slut."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 7>>
-							<<He>> <span class="blue">spanks you</span> with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> ejaculates onto your <<bottom>> with a shudder. 
+							<<He>> <span class="blue">spanks you</span> with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> ejaculates onto your <<bottom>> with a shudder.
 							<<set _postOrgasmSpeech to `"Should've taken us both, <<bitch>>."`>>
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 							<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>>
@@ -1928,10 +1942,10 @@
 							<<He>> squeezes your <<breasts>> arounds <<his>> $NPCList[_nn].penisdesc as <<he>> cums, ejaculating onto them. <span class="pink"> <<He>> finishes with a slap to your face.</span>
 							<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise face>><<hitstat>>
 						<<case 4 5 6>>
-							<<He>> grasps your hair and forces you to look at <<him>> while <<his>> $NPCList[_nn].penisdesc thrusts between your <<breasts>>. <<He>> shudders and ejaculates over them. 
+							<<He>> grasps your hair and forces you to look at <<him>> while <<his>> $NPCList[_nn].penisdesc thrusts between your <<breasts>>. <<He>> shudders and ejaculates over them.
 							<<set _postOrgasmSpeech to `"You should look at me while I use you for my pleasure." You feel warm semen slide down your body.`>>
 						<<case 7>>
-							<<He>> grasps your neck and pushes your face against <<his>> body as <<he>> fucks your <<breasts>>. Semen shoots over your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>> as you gasp for air. 
+							<<He>> grasps your neck and pushes your face against <<his>> body as <<he>> fucks your <<breasts>>. Semen shoots over your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>><</if>> as you gasp for air.
 							<<set _postOrgasmSpeech to `"Next time you're swallowing it, you little bitch."`>>
 						<</switch>>
 						<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
@@ -1950,7 +1964,7 @@
 							<<case 1 2 3>>
 								<<He>> grasps your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other as <<he>> ejaculates onto your face. <<He>> laughs as you cringe away from <<him>>.
 							<<case 4 5 6>>
-								<<He>> grasps your ear with one hand whlie stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> cums on your face. 
+								<<He>> grasps your ear with one hand whlie stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> cums on your face.
 								<<set _postOrgasmSpeech to `"I love giving unwanted facials."`>>
 							<<case 7>>
 								<<He>> grasps your hair tight in <<his>> fist while stroking <<his>> $NPCList[_nn].penisdesc. <<He>> aims at your mouth as <<he>> cums. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span>
@@ -1969,7 +1983,7 @@
 							<<He>> brushes <<his>> $NPCList[_nn].penisdesc against your lips, causing <<him>> to ejaculate early. Cum drips down your face.
 							<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 						<<case 7>>
-							<<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc into your mouth. <<Hes>> too excited, and cums before <<he>> can enter you. Thick ropes of cum cover your cheeks and chin. Some makes it into your mouth. 
+							<<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc into your mouth. <<Hes>> too excited, and cums before <<he>> can enter you. Thick ropes of cum cover your cheeks and chin. Some makes it into your mouth.
 							<<set _postOrgasmSpeech to `"Next time it's balls deep, bitch."`>>
 							<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 							<<oralejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
@@ -1992,26 +2006,26 @@
 							<<case 4 5 6>>
 								<<He>> <span class="blue">grasps your throat</span> for purchase as <<his>> $NPCList[_nn].penisdesc thrusts into your mouth. You gag as <<he>> ejaculates down your throat.
 								<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-		
+
 							<<case 7>>
-								<<He>> grasps your hair by the temples and thrusts <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. <span class="pink">You whimper as semen streams into you.</span> <<Hes>> still ejaculating when <<he>> pulls out, filling your mouth and splattering over your face. 
+								<<He>> grasps your hair by the temples and thrusts <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. <span class="pink">You whimper as semen streams into you.</span> <<Hes>> still ejaculating when <<he>> pulls out, filling your mouth and splattering over your face.
 								<<set _postOrgasmSpeech to `"Sluts like you are made to be dominated."`>>
 								<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 								<<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>>
-		
+
 							<</switch>>
 							<<oralejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $player.bodyliquid.mouth.semen += 1>>
 						<</switch>>
 					<<elseif $NPCList[_nn].penis is "feet">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> pushes your feet together and moans as <<he>> cums. Ejaculate covers your feet. 
+							<<He>> pushes your feet together and moans as <<he>> cums. Ejaculate covers your feet.
 							<<set _postOrgasmSpeech to `"Next time I'm fucking you properly."`>>
 						<<case 4 5 6>>
-							<<He>> cums on your feet, leaving them slick with semen. 
+							<<He>> cums on your feet, leaving them slick with semen.
 							<<set _postOrgasmSpeech to `"I didn't mean to cum so soon."`>>
 						<<case 7>>
-							<<He>> moans and thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> cums, splattering semen onto your feet and legs. 
+							<<He>> moans and thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> cums, splattering semen onto your feet and legs.
 							<<set _postOrgasmSpeech to `"Now you're nice and messy."`>>
 							<<thighejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.thigh.semen += 1>>
 						<</switch>>
@@ -2019,13 +2033,13 @@
 					<<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc pulsing in your hands. 
+							<<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc pulsing in your hands.
 							<<set _postOrgasmSpeech to `"I love your enthusiasm. Two handed handjobs are best."`>>
 						<<case 4 5 6>>
-							<<He>> cums on your hands, leaving them slick with semen. 
+							<<He>> cums on your hands, leaving them slick with semen.
 							<<set _postOrgasmSpeech to `"I'm gonna fuck you next time, but I like that you used both hands."`>>
 						<<case 7>>
-							<<He>> spasms and moans, shooting thick streams of cum over your hands. You are so intent on your work you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your face. It gets splattered with semen. 
+							<<He>> spasms and moans, shooting thick streams of cum over your hands. You are so intent on your work you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your face. It gets splattered with semen.
 							<<set _postOrgasmSpeech to `"Better look out next time."`>>
 							<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 						<</switch>>
@@ -2036,11 +2050,11 @@
 							<<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sliding in your left hand and covering it with semen.
 							<br><br>
 						<<case 3 4>>
-							<<He>> spasms and moans, shooting thick streams of cum over your hand. You are so intent on keeping <<him>> occupied that you don't notice that <<his>> $NPCList[_nn].penisdesc is aimed at your face. It gets splattered with semen. 
+							<<He>> spasms and moans, shooting thick streams of cum over your hand. You are so intent on keeping <<him>> occupied that you don't notice that <<his>> $NPCList[_nn].penisdesc is aimed at your face. It gets splattered with semen.
 							<<set _postOrgasmSpeech to `"Take that you cheeky cunt."`>>
 							<<faceejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 						<<case 6 7>>
-							<<He>> spasms and moans. Thick streams of cum shoot from <<his>> $NPCList[_nn].penisdesc, splattering your chest. 
+							<<He>> spasms and moans. Thick streams of cum shoot from <<his>> $NPCList[_nn].penisdesc, splattering your chest.
 							<<set _postOrgasmSpeech to `"You need to learn to control cock better."`>>
 							<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 						<</switch>>
@@ -2050,33 +2064,33 @@
 						<<case 1 2 3>>
 							<<He>> moans as you work <<his>> shaft with your right hand. You give <<his>> $NPCList[_nn].penisdesc a final squeeze, and <<he>> cums on your wrist.
 						<<case 4 5>>
-							<<He>> spasms and moans, shooting thick streams of cum onto your hand. You are so intent on keeping <<him>> occupied you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your chest. <<His>> semen splatters onto your <<breasts>>. 
+							<<He>> spasms and moans, shooting thick streams of cum onto your hand. You are so intent on keeping <<him>> occupied you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your chest. <<His>> semen splatters onto your <<breasts>>.
 							<<set _postOrgasmSpeech to `"You should lick that up, whore."`>>
 							<<chestejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
 						<<case 6 7>>
-							<<He>> moans as thick ropes of semen erupt from <<his>> $NPCList[_nn].penisdesc and into the air. It lands on your hand. 
+							<<He>> moans as thick ropes of semen erupt from <<his>> $NPCList[_nn].penisdesc and into the air. It lands on your hand.
 							<<set _postOrgasmSpeech to `"Lick it up. Go on, you can't resist."`>>
 						<</switch>>
 						<<handejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.rightarm.semen += 1>>
 					<<elseif $NPCList[_nn].penis is 0>>
 						<<switch random(1, 5)>>
 						<<case 1>>
-							<<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your tummy. 
+							<<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your tummy.
 							<<set _postOrgasmSpeech to `"Take that, whore."`>>
 
 							<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 						<<case 2>>
-							<<He>> aims at your face as <<he>> rubs <<his>> $NPCList[_nn].penisdesc, covering it with semen. 
+							<<He>> aims at your face as <<he>> rubs <<his>> $NPCList[_nn].penisdesc, covering it with semen.
 							<<set _postOrgasmSpeech to `"Your place is on your knees in service. Don't forget it."`>>
 
 							<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>>
 						<<case 3>>
-							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and, aiming it with care, ejaculates on your <<bottom>>. 
+							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and, aiming it with care, ejaculates on your <<bottom>>.
 							<<set _postOrgasmSpeech to `"That's warm up for next time."`>>
 
 							<<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.bottom.semen += 1>>
 						<<case 4>>
-							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and moans, ejaculating on your <<breasts>>. 
+							<<He>> strokes <<his>> $NPCList[_nn].penisdesc and moans, ejaculating on your <<breasts>>.
 							<<set _postOrgasmSpeech to `"I love watching cum drip down a used-up whore."`>>
 
 							<<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.chest.semen += 1>>
@@ -2090,7 +2104,7 @@
 					<<elseif $NPCList[_nn].penis is "otheranus">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> moans as you fuck <<his>> ass. <<He>> catches <<his>> ejaculate in <<his>> hands, and stares at it. <<He>> looks ashamed. 
+							<<He>> moans as you fuck <<his>> ass. <<He>> catches <<his>> ejaculate in <<his>> hands, and stares at it. <<He>> looks ashamed.
 							<<set _postOrgasmSpeech to `"Get off me. I'm done now."`>>
 							/* <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.face.semen += 1>> */
 							/* not sure why this is here */
@@ -2098,44 +2112,44 @@
 							<<He>> whimpers as you pound <<his>> ass. Cum shoots from <<his>> $NPCList[_nn].penisdesc, splattering over the ground.
 
 						<<case 6 7>>
-							<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. 
+							<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
 							<<set _postOrgasmSpeech to `"You're a decent fuck toy. Next time I'm fucking that ass of yours."`>>
 
 						<</switch>>
 					<<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> cums as you fuck <<his>> cheeks. You grinding your <<penis>> against <<his>> ass to finish. 
+							<<He>> cums as you fuck <<his>> cheeks. You grinding your <<penis>> against <<his>> ass to finish.
 							<<set _postOrgasmSpeech to `"You'll get a beating if you don't fuck me properly next time."`>>
 
 						<<case 4 5>>
-							<<He>> moans and ejaculates on the ground as you rub against <<his>> anus. 
+							<<He>> moans and ejaculates on the ground as you rub against <<his>> anus.
 							<<set _postOrgasmSpeech to `"Fuck. I wanted to feel you inside me."`>>
 
 						<<case 6 7>>
-							<<He>> sighs as <<he>> ejaculates onto <<his>> own chest. 
+							<<He>> sighs as <<he>> ejaculates onto <<his>> own chest.
 							<<set _postOrgasmSpeech to `"Next time I'll do the fucking. Be ready."`>>
 
 						<</switch>>
 					<<elseif $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">>
-						<<He>> shakes with arousal as <<he>> cums all over your <<penis>>. 
+						<<He>> shakes with arousal as <<he>> cums all over your <<penis>>.
 						<<set _postOrgasmSpeech to `"That was awesome."`>>
-						
+
 					<!-- Special case male PC being orally serviced by male NPC with no other contact -->
 					<<elseif $NPCList[_nn].mouth is "penis">>
 						<<switch random(1, 7)>>
 						<<case 1 2 3>>
-							<<He>> cums as you fuck <<his>> mouth. <<He>> shoves you away, as if disgusted with <<himself>>. 
+							<<He>> cums as you fuck <<his>> mouth. <<He>> shoves you away, as if disgusted with <<himself>>.
 							<<set _postOrgasmSpeech to `"I'm done. Get lost."`>>
 
 							<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.tummy.semen += 1>>
 						<<case 4 5>>
-							<<He>> whimpers and cums on the ground as you grasp <<his>> hair and pound <<his>> face. <<He>> struggles away from your cock. 
-							<<set _postOrgasmSpeech to `"I'm finished. Fuck off.`>>
+							<<He>> whimpers and cums on the ground as you grasp <<his>> hair and pound <<his>> face. <<He>> struggles away from your cock.
+							<<set _postOrgasmSpeech to `"I'm finished. Fuck off."`>>
 
 						<<case 6 7>>
-							<<He>> <<print ($player.ballsExist ? "cups your balls" : "grabs your pussy")>> and painfully drives your <<penis>> down <<his>> throat. 
-							<<He>> ejaculates on <<his>> chest as <<he>> gags on your cock. 
+							<<He>> <<print ($player.ballsExist ? "cups your balls" : "grabs your pussy")>> and painfully drives your <<penis>> down <<his>> throat.
+							<<He>> ejaculates on <<his>> chest as <<he>> gags on your cock.
 							<<set _postOrgasmSpeech to `"T-Topping from the bottom is my speciality, bitch."`>>
 
 						<</switch>>
@@ -2340,7 +2354,7 @@
 <</if>>
 
 <<if $NPCList[_jj].penis is "vagina">>
-	<<if random(1, 100) gte 81 and $NPCList[_jj].type is "dog" or $NPCList[_jj].type is "dogboy" or $NPCList[_jj].type is "doggirl">>
+	<<if random(1, 100) gte 81 and ($NPCList[_jj].type is "dog" or $NPCList[_jj].type is "dogboy" or $NPCList[_jj].type is "doggirl") or _args[0] is "knot">>
 		<<if _args[0] is "knot">>
 			<<set _knotted to true>><<knot_stat>>
 			With a final thrust, <<bhe>> forces <<bhis>> knot into your <<pussy>>. <<bHe>> ejaculates deep into your womb. You feel the semen build within you, its exit plugged. The <<beasttype>> climbs off and faces away from you, but you remain locked together.
@@ -2364,10 +2378,17 @@
 		<br>
 		<<if $audiencepresent gte 1>>
 			The audience enjoy the show.
-			<<print either(
-				`"I can't believe it. Bred by a pig."`,
-				`"I bet <<pshe>> loves getting pig-fucked like this."`
-			)>>
+			<<if $pregnancyspeechdisable is "f">>
+				<<print either(
+					`"I can't believe it. Bred by a pig."`,
+					`"I bet <<pshe>> loves getting pig-fucked like this."`
+				)>>
+			<<else>>
+				<<print either(
+					`"I can't believe it. Fucked by a pig."`,
+					`"I bet <<pshe>> loves getting pig-fucked like this."`
+				)>>			
+			<</if>>
 			<br>
 			<<print either(
 				`"What a filthy slut."`,
@@ -2441,7 +2462,7 @@
 <</if>>
 
 <<if $NPCList[_jj].penis is "anus">>
-	<<if random(1, 100) gte 81 and $NPCList[_jj].type is "dog" or $NPCList[_jj].type is "dogboy" or $NPCList[_jj].type is "doggirl">>
+	<<if random(1, 100) gte 81 and ($NPCList[_jj].type is "dog" or $NPCList[_jj].type is "dogboy" or $NPCList[_jj].type is "doggirl") or _args[0] is "knot">>
 		<<if _args[0] is "knot">>
 			<<set _knotted to true>><<knot_stat>>
 			With a final thrust, <<bhe>> forces <<bhis>> knot into your <<bottom>>. <<bHe>> ejaculates deep into your bowels. You feel the semen build within you, its exit plugged. The <<beasttype>> climbs off and faces away from you, but you remain locked together.
@@ -2465,10 +2486,17 @@
 		<br>
 		<<if $audiencepresent gte 1>>
 			The audience enjoy the show.
-			<<print either(
-				`"I can't believe it. Bred by a pig."`,
-				`"I bet <<pshe>> loves getting pig-fucked like this."`
-			)>>
+			<<if $pregnancyspeechdisable is "f">>
+				<<print either(
+					`"I can't believe it. Bred by a pig."`,
+					`"I bet <<pshe>> loves getting pig-fucked like this."`
+				)>>
+			<<else>>
+				<<print either(
+					`"I can't believe it. Fucked by a pig."`,
+					`"I bet <<pshe>> loves getting pig-fucked like this."`
+				)>>			
+			<</if>>
 			<br>
 			<<print either(
 				`"What a filthy slut."`,
@@ -2688,6 +2716,8 @@
 	<<if _knotted is true>>
 		<<bHis>> knot remains tight within you, preventing the semen from leaking out.
 		<br><br>
+	<<elseif playerHasButtPlug() and $NPCList[_jj].penis is "anus">>
+		Your $worn.butt_plug.name prevents the semen from leaking out.
 	<<elseif $NPCList[_jj].penis is "vagina" or $NPCList[_jj].penis is "anus">><<set $semenpuddle += 1>>
 		<<bHis>> penis slides out;
 		<<switch Math.clamp($semenpuddle, 1,4)>>
diff --git a/game/base-combat/end.twee b/game/base-combat/end.twee
index 04f72e62271b75384cc99e96c20b954dbfe8d720..c0247c073fc80b1d43799f0e7364896e66539159 100644
--- a/game/base-combat/end.twee
+++ b/game/base-combat/end.twee
@@ -113,6 +113,7 @@
 <<unset $newlyWritten>>
 <<unset $combatBegun>>
 <<unset $combatPhase>>
+<<unset $fightTargets>>
 
 <<switch $player.gender>>
 <<case "f">>
@@ -578,6 +579,7 @@
 <<unset $sydneyComments>>
 <<unset $sydneyUniqueComments>>
 <<unset $noBodyWriting>>
+<<unset $noAdmire>>
 <<unset $breakIgnore>>
 <<unset $eventforced>>
 
diff --git a/game/base-combat/images.twee b/game/base-combat/images.twee
index deb9f2c4256af01a02dbf193c703f458790d0d3f..a034701f24e7ebf082b19ac1f75c58a47013fee6 100644
--- a/game/base-combat/images.twee
+++ b/game/base-combat/images.twee
@@ -1,14 +1,25 @@
 :: Widgets Combat Img [widget]
 
 <<widget "combatimg">>
-	<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
-		<<set _animspeed to 'vfast'>>
-	<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 3>>
-		<<set _animspeed to 'fast'>>
-	<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 1>>
-		<<set _animspeed to 'mid'>>
+	<<if $enemytype is "machine">>
+		<<switch $machine.speed>>
+			<<case 1>>
+				<<set _animspeed to "slow">>
+			<<case 2>>
+				<<set _animspeed to "fast">>
+			<<case 3>>
+				<<set _animspeed to "vfast">>
+		<</switch>>
 	<<else>>
-		<<set _animspeed to 'slow'>>
+		<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
+			<<set _animspeed to "vfast">>
+		<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 3>>
+			<<set _animspeed to "fast">>
+		<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 1>>
+			<<set _animspeed to "mid">>
+		<<else>>
+			<<set _animspeed to "mid">>
+		<</if>>
 	<</if>>
 	<<if window.document.body.clientWidth lt 650>>
 		<div id="divandroidsex" @class="colourContainerClasses() + ($combatAnimations isnot false ? '':' noAnimations')">
@@ -946,7 +957,7 @@ Lashes held in place during idle frames, and 4-frame hair overlay that didn't an
 		<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/body/doggyactivevaginal.png">
 		<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/active/body/doggyactivevaginaldp.png">
 		<<if $silhouettedisable is "f">>
-		
+
 			<<if $rightarm is "bound" or $rightarm is "grappled" or $rightarm is "behind">>
 				<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/activevaginal.png">
 				<img @class="'layer-sextears anim-doggy-4f-'+_animspeed" src="img/sex/doggy/shadow/activevaginaldpbound.png">
@@ -1207,12 +1218,11 @@ and _stanceCheck isnot "top">>
 				<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/xraybeastvaginal.png">
 			<</if>>
 		/* STRAP-ON COLOUR TEST */
-		<<elseif $vaginatarget isnot undefined and npcHasStrapon($vaginatarget)>>
+		<<elseif $vaginatarget isnot undefined and npcHasStrapon($vaginatarget, '0x0')>>
 			<<getstraponcolor $vaginatarget>>
 			<<set _ppcolor to $phalluscolorA>>
 			<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/strapon/xray_vaginal_interior.png">
 			<img @class="'layer-sextears '+_ppcolor+' anim-xray-8f-'+_animspeed" src="img/sex/strapon/xray_vaginal_straponRed.png">
-		<<elseif $NPCList[0].skincolour is "black">>
 		<<elseif $vaginatarget isnot undefined and $NPCList[$vaginatarget].skincolour is "black">>
 			<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/black/xrayvaginal.png">
 		<<else>>
@@ -1264,7 +1274,7 @@ and _stanceCheck isnot "top">>
 				<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/xraybeastanal.png">
 			<</if>>
 		</div>
-	<<elseif $anustarget isnot undefined and npcHasStrapon($anustarget)>>
+	<<elseif $anustarget isnot undefined and npcHasStrapon($anustarget, '0x1')>>
 		<div @class="_anusClass" @id="_anusID">
 			<<getstraponcolor $anustarget>>
 			/*<<set _ppcolor to "strapon-"+$NPCList[$anustarget].strapon.color>>*/
@@ -1405,7 +1415,7 @@ and _stanceCheck isnot "top">>
 			<img @class="'layer-sextears '+_ppcolor+' anim-xray-8f-'+_animspeed" src="img/sex/strapon/xray_anal_straponRed.png">
 		</div>
 <<elseif $NPCList[0].skincolour is "black">>
-	<<if ($condomVaginalImg or ($vaginatarget isnot undefined and npcHasStrapon($vaginatarget))) and $vaginastate is "penetrated">>
+	<<if ($condomVaginalImg or ($vaginastate is "penetrated" and ($vaginatarget isnot undefined and npcHasStrapon($vaginatarget))))>>
 		<div class="i256" @id="_vagID">
 			<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/black/xrayvaginal.png">
 		</div>
@@ -1414,7 +1424,7 @@ and _stanceCheck isnot "top">>
 			<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/black/xrayvaginalcum.png">
 		</div>
 	<</if>>
-	<<if ($condomAnalImg or ($vaginatarget isnot undefined and npcHasStrapon($vaginatarget))) and $vaginastate is "penetrated">>
+	<<if ($condomAnalImg or ($vaginatarget isnot undefined and $vaginastate is "penetrated" and npcHasStrapon($vaginatarget)))>>
 		<div class="i256" @id="_vagID">
 			<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/black/xrayvaginaldoubleblack.png">
 		</div>
@@ -1465,7 +1475,7 @@ and _stanceCheck isnot "top">>
 			<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/xrayvaginaldoublecum.png">
 		</div>
 	<</if>>
-	<<if  $anusstate is "penetrated" and ($condomAnalImg or ($anustarget isnot undefined and npcHasStrapon($anustarget)))>>
+	<<if $anusstate is "penetrated" and ($condomAnalImg or ($anustarget isnot undefined and npcHasStrapon($anustarget)))>>
 		<div class="i256" @id="_anusID">
 			<img @class="'anim-xray-8f-'+_animspeed" src="img/sex/xrayanal.png">
 		</div>
@@ -1873,7 +1883,7 @@ and _stanceCheck isnot "top">>
 		<img @class="'anim-close-6f-'+_animspeed" @src="_img.chastitypenis" @style="'filter: '+_filters.body">
 		<img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/'+_position+'/chastity.png'">
 	<<elseif playerHasStrapon()>>
-		/* Need to add strap-on close sprite here */ 
+		/* Need to add strap-on close sprite here */
 		<<if $worn.genitals.type.includes("hidden")>>
 			<img @class="'anim-close-6f-'+_animspeed" @src="'img/sex/close/' + _position + '/chastityBelt/penis'+_beltName+'.png'">
 		<</if>>
diff --git a/game/base-combat/init.twee b/game/base-combat/init.twee
index 4a538db57237091f235552a38eadf69631d3c27f..1b54b22f898bb9657c1f6302f762918de72f177b 100644
--- a/game/base-combat/init.twee
+++ b/game/base-combat/init.twee
@@ -873,24 +873,25 @@ otherwise there's no easy way of stopping NPC from shoving their stuff in PC's f
 <<set $arousalmasochism to 0>>
 
 <<set $combatgoal to 0>>
+<<set $turnCount to 0>>
 
 <<set _genderexposed to $exposed gte 2 and !($worn.genitals.type.includesAll("chastity", "hidden"))>>
 <<if $npc.length gt 0>>
-  <<for _iii to 0; _iii lt $npc.length; _iii++>>
-    <<if $genderknown.includes($npc[_iii])>>
-      <<set _genderknownbeforehand to true>>
-    <<elseif _genderexposed>>
-      <<run $genderknown.pushUnique($npc[_iii])>>
-    <</if>>
-  <</for>>
+	<<for _iii to 0; _iii lt $npc.length; _iii++>>
+		<<if $genderknown.includes($npc[_iii])>>
+			<<set _genderknownbeforehand to true>>
+		<<elseif _genderexposed>>
+			<<run $genderknown.pushUnique($npc[_iii])>>
+		<</if>>
+	<</for>>
 <</if>>
 
 <<set $newlyWritten to []>>
 
 <<if _genderknownbeforehand or _genderexposed>>
-  <<set $crossdressing to 0>>
+	<<set $crossdressing to 0>>
 <<else>>
-  <<crossdressing_check>>
+	<<crossdressing_check>>
 <</if>>
 
 <<set $enemynomax to $enemyno>>
@@ -934,11 +935,13 @@ otherwise there's no easy way of stopping NPC from shoving their stuff in PC's f
 <<if $worn.face.type.includes("gag")>>
 	<<set $mouthuse to "gagged">>
 <</if>>
+
 <<if $worn.feet.type.includes("shackle")>>
 	<<set $leftleg to "bound">>
 	<<set $rightleg to "bound">>
 	<<set $feetuse to "bound">>
 <</if>>
+
 <<if playerHasStrapon()>>
 	<<set $penisuse to 0>><<set $penisstate to 0>>
 	<<if $worn.under_lower.size isnot undefined>>
@@ -1057,7 +1060,7 @@ otherwise there's no easy way of stopping NPC from shoving their stuff in PC's f
 	<<else>>
 		<<if $npc.includes("Sydney") and !$sydneySeen.includes("herm")>>
 			<<set $sydneySeen.pushUnique("herm")>>
-			<<NPCStatusCheck "Sydney">>
+			<<run statusCheck("Sydney")>>
 			<<if _sydneyStatus.includes("corrupt")>>
 				<<He>> stares with wonder at your <<genitals>>. "Woah! <<sydneyMum>> never told me that was possible."
 			<<else>>
@@ -1117,7 +1120,7 @@ otherwise there's no easy way of stopping NPC from shoving their stuff in PC's f
 	<<else>>
 		<<if $npc.includes("Sydney") and !$sydneySeen.includes("crossdress")>>
 			<<set $sydneySeen.pushUnique("crossdress")>>
-			<<NPCStatusCheck "Sydney">>
+			<<run statusCheck("Sydney")>>
 			<<if _sydneyStatus.includes("corrupt")>>
 				<<He>> looks taken aback by your <<genitals>>. "All this time, you were a <<gender>>? Well, that doesn't change how I feel about you."
 			<<else>>
diff --git a/game/base-combat/machine/actions.twee b/game/base-combat/machine/actions.twee
index 01f6fe17bec62b054c077ccf4dbcc4b19d6813a4..71a27eb6ef5328e11323b74e824797a0da7c2bb8 100644
--- a/game/base-combat/machine/actions.twee
+++ b/game/base-combat/machine/actions.twee
@@ -16,7 +16,7 @@
 	<div id="feetaction" @class="$combatControls + 'Control'">
 		<<feetActionInitMachine>>
 	</div>
-	
+
 	<<if ($mouthuse is 0 and !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)))>>
 		<div id="mouthaction" @class="$combatControls + 'Control'">
 			<<mouthActionInit>>
diff --git a/game/base-combat/machine/effects.twee b/game/base-combat/machine/effects.twee
index 47d9b2da52f195cab4381de8e8482d4d0a9cf760..2a59ef2b389d627bff554e82ae0ff2347ff2aa88 100644
--- a/game/base-combat/machine/effects.twee
+++ b/game/base-combat/machine/effects.twee
@@ -121,7 +121,7 @@
 	<</if>>
 	<<set $attackstat += 2>>
 	<<if currentSkillValue('physique') gte random(1, $physiquemax)>>
-		<span class="teal">You feel something snap behind the silicon.</span><<set $machine.vaginal.health -= 2>>
+		<span class="teal">You feel something snap behind the silicone.</span><<set $machine.vaginal.health -= 2>>
 	<</if>>
 	<br>
 
@@ -137,7 +137,7 @@
 	<</if>>
 	<<set $attackstat += 1>>
 	<<if currentSkillValue('physique') gte random(1, $physiquemax)>>
-		<span class="teal">You feel something snap behind the silicon.</span><<set $machine.vaginal.health -= 1>>
+		<span class="teal">You feel something snap behind the silicone.</span><<set $machine.vaginal.health -= 1>>
 	<</if>>
 	<br>
 
@@ -234,7 +234,7 @@
 	<</if>>
 	<<set $attackstat += 2>>
 	<<if currentSkillValue('physique') gte random(1, $physiquemax)>>
-		<span class="teal">You feel something snap behind the silicon.</span><<set $machine.anal.health -= 2>>
+		<span class="teal">You feel something snap behind the silicone.</span><<set $machine.anal.health -= 2>>
 	<</if>>
 	<br>
 
@@ -250,7 +250,7 @@
 	<</if>>
 	<<set $attackstat += 1>>
 	<<if currentSkillValue('physique') gte random(1, $physiquemax)>>
-		<span class="teal">You feel something snap behind the silicon.</span><<set $machine.anal.health -= 1>>
+		<span class="teal">You feel something snap behind the silicone.</span><<set $machine.anal.health -= 1>>
 	<</if>>
 	<br>
 
@@ -377,7 +377,7 @@
 	<</if>>
 	<<set $attackstat += 1>>
 	<<if currentSkillValue('physique') gte random(1, $physiquemax)>>
-		<span class="teal">You feel something snap behind the silicon.</span><<set $machine.vaginal.health -= 1>>
+		<span class="teal">You feel something snap behind the silicone.</span><<set $machine.vaginal.health -= 1>>
 	<</if>>
 	<br>
 <</if>>
@@ -417,7 +417,7 @@
 	<</if>>
 	<<set $attackstat += 1>>
 	<<if currentSkillValue('physique') gte random(1, $physiquemax)>>
-		<span class="teal">You feel something snap behind the silicon.</span><<set $machine.anal.health -= 1>>
+		<span class="teal">You feel something snap behind the silicone.</span><<set $machine.anal.health -= 1>>
 	<</if>>
 	<br>
 <</if>>
diff --git a/game/base-combat/machine/machine.twee b/game/base-combat/machine/machine.twee
index cfb3c4d745a932459ee8a0c93445ff5fa917100f..01c9dc918905765c6ef7079c071bd61e84d47344 100644
--- a/game/base-combat/machine/machine.twee
+++ b/game/base-combat/machine/machine.twee
@@ -4,6 +4,7 @@
 <<set $enemytype to "machine">>
 <<set $machine to {}>>
 <<set $machine.number to 0>>
+<<set $machine.speed to 2>>
 <<for _i = 0; _i < _args.length; _i++>>
 	<<set $machine[_args[_i]] to {}>>
 	<<set $machine[_args[_i]].health to $machine_health>>
@@ -145,7 +146,7 @@
 		The <<machine_damage tattoo>> tattoo gun presses against your <<bodypart $machine.tattoo.use>>. <span class="pink">The whirring intensifies as it prepares to write.</span>
 		<<set $machine.tattoo.state to "imminent">>
 	<</switch>>
-		<br>
+	<br>
 <</if>>
 <<if $machine.vaginal>>
 	<<if $machine.vaginal.ammo lte 0 and $machine.vaginal.state isnot "inert" and $machine.vaginal.state isnot "destroyed">>
@@ -224,21 +225,51 @@
 			<</if>>
 			<<takeVirginity "sex machine" "vaginal">>
 		<<case "penetrated">>
-
-			<<set $rng to random(1, 5)>>
-			<<if $rng gte 5>>
-				The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> with a mechanical rhythm.
-			<<elseif $rng is 4>>
-				The <<machine_damage vaginal>> phallic machine shifts between each thrust into your <<pussy>>.
-			<<elseif $rng is 3>>
-				The <<machine_damage vaginal>> phallic machine pauses a moment, then <span class="purple">assaults your <<pussy>> with a blur of thrusts.</span>
-				<<sex 30>>
-			<<elseif $rng is 2>>
-				The <<machine_damage vaginal>> phallic machine hammers your <<pussy>> faster than anything alive.
+			<<if $machine.speed is 3>>
+				<<switch random(1,5)>>
+					<<case 1>>
+						The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> with irregular thrusts, catching you off guard.
+					<<case 2>>
+						The <<machine_damage vaginal>> phallic machine seems to inflate inside your <<pussy>>, stretching you out.
+					<<case 3>>
+						The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> hard enough to send you lurching forward with each thrust.
+					<<case 4>>
+						The <<machine_damage vaginal>> phallic machine hammers deep into your <<pussy>>.
+					<<case 5>>
+						The <<machine_damage vaginal>> phallic machine pauses a moment, then <span class="purple">assaults your <<pussy>> with a blur of thrusts.</span>
+						<<violence 10>><<gpain>>
+				<</switch>>
+				<<sex 20>><<violence 10>>
+			<<elseif $machine.speed is 2>>
+				<<switch random(1,5)>>
+					<<case 1>>
+						The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> with a mechanical rhythm.
+					<<case 2>>
+						The <<machine_damage vaginal>> phallic machine shifts between each thrust into your <<pussy>>.
+					<<case 3>>
+						The <<machine_damage vaginal>> phallic machine pounds your <<pussy>> with a mechanical rhythm.
+					<<case 4>>
+						The <<machine_damage vaginal>> phallic machine hammers your <<pussy>> faster than anything alive.
+					<<case 5>>
+						The <<machine_damage vaginal>> phallic machine pauses a moment, then <span class="purple">assaults your <<pussy>> with a blur of thrusts.</span>
+						<<sex 30>><<garousal>>
+				<</switch>>
+				<<sex 20>>
 			<<else>>
-				The <<machine_damage vaginal>> phallic machine pounds your <<pussy>> with a mechanical rhythm.
+				<<switch random(1,5)>>
+					<<case 1>>
+						The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> with a gentle rhythm.
+					<<case 2>>
+						The <<machine_damage vaginal>> phallic machine rubs against your <<pussy>>.
+					<<case 3>>
+						The <<machine_damage vaginal>> phallic machine slowly thrusts into your <<pussy>>.
+					<<case 4>>
+						The <<machine_damage vaginal>> phallic machine stops inside your <<pussy>> for a moment, before continuing.
+					<<case 5>>
+						The <<machine_damage vaginal>> phallic machine vibrates against the entrance to your <<pussy>>
+				<</switch>>
 			<</if>>
-			<<sex 30>><<bruise vagina>><<violence 1>>
+			<<sex 10>><<bruise vagina>><<violence 1>>
 			<<set $machine.vaginal.ammo -= 1>>
 		<<case "destroyed">>
 			The <<machine_damage vaginal>> phallic machine twitches, <span class="green">but remains immobile.</span>
@@ -318,20 +349,51 @@
 				<span class="red">The <<machine_damage anal>> small phallic machine thrusts into your virgin ass, violating you in a way you hadn't conceived of.</span>
 			<</if>>
 		<<case "penetrated">>
-			<<set $rng to random(1, 5)>>
-			<<if $rng gte 5>>
-				The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with a mechanical rhythm.
-			<<elseif $rng is 4>>
-				The <<machine_damage anal>> small phallic machine vibrates against your <<prostate>> at the end of each thrust into your <<bottom>>, <span class="purple">sending a tingling jolt through you.</span>
-				<<sex 30>>
-			<<elseif $rng is 3>>
-				The <<machine_damage anal>> small phallic machine is a blur as it fucks your <<bottom>> faster than anything living.
-			<<elseif $rng is 2>>
-				The <<machine_damage anal>> small phallic machine fucks your <<bottom>>, shifting between each thrust.
+			<<if $machine.speed is 3>>
+				<<switch random(1,5)>>
+					<<case 1>>
+						The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with vicious speed.
+					<<case 2>>
+						The <<machine_damage anal>> small phallic machine slams into your <<bottom>>, hitting painfully deep each time.
+					<<case 3>>
+						The <<machine_damage anal>> small phallic machine is a blur as it thrusts into your <<bottom>> faster than anything living.
+					<<case 4>>
+						The <<machine_damage anal>> small phallic machine fucks your <<bottom>> fast enough to push you forward.
+					<<case 5>>
+						The <<machine_damage anal>> small phallic machine hilts itself inside your <<bottom>> and <span class="purple">begins to spin</span>, painfully drilling against the inside of your ass.
+						<<violence 10>><<gpain>>
+				<</switch>>
+				<<sex 20>><<violence 10>>
+			<<elseif $machine.speed is 2>>
+				<<switch random(1,5)>>
+					<<case 1>>
+						The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with a mechanical rhythm.
+					<<case 2>>
+						The <<machine_damage anal>> small phallic machine pounds your <<bottom>> with a mechanical rhythm.
+					<<case 3>>
+						The <<machine_damage anal>> small phallic machine is a blur as it fucks your <<bottom>> faster than anything living.
+					<<case 4>>
+						The <<machine_damage anal>> small phallic machine fucks your <<bottom>>, shifting between each thrust.
+					<<case 5>>
+						The <<machine_damage anal>> small phallic machine vibrates against your <<prostate>> at the end of each thrust into your <<bottom>>, <span class="purple">sending a tingling jolt through you.</span>
+						<<sex 30>><<garousal>>
+				<</switch>>
+				<<sex 20>>
 			<<else>>
-				The <<machine_damage anal>> small phallic machine pounds your <<bottom>> with a mechanical rhythm.
+				<<switch random(1,5)>>
+					<<case 1>>
+						The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with a gentle rhythm.
+					<<case 2>>
+						The <<machine_damage anal>> small phallic machine pauses for a moment.
+					<<case 3>>
+						The <<machine_damage anal>> small phallic machine slowly thrusts in and out of your <<bottom>>.
+					<<case 4>>
+						The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with a soft touch.
+					<<case 5>>
+						The <<machine_damage anal>> small phallic machine halts inside your <<bottom>> and begins to gently vibrate.
+				<</switch>>
 			<</if>>
-			<<sex 30>><<bruise anus>><<violence 1>>
+			<<sex 10>><<bruise anus>><<violence 1>>
 			<<set $machine.anal.ammo -= 1>>
 		<<case "destroyed">>
 			The <<machine_damage anal>> small phallic machine twitches, <span class="green">but remains immobile.</span>
@@ -390,7 +452,7 @@
 	<<elseif $machine.leg_chains.state is "inert">>
 		<span class="teal">The <<machine_damage leg_chains>> chains holding your legs remain loose.</span>
 	<</if>>
-	<br><br>
+	<br>
 <</if>>
 <br>
 
@@ -436,3 +498,9 @@
 <</if>>
 <</widget>>
 
+<<widget "machine_speed">>
+	<<set $machine.speed to _args[0]>>
+	<<if $robinMachineSpeed>>
+		<<set $robinMachineSpeed to 4 - _args[0]>>
+	<</if>>
+<</widget>>
\ No newline at end of file
diff --git a/game/base-combat/man-combat.twee b/game/base-combat/man-combat.twee
index 021da70cd0301c74322059f30fbe2a696972cff6..d1c6bbc4f1be2ca97e8d44a5fbcc37fba16bd920 100644
--- a/game/base-combat/man-combat.twee
+++ b/game/base-combat/man-combat.twee
@@ -357,6 +357,35 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<span class="blue"><<He>> moves <<his>> hand away from your ass.</span>
 		<<combat-reset-hand _args[0]>>
 		<<set $anususe to 0>>
+	<<elseif playerHasButtPlug()>>
+		<<if $rng gte 21 or $noanal is 1 or $cheekaction is "handrub">>
+			<<print either(
+				`<<He>> teases your anus with your $worn.butt_plug.name, sliding it in and out.`,
+				`<<He>> teases your anus with your $worn.butt_plug.name, sliding it in and out.`,
+				`<<He>> slaps your ass and $worn.butt_plug.name.`
+			)>>
+			<<set $anususe to "hand">>
+			<<set $anusstate to "handentrance">>
+		<<else>>
+			<<set $worn.butt_plug.state to "removed">>
+			With <<his>> _args[0] hand,
+			<<if random(0,2) isnot 0>>
+				<<he>> removes your $worn.butt_plug.name.
+				<<set $anususe to "hand">>
+				<<set $anusstate to "handentrance">>
+			<<else>>
+				<<he>> removes your $worn.butt_plug.name and moves <<his>> hand away.
+				<<combat-reset-hand $_hand>><<neutral 5 _n>>
+			<</if>>
+		<</if>>
+		<<set $anususe to "hand">>
+		<<set $anusstate to "handentrance">>
+		<<neutral 10 _n>>
+		<<if random(1, 2) is 2>>
+			<<bodypart_admire_chance left_bottom>>
+		<<else>>
+			<<bodypart_admire_chance right_bottom>>
+		<</if>>
 	<<elseif $rng gte 21 or $noanal is 1 or $cheekaction is "handrub">>
 		<<He>> <<strokes>> your anus.
 		<<set $anususe to "hand">>
@@ -562,26 +591,31 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<<combat-set-hand-target _args[0] "dildo">><<set $NPCList[_n][$_hand + "tool"] to 0>>
 		<<neutral 15 _n>>
 	<<elseif $rng lte 100>>
-		<<switch $penisstate>>
-			<<case "otheranus">><<set $_teased to "anus">><<set $_fucking to "penetrating">>
-			<<case "penetrated">><<set $_teased to "vagina">><<set $_fucking to "penetrating">>
-			<<case "penispenetrated">><<set $_teased to "cock">><<set $_fucking to "rubbing">>
-		<</switch>>
-		<<He>> <<print either("massages","rubs","fences","frots")>> the length of your <<penis>> with the $_toy in <<his>> _args[0] hand,<<if $penisstate is "otheranus" or $penisstate is "penetrated">><<set $_n to _n>> $_fucking <<personselect $penistarget>><<combatperson>>'s $_teased,<<personselect $_n>><</if>>
-		<<neutral 20 _n>><<set $speechpenis to 1>>
-		<<if !playerHasStrapon()>>
-			<<if $arousal gte ($arousalmax / 5) * 4>>
-				causing you involuntary shudders.
-			<<elseif $arousal gte $arousalmax / 5>>
-				coaxing out lewd fluid.
-			<<else>>
-				exploiting your body's natural reactions in a most sordid manner.
-			<</if>>
-		<<else>>
-			<<if $arousal gte ($arousalmax / 5) * 4>>
-				causing you involuntary shudders.
+		<<if ["otheranus","penetrated","penispenetrated"].includes($penisstate)>>
+			<<switch $penisstate>>
+				<<case "otheranus">><<set $_teased to "anus">><<set $_fuck to "penetrate">>
+				<<case "penetrated">><<set $_teased to "vagina">><<set $_fuck to "fuck">>
+				<<case "penispenetrated">><<set $_teased to "cock">><<set $_fuck to "frot">>
+			<</switch>>
+			With <<his>> _args[0] hand, <<he>> <<print either("massages","rubs","fences","frots")>> the length of your <<penis>>
+			as you $_fuck <<set $_n to _n>><<personselect $penistarget>><<combatpersons>> $_teased.<<personselect $_n>>
+		<<else>>
+			<<He>> <<print either("massages","rubs","fences","frots")>> the length of your <<penis>> with the $_toy in <<his>> _args[0] hand,
+			<<neutral 20 _n>><<set $speechpenis to 1>>
+			<<if !playerHasStrapon()>>
+				<<if $arousal gte ($arousalmax / 5) * 4>>
+					causing you involuntary shudders.
+				<<elseif $arousal gte $arousalmax / 5>>
+					coaxing out lewd fluid.
+				<<else>>
+					exploiting your body's natural reactions in a most sordid manner.
+				<</if>>
 			<<else>>
-				strangely arousing you.
+				<<if $arousal gte ($arousalmax / 5) * 4>>
+					causing you involuntary shudders.
+				<<else>>
+					strangely arousing you.
+				<</if>>
 			<</if>>
 		<</if>>
 		<<bodypart_admire_chance pubic>>
@@ -723,22 +757,24 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 <<widget "combat-hand-on-sextoy">>
 	/* used for both dildo types and whip types */
 	<<set $_hand to _args[0]>>
-	<<set $_dildotypes to ["dildo","length of anal beads"]>>
-	<<set $_whiptypes to ["riding crop","flog"]>>
 	<<set $_toy to $_hand + "tool">>
 	<<set $_rand to random(0,9)>>
-	
-	<<if $_rand lte 8 and npcHasSexToyOfType(_n,"dildo") or $_rand lte 1 and npcHasSexToyOfType(_n,"whip")>>
+
+	<<if $_rand lte 8 and npcHasSexToyOfType(_n,"dildo") or $_rand lt 1 and npcHasSexToyOfType(_n,"whip")>>
 		/* find orifice to penetrate */
-		<<if random(0,1) is 0 or $analdisable is "t">>
+		<<if $analdisable is "t" or random(0,2) isnot 0>>
 			<<if $player.penisExist and $player.vaginaExist>>
-				<<if (random(0,1) is 0 or (playerHasStrapon() and random(0,9) is 0))>>
+				<<if random(0,3) is 0>>
 					<<combat-dildo-on-penisentrance $_hand>>
 				<<else>>
 					<<combat-dildo-on-vaginaentrance $_hand>>
 				<</if>>
-			<<elseif $player.penisExist or (playerHasStrapon() and random(0,9) is 0)>>
-				<<combat-dildo-on-penisentrance $_hand>>
+			<<elseif $player.penisExist>>
+				<<if random(0,2) is 0>>
+					<<combat-dildo-on-penisentrance $_hand>>
+				<<else>>
+					<<combat-dildo-on-anusentrance $_hand>>
+				<</if>>
 			<<elseif $player.vaginaExist>>
 				<<combat-dildo-on-vaginaentrance $_hand>>
 			<</if>>
@@ -769,8 +805,8 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			<<He>> pulls a <span class="blue">$_dildo</span> from <<his>> pocket, slapping it against <<his>> $_npcpart $_eagerly.
 		<<else>>
 			<<switch random(0,3)>>
-				<<case 0>>   <<He>> <<print either("flourishes","parades","brandishes","waves")>> <<his>> $_dildocolouredtext, $_eagerly.
-				<<case 1 2>> <<He>> <<print either("slaps","smacks")>> <<his>> $_dildocolouredtext against <<his>> $_npcpart.
+				<<case 0>>	<<He>> <<print either("flourishes","parades","brandishes","waves")>> <<his>> $_dildocolouredtext, $_eagerly.
+				<<case 1 2>><<He>> <<print either("slaps","smacks")>> <<his>> $_dildocolouredtext against <<his>> $_npcpart.
 				<<case 3>>
 					<<set $_slaps to ($consensual is 1 ? ["brushes","caresses"].random() : "slaps")>>
 					<<if $consensual isnot 1>><<violence 5>><</if>>
@@ -1156,7 +1192,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 <</widget>>
 
 <<widget "combat-remove-buttplug">>
-	<<set $_hand to _args[1]>>
+	<<set $_hand to _args[0]>>
 
 	<<He>> removes your $worn.butt_plug.name, <span class="lewd">revealing your anus.</span>
 	<<set $worn.butt_plug.state to "removed">>
@@ -1222,7 +1258,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<set $_hand to _args[0]>>
 
 	<<if random(0,3) is 0>>
-		With <<his>> $_hand hand, he teases your anus with your $_clothing.
+		With <<his>> $_hand hand, <<he>> teases your anus with your $_clothing.
 	<<else>>
 		<<combat-remove-buttplug $_hand>>
 	<</if>>
@@ -1264,8 +1300,8 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<</if>>
 	<<elseif $worn.over_upper.open is 1>>
 		<<if $worn.over_lower.state is $worn.over_upper.state_top
-		 and $worn.over_lower.state is $worn.over_upper.state
-		 and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>>
+		and $worn.over_lower.state is $worn.over_upper.state
+		and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>>
 			<<combat-pull-outfit-up "over" "upper" $_hand>>
 		<<else>>
 			<<combat-pull-outfit-down "over" "upper" $_hand>>
@@ -1286,8 +1322,8 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<</if>>
 	<<elseif $worn.upper.open is 1>>
 		<<if $worn.lower.state is $worn.upper.state_top
-		 and $worn.lower.state is $worn.upper.state
-		 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
+		and $worn.lower.state is $worn.upper.state
+		and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
 			<<combat-pull-outfit-up "" "upper" $_hand>>
 		<<else>>
 			<<combat-pull-outfit-down "" "upper" $_hand>>
@@ -1371,10 +1407,10 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<elseif $NPCList[_n].vagina is "otheranusentrance" and $player.bodyliquid.penis.goo lt 5>>
 			<<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<penis>> in slimy fluid.</span>
 			<<neutral 10>><<set $player.bodyliquid.penis.goo += 1>>
-	<<elseif ($NPCList[_n].penis is "vaginadoubleentrance" or $NPCList[_n].penis is "vaginadoubleimminent") and $player.bodyliquid.vaginaoutside.goo lt 5>>
+	<<elseif ($NPCList[_n].penis is "vaginaentrancedouble" or $NPCList[_n].penis is "vaginaimminentdouble") and $player.bodyliquid.vaginaoutside.goo lt 5>>
 			<<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<pussy>> in slimy fluid.</span>
 			<<neutral 10>><<set $player.bodyliquid.vaginaoutside.goo += 1>>
-	<<elseif ($NPCList[_n].penis is "anusdoubleentrance" or $NPCList[_n].penis is "anusdoubleimminent") and $player.bodyliquid.bottom.goo lt 5>>
+	<<elseif ($NPCList[_n].penis is "anusentrancedouble" or $NPCList[_n].penis is "anusimminentdouble") and $player.bodyliquid.bottom.goo lt 5>>
 			<<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<bottom>> in slimy fluid.</span>
 			<<neutral 10>><<set $player.bodyliquid.bottom.goo += 1>>
 	<<else>>
@@ -1396,7 +1432,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<if $worn.legs.name isnot "naked">>
 		<<He>> tugs off your $worn.legs.name, exposing your feet.
 		<<legsstrip>>
-		<<neutral 5  _n>>
+		<<neutral 5 _n>>
 	<</if>>
 	<<combat-reset-hand _args[0]>>
 <</widget>>
@@ -1567,7 +1603,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			<span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span>
 			<<neutral 1 _n>>
 			<<set $handtarget to "underlowerclothes">>
-		<<elseif $analdisable is "f" and playerHasButtPlug() and random(0,1 is 0)>>
+		<<elseif $analdisable is "f" and playerHasButtPlug() and random(0,1) is 0>>
 			<span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span>
 			<<neutral 1 _n>><<set $handtarget to "buttplug">>
 		<<elseif $worn.genitals.name isnot "naked" and $walltype isnot "front">>
@@ -1582,6 +1618,11 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			<<set _stripped to true>>
 		<</if>>
 		<<combat-set-hand-target _args[0] $handtarget>>
+
+	<<elseif $NPCList[_n].heldSexToy isnot undefined and $rng lt 25 and !getSexToysofType("all").includes($NPCList[_n].lefttool) and !getSexToysofType("all").includes($NPCList[_n].righttool)>>
+		<<giveNPCsextoy _n $NPCList[_n].heldSexToy _args[0]>>
+		<<combat-reveal-sextoy _args[0]>>
+
 	<<elseif $rng lte 7 and ($consensual isnot 1 or ["Whitney", "Kylar", "Sydney"].includes($npc[$npcrow.indexOf(_n)])) and $bodywritingLvl gte 2 and $enemytype isnot "beast" and !$noBodyWriting>>
 		<<set _rng to random(1, 5)>>
 		<<if (_rng is 5 and $NPCList[_n].type isnot "plant") or $npc.includes("Sydney")>>
@@ -1606,72 +1647,6 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<</if>>
 		<<neutral 1 _n>>
 
-	<<elseif $enemyanger + $rng lte 8 and $toydildodisable is "f" and !getSexToysofType("dildos and strokers").includes($NPCList[_n].lefttool) and !getSexToysofType("dildos and strokers").includes($NPCList[_n].righttool) and $enemytype isnot "beast" and $NPCList[_n].type isnot "plant" and $NPCList[0].fullDescription isnot "Ivory Wraith">>
-		/* Sex toys, dildo types and strokers specifically */
-		<<NPCStatusCheck "Sydney">>
-		<<if $position is "wall" and $walltype is "front">>
-			<span class="purple"><<He>> <<print either("pats","strokes","fondles")>> your hair with <<his>> _args[0] hand.</span>
-			<<set $speechhair to 1>>
-			<<bodypart_admire_chance forehead>>
-		<<elseif ["Robin", "Kylar","Great Hawk","Black Wolf","Eden","Bailey","Alex", "Bailey"].includes($npc[$npcrow.indexOf(_n)]) or ($npc[$npcrow.indexOf(_n)] is "Sydney" and !_sydneyStatus.includes("corrupt")) or ($NPCList[_n].teen is 1 and !["Alex","Whitney","Sydney"].includes($npc[$npcrow.indexOf(_n)]) and random(0,9) isnot 0)>>
-			/* Skip toys for certain NPCs */
-			<<set $handtarget to 0>>
-			<<if $worn.over_lower.name isnot "naked">>
-				<span class="purple"><<He>> grasps your $worn.over_lower.name with <<his>> _args[0] hand.</span>
-				<<set $handtarget to "overlowerclothes">><<neutral 1 _n>>
-			<<elseif $worn.lower.name isnot "naked">>
-				<span class="purple"><<He>> grasps your $worn.lower.name with <<his>> _args[0] hand.</span>
-				<<set $handtarget to "lowerclothes">><<neutral 1 _n>>
-			<<elseif $worn.genitals.type.includes("chastity")>>
-				<<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your $worn.genitals.name.
-				<<neutral 10 _n>><<set $speechchastity to 1>>
-			<<elseif $analdisable is "f" and random(0,1) is 0 and playerHasButtPlug()>>
-				<span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span>
-				<<neutral 1 _n>><<set $handtarget to "buttplug">>
-			<<elseif $player.penisExist and $player.vaginaExist>>
-				<<if $player.ballsExist and random(0,1) is 1>>
-					<<He>> <<strokes>> your <<testicles>> and teases your glans.
-					<<neutral 10 _n>><<set $speechglans to 1>>
-				<<else>>
-					<<He>> strokes the base of your <<penis>> where it meets your <<pussy>>.
-					<<neutral 10 _n>><<set $speechfutapenis to 1>>
-				<</if>>
-			<<elseif $player.penisExist and $player.ballsExist>>
-				<<He>> <<strokes>> your <<testicles>> and teases your glans.
-				<<neutral 10 _n>><<set $speechglans to 1>>
-			<<elseif $player.vaginaExist>>
-				<<He>> <<strokes>> your pubic mound and teases your clit.
-				<<neutral 10 _n>><<set $speechclit to 1>>
-			<<else>>
-				<<He>> <<strokes>> your <<print either("thigh","butt","hip")>>.
-			<</if>>
-			<<combat-set-hand-target _args[0] $handtarget>>
-		<<else>>
-			<<set $_dildo to randomSexToy("dildo")>>
-			<<if $NPCList[_n].penis isnot 0 and $NPCList[_n].penis isnot "none" and !$NPCList[_n].penisdesc.includes("strap-on") and $player.penisExist>>
-				<<set $_dildo to randomSexToy("dildos and strokers")>>
-			<</if>>
-			<<set $_hand to _args[0]>>
-			<<set $_otherhand to ($_hand is "left" ? "right" : "left" )>>
-			<<set $_freehand to ($NPCList[_n][$_otherhand+"hand"] is 0 ? true : false)>>
-			<<set $_palm to ($_freehand is true ? either("palm","palm","palm","thigh","thigh","shoulder") : either("thigh","shoulder"))>>
-			<<set $_eagerly to ($consensual is 1 ? "eagerly" : "menacingly")>>
-
-			<<if random(0,4) is 0>>
-				<span class="purple"><<He>> pulls a <span class="blue">$_dildo</span> from <<his>> pocket, slapping it against <<his>> <<print $_palm>> <<print $_eagerly>>.</span>
-			<<else>>
-				<span class="purple"><<He>> pulls a <span class="blue">$_dildo</span> from <<his>> pocket.</span>
-			<</if>>
-
-			<<if getSexToysofType("stroker").includes($_dildo)>>
-				<<set $NPCList[_n][$_hand+"tool"] to $_dildo>>
-				<<set $NPCList[_n][$_hand+"hand"] to "stroker">>
-			<<else>>
-				<<set $NPCList[_n][$_hand+"tool"] to $_dildo>>
-				<<set $NPCList[_n][$_hand+"hand"] to "dildo">>
-			<</if>>
-		<</if>>
-
 	<<elseif $enemyanger + $rng lte 20>>
 		<<if $walltype is "front">>
 			<<He>> strokes your cheek.
@@ -1713,6 +1688,9 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			<<elseif $worn.lower.name isnot "naked">>
 				<span class="purple"><<He>> grasps your $worn.lower.name with <<his>> _args[0] hand.</span>
 				<<set $handtarget to "lowerclothes">><<neutral 1 _n>>
+			<<elseif playerHasStrapon()>>
+				<<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your $worn.under_lower.name.
+				<<neutral 10 _n>>
 			<<elseif $worn.genitals.type.includes("chastity")>>
 				<<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your $worn.genitals.name.
 				<<neutral 10 _n>><<set $speechchastity to 1>>
@@ -2073,6 +2051,9 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<<elseif $worn.lower.name isnot "naked">>
 			<span class="purple"><<He>> grasps your $worn.lower.name with <<his>> _args[0] hand.</span>
 			<<combat-set-hand-target _args[0] "lowerclothes">><<neutral 1 _n>>
+		<<elseif playerHasStrapon()>>
+			<<He>> smacks your hip.
+			<<neutral 15 _n>>
 		<<elseif $player.penisExist>>
 			/*$penis use need to be checked inside of $player.penisExist check to prevent mention of the clitoris*/
 			<<if $penisuse is 0>>
@@ -2211,58 +2192,6 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<</if>>
 		<<bodypart_admire_chance pubic>>
 
-	<<elseif $enemyanger + $rng lte 132 and $toywhipdisable is "f" and !getSexToysofType("whip").includes($NPCList[_n].lefttool) and !getSexToysofType("whip").includes($NPCList[_n].righttool) and ($NPCList[_n].teen isnot 1 or random(0,4) isnot 0) and $enemytype isnot "beast" and $NPCList[_n].type isnot "plant" and $NPCList[0].fullDescription isnot "Ivory Wraith">>
-		<<NPCStatusCheck "Sydney">>
-		/* Leather crop start */
-		<<if $position is "wall" and $walltype is "front">>
-			<span class="purple"><<He>> seizes your hair with <<his>> _args[0] hand.</span>
-			<<combat-set-hand-target _args[0] "hair">><<violence 2>><<set $speechhair to 1>>
-			<<bodypart_admire_chance forehead>>
-		<<elseif ($npc[$npcrow.indexOf(_n)] is "Sydney" and !_sydneyStatus.includes("corrupt")) or ["Robin", "Kylar","Great Hawk","Black Wolf"].includes($npc[$npcrow.indexOf(_n)])>>
-			/* Named NPCs excluded */
-			<<set $_smacks to either("smacks","slaps","pinches")>>
-			<<switch random(0,3)>>
-				<<case 0>><span class="red"><<He>> <<print $_smacks>> your <<bottom>>.</span>
-					<<violence 1>><<bruise bottom>><<hitstat>>
-				<<case 1>>
-					<<if $player.penisExist and $player.vaginaExist>>
-						<span class="red"><<He>> <<print $_smacks>> your shaft and labia.</span>
-					<<elseif $player.penisExist>>
-						<span class="red"><<He>> <<print $_smacks>> your <<penis>>.</span>
-					<<elseif $player.vaginaExist>>
-						<span class="red"><<He>> <<print $_smacks>> your <<pussy>>.</span>
-					<</if>>
-				<<case 2>>
-						<span class="red"><<He>> <<print either("squeezes","grasps","throttles","chokes","strangles")>> your neck in a vice grip, but relents.</span>
-				<<case 3>>
-					<span class="purple"><<He>> seizes your hair with <<his>> _args[0] hand.</span>
-					<<combat-set-hand-target _args[0] "hair">><<violence 2>><<set $speechhair to 1>>
-					<<bodypart_admire_chance forehead>>
-			<</switch>>
-		<<else>>
-			/* Use crops, flogs, whips, whatever */
-			<<set $_whip to randomSexToy("whip")>>
-			<<set $_smacking to either("smacking","smacking","slapping","whacking")>>
-
-			<<set $_hand to _args[0]>>
-			<<set $_otherhand to ($_hand is "left" ? "right" : "left" )>>
-			<<set $_freehand to ($NPCList[_n][$_otherhand+"hand"] is 0 ? true : false)>>
-
-			<span class="purple"><<He>> pulls a <span class="red">leather $_whip</span> from <<his>> pocket,
-			<<if $_freehand is true>>
-			$_smacking it against <<his>> palm.
-			<<else>>
-			$_smacking it against <<his>> <<print either("shoulder","thigh")>>.
-			<</if>>
-			</span>
-			<<if _args[0] is "left">>
-				<<set $NPCList[_n].lefttool to $_whip>>
-				<<set $NPCList[_n].lefthand to "dildo">>
-			<<elseif _args[0] is "right">>
-				<<set $NPCList[_n].righttool to $_whip>>
-				<<set $NPCList[_n].righthand to "dildo">>
-			<</if>>
-		<</if>>
 	<<elseif $enemyanger + $rng lte 140>>
 		<<if $position is "wall" and $walltype isnot "front">>
 			<<He>> slaps your <<bottom>>.
@@ -2381,7 +2310,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 				<span class="purple"><<He>> grasps your $worn.feet.name.</span>
 				<<combat-set-hand-target _args[0] "shoes">>
 				<<neutral 3 _n>>
-			<<elseif $enemytype is "man" and $NPCList[_n].fullDescription isnot "Ivory Wraith" and !$abomination and !$possessed>>
+			<<elseif $enemytype is "man" and $NPCList[_n].fullDescription isnot "Ivory Wraith" and !$abomination and !$possessed and !$robinmist>>
 				<span class="pink"><<He>> produces a pair of menacing metal shackles.</span>
 				<<combat-set-hand-target _args[0] "shackle_entrance">>
 				<<neutral 4 _n>>
@@ -2490,7 +2419,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 <<outfitChecks>>
 <<set _n to _args[0]>>
 <!-- Converted his1-6 to hisselect #. Person1-6 to personselect #. $intro1-6 as array $NPCList[_n].intro -->
-<!-- Converted man1-6speech to manspeech #. Randomized penissize reaction.-->
+<!-- Converted man1-6speech to manspeech #. Randomised penissize reaction.-->
 
 <<if ["m", "f", "i", "n", "t"].includes($NPCList[_n].pronoun)>>
 	<<set $pronoun to $NPCList[_n].pronoun>>
@@ -2701,13 +2630,13 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 					<<else>>
 						<<switch $NPCList[_n].penissize>>
 						<<case 4>>
-							<span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, obliterating your hymen and forever robbing you of your purity. You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span>
+							<span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, obliterating your hymen and <<virginitylosttext $NPCList[_n].fullDescription>> You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span>
 							<<violence 200>>
 						<<case 1>>
-							<span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, breaking your hymen and forever robbing you of your purity.</span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span>
+							<span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span>
 							<<violence 25>>
 						<<default>>
-							<span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy,</span><span class="red"> tearing your hymen and forever robbing you of your purity.</span>
+							<span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy,</span><span class="red"> tearing your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span>
 							<<violence 100>>
 						<</switch>>
 					<</if>>
@@ -2796,7 +2725,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 
 		<<if $rng gte 101>>
 			<span class="purple"><<He>> slides <<his>> $NPCList[_n].penisdesc out of your <<pussy>>.</span>
-			<<sex 30>><<set $NPCList[_n].penis to "vaginadoubleimminent">><<bruise vagina>><<violence 1>><<set $vaginastate to "doubleimminent">>
+			<<sex 30>><<set $NPCList[_n].penis to "vaginaimminentdouble">><<bruise vagina>><<violence 1>><<set $vaginastate to "doubleimminent">>
 		<<elseif $rng gte 1>>
 			<<if _dvp is 2>>
 				<<set $_alongsidearray to ["alongside","alongside","in time with","heedless of","pounding away against","thrusting against"]>>
@@ -2868,7 +2797,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<</if>>
 	<</if>>
 	<<set $rng to random(1, 100)>>
-	<<if $NPCList[_n].penis is "vaginadoubleimminent">>
+	<<if $NPCList[_n].penis is "vaginaimminentdouble">>
 		<<set _dvp to 0>>
 		<<set _npcA to (_n is $vaginatarget ? $vaginatarget : $vaginadoubletarget)>>
 		<<set _npcB to (_n is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>>
@@ -2881,7 +2810,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 
 		<<if $rng gte 101>>
 			<span class="blue"><<He>> stops pressing <<his>> $NPCList[_n].penisdesc against your pussy.</span>
-			<<set $NPCList[_n].penis to "vaginadoubleentrance">><<set $vaginastate to "doubleentrance">>
+			<<set $NPCList[_n].penis to "vaginaentrancedouble">><<set $vaginastate to "doubleentrance">>
 		<<elseif $rng gte 1>>
 			<<if _dvp is 2>>
 				<<if $novaginal is 0>>
@@ -2911,13 +2840,13 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 						<<else>>
 							<<switch $NPCList[_n].penissize>>
 							<<case 4 5>>
-								<span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, joining <<personselect _npcB>><<combatperson>>'s <<npcPenisSimple _npcB>><<personselect _npcA>>, obliterating your hymen and forever robbing you of your purity. You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span><<set _n to $_n>>
+								<span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, joining <<personselect _npcB>><<combatperson>>'s <<npcPenisSimple _npcB>><<personselect _npcA>>, obliterating your hymen and <<virginitylosttext $NPCList[_n].fullDescription>> You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span><<set _n to $_n>>
 								<<violence 200>>
 							<<case 1>>
-								<span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, joining <<personselect _npcB>><<combatperson>>'s <<npcPenisSimple _npcB>><<personselect _npcA>>, breaking your hymen and forever robbing you of your purity.</span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span><<set _n to $_n>>
+								<span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, joining <<personselect _npcB>><<combatperson>>'s <<npcPenisSimple _npcB>><<personselect _npcA>>, breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span><<set _n to $_n>>
 								<<violence 25>>
 							<<default>>
-								<span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, joining <<personselect _npcB>><<combatperson>>'s <<npcPenisSimple _npcB>><<personselect _npcA>>,</span><span class="red"> tearing your hymen and forever robbing you of your purity.</span><<set _n to $_n>>
+								<span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, joining <<personselect _npcB>><<combatperson>>'s <<npcPenisSimple _npcB>><<personselect _npcA>>,</span><span class="red"> tearing your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span><<set _n to $_n>>
 								<<violence 100>>
 							<</switch>>
 						<</if>>
@@ -2955,13 +2884,13 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 						<<else>>
 							<<switch $NPCList[_n].penissize>>
 							<<case 4>>
-								<span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, obliterating your hymen and forever robbing you of your purity. You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span>
+								<span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, obliterating your hymen and <<virginitylosttext $NPCList[_n].fullDescription>> You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span>
 								<<violence 200>>
 							<<case 1>>
-								<span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, breaking your hymen and forever robbing you of your purity.</span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span>
+								<span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span>
 								<<violence 25>>
 							<<default>>
-								<span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy,</span><span class="red"> tearing your hymen and forever robbing you of your purity.</span>
+								<span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy,</span><span class="red"> tearing your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span>
 								<<violence 100>>
 							<</switch>>
 						<</if>>
@@ -2978,7 +2907,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<</if>>
 
 	<<set $rng to random(1, 100)>>
-	<<if $NPCList[_n].penis is "vaginadoubleentrance">>
+	<<if $NPCList[_n].penis is "vaginaentrancedouble">>
 		<<if $rng gte 101>>
 			<span class="lblue"><<He>> moves <<his>> penis away from your <<pussy>>, and the other cock.</span>
 			<<set $NPCList[_n].penis to 0>><<set $vaginause to 0>><<set $vaginastate to 0>>
@@ -3005,7 +2934,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 						<<elseif !$npcSub>>
 							<<if $vaginaWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 3) is 2>>
 								<<He>> pushes <<his>> $NPCList[_n].penisdesc against your <<pussy>>. <<vagina_lube_text>><span class="pink">the tip presses into you, a thrust away from penetrating.</span>
-								<<sex 20>><<set $NPCList[_n].penis to "vaginadoubleimminent">><<set $speechvaginaimminent to 1>>
+								<<sex 20>><<set $NPCList[_n].penis to "vaginaimminentdouble">><<set $speechvaginaimminent to 1>>
 								<<if $vaginastate isnot "doublepenetrated">><<set $vaginastate to "doubleimminent">><</if>>
 							<<else>>
 								<<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>>; <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it against your <<clit>> and the other cock.
@@ -3279,7 +3208,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 
 		<<if $rng gte 101>>
 			<span class="purple"><<He>> withdraws <<his>> penis from your anus.</span>
-			<<sex 30 _n>><<set $NPCList[_n].penis to "anusdoubleimminent">><<bruise anus>><<violence 1>><<set $anusstate to "doubleimminent">>
+			<<sex 30 _n>><<set $NPCList[_n].penis to "anusimminentdouble">><<bruise anus>><<violence 1>><<set $anusstate to "doubleimminent">>
 		<<elseif $rng gte 1>>
 			<<set $_alongside to either("alongside","heedless of","pushing aside")>>
 			<<set $_andbuttplug to (playerHasButtPlug() ? ", "+$_alongside+" your "+$worn.butt_plug.name : "")>>
@@ -3326,7 +3255,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 					<<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>>
 						You feel <<his>> $NPCList[_n].penisdesc ever deeper within you as <<he>> fucks your <<bottom>>$_andbuttplug.
 					<<else>>
-						<<He>> fucks your <<bottom>> with rough thrusts$_andbuttplug, intent on showing you who's boss
+						<<He>> fucks your <<bottom>> with rough thrusts$_andbuttplug, intent on showing you who's boss.
 					<</if>>
 				<<elseif $enemyanger gte 20>>
 					<<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>>
@@ -3354,7 +3283,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<</if>>
 	<</if>>
 	<<set $rng to random(1, 100)>>
-	<<if $NPCList[_n].penis is "anusdoubleimminent">>
+	<<if $NPCList[_n].penis is "anusimminentdouble">>
 
 		<<set _dap to 0>>
 		<<set _otherNPCindex to "f">>
@@ -3369,7 +3298,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 
 		<<if $rng gte 101>>
 			<span class="blue"><<He>> stops pressing <<his>> $NPCList[_n].penisdesc against your anus.</span>
-			<<set $NPCList[_n].penis to "anusdoubleentrance">><<set $anusstate to "doubleentrance">>
+			<<set $NPCList[_n].penis to "anusentrancedouble">><<set $anusstate to "doubleentrance">>
 		<<elseif $rng gte 1>>
 			<<if _dap is 2>>
 				<<if $noanal is 0>>
@@ -3451,7 +3380,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<</if>>
 	<</if>>
 	<<set $rng to random(1, 100)>>
-	<<if $NPCList[_n].penis is "anusdoubleentrance">>
+	<<if $NPCList[_n].penis is "anusentrancedouble">>
 		<<set _dap to 0>>
 		<<if $NPCList[$anustarget] is $NPCList[_n]>> /* State 1 is out of sync, state 2 is in sync */
 			<<set _dap to ($NPCList[$anusdoubletarget].penis isnot "anusdouble" ? 1 : 2)>>
@@ -3519,7 +3448,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 						<<elseif !$npcSub>>
 							<<if $anusWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 2) is 2>>
 								<<He>> presses <<his>> $NPCList[_n].penisdesc against your <<bottom>>. <<anus_lube_text>><span class="pink">the tip presses into you, a thrust away from penetrating.</span>
-								<<sex 20 _n>><<set $NPCList[_n].penis to "anusdoubleimminent">>
+								<<sex 20 _n>><<set $NPCList[_n].penis to "anusimminentdouble">>
 								<<if $anusstate isnot "doublepenetrated">><<set $anusstate to "doubleimminent">><</if>><<set $speechanusimminent to 1>>
 							<<else>>
 								<<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>>, <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it between your cheeks.
@@ -3738,7 +3667,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			<</if>>
 		<<else>>
 			<<if $penisuse is "feet">>
-				<<He>> presses your <<penis>> against your stomach with <<his>> foot and rubs your glans between <<his>> toes.
+				<<He>> presses your <<penis>> against your stomach with <<his>> foot and rubs your <<glans>> between <<his>> toes.
 				<<set $speechpenisfoot to 1>><<neutral 5 _n>><<violence 1 _n>>
 			<<elseif $vaginause is "feet">>
 				<<He>> presses and teases your <<pussy>> with <<his>> foot.
@@ -3779,7 +3708,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 					<</if>>
 				<<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>>
 					<<if $worn.under_lower.type.includes("strap-on")>>
-						<<he>> continues to fuck your strap-on, relishing your sex toy inside <<him>>.
+						<<He>> continues to fuck your strap-on, relishing your sex toy inside <<him>>.
 					<<else>>
 						<<He>> continues to violate your <<penis>>, using you as a sex toy.
 					<</if>>
@@ -3817,7 +3746,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 						<span class="pink"><<He>> eases your <<penis>> into <<his>> ass, swallowing you to the base.</span>
 						<<sex 30 _n>><<set $NPCList[_n].penis to "otheranus">><<penilestat>><<bruise penis>><<violence 1>><<raped>><<penisraped>><<set $penisstate to "otheranus">><<set $speechotheranuspenetrated to 1>>
 					<<elseif $player.virginity.penile is true>>
-						<span class="pink"><<He>> eases your virgin penis into <<his>> ass,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span>
+						<span class="pink"><<He>> eases your virgin penis into <<his>> ass,</span><span class="red"> separating your foreskin from your glans and</span> <<virginitylosttext $NPCList[_n].fullDescription>>
 						<<sex 100 _n>><<set $NPCList[_n].penis to "otheranus">><<bruise penis>><<penilestat>><<violence 100>><<raped>><<penisraped>><<set $penisstate to "otheranus">><<set $speechpenisvirgin to 1>>
 					<</if>>
 					<<takeVirginity $NPCList[_n].fullDescription "penile">><<takeNPCVirginity _n "anal">>
@@ -3829,7 +3758,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 					<<set $speechpenisbig to 1>><<set $enemyanger += 5>>
 				<</if>>
 			<<else>>
-				Respecting your wishes, <<he>> does not envelope your <<penis>> with <<his>> ass, instead teasing the tip of your glans.
+				Respecting your wishes, <<he>> does not envelope your <<penis>> with <<his>> ass, instead teasing the tip of your <<glans>>.
 				<<sex 15 _n>><<set $speechotheranuswithhold to 1>>
 			<</if>>
 		<</if>>
@@ -3978,7 +3907,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			<span class="blue"><<He>> moves <<his>> clit away and presses <<his>> hungry pussy against your <<penis>>.</span>
 			<<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $speechpenisentrance to 1>>
 		<<else>>
-			<<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> clit against your glans.
+			<<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> clit against your <<glans>>.
 			<<sex 5 _n>>
 		<</if>>
 	<</if>>
@@ -4042,7 +3971,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 						<span class="pink"><<He>> eases your <<penis>> into <<his>> pussy, swallowing you to the base.</span>
 						<<sex 30 _n>><<set $NPCList[_n].vagina to "penis">><<penilestat>><<bruise penis>><<violence 1>><<raped>><<penisraped>><<set $penisstate to "penetrated">><<set $speechpenispenetrated to 1>>
 					<<elseif $player.virginity.penile is true>>
-						<span class="pink"><<He>> eases your virgin penis into <<his>> pussy,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span>
+						<span class="pink"><<He>> eases your virgin penis into <<his>> pussy,</span><span class="red"> separating your foreskin from your glans and <<virginitylosttext $NPCList[_n].fullDescription>></span>
 						<<sex 100 _n>><<set $NPCList[_n].vagina to "penis">><<bruise penis>><<penilestat>><<violence 100>><<raped>><<penisraped>><<set $penisstate to "penetrated">><<set $speechpenisvirgin to 1>>
 					<</if>>
 					<<takeVirginity $NPCList[_n].fullDescription "penile">><<takeNPCVirginity _n "vaginal">>
@@ -4203,7 +4132,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<elseif $NPCList[_n].vagina is "vagina">>
 		<<if $rng gte 1>>
 			<<if $enemyarousal gte $enemyarousalmax * 0.8>>
-				<<He>> thrusts <<his>> hips, <<if $npcSub>>instinctively<</if>> pounding your <<pussy>> against <<his>> with a violent intensity.
+				<<He>> thrusts <<his>> hips, <<if $npcSub>>instinctively<</if>> pounding your <<pussy>> against <<hers>> with a violent intensity.
 				<<if $vaginaWetness gte 45>>
 					<span class="purple">Your juices mingle.</span><<purity -1>>
 				<</if>>
@@ -4279,7 +4208,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			<</if>>
 		<<else>>
 			<<if $penisuse is "feet">>
-				<<He>> presses your penis against your stomach with <<his>> foot and rubs your glans between <<his>> toes.
+				<<He>> presses your penis against your stomach with <<his>> foot and rubs your <<glans>> between <<his>> toes.
 				<<set $speechpenisfoot to 1>><<neutral 5 _n>><<violence 1>>
 			<<elseif $vaginause is "feet">>
 				<<He>> rubs <<his>> foot against your <<pussy>>.
@@ -4358,7 +4287,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 						<span class="pink"><<He>> eases your <<penis>> into <<his>> ass, swallowing you to the base.</span>
 						<<sex 30 _n>><<set $NPCList[_n].vagina to "otheranus">><<penilestat>><<bruise penis>><<violence 1>><<raped>><<penisraped>><<set $penisstate to "otheranus">><<set $speechotheranuspenetrated to 1>>
 					<<elseif $player.virginity.penile is true>>
-						<span class="pink"> <<He>> eases your virgin penis into <<his>> ass,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span>
+						<span class="pink"> <<He>> eases your virgin penis into <<his>> ass,</span><span class="red"> separating your foreskin from your glans and <<virginitylosttext $NPCList[_n].fullDescription>></span>
 						<<sex 100 _n>><<set $NPCList[_n].vagina to "otheranus">><<bruise penis>><<penilestat>><<violence 100>><<raped>><<penisraped>><<set $penisstate to "otheranus">><<set $speechpenisvirgin to 1>>
 					<</if>>
 					<<takeVirginity $NPCList[_n].fullDescription "penile">><<takeNPCVirginity _n "anal">>
@@ -4370,7 +4299,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 					<<set $speechpenisbig to 1>><<set $enemyanger += 5>>
 				<</if>>
 			<<else>>
-				Respecting your wishes, <<he>> does not envelope your <<penis>> with <<his>> ass, instead teasing the tip of your glans.
+				Respecting your wishes, <<he>> does not envelope your <<penis>> with <<his>> ass, instead teasing the tip of your <<glans>>.
 				<<sex 15 _n>><<set $speechotheranuswithhold to 1>>
 			<</if>>
 		<</if>>
@@ -4587,11 +4516,24 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<if $NPCList[_n].vagina is "leftDildo">>
 		<<if $rng gte 1>>
 			<<if !$npcSub>>
-				<<He>> thrusts <<his>> pussy against your $currentSexToyLeft.name.
-				<<submission 2 _n>>
+				<<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>>
+					<<He>> <<print either("rhythmically","","")>> thrusts <<his>> pussy against your $currentSexToyLeft.name.
+				<<else>>
+					<<print either(
+						`<<He>> thrusts <<his>> pussy up and down your dildo, fucking <<him>>self with a violent intensity as <<he>> approaches <<his>> peak.`,
+						`<<He>> <<print either("forcefully","desperately","rhythmically")>> thrusts <<his>> pussy against your $currentSexToyLeft.name.`,
+						`<<He>> <<print either("thrusts","grinds")>> <<his>> pussy against your $currentSexToyLeft.name in circular motions.`,
+					)>>
+					<<if $NPCList[$lefttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> down the toy.
+				<</if>>
 			<<else>>
-				You fuck <<his>> pussy with your $currentSexToyLeft.name.
+				<<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>>
+					You fuck <<his>> pussy with your $currentSexToyLeft.name.
+				<<else>>
+					You fuck <<his>> pussy with your $currentSexToyLeft.name. <<if $NPCList[$lefttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> down your toy.
+				<</if>>
 			<</if>>
+			<<submission 2 _n>>
 		<<else>>
 			<<He>> moves your $currentSexToyLeft.name away from <<his>> pussy.
 			<<set $leftarm to 0>><<set $NPCList[_n].vagina to 0>><<set $leftactiondefault to "dildoOtherPussyFuck">>
@@ -4601,11 +4543,24 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<if $NPCList[_n].vagina is "rightDildo">>
 		<<if $rng gte 1>>
 			<<if !$npcSub>>
-				<<He>> thrusts <<his>> pussy against your $currentSexToyRight.name.
-				<<submission 2 _n>>
+				<<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>>
+					<<He>> <<print either("rhythmically","","")>> thrusts <<his>> pussy against your $currentSexToyLeft.name.
+				<<else>>
+					<<print either(
+						`<<He>> thrusts <<his>> pussy up and down your dildo, fucking <<him>>self with a violent intensity as <<he>> approaches <<his>> peak.`,
+						`<<He>> <<print either("forcefully","desperately","rhythmically")>> thrusts <<his>> pussy against your $currentSexToyLeft.name.`,
+						`<<He>> <<print either("thrusts","grinds")>> <<his>> pussy against your $currentSexToyLeft.name in circular motions.`,
+					)>>
+					<<if $NPCList[$lefttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> down your toy.
+				<</if>>
 			<<else>>
-				You fuck <<his>> pussy with your $currentSexToyRight.name.
+				<<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>>
+					You fuck <<his>> pussy with your $currentSexToyLeft.name.
+				<<else>>
+					You fuck <<his>> pussy with your $currentSexToyLeft.name. <<if $NPCList[$lefttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> from <<his>> pussy.
+				<</if>>
 			<</if>>
+			<<submission 2 _n>>
 		<<else>>
 			<<He>> moves your $currentSexToyRight.name away from <<his>> pussy.
 			<<set $rightarm to 0>><<set $NPCList[_n].vagina to 0>><<set $rightactiondefault to "dildoOtherPussyFuck">>
@@ -4857,7 +4812,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 					<span class="pink"><<He>> pushes <<his>> tongue between your <<pussy>> lips.</span>
 					<<sex 30 _n>><<set $NPCList[_n].mouth to "vagina">><<vaginalstat>><<bruise vagina>><<violence 1>><<set $vaginastate to "othermouth">>
 				<<elseif $player.virginity.vaginal is true>>
-					<span class="pink"><<He>> pushes <<his>> tongue into your virgin pussy,</span><span class="red"> breaking your hymen and forever robbing you of your purity.</span>
+					<span class="pink"><<He>> pushes <<his>> tongue into your virgin pussy,</span><span class="red"> breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span>
 					<<sex 100 _n>><<set $NPCList[_n].mouth to "vagina">><<takeVirginity $NPCList[_n].fullDescription "vaginal">><<bruise vagina>><<vaginalstat>><<violence 100>><<raped>><<vaginaraped>><<set $vaginastate to "othermouth">>
 				<</if>>
 			<<else>>
@@ -4927,7 +4882,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 				Eyes fixed on your face, <<he>> wraps <<his>> tongue around your <<penis>> and sucks.
 				<<sex 30 _n>><<bruise penis>><<violence 1>>
 			<<elseif $enemyarousal lte (($enemyarousalmax / 5) * 3)>>
-				<<He>> squeezes <<his>> lips around your <<penis>>, and circles <<his>> tongue around your glans.
+				<<He>> squeezes <<his>> lips around your <<penis>>, and circles <<his>> tongue around your <<glans>>.
 				<<sex 30 _n>><<bruise penis>><<violence 1>>
 			<<elseif $enemyarousal lte (($enemyarousalmax / 5) * 4)>>
 				<<He>> takes you deeper into <<his>> mouth, until your <<penis>> disappears inside <<him>> completely. <<He>> slowly pushes you out again, then takes a deep breath.
@@ -4955,12 +4910,12 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 					<span class="pink"><<He>> pushes <<his>> lips against your <<penis>>, taking you into <<his>> mouth.</span>
 					<<sex 30 _n>><<set $NPCList[_n].mouth to "penis">><<penilestat>><<bruise penis>><<violence 1>><<set $penisstate to "othermouth">>
 				<<elseif $player.virginity.penile is true>>
-					<span class="pink"><<He>> pushes <<his>> lips against your virgin penis, taking you into <<his>> mouth,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span>
+					<span class="pink"><<He>> pushes <<his>> lips against your virgin penis, taking you into <<his>> mouth,</span><span class="red"> separating your foreskin from your glans and <<virginitylosttext $NPCList[_n].fullDescription>></span>
 					<<sex 100 _n>><<set $NPCList[_n].mouth to "penis">><<takeVirginity $NPCList[_n].fullDescription "penile">><<bruise penis>><<penilestat>><<violence 100>><<raped>><<penisraped>><<set $penisstate to "othermouth">>
 				<</if>>
 				<<takeNPCVirginity _n "oral">>
 			<<else>>
-				Respecting your wishes, <<he>> does not envelope your <<penis>> with <<his>> mouth, instead kissing the tip of your glans.
+				Respecting your wishes, <<he>> does not envelope your <<penis>> with <<his>> mouth, instead kissing the tip of your <<glans>>.
 				<<sex 15 _n>>
 			<</if>>
 		<</if>>
@@ -5021,7 +4976,9 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 				<<set $NPCList[_n].mouth to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>>
 				<<set $NPCList[_n].location.head to 0>>
 			<<else>>
-				<<if $npcSub>>
+				<<if $robinDungeonKiss>>
+					<<undergroundRobinKiss $mouthactiondefault>>
+				<<elseif $npcSub>>
 					<<He>> nervously follows your lead, allowing you to explore <<his>> mouth with your tongue.
 				<<elseif $enemyanger lte 20>>
 					<<He>> explores your mouth with <<his>> tongue.
@@ -5879,9 +5836,12 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			/* Essentially, NPC's penis has been set to 0 somehow, yet the player's states have not been reset. */
 			<<set $vaginadoubletarget to _n>>
 			<<if $vaginatarget is $vaginadoubletarget>>
-				<<set $_error to "[" + $NPCList[$vaginatarget].fullDescription + "] " + "penis has escaped. It is set to [" + $NPCList[$vaginatarget].penis + "] but player state remains ["+$vaginastate + "]">>
-				<<set $_source to "Occurred in man-combat -> penisinit: DVP. Please export and report.">>
-				<br><br><<error $_error $_source>><br><br>
+				<br><br>
+				<<error {
+					message	: `[${$NPCList[$vaginatarget].fullDescription}] penis has escaped. It is set to [${$NPCList[$vaginatarget].penis}] but player state remains [${$vaginastate}]`,
+					source	: "[0x0] Occurred in man-combat -> penisinit: DVP. Please export and report."
+				}>>
+				<br><br>
 				<<He>> teases your <<pussy>> with <<his>> $NPCList[$vaginatarget].penisdesc.
 				<<set $NPCList[$vaginatarget].penis to "vaginaentrance">>
 
@@ -5904,14 +5864,14 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 				<<set $vaginastate to (["doublepenetration", "doubleimminent"].includes($vaginastate) ? $vaginastate : "doubleentrance")>>
 				/* NPC */
 				<<set $speechvaginaentrance to 1>>
-				<<set $NPCList[_n].penis to "vaginadoubleentrance">>
+				<<set $NPCList[_n].penis to "vaginaentrancedouble">>
 				<<set $NPCList[_n].location.genitals = "genitals">>
 				<<if $NPCList[$vaginatarget].penis is "vagina">>
 					<<set $NPCList[$vaginatarget].penis to "vaginadouble">>
 				<<elseif $NPCList[$vaginatarget].penis is "vaginaimminent">>
-					<<set $NPCList[$vaginatarget].penis to "vaginadoubleimminent">>
+					<<set $NPCList[$vaginatarget].penis to "vaginaimminentdouble">>
 				<<elseif $NPCList[$vaginatarget].penis is "vaginaentrance">>
-					<<set $NPCList[$vaginatarget].penis to "vaginadoubleentrance">>
+					<<set $NPCList[$vaginatarget].penis to "vaginaentrancedouble">>
 				<</if>>
 			<</if>>
 
@@ -5944,9 +5904,12 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 			/* Essentially, NPC's penis has been set to 0 somehow, yet the player's states have not been reset. */
 			<<set $anusdoubletarget to _n>>
 			<<if $anustarget is $anusdoubletarget>>
-				<<set $_error to "[" + $NPCList[$anustarget].fullDescription + "] " + "penis has escaped. It is set to [" + $NPCList[$anustarget].penis + "] but player state remains ["+$anusstate + "]">>
-				<<set $_source to "Occurred in man-combat -> penisinit: DAP. Please export and report.">>
-				<br><br><<error $_error $_source>><br><br>
+				<br><br>
+				<<error {
+					message	: `[${$NPCList[$anustarget].fullDescription}] penis has escaped. It is set to [${$NPCList[$anustarget].penis}] but player state remains [${$anusstate}]`,
+					source	: "[0x0] Occurred in man-combat -> penisinit: DAP. Please export and report."
+				}>>
+				<br><br>
 				<<He>> teases your <<bottom>> with <<his>> $NPCList[$anustarget].penisdesc.
 				<<set $NPCList[$vaginatarget].penis to "anusentrance">>
 				<<if $anusstate is "entrance">>
@@ -5978,13 +5941,13 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 				<</if>>
 
 				/* NPC */
-				<<set $NPCList[_n].penis to "anusdoubleentrance">><<set $NPCList[_n].location.genitals = "genitals">><<set $speechanusentrance to 1>>
+				<<set $NPCList[_n].penis to "anusentrancedouble">><<set $NPCList[_n].location.genitals = "genitals">><<set $speechanusentrance to 1>>
 				<<if $NPCList[$anustarget].penis is "anus">>
 					<<set $NPCList[$anustarget].penis to "anusdouble">>
 				<<elseif $NPCList[$anustarget].penis is "anusimminent">>
-					<<set $NPCList[$anustarget].penis to "anusdoubleimminent">>
+					<<set $NPCList[$anustarget].penis to "anusimminentdouble">>
 				<<elseif $NPCList[$anustarget].penis is "anusentrance">>
-					<<set $NPCList[$anustarget].penis to "anusdoubleentrance">>
+					<<set $NPCList[$anustarget].penis to "anusentrancedouble">>
 				<</if>>
 			<</if>>
 		<</if>>
@@ -6138,7 +6101,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<elseif $enemyanger + $rng lte 40>>
 		<<He>> rubs <<his>> pussy.
 		<<neutral 3 _n>><<set $speechvaginaflaunt to 1>>
-	 <<elseif $enemyanger + $rng lte 50 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals"
+	<<elseif $enemyanger + $rng lte 50 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals"
 			and ($player.penisExist or playerHasStrapon()) and $penisuse is 0 and $analdisable is "f" and $walltype isnot "front">>
 		<<if $condomUse is false>>
 		<<elseif $condomUse is true and !$player.condom and $parasite.penis.name is undefined>>
@@ -6324,7 +6287,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 		<<set $_NPCBreastDesc to ($NPCList[_n].chest is "clothed" ? "clothed" : either("bare", "exposed")) + " $NPCList[_n].breastsdesc">>
 	<</if>>
 <</if>>
-<<if ($NPCList[_n].chest is 0 or $NPCList[_n].chest is "clothed") and !$gloryhole>>
+<<if ($NPCList[_n].chest is 0 or $NPCList[_n].chest is "clothed") and !$gloryhole and $position isnot "wall">>
 	<<if $NPCList[_n].pronoun is "f" and ($NPCList[_n].location.genitals is "genitals" or $NPCList[_n].stance is "top")>>
 		<!-- Doggy -->
 		<<if $position is "doggy">>
@@ -6602,10 +6565,10 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 
 :: Man combat suffocated
 <<if $npc.includes("Sydney")>>
-	<<NPCStatusCheck "Sydney">>
+	<<run statusCheck("Sydney")>>
 <</if>>
 <<if $npc.includes("Kylar")>>
-	<<NPCStatusCheck "Kylar">>
+	<<run statusCheck("Kylar")>>
 <</if>>
 <<if $suffocationPhase lte 1>>
 	<span class='red'>You suffocate.</span><br>
@@ -6629,7 +6592,7 @@ Hands are 'inverted': NPC holds PC's left hand with their right one, and vice ve
 	<<set $bodyaction to 0>>
 
 	<!-- Didn't use $NPCList[_n].righthand instead of .find() because once i've got a weird error
-		 with $NPCList[_n] being undefined here. Perhaps, temporary _n expired? -->
+	with $NPCList[_n] being undefined here. Perhaps, temporary _n expired? -->
 	<<set _npc = $NPCList.find(x => x.lefthand == "throat" || x.righthand == "throat")>>
 	<<if _npc isnot undefined>>
 		<<set _npc.righthand to 0>>
diff --git a/game/base-combat/npc-behaviour.twee b/game/base-combat/npc-behaviour.twee
index 8f4184bea3bb8afdfaa46749289cf8ddd1ee3a0e..5bdca2f3bc8bc87827c422b1702b6e17e29e7617 100644
--- a/game/base-combat/npc-behaviour.twee
+++ b/game/base-combat/npc-behaviour.twee
@@ -7,14 +7,14 @@
 		<!-- <<set $_npc.anus to "idle">> -->
 
 		<!-- note: setting genitals to "idle" will remove them from combat unless they're set to something else later. -->
-		
+
 		<<if $_npc.penis isnot "none">>
 			<<set $_npc.penis to "idle">>
 		<</if>>
 		<<if $_npc.vagina isnot "none">>
 			<<set $_npc.vagina to "idle">>
 		<</if>>
-		
+
 		<<if !$worn.upper.type.includes("naked")>>
 			<<set $_npc.lefthand to "upperclothes">>
 		<<elseif !$worn.lower.type.includes("naked")>>
@@ -57,6 +57,9 @@
 	<<if $NPCList[0].type is "plant" and !["peniskiss","penislick"].includes($mouthactiondefault)>>
 		<span class="pink">Nectar glistens on the tip. It smells sweet.</span>
 	<</if>>
+	<<if $NPCList[0].vagina isnot "none">>
+		<<set $NPCList[0].vagina to 0>>
+	<</if>>
 	<br><br>
 <<elseif $NPCList[0].vagina isnot "none">>
 	<<submission 5>><<set $mouthuse to "othervagina">><<set $NPCList[0].vagina to "mouth">><<set $mouthstate to "othervagina">><<set $mouthtarget to 0>>
@@ -64,6 +67,9 @@
 	<<if $NPCList[0].type is "plant" and !["peniskiss","penislick"].includes($mouthactiondefault)>>
 		<span class="pink">Nectar glistens at the entrance. It smells sweet.</span>
 	<</if>>
+	<<if $NPCList[0].penis isnot "none">>
+		<<set $NPCList[0].penis to 0>>
+	<</if>>
 	<br><br>
 <</if>>
 <<set $NPCList[0].location.genitals to "head">>
diff --git a/game/base-combat/npc-damage.twee b/game/base-combat/npc-damage.twee
index de94655ec939cb3f1443ca95fcdf32f7a0dfced1..1f826f5763ab89fcacfee0ea4f714bd90b99d3eb 100644
--- a/game/base-combat/npc-damage.twee
+++ b/game/base-combat/npc-damage.twee
@@ -127,16 +127,16 @@
 		<<if $player.vaginaExist and $vaginause is "feet">>
 			<<set $vaginause to 0>>
 		<</if>>
-	<<case "anusdouble" "anusdoubleentrance" "anusdoubleimminent">>
+	<<case "anusdouble" "anusentrancedouble" "anusimminentdouble">>
 		<<set $NPCList[_i].penis to "none">>
 		<<for $_k = 0; $_k lt $NPCList.length; $_k++>>
-			<<if ["anusdouble","anusdoubleimminent","anusdoubleentrance"].includes($NPCList[$_k].penis)>>
+			<<if ["anusdouble","anusimminentdouble","anusentrancedouble"].includes($NPCList[$_k].penis)>>
 				<<switch $NPCList[$_k].penis>>
 				<<case "anusdouble">>
 					<<set $NPCList[$_k].penis to "anus">><<set $anusstate to "penetrated">>
-				<<case "anusdoubleimminent">>
+				<<case "anusimminentdouble">>
 					<<set $NPCList[$_k].penis to "anusimminent">><<set $anusstate to "imminent">>
-				<<case "anusdoubleentrance">>
+				<<case "anusentrancedouble">>
 					<<set $NPCList[$_k].penis to "anusentrance">><<set $anusstate to "entrance">>
 				<<default>>
 					<span class="red">ERROR - Anal double penetration: second NPC's penis wrong value!</span>
@@ -149,16 +149,16 @@
 				<<set $anususe to 0>><<set $anusstate to 0>>
 			<</if>>
 		<</for>>
-	<<case "vaginadouble" "vaginadoubleimminent" "vaginadoubleentrance">>
+	<<case "vaginadouble" "vaginaimminentdouble" "vaginaentrancedouble">>
 		<<set $NPCList[_i].penis to "none">>
 		<<for $_k = 0; $_k lt $NPCList.length; $_k++>>
-			<<if ["vaginadouble","vaginadoubleimminent","vaginadoubleentrance"].includes($NPCList[$_k].penis)>>
+			<<if ["vaginadouble","vaginaimminentdouble","vaginaentrancedouble"].includes($NPCList[$_k].penis)>>
 				<<switch $NPCList[$_k].penis>>
 				<<case "vaginadouble">>
 					<<set $NPCList[$_k].penis to "vagina">><<set $vaginastate to "penetrated">>
-				<<case "vaginadoubleimminent">>
+				<<case "vaginaimminentdouble">>
 					<<set $NPCList[$_k].penis to "vaginaimminent">><<set $vaginastate to "imminent">>
-				<<case "vaginadoubleentrance">>
+				<<case "vaginaentrancedouble">>
 					<<set $NPCList[$_k].penis to "vaginaentrance">><<set $vaginastate to "entrance">>
 				<<default>>
 					<span class="red">ERROR - Vaginal double penetration: second NPC's penis wrong value!</span>
diff --git a/game/base-combat/npc-generation.twee b/game/base-combat/npc-generation.twee
index 5228ce33b8f900c495b152563f214c40a459ff84..9af50643b68cbfa8ff8c6d76664a382f35c135a1 100644
--- a/game/base-combat/npc-generation.twee
+++ b/game/base-combat/npc-generation.twee
@@ -372,50 +372,62 @@
 <</widget>>
 
 <<widget "generatesm1">>
+<<set _npcClothesPreset to "school">>
 <<generateym1>>
 <</widget>>
 
 <<widget "generatesm2">>
+<<set _npcClothesPreset to "school">>
 <<generateym2>>
 <</widget>>
 
 <<widget "generatesm3">>
+<<set _npcClothesPreset to "school">>
 <<generateym3>>
 <</widget>>
 
 <<widget "generatesm4">>
+<<set _npcClothesPreset to "school">>
 <<generateym4>>
 <</widget>>
 
 <<widget "generatesm5">>
+<<set _npcClothesPreset to "school">>
 <<generateym5>>
 <</widget>>
 
 <<widget "generatesm6">>
+<<set _npcClothesPreset to "school">>
 <<generateym6>>
 <</widget>>
 
 <<widget "generatesf1">>
+<<set _npcClothesPreset to "school">>
 <<generateyf1>>
 <</widget>>
 
 <<widget "generatesf2">>
+<<set _npcClothesPreset to "school">>
 <<generateyf2>>
 <</widget>>
 
 <<widget "generatesf3">>
+<<set _npcClothesPreset to "school">>
 <<generateyf3>>
 <</widget>>
 
 <<widget "generatesf4">>
+<<set _npcClothesPreset to "school">>
 <<generateyf4>>
 <</widget>>
 
 <<widget "generatesf5">>
+<<set _npcClothesPreset to "school">>
 <<generateyf5>>
 <</widget>>
 
 <<widget "generatesf6">>
+<<set _npcClothesPreset to "school">>
 <<generateyf6>>
 <</widget>>
 
@@ -635,6 +647,11 @@
 	<<generateNPC _args[0] "t">>
 <</widget>>
 
+<<widget "generateSweaterWearer">>
+	<<set _npcClothesPreset to "sweater">>
+	<<generateNPC _args[0]>>
+<</widget>>
+
 <<widget "generateDemon">>
 	<<generateNPC _args[0] a f h 20>>
 	<<undressNPC _args[0]>>
@@ -719,19 +736,21 @@
 
 <<generateNPCClothes $NPCList[_n]>>
 
+/* Sex toy init rework */
 /* Sex toys become more popular over time after the adult shop opens */
-<<if $adultshopunlocked and !_strapIgnore and $NPCList[_n].teen isnot 1>>
-	<<if $adultshopdegree gte random(0, 100)>>
+<<if !_strapIgnore and $enemytype isnot "beast" and ($NPCList[_n].teen isnot 1 or random(1,20) is 1) and ($position isnot "wall" or $walltype isnot "front")>>
+	<<if $adultshopdegree gte random(0, 100) or random(0,100) lt 5>>
 		<<if $toywhipdisable is "f" and $toydildodisable is "f" and $player.gender_appearance isnot "f">>
-			<<giveNPCsextoy _n `randomSexToy()`>>
+			<<set _sexToy to randomSexToy()>>
 		<<elseif $toywhipdisable is "f" and $toydildodisable is "f">>
-			<<giveNPCsextoy _n `randomSexToy("dildos and whips")`>>
+			<<set _sexToy to randomSexToy("dildos and whips")>>
 		<<elseif $toywhipdisable is "f" and $toydildodisable is "t">>
-			<<giveNPCsextoy _n `randomSexToy("whip")`>>
+			<<set _sexToy to randomSexToy("whip")>>
 		<<elseif $toywhipdisable is "t" and $toydildodisable is "f">>
-			<<giveNPCsextoy _n `randomSexToy("dildo")`>>
-		<<else>>
-			/* Do nothing */
+			<<set _sexToy to randomSexToy("dildo")>>
+		<</if>>
+		<<if _sexToy isnot undefined>>
+			<<set $NPCList[_n].heldSexToy to _sexToy>>
 		<</if>>
 	<</if>>
 <</if>>
@@ -854,7 +873,7 @@
 <</if>>
 
 <<set $NPCList[_n].role to "normal">>
-
+<<set $NPCList[_n].index to _n>>
 
 /*Sets up multiple orgasms, code needs work*/
 /*<<set $NPCList[_n].maxOrgasms to 1>>
@@ -926,8 +945,7 @@
 
 <<set $rng to random(1, 100)>>
 <<if $NPCList[_n].pronoun is "f">>
-	<<if $NPCList[_n].adult is 1>><<set $rng += 20>><</if>>
-	<<if $rng gte 81>>
+	<<if $rng lte ($NPCList[_n].adult is 1 ? 40 : 20)>>
 		<<set $NPCList[_n].lactation to 1>>
 	<<else>>
 		<<set $NPCList[_n].lactation to 0>>
@@ -1040,7 +1058,7 @@
 			<</switch>>
 			<!-- Set up like this for futureproofing -->
 			<<set $NPCList[_xx].strapon to {state:"worn",color:_straponColor,description:$NPCList[_xx].penisdesc,size:$NPCList[_xx].penissize}>>
-		
+
 			<<if $_i isnot -1>>
 				<!-- Give this named npc this strapon temporarily so that they will use it in future appearances (note: they are removed in the <<day>> widget) -->
 				<<set $NPCList[_xx].strapon.temp to true>>
@@ -1080,7 +1098,7 @@
 		<<set $_npc.strapon to clone($_strapon)>>
 		<<set $_npc.strapon.state to "worn">>
 		<<set $_npc.penisdesc to $_npc.strapon.description>>
-		<<set $_npc.penissize to $_npc.strapon.size>>	
+		<<set $_npc.penissize to $_npc.strapon.size>>
 	<</if>>
 <</widget>>
 
@@ -1270,14 +1288,17 @@
 	}>>
 
 	<<set $_virginChance to ($_npc.adult is 1 ? $npcVirginityChanceAdult : $npcVirginityChance)>>
+	<<if _npcPlant and $_virginChance lt 100>>
+		<<set $_virginChance /= 20>>
+	<</if>>
 
-	<<set $_npc.virginity.penile to  (random(1,100) lte $_virginChance)>>
+	<<set $_npc.virginity.penile to (random(1,100) lte $_virginChance)>>
 	<<set $_npc.virginity.vaginal to (random(1,100) lte $_virginChance)>>
 
 	<!-- Can't lose virginity if you don't have the part. -->
 	<!-- Also, futureproofing for strapons; this runs before strapons are assigned, so they should not generate with both penile virginity AND a strapon. -->
 	<<if $_npc.penis is "none">>
-		<<set $_npc.virginity.penile to  false>>
+		<<set $_npc.virginity.penile to false>>
 	<</if>>
 	<<if $_npc.vagina is "none">>
 		<<set $_npc.virginity.vaginal to false>>
diff --git a/game/base-combat/speech-sydney.twee b/game/base-combat/speech-sydney.twee
index 4ab6e67324f4ffaa4d4edc39c28f4dfea9ee1f65..46e4a71d1e7f1707981a86375fb59d8b528d9732 100644
--- a/game/base-combat/speech-sydney.twee
+++ b/game/base-combat/speech-sydney.twee
@@ -1,6 +1,6 @@
 :: Widgets speech-SYDNEY [widget]
 <<widget "speech-sydney">>
-<<NPCStatusCheck "Sydney">><<set $rng to random(1, 100)>>
+<<run statusCheck("Sydney")>><<set $rng to random(1, 100)>>
 <<if !$sydneyComments>>
 	<<set $sydneyComments to {}>>
 	<<set $sydneyComments.penetrated to 0>>
@@ -86,7 +86,7 @@
 	<<elseif _sydneyStatus.includes("pure")>>
 		<<set _sydneyText to `<<He>> looks at your <<print _sexToy>> and blushes. "<<print either("Oh, that's from <<sydneymum>>'s store!","...How do you use that one?")>>"`>>
 	<<else>>
-		<<set _sydneyText to `<<He>> looks at your $_sexToy and blushes. "This feels wrong but I don't want to stop."`>>
+		<<set _sydneyText to `<<He>> looks at your <<print _sexToy>> and blushes. "This feels wrong, but I don't want to stop."`>>
 	<</if>>
 <<elseif $speechcum is 1>>
 	<<if $speechspank is 1>>
@@ -131,7 +131,7 @@
 		<<case "corrupt" "corruptLust">>
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
 				<<if $rng gte 80>>
-					<<set _sydneyText to `<<He>> grabs you by the head <<printAnd>> pulls your face close <<printTo>> <<his>>. "I want you <<printTo>> put a child in me. Now."`>>
+					<<set _sydneyText to `<<He>> grabs you by the head <<printAnd>> pulls your face close <<printTo>> <<hers>>. "I want you <<printTo>> put a child in me. Now."`>>
 				<<else>>
 					<<set _sydneyText to `<<He>> moans. "Harder. Harder! I'm almost there!"`>>
 				<</if>>
@@ -191,7 +191,7 @@
 		<<case "corrupt" "corruptLust">>
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
 				<<if $rng gte 80>>
-					<<set _sydneyText to `<<He>> grabs you by the head <<printAnd>> pulls your face close <<printTo>> <<his>>. "I want <<printTo>> put a child in you."`>>
+					<<set _sydneyText to `<<He>> grabs you by the head <<printAnd>> pulls your face close <<printTo>> <<hers>>. "I want <<printTo>> put a child in you."`>>
 				<<else>>
 					<<set _sydneyText to `<<He>> moans. "I'm almost there! Are you ready?"`>>
 				<</if>>
@@ -434,7 +434,7 @@
 				<<if $rng lte 35>>
 					<<set _sydneyText to `<<He>> smirks. "I knew you were into this." <<npcincr Sydney purity -1>><<lspurity>>`>>
 				<<elseif $rng lte 70>>
-   					<<set _sydneyText to `<<He>> smirks. "Naughty <<girls>> get punished, <<printAnd>> I love it when you're naughty." <<npcincr Sydney purity -1>><<lspurity>>`>>
+					<<set _sydneyText to `<<He>> smirks. "Naughty <<girls>> get punished, <<printAnd>> I love it when you're naughty." <<npcincr Sydney purity -1>><<lspurity>>`>>
 				<<else>>
 					<<set _sydneyText to `<<He>> smirks. "I want <<printTo>> savour your moans. I should spank you more often." <<npcincr Sydney purity -1>><<lspurity>>`>>
 				<</if>>
diff --git a/game/base-combat/speech.twee b/game/base-combat/speech.twee
index 511f064026f36f7ec701fdb340d5c9ea90db76aa..dcd71026c2c9b32b46141985163cb531bac1825e 100644
--- a/game/base-combat/speech.twee
+++ b/game/base-combat/speech.twee
@@ -6,7 +6,7 @@
 			<<set $speechorgasmnocumcount += 1>>
 			<<He>> speaks. "You climaxed but nothing came out! What's wrong with you?"
 		<<elseif $speechorgasmnocumcount gte 1>>
-			<<if $speechorgasmrepeat is 0>> 
+			<<if $speechorgasmrepeat is 0>>
 				<<switch random(1,3)>>
 				<<case 1>>
 					<<He>> speaks. "Have you been over-milked or were you always this pathetic?",
@@ -15,13 +15,13 @@
 				<<case 3>>
 					<<He>> speaks. "You should be embarrassed by your lack of ejaculate."
 				<</switch>>
-			<<else>> 
+			<<else>>
 				<<switch random(1,3)>>
-				<<case 1>> 
+				<<case 1>>
 					<<He>> speaks. "I think we've worn <<phim>> out already.",
-				<<case 2>> 
+				<<case 2>>
 					<<He>> speaks. "Still nothing coming out. This is disappointing.",
-				<<case 3>> 
+				<<case 3>>
 					<<He>> speaks. "Maybe if we're a bit rougher we'll get some semen to come out?"
 				<</switch>>
 			<</if>>
@@ -291,7 +291,7 @@
 					<<He>> <<laughs>> at your newly-exposed <<genitals>>. "Your micro cock is so cute!"
 					<<insecurity "penis_tiny" 1>><<ginsecurity "penis_tiny">>
 				<<elseif $enemyanger lte 100>>
-					<<He>> <<laughs>> at your newly-exposed <<genitals>>. "I've never seen such a miniature cock"
+					<<He>> <<laughs>> at your newly-exposed <<genitals>>. "I've never seen such a miniature cock!"
 					<<insecurity "penis_tiny" 1>><<ginsecurity "penis_tiny">>
 				<<else>>
 					<<He>> <<laughs>> at your newly-exposed <<genitals>>. "Ugly clit you have there."
@@ -420,7 +420,7 @@
 		<<if $rng lte 7>>
 			<<He>> speaks. "Just a little longer, baby."
 		<<else>>
-			<<He>> lets go of your throat. "Sorry, <<girl>>, what was that?."
+			<<He>> lets go of your throat. "Sorry, <<girl>>, what was that?"
 			<<set _npc = $NPCList.find(x => x.lefthand == "throat" || x.righthand == "throat")>>
 			<<run if (_npc != undefined) {
 				if (_npc.lefthand == "throat") _npc.lefthand = 0;
@@ -511,7 +511,7 @@
 			<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
 				<<He>> speaks. "I'm sure your wolf friend won't mind."
 			<<else>>
-				<<He>> laughs. "Is it appropriate to call that "Puppy Love"?"
+				<<He>> laughs. "Is it appropriate to call that 'Puppy Love'?"
 			<</if>>
 		<<elseif $enemyanger lte 100>>
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
@@ -611,7 +611,7 @@
 		<<He>> <<print either("speaks","speaks","snarls","jeers")>>.
 		<<if $rng lt 20>>
 			"You know your place like a good whore."
-		<<elseif $rng lt 40>>	
+		<<elseif $rng lt 40>>
 			"Isn't it much more fun when you behave?"
 		<<elseif $rng lt 60>>
 			"I'm going to hurt you and you're going to like it."
@@ -923,7 +923,7 @@
 			<<elseif $npcspeechcycle is 3>>
 				<<He>> speaks. "You won't be able to stand when I'm done with you!"
 			<<elseif $npcspeechcycle is 4>>
-				<<He>> speaks. "I'll make you regret toying with me!.
+				<<He>> speaks. "I'll make you regret toying with me!"
 			<<elseif $npcspeechcycle is 5>>
 				<<He>> speaks. "I'll spank the shit out of you when I'm done."
 			<<else>>
@@ -994,7 +994,7 @@
 			<<elseif $npcspeechcycle is 3>>
 				<<He>> speaks. "You won't be able to stand when I'm done with you!"
 			<<elseif $npcspeechcycle is 4>>
-				<<He>> speaks. "I'm so close to drenching your legs with cum!.
+				<<He>> speaks. "I'm so close to drenching your legs with cum!"
 			<<elseif $npcspeechcycle is 5>>
 				<<He>> speaks. "You stand no chance against my cock."
 			<<else>>
@@ -1758,7 +1758,7 @@
 				<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
 					<<He>> speaks hushedly. "That's it right there, good <<girl>>."
 				<<else>>
-					<<He>> <<print either("speaks. \"I've been waiting too long for this, don't even think about stopping!\"","teases. \"Do you know how to use this toy?\"")>>. 
+					<<He>> <<print either("speaks. \"I've been waiting too long for this, don't even think about stopping!\"","teases. \"Do you know how to use this toy?\"")>>
 				<</if>>
 			<<else>>
 				<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
@@ -1882,7 +1882,7 @@
 	<<else>>
 		<<if $enemyanger lte 20>>
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
-				<<He>> is lost in the moment. "Your little pussy is so good!"
+				<<He>> is lost in the moment. "Your pussy is so good!"
 			<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
 				<<He>> speaks hushedly. "You're so cute when you're being fucked."
 			<<else>>
@@ -1892,7 +1892,7 @@
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
 				<<He>> is lost in the moment. "Keep... going... not long now."
 			<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
-				<<He>> speaks. "Nothing like a the cunt of a little <<girl>>."
+				<<He>> speaks. "Nothing like the cunt of a <<girl>> who tried fighting back."
 			<<else>>
 				<<He>> speaks. "You like being filled like this, don't you?"
 			<</if>>
@@ -1965,7 +1965,7 @@
 	<<else>>
 		<<if $enemyanger lte 20>>
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
-				<<He>> is lost in the moment. "Your little butt is so tight!"
+				<<He>> is lost in the moment. "Your butt is so tight!"
 			<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
 				<<He>> speaks hushedly. "You're so cute when you're being fucked."
 			<<else>>
@@ -1975,7 +1975,7 @@
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
 				<<He>> is lost in the moment. "Keep... going... not long now."
 			<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
-				<<He>> speaks. "Nothing like a little <<girl>> fucktoy."
+				<<He>> speaks. "Nothing like an anal fucktoy."
 			<<else>>
 				<<He>> speaks. "You like being filled like this, don't you?"
 			<</if>>
@@ -2059,7 +2059,7 @@
 			<<if $enemyarousal gte ($enemyarousalmax / 5) * 4>>
 				<<He>> is lost in the moment. "Keep... going... not long now."
 			<<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>>
-				<<He>> speaks. "Nothing like a little <<girl>> as a fucktoy."
+				<<He>> speaks. "Nothing like a mouthy fucktoy."
 			<<else>>
 				<<He>> speaks. "You like being filled like this, don't you?"
 			<</if>>
@@ -2075,7 +2075,7 @@
 	<</if>>
 
 <<elseif $speechvaginaimminent is 1>>
-	<<if playerHasStrapon()>>
+	<<if npcHasStrapon($vaginatarget)>>
 		<<if $player.virginity.vaginal is true>>
 			<<if $enemyanger lte 60>>
 				<<if $rng gte 51>>
@@ -2106,36 +2106,36 @@
 			<</if>>
 		<</if>>
 	<<else>>
-	<<if $player.virginity.vaginal is true>>
-		<<if $enemyanger lte 60>>
-			<<if $rng gte 51>>
-				<<He>> speaks. "My dick is pressing against your virgin pussy... I could deflower you at any moment."
-			<<else>>
-				<<He>> speaks. "Let's find out if your virgin pussy can handle my cock."
-			<</if>>
-		<<else>>
-			<<if $rng gte 51>>
-				<<He>> speaks. "I'm an inch away from taking your virginity, bitch."
-			<<else>>
-				<<He>> speaks. "You're not gonna be a virgin for long."
-			<</if>>
-		<</if>>
-	<<else>>
-		<<if $enemyanger lte 60>>
-			<<if $rng gte 51>>
-				<<He>> speaks. "Just having the tip pressing against you like this is driving me mad!"
+		<<if $player.virginity.vaginal is true>>
+			<<if $enemyanger lte 60>>
+				<<if $rng gte 51>>
+					<<He>> speaks. "My dick is pressing against your virgin pussy... I could deflower you at any moment."
+				<<else>>
+					<<He>> speaks. "Let's find out if your virgin pussy can handle my cock."
+				<</if>>
 			<<else>>
-				<<He>> speaks. "I can't wait to start pounding away at your pussy."
+				<<if $rng gte 51>>
+					<<He>> speaks. "I'm an inch away from taking your virginity, bitch."
+				<<else>>
+					<<He>> speaks. "You're not gonna be a virgin for long."
+				<</if>>
 			<</if>>
 		<<else>>
-			<<if $rng gte 51>>
-				<<He>> speaks. "I hope your pussy is ready, I sure am."
+			<<if $enemyanger lte 60>>
+				<<if $rng gte 51>>
+					<<He>> speaks. "Just having the tip pressing against you like this is driving me mad!"
+				<<else>>
+					<<He>> speaks. "I can't wait to start pounding away at your pussy."
+				<</if>>
 			<<else>>
-				<<He>> speaks. "I'm going to destroy your cunt, bitch."
+				<<if $rng gte 51>>
+					<<He>> speaks. "I hope your pussy is ready, I sure am."
+				<<else>>
+					<<He>> speaks. "I'm going to destroy your cunt, bitch."
+				<</if>>
 			<</if>>
 		<</if>>
 	<</if>>
-	<</if>>
 
 <<elseif $speechpenisimminent is 1>>
 	<<if playerHasStrapon()>>
@@ -2303,7 +2303,7 @@
 	<<elseif $enemyanger lte 100>>
 		<<He>> speaks. "I can't wait to fuck you."
 	<<else>>
-		<<He>> speaks. "Don't try to squirm away, your little ass is mine."
+		<<He>> speaks. "Don't try to squirm away, your ass is mine."
 	<</if>>
 
 <<elseif $speechmouthentrance is 1>>
@@ -2336,7 +2336,7 @@
 		<<else>>
 			<<He>> speaks. "I hope your toy satisfies me, for your sake."
 		<</if>>
-		
+
 	<<elseif $player.gender_appearance is "f">>
 		<<if $enemyanger lte 20>>
 			<<He>> speaks. "The anticipation is almost too much!"
@@ -2631,7 +2631,7 @@
 		<<elseif $rng lte 70>>
 			<<He>> is annoyed by your attack. "Are you trying to get yourself hurt?"
 		<<else>>
-			<<He>> is annoyed by your attack. "Keep this up and you'll be in a lot of trouble, little <<girl>>."
+			<<He>> is annoyed by your attack. "Keep this up and you'll be in a lot of trouble, <<girl>>."
 		<</if>>
 	<<else>>
 		<<if $rng lte 35>>
@@ -2835,7 +2835,7 @@
 		<<elseif $rng lte 74>>
 			<<He>> speaks. "Does that hurt? Good."
 		<<else>>
-			<<He>> speaks. "I'm gonna spank your butt raw, little <<girl>>."
+			<<He>> speaks. "I'm gonna spank your butt raw, <<girl>>."
 		<</if>>
 	<</if>>
 
@@ -3123,7 +3123,7 @@
 	<</if>>
 
 <<elseif $speechmoan is 1>>
-	<<if random(0,2) isnot 0 and (($vaginastate is "doublepenetrated" and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble") 
+	<<if random(0,2) isnot 0 and (($vaginastate is "doublepenetrated" and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")
 		or ($anusstate is "doublepenetrated" and $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble"))>>
 		<<He>> <<print either("speaks","speaks","whispers","coos","laughs","sniggers","jeers")>>.
 		<<switch random(0,4)>>
@@ -3227,7 +3227,7 @@
 		<</if>>
 	<<elseif $enemyanger lte 100>>
 		<<if $rng lte 20>>
-			<<He>> speaks. "Forgive me for what?."
+			<<He>> speaks. "Forgive me for what?"
 		<<elseif $rng lte 40>>
 			<<He>> speaks. "I don't like what you're implying, <<girl>>."
 		<<elseif $rng lte 60>>
@@ -3273,11 +3273,11 @@
 <<elseif $speechcoverface is 1>>
 	<<if $enemyanger lte 20>>
 		<<if $rng lte 35>>
-			<<He>> speaks. "Aww look, the little <<girl>> is covering <<pher>> face."
+			<<He>> speaks. "Aww look, the shy <<girl>> is covering <<pher>> face."
 		<<elseif $rng lte 70>>
 			<<He>> speaks. "<<pShe>> is so shy!"
 		<<else>>
-			<<He>> speaks. "Don't be shy little <<girl>>."
+			<<He>> speaks. "Don't be shy, <<girl>>."
 		<</if>>
 	<<elseif $enemyanger lte 100>>
 		<<if $rng lte 35>>
@@ -3364,9 +3364,9 @@
 		<<if $rng lte 35>>
 			<<He>> speaks. "I heard you the first time."
 		<<elseif $rng lte 70>>
-			<<He>> speaks. "Quit whining"
+			<<He>> speaks. "Quit whining."
 		<<else>>
-			<<He>> speaks. "Shush <<girl>>."
+			<<He>> speaks. "Shush, <<girl>>."
 		<</if>>
 	<<else>>
 		<<if $rng lte 35>>
@@ -3384,7 +3384,7 @@
 			<<if $rng lte 35>>
 				<<He>> speaks: "Yeah, take it, <<girl>>!"
 			<<elseif $rng lte 70>>
-				<<He>> speaks. "You're gonna make me cum all over your worthless face"
+				<<He>> speaks. "You're gonna make me cum all over your worthless face!"
 			<<else>>
 				<<He>> speaks. "I'm gonna drown you in my juices, unless you drink them all up!"
 			<</if>>
@@ -3402,9 +3402,9 @@
 			<<if $rng lte 35>>
 				<<He>> speaks. "Get that tongue to work, <<girl>>!"
 			<<elseif $rng lte 70>>
-				<<He>> speaks. "Maybe I'll stay on until you pass out"
+				<<He>> speaks. "Maybe I'll stay on until you pass out!"
 			<<else>>
-				<<He>> speaks. "I'm not getting off until I cum on your face"
+				<<He>> speaks. "I'm not getting off until I cum on your face."
 			<</if>>
 		<<else>>
 			<<if $rng lte 35>>
@@ -3525,7 +3525,7 @@
 		"You look so fragile."
 	<<elseif $rng lte 85>>
 		"You're like an angel."
-	<<elseif $rng lte 90>>
+	<<elseif $rng lte 90 and !$gloryhole>>
 		"Your <<breasts>> are so cute."
 	<<elseif $rng lte 95>>
 		"You smell nice."
@@ -3916,7 +3916,11 @@
 						<<elseif $npcspeechcycle is 1>>
 							"Going to mate with you. Okay?"
 						<<elseif $npcspeechcycle is 2>>
-							"Breed with me."
+							<<if $pregnancyspeechdisable is "f">>
+								"Breed with me."
+							<<else>>
+								"Mate with me."
+							<</if>>
 						<<elseif $npcspeechcycle is 3>>
 							"Bet prey tastes nice."
 						<<elseif $npcspeechcycle is 4>>
@@ -3932,7 +3936,11 @@
 						<<elseif $npcspeechcycle is 1>>
 							"I'm going to mate with you. I hope that's okay."
 						<<elseif $npcspeechcycle is 2>>
-							"You have to breed with me."
+							<<if $pregnancyspeechdisable is "f">>
+								"You have to breed with me."
+							<<else>>
+								"You have to mate with me."
+							<</if>>
 						<<elseif $npcspeechcycle is 3>>
 							"I bet you taste nice."
 						<<elseif $npcspeechcycle is 4>>
@@ -4012,7 +4020,11 @@
 						<<elseif $npcspeechcycle is 5>>
 							"You smell good enough to eat."
 						<<else>>
-							"I'm strongest of pack. You're breeding stock."
+							<<if $pregnancyspeechdisable is "f">>
+								"I'm strongest of pack. You're breeding stock."
+							<<else>>
+								"I'm strongest of pack. You'll do what I want."
+							<</if>>
 						<</if>>
 					<</if>>
 				<</if>>
@@ -4058,7 +4070,11 @@
 						<<elseif $npcspeechcycle is 1>>
 							"Going to mate with you. Okay?"
 						<<elseif $npcspeechcycle is 2>>
-							"Breed with me."
+							<<if $pregnancyspeechdisable is "f">>
+								"Breed with me."
+							<<else>>
+								"Mate with me."
+							<</if>>
 						<<elseif $npcspeechcycle is 3>>
 							"Bet prey tastes nice."
 						<<elseif $npcspeechcycle is 4>>
@@ -4236,7 +4252,7 @@
 				<<if $enemyarousal gte ($enemyarousalmax / 2)>>
 					<<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">>
 						<<if $npcspeechcycle is 0>>
-							"Ready. Mark with your scent. Can take it all. Wait no longer"
+							"Ready. Mark with your scent. Can take it all. Wait no longer."
 						<<elseif $npcspeechcycle is 1>>
 							"I belong to you. All will know your scent. Fill me."
 						<<elseif $npcspeechcycle is 2>>
@@ -4254,7 +4270,11 @@
 						<<if $npcspeechcycle is 0>>
 							"I can't wait to take your seed."
 						<<elseif $npcspeechcycle is 1>>
-							"Fill me up so everyone knows who bred me."
+							<<if $pregnancyspeechdisable is "f">>
+								"Fill me up so everyone knows who bred me."
+							<<else>>
+								"Fill me up so everyone knows who fucked me."
+							<</if>>
 						<<elseif $npcspeechcycle is 2>>
 							"You won't be so insolent once I'm carrying your litter."
 						<<elseif $npcspeechcycle is 3>>
@@ -4360,7 +4380,11 @@
 						<<elseif $npcspeechcycle is 1>>
 							"I'm going to mate with you. I hope that's okay."
 						<<elseif $npcspeechcycle is 2>>
-							"You have to breed with me."
+							<<if $pregnancyspeechdisable is "f">>
+								"You have to breed with me."
+							<<else>>
+								"You have to mate with me."
+							<</if>>
 						<<elseif $npcspeechcycle is 3>>
 							"I bet you taste nice."
 						<<elseif $npcspeechcycle is 4>>
@@ -5085,7 +5109,7 @@
 					<<He>> examines your $worn.lower.name and beams. "We match!"
 				<<elseif $worn.head.name is "flower crown" and random(0,1) is 1>>
 					<<He>> examines your $worn.head.name and gasps. "Oh, that's so cute! I need to make one of those for myself!"
-				<<elseif $rng gte 51 and $tentacledisable is "f">>
+				<<elseif $rng gte 51>>
 					<<He>> speaks. "I bet nobody in the town has vines like mine!"
 				<<else>>
 					<<He>> speaks. "All natural, baby."
@@ -5167,7 +5191,55 @@
 <<print $args[0]>>
 <<switch _args[0]>>
 	<<case "Robin">>
-		<<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>>
+		<<if $robinmist>>
+			<<set $_text_output to `<br><br>`>>
+			<<switch random(1, 10)>>
+				<<case 1>>
+					<<set $_text_output += `Robin is crying.`>>
+				<<case 2>>
+					<<set $_text_output += `Robin frantically tries to look away from you, but <<he>> doesn't stop.`>>
+				<<case 3>>
+					<<set $_text_output += `"I d-don't..." Robin whispers under <<his>> breath.`>>
+				<<case 4>>
+					<<set $_text_output += `"I love you!" Robin says, though <<he>>'s not smiling.`>>
+				<<case 5>>
+					<<set $_text_output += `"I just need-" Robin gasps. <<He>> doesn't try to finish <<his>> sentence.`>>
+				<<case 6>>
+					<<set $_text_output += `Robin closes <<his>> eyes, unable to meet your gaze.`>>
+				<<case 7>>
+					<<set $_text_output += `Robin cries out. Tears are running down <<his>> face.`>>
+				<<case 8>>
+					<<set $_text_output += `Robin shakes <<his>> head and closes <<his>> eyes.`>>
+				<<case 9>>
+					<<set $_text_output += `"S-stop it!" Robin yells, but not at you.`>>
+				<<case 10>>
+					<<set $_text_output += `"I need you..." Robin says with teary eyes.`>>
+			<</switch>>
+			<<set $_text_output += `<<grtrauma>>`>>
+		<<elseif $robinMetal>>
+			<<switch random(1,10)>>
+				<<case 1>>
+					<<set $_text_output to `Robin can't maintain eye contact.`>>
+				<<case 2>>
+					<<set $_text_output to `"Hurry," Robin whispers. "So they'll leave you alone."`>>
+				<<case 3>>
+					<<set $_text_output to `Robin struggles against <<his>> bindings.`>>
+				<<case 4>>
+					<<set $_text_output to `Robin struggles against the metal tentacles holding <<him>>. They don't budge.`>>
+				<<case 5>>
+					<<set $_text_output to `"Please," Robin whimpers.`>>
+				<<case 6>>
+					<<set $_text_output to `Robin stifles a sob.`>>
+				<<case 7>>
+					<<set $_text_output to `"I'm sorry," Robin hiccups.`>>
+				<<case 8>>
+					<<set $_text_output to `"They did something to me," Robin says shamefully. "I feel... numb."`>>
+				<<case 9>>
+					<<set $_text_output to `"I'm sorry it's taking so long," Robin mutters.`>>
+				<<case 10>>
+					<<set $_text_output to `"They're using me against you," Robin sobs.`>>
+			<</switch>>
+		<<elseif ($speechpenisvirgin is 1 and $player.virginity.penile is $args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is $args[0])>>
 			<<set $_text_output to `<<He>> gasps. "You saved yourself for me. I don't deserve something so special. Thank you." Tears roll down <<his>> cheeks.`>>
 		<<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>>
 			<<set $_text_output to `<<He>> gasps. "This is so naughty!"`>>
@@ -5186,6 +5258,8 @@
 			<<else>>
 				<<set $_text_output to `<<He>> looks at your $_sexToy and giggles. "<<print either("I can't believe you're touching that.","This is so dirty... keep going.")>>"`>>
 			<</if>>
+		<<else>>
+			<<set $_text_output to ` `>>
 		<</if>>
 	<<case "Kylar">>
 		<<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>>
@@ -5197,7 +5271,7 @@
 		<<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>>
 			<<set $_text_output to `<<He>> gasps. "Iloveyouiloveyouiloveyou!!!"`>>
 			<<set $kylarSeen.pushUnique("saidLove")>>
-		<<elseif $speechcrossdressaroused is 1>>
+		<<elseif $speechcrossdressaroused is 1 and $pregnancyspeechdisable is "f">>
 			<<if $player.penisExist>>
 				<<set $_text_output to `<<He>> gasps. "You can make me pregnant. I'd given up on making a family, but..." <<He>> starts <<printTo>> cry. "You can make me pregnant...!"`>>
 			<<else>>
@@ -5290,7 +5364,7 @@
 				<<set $_text_output to `"You're so lewd <<printAnd>> naughty <<printAnd>> all mine," <<he>> says.`>>
 			<</if>>
 		<<else>>
-			<<set $_text_output to ``>>
+			<<set $_text_output to ` `>>
 		<</if>>
 	<<case "Eden">>
 		<<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>>
@@ -5448,15 +5522,14 @@
 		<<elseif $speechsextoy is 1>>
 			<<set $speechsextoy to 0>>
 			<<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>>
-			<<set $_text_output to `<<He>> looks at your $_sexToy and speaks. "<<print either("I like your style.","So this is what sells in town.")>>"`>>
 			<<if $NPCName[$NPCNameList.indexOf("Alex")].dom gte 30>>
-				<<set $_text_output to `<<He>> looks at your $_sexToy and grins. <<print either("Now we're getting somewhere.","Cute toy. You better know how to use it.","Is that the best thing town has to offer?")>>"`>>
+				<<set $_text_output to `<<He>> looks at your $_sexToy and grins. "<<print either("Now we're getting somewhere.","Cute toy. You better know how to use it.","Is that the best thing town has to offer?")>>"`>>
 			<<elseif $NPCName[$NPCNameList.indexOf("Alex")].dom lte -30>>
-				<<set $_text_output to `<<He>> looks at your $_sexToy and hesitates. <<print either("All right. I trust your judgment.","Hope you know how to use that thing.","You always know just how to have a good time.")>>"`>>
+				<<set $_text_output to `<<He>> looks at your $_sexToy and hesitates. "<<print either("All right. I trust your judgment.","Hope you know how to use that thing.","You always know just how to have a good time.")>>"`>>
 			<<else>>
 				<<set $_text_output to `<<He>> looks at your $_sexToy and smiles. "<<print either("I like where your head's at.","Looks like we're in for a wild ride.","So this is what sells in town.")>>"`>>
 			<</if>>
-		<</if>>	
+		<</if>>
 	<<case "Leighton">>
 		<<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>>
 			<<set $_text_output to `<<He>> smirks. "Far from satisfactory. Come see me again for further improvement."`>>
@@ -5490,9 +5563,32 @@
 			<<set $speechsextoy to 0>>
 			<<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>>
 			<<set $_text_output to `<<He>> looks at your $_sexToy and smirks. "I can teach you a thing or two with that."`>>
-		<</if>> 
+		<</if>>
 	<<case "Morgan">>
-		<<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>>
+		<<if $possessed>>
+			<<switch random(1,10)>>
+				<<case 1>>
+					<<set $_text_output to `<<He>> roars. "I won't let you hurt <<pher>>!"`>>
+				<<case 2>>
+					<<set $_text_output to `<<He>> pleads. "Fight it, <<charles>>! Fight back!"`>>
+				<<case 3>>
+					<<set $_text_output to `<<He>> spits. "Return to mist!"`>>
+				<<case 4>>
+					<<set $_text_output to `<<He>> scowls. "Get out of here. Get out of <<pher>>!"`>>
+				<<case 5>>
+					<<set $_text_output to `<<He>> scowls. "I can see you falling apart."`>>
+				<<case 6>>
+					<<set $_text_output to `<<He>> hisses. "Don't make me repeat myself."`>>
+				<<case 7>>
+					<<set $_text_output to `<<He>> screeches incoherently.`>>
+				<<case 8>>
+					<<set $_text_output to `<<He>> meets your eye and nods reassuringly.`>>
+				<<case 9>>
+					<<set $_text_output to `<<He>> babbles under <<his>> breath.`>>
+				<<case 10>>
+					<<set $_text_output to `<<He>> shakes <<his>> head. "You'll fall. You'll fall, and you won't get back up."`>>
+			<</switch>>
+		<<elseif ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>>
 			<<set $_text_output to `<<He>> smiles. "This feels like your first time again. How did you do that <<charles>>?"`>>
 		<<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>>
 			<<set $_text_output to `<<He>> smiles. "<<charles>>, I got to pop your other cherry too! Isn't it wonderful?"`>>
@@ -5504,15 +5600,15 @@
 			<<set $speechnamedrop to 0>>
 			<<switch _loveInterest>>
 				<<default>>
-					<<set $_text_output to `<<He>> snarls. "<<charles>>, you belong <<printTo>> <<if $pronoun is "m">>daddy<<else>>mummy<</if>>!"`>>
+					<<set $_text_output to `<<He>> snarls. "<<charles>>, you belong <<printTo>> <<mummy>>!"`>>
 			<</switch>>
-		<<elseif ($NPCList[_n].vagina is "feet" or $NPCList[_n].penis is "feet") and random(1, 10) is 1>>
+		<<elseif ($NPCList[_n].vagina is "feet" or $NPCList[_n].penis is "feet") and random(1, 10) is 1 and $footdisable is "f">>
 			<<set $_text_output to `<<He>> moans. "Oh, <<charles>>, your feet...!"`>>
 		<<elseif $speechsextoy is 1>>
 			<<set $speechsextoy to 0>>
 			<<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>>
 			<<set $_text_output to `<<He>> looks at your $_sexToy and speaks. "<<charles>>, what is that?"`>>
-		<</if>> 
+		<</if>>
 	<<case "Bailey">>
 		<<set $_stringsPre to ($enemyanger lte 60 ? "<<He>> snickers. ":"<<He>> snarls. ")>>
 		<<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>>
@@ -5543,7 +5639,7 @@
 			<<if $rng gte 99>>
 				<<set $_text_output to $_stringsPre + `"It's no wonder everyone wants a piece of your orphan ass."`>>
 			<<elseif $rng gte 80>>
-				<<set $_options to []>>
+				<<set $_options to ["default"]>>
 				<<if $hairlength gte 600>>
 					<<run $_options.push("hair")>>
 				<</if>>
@@ -5557,13 +5653,14 @@
 					<<case "hair">><<set $_text_output to $_stringsPre + `"Kept your hair long? I know someone who will like that."`>>
 					<<case "cow">><<set $_text_output to $_stringsPre + `"Cows fetch a high price these days, you know."`>>
 					<<case "healthy">><<set $_text_output to $_stringsPre + `"You've taken care of yourself. Good."`>>
+					<<case "default">><<set $_text_output to $_stringsPre + `"Don't make this harder than it needs to be."`>>
 				<</switch>>
 			<<elseif $rng gte 60>>
 				<<set $_text_output to $_stringsPre + `"You're so valuable!"`>>
 			<<elseif $rng gte 40>>
 				<<set $_text_output to $_stringsPre + `"Just relax. I'll handle everything like always."`>>
 			<<elseif $rng gte 20>>
-				<<set $_text_output to $_stringsPre + `"You were always the best looking little <<print ["bastard","shit"].pluck()>>."`>>
+				<<set $_text_output to $_stringsPre + `"You were always the best looking little <<print ["bastard","shit","<<bitch>>"].pluck()>>."`>>
 			<<else>>
 				<<set $_text_output to $_stringsPre + `"It's easier this way. Trust me."`>>
 			<</if>>
@@ -5576,7 +5673,7 @@
 									`You're making it harder on both of us.`,
 									`You chose this.`,
 									`Are you going to listen to me now?`,
-									`You're going to a bu...`,
+									`I have someone willing to pay big for you.`,
 									`You're coming with me, and that's that.`,
 									`Maybe I should inspect you before we go.`]>>
 				<<set $_text_output to $_stringsPre + '"' + $_strings.pluck() + '"'>>
diff --git a/game/base-combat/stalk/actions.twee b/game/base-combat/stalk/actions.twee
index c8c118153d060a008ae44e2c953517075f4cf146..8ddd6175a074ccc55ba4e678f8f5016519da8850 100644
--- a/game/base-combat/stalk/actions.twee
+++ b/game/base-combat/stalk/actions.twee
@@ -4,71 +4,71 @@
 
 <<widget "left_pursuit_grab">>
 <<if $NPCList[0].state is "pursuit" and $NPCList[0].distance lte 0>>
-    <<set _leftaction["Grab"] to "pursuit_grab">>
+	<<set _leftaction["Grab"] to "pursuit_grab">>
 <</if>>
 <</widget>>
 
 <<widget "right_pursuit_grab">>
 <<if $NPCList[0].state is "pursuit" and $NPCList[0].distance lte 0>>
-    <<set _rightaction["Grab"] to "pursuit_grab">>
+	<<set _rightaction["Grab"] to "pursuit_grab">>
 <</if>>
 <</widget>>
 
 /*Feet */
 <<widget "feet_walk">>
 <<if $leftleg isnot "bound" and $rightleg isnot "bound" and $dissociation lt 2 and $NPCList[0].state isnot "pursuit" and $feetuse isnot "run" and ($feetskill gte 200 or !$worn.feet.type.includes("heels"))>>
-    <<set _feetaction["Walk"] to "walk">>
+	<<set _feetaction["Walk"] to "walk">>
 <</if>>
 <</widget>>
 
 <<widget "feet_run">>
-<<if $leftleg isnot "bound" and $rightleg isnot "bound" and $dissociation lt 2 and ($feetskill gte 200 or !$worn.feet.type.includes("heels"))>>   
-    <<if $NPCList[0].state is "pursuit">>
-        <<set _feetaction["Chase"] to "run">>
-    <<else>>
-	    <<set _feetaction["Run"] to "run">>
-    <</if>>
+<<if $leftleg isnot "bound" and $rightleg isnot "bound" and $dissociation lt 2 and ($feetskill gte 200 or !$worn.feet.type.includes("heels"))>>
+	<<if $NPCList[0].state is "pursuit">>
+		<<set _feetaction["Chase"] to "run">>
+	<<else>>
+		<<set _feetaction["Run"] to "run">>
+	<</if>>
 <</if>>
 <</widget>>
 
 <<widget "feet_stand">>
 <<if $dissociation lt 2 and $NPCList[0].state isnot "pursuit" and $feetuse isnot "run">>
-    <<set _feetaction["Stand still"] to "stand">>
+	<<set _feetaction["Stand still"] to "stand">>
 <</if>>
 <</widget>>
 
 <<widget "feet_hobble">>
 <<if $dissociation lt 2 and ($leftleg is "bound" or $rightleg is "bound") or ($feetskill lt 200 and $worn.feet.type.includes("heels"))>>
-    <<set _feetaction["Hobble"] to "hobble">>
+	<<set _feetaction["Hobble"] to "hobble">>
 <</if>>
 <</widget>>
 
 <<widget "feet_hide">>
 <<if $dissociation lt 2 and $panicviolence lte 0>>
-    <<set _feetaction["Hide"] to "hide">>
+	<<set _feetaction["Hide"] to "hide">>
 <</if>>
 <</widget>>
 
 <<widget "feet_confront">>
 <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit">>
-    <<set _feetaction["Confront"] to "confront">>
+	<<set _feetaction["Confront"] to "confront">>
 <</if>>
 <</widget>>
 
 <<widget "head_turn">>
 <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit">>
-    <<set _mouthaction["Look behind you"] to "turn">>
+	<<set _mouthaction["Look behind you"] to "turn">>
 <</if>>
 <</widget>>
 
 <<widget "head_down">>
 <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit">>
-    <<set _mouthaction["Look at the ground"] to "down">>
+	<<set _mouthaction["Look at the ground"] to "down">>
 <</if>>
 <</widget>>
 
 <<widget "head_up">>
 <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit">>
-    <<set _mouthaction["Keep your chin up"] to "up">>
+	<<set _mouthaction["Keep your chin up"] to "up">>
 <</if>>
 <</widget>>
\ No newline at end of file
diff --git a/game/base-combat/stalk/stalk.twee b/game/base-combat/stalk/stalk.twee
index e23178231b7b01c634fcf3b2d0a6de7f7122b146..25d0e0739b0109fd332639b376b324a28e1319c5 100644
--- a/game/base-combat/stalk/stalk.twee
+++ b/game/base-combat/stalk/stalk.twee
@@ -1,37 +1,37 @@
 :: Widgets Stalk [widget]
 <<widget "man-stalk">>
 <<if $stalk_intro is undefined and $NPCList[0].legs isnot "run">>
-    <<set $stalk_intro to true>>
-    <i>You are being stalked. <span class="brat">Bratty</span> actions will discourage people from assaulting you, while <span class="meek">meek</span> actions will make them less likely to be violent if they do.
-    <br><br>
-    You could always run or hide, but failing will increase the chance of being assaulted. Looking over your shoulder will give an idea of how hard they are to outrun or deceive.
-    <br><br></i>
+	<<set $stalk_intro to true>>
+	<i>You are being stalked. <span class="brat">Bratty</span> actions will discourage people from assaulting you, while <span class="meek">meek</span> actions will make them less likely to be violent if they do.
+	<br><br>
+	You could always run or hide, but failing will increase the chance of being assaulted. Looking over your shoulder will give an idea of how hard they are to outrun or deceive.
+	<br><br></i>
 <</if>>
 <<if _n is 0 and $stalk_end isnot "escaped" and $stalk_end isnot "hide" and $stalk_end isnot "confront">>/*Only triggers on first NPC in a group. */
-    <<if $NPCList[_n].legs is "walk">>
-        <<set $NPCList[_n].distance -= 1>>
-        <<if $NPCList[_n].distance is 3>>
-            You hear a pair of footsteps <span class="blue">some distance</span> behind you.
-        <<elseif $NPCList[_n].distance is 2>>
-            You hear a pair of footsteps <span class="purple">close</span> behind you.
-        <<elseif $NPCList[_n].distance is 1>>
-            You hear a pair of footsteps <span class="pink">right behind</span> you!
-        <</if>>
-    <<else>>
-        <<set $NPCList[_n].distance -= 1>>
-        <<if $NPCList[_n].distance is 3>>
-            You hear footsteps running <span class="blue">some distance</span> behind you.
-        <<elseif $NPCList[_n].distance is 2>>
-            You hear footsteps running <span class="purple">close</span> behind you.
-        <<elseif $NPCList[_n].distance is 1>>
-        You hear footsteps running <span class="pink">right behind</span> you!
-        <</if>>
-    <</if>>
+	<<if $NPCList[_n].legs is "walk">>
+		<<set $NPCList[_n].distance -= 1>>
+		<<if $NPCList[_n].distance is 3>>
+			You hear a pair of footsteps <span class="blue">some distance</span> behind you.
+		<<elseif $NPCList[_n].distance is 2>>
+			You hear a pair of footsteps <span class="purple">close</span> behind you.
+		<<elseif $NPCList[_n].distance is 1>>
+			You hear a pair of footsteps <span class="pink">right behind</span> you!
+		<</if>>
+	<<else>>
+		<<set $NPCList[_n].distance -= 1>>
+		<<if $NPCList[_n].distance is 3>>
+			You hear footsteps running <span class="blue">some distance</span> behind you.
+		<<elseif $NPCList[_n].distance is 2>>
+			You hear footsteps running <span class="purple">close</span> behind you.
+		<<elseif $NPCList[_n].distance is 1>>
+		You hear footsteps running <span class="pink">right behind</span> you!
+		<</if>>
+	<</if>>
 
-    <<if $NPCList[_n].distance lte _n>>
-        <<if !$stalk_end>>
-            <<if $NPCList[_n].legs is "run" or $NPCList[0].bold gte random(1, 1000)>>
-                <span class="red">You are accosted.</span>
+	<<if $NPCList[_n].distance lte _n>>
+		<<if !$stalk_end>>
+			<<if $NPCList[_n].legs is "run" or $NPCList[0].bold gte random(1, 1000)>>
+				<span class="red">You are accosted.</span>
 				<<if $npcrow.includes(0)>>
 					<<stalk_nnpc_text_attack $NPCList[0].fullDescription>>
 					<<if !$stalk_assess>>
@@ -48,9 +48,9 @@
 					<<events_stalk_nnpc "Wraith">>
 				<<else>>
 					<br><br>
-					 <<events_stalk>>
+					<<events_stalk>>
 				<</if>>
-            <<else>>
+			<<else>>
 				<<if $npcrow.includes(0)>>
 					<<stalk_nnpc_text_passed $NPCList[0].fullDescription>>
 				<<elseif $NPCList[0].fullDescription is "Ivory Wraith">>
@@ -72,407 +72,407 @@
 						passes by. <span class="teal"><<He>> doesn't glance at you.</span>
 					<</switch>>
 				<</if>>
-                <<set $stalk_end to "passed">>
-            <</if>>
-        <</if>>
-    <</if>>
+				<<set $stalk_end to "passed">>
+			<</if>>
+		<</if>>
+	<</if>>
 <</if>>
 <<stalk_img>>
 <</widget>>
 
 <<widget "stalk_walk_events">>
 <<switch $location>>
-    <<case forest>>
+	<<case forest>>
 
-    <<case moor>>
+	<<case moor>>
 
-    <<case alley>>
-        <<set _rng to random(1, 10)>>
-        <<switch _rng>>
-            <<case 1>>
-                Steam rises from a nearby grate.
-            <<case 2>>
-                <<if $weather is "rain">>
-                    You avoid a puddle.
-                <<elseif $weather is "snow">>
-                    You avoid a patch of ice.
-                <<else>>
-                    You avoid a pile of rubbish.
-                <</if>>
-            <<case 3>>
-                The buildings tower around the thin alley.
-            <<case 4>>
-                The path dips and bends.
-            <<case 5>>
-                You're penned between metal fences.
-        <</switch>>
-    <<default>>
-        <<set _rng to random(1, 10)>>
-        <<switch _rng>>
-            <<case 1>>
-                Steam rises from a nearby grate.
-            <<case 2>>
-                <<if $weather is "rain">>
-                    You avoid a puddle.
-                <<elseif $weather is "snow">>
-                    You avoid a patch of ice.
-                <<else>>
-                    You avoid a pile of rubbish.
-                <</if>>
-            <<case 3>>
-                You pass beneath an awning.
-            <<case 4>>
-                You walk beneath an overpass.
-            <<case 5>>
-                The pavement is rough and uneven.
-        <</switch>>
+	<<case alley>>
+		<<set _rng to random(1, 10)>>
+		<<switch _rng>>
+			<<case 1>>
+				Steam rises from a nearby grate.
+			<<case 2>>
+				<<if $weather is "rain">>
+					You avoid a puddle.
+				<<elseif $weather is "snow">>
+					You avoid a patch of ice.
+				<<else>>
+					You avoid a pile of rubbish.
+				<</if>>
+			<<case 3>>
+				The buildings tower around the thin alley.
+			<<case 4>>
+				The path dips and bends.
+			<<case 5>>
+				You're penned between metal fences.
+		<</switch>>
+	<<default>>
+		<<set _rng to random(1, 10)>>
+		<<switch _rng>>
+			<<case 1>>
+				Steam rises from a nearby grate.
+			<<case 2>>
+				<<if $weather is "rain">>
+					You avoid a puddle.
+				<<elseif $weather is "snow">>
+					You avoid a patch of ice.
+				<<else>>
+					You avoid a pile of rubbish.
+				<</if>>
+			<<case 3>>
+				You pass beneath an awning.
+			<<case 4>>
+				You walk beneath an overpass.
+			<<case 5>>
+				The pavement is rough and uneven.
+		<</switch>>
 <</switch>>
 <</widget>>
 
 <<widget "stalk_run_events">>
 <br><br>
 <<if $stalk_event>>
-    <<stalk_events_followup>>
+	<<stalk_events_followup>>
 <<else>>
-    <<if $exposed gte 1 and $daystate isnot "night" and $location is "town">>
-        
-    <</if>>
-    <<switch $location>>
-        <<case forest>>
+	<<if $exposed gte 1 and $daystate isnot "night" and $location is "town">>
+
+	<</if>>
+	<<switch $location>>
+		<<case forest>>
 
-        <<case moor>>
+		<<case moor>>
 
-        <<case alley>>
-            <<if $NPCList[0].state is "pursuit">>
-                <<set _rng to random(1, 5)>>
-                <<switch _rng>>
-                    <<case 1>>
-                        You run across a metal grate. Warm air blows from the depths below.
-                    <<case 2>>
-                        <<switch $NPCList[0].size>>
-                            <<case large>>
-                                <<set $stalk_event to "wall_large">>
-                                Your quarry <span class="blue"> jumps and hauls <<himself>> over a <span class="purple">tall</span> wall.</span> You'll need to do likewise if you mean to follow.
-                            <<case normal>>
-                                <<set $stalk_event to "wall_normal">>
-                                Your quarry <span class="blue"> jumps and hauls <<himself>> over a wall.</span> You'll need to do likewise if you mean to follow.
-                            <<case small>>
-                                <<set $stalk_event to "wall_small">>
-                                Your quarry <span class="blue">kneels and scrambles through a hole in a wall.</span> You'll need to likewise if you mean to follow.
-                            <<case tiny>>
-                                <<set $stalk_event to "wall_tiny">>
-                                Your quarry <span class="blue">kneels and scrambles through a <span class="purple">tight</span> hole in the wall.</span> You'll need to likewise if you mean to follow.
-                        <</switch>>
-                    <<case 3>>
-                        <<set $stalk_event to "cat">>
-                        Your quarry kicks aside a sleeping cat. It stands upright <span class="blue">and hisses in anger.</span>
-                    <<case 4>>
-                        <<set $stalk_event to "dead-end">>
-                        You follow <<him>> around a corner, and see a brick wall up ahead. It looks like a dead-end. <<He>> searches for a way out.
-                    <<case 5>>
-                        <<set $stalk_event to "employee">>
-                        <span class="blue">An employee from a nearby establishment leans against the wall up ahead,</span> and regards the <<person>> with mild curiosity.
-                <</switch>>
-            <<else>>
-                
-            <</if>>
-        <<default>>
-            <<if $NPCList[0].state is "pursuit">>
-                <<if $daystate is "night">>
-                    <<set _rng to random(1, 5)>>
-                    <<switch _rng>>
-                        <<case 1>>
-                            <<set $stalk_event to "taxi">>
-                            A taxi drives around the corner. <span class="blue">It's heading this way.</span>
-                        <<case 2>>
-                            <<set $stalk_event to "crowd">>
-                            The <<person>> runs <span class="blue">into a drunken crowd.</span>
-                        <<case 3>>
-                            <<if $hallucinations gte 2>>
-                                <span class="pink">Something snares your foot in the dark.</span> A tentacle extends from a storm drain, and coils around your ankle.
-                            <<else>>
-                                <span class="pink">Something snares your foot in the dark.</span>
-                            <</if>>
-                            You shake it free, but your quarry is getting away.
-                            <<set $NPCList[0].distance += 1>>
-                        <<case 4>>
-                            <<set $stalk_event to "night_house">>
-                            <span class="blue">You hear voices from a building up ahead.</span> Light floods from the windows, bathing the street.
-                        <<case 5>>
-                            A chill gust makes your hair stand on end.
-                    <</switch>>
-                <<else>>
-                    <<set _rng to random(1, 5)>>
-                    <<switch _rng>>
-                        <<case 1>>
-                            <<set $stalk_event to "bus">>
-                            A tourist bus pulls around the corner up ahead. <span class="blue">It's heading this way.</span>
-                        <<case 2>>
-                            <<set $stalk_event to "crowd">>
-                            The <<person>> runs <span class="blue">into a crowd.</span>
-                        <<case 3>>
-                            <<set $stalk_event to "restaurant">>
-                            The <<person>> runs past <span class="blue">a busy restaurant.</span>
-                        <<case 4>>
-                            <<set $stalk_event to "school">>
-                            The <<person>> runs past <span class="blue">a gaggle of students you recognise from school.</span>
-                        <<case 5>>
-                            <<set $stalk_event to "street">>
-                            The <<person>> <span class="blue">runs across the street.</span>
-                    <</switch>>
-                <</if>>
-            <<else>>
+		<<case alley>>
+			<<if $NPCList[0].state is "pursuit">>
+				<<set _rng to random(1, 5)>>
+				<<switch _rng>>
+					<<case 1>>
+						You run across a metal grate. Warm air blows from the depths below.
+					<<case 2>>
+						<<switch $NPCList[0].size>>
+							<<case large>>
+								<<set $stalk_event to "wall_large">>
+								Your quarry <span class="blue"> jumps and hauls <<himself>> over a <span class="purple">tall</span> wall.</span> You'll need to do likewise if you mean to follow.
+							<<case normal>>
+								<<set $stalk_event to "wall_normal">>
+								Your quarry <span class="blue"> jumps and hauls <<himself>> over a wall.</span> You'll need to do likewise if you mean to follow.
+							<<case small>>
+								<<set $stalk_event to "wall_small">>
+								Your quarry <span class="blue">kneels and scrambles through a hole in a wall.</span> You'll need to likewise if you mean to follow.
+							<<case tiny>>
+								<<set $stalk_event to "wall_tiny">>
+								Your quarry <span class="blue">kneels and scrambles through a <span class="purple">tight</span> hole in the wall.</span> You'll need to likewise if you mean to follow.
+						<</switch>>
+					<<case 3>>
+						<<set $stalk_event to "cat">>
+						Your quarry kicks aside a sleeping cat. It stands upright <span class="blue">and hisses in anger.</span>
+					<<case 4>>
+						<<set $stalk_event to "dead-end">>
+						You follow <<him>> around a corner, and see a brick wall up ahead. It looks like a dead-end. <<He>> searches for a way out.
+					<<case 5>>
+						<<set $stalk_event to "employee">>
+						<span class="blue">An employee from a nearby establishment leans against the wall up ahead,</span> and regards the <<person>> with mild curiosity.
+				<</switch>>
+			<<else>>
 
-            <</if>>
-    <</switch>>
+			<</if>>
+		<<default>>
+			<<if $NPCList[0].state is "pursuit">>
+				<<if $daystate is "night">>
+					<<set _rng to random(1, 5)>>
+					<<switch _rng>>
+						<<case 1>>
+							<<set $stalk_event to "taxi">>
+							A taxi drives around the corner. <span class="blue">It's heading this way.</span>
+						<<case 2>>
+							<<set $stalk_event to "crowd">>
+							The <<person>> runs <span class="blue">into a drunken crowd.</span>
+						<<case 3>>
+							<<if $hallucinations gte 2>>
+								<span class="pink">Something snares your foot in the dark.</span> A tentacle extends from a storm drain, and coils around your ankle.
+							<<else>>
+								<span class="pink">Something snares your foot in the dark.</span>
+							<</if>>
+							You shake it free, but your quarry is getting away.
+							<<set $NPCList[0].distance += 1>>
+						<<case 4>>
+							<<set $stalk_event to "night_house">>
+							<span class="blue">You hear voices from a building up ahead.</span> Light floods from the windows, bathing the street.
+						<<case 5>>
+							A chill gust makes your hair stand on end.
+					<</switch>>
+				<<else>>
+					<<set _rng to random(1, 5)>>
+					<<switch _rng>>
+						<<case 1>>
+							<<set $stalk_event to "bus">>
+							A tourist bus pulls around the corner up ahead. <span class="blue">It's heading this way.</span>
+						<<case 2>>
+							<<set $stalk_event to "crowd">>
+							The <<person>> runs <span class="blue">into a crowd.</span>
+						<<case 3>>
+							<<set $stalk_event to "restaurant">>
+							The <<person>> runs past <span class="blue">a busy restaurant.</span>
+						<<case 4>>
+							<<set $stalk_event to "school">>
+							The <<person>> runs past <span class="blue">a gaggle of students you recognise from school.</span>
+						<<case 5>>
+							<<set $stalk_event to "street">>
+							The <<person>> <span class="blue">runs across the street.</span>
+					<</switch>>
+				<</if>>
+			<<else>>
+
+			<</if>>
+	<</switch>>
 <</if>>
 <</widget>>
 
 <<widget "stalk_events_followup">>
 <<switch $stalk_event>>
-    <<case "bus">>
-        The bus drives by. A <<personsimple>> spots you. <<His>> mouth moves, 
-        <<set _rng to random(1, 2)>>
-        <<switch _rng>>
-            <<case 1>>
-                <span class="green">but no one else seems interested in what <<he>> has to say.</span> The bus passes.
-            <<case 2>>
-                <span class="red">and other heads turn your way.</span> There's a flurry of activity and the tourists grab their cameras, eager to snap the <<nude_text>> <<girl>>.
-                <<fameexhibitionism 10 pic>>
-        <</switch>>
-    <<case "crowd">>
-        You run into the crowd. You hope to move fast enough to keep anyone from snatching more than a glimpse.
-        <<if $allure gte random(1, 10000) / 2>>
-            <<if random(1, 3) is 3>>
-                <span class="pink">Someone gropes your <<bottom>> as you pass, encouraging others.</span> More hands reach out, fonding and stroking your body.<<gtrauma>><<gstress>><<garousal>>
-                <br><br>
-                You emerge from the other side, and escape around the corner before the bemused pedestrians can reach for their phones.
-            <<else>>
-                <span class="red">The <<person>> ambushes you!</span> <<He>> grasps your arms and shoves you to the ground.
-                <br><br>
-                <<stalk_attack>>
-                <<set $audience_active to true>>
-            <</if>>
-        <<else>>
-            You emerge from the other side, and escape around the corner before the bemused pedestrians can reach for their phones.
-            <br><br>
-        <</if>>
-    <<case "restaurant">>
-        You rush past the restaurant.
-        <<set _rng to random(1, 2)>>
-        <<switch _rng>>
-        <<case 1>>
-            <span class="green">Everyone's too occupied to notice the <<nude_text>> <<girl>> run by.</span>
-            <br><br>
-        <<case 2>>
-            <span class="pink">Someone shouts.</span> Spoons drop in soup, their owners aghast at the sight of the <<nude_text>> <<girl>> running by. Others chuckle, and reach for their phones.
-            <<fameexhibitionism 10 vid>>
-            <br><br>
-        <</switch>>
-    <<case "school">>
-        The students laugh as you run by.
-        <br>
-        <<if $worn.face.type.includes("mask")>>
-            <<if random(1, 2) is 2>>
-                "Do you recognise <<phim>> from school?" asks one <<persony>>.
-            <<else>>
-                "<<pShe>> must go to our school," says one <<persony>>.
-            <</if>>
-            <br>
-            <<if random(1, 2) is 2>>
-                "I can't see behind <<pher>> mask," replies another.
-            <<else>>
-                "Someone grab <<pher>> mask!" replies another.
-            <</if>>
-            <br>
-        <<elseif $face is "covered">>
-            <<if random(1, 2) is 2>>
-                "Do you recognise <<phim>> from school?" asks one <<persony>>.
-            <<else>>
-                "<<pShe>> must go to our school," says one <<persony>>.
-            <</if>>
-            <br>
-            <<if random(1, 2) is 2>>
-                "I can't tell," replies another. "<<pHer>> hands are in the way."
-            <<else>>
-                "Someone grab them!" replies another.
-            <</if>>
-            <br>
-        <<else>><<fameexhibitionism 5>>
-            <<if (random(1,3) is 1 and $loveInterest.primary is "Robin") or (random(1,3) is 2 and $loveInterest.secondary is "Robin")>>
-                "Isn't that Robin's <<girlfriend>>?" asks one <<persony>>.
-                <br>
-                "Who'd have thought Robin would be into perverts," says another.
-                <br>
-            <<elseif (random(1,3) is 1 and $loveInterest.primary is "Whitney") or (random(1,3) is 2 and $loveInterest.secondary is "Whitney")>>
-                "That's the <<girl>> Whitney always bullies," says one <<persony>>.
-                <br>
-                "I bet this is Whitney's fault," replies another.
-                <br>
-            <<elseif (random(1,3) is 1 and $loveInterest.primary is "Kylar") or (random(1,3) is 2 and $loveInterest.secondary is "Kylar")>>
-                "That's the <<girl>> Kylar hangs out with," says one <<persony>>.
-                <br>
-                "Figures <<pshe>>'d be a pervert," replies another.
-                <br>
-            <<elseif (random(1,3) is 1 and $loveInterest.primary is "Sydney") or (random(1,3) is 2 and $loveInterest.secondary is "Sydney")>>
-                "Hold on, that's Sydney's <<girlfriend>>," says one <<persony>>. "What's <<pshe>> doing like that?"
-                <br>
-                "Stole one too many books, now <<pshes>> on the run," laughs another.
-                <br>
-            <<else>>
-                <<if random(1, 2) is 2>>
-                    "I recognise <<phim>>!" proclaims one <<persony>>.
-                <<else>>
-                    "I know <<phim>> from school," says one <<persony>>.
-                <</if>>
-                <br>
-                <<if random(1, 2) is 2>>
-                    "Oh my god," replies another. "I can't wait to tell everyone."
-                <<else>>
-                    "<<pShe>>'s so perverted," replies another.
-                <</if>>
-                <br>
-            <</if>>
-        <</if>>
-        You run around a corner, and escape their prying before they get touchy.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-        <br><br>
-    <<case "street">>
-    You cross the street.
-    <<set _rng to random(1, 5)>>
-    <<if _rng gte 5>>
-        <span class="blue">A car almost collides with you.</span> It screeches to a halt, <span class="red">but still thuds into you with enough force to knock you to the ground.</span><<ggstress>><<stress 12>><<gtrauma>><<trauma 6>><<gpain>><<pain 4>>
-        <br><br>
-        You're left lying in the middle of the street, giving everyone time for a good look. <<covered>> The <<personsimple>> behind the offending vehicle steps out, a bewildered look on <<his>> face.
-        <br><br>
-        You struggle to your feet, and rush after the <<person>> before <<he>> escapes, your face bright hot.
-        <br><br>
-        <<set $NPCList[0].distance += 1>>
-    <<elseif _rng gte 3>>
-        <span class="blue">A car almost collides with you,</span> but screeches to a halt instead. The <<personsimple>> behind the wheel's expression softens in bewilderment when <<he>> sees your state of dress. You don't have time to apologise. You make it to the other side, where you're a bit more sheltered.<<gstress>><<stress 6>>
-    <<else>>
-        You keep focused on your quarry, but you know eyes up and down the street are glimpsing you. You make it to the other side, where you're a bit more sheltered.<<ggstress>><<stress 12>><<gtrauma>><<trauma 6>>
-    <</if>>
-    <br><br>
-    <<case "taxi">>
-        <<set _rng to random(1, 3)>>
-        <<switch _rng>>
-            <<case 1>>
-                <span class="purple">The taxi pulls to a stop as you pass,</span> and the <<personsimple>> in the passenger seat leans. <<lewdcatcall>><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-                <br><br>
-            <<case 2>>
-                A <<personsimple>> leans out the passenger seat of the taxi as you pass, <span class="purple">a large camera pressed against <<his>> face.</span> You hear it click.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism pic 5>>
-                <br><br>
-            <<case 3>>
-                The taxi driver stares at you as you pass, but doesn't stop.<<gstress>><<stress>>
-                <br><br>
-        <</switch>>
-    <<case "night_house">>
-        <<set _rng to random(1, 3)>>
-        <<if _rng gte 3>>
-            You run through the light. <span class="purple">A cry of mirth erupts from the lit building.</span> You glance over, and see a dozen faces staring back.<<gtrauma>><<gstress>><<trauma 12>><<stress 12>><<fameexhibitionism 12>>
-            <br><br>
-        <<else>>
-            You run through the light, sparing a nervous glance at the windows. There are people within, but none are looking this way.
-            <br><br>
-        <</if>>
-    <<case "wall_large">>
-        <<if $bodysize gte 3 or $bodysize gte 2 and random(1, 2) is 2>>
-            <span class="green">You jump and haul yourself over the wall.</span>
-            <br><br>
-        <<else>>
-            You jump and try to grasp the top of the wall, <span class="red">but you're too short.</span> You manage to squeeze through a hole at the base instead, but the <<person>> is getting away.
-            <<set $NPCList[0].distance += 1>>
-            <br><br>
-        <</if>>
-    <<case "wall_normal">>
-        <<if $bodysize gte 2 or $bodysize gte 1 and random(1, 2) is 2>>
-            <span class="green">You jump and haul yourself over the wall.</span>
-            <br><br>
-        <<else>>
-            You jump and try to grasp the top of the wall, <span class="red">but you're too short.</span> You manage to squeeze through a hole at the base instead, but the <<person>> is getting away.
-            <<set $NPCList[0].distance += 1>>
-            <br><br>
-        <</if>>
-    <<case "wall_small">>
-        <<if $bodysize lte 1 or $bodysize lte 2 and random(1, 2) is 2>>
-            You drop to your knees and crawl through the hole, <span class="green">emerging on the other side.</span> You continue the chase.
-            <br><br>
-        <<else>>
-            You drop to your knees and crawl through the hole. You emerge on the other side, <span class="red">but get stuck.</span>
-            <br><br>
-            The <<person>> returns when <<he>> notices your predicament. <<He>> <<npcUndressText $NPCList[0] "lower" "self">>,
-            <span class="purple"><<npcRevealText $NPCList[0] "lower">>.</span>
-            <<stalk_attack>>
-            <<stuck_in_wall_oral>>
-            <br><br>
-        <</if>>
-    <<case "wall_tiny">>
-        <<if $bodysize lte 0 or $bodysize lte 1 and random(1, 2) is 2>>
-            You drop to your knees and crawl through the hole, <span class="green">emerging on the other side.</span> You continue the chase.
-            <br><br>
-        <<else>>
-            You drop to your knees and crawl through the hole. You emerge on the other side, <span class="red">but get stuck.</span>
-            <br><br>
-            The <<person>> returns when <<he>> notices your predicament. <<He>> <<npcUndressText $NPCList[0] "lower" "self">>,
-            <span class="purple"><<npcRevealText $NPCList[0] "lower">>.</span>
-            <<stuck_in_wall_oral>>
-            <br><br>
-        <</if>>
-    <<case "cat">>
-        <<if $cat gte 6>>
-            You meow at the cat. <span class="green">It meows back,</span> and runs after the <<person>>. It jumps on <<his>> back, its claws ablur. <span class="green"><<He>> drops your $stalk_clothes and reaches for the attacker.</span>
-            <br><br>
+	<<case "bus">>
+		The bus drives by. A <<personsimple>> spots you. <<His>> mouth moves,
+		<<set _rng to random(1, 2)>>
+		<<switch _rng>>
+			<<case 1>>
+				<span class="green">but no one else seems interested in what <<he>> has to say.</span> The bus passes.
+			<<case 2>>
+				<span class="red">and other heads turn your way.</span> There's a flurry of activity and the tourists grab their cameras, eager to snap the <<nude_text>> <<girl>>.
+				<<fameexhibitionism 10 "pic">>
+		<</switch>>
+	<<case "crowd">>
+		You run into the crowd. You hope to move fast enough to keep anyone from snatching more than a glimpse.
+		<<if $allure gte random(1, 10000) / 2>>
+			<<if random(1, 3) is 3>>
+				<span class="pink">Someone gropes your <<bottom>> as you pass, encouraging others.</span> More hands reach out, fondling and stroking your body.<<gtrauma>><<gstress>><<garousal>>
+				<br><br>
+				You emerge from the other side, and escape around the corner before the bemused pedestrians can reach for their phones.
+			<<else>>
+				<span class="red">The <<person>> ambushes you!</span> <<He>> grasps your arms and shoves you to the ground.
+				<br><br>
+				<<stalk_attack>>
+				<<set $audience_active to true>>
+			<</if>>
+		<<else>>
+			You emerge from the other side, and escape around the corner before the bemused pedestrians can reach for their phones.
+			<br><br>
+		<</if>>
+	<<case "restaurant">>
+		You rush past the restaurant.
+		<<set _rng to random(1, 2)>>
+		<<switch _rng>>
+		<<case 1>>
+			<span class="green">Everyone's too occupied to notice the <<nude_text>> <<girl>> run by.</span>
+			<br><br>
+		<<case 2>>
+			<span class="pink">Someone shouts.</span> Spoons drop in soup, their owners aghast at the sight of the <<nude_text>> <<girl>> running by. Others chuckle, and reach for their phones.
+			<<fameexhibitionism 10 "vid">>
+			<br><br>
+		<</switch>>
+	<<case "school">>
+		The students laugh as you run by.
+		<br>
+		<<if $worn.face.type.includes("mask")>>
+			<<if random(1, 2) is 2>>
+				"Do you recognise <<phim>> from school?" asks one <<persony>>.
+			<<else>>
+				"<<pShe>> must go to our school," says one <<persony>>.
+			<</if>>
+			<br>
+			<<if random(1, 2) is 2>>
+				"I can't see behind <<pher>> mask," replies another.
+			<<else>>
+				"Someone grab <<pher>> mask!" replies another.
+			<</if>>
+			<br>
+		<<elseif $face is "covered">>
+			<<if random(1, 2) is 2>>
+				"Do you recognise <<phim>> from school?" asks one <<persony>>.
+			<<else>>
+				"<<pShe>> must go to our school," says one <<persony>>.
+			<</if>>
+			<br>
+			<<if random(1, 2) is 2>>
+				"I can't tell," replies another. "<<pHer>> hands are in the way."
+			<<else>>
+				"Someone grab them!" replies another.
+			<</if>>
+			<br>
+		<<else>><<fameexhibitionism 5>>
+			<<if (random(1,3) is 1 and $loveInterest.primary is "Robin") or (random(1,3) is 2 and $loveInterest.secondary is "Robin")>>
+				"Isn't that Robin's <<girlfriend>>?" asks one <<persony>>.
+				<br>
+				"Who'd have thought Robin would be into perverts," says another.
+				<br>
+			<<elseif (random(1,3) is 1 and $loveInterest.primary is "Whitney") or (random(1,3) is 2 and $loveInterest.secondary is "Whitney")>>
+				"That's the <<girl>> Whitney always bullies," says one <<persony>>.
+				<br>
+				"I bet this is Whitney's fault," replies another.
+				<br>
+			<<elseif (random(1,3) is 1 and $loveInterest.primary is "Kylar") or (random(1,3) is 2 and $loveInterest.secondary is "Kylar")>>
+				"That's the <<girl>> Kylar hangs out with," says one <<persony>>.
+				<br>
+				"Figures <<pshe>>'d be a pervert," replies another.
+				<br>
+			<<elseif (random(1,3) is 1 and $loveInterest.primary is "Sydney") or (random(1,3) is 2 and $loveInterest.secondary is "Sydney")>>
+				"Hold on, that's Sydney's <<girlfriend>>," says one <<persony>>. "What's <<pshe>> doing like that?"
+				<br>
+				"Stole one too many books, now <<pshes>> on the run," laughs another.
+				<br>
+			<<else>>
+				<<if random(1, 2) is 2>>
+					"I recognise <<phim>>!" proclaims one <<persony>>.
+				<<else>>
+					"I know <<phim>> from school," says one <<persony>>.
+				<</if>>
+				<br>
+				<<if random(1, 2) is 2>>
+					"Oh my god," replies another. "I can't wait to tell everyone."
+				<<else>>
+					"<<pShe>>'s so perverted," replies another.
+				<</if>>
+				<br>
+			<</if>>
+		<</if>>
+		You run around a corner, and escape their prying before they get touchy.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+		<br><br>
+	<<case "street">>
+	You cross the street.
+	<<set _rng to random(1, 5)>>
+	<<if _rng gte 5>>
+		<span class="blue">A car almost collides with you.</span> It screeches to a halt, <span class="red">but still thuds into you with enough force to knock you to the ground.</span><<ggstress>><<stress 12>><<gtrauma>><<trauma 6>><<gpain>><<pain 4>>
+		<br><br>
+		You're left lying in the middle of the street, giving everyone time for a good look. <<covered>> The <<personsimple>> behind the offending vehicle steps out, a bewildered look on <<his>> face.
+		<br><br>
+		You struggle to your feet, and rush after the <<person>> before <<he>> escapes, your face bright hot.
+		<br><br>
+		<<set $NPCList[0].distance += 1>>
+	<<elseif _rng gte 3>>
+		<span class="blue">A car almost collides with you,</span> but screeches to a halt instead. The <<personsimple>> behind the wheel's expression softens in bewilderment when <<he>> sees your state of dress. You don't have time to apologise. You make it to the other side, where you're a bit more sheltered.<<gstress>><<stress 6>>
+	<<else>>
+		You keep focused on your quarry, but you know eyes up and down the street are glimpsing you. You make it to the other side, where you're a bit more sheltered.<<ggstress>><<stress 12>><<gtrauma>><<trauma 6>>
+	<</if>>
+	<br><br>
+	<<case "taxi">>
+		<<set _rng to random(1, 3)>>
+		<<switch _rng>>
+			<<case 1>>
+				<span class="purple">The taxi pulls to a stop as you pass,</span> and the <<personsimple>> in the passenger seat leans. <<lewdcatcall>><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+				<br><br>
+			<<case 2>>
+				A <<personsimple>> leans out the passenger seat of the taxi as you pass, <span class="purple">a large camera pressed against <<his>> face.</span> You hear it click.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 5 "pic">>
+				<br><br>
+			<<case 3>>
+				The taxi driver stares at you as you pass, but doesn't stop.<<gstress>><<stress>>
+				<br><br>
+		<</switch>>
+	<<case "night_house">>
+		<<set _rng to random(1, 3)>>
+		<<if _rng gte 3>>
+			You run through the light. <span class="purple">A cry of mirth erupts from the lit building.</span> You glance over, and see a dozen faces staring back.<<gtrauma>><<gstress>><<trauma 12>><<stress 12>><<fameexhibitionism 12>>
+			<br><br>
+		<<else>>
+			You run through the light, sparing a nervous glance at the windows. There are people within, but none are looking this way.
+			<br><br>
+		<</if>>
+	<<case "wall_large">>
+		<<if $bodysize gte 3 or $bodysize gte 2 and random(1, 2) is 2>>
+			<span class="green">You jump and haul yourself over the wall.</span>
+			<br><br>
+		<<else>>
+			You jump and try to grasp the top of the wall, <span class="red">but you're too short.</span> You manage to squeeze through a hole at the base instead, but the <<person>> is getting away.
+			<<set $NPCList[0].distance += 1>>
+			<br><br>
+		<</if>>
+	<<case "wall_normal">>
+		<<if $bodysize gte 2 or $bodysize gte 1 and random(1, 2) is 2>>
+			<span class="green">You jump and haul yourself over the wall.</span>
+			<br><br>
+		<<else>>
+			You jump and try to grasp the top of the wall, <span class="red">but you're too short.</span> You manage to squeeze through a hole at the base instead, but the <<person>> is getting away.
+			<<set $NPCList[0].distance += 1>>
+			<br><br>
+		<</if>>
+	<<case "wall_small">>
+		<<if $bodysize lte 1 or $bodysize lte 2 and random(1, 2) is 2>>
+			You drop to your knees and crawl through the hole, <span class="green">emerging on the other side.</span> You continue the chase.
+			<br><br>
+		<<else>>
+			You drop to your knees and crawl through the hole. You emerge on the other side, <span class="red">but get stuck.</span>
+			<br><br>
+			The <<person>> returns when <<he>> notices your predicament. <<He>> <<npcUndressText $NPCList[0] "lower" "self">>,
+			<span class="purple"><<npcRevealText $NPCList[0] "lower">>.</span>
+			<<stalk_attack>>
+			<<stuck_in_wall_oral>>
+			<br><br>
+		<</if>>
+	<<case "wall_tiny">>
+		<<if $bodysize lte 0 or $bodysize lte 1 and random(1, 2) is 2>>
+			You drop to your knees and crawl through the hole, <span class="green">emerging on the other side.</span> You continue the chase.
+			<br><br>
+		<<else>>
+			You drop to your knees and crawl through the hole. You emerge on the other side, <span class="red">but get stuck.</span>
+			<br><br>
+			The <<person>> returns when <<he>> notices your predicament. <<He>> <<npcUndressText $NPCList[0] "lower" "self">>,
+			<span class="purple"><<npcRevealText $NPCList[0] "lower">>.</span>
+			<<stuck_in_wall_oral>>
+			<br><br>
+		<</if>>
+	<<case "cat">>
+		<<if $cat gte 6>>
+			You meow at the cat. <span class="green">It meows back,</span> and runs after the <<person>>. It jumps on <<his>> back, its claws ablur. <span class="green"><<He>> drops your $stalk_clothes and reaches for the attacker.</span>
+			<br><br>
 
-            <<He>> throws the cat away, then turns to face you.
-            <br><br>
-            <<stalk_catch>>
-        <<else>>
-            The cat hisses as you pass.
-            <br><br>
-        <</if>>
-    <<case "dead-end">>
-        <<if random(1, 2) is 2>>
-            <<He>> spots a thin passage between a building and metal shed, and squeezes through.
-            <br><br>
-        <<else>>
-            Finding no way out, <span class="blue">the <<person>> turns to face you.</span>
-            <br><br>
-            <<stalk_catch>>
-        <</if>>
-    <<case "employee">>
-        <<set _rng to random(1, 3)>>
-        <<switch _rng>>
-            <<case 3>>
-                The employee reaches into <<his>> pocket when <<he>> spots you, <span class="blue">and produces <<his>> phone,</span> pointing it at you as you pass.
-                <<fameexhibitionism 5>>
-                <br><br>
-            <<case 2>>
-                The employee's mouth opens in shock when <<he>> spots you. <<His>> cigarette falls to the floor.
-                <br><br>
-            <<case 1>>
-                The employee's mouth opens in shock when <<he>> spots you.
-                <br><br>
-        <</switch>>
+			<<He>> throws the cat away, then turns to face you.
+			<br><br>
+			<<stalk_catch>>
+		<<else>>
+			The cat hisses as you pass.
+			<br><br>
+		<</if>>
+	<<case "dead-end">>
+		<<if random(1, 2) is 2>>
+			<<He>> spots a thin passage between a building and metal shed, and squeezes through.
+			<br><br>
+		<<else>>
+			Finding no way out, <span class="blue">the <<person>> turns to face you.</span>
+			<br><br>
+			<<stalk_catch>>
+		<</if>>
+	<<case "employee">>
+		<<set _rng to random(1, 3)>>
+		<<switch _rng>>
+			<<case 3>>
+				The employee reaches into <<his>> pocket when <<he>> spots you, <span class="blue">and produces <<his>> phone,</span> pointing it at you as you pass.
+				<<fameexhibitionism 5>>
+				<br><br>
+			<<case 2>>
+				The employee's mouth opens in shock when <<he>> spots you. <<His>> cigarette falls to the floor.
+				<br><br>
+			<<case 1>>
+				The employee's mouth opens in shock when <<he>> spots you.
+				<br><br>
+		<</switch>>
 <</switch>>
 <<unset $stalk_event>>
 <</widget>>
 
 <<widget "man-pursuit">>
 <<if _n is 0>>
-    <<set $NPCList[_n].distance += 1>>
-    <<if $NPCList[_n].distance gte 4>>
-        You round a corner, but the <<person>> is nowhere to be seen. <span class="red">You've lost <<him>>.</span>
-        <<set $stalk_end to "outpaced">>
-    <<elseif $NPCList[_n].distance is 3>>
-        The <<person>> rounds a corner ahead. <span class="pink">You've almost lost <<him>>.</span>
-    <<elseif $NPCList[_n].distance is 2>>
-        The <<person>> runs, your clothes trailing behind <<him>>. <span class="purple"><<Hes>> some distance from you.</span>
-    <<elseif $NPCList[_n].distance is 1>>
-        The <<person>> runs, and throws the occasional glance over <<his>> shoulder. <span class="blue"><<Hes>> not far ahead.</span>
-    <<else>>
-        <<set $NPCList[_n].distance to 0>>
-        The <<person>> runs, your clothes bundled under <<his>> arm. <span class="green"><<Hes>> right in front of you.</span>
-    <</if>>
+	<<set $NPCList[_n].distance += 1>>
+	<<if $NPCList[_n].distance gte 4>>
+		You round a corner, but the <<person>> is nowhere to be seen. <span class="red">You've lost <<him>>.</span>
+		<<set $stalk_end to "outpaced">>
+	<<elseif $NPCList[_n].distance is 3>>
+		The <<person>> rounds a corner ahead. <span class="pink">You've almost lost <<him>>.</span>
+	<<elseif $NPCList[_n].distance is 2>>
+		The <<person>> runs, your clothes trailing behind <<him>>. <span class="purple"><<Hes>> some distance from you.</span>
+	<<elseif $NPCList[_n].distance is 1>>
+		The <<person>> runs, and throws the occasional glance over <<his>> shoulder. <span class="blue"><<Hes>> not far ahead.</span>
+	<<else>>
+		<<set $NPCList[_n].distance to 0>>
+		The <<person>> runs, your clothes bundled under <<his>> arm. <span class="green"><<Hes>> right in front of you.</span>
+	<</if>>
 <</if>>
 <<stalk_img>>
 <</widget>>
@@ -482,12 +482,12 @@
 	<<set $NPCList[_i].state to "attack">>
 <</for>>
 <<if random(1, 2) is 2>>
-    <<set $position to "missionary">>
+	<<set $position to "missionary">>
 <<else>>
-    <<set $position to "doggy">>
+	<<set $position to "doggy">>
 <</if>>
 <<if $location is "town" and $daystate isnot "night">>
-    <<set $audience_active to true>>
+	<<set $audience_active to true>>
 <</if>>
 <</widget>>
 
@@ -496,12 +496,12 @@
 	<<set $NPCList[_i].state to "attack">>
 <</for>>
 <<if random(1, 2) is 2>>
-    <<set $position to "missionary">>
+	<<set $position to "missionary">>
 <<else>>
-    <<set $position to "doggy">>
+	<<set $position to "doggy">>
 <</if>>
 <<if $location is "town" and $daystate isnot "night">>
-    <<set $audience_active to true>>
+	<<set $audience_active to true>>
 <</if>>
 <<set $feetuse to 0>>
 <<controlloss>>
@@ -511,7 +511,7 @@
 <<widget "stalk_pursuit">>
 <<for _i = 0; _i < $NPCList.length; _i++>>
 	<<set $NPCList[_i].state to "pursuit">>
-    <<set $NPCList[_i].distance to 2>>
+	<<set $NPCList[_i].distance to 2>>
 <</for>>
 <<set $rescue to 0>>
 <<controlloss>>
@@ -521,7 +521,7 @@
 <<widget "stalk_run">>
 <<set $feetuse to "run">>
 <<for _i = 0; _i < $NPCList.length; _i++>>
-    <<set $NPCList[_i].legs to "run">>
+	<<set $NPCList[_i].legs to "run">>
 <</for>>
 <br>
 <</widget>>
@@ -529,7 +529,7 @@
 <<widget "stalk_flight">>
 <<for _i = 0; _i < $NPCList.length; _i++>>
 	<<set $NPCList[_i].state to "pursuit">>
-    <<set $NPCList[_i].distance to 2>>
+	<<set $NPCList[_i].distance to 2>>
 <</for>>
 <<set $rescue to 0>>
 <<unset $audience_active>>
@@ -546,8 +546,8 @@
 <<set $stalk to true>>
 <<set $enemyanger to 40>>
 <<if $controlled is 0 and ($anxiety gte 2 and random(1, 3) is 3 or $anxiety gte 1 and random(1, 9) is 9)>>
-    <span class="red">Your mind races, concocting terrible scenarios of what could befall you.</span><<llcontrol>><<control -25>>
-    <br>
+	<span class="red">Your mind races, concocting terrible scenarios of what could befall you.</span><<llcontrol>><<control -25>>
+	<br>
 <</if>>
 <</widget>>
 
@@ -671,83 +671,83 @@
 
 <<widget "stalk_athletics_difficulty">>
 <<if $stalk_assess or $NPCList[0].state is "pursuit">>
-    <<if $worn.feet.type.includes("heels")>>
-        <<skill_difficulty feetskill "Feet (heels)" 1 1000>>
-    <</if>>
-    <<athleticsdifficulty 0 $NPCList[0].skills.athletics>>
+	<<if $worn.feet.type.includes("heels")>>
+		<<skill_difficulty "$feetskill" "Feet (heels)" 1 1000>>
+	<</if>>
+	<<athleticsdifficulty 0 $NPCList[0].skills.athletics>>
 <</if>>
 <</widget>>
 
 <<widget "stalk_skulduggery_difficulty">>
 <<if $stalk_assess or $NPCList[0].state is "pursuit">>
-    <<set _difficulty to $NPCList[0].skills.security>>
-    <<set _difficulty += ($semencount + $goocount) * 20>>
-    <<if ($semencount + $goocount) gte 1>>
-        <<skill_difficulty skulduggery "Skulduggery (Slimy)" 0 _difficulty>>
-    <<else>>
-        <<skill_difficulty skulduggery Skulduggery 0 _difficulty>>
-    <</if>>
+	<<set _difficulty to $NPCList[0].skills.security>>
+	<<set _difficulty += ($semencount + $goocount) * 20>>
+	<<if ($semencount + $goocount) gte 1>>
+		<<skill_difficulty "$skulduggery" "Skulduggery (Slimy)" 0 _difficulty>>
+	<<else>>
+		<<skill_difficulty "$skulduggery" "Skulduggery" 0 _difficulty>>
+	<</if>>
 <</if>>
 <</widget>>
 
 <<widget "run_text">>
 <<switch $location>>
-    <<case alley>>
-        <<set _rng to random(1, 3)>>
-        <<switch _rng to random(1, 3)>>
-            <<case 1>>
-                You leap over a parked car.
-            <<case 2>>
-                You skirt between tightly-packed dumpsters.
-            <<case 3>>
-                You avoid a bollard.
-        <</switch>>					
-    <<case park>>
-        <<set _rng to random(1, 3)>>
-        <<switch _rng to random(1, 3)>>
-            <<case 1>>
-                You leap over bins and through bushes.
-            <<case 2>>
-                You duck beneath a tall hedge.
-            <<case 3>>
-                You bat away obstructing branches.
-        <</switch>>
-    <<case moor>>
-        <<set _rng to random(1, 3)>>
-        <<switch _rng to random(1, 3)>>
-            <<case 1>>
-                You leap over a muddy patch.
-            <<case 2>>
-                You scramble up a ridge.
-            <<case 3>>
-                You stomp through a patch of short brambles.
-        <</switch>>
-    <<case forest>>
-        <<set _rng to random(1, 3)>>
-        <<switch _rng to random(1, 3)>>
-            <<case 1>>
-                You leap over a stream.
-            <<case 2>>
-                You squeeze between dense trees.
-            <<case 3>>
-                You stomp through a patch of ferns.
-        <</switch>>
-    <<default>>
-        <<set _rng to random(1, 3)>>
-        <<switch _rng to random(1, 3)>>
-            <<case 1>>
-                <<if $weather is "rain">>
-                    You leap over a puddle.
-                <<elseif $weather is "snow">>
-                    You leap over ice.
-                <<else>>
-                    You leap over a pothole.
-                <</if>>
-            <<case 2>>
-                You avoid colliding with a <<if random(1, 2) is 2>>postbox<<else>>bin<</if>>.
-            <<case 3>>
-                You weave between parked cars.
-        <</switch>>
+	<<case alley>>
+		<<set _rng to random(1, 3)>>
+		<<switch _rng to random(1, 3)>>
+			<<case 1>>
+				You leap over a parked car.
+			<<case 2>>
+				You skirt between tightly-packed dumpsters.
+			<<case 3>>
+				You avoid a bollard.
+		<</switch>>
+	<<case park>>
+		<<set _rng to random(1, 3)>>
+		<<switch _rng to random(1, 3)>>
+			<<case 1>>
+				You leap over bins and through bushes.
+			<<case 2>>
+				You duck beneath a tall hedge.
+			<<case 3>>
+				You bat away obstructing branches.
+		<</switch>>
+	<<case moor>>
+		<<set _rng to random(1, 3)>>
+		<<switch _rng to random(1, 3)>>
+			<<case 1>>
+				You leap over a muddy patch.
+			<<case 2>>
+				You scramble up a ridge.
+			<<case 3>>
+				You stomp through a patch of short brambles.
+		<</switch>>
+	<<case forest>>
+		<<set _rng to random(1, 3)>>
+		<<switch _rng to random(1, 3)>>
+			<<case 1>>
+				You leap over a stream.
+			<<case 2>>
+				You squeeze between dense trees.
+			<<case 3>>
+				You stomp through a patch of ferns.
+		<</switch>>
+	<<default>>
+		<<set _rng to random(1, 3)>>
+		<<switch _rng to random(1, 3)>>
+			<<case 1>>
+				<<if $weather is "rain">>
+					You leap over a puddle.
+				<<elseif $weather is "snow">>
+					You leap over ice.
+				<<else>>
+					You leap over a pothole.
+				<</if>>
+			<<case 2>>
+				You avoid colliding with a <<if random(1, 2) is 2>>postbox<<else>>bin<</if>>.
+			<<case 3>>
+				You weave between parked cars.
+		<</switch>>
 <</switch>>
 <</widget>>
 
@@ -839,28 +839,31 @@
 				<<case 1>>"My favourite <<bitch>>, all by <<pherself>>." <<He>> grins. "Lucky me."
 			<</switch>>
 		<<case "Wraith">>
-			<<if $wraith.state is "haunt">>
-				<<switch random(1, 4)>>
-					<<case 4>><span class="wraith">"Give it back."</span>
-					<<case 3>><span class="wraith">"I am everywhere."</span>
-					<<case 2>><span class="wraith">"Where can you go but down?"</span>
-					<<case 1>><span class="wraith">"Run from your sins, into empty arms."</span>
+			<span class="wraith"><<if $wraith.state is "haunt">>
+				<<switch random(1, 5)>>
+					<<case 5>>"Give it back."
+					<<case 4>>"I am everywhere."
+					<<case 3>>"<<pcPetname "Wraith">>."
+					<<case 2>>"Where can you go but down?"
+					<<case 1>>"Run from your sins, into empty arms."
 				<</switch>>
 			<<elseif $wraith.offspring is "dead">>
-				<<switch random(1, 4)>>
-					<<case 4>><span class="wraith">"Coward."</span>
-					<<case 3>><span class="wraith">"All your fault."</span>
-					<<case 2>><span class="wraith">"Afraid. Alone. You'll share that pain."</span>
-					<<case 1>><span class="wraith">"You've dug their grave. Now lie with them."</span>
+				<<switch random(1, 5)>>
+					<<case 5>>"Coward."
+					<<case 4>>"All your fault."
+					<<case 3>>"<<pcPetname "Wraith">>."
+					<<case 2>>"Afraid. Alone. You'll share that pain."
+					<<case 1>>"You've dug their grave. Now lie with them."
 				<</switch>>
 			<<else>>
-				<<switch random(1, 4)>>
-						<<case 4>><span class="wraith">"Find you."</span>
-						<<case 3>><span class="wraith">"Why run from fate?"</span>
-						<<case 2>><span class="wraith">"You can run. But where will you go?"</span>
-						<<case 1>><span class="wraith">"Fly while you can, before your wings are clipped."</span>
+				<<switch random(1, 5)>>
+					<<case 5>>"Find you."
+					<<case 4>>"Why run from fate?"
+					<<case 3>>"<<pcPetname "Wraith">>."
+					<<case 2>>"You can run. But where will you go?"
+					<<case 1>>"Fly while you can, before your wings are clipped."
 				<</switch>>
-			<</if>>
+			<</if>></span>
 		<<default>>
 			"Best play along," <<he>> says. "It'll be easier for you."
 	<</switch>>
@@ -943,11 +946,11 @@
 			<</switch>>
 		<<case "Wraith">>
 			It cackles, <span class="teal">before dissipating into a thick, cool mist.</span> Its voice echoes around you.
-			<<switch random(1, 3)>>
-				<<case 3>><span class="wraith">"Bask while you can. The night comes quickly."</span>
-				<<case 2>><span class="wraith">"For what little comfort it's worth."</span>
-				<<case 1>><span class="wraith">"Hold it close."</span>
-			<</switch>>
+			<span class="wraith"><<switch random(1, 3)>>
+				<<case 3>>"Bask while you can. The night comes quickly."
+				<<case 2>>"For what little comfort it's worth."
+				<<case 1>>"Hold it close."
+			<</switch>></span>
 			<br><br>
 			You shiver as the haze clears around you, revealing an empty <<if $location is "forest">>clearing<<elseif $location is "moor">>field<<else>>street<</if>>.
 			<<trauma 2>><<stress 4>><<gtrauma>><<gstress>>
@@ -1058,32 +1061,32 @@
 
 <<widget "stalk_img">>
 <<if $images is 1>>
-    <br><br>
-    <div class="div_stalk">
-    <<for _i to 0; _i lt 8; _i++>>
-        <img @class="'stalk_' + _i" src="img/misc/stalk/base.png">
-    <</for>>
-    <<if $NPCList[0].distance is 0 and $NPCList[0].state isnot "pursuit" or $stalk_end is "hide">>
-        <<if $stalk_end>>
-            <img class="stalk_4" src="img/misc/stalk/pc.png">
-            <img class="stalk_5" src="img/misc/stalk/safe_npc.png">
-        <<else>>
-            <img class="stalk_4" src="img/misc/stalk/caught.png">
-        <</if>>
-    <<else>>
-        <<if $NPCList[0].distance lt 4>>
-            <<if $NPCList[0].state is "pursuit">>
-                <<set _stalk_position to 4 + $NPCList[0].distance>>
-                <img @class="'stalk_' + _stalk_position" src="img/misc/stalk/npc.png">
-                <img @class="'stalk_' + _stalk_position" src="img/misc/stalk/clothes.png">
-            <<elseif $stalk_end is "escaped">>
-            <<else>>
-                <<set _stalk_position to 4 - $NPCList[0].distance>>
-                <img @class="'stalk_' + _stalk_position" src="img/misc/stalk/npc.png">
-            <</if>>
-        <</if>>
-        <img class="stalk_4" src="img/misc/stalk/pc.png">
-    <</if>>
-    </div>
+	<br><br>
+	<div class="div_stalk">
+	<<for _i to 0; _i lt 8; _i++>>
+		<img @class="'stalk_' + _i" src="img/misc/stalk/base.png">
+	<</for>>
+	<<if $NPCList[0].distance is 0 and $NPCList[0].state isnot "pursuit" or $stalk_end is "hide">>
+		<<if $stalk_end>>
+			<img class="stalk_4" src="img/misc/stalk/pc.png">
+			<img class="stalk_5" src="img/misc/stalk/safe_npc.png">
+		<<else>>
+			<img class="stalk_4" src="img/misc/stalk/caught.png">
+		<</if>>
+	<<else>>
+		<<if $NPCList[0].distance lt 4>>
+			<<if $NPCList[0].state is "pursuit">>
+				<<set _stalk_position to 4 + $NPCList[0].distance>>
+				<img @class="'stalk_' + _stalk_position" src="img/misc/stalk/npc.png">
+				<img @class="'stalk_' + _stalk_position" src="img/misc/stalk/clothes.png">
+			<<elseif $stalk_end is "escaped">>
+			<<else>>
+				<<set _stalk_position to 4 - $NPCList[0].distance>>
+				<img @class="'stalk_' + _stalk_position" src="img/misc/stalk/npc.png">
+			<</if>>
+		<</if>>
+		<img class="stalk_4" src="img/misc/stalk/pc.png">
+	<</if>>
+	</div>
 <</if>>
 <</widget>>
\ No newline at end of file
diff --git a/game/base-combat/state.twee b/game/base-combat/state.twee
index 3260e209b1a99e34087dce0031aff3c8301de446..82a65eeb84fcdf297d411796652fbf653dfbf3a2 100644
--- a/game/base-combat/state.twee
+++ b/game/base-combat/state.twee
@@ -2,9 +2,14 @@
 <<widget "stateman">>
 	<div @class="($debugLines ? 'debugLines-stateman' : '')">
 		<<if $position isnot "stalk">>
-			<<set _looks to ($enemyno is 1? "looks" : "look")>>
-			<<set _doesntlook to ($enemyno is 1? "doesn't look" : "don't look")>>
-			<<set _is to ($enemyno is 1? "is" : "are")>>
+			<<if $fightTargets is undefined or $fightTargets.length lte 0>>
+				<<set $_enemies to $enemyno>>
+			<<else>>
+				<<set $_enemies to $fightTargets.length>>
+			<</if>>
+			<<set _looks to ($_enemies is 1? "looks" : "look")>>
+			<<set _doesntlook to ($_enemies is 1? "doesn't look" : "don't look")>>
+			<<set _is to ($_enemies is 1? "is" : "are")>>
 			<<set $_n to 0>>
 			<<if $enemyno is 1 and $enemynomax gt 1>>
 				<<for $_i to 0; $_i lt $enemynomax; $_i++>>
@@ -22,7 +27,7 @@
 			<<if $enemytype is "beast" and $monster is 0>>
 				<<set $pronoun to "i">>
 			<</if>>
-			<<if $enemyno gt 1>>
+			<<if $_enemies gt 1>>
 				<<set $pronoun to "t">>
 			<</if>>
 
@@ -62,7 +67,7 @@
 			<<elseif $enemyarousal gt 0>>
 				<span class="teal"><<He>> _looks stimulated.</span>
 			<<elseif $enemyarousal lte 0>>
-				<<if $enemyno gt 1>>
+				<<if $_enemies gt 1>>
 					<span class="green"><<He>> _looks unaroused.</span>
 				<<else>>
 					<<if $npcSub>>
diff --git a/game/base-combat/struggle.twee b/game/base-combat/struggle.twee
index 27931e4c34a84aa793064915b176bb7101080a76..6373720e8a0bb6af3412bb9c6fb4fae8a793a710 100644
--- a/game/base-combat/struggle.twee
+++ b/game/base-combat/struggle.twee
@@ -40,7 +40,7 @@
 <</widget>>
 
 <<widget "generate_struggle_creature">>
-	<<set	_slot = _args[0];
+	<<set _slot = _args[0];
 			_health = _args[1];
 			_type = _args[2] ? _args[2] : $struggle.creature
 	>>
@@ -215,7 +215,7 @@
 		</div>
 	</div>
 <</if>>
-	
+
 <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>>
 	<<if $vaginastate isnot 0 and $player.vaginaExist>>
 		<hr>
@@ -849,7 +849,7 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $com
 	<<if $feetuse is 0>>
 		Your feet are free.
 		<<set $feetaction to $feetactiondefault>>
-		  <label><span class="meek">Keep still</span> <<radiobutton "$feetaction" "rest" autocheck>></label>
+		<label><span class="meek">Keep still</span> <<radiobutton "$feetaction" "rest" autocheck>></label>
 		| <label><span class="meek">Dodge</span> <<radiobutton "$feetaction" "evade" autocheck>></label>
 		| <label><span class="meek">Plant</span> <<radiobutton "$feetaction" "plant" autocheck>></label>
 	<</if>>
@@ -1017,7 +1017,7 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $com
 
 	<!-- MOUTH -->
 	<<if $mouthaction is "rest">>
-		<!-- nothing to do. add some flavor text maybe? -->
+		<!-- nothing to do. add some flavour text maybe? -->
 	<<elseif $mouthaction is "open" and $mouthstate is "struggle">>
 		<<set $mouthactiondefault to "suck">>
 		You open your mouth wide allowing it to enter.
@@ -1192,7 +1192,7 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $com
 					<<set $struggle.warded++>>
 					<<struggleClearActions `_actionpart + '_'`>>
 				<<else>>
-					<!-- TODO: maybe add some skill and random checks, with possibilities (and corresponding flavor text) to retain the grip, or lessen it instead of outright resetting it to 0 -->
+					<!-- TODO: maybe add some skill and random checks, with possibilities (and corresponding flavour text) to retain the grip, or lessen it instead of outright resetting it to 0 -->
 					You can't maintain your grip, and <span class="red">your fingers pull away without the creature.</span>
 					<<set $struggle[_actionpart].grip to 0>>
 					<<set V[_hand + 'action'] to _actionpart + '_grasp'>>
@@ -1220,11 +1220,11 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $com
 				<</if>>
 
 			<<case "clothes">>
-		        <<effectshandsclothes>>
-		        <br>
-		        <<if _hand is "left" and ($rightaction.toString().includes("upper") or $rightaction.toString().includes("lower"))>>
-		          <<break>>
-		        <</if>>
+				<<effectshandsclothes>>
+				<br>
+				<<if _hand is "left" and ($rightaction.toString().includes("upper") or $rightaction.toString().includes("lower"))>>
+					<<break>>
+				<</if>>
 		<</switch>>
 	<</for>>
 
@@ -1286,7 +1286,12 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $com
 			<</if>>
 			<<set $struggle.done += 1>>
 			<<set $struggle.enemy[_capture_creature].location to "fled">>
-			<<set $leftaction to "rest">>
+			<<if $leftaction is "capture">>
+				<<set $leftaction to "rest">>
+			<</if>>
+			<<if $rightaction is "capture">>
+				<<set $rightaction to "rest">>
+			<</if>>
 		<<else>>
 			<span class="red">The creature squirms aside.</span><<gnet>><<prof net 1>>
 		<</if>>
@@ -1764,7 +1769,7 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $com
 				<<set $dodging -= 1>>
 				<<if $drunk gte 60>>
 					but you drunkenly stagger out of the way<<if !random(100)>> like the drunk master you are<</if>>,
-				<<elseif $feetskill gte 800 or $danceskill gte 400>>
+				<<elseif $feetskill gte 800 or currentSkillValue('danceskill') gte 400>>
 					but you dance aside,
 				<<elseif $feetskill gte 200>>
 					but you step aside,
@@ -1977,7 +1982,7 @@ and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $com
 		<span class="purple">The fabric hisses as it dissolves in the slime.</span><<set $worn.under_upper.integrity -= 30>>
 	<<elseif $struggle[_args[0]].creature is "pale slime">>
 		<span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<set $worn.under_upper.integrity -= 50>>
-	<</if>>	
+	<</if>>
 	<<if $worn.under_upper.integrity lte 0>>
 		<<integritycheck no_text>><<exposure>>
 		<<if $struggle[_args[0]].legs is "tentacles">>
diff --git a/game/base-combat/swarm-effects.twee b/game/base-combat/swarm-effects.twee
index 9bebc35aacfc224c2d27778df912bf7102ea25b1..27a04c033349ed6677614f6e4a8bc820b7865316 100644
--- a/game/base-combat/swarm-effects.twee
+++ b/game/base-combat/swarm-effects.twee
@@ -24,7 +24,7 @@
 	<div id="feetaction" @class="$combatControls + 'Control'">
 		<<feetActionInitSwarm>>
 	</div>
-	
+
 	<<if ($mouthuse is 0 and !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)))>>
 		<div id="mouthaction" @class="$combatControls + 'Control'">
 			<<mouthActionInit>>
@@ -421,7 +421,7 @@
 	<<set _feetaction[_swarmsteady + " one of the " + _swarmname] to "feetswarm">>
 <</if>>
 <<if _feetOptions is "free">>
-	<<if $water is 1 and $vorecreature is 0 and $swimmingskill gt 700 and $consensual isnot 1 and ($feettarget is "self" or $targetYourself is false or _targetnumber is 1)>>
+	<<if $water is 1 and $vorecreature is 0 and currentSkillValue('swimmingskill') gt 700 and $consensual isnot 1 and ($feettarget is "self" or $targetYourself is false or _targetnumber is 1)>>
 		<<set _feetaction["Swim to safety"] to "swim">>
 	<</if>>
 <</if>>
@@ -522,7 +522,7 @@
 			<</if>>
 
 			<<if $vorecreature is 0>>
-				<label>Rest <<radiobutton "$leftaction" "swarmrest">></label> | 
+				<label>Rest <<radiobutton "$leftaction" "swarmrest">></label> |
 			<</if>>
 			<br><br>
 		<</if>>
@@ -595,7 +595,7 @@
 				<label>_swarmsteady one of the <<swarmName>> <<radiobutton "$feetaction" "feetswarm" checked>></label> |
 			<</if>>
 
-			<<if $water is 1 and $vorecreature is 0 and $swimmingskill gt 700 and $consensual isnot 1>>
+			<<if $water is 1 and $vorecreature is 0 and currentSkillValue('swimmingskill') gt 700 and $consensual isnot 1>>
 				<label><span class="teal">Swim to safety</span> <<radiobutton "$feetaction" "swim" checked>></label> |
 			<</if>>
 
diff --git a/game/base-combat/tentacles/tentacle-adv.twee b/game/base-combat/tentacles/tentacle-adv.twee
index 3a6ab7fb35d722a8ad2cbb06ce389b663d13acbe..2c505f354997b8708902e01a2c7ac9a4002cf2f4 100644
--- a/game/base-combat/tentacles/tentacle-adv.twee
+++ b/game/base-combat/tentacles/tentacle-adv.twee
@@ -824,7 +824,7 @@ The _tentacle.fullDesc writhes between your feet.
 
 		<<if $angel gte 4 and $angelBanish gte 1>>
 			<<set _action to "leftbanish"+_tentacle.id >>
-			<<actionstentacleadvcheckbox "def" "Banish the _tentacle.fullDesc" "$leftaction" _action $leftactiondefault>>		
+			<<actionstentacleadvcheckbox "def" "Banish the _tentacle.fullDesc" "$leftaction" _action $leftactiondefault>>
 		<</if>>
 
 		<br>
@@ -874,7 +874,7 @@ The _tentacle.fullDesc writhes between your feet.
 
 		<<if $angel gte 4 and $angelBanish gte 1>>
 			<<set _action to "rightbanish"+_tentacle.id >>
-			<<actionstentacleadvcheckbox "def" "Banish the _tentacle.fullDesc" "$rightaction" _action $rightactiondefault>>		
+			<<actionstentacleadvcheckbox "def" "Banish the _tentacle.fullDesc" "$rightaction" _action $rightactiondefault>>
 		<</if>>
 
 		<br>
@@ -1729,7 +1729,7 @@ The _tentacle.fullDesc writhes between your feet.
 		You <<peniletext>> rub the tip of the _tentacle.fullDesc with your <<penis>>.
 		<<if $penileskill gte (800 - ($rng * 10))>>
 			<span class="lblue">Slimy _fluid erupts from the tip.</span>
-			<<set $player.bodyliquid.penis.goo += 1>><<set _tentacle.tentaclehealth -= 3>><<penileejacstat>><<ejacstat>>
+			<<set $player.bodyliquid.penis.goo += 1>><<set _tentacle.tentaclehealth -= 3>>
 			<<if $abomination is 1>>
 				<<set $enemyarousal += 6>>
 			<</if>>
@@ -1747,7 +1747,7 @@ The _tentacle.fullDesc writhes between your feet.
 		You <<peniletext>> push back against the _tentacle.fullDesc engulfing your <<penis>>.
 		<<if $penileskill gte (800 - ($rng * 10))>>
 			<span class="lblue">Slimy _fluid erupts from the tip, covering your groin.</span>
-			<<set _tentacle.tentaclehealth -= 3>><<set $player.bodyliquid.penis.goo += 1>><<penileejacstat>><<ejacstat>>
+			<<set _tentacle.tentaclehealth -= 3>><<set $player.bodyliquid.penis.goo += 1>>
 			<<if $abomination is 1>>
 				<<set $enemyarousal += 6>>
 			<</if>>
diff --git a/game/base-combat/tentacles/tentacle-images.twee b/game/base-combat/tentacles/tentacle-images.twee
index e4856790b1506166f557fdff367729b2c06d6aff..07d67e07d20aa897332ac9aa067f3483475b0f07 100644
--- a/game/base-combat/tentacles/tentacle-images.twee
+++ b/game/base-combat/tentacles/tentacle-images.twee
@@ -267,5 +267,5 @@
 <<widget "getTentacleColour">>
 <<if $tentacleColour>>
 	<<set _tentacleColour to $tentacleColour>>
-<</if>>	
+<</if>>
 <</widget>>
\ No newline at end of file
diff --git a/game/base-combat/tentacles/tentacles.twee b/game/base-combat/tentacles/tentacles.twee
index f93e36333317767a5159ac548eba7a1acb420b82..599413c2f536524a9ac836831462824d1a6c50cd 100644
--- a/game/base-combat/tentacles/tentacles.twee
+++ b/game/base-combat/tentacles/tentacles.twee
@@ -103,18 +103,18 @@
 		<<set _tentacledata to _tentacledescs[_i]>>
 
 		<<set _tentacle to {
-            "desc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc,
-            "fullDesc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc +  " " + _tentacleType,
-            "type": _tentacleType,
-            "tentaclehealth": _args[1],
-            "tentaclehealthstart": _args[1],
-            "shaft": 0,
-            "head": 0,
-            "id": "tentacle"+_i,
-            "baby": (_args[3] and (!_args[4] or _args[4] is "baby") and _tentacledata.baby isnot 0 ? _args[3] + " " + _tentacledata.baby : _tentacledata.baby ),
-            "babychance": 400,
-            "size": _tentacledata.size
-        }>>
+			"desc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc,
+			"fullDesc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc + " " + _tentacleType,
+			"type": _tentacleType,
+			"tentaclehealth": _args[1],
+			"tentaclehealthstart": _args[1],
+			"shaft": 0,
+			"head": 0,
+			"id": "tentacle"+_i,
+			"baby": (_args[3] and (!_args[4] or _args[4] is "baby") and _tentacledata.baby isnot 0 ? _args[3] + " " + _tentacledata.baby : _tentacledata.baby ),
+			"babychance": 400,
+			"size": _tentacledata.size
+		}>>
 
 		<<set $tentacles[_i] to clone(_tentacle)>>
 	<</for>>
diff --git a/game/base-combat/tutorial.twee b/game/base-combat/tutorial.twee
index 37c6f29319366ffb68ef466e96bceedb8e6bab16..c3898f3ac8ed1ff7e016645db830245371558eb1 100644
--- a/game/base-combat/tutorial.twee
+++ b/game/base-combat/tutorial.twee
@@ -138,7 +138,6 @@ __Combat Tutorial__
 <<if $tutorialExit is undefined>><<set $tutorialExit to "Domus Street">><</if>>
 You take <<his>> arm and hoist yourself up and against <<him>>, forcing <<him>> to catch you in an embrace to stop you falling. You look <<him>> in the eyes. "I feel safe now," you say.
 <<promiscuity1>>
-<br><br>
 <<He>> blushes. "I-I'm glad you're alright," <<he>> says as <<he>> slowly withdraws <<his>> arms from you, making sure you're steady. <<He>> glances around. "Here," <<he>> hands you a small cylinder. "Be discreet. It's not legal, and there's only enough for one use."
 <<gspraymax>>
 <br><br>
diff --git a/game/base-combat/widgets.twee b/game/base-combat/widgets.twee
index 45adf79bb88b3580c2f1dfaf92e20ead5969711f..b1bfb1074caba31458e8ccf9e1766de3ea69484a 100644
--- a/game/base-combat/widgets.twee
+++ b/game/base-combat/widgets.twee
@@ -35,6 +35,7 @@
 		<</if>>
 
 		<<if $player.virginity.temple is true and (_args[1] is "vaginal" or _args[1] is "penile") and $templePromised isnot _args[0]>>
+			<<set $virginityProtected to false>>
 			<<set $player.virginity.temple to false>>
 		<</if>>
 	<</if>>
@@ -60,7 +61,12 @@
 
 <<widget "takeKissVirginity">>
 <<if $player.virginity.kiss is true>>
-	<<switch _args[1]>>
+	<<if _args[0].type is "plant" and $backgroundTraits.includes("plantlover") and $nectar_timer lte 14>>
+		<<set $_kissType to "addiction">>
+	<<else>>
+		<<set $_kissType to _args[1]>>
+	<</if>>
+	<<switch $_kissType>>
 		<<case "loveInterest">>
 			<span class="lewd">You're happy your first kiss went to a love interest.</span><<arousal 3000>><<stress -12>><<trauma -12>><<ggarousal>><<llstress>>
 			<<if (!$wraith or $wraith.mimic isnot _args[0])>><<earnFeat "First Kiss">><</if>>
@@ -68,6 +74,8 @@
 			<span class="lewd">You're happy your first kiss was taken in such a romantic way.</span><<arousal 1500>><<stress -6>><<trauma -6>><<garousal>><<lstress>>
 		<<case "rape">>
 			<span class="red">They stole your first kiss. You feel horrible.</span><<stress 40>><<gggstress>>
+		<<case "loveRape">>
+			<span class="red">You didn't want your first kiss with <<nnpc_him _args[0]>> to be like this.</span><<stress 40>><<gggstress>>
 		<<case "tentacle">>
 			<span class="lewd">You wonder what others would say about giving a tentacle your first kiss, if they would even believe you.</span><<arousal 3000>>
 		<<case "addiction">>
@@ -121,8 +129,12 @@
 	<<default>>
 		<<set _loveInterest to false>>
 <</switch>>
-<<if _loveInterest is true and ($consensual is 1 or _args[2])>>
-	<<takeKissVirginity _args[0] "loveInterest">>
+<<if _loveInterest is true>>
+	<<if $consensual is 1 or _args[2]>>
+		<<takeKissVirginity _args[0] "loveInterest">>
+	<<else>>
+		<<takeKissVirginity _args[0] "loveRape">>
+	<</if>>
 <<elseif ($consensual is 1 or _args[2])>>
 	<<takeKissVirginity _args[0] "consensual">>
 <<else>>
@@ -130,9 +142,7 @@
 <</if>>
 <</widget>>
 
-/* Does not currently support named NPCs having their virginity taken by something other than the player. 
- * Argument 0 is the npc, argument 1 is their virginity.
-*/
+/* Argument 0 is the npc, argument 1 is their virginity. */
 <<widget "takeNPCVirginity">>
 	<<set $_npcId to _args[0]>>
 	<<set $_vType to _args[1]>>
@@ -142,12 +152,12 @@
 		<<set $_straponvirginityIgnore to ($_vType is "penile" and npcHasStrapon($NPCList.findIndex(npc => npc.fullDescription === $_npcId)))>>
 	<<elseif $_npcId isnot undefined>>
 		<<set $_npc to $NPCList[$_npcId]>>
-    	<<set $_straponvirginityIgnore to ($_vType is "penile" and npcHasStrapon($_npcId))>>
+		<<set $_straponvirginityIgnore to ($_vType is "penile" and npcHasStrapon($_npcId))>>
 	<</if>>
 
-    <<if $_npc and $_vType and $_npc.virginity and $_npc.virginity[$_vType] and (!$wraith or $wraith.mimic isnot $_npc.nam) and !$_straponvirginityIgnore>>
-        /* note: virginity must be exactly equal to true; only true means that they still have their virginity. */
-        <<if $_npc.virginity[$_vType] is true>>
+	<<if $_npc and $_vType and $_npc.virginity and $_npc.virginity[$_vType] and (!$wraith or $wraith.mimic isnot $_npc.nam) and !$_straponvirginityIgnore>>
+		/* note: virginity must be exactly equal to true; only true means that they still have their virginity. */
+		<<if $_npc.virginity[$_vType] is true>>
 			<<set $_npc.virginity[$_vType] to "player">>
 			<<switch $_vType>>
 				<<case "vaginal">>
@@ -189,7 +199,7 @@
 
 			<<run $virginTaken[$_vType].pushUnique($_npc.fullDescription)>>
 			<<set $_i to $NPCNameList.indexOf($_npc.fullDescription)>>
-   			<<if $_i isnot -1>>
+			<<if $_i isnot -1>>
 				<<if $_npc.fullDescription is "Sydney" and ($_vType is "vaginal" or $_vType is "penile")>>
 					<<earnFeat "Sydney the Pure Hearted">>
 				<</if>>
@@ -199,6 +209,48 @@
 	<</if>>
 <</widget>>
 
+<<widget "NPCVirginityTakenByOther">>
+	<!-- Argument 0 is the npc, argument1 is the virginity, argument 2 is the thing taking the virginity -->
+	<!-- example usage: <<NPCVirginityTakenByOther "Robin" "vaginal" $NPCList[0].fullDescription>> -->
+	<!-- example usage: <<NPCVirginityTakenByOther 0 "anal" $tentacles[$tentacleindex].fullDesc>> -->
+	<<set $_npcId to _args[0]>>
+	<<set $_vType to _args[1]>>
+	<<set $_takerDesc to _args[2]>>
+	<<set _npcVirgin to {}>>
+	<!-- if the first argument is a name, find which npc has that name, else assume it is an index. -->
+	<<if typeof $_npcId is "string">>
+		<<set $_npc to $NPCList.find(npc => npc.fullDescription === $_npcId)>>
+		<<if $_npc is undefined>>
+			<<set $_npc to $NPCName.find(npc => npc.description === $_npcId)>>
+			<<set $_isNamedOnly to ($_npc isnot undefined)>>
+		<</if>>
+	<<elseif $_npcId isnot undefined>>
+		<<set $_npc to $NPCList[$_npcId]>>
+	<</if>>
+
+	<<if $_npc and $_npc.penisdesc && $_npc.penisdesc.includes("strap-on")>>
+		<<set $_straponvirginityIgnore to ($_vType is "penile")>>
+	<</if>>
+
+	<<if $_npc and $_vType and $_npc.virginity and $_npc.virginity[$_vType] is true>>
+		<!-- note: virginity must be exactly equal to true; only true means that they still have their virginity. -->
+		<!-- note: NTR is never going to be a thing, but we record this bc it might be useful to remember HOW an npc's virginity was lost, and to what. beast/tentacle/etc -->
+		<<set $_npc.virginity[$_vType] to $_takerDesc>>
+
+		<!-- if the npc is named, this will find and update their entry in $NPCName -->
+		<<if !$_isNamedOnly>>
+			<<set $_i to $NPCNameList.indexOf($_npc.fullDescription)>>
+			<<if $_i isnot -1>>
+				<<set $NPCName[$_i].virginity to $_npc.virginity>>
+			<</if>>
+		<</if>>
+
+		<!-- temporary variables to use for scenes. -->
+		<<set _npcVirgin[$_vType] to true>>
+	<</if>>
+<</widget>>
+
+
 <<widget "setupMidOrgasm">>
 <<if $setupMidOrgasm isnot undefined and $enemyarousal gte $enemyarousalmax>>
 	<<set _midOrgasm to false>>
@@ -219,43 +271,43 @@
 <</widget>>
 
 <<widget "combatTrainAdvance">>/*For use after a beast/monster in a train is finished with their turn. Loads next in line into $NPCList[0]. Loads them all back into $NPCList if at the end of the train.*/
-<<clearnpc>>
-<<if $combatTrain.length gt 0>>
-	<<set $combatTrain.length-->>
-	<<set $combatTrain.active += 1>>
-	<<loadNPC 0 `"beast_" + $combatTrain.active`>>
-	<<if $NPCList[0].monster is "monster">>
-		<<set $monster to 1>>
+	<<clearnpc>>
+	<<if $combatTrain.length gt 0>>
+		<<set $combatTrain.length-->>
+		<<set $combatTrain.active += 1>>
+		<<loadNPC 0 `"beast_" + $combatTrain.active`>>
+		<<if $NPCList[0].monster is "monster">>
+			<<set $monster to 1>>
+		<<else>>
+			<<set $monster to 0>>
+		<</if>>
 	<<else>>
-		<<set $monster to 0>>
+		<<for _e_n to 0; _e_n lt $combatTrain.total_length + 1; _e_n++>>
+			<<loadNPC _e_n `"beast_" + _e_n`>>
+			<<clearNPC `"beast_" + _e_n`>>
+		<</for>>
 	<</if>>
-<<else>>
-	<<for _e_n to 0; _e_n lt $combatTrain.total_length + 1; _e_n++>>
-		<<loadNPC _e_n `"beast_" + _e_n`>>
-		<<clearNPC `"beast_" + _e_n`>>
-	<</for>>
-<</if>>
-<<set $active_enemy to 0>>
+	<<set $active_enemy to 0>>
 <</widget>>
 
 <<widget "beastTrainGenerate">>/*Saves all beasts/monsters in $NPCList, then loads the first into slot 0.*/
-<<set _enemyno to $enemyno - 1>>
-<<set $combatTrain to {
-	length: _enemyno,
-	total_length: _enemyno,
-	active: 0,
-	pronouns: [],
-	monsters: [],
-	beastTypes: []
-}>>
-<<for _e_n to 0; _e_n lt $enemyno; _e_n++>>
-	<<saveNPC _e_n `"beast_" + _e_n`>>
-	<<set $combatTrain.beastTypes.push($NPCList[_e_n].type)>>
-	<<set $combatTrain.pronouns.push($NPCList[_e_n].pronoun)>>
-	<<set $combatTrain.monsters.push($NPCList[_e_n].monster)>>
-<</for>>
-<<clearnpc>>
-<<loadNPC 0 beast_0>>
+	<<set _enemyno to $enemyno - 1>>
+	<<set $combatTrain to {
+		length: _enemyno,
+		total_length: _enemyno,
+		active: 0,
+		pronouns: [],
+		monsters: [],
+		beastTypes: []
+	}>>
+	<<for _e_n to 0; _e_n lt $enemyno; _e_n++>>
+		<<saveNPC _e_n `"beast_" + _e_n`>>
+		<<set $combatTrain.beastTypes.push($NPCList[_e_n].type)>>
+		<<set $combatTrain.pronouns.push($NPCList[_e_n].pronoun)>>
+		<<set $combatTrain.monsters.push($NPCList[_e_n].monster)>>
+	<</for>>
+	<<clearnpc>>
+	<<loadNPC 0 beast_0>>
 <</widget>>
 
 
@@ -276,27 +328,27 @@
 /* Useful when you know one of them is in a given position by looking at the PC, but aren't sure which */
 <<widget "selectNpcWithPartInPosition">>
 	<<if _args[0] and _args[1]>>
+		<<set $_part to _args[0]>>
+		<<set $_position to _args[1]>>
 		<<unset _npc>>
 		<<for _j = 0; _j lt $enemynomax; _j++>>
-			<<if _args[0] is "hand">>
-				<<if $NPCList[_j]["lefthand"] is _args[1]>>
-					<<personselect _j>>
-					<<set _npc to $NPCList[_j]>>
-					<<break>>
-				<</if>>
-				<<if $NPCList[_j]["righthand"] is _args[1]>>
-					<<personselect _j>>
-					<<set _npc to $NPCList[_j]>>
-					<<break>>
-				<</if>>
-			<<else>>
-				<<if $NPCList[_j][_args[0]] is _args[1]>>
-					<<personselect _j>>
-					<<set _npc to $NPCList[_j]>>
-					<<break>>
-				<</if>>
+			<<if $_part is "hand" and ($NPCList[_j]["lefthand"] is $_position or $NPCList[_j]["righthand"] is $_position)>>
+				<<personselect _j>>
+				<<set _npc to $NPCList[_j]>>
+				<<break>>
+			<<elseif $NPCList[_j][$_part] is $_position>>
+				<<personselect _j>>
+				<<set _npc to $NPCList[_j]>>
+				<<break>>
 			<</if>>
 		<</for>>
+		<<if _index isnot undefined>>
+			<<personselect _j>>
+		<<else>>
+			<!-- Should we throw an error? If we suspect an NPC part is in this position and don't find one, is that a bug? -->
+		<</if>>
+	<<else>>
+		<<run throw new Error("selectNpcWithPartInPosition used with incorrect number of variables (or one is undefined)")>>
 	<</if>>
 <</widget>>
 
@@ -312,25 +364,17 @@
 		<</for>>
 	<</if>>
 <</widget>>
+
 <<widget "cover_end">>
-<<if $leftarm is "vagina">>
-	<<set $vaginause to 0>>
-<<elseif $leftarm is "coverpenis">>
-	<<set $penisuse to 0>>
-<<elseif $leftarm is "anus">>
-	<<set $anususe to 0>>
-<<elseif $leftarm is "face">>
-	<<set $face to 0>>
-<</if>>
-<<if $rightarm is "vagina">>
-	<<set $vaginause to 0>>
-<<elseif $rightarm is "coverpenis">>
-	<<set $penisuse to 0>>
-<<elseif $rightarm is "anus">>
-	<<set $anususe to 0>>
-<<elseif $rightarm is "face">>
-	<<set $face to 0>>
-<</if>>
+	<<if $leftarm is "vagina" or $rightarm is "vagina">>
+		<<set $vaginause to 0>>
+	<<elseif $leftarm is "coverpenis" or $rightarm is "coverpenis">>
+		<<set $penisuse to 0>>
+	<<elseif $leftarm is "anus" or $rightarm is "anus">>
+		<<set $anususe to 0>>
+	<<elseif $leftarm is "face" or $rightarm is "face">>
+		<<set $face to 0>>
+	<</if>>
 <</widget>>
 
 /* args[0] - 1-6 for npc, args[1] for type */
@@ -355,11 +399,11 @@
 
 /* args[0] - 1-6 for npc */
 <<widget "removeCondom">>
-<<if _args[0]>>
-	<<set $NPCList[_args[0]].condom to false>>
-<<else>>
-	<<set $player.condom to false>>
-<</if>>
+	<<if _args[0]>>
+		<<set $NPCList[_args[0]].condom to false>>
+	<<else>>
+		<<set $player.condom to false>>
+	<</if>>
 <</widget>>
 
 <<widget "pickupSexToy">>
diff --git a/game/base-debug/clothesTesting.twee b/game/base-debug/clothesTesting.twee
index 0d13dd14f969483964ce46c6ea6e92a67a7fcd58..05eada99d21afb51618e0f80e97aea93f32dc1ec 100644
--- a/game/base-debug/clothesTesting.twee
+++ b/game/base-debug/clothesTesting.twee
@@ -528,7 +528,7 @@ Yellowish:
 <br>
 <<set _hairTypeByName to {"Default": "default", "Braid left": "braid left", "Braid right": "braid right", "Flat ponytail": "flat ponytail",
 "Loose": "loose", "Messy": "messy", "Pigtails": "pigtails", "Ponytail": "ponytail", "Short": "short", "Side tail left": "side tail left",
-"Side tail right": "side tail right", "Straight": "straight", "Swept left": "swept left", "Twin braids": "twin braids", "Twintails": "twintails", "Curl": "curl", "Neat": "neat", "Dreads": "dreads"}>>
+"Side tail right": "side tail right", "Straight": "straight", "Swept left": "swept left", "Twin braids": "twin braids", "Twintails": "twintails", "Curl": "curl", "Neat": "neat", "Dreads": "dreads", "Short spiky": "short spiky", "Bubble tails": "bubble tails", "Curly side up": "curly side up", "Heart braid": "heart braid", "Loop braid": "loop braid", "Ruffled": "ruffled"}>>
 <<set _keys to Object.keys(_hairTypeByName)>>
 <<for _i to 0; _i lt _keys.length; _i++>>
 	<label>
@@ -541,7 +541,7 @@ Yellowish:
 <span class="gold">Fringe Type</span>
 <br>
 <<set _fringeTypeByName to {"Default": "default", "Thin flaps": "thin flaps", "Wide flaps": "wide flaps", "Hime": "hime", "Loose": "loose", "Messy": "messy", "Overgrown": "overgrown",
-"Ringlets": "ringlets", "Split": "split", "Straight": "straight", "Swept left": "swept left", "Back": "back", "Parted": "parted", "Flat": "flat", "Quiff": "quiff", "Straight curl": "straight curl", "Ringlet curl": "ringlet curl", "Curtain": "curtain"}>>
+"Ringlets": "ringlets", "Split": "split", "Straight": "straight", "Swept left": "swept left", "Back": "back", "Parted": "parted", "Flat": "flat", "Quiff": "quiff", "Straight curl": "straight curl", "Ringlet curl": "ringlet curl", "Curtain": "curtain", "Trident": "trident"}>>
 <<set _keys to Object.keys(_fringeTypeByName)>>
 <<for _i to 0; _i lt _keys.length; _i++>>
 	<label>
diff --git a/game/base-debug/debug-events.twee b/game/base-debug/debug-events.twee
index ff5b7b28d1be7c31a7d42ee6cc4e8a35f08491bf..efbe402a82dd93e096e56f24058a375b6cdccb14 100644
--- a/game/base-debug/debug-events.twee
+++ b/game/base-debug/debug-events.twee
@@ -2,7 +2,7 @@
 
 <!-- Any widget with the goal to bug-purge events goes here.
 	Since I didn't find an appropriate file to put this in, I decided to make my own.
-	Feel free to delete this coment at leisure. -->
+	Feel free to delete this comment at leisure. -->
 <<widget "checkEventNPC">>
 	<<if (EventSystem.IsSlotTaken(_args[0]) and !EventSystem.Disable) or $enemynomax gte 6 or $enemyno gte 6>>
 		<<set $endeventerror to $lastgenerated>>
@@ -14,8 +14,8 @@
 
 <<widget "eventExtraInfo">>
 <!-- Setup useful variables -->
-<<set $_passages = (V.event is undefined 
-	? [] 
+<<set $_passages = (V.event is undefined
+	? []
 	: V.event.buffer.reduce((prev, cur) => {
 		prev.pushUnique(cur.area[0]);
 		return prev;
@@ -79,7 +79,7 @@ $enemyno NPC<<if $enemyno gt 1>>s are<<else>> is<</if>> currently active. Max: $
 	<br>Extra debugging:<br>
 	<<for $_i to 0; $_i lt $event.buffer.length; $_i++>>
 		<<set $_eventNPC to $event.buffer[$_i]>>
-		<<print ensure($NPCList[$_eventNPC.slot]?.fullDescription, "No description.")>><br>
+		<<print ($NPCList[$_eventNPC.slot] || {}).fullDescription || "No description.">><br>
 		Defined in passage <<print $_eventNPC.area[0]>>, at <<ampm `Math.floor($_eventNPC.time / 60)` `$_eventNPC.time % 60`>>.<br>
 		<<if $_eventNPC.area.length gt 1>>
 			Widget Stack:
@@ -138,5 +138,5 @@ $enemyno NPC<<if $enemyno gt 1>>s are<<else>> is<</if>> currently active. Max: $
 	<span class="rainbow"><<button "More Event Info">>
 		<<overlayReplace "eventExtraInfo">>
 	<</button>></span>
-<</if>> 
+<</if>>
 <</widget>> -->
\ No newline at end of file
diff --git a/game/base-debug/debug.twee b/game/base-debug/debug.twee
index b03c5669c0dce15def52e94faaa402d9e60e79ec..d5ea9ce29461e713c8a35271fb1588f4107c546b 100644
--- a/game/base-debug/debug.twee
+++ b/game/base-debug/debug.twee
@@ -189,7 +189,7 @@
 		<<for _index = 0; _index < _event_list[_args[0]].length; _index++>>
 			<<if _event_list[_args[0]][_index].text_only != undefined>>
 				<<for _c = 0; _event_list[_args[0]][_index].text_only[_c] == '\n'; _c++>><br name="#"><</for>>
-				<<if _c  < _event_list[_args[0]][_index].text_only.length>>
+				<<if _c < _event_list[_args[0]][_index].text_only.length>>
 					<div name="#" @id="_args[0]+'-'+_index">
 						<<print _event_list[_args[0]][_index].text_only>>
 					</div>
diff --git a/game/base-debug/sceneViewer.twee b/game/base-debug/sceneViewer.twee
index 6be8e2db632f33b44d642c00e84034949bf81768..49654a2a587485f3b879c4e08c145a0c5252fd72 100644
--- a/game/base-debug/sceneViewer.twee
+++ b/game/base-debug/sceneViewer.twee
@@ -80,13 +80,14 @@ End of '<<print $replayScene.name>>' scene.
 
 /*Scenes when player viewing can be tracked*/
 <<widget "seenPassageChecks">>
+<<set $_robin to statusCheck("Robin")>>
 <<if $scenePassages is undefined>>
 	<<set $scenePassages to []>>
 <</if>>
 <<if $NPCName[$NPCNameList.indexOf('Avery')].init is 1>>
 	<<run $scenePassages.pushUnique("Park Lichen")>>
 <</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].init is 1>>
+<<if $_robin.init is 1>>
 	<<run $scenePassages.pushUnique("Robin Intro")>>
 <</if>>
 <<if $bun_value gte 15000>>
@@ -108,24 +109,18 @@ End of '<<print $replayScene.name>>' scene.
 <<if $halloween_kylar_proposed>>
 	<<run $scenePassages.pushUnique("halloweenkylar")>>
 <</if>>
-<<if $farm_stage gt 1>>
-	<<run $scenePassages.pushUnique("AlexFarmIntro")>>
-<</if>>
-<<if $farm_stage gte 3>>
-	<<run $scenePassages.pushUnique("AlexFarmWorkStage3")>>
-<</if>>
-<<if $farm_stage gte 4>>
-	<<run $scenePassages.pushUnique("AlexFarmWorkStage4")>>
-<</if>>
-<<if $farm_stage gte 5>>
-	<<run $scenePassages.pushUnique("AlexFarmWorkStage5")>>
-<</if>>
-<<if $farm_stage gte 6>>
-	<<run $scenePassages.pushUnique("AlexFarmWorkStage6")>>
-<</if>>
-<<if $farm is undefined>>
-<<elseif $farm.milking is undefined>>
-<<elseif $farm.milking.alexNightEvent is true>>
+<!-- Intentional breakless design for this switch.
+	Example: If $farm_stage is 4, it will run cases 4, 3 and 2. -->
+<<run
+	switch (Math.clamp($farm_stage, 0, 6)) {
+		case 6: $scenePassages.pushUnique("AlexFarmWorkStage6");
+		case 5: $scenePassages.pushUnique("AlexFarmWorkStage5");
+		case 4: $scenePassages.pushUnique("AlexFarmWorkStage4");
+		case 3: $scenePassages.pushUnique("AlexFarmWorkStage3");
+		case 2: $scenePassages.pushUnique("AlexFarmIntro");
+	}
+>>
+<<if $farm and $farm.milking and $farm.milking.alexNightEvent>>
 	<<run $scenePassages.pushUnique("AlexFarmSelfMilkingCaught")>>
 <</if>>
 <<if $bullyevent gt 0>>
@@ -140,26 +135,20 @@ End of '<<print $replayScene.name>>' scene.
 <<if $bullyevent gt 3>>
 	<<run $scenePassages.pushUnique("WhitneySchoolBully4")>>
 <</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].cdquest gte 1>>
-	<<run $scenePassages.pushUnique("RobinCrossdressing1")>>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].cdquest gte 2>>
-	<<run $scenePassages.pushUnique("RobinCrossdressing2")>>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].cdquest gte 3>>
-	<<run $scenePassages.pushUnique("RobinCrossdressing3")>>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].cdquest gte 4>>
-	<<run $scenePassages.pushUnique("RobinCrossdressing4")>>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].cdquest gte 5>>
-	<<run $scenePassages.pushUnique("RobinCrossdressing5")>>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].cdquest gte 6>>
-	<<run $scenePassages.pushUnique("RobinCrossdressing6")>>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf('Robin')].cdquest gte 6>>
-	<<run $scenePassages.pushUnique("RobinCrossdressing6I")>>
+<!-- Intentional breakless design for this switch.
+	Example: If $_robin.cdquest is 3, it will run cases 3, 2 and 1. -->
+<<run
+	switch (Math.clamp($_robin.cdquest, 0, 6)) {
+		case 6: $scenePassages.pushUnique("RobinCrossdressing6", "RobinCrossdressing6I");
+		case 5: $scenePassages.pushUnique("RobinCrossdressing5");
+		case 4: $scenePassages.pushUnique("RobinCrossdressing4");
+		case 3: $scenePassages.pushUnique("RobinCrossdressing3");
+		case 2: $scenePassages.pushUnique("RobinCrossdressing2");
+		case 1: $scenePassages.pushUnique("RobinCrossdressing1");
+	}
+>>
+<<if $robinfirstrentfight is 1>>
+	<<run $scenePassages.pushUnique("RentFirstRobinFight")>>
 <</if>>
 
 <</widget>>
@@ -379,7 +368,14 @@ Be aware that many objects will be restored for you, including player, worn, car
 			/* TODO: update this when we figure out how much time the above passage is meant to take */
 			manualVariableChanges:"<<set $NPCName[$NPCNameList.indexOf(\"Robin\")].crossdress to 6>><<set $weekday to 1>><<set $hour to 12>><<set $minute to 0>><<set $time to 720>>",
 			unlocked: $scenePassages.includes("RobinCrossdressing6I")
-		},	
+		},
+		"RentFirstRobinFight":{
+			name:"Rent First Robin Fight",
+			startPassage:"Rent First Robin SV",
+			passages:["Rent Pay","Rent Seduce","Rent Refuse","Rent First Robin Fight","Rent First Robin Fight Finish"],
+			manualVariableChanges:"<<set $robinpaid to 1>><<set $robinromance to 1>><<set $bus to \"home\">><<set $robinfirstrentfight to 0>><<set $baileydefeatedchain to 3>><<unset $baileyReunionScene>><<set $renttime to 0>><<set $robinmissing to 0>><<set $home_gone to 0>>",
+			unlocked: $scenePassages.includes("RentFirstRobinFight")
+		},
 	}>>
 <</if>>
 <</widget>>
@@ -413,7 +409,7 @@ Be aware that many objects will be restored for you, including player, worn, car
 <</if>>
 <<set _keys to Object.keys(_scenes)>>
 <<set _keys to _keys.sort()>>
-<<set _scenesAvaliable to _keys.length gt 0>>
+<<set _scenesAvailable to _keys.length gt 0>>
 <<if _listPage is undefined>>
 	<<set _listPage to 1>>
 <</if>>
@@ -424,7 +420,7 @@ Be aware that many objects will be restored for you, including player, worn, car
 <</widget>>
 
 <<widget "scenesViewer">>
-<<if _scenesAvaliable>>
+<<if _scenesAvailable>>
 	<<for _i to _indexStart; _i lt _indexEnd; _i++>>
 		<<set _item to _scenes[_keys[_i]]>>
 		<<if _item.unlocked is false and $debug is 0>>
diff --git a/game/base-debug/scoped-var-test.twee b/game/base-debug/scoped-var-test.twee
index 2db1477b35f74c363d0479cccabdfeb68ed9999a..f207926198cf70f817ff75927bd5b6627ea4b6d3 100644
--- a/game/base-debug/scoped-var-test.twee
+++ b/game/base-debug/scoped-var-test.twee
@@ -51,15 +51,15 @@ After widget is invoked:<<testScopedVar>>
 > <<GL>>val2 = $_val2
 > <<GL>>val3 = $_val3
 <<widget "rangeScopedTest">>
-  <<set _obj = { foo: {one: 1, two: 2}, bar: {fee: 'fee', fie: 'fie'}, biz: {foe: 'foe', thum: 'thum'} }>>
-  <<for $_key, $_val range _obj>>
-	Parent before: <<GL>>key = $_key , <<GL>>val = <<-JSON.stringify($_val)>>
-	<br>
-	<<rangeScopedTestInner $_key $_val>>
-	<br>
-	Parent after: <<GL>>key = $_key , <<GL>>val = <<-JSON.stringify($_val)>>
-	<br>
-  <</for>>
+	<<set _obj = { foo: {one: 1, two: 2}, bar: {fee: 'fee', fie: 'fie'}, biz: {foe: 'foe', thum: 'thum'} }>>
+	<<for $_key, $_val range _obj>>
+		Parent before: <<GL>>key = $_key , <<GL>>val = <<-JSON.stringify($_val)>>
+		<br>
+		<<rangeScopedTestInner $_key $_val>>
+		<br>
+		Parent after: <<GL>>key = $_key , <<GL>>val = <<-JSON.stringify($_val)>>
+		<br>
+	<</for>>
 <</widget>>
 <<widget "rangeScopedTestInner">>
 > Before loop: <<GL>>key = $_key, <<GL>>val = $_val
diff --git a/game/base-debug/test encounters.twee b/game/base-debug/test encounters.twee
index f5cdc02eaf3b45340b58bb9b4e60c561547b2bb7..2cb1c77ad1c603e12d66e0bef026b26a588384c5 100644
--- a/game/base-debug/test encounters.twee	
+++ b/game/base-debug/test encounters.twee	
@@ -260,19 +260,19 @@ PenActiv: <span class="gold">$NPCList[_x].penis</span> VagActiv: <span class="go
 	PRONOUN: <span @class="_pColor"><<print _nnpc.pronoun.toUpperCase()>></span> |
 	GENDER: <span @class="_gColor"><<print _nnpc.gender.toUpperCase()>></span>
 	<br>
-	Penis Size: <span class="gold">_nnpc.penissize</span>,   Desc: <span class="gold">_nnpc.penisdesc</span>,
+	Penis Size: <span class="gold">_nnpc.penissize</span>, Desc: <span class="gold">_nnpc.penisdesc</span>,
 	State: <span @class="_nnpc.penis is 'none' ? 'red' : 'gold'">_nnpc.penis</span>
 	<br>
 	Breast Size: <span class="gold">_nnpc.breastsize</span>, Desc: <span class="gold">_nnpc.breastsdesc</span>
 	<br>
-	TYPE: <span class="blue"><<if _nnpc.adult>>Adult<<elseif _nnpc.teen>>Teen<<else>>???<</if>></span> 
+	TYPE: <span class="blue"><<if _nnpc.adult>>Adult<<elseif _nnpc.teen>>Teen<<else>>???<</if>></span>
 	| INSECURITY: <span class="red">_nnpc.insecurity</span>
 	<br>
-	  TRUST:  <span class="gold">_nnpc.trust</span>
-	| LOVE:   <span class="gold">_nnpc.love</span>
-	| DOM:    <span class="gold">_nnpc.dom</span>
-	| LUST:   <span class="gold">_nnpc.lust</span>
-	| RAGE:   <span class="gold">_nnpc.rage</span>
+	TRUST:	<span class="gold">_nnpc.trust</span>
+	| LOVE:		<span class="gold">_nnpc.love</span>
+	| DOM:		<span class="gold">_nnpc.dom</span>
+	| LUST:		<span class="gold">_nnpc.lust</span>
+	| RAGE:		<span class="gold">_nnpc.rage</span>
 	| TRAUMA: <span class="gold">_nnpc.trauma</span>
 	<br>
 	STATE: _nnpc.state
@@ -858,11 +858,11 @@ How do you respond?
 				The tentacles drop lifelessly to the ground, and sublimate into a pink mist.
 			<<elseif $wraith.gen is "arms">>
 				Its extra arms fold back in.
-			<</if>> 
+			<</if>>
 			Its head snaps back, and it dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">Worry not, we'll meet again soon.</span>"
 			<br><br>
 			<<tearful>> you sit against you bed, wondering if what just happened was real.
-			<<set $wraith.defeated ++>>
+			<<set $wraith.defeated++>>
 		<<else>>
 			<<ejaculation>>
 			With a bright flash, it vanishes. You feel lewd energy linger in the air, and its laughs echo between your ears. "<span class="wraith">Worry not, we'll meet again soon.</span>"
@@ -972,6 +972,10 @@ How do you respond?
 <<link [[Back home|Bedroom]]>><</link>>
 
 :: Possessed Fight Test
+<<generateWraith>><<endevent>>
+<<if !$wraith.will>>
+	<<set $wraith.will to random(1300, 1700)>>
+<</if>>
 <br>
 You feel a tap on your shoulder. You turn around. Nothing is there. You turn back.
 <br><br>
@@ -1016,13 +1020,13 @@ You open your mouth to scream, but it is already inside you.
 <<actionsman>>
 
 <<if $enemyhealth lte 0>>
-	<span id="next"><<link [[HEALTH|Possessed Fight Finish]]>><</link>></span><<nexttext>>
+	<span id="next" class="nextWraith"><<link [[HEALTH|Possessed Fight Finish]]>><</link>></span><<nexttext>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
-	<span id="next"><<link [[ORGASM|Possessed Fight Finish]]>><</link>></span><<nexttext>>
+	<span id="next" class="nextWraith"><<link [[ORGASM|Possessed Fight Finish]]>><</link>></span><<nexttext>>
 <<elseif _controlRegain is 1>>
-	<span id="next"><<link [[CONTROL|Possessed Fight Finish]]>><</link>></span><<nexttext>>
+	<span id="next" class="nextWraith"><<link [[CONTROL|Possessed Fight Finish]]>><</link>></span><<nexttext>>
 <<else>>
-	<span id="next"><<link [[Next|Possessed Fight]]>><</link>></span><<nexttext>>
+	<span id="next" class="nextWraith"><<link [[Next|Possessed Fight]]>><</link>></span><<nexttext>>
 <</if>>
 
 :: Possessed Fight Finish
@@ -1034,7 +1038,8 @@ You open your mouth to scream, but it is already inside you.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	<<link [[Fight again|Possessed Fight]]>><<endevent phaseless>><<set $fightstart to 1>><</link>><br>
+	<<link [[Fight again|Possessed Fight]]>><<endevent phaseless>><<set $fightstart to 1>><</link>>
+	<br>
 	<<link [[Freshen up, then fight again|Possessed Fight]]>><<endevent phaseless>><<set $fightstart to 1>><<set $pain to 0>><<set $arousal to 0>><</link>><<lpain>><<larousal>>
 
 <<elseif $enemyhealth lte 0>>
@@ -1048,7 +1053,8 @@ You open your mouth to scream, but it is already inside you.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	<<link [[Fight again|Possessed Fight]]>><<set $fightstart to 1>><<endevent phaseless>><</link>><br>
+	<<link [[Fight again|Possessed Fight]]>><<set $fightstart to 1>><<endevent phaseless>><</link>>
+	<br>
 	<<link [[Freshen up, then fight again|Possessed Fight]]>><<set $fightstart to 1>><<endevent phaseless>><<set $pain to 0>><<set $arousal to 0>><</link>><<lpain>><<larousal>>
 
 <<else>>
@@ -1063,8 +1069,10 @@ You open your mouth to scream, but it is already inside you.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	<<link [[Fight again|Possessed Fight]]>><<set $possessed to true>><<set $control to 0>><<set $fightstart to 1>><<endevent phaseless>><</link>><<lllcontrol>><<if $statdisable is "f">> | <span class="wraith">+ Wraith</span><</if>><br>
-	<<link [[Freshen up, then fight again|Possessed Fight]]>><<set $possessed to true>><<set $control to 0>><<set $fightstart to 1>><<endevent phaseless>><<set $pain to 0>><<set $arousal to 0>><</link>><<lpain>><<larousal>><<lllcontrol>><<if $statdisable is "f">> | <span class="wraith">+ Wraith</span><</if>><br>
+	<<link [[Fight again|Possessed Fight]]>><<set $possessed to true>><<set $control to 0>><<set $fightstart to 1>><<endevent phaseless>><</link>><<lllcontrol>><<if $statdisable is "f">> | <span class="wraith">+ Wraith</span><</if>>
+	<br>
+	<<link [[Freshen up, then fight again|Possessed Fight]]>><<set $possessed to true>><<set $control to 0>><<set $fightstart to 1>><<endevent phaseless>><<set $pain to 0>><<set $arousal to 0>><</link>><<lpain>><<larousal>><<lllcontrol>><<if $statdisable is "f">> | <span class="wraith">+ Wraith</span><</if>>
+	<br>
 	<<link [[Decision room|Possessed Fight Test]]>><<set $possessed to true>><<set $control to 0>><</link>><<lllcontrol>><<if $statdisable is "f">> | <span class="wraith">Also + Wraith</span><</if>>
 <</if>>
 <br><br>
@@ -1097,7 +1105,8 @@ A terminal is attached to the tube. You look at the prompts.
 	<<set $npcselectrole to $npcselectrole.replace(/[^a-zA-Z 0-9,.!()£/]+/g,"")>>
 	<<generateRole 0 $npcselectdesc $npcselectrole>><<person1>>
 	<<unset $npcselectdesc>><<unset $npcselectrole>>
-<</link>><br>
+<</link>>
+<br>
 <<link [[Fight|NPC Role Fight]]>><<set $fightstart to 1>>
 	<<if $npcselectdesc is undefined>><<set $npcselectdesc to "custom">><</if>>
 	<<if $npcselectrole is undefined>><<set $npcselectrole to "construct">><</if>>
@@ -1178,7 +1187,8 @@ A terminal is attached to the tube. You look at the prompts.
 
 <<endcombat>><<clotheson>>
 
-<<link [[Create another construct|NPC Role Select]]>><</link>><br>
+<<link [[Create another construct|NPC Role Select]]>><</link>>
+<br>
 <<link [[Back home|Bedroom]]>><</link>>
 
 :: NPC Clothing Select
@@ -1303,7 +1313,8 @@ A terminal is attached to the tube. You look at the prompts.
 
 <<endcombat>><<clotheson>>
 
-<<link [[Create another construct|NPC Clothing Select]]>><</link>><br>
+<<link [[Create another construct|NPC Clothing Select]]>><</link>>
+<br>
 <<link [[Back home|Bedroom]]>><</link>>
 
 :: NPCInsertionAssert
@@ -1311,19 +1322,25 @@ Generating two NPCs both at slot 0.
 <<generate1>><<generate1>>
 
 :: TimeTest
-Manipulating time itself.<br>
-Distorting $$time ($time) by $timeDistortion.<br>
+Manipulating time itself.
+<br>
+Distorting $$time ($time) by $timeDistortion.
+<br>
 <<set $time += $timeDistortion>>
-$$time = $time<br>
-$$hour = $hour<br>
-$$minute = $minute<br>
+$$time = $time
+<br>
+$$hour = $hour
+<br>
+$$minute = $minute
+<br>
 $$hour * 60 + $$minute = <<print $hour * 60 + $minute>>
 <br><br>
-<<link [[Fast-Forward (0:05)|TimeTest]]>><<set $timeDistortion to 5>><</link>><br>
-<<link [[Fast-Backward -(0:05)|TimeTest]]>><<set $timeDistortion to -5>><</link>><br>
-<br>
-<<link [[Correct chrono variation|TimeTest]]>><<set $timeDistortion to ($hour * 60 + $minute) - $time>><</link>><br>
+<<link [[Fast-Forward (0:05)|TimeTest]]>><<set $timeDistortion to 5>><</link>>
 <br>
+<<link [[Fast-Backward -(0:05)|TimeTest]]>><<set $timeDistortion to -5>><</link>>
+<br><br>
+<<link [[Correct chrono variation|TimeTest]]>><<set $timeDistortion to ($hour * 60 + $minute) - $time>><</link>>
+<br><br>
 <<link [[Go back|$prevPassage]]>><<run delete $timeDistortion>><</link>>
 
 :: NNPC Strapon Generator Widgets [widget]
@@ -1392,12 +1409,13 @@ A terminal is attached to the tube.
 	</span>
 
 	<<button "<i>Randomize</i>">>
-		<<set _straponSize to [2,3,4].random()>> 
-		<<set _straponColour to ["black","red","pink","purple","fleshy","blue","green"].random()>> 
-		<<set _straponShape to ["dildo","penis","beaded dildo","horse cock","knotted cock","tentacle","dolphin cock","studded cock","fist dildo"].random()>> 
+		<<set _straponSize to [2,3,4].random()>>
+		<<set _straponColour to ["black","red","pink","purple","fleshy","blue","green"].random()>>
+		<<set _straponShape to ["dildo","penis","beaded dildo","horse cock","knotted cock","tentacle","dolphin cock","studded cock","fist dildo"].random()>>
 		<<set _straponModifier to ["","","floppy","transparent","sparkly"].random()>>
 		<<replace "#straponOptions">><<straponGeneratorOptions>><</replace>>
-	<</button>><br><br>
+	<</button>>
+	<br><br>
 
 	Having selected the desired options, your finger hovers over the "Create" button. You really have no idea what this strange device is about to do...
 	<br><br>
@@ -1435,17 +1453,17 @@ A terminal is attached to the tube.
 	With a hiss of steam, the tube retracts to the ceiling.
 	A figure walks out, looking identical to <<print $NPCList[0].fullDescription>>,
 	<<if $NPCList[0].fullDescription is "Whitney">>
-		although fully nude and holding a <<print $NPCList[0].strapon.description>> in <<his>> hand. 
+		although fully nude and holding a <<print $NPCList[0].strapon.description>> in <<his>> hand.
 		<br><br>
 		<<setNPCStrapon $NPCList[0] $NPCName[$NPCNameList.indexOf("Whitney")].strapons[0]>>
 		"This thing is cute and all, but I've already got one", <<he>> says,
-		throwing it away and pulling <<his>> favorite <<print $NPCList[0].strapon.description>> out of nowhere.
+		throwing it away and pulling <<his>> favourite <<print $NPCList[0].strapon.description>> out of nowhere.
 	<<else>>
 		although fully nude and wearing a <<print $NPCList[0].strapon.description>>.
 	<</if>>
 	<br><br>
 
-	"Beginning sex encounter," the <<personsimple>> says in a flat tone, before <<his>> face morphs into a lavicious smile. <<catcall>>
+	"Beginning sex encounter," the <<personsimple>> says in a flat tone, before <<his>> face morphs into a lascivious smile. <<catcall>>
 <</if>>
 
 <<effects>>
@@ -1492,7 +1510,8 @@ Once the tube touches the floor, the lights switch off.
 
 <<endcombat>><<clotheson>>
 
-<<link [[Create another construct|NNPC Strapon Generator]]>><</link>><br>
+<<link [[Create another construct|NNPC Strapon Generator]]>><</link>>
+<br>
 <<link [[Back home|Bedroom]]>><</link>>
 
 :: Cow Test Sex
diff --git a/game/base-debug/testing-room.twee b/game/base-debug/testing-room.twee
index db011741ca9a417577d1accecace68624767a103..a093ea0e326eb4206dcc32cc499f560e9a9d458e 100644
--- a/game/base-debug/testing-room.twee
+++ b/game/base-debug/testing-room.twee
@@ -41,47 +41,47 @@ Exhibitionism (<<print $exhibitionism>>)
 
 Toggle:
 <<link [[Gender|Testing Room]]>>
-    /* note: add ability to switch to herm gender in the future; maybe a set of (three) buttons to pick which gender instead of a toggle? */
-    <<set $player.gender to ($player.gender is "m" ? "f" : "m")>>
-    <<set $player.penisExist to ($player.gender is "m")>>
-    <<set $player.ballsExist to ($player.gender is "m")>>
-    <<set $player.vaginaExist to ($player.gender is "f")>>
-    
+	/* note: add ability to switch to herm gender in the future; maybe a set of (three) buttons to pick which gender instead of a toggle? */
+	<<set $player.gender to ($player.gender is "m" ? "f" : "m")>>
+	<<set $player.penisExist to ($player.gender is "m")>>
+	<<set $player.ballsExist to ($player.gender is "m")>>
+	<<set $player.vaginaExist to ($player.gender is "f")>>
+
 <</link>> |
 <<link [[Sex|Testing Room]]>>
-    <<set $player.sex to ($player.sex is "m" ? "f" : "m")>>
-    <<set $player.penisExist to ($player.gender is "m")>>
-    <<set $player.ballsExist to ($player.gender is "m")>>
-    <<set $player.vaginaExist to ($player.gender is "f")>>
-    
+	<<set $player.sex to ($player.sex is "m" ? "f" : "m")>>
+	<<set $player.penisExist to ($player.gender is "m")>>
+	<<set $player.ballsExist to ($player.gender is "m")>>
+	<<set $player.vaginaExist to ($player.gender is "f")>>
+
 <</link>> |
 <<link [[Virginity|Testing Room]]>>
-    <<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>>
-        <<set $player.virginity.vaginal to true>><<set $player.virginity.penile to true>><<set $player.virginity.anal to true>><<set $player.virginity.oral to true>>
-    <<else>>
-        <<set $player.virginity.vaginal to false>><<set $player.virginity.penile to false>><<set $player.virginity.anal to false>><<set $player.virginity.oral to false>><<set $player.virginity.temple to false>>
-    <</if>>
-    
+	<<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>>
+		<<set $player.virginity.vaginal to true>><<set $player.virginity.penile to true>><<set $player.virginity.anal to true>><<set $player.virginity.oral to true>>
+	<<else>>
+		<<set $player.virginity.vaginal to false>><<set $player.virginity.penile to false>><<set $player.virginity.anal to false>><<set $player.virginity.oral to false>><<set $player.virginity.temple to false>>
+	<</if>>
+
 <</link>> |
 <<link [[Hirsute|Testing Room]]>>
-    <<set $hirsutedisable to ($hirsutedisable is "t"? "f" : "t")>>
-    
+	<<set $hirsutedisable to ($hirsutedisable is "t"? "f" : "t")>>
+
 <</link>> |
 <<link [[Bound Left Arm|Testing Room]]>>
-    <<if $leftarm is "bound">>
-        <<set $leftarm to 0>><<set $leftboundcarry to 0>>
-    <<else>>
-        <<set $leftarm to "bound">>
-    <</if>>
-    
+	<<if $leftarm is "bound">>
+		<<set $leftarm to 0>><<set $leftboundcarry to 0>>
+	<<else>>
+		<<set $leftarm to "bound">>
+	<</if>>
+
 <</link>> |
 <<link [[Bound Right Arm|Testing Room]]>>
-    <<if $rightarm is "bound">>
-        <<set $rightarm to 0>><<set $rightboundcarry to 0>>
-    <<else>>
-        <<set $rightarm to "bound">>
-    <</if>>
-    
+	<<if $rightarm is "bound">>
+		<<set $rightarm to 0>><<set $rightboundcarry to 0>>
+	<<else>>
+		<<set $rightarm to "bound">>
+	<</if>>
+
 <</link>>
 <br><br>
 
@@ -161,34 +161,34 @@ Mouth (<<print $player.bodyliquid.mouth.goo>>)
 
 Parasite:
 <<link [[Chest|Testing Room]]>>
-    <<if $parasite.nipples.name is undefined>>
-        <<parasite nipples urchin>>
-    <<else>>
-        <<removeparasite nipples>>
-    <</if>>
-    
+	<<if $parasite.nipples.name is undefined>>
+		<<parasite nipples urchin>>
+	<<else>>
+		<<removeparasite nipples>>
+	<</if>>
+
 <</link>> |
 
 <<link [[Penis|Testing Room]]>>
-    <<if $parasite.penis.name is undefined>>
-        <<parasite penis urchin>>
-    <<else>>
-        <<removeparasite penis>>
-    <</if>>
-    
+	<<if $parasite.penis.name is undefined>>
+		<<parasite penis urchin>>
+	<<else>>
+		<<removeparasite penis>>
+	<</if>>
+
 <</link>> |
 
 <<link [[Clit|Testing Room]]>>
-    <<if $parasite.clit.name is undefined>>
-        <<parasite clit urchin>>
-    <<else>>
-        <<removeparasite clit>>
-    <</if>>
-    
+	<<if $parasite.clit.name is undefined>>
+		<<parasite clit urchin>>
+	<<else>>
+		<<removeparasite clit>>
+	<</if>>
+
 <</link>>
 <br><br>
 
-Upper Clothes: 
+Upper Clothes:
 <<link [[<<|Testing Room]]>><<set $worn.upper.integrity -= 10>><</link>>
 <<link [[<|Testing Room]]>><<set $worn.upper.integrity -= 1>><</link>>
 Integrity (<<print $worn.upper.integrity>>)
diff --git a/game/base-system/attitudes.twee b/game/base-system/attitudes.twee
index c09048b8ed668aaee8bbcb6e4ee859bf06005f85..f9a8bb1d1c586a0ef7552db3b581db60a0bd2b6c 100644
--- a/game/base-system/attitudes.twee
+++ b/game/base-system/attitudes.twee
@@ -285,7 +285,7 @@ __If consensual:__
 <</if>>
 <<set _leftHand["Cover your face"] to "leftcoverface">>
 <<set _leftHand["Whack the writing tool away"] to "penwhack">>
-<<if $skulduggery gte 200>>
+<<if currentSkillValue('skulduggery') gte 200>>
 	<<set _leftHand["Steal"] to "steal">>
 <</if>>
 <<set _leftHand["Struggle"] to "leftstruggle">>
@@ -316,7 +316,7 @@ __If consensual:__
 <</if>>
 <<set _rightHand["Cover your face"] to "rightcoverface">>
 <<set _rightHand["Whack the writing tool away"] to "penwhack">>
-<<if $skulduggery gte 200>>
+<<if currentSkillValue('skulduggery') gte 200>>
 	<<set _rightHand["Steal"] to "steal">>
 <</if>>
 <<set _rightHand["Struggle"] to "rightstruggle">>
@@ -450,7 +450,7 @@ __If consensual:__
 <<set _penis["Take the pussy"] to "take">>
 <<set _penis["Cooperate with their pussy"] to "cooperate">>
 <<if ($promiscuity gt 54 or $deviancy gt 54 or _args[0] is true) and $penileskill gte 800>>
-   <<set _penis["Edge their vagina"] to "vaginaEdging">>
+	<<set _penis["Edge their vagina"] to "vaginaEdging">>
 <</if>>
 <<if $promiscuity gt 74 or $deviancy gt 74 or _args[0] is true>>
 	<<set _penis["Press against their ass"] to "penistoanus">>
@@ -472,7 +472,7 @@ __If consensual:__
 <<set _penis["Take the ass"] to "otheranustake">>
 <<set _penis["Cooperate with their ass"] to "otheranuscooperate">>
 <<if ($promiscuity gt 54 or $deviancy gt 54 or _args[0] is true) and $penileskill gte 800>>
-   <<set _penis["Edge their ass"] to "otheranusEdging">>
+	<<set _penis["Edge their ass"] to "otheranusEdging">>
 <</if>>
 <<set _penis["Press your thigh against their mouth"] to "thighbay">>
 <<set _penis["Rub against their face"] to "othermouthtease">>
@@ -510,7 +510,7 @@ __If consensual:__
 <<set _vagina["Take it"] to "take">>
 <<set _vagina["Cooperate"] to "cooperate">>
 <<if ($promiscuity gt 54 or $deviancy gt 54 or _args[0] is true) and $vaginalskill gte 800>>
-   <<set _vagina["Edge their penis with your vagina"] to "penisEdging">>
+	<<set _vagina["Edge their penis with your vagina"] to "penisEdging">>
 <</if>>
 <<set _vagina["Press your thigh against their mouth"] to "thighbay">>
 <<set _vagina["Rub against their face"] to "othermouthtease">>
@@ -548,7 +548,7 @@ __If consensual:__
 <<set _anus["Take it"] to "take">>
 <<set _anus["Cooperate"] to "cooperate">>
 <<if ($promiscuity gt 54 or $deviancy gt 54 or _args[0] is true) and $analskill gte 800>>
-   <<set _anus["Edge their penis with your ass"] to "penisEdging">>
+	<<set _anus["Edge their penis with your ass"] to "penisEdging">>
 <</if>>
 <<set _anus["Press your butt against their mouth"] to "bottombay">>
 <<set _anus["Rub against their face"] to "othermouthtease">>
diff --git a/game/base-system/bdsm.twee b/game/base-system/bdsm.twee
index 82607b2672521f69d494778a013379009a712a02..a018b87599f21bb8428460896a647a7278118d19 100644
--- a/game/base-system/bdsm.twee
+++ b/game/base-system/bdsm.twee
@@ -1,32 +1,43 @@
 :: Widgets BDSM [widget]
 <<widget "attach_leash">>
 <<if $worn.neck.name is "collar">>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
-    <<neckwear 21>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 21>>
 <<elseif $worn.neck.name is "free use collar">>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
-    <<neckwear 22>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 22>>
 <<elseif $worn.neck.name is "leather collar">>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
-    <<neckwear 24>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 24>>
+<<elseif $worn.neck.name is "spiked collar">>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 26>>
+	<<set $worn.neck.cursed to 1>>
 <</if>>
 <</widget>>
 
 <<widget "detach_leash">>
 <<if $worn.neck.name is "collar with leash">>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
-    <<neckwear 1>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 1>>
 <<elseif $worn.neck.name is "free use collar with leash">>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
-    <<neckwear 20>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 20>>
 <<elseif $worn.neck.name is "leather collar with leash">>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
-    <<neckwear 25>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 25>>
+<<elseif $worn.neck.name is "spiked collar with leash">>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 10>>
+	<<set $worn.neck.cursed to 1>>
+	<<set $worn.neck.collared to 1>>
 <</if>>
 <</widget>>
\ No newline at end of file
diff --git a/game/base-system/bodywriting-objects.twee b/game/base-system/bodywriting-objects.twee
index 3da7d8c416b76586ef1cac1ce758d19f5e0b423d..1b1da2b0df077fb2914c3dd1cc56c53a7aba5043 100644
--- a/game/base-system/bodywriting-objects.twee
+++ b/game/base-system/bodywriting-objects.twee
@@ -10,7 +10,9 @@
 		special: "rape",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "rape_me",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	slut: {
@@ -21,7 +23,9 @@
 		special: "none",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "slut",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	fucktoy: {
@@ -32,7 +36,9 @@
 		special: "none",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "fucktoy",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	rapetoy: {
@@ -43,7 +49,9 @@
 		special: "rape",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "rapetoy",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	worthless: {
@@ -54,7 +62,9 @@
 		special: "none",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "worthless",
+		sprites: ["breasts", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	free_use: {
@@ -65,7 +75,9 @@
 		special: "none",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "free_use",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	slave: {
@@ -76,7 +88,9 @@
 		special: "slave",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "slave",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	use_me: {
@@ -582,7 +596,9 @@
 		special: "none",
 		gender: "n",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "hot",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	beautiful: {
@@ -604,7 +620,9 @@
 		special: "none",
 		gender: "m",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "cute_boy",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	cute_girl: {
@@ -615,7 +633,9 @@
 		special: "none",
 		gender: "f",
 		lewd: 1,
-		degree: 0
+		degree: 0,
+		key: "cute_girl",
+		sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"]
 		},
 
 	stud: {
@@ -1692,7 +1712,7 @@
 
 	sydneys_savior: {
 		index: 151,
-		writing: "Sydney's Savior",
+		writing: "Sydney's Saviour",
 		type: "text",
 		arrow: 0,
 		special: "Sydney",
diff --git a/game/base-system/bodywriting.twee b/game/base-system/bodywriting.twee
index 44b13350df158f69ebce87935d0583d31934532f..fd0a9846c67720bbfdabe6a42cddcfb64eb306ab 100755
--- a/game/base-system/bodywriting.twee
+++ b/game/base-system/bodywriting.twee
@@ -273,7 +273,7 @@ Second arg: tool */
 				<<add_bodywriting _args[0] stud _args[1]>>
 			<<else>>
 				<<add_bodywriting _args[0] beauty _args[1]>>
-			<</if>>		
+			<</if>>
 		<<else>>
 			<<if $player.gender_appearance is "m">>
 				<<add_bodywriting _args[0] handsome _args[1]>>
@@ -289,7 +289,7 @@ Second arg: tool */
 				<<add_bodywriting _args[0] cute_boy _args[1]>>
 			<<else>>
 				<<add_bodywriting _args[0] cute_girl _args[1]>>
-			<</if>>		
+			<</if>>
 		<</if>>
 	<<case 6>>
 		<<add_bodywriting _args[0] sinner _args[1]>>
@@ -494,14 +494,19 @@ Second arg: tool */
 	<i><span class="pink">A picture of a <<print $skin[_args[0]].writing>></span></i>.
 <</if>>
 <<if $skin[_args[0]].arrow is 1>>
+	<<if _args[1] is "machine">>
+		<<set $_He to "It">>
+	<<else>>
+		<<set $_He to "<<He>>">>
+	<</if>>
 	<<switch _args[0]>>
 		<<case "left_cheek" "right_cheek">>
-			<<He>> draws an arrow beside it, <span class="red">pointing at your mouth.</span>
+			$_He draws an arrow beside it, <span class="red">pointing at your mouth.</span>
 		<<case "pubic" "left_thigh" "right_thigh">>
-			<<He>> draws an arrow beside it, <span class="red">pointing at your <<genitals 1>>.</span>
+			$_He draws an arrow beside it, <span class="red">pointing at your <<genitals 1>>.</span>
 		<<case "back" "left_bottom" "right_bottom">>
 			<<if $analdisable is "f">>
-				<<He>> draws an arrow beside it, <span class="red">pointing at your <<bottom>>.</span>
+				$_He draws an arrow beside it, <span class="red">pointing at your <<bottom>>.</span>
 			<</if>>
 	<</switch>>
 <</if>>
@@ -647,42 +652,42 @@ Second arg: tool */
 <<widget "bodywriting_npc_special">>
 <<set $rng to random(1, 100)>>
 <<if $rng gte 90>>
-	<<if $famerape gte random(200, 1000)>>
+	<<if $fame.rape gte random(200, 1000)>>
 		<<bodywriting_rape_select _args[0] _args[1]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
 		<<bodywriting_npc_normal _args[0] _args[1]>>
 	<</if>>
 <<elseif $rng gte 80>>
-	<<if $famesex gte random(200, 1000)>>
+	<<if $fame.sex gte random(200, 1000)>>
 		<<bodywriting_sex_select _args[0] _args[1]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
 		<<bodywriting_npc_normal _args[0] _args[1]>>
 	<</if>>
 <<elseif $rng gte 70>>
-	<<if $famebestiality gte random(200, 1000)>>
+	<<if $fame.bestiality gte random(200, 1000)>>
 		<<bodywriting_bestiality_select _args[0] _args[1]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
 		<<bodywriting_npc_normal _args[0] _args[1]>>
 	<</if>>
 <<elseif $rng gte 60>>
-	<<if $famepregnancy gte random(200, 1000) and $player.vaginaExist>>
+	<<if $fame.pregnancy gte random(200, 1000) and $player.vaginaExist>>
 		<<bodywriting_pregnancy_select _args[0]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
 		<<bodywriting_npc_normal _args[0]>>
 	<</if>>
 <<elseif $rng gte 50>>
-	<<if $fameprostitution gte random(200, 1000)>>
+	<<if $fame.prostitution gte random(200, 1000)>>
 		<<bodywriting_prostitution_select _args[0] _args[1]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
 		<<bodywriting_npc_normal _args[0] _args[1]>>
 	<</if>>
 <<elseif $rng gte 40>>
-	<<if $fameexhibitionism gte random(200, 1000)>>
+	<<if $fame.exhibitionism gte random(200, 1000)>>
 		<<bodywriting_exhibitionism_select _args[0] _args[1]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -696,7 +701,7 @@ Second arg: tool */
 		<<bodywriting_npc_normal _args[0] _args[1]>>
 	<</if>>
 <<elseif $rng gte 16>>
-	<<if $famescrap gte random(1, 1000)>>
+	<<if $fame.scrap gte random(1, 1000)>>
 		<<bodywriting_scrap_select _args[0] _args[1]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -714,7 +719,7 @@ Second arg: tool */
 	<<bodywriting_dungeon_select _args[0]>>
 	<<bodywriting_finalisation _args[0] machine>>
 <<elseif $rng gte 94>>
-	<<if $famerape gte random(200, 1000)>>
+	<<if $fame.rape gte random(200, 1000)>>
 		<<bodywriting_rape_select _args[0]>>
 		<<bodywriting_finalisation _args[0] machine>>
 	<<else>>
@@ -722,7 +727,7 @@ Second arg: tool */
 		<<bodywriting_finalisation _args[0] machine>>
 	<</if>>
 <<elseif $rng gte 87>>
-	<<if $famesex gte random(200, 1000)>>
+	<<if $fame.sex gte random(200, 1000)>>
 		<<bodywriting_sex_select _args[0]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -730,7 +735,7 @@ Second arg: tool */
 		<<bodywriting_finalisation _args[0] machine>>
 	<</if>>
 <<elseif $rng gte 80>>
-	<<if $famebestiality gte random(200, 1000)>>
+	<<if $fame.bestiality gte random(200, 1000)>>
 		<<bodywriting_bestiality_select _args[0]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -738,7 +743,7 @@ Second arg: tool */
 		<<bodywriting_finalisation _args[0] machine>>
 	<</if>>
 <<elseif $rng gte 73>>
-	<<if $famepregnancy gte random(200, 1000) and $player.vaginaExist>>
+	<<if $fame.pregnancy gte random(200, 1000) and $player.vaginaExist>>
 		<<bodywriting_pregnancy_select _args[0]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -746,7 +751,7 @@ Second arg: tool */
 		<<bodywriting_finalisation _args[0] machine>>
 	<</if>>
 <<elseif $rng gte 65>>
-	<<if $fameprostitution gte random(200, 1000)>>
+	<<if $fame.prostitution gte random(200, 1000)>>
 		<<bodywriting_prostitution_select _args[0]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -754,7 +759,7 @@ Second arg: tool */
 		<<bodywriting_finalisation _args[0] machine>>
 	<</if>>
 <<elseif $rng gte 59>>
-	<<if $fameexhibitionism gte random(200, 1000)>>
+	<<if $fame.exhibitionism gte random(200, 1000)>>
 		<<bodywriting_exhibitionism_select _args[0]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -770,7 +775,7 @@ Second arg: tool */
 		<<bodywriting_finalisation _args[0] machine>>
 	<</if>>
 <<elseif $rng gte 47>>
-	<<if $famescrap gte random(1, 1000)>>
+	<<if $fame.scrap gte random(1, 1000)>>
 		<<bodywriting_scrap_select _args[0]>>
 		<<bodywriting_finalisation _args[0]>>
 	<<else>>
@@ -914,7 +919,7 @@ Second arg: tool */
 		<<He>> follows the arrow's instruction, <span class="blue">and positions <<his>> $NPCList[_n].penisdesc in front of your mouth.</span>
 		<<neutral 5>><<set $mouthuse to "penis">><<set $NPCList[_n].penis to "mouthentrance">><<set $mouthstate to "entrance">><<set $speechmouthentrance to 1>><<set $mouthtarget to _n>>
 		<<set $NPCList[_n].location.genitals to "head">>
-		
+
 	<<elseif $NPCList[_n].vagina is 0 and $mouthuse is 0>>
 		<<He>> follows the arrow's instruction.
 		<<if random(4) is 0 and $facesitdisable is "f">>
@@ -1067,33 +1072,37 @@ Second arg: tool */
 <<if pregnancyBellyVisible()>>
 	<<famepregnancy 1>>
 	<<if !$speechadmired>><<set $speechadmired to 1>>
-		<<switch random(1, 10)>>
-			<<case 1>><<He>> speaks. "Doesn't look like it's something I can help with right now."
-			<<case 2>><<He>> speaks. "So how many kids have you given birth to?"
-			<<case 3>><<He>> speaks. "I'll let my friends know who to see if they want a kid in a couple of months."
-			<<case 4>><<He>> speaks. "How far along are you?"
-			<<case 5>><<He>> speaks. "Not being pregnant must be an alien concept to you."
-			<<case 6>><<He>> speaks. "Don't worry, you're already pregnant."
-			<<case 7>><<He>> speaks. "At least I don't need to worry about condoms."
-			<<case 8>><<He>> speaks. "Breeding must be like breathing to you."
-			<<case 9>><<He>> speaks. "I bet you love the feeling of giving birth."
-			<<case 10>><<He>> speaks. "Seems like you already have what you're after."
-		<</switch>>
+		<<if $speechpregnancydisable is "f">>
+			<<switch random(1, 10)>>
+				<<case 1>><<He>> speaks. "Doesn't look like it's something I can help with right now."
+				<<case 2>><<He>> speaks. "So how many kids have you given birth to?"
+				<<case 3>><<He>> speaks. "I'll let my friends know who to see if they want a kid in a couple of months."
+				<<case 4>><<He>> speaks. "How far along are you?"
+				<<case 5>><<He>> speaks. "Not being pregnant must be an alien concept to you."
+				<<case 6>><<He>> speaks. "Don't worry, you're already pregnant."
+				<<case 7>><<He>> speaks. "At least I don't need to worry about condoms."
+				<<case 8>><<He>> speaks. "Breeding must be like breathing to you."
+				<<case 9>><<He>> speaks. "I bet you love the feeling of giving birth."
+				<<case 10>><<He>> speaks. "Seems like you already have what you're after."
+			<</switch>>
+		<</if>>
 	<</if>>
 <<else>>
 	<<if !$speechadmired>><<set $speechadmired to 1>>
-		<<switch random(1, 10)>>
-			<<case 1>><<He>> speaks. "You want a kid that much, slut?"
-			<<case 2>><<He>> speaks. "So how many kids have you given birth to?"
-			<<case 3>><<He>> speaks. "I'll let my friends know who to see if they want a kid."
-			<<case 4>><<He>> speaks. "Are you ovulating right now?"
-			<<case 5>><<He>> speaks. "Not being pregnant must be an alien concept to you."
-			<<case 6>><<He>> speaks. "Don't worry, I know how to get you pregnant."
-			<<case 7>><<He>> speaks. "I'm glad I don't need to worry about condoms."
-			<<case 8>><<He>> speaks. "Breeding must be like breathing to you."
-			<<case 9>><<He>> speaks. "I bet you love the feeling of giving birth."
-			<<case 10>><<He>> speaks. "Seems I'm giving you what you want."
-		<</switch>>
+		<<if $speechpregnancydisable is "f">>
+			<<switch random(1, 10)>>
+				<<case 1>><<He>> speaks. "You want a kid that much, slut?"
+				<<case 2>><<He>> speaks. "So how many kids have you given birth to?"
+				<<case 3>><<He>> speaks. "I'll let my friends know who to see if they want a kid."
+				<<case 4>><<He>> speaks. "Are you ovulating right now?"
+				<<case 5>><<He>> speaks. "Not being pregnant must be an alien concept to you."
+				<<case 6>><<He>> speaks. "Don't worry, I know how to get you pregnant."
+				<<case 7>><<He>> speaks. "I'm glad I don't need to worry about condoms."
+				<<case 8>><<He>> speaks. "Breeding must be like breathing to you."
+				<<case 9>><<He>> speaks. "I bet you love the feeling of giving birth."
+				<<case 10>><<He>> speaks. "Seems I'm giving you what you want."
+			<</switch>>
+		<</if>>
 	<</if>>
 <</if>>
 <</widget>>
@@ -1393,7 +1402,7 @@ Second arg: tool */
 				<<case 6>>"At least clean yourself after slutting out."
 				<<case 7>>"I see someone had fun already."
 				<<case 8>>"Do you like being creampied?"
-				<<case 9>>"Are you trying to get pregnant?"
+				<<case 9>><<if $pregnancyspeechdisable is "f">>"Are you trying to get pregnant?"<<else>>"Do you like being creampied?"<</if>>
 			<</switch>>
 		<<elseif _args[0] is "anus">>
 			<<if $player.gender is "m" and $player.penissize lte 1 and random(1, 5) is 1>>
@@ -1402,7 +1411,7 @@ Second arg: tool */
 				<<else>>
 					"With such a tiny cock, I guess that's the only way you could pleasure someone."
 				<</if>>
-				
+
 				<<if $player.penissize is 1>>
 					<<insecurity "penis_small" 1>>
 				<<else>>
@@ -1821,11 +1830,7 @@ Second arg: tool */
 						<<else>>
 							<<He>> smiles.
 						<</if>>
-						<<if $NPCName[$NPCNameList.indexOf("Robin")].pronoun is "m">>
-							<<set _text_output to "Don't worry, I'll be paying him a visit soon.">>
-						<<else>>
-							<<set _text_output to "Don't worry, I'll be paying her a visit soon.">>
-						<</if>>
+						<<set _text_output to "Don't worry, I'll be paying <<nnpc_him 'Robin'>> a visit soon.">>
 				<</switch>>
 			<<case "prostitution">>
 				<<if $skin[_args[0]].degree gte 10000>>
@@ -1995,35 +2000,37 @@ Second arg: tool */
 <</widget>>
 
 <<widget "bodypart_admire">>
-<<switch _args[1]>>
-	<<case "bodywriting">>
-		<<if $skin[_args[0]] is undefined or $newlyWritten.includes(_args[0])>>
-		<<elseif $skin[_args[0]].writing>>
-			<<if _args[0] is "forehead" or
-			(_args[0] is "left_cheek" or _args[0] is "right_cheek") and !$worn.face.type.includes("mask") or
-			(_args[0] is "left_shoulder" or _args[0] is "right_shoulder") and ($worn.upper.exposed gte 1 or $worn.upper.open is 1) and ($worn.under_upper.exposed gte 1 or $worn.under_open is 1) or
-			_args[0] is "breasts" and $worn.upper.exposed gte 1 and ($worn.under_upper.exposed gte 1 or $worn.under_upper.open is 1) or
-			_args[0] is "back" and ($worn.upper.exposed gte 1 or $worn.upper.state isnot "waist") and ($worn.under_upper.exposed gte 1 or $worn.under_upper.state isnot "waist") or
-			(_args[0] is "left_bottom" or _args[0] is "right_bottom") and ($worn.lower.exposed gte 1 or $worn.lower.anus_exposed gte 1) and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("athletic")) or
-			_args[0] is "pubic" and $worn.lower.exposed gte 1 and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("athletic")) or
-			(_args[0] is "left_thigh" or _args[0] is "right_thigh") and $worn.lower.vagina_exposed gte 1 and !$worn.under_lower.type.includes("athletic")>>/*Makes sure bodywriting isn't seen if obstructed by clothing.*/
-				<<if $skin[_args[0]].type is "text">>
-					<<He>> reads the "<<print $skin[_args[0]].writing>>" writing on your <<bodypart _args[0]>>.
-				<<else>>
-					<<He>> examines the <<print $skin[_args[0]].writing>> image on your <<bodypart _args[0]>>.
-				<</if>>
-				<<if $npc[_n]>>
-					<<bodypart_admire_named _args[0]>>
-				<<else>>
-					<<bodypart_admire_generic _args[0]>>
+	<<if !$noAdmire>>
+		<<switch _args[1]>>
+			<<case "bodywriting">>
+				<<if $skin[_args[0]] is undefined or $newlyWritten.includes(_args[0])>>
+				<<elseif $skin[_args[0]].writing>>
+					<<if _args[0] is "forehead" or
+					(_args[0] is "left_cheek" or _args[0] is "right_cheek") and !$worn.face.type.includes("mask") or
+					(_args[0] is "left_shoulder" or _args[0] is "right_shoulder") and ($worn.upper.exposed gte 1 or $worn.upper.open is 1) and ($worn.under_upper.exposed gte 1 or $worn.under_open is 1) or
+					_args[0] is "breasts" and $worn.upper.exposed gte 1 and ($worn.under_upper.exposed gte 1 or $worn.under_upper.open is 1) or
+					_args[0] is "back" and ($worn.upper.exposed gte 1 or $worn.upper.state isnot "waist") and ($worn.under_upper.exposed gte 1 or $worn.under_upper.state isnot "waist") or
+					(_args[0] is "left_bottom" or _args[0] is "right_bottom") and ($worn.lower.exposed gte 1 or $worn.lower.anus_exposed gte 1) and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("athletic")) or
+					_args[0] is "pubic" and $worn.lower.exposed gte 1 and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("athletic")) or
+					(_args[0] is "left_thigh" or _args[0] is "right_thigh") and $worn.lower.vagina_exposed gte 1 and !$worn.under_lower.type.includes("athletic")>>/*Makes sure bodywriting isn't seen if obstructed by clothing.*/
+						<<if $skin[_args[0]].type is "text">>
+							<<He>> reads the "<<print $skin[_args[0]].writing>>" writing on your <<bodypart _args[0]>>.
+						<<else>>
+							<<He>> examines the <<print $skin[_args[0]].writing>> image on your <<bodypart _args[0]>>.
+						<</if>>
+						<<if $npc[_n]>>
+							<<bodypart_admire_named _args[0]>>
+						<<else>>
+							<<bodypart_admire_generic _args[0]>>
+						<</if>>
+					<</if>>
 				<</if>>
-			<</if>>
-		<</if>>
-	<<case "cum">>
-		<<bodypart_admire_cum_convert _args[0]>>
-	<<case "parasite">>
-		<<bodypart_admire_parasite_convert _args[0]>>
-<</switch>>
+			<<case "cum">>
+				<<bodypart_admire_cum_convert _args[0]>>
+			<<case "parasite">>
+				<<bodypart_admire_parasite_convert _args[0]>>
+		<</switch>>
+	<</if>>
 <</widget>>
 
 <<widget "bodypart_admire_generic">>
@@ -2165,7 +2172,7 @@ Second arg: tool */
 	<<else>>
 		<<He>> <<print either("sees a small amount of", "spots some", "notices some", "eyes up the")>> <<print _bodypartLiquidText>> on your <<bodypart _args[0]>>.
 	<</if>>
-	
+
 	<<if !$npc[_n]>>
 		<<bodypart_admire_cum_light _args[0]>>
 	<</if>>
@@ -2184,7 +2191,7 @@ Second arg: tool */
 
 <<widget "bodypart_admire_chance">>
 <<if $enemytype isnot "beast" and ($NPCList[_n].mouth is 0 or $NPCList[_n].mouth is "speech_only" or ($NPCList[_n].type is "plant" and $speechkissvirgin is 1)) and $speechdisable isnot 1>>
-    <<switch random(1, 5)>>
+	<<switch random(1, 5)>>
 		<<case 5>>
 			<<bodypart_admire _args[0] bodywriting>>
 		<<case 4>>
@@ -2520,9 +2527,11 @@ The artist explains how to care for your skin while the tattoo is still raw. You
 <</widget>>
 
 <<widget "bodywriting_dungeon_select">>
-<<if random(1, 2) is 2>>
-	<<add_bodywriting _args[0] slave>>
-<<else>>
-	<<add_bodywriting _args[0] one_six_three>>
-<</if>>
-<</widget>>
+	<<if !Object.values($skin).some(p => p.writing is "163") or random(0,2) is 2>>
+		<<add_bodywriting _args[0] one_six_three>>
+	<<elseif random(0,2) is 1>>
+		<<bodywriting_rape_select _args[0]>>
+	<<else>>
+		<<add_bodywriting _args[0] slave>>
+	<</if>>
+<</widget>>
\ No newline at end of file
diff --git a/game/base-system/caption.twee b/game/base-system/caption.twee
index bcb544cb9dbd06c53b75c150b85fb31cc0bc018f..8cb60dc95ef1b5dc16dc0bb62fd4e58f6c377b20 100644
--- a/game/base-system/caption.twee
+++ b/game/base-system/caption.twee
@@ -21,266 +21,270 @@
 	<</if>>
 	<<combateffects>>
 <div id="storyCaptionDiv" @class="($extendedStats ? 'storyCaptionDivExtended' : '')">
-	
+
 	<div id="debugWindow"></div>
-	<<if $numpad is true>>
-		<style>
-			.mob-btn-group>div{
-			padding: 10px;background-color: rgb(34, 34, 34);color: #fff;border: 1px solid rgb(68, 68, 68);border-radius: 5px 0 0;
-			}
-			.mob-btn-group>div:hover{background-color: rgb(51, 51, 51);}
-		</style>
-		<div class="mob-btn-group unstowable" style="position: fixed;top: 100px;right: 0;display: flex; align-items: center;flex-direction: column;cursor:pointer;">
-			<div class="mob-btn-h" onclick="mobBtnShow()" style="display:none;"></div>
-			<div class="mob-btn" onclick="mobBtnHide()"></div>
-			<div class="mob-btn" onclick="mobclick(1)">1</div>
-			<div class="mob-btn" onclick="mobclick(2)">2</div>
-			<div class="mob-btn" onclick="mobclick(3)">3</div>
-			<div class="mob-btn" onclick="mobclick(4)">4</div>
-			<div class="mob-btn" onclick="mobclick(5)">5</div>
-			<div class="mob-btn" onclick="mobclick(6)">6</div>
-			<div class="mob-btn" onclick="mobclick(7)">7</div>
-			<div class="mob-btn" onclick="mobclick(8)">8</div>
-			<div class="mob-btn" onclick="mobclick(9)">9</div>
-			<div class="mob-btn" onclick="mobclick(10)">0</div>
+	<<if $images is 1>>
+		<div id="stats" @class="($extendedStats ? 'statsExtended' : '')" onclick="extendStats()">
+			<<statsCaption>>
 		</div>
 	<</if>>
-	<<if $endeventerror isnot undefined>>
-		<<if $debugdisable is "f">>
-			<<if $images is 1>><img class="layer-sexmouth" src="img/ui/sym_awareness.png"><</if>><span class="red"><<print StartConfig.version>> Error: An NPC generated on the "$endeventerror" passage broke free. Please inform hwp#2633 on discord. <<if $cheatdisable is "f">>Disregard this if you've just used a cheat.<</if>></span>
-			<br><br>
+
+	<div id="storyCaptionContent">
+		<<if $numpad is true>>
+			<style>
+				.mob-btn-group>div{
+				padding: 10px;background-color: rgb(34, 34, 34);color: #fff;border: 1px solid rgb(68, 68, 68);border-radius: 5px 0 0;
+				}
+				.mob-btn-group>div:hover{background-color: rgb(51, 51, 51);}
+			</style>
+			<div class="mob-btn-group unstowable" style="position: fixed;top: 100px;right: 0;display: flex; align-items: center;flex-direction: column;cursor:pointer;">
+				<div class="mob-btn-h" onclick="mobBtnShow()" style="display:none;"></div>
+				<div class="mob-btn" onclick="mobBtnHide()"></div>
+				<div class="mob-btn" onclick="mobclick(1)">1</div>
+				<div class="mob-btn" onclick="mobclick(2)">2</div>
+				<div class="mob-btn" onclick="mobclick(3)">3</div>
+				<div class="mob-btn" onclick="mobclick(4)">4</div>
+				<div class="mob-btn" onclick="mobclick(5)">5</div>
+				<div class="mob-btn" onclick="mobclick(6)">6</div>
+				<div class="mob-btn" onclick="mobclick(7)">7</div>
+				<div class="mob-btn" onclick="mobclick(8)">8</div>
+				<div class="mob-btn" onclick="mobclick(9)">9</div>
+				<div class="mob-btn" onclick="mobclick(10)">0</div>
+			</div>
+		<</if>>
+		<<if $endeventerror isnot undefined>>
+			<<if $debugdisable is "f">>
+				<<if $images is 1>><img class="layer-sexmouth" src="img/ui/sym_awareness.png"><</if>><span class="red"><<print StartConfig.version>> Error: An NPC generated on the "$endeventerror" passage broke free. Please inform Vrelnir. <<if $cheatdisable is "f">>Disregard this if you've just used a cheat.<</if>></span>
+				<br><br>
+			<</if>>
+			<<unset $endeventerror>>
 		<</if>>
-		<<unset $endeventerror>>
-	<</if>>
 
-	<<if $physiquechange is 1>><<set $physiquechange to 0>>
-		<<if $physiqueuse gte $physique / 1000>>
-			<span class="gold">Your physique is improving due to all the exercise you are getting.</span>
-			<<set $physiqueuse to 0>>
-			<br><br>
-		<<else>>
-			<span class="pink">You didn't get enough exercise yesterday, your physique has deteriorated slightly as a result.</span>
-			<<set $physiqueuse to 0>>
-			<br><br>
+		<<if $physiquechange is 1>><<set $physiquechange to 0>>
+			<<if $physiqueuse gte $physique / 1000>>
+				<span class="gold">Your physique is improving due to all the exercise you are getting.</span>
+				<<set $physiqueuse to 0>>
+				<br><br>
+			<<else>>
+				<span class="pink">You didn't get enough exercise yesterday, your physique has deteriorated slightly as a result.</span>
+				<<set $physiqueuse to 0>>
+				<br><br>
+			<</if>>
 		<</if>>
-	<</if>>
-	<<if !$lessonmissedtext>>
-	<<else>>
-		<<if $lessonmissedtext is 1>>
-			<span class="pink">You missed a lesson yesterday.</span>
-		<<elseif $lessonmissedtext gte 2>>
-			<span class="pink">You missed $lessonmissedtext lessons yesterday.</span>
+		<<if !$lessonmissedtext>>
+		<<else>>
+			<<if $lessonmissedtext is 1>>
+				<span class="pink">You missed a lesson yesterday.</span>
+			<<elseif $lessonmissedtext gte 2>>
+				<span class="pink">You missed $lessonmissedtext lessons yesterday.</span>
+			<</if>>
+			<<if $lessonmissed gte 50>>
+				<span class="red">You've missed many lessons. The police have been informed.</span>
+				<<crimeup 25>>
+			<</if>>
+			<<set $lessonmissedtext to 0>>
+			<br>
 		<</if>>
-		<<if $lessonmissed gte 50>>
-			<span class="red">You've missed many lessons. The police have been informed.</span>
-			<<crimeup 25>>
+		<<if $images is 0>>
+			<div id="money-noimg">
+				<<statsMoneyNoImg>>
+			</div>
+			<br>
+
+			It is <<ampm>>.
+			<br>
+			It is <<print getWeekDay($weekday)>>.
+			<br>
 		<</if>>
-		<<set $lessonmissedtext to 0>>
+		<<schoolday>>
 		<br>
-	<</if>>
-	<<if $images is 1>>
-		<div id="stats" @class="($extendedStats ? 'statsExtended' : '')" onclick="extendStats()">
-			<<statsCaption>>
+		<div id="sidebar-look-description">
+			<<sidebarlookdescription>>
 		</div>
-	<<else>>
-		<div id="money-noimg">
-			<<statsMoneyNoImg>>
-		</div>
-		<br>
-
-		It is <<ampm>>.
-		<br>
-		It is <<print getWeekDay($weekday)>>.
 		<br>
-	<</if>>
-	<<schoolday>>
-	<br>
-	<div id="sidebar-look-description">
-		<<sidebarlookdescription>>
-	</div>
-	<br>
 
-	<<clamp>>
+		<<clamp>>
 
-	<<calculateallure>>
-	<<set $rng to random(1, 100)>>
+		<<calculateallure>>
+		<<set $rng to random(1, 100)>>
 
-	<<if $worn.neck.collared gte 1>>
-		<span class="pink">A collar encases your neck.</span>
-		<br>
-	<</if>>
+		<<if $worn.neck.collared gte 1>>
+			<span class="pink">A collar encases your neck.</span>
+			<br>
+		<</if>>
 
-	<<if $penilechastityparasite isnot 0>>
-		<span class="pink">You feel $penilechastityparasite squirming around your penis.</span>
-		<br>
-	<</if>>
-	<<if $vaginalchastityparasite isnot 0 and $vaginalchastityparasite eq $analchastityparasite>>
-		<span class="pink">You feel $vaginalchastityparasite squirming inside your vagina and lower intestine.</span>
-		<br>
-	<<else>>
-		<<if $vaginalchastityparasite isnot 0>>
-			<span class="pink">You feel $vaginalchastityparasite squirming inside your vagina.</span>
+		<<if $penilechastityparasite isnot 0>>
+			<span class="pink">You feel $penilechastityparasite squirming around your penis.</span>
 			<br>
 		<</if>>
-		<<if $analchastityparasite isnot 0>>
-			<span class="pink">You feel $analchastityparasite squirming inside your lower intestine.</span>
+		<<if $vaginalchastityparasite isnot 0 and $vaginalchastityparasite eq $analchastityparasite>>
+			<span class="pink">You feel $vaginalchastityparasite squirming inside your vagina and lower intestine.</span>
 			<br>
+		<<else>>
+			<<if $vaginalchastityparasite isnot 0>>
+				<span class="pink">You feel $vaginalchastityparasite squirming inside your vagina.</span>
+				<br>
+			<</if>>
+			<<if $analchastityparasite isnot 0>>
+				<span class="pink">You feel $analchastityparasite squirming inside your lower intestine.</span>
+				<br>
+			<</if>>
 		<</if>>
-	<</if>>
 
-	<<for _type range $parasite.types>>
-		<<switch $parasite[_type].length>>
-		<<case 0>>
-		<<case 1>>
-			<<if $parasite[_type][0] is "nipples">>
-				<span class="pink">The _type parasites clinging to your <<print $parasite[_type][0]>> suck and massage you.</span>
-			<<else>>
-				<span class="pink">The _type parasite clinging to your <<print $parasite[_type][0]>> sucks and massages you.</span>
+		<<for _type range $parasite.types>>
+			<<switch $parasite[_type].length>>
+			<<case 0>>
+			<<case 1>>
+				<<if $parasite[_type][0] is "nipples">>
+					<span class="pink">The _type parasites clinging to your <<print $parasite[_type][0]>> suck and massage you.</span>
+				<<else>>
+					<span class="pink">The _type parasite clinging to your <<print $parasite[_type][0]>> sucks and massages you.</span>
+				<</if>>
+				<br>
+			<<case 2>>
+				<span class="pink">The _type parasites clinging to your <<print $parasite[_type][0]>> and <<print $parasite[_type][1]>> suck and massage you.</span>
+				<br>
+			<<default>>
+				<<set _pstring to $parasite[_type][0]>>
+				<<for _i to 1; _i lt $parasite[_type].length - 1; _i++>>
+					<<set _pstring += ", " + $parasite[_type][_i]>>
+				<</for>>
+				<<set _pstring += ", and " + $parasite[_type][_i]>>
+				<span class="pink">The _type parasites clinging to your _pstring suck and massage you.</span>
+				<br>
+			<</switch>>
+		<</for>>
+
+		<<if $parasite.left_ear.name and $parasite.left_ear.name eq $parasite.right_ear.name>>
+			<<if $parasite.left_ear.name is "slime">>
+				<span class="lewd">The $parasite.left_ear.name in each ear influences your thoughts.</span>
+				<br>
 			<</if>>
-			<br>
-		<<case 2>>
-			<span class="pink">The _type parasites clinging to your <<print $parasite[_type][0]>> and <<print $parasite[_type][1]>> suck and massage you.</span>
-			<br>
-		<<default>>
-			<<set _pstring to $parasite[_type][0]>>
-			<<for _i to 1; _i lt $parasite[_type].length - 1; _i++>>
-				<<set _pstring += ", " + $parasite[_type][_i]>>
-			<</for>>
-			<<set _pstring += ", and " + $parasite[_type][_i]>>
-			<span class="pink">The _type parasites clinging to your _pstring suck and massage you.</span>
-			<br>
-		<</switch>>
-	<</for>>
+		<<else>>
+			<<if $parasite.left_ear.name is "slime">>
+				<span class="lewd">The $parasite.left_ear.name in your left ear influences your thoughts.</span>
+				<br>
+			<</if>>
+			<<if $parasite.right_ear.name is "slime">>
+				<span class="lewd">The $parasite.right_ear.name in your right ear influences your thoughts.</span>
+				<br>
+			<</if>>
+		<</if>>
 
-	<<if $parasite.left_ear.name and $parasite.left_ear.name eq $parasite.right_ear.name>>
-		<<if $parasite.left_ear.name is "slime">>
-			<span class="lewd">The $parasite.left_ear.name in each ear influences your thoughts.</span>
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			<span class="pink">Your arms are bound.</span>
 			<br>
-		<</if>>
-	<<else>>
-		<<if $parasite.left_ear.name is "slime">>
-			<span class="lewd">The $parasite.left_ear.name in your left ear influences your thoughts.</span>
+		<<elseif $leftarm is "bound">>
+			<span class="purple">Your left arm is bound.</span>
+			<br>
+		<<elseif $rightarm is "bound">>
+			<span class="purple">Your right arm is bound.</span>
 			<br>
 		<</if>>
-		<<if $parasite.right_ear.name is "slime">>
-			<span class="lewd">The $parasite.right_ear.name in your right ear influences your thoughts.</span>
+		<<if $feetuse is "bound" or $worn.feet.type.includes("shackle")>>
+			<span class="pink">Your legs are bound.</span>
 			<br>
 		<</if>>
-	<</if>>
+		<<goo>>
 
-	<<if $leftarm is "bound" and $rightarm is "bound">>
-		<span class="pink">Your arms are bound.</span>
-		<br>
-	<<elseif $leftarm is "bound">>
-		<span class="purple">Your left arm is bound.</span>
-		<br>
-	<<elseif $rightarm is "bound">>
-		<span class="purple">Your right arm is bound.</span>
-		<br>
-	<</if>>
-	<<if $feetuse is "bound" or $worn.feet.type.includes("shackle")>>
-		<span class="pink">Your legs are bound.</span>
+		<div id="statmeters">
+			<<if $gamemode isnot "soft">>
+				<<paincaption>>
+			<</if>>
+			<<arousalcaption>>
+			<<tirednesscaption>>
+			<<stresscaption>>
+			<<if $innocencestate is 1>>
+				<<innocencecaption>>
+			<<else>>
+				<<traumacaption>>
+			<</if>>
+			<<if $gamemode isnot "soft">>
+				<<controlcaption>>
+			<</if>>
+			<<allurecaption>>
+			<<if $underwater is 1>>
+				<<oxygencaption true>>
+			<</if>>
+			<<drunk>><<drugged>><<hallucinogen>>
+		</div>
 		<br>
-	<</if>>
-	<<goo>>
-
-	<div id="statmeters">
-		<<if $gamemode isnot "soft">>
-			<<paincaption>>
-		<</if>>
-		<<arousalcaption>>
-		<<tirednesscaption>>
-		<<stresscaption>>
-		<<if $innocencestate is 1>>
-			<<innocencecaption>>
-		<<else>>
-			<<traumacaption>>
-		<</if>>
-		<<if $gamemode isnot "soft">>
-			<<controlcaption>>
-		<</if>>
-		<<allurecaption>>
-		<<if $underwater is 1>>
-			<<oxygencaption true>>
-		<</if>>
-		<<drunk>><<drugged>><<hallucinogen>>
-	</div>
-	<br>
-	<<if $passage isnot "Start" and $passage isnot "Start2">>
-		<<if $sidebarTime is "top">>
-			<<append #mobileStats>><<mobileStatsTime>><</append>>
-		<</if>>
-		<<if $sidebarStats isnot "Disabled">>
-			<<append #mobileStats>><<mobileStats>><</append>>
-		<</if>>
-		<<if $sidebarTime is "bottom">>
-			<<append #mobileStats>><<mobileStatsTime>><</append>>
+		<<if $passage isnot "Start" and $passage isnot "Start2">>
+			<<if $sidebarTime is "top">>
+				<<append #mobileStats>><<mobileStatsTime>><</append>>
+			<</if>>
+			<<if $sidebarStats isnot "Disabled">>
+				<<append #mobileStats>><<mobileStats>><</append>>
+			<</if>>
+			<<if $sidebarTime is "bottom">>
+				<<append #mobileStats>><<mobileStatsTime>><</append>>
+			<</if>>
 		<</if>>
-	<</if>>
 
-	<<if $tipdisable is "f">>
-		<span class="gold">Tip:</span> <<tips>>
-		<br><br>
-	<</if>>
+		<<if $tipdisable is "f">>
+			<span class="gold">Tip:</span> <<tips>>
+			<br><br>
+		<</if>>
 
-	<<button CHARACTERISTICS>>
-		<<overlayReplace "characteristics">>
-	<</button>>
-	<<button SOCIAL>>
-		<<overlayReplace "social">>
-	<</button>>
-	<div class="sidebarButtonSplit">
-		<<button TRAITS>>
-			<<overlayReplace "traits">>
-		<</button>>
-		<<button JOURNAL>>
-			<<overlayReplace "journal">>
+		<<button CHARACTERISTICS>>
+			<<overlayReplace "characteristics">>
 		<</button>>
-	</div>
-	<div class="sidebarButtonSplit">
-		<<button STATS>>
-			<<overlayReplace "statistics">>
-		<</button>>
-		<<button FEATS>>
-			<<overlayReplace "gameFeats">>
+		<<button SOCIAL>>
+			<<overlayReplace "social">>
 		<</button>>
-	</div>
-	<br>
-	<div class="sidebarButtonSplit">
-		<<if $dancing is 0 and $combat is 0 and $passage isnot "Start2" and $cheatdisable is "f" or $debug is 1>>
-			<<button CHEATS>>
-				<<overlayReplace "cheats">>
+		<div class="sidebarButtonSplit">
+			<<button TRAITS>>
+				<<overlayReplace "traits">>
 			<</button>>
+			<<button JOURNAL>>
+				<<overlayReplace "journal">>
+			<</button>>
+		</div>
+		<div class="sidebarButtonSplit">
+			<<button STATS>>
+				<<overlayReplace "statistics">>
+			<</button>>
+			<<button FEATS>>
+				<<overlayReplace "gameFeats">>
+			<</button>>
+		</div>
+		<br>
+		<div class="sidebarButtonSplit">
+			<<if $dancing is 0 and $combat is 0 and $passage isnot "Start2" and $cheatdisable is "f" or $debug is 1>>
+				<<button CHEATS>>
+					<<overlayReplace "cheats">>
+				<</button>>
+			<</if>>
+			<<if $debug is 1>>
+				<<debug>>
+			<</if>>
+		</div>
+		<!-- Event debug button - Shows an overlay stored in debug-events.twee. -->
+		<<if $event isnot undefined and $debugdisable is "f">>
+			<<set _temp to "<span class='yellow'>SHOW EVENT INFO</span>">>
+			<<if EventSystem.Get(0).area[0] is $passage>>
+				<<set _eventalertmajorarea to false>>
+				<<set _temp to "<span class='green'>EVENT ACTIVE</span>">>
+			<<elseif setup.majorAreas.includes($passage)>>
+				<<set _eventalertmajorarea to true>>
+				<<set _temp to "<span class='red'>EVENT ACTIVE</span>">>
+			<<elseif $event.buffer.map(e => e.area[0]).length is 1 and ["Forest Cabin", "Eden Cabin", "Eden Clearing"].includes(EventSystem.Get(0).area[0])>>
+				<<set _temp to "<span class='green'>EVENT ACTIVE</span>">>
+			<</if>>
+			<<button _temp>><<overlayReplace "eventExtraInfo">><</button>>
+			<<unset _temp>>
 		<</if>>
-		<<if $debug is 1>>
-			<<debug>>
-		<</if>>
-	</div>
-	<!-- Event debug button - Shows an overlay stored in debug-events.twee. -->
-	<<if $event isnot undefined and $debugdisable is "f">>
-		<<set _temp to "<span class='yellow'>SHOW EVENT INFO</span>">>
-		<<if EventSystem.Get(0).area[0] is $passage>>
-			<<set _eventalertmajorarea to false>>
-			<<set _temp to "<span class='green'>EVENT ACTIVE</span>">>
-		<<elseif setup.majorAreas.includes($passage)>>
-			<<set _eventalertmajorarea to true>>
-			<<set _temp to "<span class='red'>EVENT ACTIVE</span>">>
-		<<elseif $event.buffer.map(e => e.area[0]).length is 1 and ["Forest Cabin", "Eden Cabin", "Eden Clearing"].includes(EventSystem.Get(0).area[0])>>
-			<<set _temp to "<span class='green'>EVENT ACTIVE</span>">>
+		<<if $showDebugRenderer>>
+			<<button "DEBUG RENDERER">><<overlayReplace "canvasModel">><</button>>
 		<</if>>
-		<<button _temp>><<overlayReplace "eventExtraInfo">><</button>>
-		<<unset _temp>>
-	<</if>>
-	<<if $showDebugRenderer>>
-		<<button "DEBUG RENDERER">><<overlayReplace "canvasModel">><</button>>
-	<</if>>
-	<div class="sidebarButtonSplit">
-		<<button OPTIONS>>
-			<<overlayReplace "options">>
-		<</button>>
-		<<button SAVES>>
-			<<overlayReplace "saves">>
-		<</button>>
+		<div class="sidebarButtonSplit">
+			<<button OPTIONS>>
+				<<overlayReplace "options">>
+			<</button>>
+			<<button SAVES>>
+				<<overlayReplace "saves">>
+			<</button>>
+		</div>
 	</div>
 </div>
 <<else>>
@@ -401,19 +405,19 @@
 	<<if $makeup.eyeshadow != 0>><<set $allure += 100>><</if>>
 	<<if $makeup.mascara != 0>><<set $allure += 100>><</if>>
 
-	<<set $allure += ($famesex / 10)>>
-	<<set $allure += ($famerape / 10)>>
-	<<set $allure += ($famebestiality / 10)>>
-	<<set $allure += ($fameexhibitionism / 10)>>
-	<<set $allure += ($famepregnancy / 10)>>
-
-	<<set $allure -= ($famescrap / 2)>>
-	<<set $allure -= ($famegood / 2)>>
-	<<set $allure -= ($famebusiness / 2)>>
-	<<set $allure -= ($famesocial / 2)>>
-	<<set $allure -= ($famemodel / 2)>>
+	<<set $allure += ($fame.sex / 10)>>
+	<<set $allure += ($fame.rape / 10)>>
+	<<set $allure += ($fame.bestiality / 10)>>
+	<<set $allure += ($fame.exhibitionism / 10)>>
+	<<set $allure += ($fame.pregnancy / 10)>>
+
+	<<set $allure -= ($fame.scrap / 2)>>
+	<<set $allure -= ($fame.good / 2)>>
+	<<set $allure -= ($fame.business / 2)>>
+	<<set $allure -= ($fame.social / 2)>>
+	<<set $allure -= ($fame.model / 2)>>
 	<<if $dev is 1>>
-		<<set $allure -= ($famepimp / 2)>>
+		<<set $allure -= ($fame.pimp / 2)>>
 	<</if>>
 	<<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6>>
 		<<set $allure += 2000>>
@@ -604,7 +608,7 @@ Your identity is concealed by your $worn.face.name.
 <</widget>>
 -->
 
-<!-- NOTE: THIS WIDGET IS UNUSED 
+<!-- NOTE: THIS WIDGET IS UNUSED
 <<widget "stripcaption">>
 
 <<if !$worn.upper.type.includes("naked") and $upperwetstage gte 3 and !$worn.lower.type.includes("naked") and $lowerwetstage gte 3 and !$worn.under_lower.type.includes("naked") and !$worn.genitals.type.includes("chastity") and $underlowerwetstage gte 3 and !$worn.under_upper.type.includes("naked") and $underupperwetstage gte 3>>
@@ -897,7 +901,7 @@ Your $worn.under_upper.name <<underupperhas>> been pulled to your $worn.under_up
 <<elseif $player.gender is "h">>
 	<<if $player.gender_body is "m" or ($player.gender_body is "a" and $player.breastsize lte 3)>>
 		<<set _clothesType to "male">>
-	<<else>> <!-- if $player.gender_body is "f" or ($player.gender_body is "a" and $player.breastsize gt 3)) --> 
+	<<else>> <!-- if $player.gender_body is "f" or ($player.gender_body is "a" and $player.breastsize gt 3)) -->
 		<<set _clothesType to "female">>
 	<</if>>
 <<else>> <!-- if $player.gender is "f" -->
diff --git a/game/base-system/characteristics.twee b/game/base-system/characteristics.twee
index c3f3ccad808689e75bd5f8df22d0201858400a72..3bb5afe56ed46df28956167ccf1bd636c1d1dd6f 100644
--- a/game/base-system/characteristics.twee
+++ b/game/base-system/characteristics.twee
@@ -2,19 +2,6 @@
 
 <<widget "characteristics">>
 
-It is the $monthday<<monthday>> of <<month>> $year.
-
-It has been $days days since the game started.
-<br>
-<<if $hardmodedays isnot undefined>>
-	You survived <span class="gold">$hardmodedays</span> days on hard mode.
-	<br>
-<</if>>
-<<schoolterm>>
-<br>
-It is $season.
-<br><br>
-
 You are
 <<if $wolfgirl gte 6 or $cat gte 6 or $cow gte 6 or $harpy gte 6>>
 	<<if $angel gte 6>>
@@ -73,7 +60,7 @@ You are
 <br><br>
 <!-- -->
 
-You have a <<skincolourtext>> 
+You have a <<skincolourtext>>
 <<if $player.breastsize gte 1>>
 	<<if $player.breastsize is $player.perceived_breastsize>>
 		You have <<breasts>>.
@@ -88,24 +75,24 @@ You have a <<skincolourtext>>
 		<</if>>
 	<</if>>
 <<elseif $player.breastsize is 0 and $player.perceived_breastsize gte 1>>
-    Your chest is flat, but your clothing pads it, making it look <<breastsizedesc $player.perceived_breastsize>>.
+	Your chest is flat, but your clothing pads it, making it look <<breastsizedesc $player.perceived_breastsize>>.
 <</if>>
 You have a <<bottom>>.
 <<if $player.penisExist>>You have a<<if $player.penissize is 4>>n<</if>> <<penis>>.<</if>>
 
 <!--Hair Details-->
 <<set _hairTextConfig = { currentValue : $hairlength, states : [
-		{ requiredValue: 0,   	color: '',	preText: 'Your ', 									description: '<<haircolourtext>>', postText: ' hair is short.' },
-		{ requiredValue: 100,   color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair passes your chin, <<fringelength>>' },
-		{ requiredValue: 200,   color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair comes down to your shoulders, <<fringelength>>' },
-		{ requiredValue: 300,   color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair is quite long, and comes down to the top of your chest, <<fringelength>>' },
-		{ requiredValue: 400,   color: '',	preText: 'When left natural, your long ',			description: '<<haircolourtext>>', postText: ' hair hangs down to your nipples, <<fringelength>>' },
-		{ requiredValue: 500,   color: '',	preText: 'When left natural, your long ',			description: '<<haircolourtext>>', postText: ' hair reaches the top of your tummy, <<fringelength>>' },
-		{ requiredValue: 600,   color: '',	preText: 'When left natural, your long ',			description: '<<haircolourtext>>', postText: ' hair reaches your navel, <<fringelength>>' },
-		{ requiredValue: 700,  	color: '',	preText: 'When left natural, your very long ',		description: '<<haircolourtext>>', postText: ' hair reaches your thighs, <<fringelength>>' },
-		{ requiredValue: 800,   color: '',	preText: 'When left natural, your very long ',		description: '<<haircolourtext>>', postText: ' hair reaches your knees, <<fringelength>>' },
-		{ requiredValue: 900,   color: '',	preText: 'When left natural, your extremely long ',	description: '<<haircolourtext>>', postText: ' hair reaches your ankles, <<fringelength>>' },
-		{ requiredValue: 1000,  color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair is so long you need be careful lest you trip on it, <<fringelength>>' }
+		{ requiredValue: 0,		color: '',	preText: 'Your ',									description: '<<haircolourtext>>', postText: ' hair is short.' },
+		{ requiredValue: 100,	color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair passes your chin, <<fringelength>>' },
+		{ requiredValue: 200,	color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair comes down to your shoulders, <<fringelength>>' },
+		{ requiredValue: 300,	color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair is quite long, and comes down to the top of your chest, <<fringelength>>' },
+		{ requiredValue: 400,	color: '',	preText: 'When left natural, your long ',			description: '<<haircolourtext>>', postText: ' hair hangs down to your nipples, <<fringelength>>' },
+		{ requiredValue: 500,	color: '',	preText: 'When left natural, your long ',			description: '<<haircolourtext>>', postText: ' hair reaches the top of your tummy, <<fringelength>>' },
+		{ requiredValue: 600,	color: '',	preText: 'When left natural, your long ',			description: '<<haircolourtext>>', postText: ' hair reaches your navel, <<fringelength>>' },
+		{ requiredValue: 700,	color: '',	preText: 'When left natural, your very long ',		description: '<<haircolourtext>>', postText: ' hair reaches your thighs, <<fringelength>>' },
+		{ requiredValue: 800,	color: '',	preText: 'When left natural, your very long ',		description: '<<haircolourtext>>', postText: ' hair reaches your knees, <<fringelength>>' },
+		{ requiredValue: 900,	color: '',	preText: 'When left natural, your extremely long ',	description: '<<haircolourtext>>', postText: ' hair reaches your ankles, <<fringelength>>' },
+		{ requiredValue: 1000,	color: '',	preText: 'When left natural, your ',				description: '<<haircolourtext>>', postText: ' hair is so long you need be careful lest you trip on it, <<fringelength>>' }
 	]
 }>>
 <<characteristic-text _hairTextConfig>>
@@ -133,24 +120,24 @@ You have a <<bottom>>.
 <!--Semen Details-->
 <<if $player.penisExist>>
 	<<set _semenCapacityTextConfig = { currentValue : $semen_volume, preText: 'You produce ', states : [
-			{ requiredValue: 0,   	color: '',		 description: '', 				postText: ' no cum.' },
-			{ requiredValue: 1, 	color: 'red',	 description: 'a tiny', 		postText: ' amount of cum, ' },
-			{ requiredValue: 100,   color: 'pink',	 description: 'a small', 		postText: ' amount of cum, ' },
-			{ requiredValue: 300,   color: 'purple', description: 'a limited', 		postText: ' amount of cum, ' },
-			{ requiredValue: 500,   color: 'blue',	 description: 'a decent',		postText: ' amount of cum, ' },
-			{ requiredValue: 1000,	color: 'lblue',	 description: 'a large', 		postText: ' amount of cum, ' },
-			{ requiredValue: 1500,	color: 'teal',	 description: 'a huge',			postText: ' amount of cum, ' },
-			{ requiredValue: 2000,	color: 'green',	 description: 'a prodigious',	postText: ' amount of cum, ' }
+			{ requiredValue: 0,		color: '',			description: '',				postText: ' no cum.' },
+			{ requiredValue: 1,		color: 'red',		description: 'a tiny',			postText: ' amount of cum, ' },
+			{ requiredValue: 100,	color: 'pink',		description: 'a small',			postText: ' amount of cum, ' },
+			{ requiredValue: 300,	color: 'purple',	description: 'a limited',		postText: ' amount of cum, ' },
+			{ requiredValue: 500,	color: 'blue',		description: 'a decent',		postText: ' amount of cum, ' },
+			{ requiredValue: 1000,	color: 'lblue',		description: 'a large',			postText: ' amount of cum, ' },
+			{ requiredValue: 1500,	color: 'teal',		description: 'a huge',			postText: ' amount of cum, ' },
+			{ requiredValue: 2000,	color: 'green',		description: 'a prodigious',	postText: ' amount of cum, ' }
 		]
 	}>>
 	<<set _semenVolumeTextConfig = { currentValue : $semen_amount, states : [
-			{ requiredValue: 0, 						color: 'red',	 preText: "", 				description: "but you\'ve been milked completely dry."},
-			{ requiredValue: ($semen_volume / 7) * 2,   color: 'pink',	 preText: "but you\'re ",	description: 'running out. '},
-			{ requiredValue: ($semen_volume / 7) * 3,   color: 'purple', preText: "but you\'re ",	description: 'running low. '},
-			{ requiredValue: ($semen_volume / 7) * 4,   color: 'blue',	 preText: "and you\'ve ",	description: 'about half left. '},
-			{ requiredValue: ($semen_volume / 7) * 5,	color: 'lblue',	 preText: "and you have ", 	description: 'plenty left. '},
-			{ requiredValue: ($semen_volume / 7) * 6,	color: 'teal',	 preText: "and you\'re ", 	description: 'almost full. '},
-			{ requiredValue:  $semen_volume,			color: 'green',	 preText: "and you\'re ",	description: 'full to the brim. '}
+			{ requiredValue: 0,							color: 'red',		preText: "",				description: "but you\'ve been milked completely dry."},
+			{ requiredValue: ($semen_volume / 7) * 2,	color: 'pink',		preText: "but you\'re ",	description: 'running out. '},
+			{ requiredValue: ($semen_volume / 7) * 3,	color: 'purple',	preText: "but you\'re ",	description: 'running low. '},
+			{ requiredValue: ($semen_volume / 7) * 4,	color: 'blue',		preText: "and you\'ve ",	description: 'about half left. '},
+			{ requiredValue: ($semen_volume / 7) * 5,	color: 'lblue',		preText: "and you have ",	description: 'plenty left. '},
+			{ requiredValue: ($semen_volume / 7) * 6,	color: 'teal',		preText: "and you\'re ",	description: 'almost full. '},
+			{ requiredValue: $semen_volume,				color: 'green',		preText: "and you\'re ",	description: 'full to the brim. '}
 		]
 	}>>
 	<<characteristic-text _semenCapacityTextConfig>>
@@ -176,23 +163,23 @@ You have a <<bottom>>.
 <!--Lactation Details-->
 <<if $lactating is 1 and $breastfeedingdisable is "f">>
 	<<set _milkCapacityTextConfig = { currentValue : $milk_volume, preText: 'Your breasts produce a ', postText: ' amount of milk, ', states : [
-				{ requiredValue: 0, 	color: 'red',	 description: 'tiny'},
-				{ requiredValue: 100,   color: 'pink',	 description: 'small'},
-				{ requiredValue: 300,   color: 'purple', description: 'limited'},
-				{ requiredValue: 500,   color: 'blue',	 description: 'decent'},
-				{ requiredValue: 1000,	color: 'lblue',	 description: 'large'},
-				{ requiredValue: 1500,	color: 'teal',	 description: 'huge'},
-				{ requiredValue: 2000,	color: 'green',	 description: 'prodigious'}
+				{ requiredValue: 0,		color: 'red',		description: 'tiny'},
+				{ requiredValue: 100,	color: 'pink',		description: 'small'},
+				{ requiredValue: 300,	color: 'purple',	description: 'limited'},
+				{ requiredValue: 500,	color: 'blue',		description: 'decent'},
+				{ requiredValue: 1000,	color: 'lblue',		description: 'large'},
+				{ requiredValue: 1500,	color: 'teal',		description: 'huge'},
+				{ requiredValue: 2000,	color: 'green',		description: 'prodigious'}
 			]
 		}>>
 	<<set _milkVolumeTextConfig = { currentValue : $milk_amount, states : [
-			{ requiredValue: 0, 						color: 'red',	 preText: "", 				description: " but you\'ve been milked completely dry."},
-			{ requiredValue: ($milk_volume / 7) * 2,	color: 'pink',	 preText: "but you\'re ",	description: ' running out.'},
-			{ requiredValue: ($milk_volume / 7) * 3,	color: 'purple', preText: "but you\'re ",	description: ' running low.'},
-			{ requiredValue: ($milk_volume / 7) * 4,	color: 'blue',	 preText: "and you\'ve  ",	description: ' about half left.'},
-			{ requiredValue: ($milk_volume / 7) * 5,	color: 'lblue',	 preText: "and you have ", 	description: ' plenty left.'},
-			{ requiredValue: ($milk_volume / 7) * 6,	color: 'teal',	 preText: "and you\'re ", 	description: ' almost full.'},
-			{ requiredValue:  $milk_volume,				color: 'green',	 preText: "and you\'re ",	description: ' full to the brim.'}
+			{ requiredValue: 0,							color: 'red',		preText: "",				description: " but you\'ve been milked completely dry."},
+			{ requiredValue: ($milk_volume / 7) * 2,	color: 'pink',		preText: "but you\'re ",	description: ' running out.'},
+			{ requiredValue: ($milk_volume / 7) * 3,	color: 'purple',	preText: "but you\'re ",	description: ' running low.'},
+			{ requiredValue: ($milk_volume / 7) * 4,	color: 'blue',		preText: "and you\'ve ",	description: ' about half left.'},
+			{ requiredValue: ($milk_volume / 7) * 5,	color: 'lblue',		preText: "and you have ",	description: ' plenty left.'},
+			{ requiredValue: ($milk_volume / 7) * 6,	color: 'teal',		preText: "and you\'re ",	description: ' almost full.'},
+			{ requiredValue: $milk_volume,				color: 'green',		preText: "and you\'re ",	description: ' full to the brim.'}
 		]
 	}>>
 	<<characteristic-text _milkCapacityTextConfig>>
@@ -205,7 +192,7 @@ You have a <<bottom>>.
 		{ requiredValue: 15,	color: 'teal',	description: 'a little slick.',	postText: ' Insertions will be difficult for all but the smallest penises.' },
 		{ requiredValue: 30,	color: 'lblue',	description: 'slick.',			postText: ' Most penises will have a hard time penetrating.' },
 		{ requiredValue: 45,	color: 'blue',	description: 'moist.',			postText: ' Some penises will be able to penetrate without difficulty.' },
-		{ requiredValue: 60,	color: 'purple',description: 'wet.', 			postText: ' Most penises will have an easy time sliding in.' },
+		{ requiredValue: 60,	color: 'purple',description: 'wet.',			postText: ' Most penises will have an easy time sliding in.' },
 		{ requiredValue: 75,	color: 'pink',	description: 'dripping.',		postText: ' All but the largest penises will have an easy time sliding in.' },
 		{ requiredValue: 90,	color: 'red',	description: 'drenched.',		postText: ' Even the largest penises will have an easy time sliding in.' }
 ]>>
@@ -222,7 +209,7 @@ You have a <<bottom>>.
 		{ requiredValue: 15,	color: 'teal',	description: 'a little slick.',	postText: ''},
 		{ requiredValue: 30,	color: 'lblue',	description: 'slick.',			postText: ''},
 		{ requiredValue: 45,	color: 'blue',	description: 'moist.',			postText: ''},
-		{ requiredValue: 60,	color: 'purple',description: 'wet.', 			postText: ''},
+		{ requiredValue: 60,	color: 'purple',description: 'wet.',			postText: ''},
 		{ requiredValue: 75,	color: 'pink',	description: 'dripping.',		postText: ''},
 		{ requiredValue: 90,	color: 'red',	description: 'well-lubricated.',	postText: ($player.penissize >= 4) ? " It shouldn\'t have much trouble sliding into places, even at your size." : ''}
 	]}>>
@@ -253,13 +240,13 @@ You have a <<bottom>>.
 			<</if>>
 			<<set _purityConfig = { name : "Purity", icon : _purityIcon, displayType : "level", currentValue : $purity, modifier: 100, modTypes: { good: [], bad: [] },
 				states : [
-					{ requiredValue: 0, 	level: 0, color: 'red',		description: 'You are beyond defiled.'},
-					{ requiredValue: 1, 	level: 1, color: 'red',		description: 'You feel utterly defiled.'},
-					{ requiredValue: 500, 	level: 2, color: 'pink',	description: 'You feel defiled.'},
-					{ requiredValue: 600, 	level: 3, color: 'purple',	description: 'You feel somewhat defiled.'},
-					{ requiredValue: 700, 	level: 4, color: 'blue',	description: 'You feel soiled.'},
-					{ requiredValue: 800, 	level: 5, color: 'lblue',	description: 'You feel slightly soiled.'},
-					{ requiredValue: 900, 	level: 6, color: 'teal',	description: "You don\'t feel entirely pure."},
+					{ requiredValue: 0,		level: 0, color: 'red',		description: 'You are beyond defiled.'},
+					{ requiredValue: 1,		level: 1, color: 'red',		description: 'You feel utterly defiled.'},
+					{ requiredValue: 500,	level: 2, color: 'pink',	description: 'You feel defiled.'},
+					{ requiredValue: 600,	level: 3, color: 'purple',	description: 'You feel somewhat defiled.'},
+					{ requiredValue: 700,	level: 4, color: 'blue',	description: 'You feel soiled.'},
+					{ requiredValue: 800,	level: 5, color: 'lblue',	description: 'You feel slightly soiled.'},
+					{ requiredValue: 900,	level: 6, color: 'teal',	description: "You don\'t feel entirely pure."},
 					{ requiredValue: 1000,	level: 7, color: 'green',	description: 'You are angelic.'}
 				]
 			}>>
@@ -267,13 +254,13 @@ You have a <<bottom>>.
 			<!--AWARENESS-->
 			<<set _awarenessConfig = { name : "Awareness", icon : "ui/sym_awareness", displayType : "level", currentValue : $awareness, modifier: 100, modTypes: { good: [], bad: [] },
 				states : [
-					{ requiredValue: -200, 	level: 0, color: 'green',	description: 'You are innocent.'},
-					{ requiredValue: 1, 	level: 1, color: 'teal',	description: 'You are almost entirely innocent.'},
-					{ requiredValue: 100, 	level: 2, color: 'lblue',	description: 'You have a limited understanding of sexuality.'},
-					{ requiredValue: 200, 	level: 3, color: 'blue',	description: 'You have a normal understanding of sexuality.'},
-					{ requiredValue: 300, 	level: 4, color: 'purple',	description: 'Your knowledge of sexual depravity extends beyond that of most people.'},
-					{ requiredValue: 400, 	level: 5, color: 'pink',	description: 'You have seen things that few are privy to.'},
-					{ requiredValue: 500, 	level: 6, color: 'red',		description: 'You have peered into the depths of depravity.'},
+					{ requiredValue: -200,	level: 0, color: 'green',	description: 'You are innocent.'},
+					{ requiredValue: 1,		level: 1, color: 'teal',	description: 'You are almost entirely innocent.'},
+					{ requiredValue: 100,	level: 2, color: 'lblue',	description: 'You have a limited understanding of sexuality.'},
+					{ requiredValue: 200,	level: 3, color: 'blue',	description: 'You have a normal understanding of sexuality.'},
+					{ requiredValue: 300,	level: 4, color: 'purple',	description: 'Your knowledge of sexual depravity extends beyond that of most people.'},
+					{ requiredValue: 400,	level: 5, color: 'pink',	description: 'You have seen things that few are privy to.'},
+					{ requiredValue: 500,	level: 6, color: 'red',		description: 'You have peered into the depths of depravity.'},
 					{ requiredValue: 1000,	level: 7, color: 'red',		description: 'Your understanding is transcendental.'}
 				]
 			}>>
@@ -281,13 +268,13 @@ You have a <<bottom>>.
 			<!--PHYSIQUE-->
 			<<set _physiqueConfig = { name : "Physique", icon : "ui/sym_physique", displayType : "level", currentValue : $physique, maxValue: $physiquesize, modifier: 100, modTypes: { good: [], bad: [] },
 				states : [
-					{ requiredValue: 0, 						level: 0, color: 'red',		description: 'You are emaciated.'},
-					{ requiredValue:  $physiquesize / 7, 		level: 1, color: 'pink',	description: 'You are skinny.'},
-					{ requiredValue: ($physiquesize / 7) * 2, 	level: 2, color: 'purple',	description: 'Your body is lithe and slender.'},
-					{ requiredValue: ($physiquesize / 7) * 3, 	level: 3, color: 'blue',	description: 'Your body is slim.'},
-					{ requiredValue: ($physiquesize / 7) * 4, 	level: 4, color: 'lblue',	description: 'Your body is slim and athletic.'},
-					{ requiredValue: ($physiquesize / 7) * 5, 	level: 5, color: 'teal',	description: 'Your body is toned and firm.'},
-					{ requiredValue: ($physiquesize / 7) * 6, 	level: 6, color: 'green',	description: 'Your body is toned and powerful.'}
+					{ requiredValue:	0,							level: 0, color: 'red',		description: 'You are emaciated.'},
+					{ requiredValue:	$physiquesize / 7,			level: 1, color: 'pink',	description: 'You are skinny.'},
+					{ requiredValue:	($physiquesize / 7) * 2,	level: 2, color: 'purple',	description: 'Your body is lithe and slender.'},
+					{ requiredValue:	($physiquesize / 7) * 3,	level: 3, color: 'blue',	description: 'Your body is slim.'},
+					{ requiredValue:	($physiquesize / 7) * 4,	level: 4, color: 'lblue',	description: 'Your body is slim and athletic.'},
+					{ requiredValue:	($physiquesize / 7) * 5,	level: 5, color: 'teal',	description: 'Your body is toned and firm.'},
+					{ requiredValue:	($physiquesize / 7) * 6,	level: 6, color: 'green',	description: 'Your body is toned and powerful.'}
 				]
 			}>>
 			<<if $sexStats.vagina.pregnancy.bellySize gte 10>>
@@ -316,13 +303,13 @@ You have a <<bottom>>.
 			<!--WILLPOWER-->
 			<<set _willpowerConfig = { name : "Willpower", icon : "ui/redbolt", displayType : "level", currentValue : $willpower, maxValue: $willpowermax, modifier: 100, modTypes: { good: [], bad: [] },
 				states : [
-					{ requiredValue: 0, 						level: 0, color: 'red',		description: 'You are timid.'},
-					{ requiredValue:  $willpowermax / 7, 		level: 1, color: 'pink',	description: 'You are fainthearted.'},
-					{ requiredValue: ($willpowermax / 7) * 2, 	level: 2, color: 'purple',	description: 'You are mindful.'},
-					{ requiredValue: ($willpowermax / 7) * 3, 	level: 3, color: 'blue',	description: 'You are resolved.'},
-					{ requiredValue: ($willpowermax / 7) * 4, 	level: 4, color: 'lblue',	description: 'You are determined.'},
-					{ requiredValue: ($willpowermax / 7) * 5, 	level: 5, color: 'teal',	description: 'You are tenacious.'},
-					{ requiredValue: ($willpowermax / 7) * 6, 	level: 6, color: 'green',	description: 'Your will is iron.'}
+					{ requiredValue:	0,						level: 0, color: 'red',		description: 'You are timid.'},
+					{ requiredValue:	$willpowermax / 7,		level: 1, color: 'pink',	description: 'You are fainthearted.'},
+					{ requiredValue:	($willpowermax / 7) * 2,	level: 2, color: 'purple',	description: 'You are mindful.'},
+					{ requiredValue:	($willpowermax / 7) * 3,	level: 3, color: 'blue',	description: 'You are resolved.'},
+					{ requiredValue:	($willpowermax / 7) * 4,	level: 4, color: 'lblue',	description: 'You are determined.'},
+					{ requiredValue:	($willpowermax / 7) * 5,	level: 5, color: 'teal',	description: 'You are tenacious.'},
+					{ requiredValue:	($willpowermax / 7) * 6,	level: 6, color: 'green',	description: 'Your will is iron.'}
 				]
 			}>>
 			<<if $parasite.left_ear.name is "slime" and $parasite.right_ear.name is "slime">>
@@ -333,13 +320,13 @@ You have a <<bottom>>.
 			<!--BEAUTY-->
 			<<set _beautyConfig = { name : "Beauty", icon : "ui/sym_beauty", displayType : "level", currentValue : $beauty, maxValue: $beautymax, modifier: 100, modTypes: { good: [], bad: [] },
 				states : [
-					{ requiredValue: 0, 					level: 0, color: 'red',		description: 'You are plain.'},
-					{ requiredValue:  $beautymax / 7, 		level: 1, color: 'pink',	description: 'You are cute.'},
-					{ requiredValue: ($beautymax / 7) * 2, 	level: 2, color: 'purple',	description: 'You are pretty.'},
-					{ requiredValue: ($beautymax / 7) * 3, 	level: 3, color: 'blue',	description: 'You are charming.'},
-					{ requiredValue: ($beautymax / 7) * 4, 	level: 4, color: 'lblue',	description: 'You are beautiful.'},
-					{ requiredValue: ($beautymax / 7) * 5, 	level: 5, color: 'teal',	description: 'You are ravishing.'},
-					{ requiredValue: ($beautymax / 7) * 6, 	level: 6, color: 'green',	description: 'Your beauty is divine.'}
+					{ requiredValue:	0,						level: 0, color: 'red',		description: 'You are plain.'},
+					{ requiredValue:	$beautymax / 7,			level: 1, color: 'pink',	description: 'You are cute.'},
+					{ requiredValue:	($beautymax / 7) * 2,	level: 2, color: 'purple',	description: 'You are pretty.'},
+					{ requiredValue:	($beautymax / 7) * 3,	level: 3, color: 'blue',	description: 'You are charming.'},
+					{ requiredValue:	($beautymax / 7) * 4,	level: 4, color: 'lblue',	description: 'You are beautiful.'},
+					{ requiredValue:	($beautymax / 7) * 5,	level: 5, color: 'teal',	description: 'You are ravishing.'},
+					{ requiredValue:	($beautymax / 7) * 6,	level: 6, color: 'green',	description: 'Your beauty is divine.'}
 				]
 			}>>
 
@@ -348,37 +335,37 @@ You have a <<bottom>>.
 				states : [
 					{ requiredValue: 0,		level: 0, color: 'green',	description: 'You are chaste and pure.'},
 					{ requiredValue: 1,		level: 1, color: 'teal',	description: 'You are prudish.'},
-					{ requiredValue: 15, 	level: 2, color: 'lblue',	description: 'You are sexually curious.'},
-					{ requiredValue: 35, 	level: 3, color: 'blue',	description: 'The thought of sexual contact excites you.'},
-					{ requiredValue: 55, 	level: 4, color: 'purple',	description: 'You crave sexual contact.'},
-					{ requiredValue: 75, 	level: 5, color: 'pink',	description: 'You are a slut.'},
-					{ requiredValue: 95, 	level: 6, color: 'red',		description: 'Your sexual appetite is insatiable.'}
+					{ requiredValue: 15,	level: 2, color: 'lblue',	description: 'You are sexually curious.'},
+					{ requiredValue: 35,	level: 3, color: 'blue',	description: 'The thought of sexual contact excites you.'},
+					{ requiredValue: 55,	level: 4, color: 'purple',	description: 'You crave sexual contact.'},
+					{ requiredValue: 75,	level: 5, color: 'pink',	description: 'You are a slut.'},
+					{ requiredValue: 95,	level: 6, color: 'red',		description: 'Your sexual appetite is insatiable.'}
 				]
 			}>>
 
 			<!--EXHIBITIONISM-->
 			<<set _exhibitionismConfig = { name : "Exhibitionism", icon : "ui/sym_exhibitionism", displayType : "level", currentValue : $exhibitionism, maxValue: 100, modifier: 100, modTypes: { good: [], bad: [] },
 				states : [
-					{ requiredValue: 0, 	level: 0, color: 'green',	description: 'You are coy.'},
+					{ requiredValue: 0,		level: 0, color: 'green',	description: 'You are coy.'},
 					{ requiredValue: 1,		level: 1, color: 'teal',	description: 'You are shy.'},
-					{ requiredValue: 15, 	level: 2, color: 'lblue',	description: 'You like being sexualised.'},
-					{ requiredValue: 35, 	level: 3, color: 'blue',	description: 'You enjoy lewd attention.'},
-					{ requiredValue: 55, 	level: 4, color: 'purple',	description: 'Feeling exposed excites you.'},
-					{ requiredValue: 75, 	level: 5, color: 'pink',	description: 'You are shameless.'},
-					{ requiredValue: 95, 	level: 6, color: 'red',		description: 'The thought of exposure fills you with wild abandon.'}
+					{ requiredValue: 15,	level: 2, color: 'lblue',	description: 'You like being sexualised.'},
+					{ requiredValue: 35,	level: 3, color: 'blue',	description: 'You enjoy lewd attention.'},
+					{ requiredValue: 55,	level: 4, color: 'purple',	description: 'Feeling exposed excites you.'},
+					{ requiredValue: 75,	level: 5, color: 'pink',	description: 'You are shameless.'},
+					{ requiredValue: 95,	level: 6, color: 'red',		description: 'The thought of exposure fills you with wild abandon.'}
 				]
 			}>>
 
 			<!--DEVIANCY-->
 			<<set _deviancyConfig = { name : "Deviancy", icon : "ui/sym_deviancy", displayType : "level", currentValue : $deviancy, maxValue: 100, modifier: 100, modTypes: { good: [], bad: [] },
 				states : [
-					{ requiredValue: 0, 	level: 0, color: 'green',	description: 'You are squeamish.'},
+					{ requiredValue: 0,		level: 0, color: 'green',	description: 'You are squeamish.'},
 					{ requiredValue: 1,		level: 1, color: 'teal',	description: 'You are conventional.'},
-					{ requiredValue: 15, 	level: 2, color: 'lblue',	description: 'Your tastes are strange.'},
-					{ requiredValue: 35, 	level: 3, color: 'blue',	description: 'Your tastes are shocking.'},
-					{ requiredValue: 55, 	level: 4, color: 'purple',	description: 'Your desires are scandalous.'},
-					{ requiredValue: 75, 	level: 5, color: 'pink',	description: "You crave acts others wouldn\'t conceive of."},
-					{ requiredValue: 95, 	level: 6, color: 'red',		description: 'You lust for the unspeakable.'}
+					{ requiredValue: 15,	level: 2, color: 'lblue',	description: 'Your tastes are strange.'},
+					{ requiredValue: 35,	level: 3, color: 'blue',	description: 'Your tastes are shocking.'},
+					{ requiredValue: 55,	level: 4, color: 'purple',	description: 'Your desires are scandalous.'},
+					{ requiredValue: 75,	level: 5, color: 'pink',	description: "You crave acts others wouldn\'t conceive of."},
+					{ requiredValue: 95,	level: 6, color: 'red',		description: 'You lust for the unspeakable.'}
 				]
 			}>>
 
@@ -404,27 +391,27 @@ You have a <<bottom>>.
 	<!--Common states for skills with grades-->
 	<<silently>>
 		<<set _basicSkillGrades=[
-			{ requiredValue: 0, 	level: "None",	color: 'red'},
-			{ requiredValue: 1, 	level: "F",		color: 'pink'},
-			{ requiredValue: 200, 	level: "D",		color: 'purple'},
-			{ requiredValue: 400, 	level: "C",		color: 'blue'},
-			{ requiredValue: 600, 	level: "B",		color: 'lblue'},
-			{ requiredValue: 800, 	level: "A",		color: 'teal'},
-			{ requiredValue: 1000, 	level: "S",		color: 'green'}
+			{ requiredValue: 0,		level: "None",	color: 'red'},
+			{ requiredValue: 1,		level: "F",		color: 'pink'},
+			{ requiredValue: 200,	level: "D",		color: 'purple'},
+			{ requiredValue: 400,	level: "C",		color: 'blue'},
+			{ requiredValue: 600,	level: "B",		color: 'lblue'},
+			{ requiredValue: 800,	level: "A",		color: 'teal'},
+			{ requiredValue: 1000,	level: "S",		color: 'green'}
 		]>>
 		<<set _detailedSkillGrades=[
-			{ requiredValue: 0, 	level: "None",	color: 'red'},
-			{ requiredValue: 1, 	level: "F",		color: 'pink'},
-			{ requiredValue: 100, 	level: "F+",	color: 'pink'},
-			{ requiredValue: 200, 	level: "D",		color: 'purple'},
-			{ requiredValue: 300, 	level: "D+",	color: 'purple'},
-			{ requiredValue: 400, 	level: "C",		color: 'blue'},
-			{ requiredValue: 500, 	level: "C+",	color: 'blue'},
-			{ requiredValue: 600, 	level: "B",		color: 'lblue'},
-			{ requiredValue: 700, 	level: "B+",	color: 'lblue'},
-			{ requiredValue: 800, 	level: "A",		color: 'teal'},
-			{ requiredValue: 900, 	level: "A+",	color: 'teal'},
-			{ requiredValue: 1000, 	level: "S",		color: 'green'}
+			{ requiredValue: 0,		level: "None",	color: 'red'},
+			{ requiredValue: 1,		level: "F",		color: 'pink'},
+			{ requiredValue: 100,	level: "F+",	color: 'pink'},
+			{ requiredValue: 200,	level: "D",		color: 'purple'},
+			{ requiredValue: 300,	level: "D+",	color: 'purple'},
+			{ requiredValue: 400,	level: "C",		color: 'blue'},
+			{ requiredValue: 500,	level: "C+",	color: 'blue'},
+			{ requiredValue: 600,	level: "B",		color: 'lblue'},
+			{ requiredValue: 700,	level: "B+",	color: 'lblue'},
+			{ requiredValue: 800,	level: "A",		color: 'teal'},
+			{ requiredValue: 900,	level: "A+",	color: 'teal'},
+			{ requiredValue: 1000,	level: "S",		color: 'green'}
 		]>>
 	<</silently>>
 
@@ -432,12 +419,12 @@ You have a <<bottom>>.
 	<div id="base-skills" class="characteristic-box-list" @style="($parasite.left_ear.name == 'slime' || $parasite.right_ear.name == 'slime') ? '--min-width: 30%;' : ''">
 		<!--Additional skills configurations-->
 		<<silently>>
-			<<set _corruptionConfig = 	{ name : "Corruption", 	displayType : "none",	currentValue : $corruption_slime, modifier: 100, modTypes: { good: [], bad: [] },	meterColor: 'red'}>>
-			<<set _skulduggeryConfig = 	{ name : "Skulduggery", displayType : "grade",	currentValue : $skulduggery,	modifier: 100, modTypes: { good: [], bad: [] },		states : _detailedSkillGrades}>>
-			<<set _dancingConfig = 		{ name : "Dancing", 	displayType : "grade",	currentValue : $danceskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-			<<set _swimmingConfig = 	{ name : "Swimming", 	displayType : "grade",	currentValue : $swimmingskill,	modifier: 100, modTypes: { good: [], bad: [] },		states : _detailedSkillGrades}>>
-			<<set _athleticsConfig = 	{ name : "Athletics", 	displayType : "grade",	currentValue : $athletics, 		modifier: 100, modTypes: { good: [], bad: [] }, 		states : _detailedSkillGrades}>>
-			<<set _tendingConfig = 		{ name : "Tending", 	displayType : "grade",	currentValue : $tending, 		modifier: 100, modTypes: { good: [], bad: [] }, 		states : _detailedSkillGrades}>>
+			<<set _corruptionConfig =	{ name : "Corruption",	displayType : "none",	currentValue : $corruption_slime,	modifier: 100, modTypes: { good: [], bad: [] },		meterColor: 'red'}>>
+			<<set _skulduggeryConfig =	{ name : "Skulduggery", displayType : "grade",	currentValue : $skulduggery,		modifier: 100, modTypes: { good: [], bad: [] },		states : _detailedSkillGrades}>>
+			<<set _dancingConfig =		{ name : "Dancing",		displayType : "grade",	currentValue : $danceskill,			modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+			<<set _swimmingConfig =		{ name : "Swimming",	displayType : "grade",	currentValue : $swimmingskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _detailedSkillGrades}>>
+			<<set _athleticsConfig =	{ name : "Athletics",	displayType : "grade",	currentValue : $athletics,			modifier: 100, modTypes: { good: [], bad: [] },		states : _detailedSkillGrades}>>
+			<<set _tendingConfig =		{ name : "Tending",		displayType : "grade",	currentValue : $tending,			modifier: 100, modTypes: { good: [], bad: [] },		states : _detailedSkillGrades}>>
 
 			<<if $sexStats.vagina.pregnancy.bellySize gte 10>>
 				<<switch $pregnancyStats.mother>>
@@ -545,47 +532,26 @@ You have a <<bottom>>.
 		<<characteristic-box _athleticsConfig>>
 		<<characteristic-box _tendingConfig>>
 	</div>
-	<div class="characteristic-box-extras">
-		<<if $blackmoney gte 1>>
-			You are carrying £<<print $blackmoney>> in stolen goods.
-			<br>
-		<</if>>
-		<<set _plant_keys to Object.keys($plants)>>
-		<<for _t to 0; _t lt _plant_keys.length; _t++>>
-			<<if $plants[_plant_keys[_t]].amount gte 1>><<set _plant_temp to 1>>
-				You have <span class="gold"><<print $plants[_plant_keys[_t]].amount>></span> <<print $plants[_plant_keys[_t]].plural>>. |
-			<</if>>
-		<</for>>
-		<<if _plant_temp is 1>>You can sell them by renting a stand on Connudatus Street at dawn.<</if>>
-		<<if $phials_held gte 2>>
-			You are carrying $phials_held phials of aphrodisiac. You can sell them on Elk Street.
-		<<elseif $phials_held gte 1>>
-			You are carrying a phial of aphrodisiac. You can sell it on Elk Street.
-		<</if>>
-		<<if $lurkers_held gte 1>>
-			You are carrying a lurker.
-		<</if>>
-	</div>
 
 	<h4>Sex Skills</h4>
 	<!--Sex skills configurations-->
 	<<silently>>
 		<<set _seductionConfig =	{ name : "Seduction",	displayType : "grade",	currentValue : $seductionskill, modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-		<<set _oralConfig = 		{ name : "Oral", 		displayType : "grade",	currentValue : $oralskill, 		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-		<<set _chestConfig = 		{ name : "Chest", 		displayType : "grade",	currentValue : $chestskill, 	modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-		<<set _handsConfig = 		{ name : "Hands", 		displayType : "grade",	currentValue : $handskill, 		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-		<<set _buttocksConfig =		{ name : "Buttocks", 	displayType : "grade",	currentValue : $bottomskill, 	modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-		<<set _analConfig = 		{ name : "Anal", 		displayType : "grade",	currentValue : $analskill, 		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-		<<set _thighsConfig = 		{ name : "Thighs", 		displayType : "grade",	currentValue : $thighskill, 	modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-		<<set _feetConfig = 		{ name : "Feet", 		displayType : "grade",	currentValue : $feetskill, 		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<<set _oralConfig =			{ name : "Oral",		displayType : "grade",	currentValue : $oralskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<<set _chestConfig =		{ name : "Chest",		displayType : "grade",	currentValue : $chestskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<<set _handsConfig =		{ name : "Hands",		displayType : "grade",	currentValue : $handskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<<set _buttocksConfig =		{ name : "Buttocks",	displayType : "grade",	currentValue : $bottomskill,	modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<<set _analConfig =			{ name : "Anal",		displayType : "grade",	currentValue : $analskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<<set _thighsConfig =		{ name : "Thighs",		displayType : "grade",	currentValue : $thighskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<<set _feetConfig =			{ name : "Feet",		displayType : "grade",	currentValue : $feetskill,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
 		<<if $player.penisExist>>
-			<<set _penileConfig = 	{ name : "Penile", 		displayType : "grade",	currentValue : $penileskill, 	modifier: 100, modTypes: { good: [], bad: [] },	states : _basicSkillGrades}>>
-        <</if>>
+			<<set _penileConfig =	{ name : "Penile",		displayType : "grade",	currentValue : $penileskill,	modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+		<</if>>
 		<<if playerHasStrapon()>>
-            <<set _penileConfig =     { name : "Strap-on use",	displayType : "grade",	currentValue : $penileskill,	modifier: 100, modTypes: { good: [], bad: [] },    states : _basicSkillGrades}>>
+			<<set _penileConfig =	{ name : "Strap-on use",displayType : "grade",	currentValue : $penileskill,	modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
 		<</if>>
 		<<if $player.vaginaExist>>
-			<<set _vaginalConfig = 	{ name : "Vaginal", 	displayType : "grade",	currentValue : $vaginalskill, 	modifier: 100, modTypes: { good: [], bad: [] },	states : _basicSkillGrades}>>
+			<<set _vaginalConfig =	{ name : "Vaginal",		displayType : "grade",	currentValue : $vaginalskill,	modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
 		<</if>>
 	<</silently>>
 	<<if $images is 1>>
@@ -684,18 +650,18 @@ You have a <<bottom>>.
 		<!--School grade configurations-->
 		<<silently>>
 			<<set _schoolGradeStates= [
-				{ requiredValue: -1, 	level: 'F',	 color: 'red'},
-				{ requiredValue: 0, 	level: 'D',  color: 'purple'},
-				{ requiredValue: 1, 	level: 'C',  color: 'blue'},
-				{ requiredValue: 2, 	level: 'B',  color: 'lblue'},
-				{ requiredValue: 3,		level: 'A',  color: 'teal'},
-				{ requiredValue: 4,		level: 'A*', color: 'green'}
+				{ requiredValue: -1,	level: 'F',		color: 'red'},
+				{ requiredValue: 0,		level: 'D',		color: 'purple'},
+				{ requiredValue: 1,		level: 'C',		color: 'blue'},
+				{ requiredValue: 2,		level: 'B',		color: 'lblue'},
+				{ requiredValue: 3,		level: 'A',		color: 'teal'},
+				{ requiredValue: 4,		level: 'A*',	color: 'green'}
 			]>>
 
-			<<set _scienceConfig = 	{ name : 'Science', icon : 'misc/icon/science', displayType : "grade",	currentValue : $sciencetrait, 	modifier: 100, modTypes: { good: [], bad: [] },	percent: $science_exam, 	showStars: true, starLevel: $science_star,	states : _schoolGradeStates}>>
-			<<set _mathsConfig = 	{ name : 'Maths', 	icon : 'misc/icon/math', 	displayType : "grade",	currentValue : $mathstrait, 	modifier: 100, modTypes: { good: [], bad: [] },	percent: $maths_exam,	 	showStars: true, starLevel: $maths_star,	states : _schoolGradeStates}>>
-			<<set _englishConfig = 	{ name : 'English', icon : 'misc/icon/english', displayType : "grade",	currentValue : $englishtrait, 	modifier: 100, modTypes: { good: [], bad: [] },	percent: $english_exam, 	showStars: true, starLevel: $english_star,	states : _schoolGradeStates}>>
-			<<set _historyConfig = 	{ name : 'History', icon : 'misc/icon/history', displayType : "grade",	currentValue : $historytrait, 	modifier: 100, modTypes: { good: [], bad: [] },	percent: $history_exam, 	showStars: true, starLevel: $history_star,	states : _schoolGradeStates}>>
+			<<set _scienceConfig =	{ name : 'Science', icon : 'misc/icon/science', displayType : "grade",	currentValue : $sciencetrait,	modifier: 100, modTypes: { good: [], bad: [] },	percent: $science_exam,		showStars: true, starLevel: $science_star,	states : _schoolGradeStates}>>
+			<<set _mathsConfig =	{ name : 'Maths',	icon : 'misc/icon/math',	displayType : "grade",	currentValue : $mathstrait,		modifier: 100, modTypes: { good: [], bad: [] },	percent: $maths_exam,		showStars: true, starLevel: $maths_star,	states : _schoolGradeStates}>>
+			<<set _englishConfig =	{ name : 'English', icon : 'misc/icon/english', displayType : "grade",	currentValue : $englishtrait,	modifier: 100, modTypes: { good: [], bad: [] },	percent: $english_exam,		showStars: true, starLevel: $english_star,	states : _schoolGradeStates}>>
+			<<set _historyConfig =	{ name : 'History', icon : 'misc/icon/history', displayType : "grade",	currentValue : $historytrait,	modifier: 100, modTypes: { good: [], bad: [] },	percent: $history_exam,		showStars: true, starLevel: $history_star,	states : _schoolGradeStates}>>
 			<<if $moorLuck gt 0>>
 				<<set _scienceConfig.modifier to Math.floor(_scienceConfig.modifier * (1 + ($moorLuck / 100)))>>
 				<<set _scienceConfig.modTypes.good.pushUnique("<i>????</i>")>>
@@ -715,28 +681,25 @@ You have a <<bottom>>.
 	</div>
 	<div class="characteristic-box-extras">
 		<<set _schoolPerformanceConfig = { currentValue : $school, preText: 'Your overall school performance is ', modifier: 100, modTypes: { good: [], bad: [] }, states : [
-				{ requiredValue: 0,   	color: 'red',		description: 'appalling.'},
-				{ requiredValue: 1, 	color: 'pink',		description: 'awful.'},
-				{ requiredValue: 400,   color: 'purple',	description: 'bad.'},
-				{ requiredValue: 800,   color: 'blue',		description: 'okay.'},
-				{ requiredValue: 1600,  color: 'lblue',		description: 'good.'},
+				{ requiredValue: 0,		color: 'red',		description: 'appalling.'},
+				{ requiredValue: 1,		color: 'pink',		description: 'awful.'},
+				{ requiredValue: 400,	color: 'purple',	description: 'bad.'},
+				{ requiredValue: 800,	color: 'blue',		description: 'okay.'},
+				{ requiredValue: 1600,	color: 'lblue',		description: 'good.'},
 				{ requiredValue: 2800,	color: 'teal',		description: 'excellent.'},
 				{ requiredValue: 4000,	color: 'green',		description: 'exemplary.'}
 			]
 		}>>
 		<<characteristic-text _schoolPerformanceConfig>>
 		<br>
-		<<if $antiquemoney gt 0>>
-			You are carrying antiques worth £<<print $antiquemoney>>.
-		<</if>>
 	</div>
 
 <h4>Weapon skills</h4>
 	<div id="prof" class="characteristic-box-list">
 		<<silently>>
-			<<set _sprayConfig = 		{ name : "Sprays", 		displayType : "grade",	currentValue : $prof.spray, 		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-			<<set _netConfig = 		{ name : "Nets", 		displayType : "grade",	currentValue : $prof.net, 		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
-			<<set _hiddenConfig = 		{ name : "<i>????</i>", 		displayType : "grade",	currentValue : 0, 		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+			<<set _sprayConfig =		{ name : "Sprays",		displayType : "grade",	currentValue : $prof.spray,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+			<<set _netConfig =			{ name : "Nets",		displayType : "grade",	currentValue : $prof.net,		modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
+			<<set _hiddenConfig =		{ name : "<i>????</i>",	displayType : "grade",	currentValue : 0,				modifier: 100, modTypes: { good: [], bad: [] },		states : _basicSkillGrades}>>
 		<</silently>>
 		<<characteristic-box _sprayConfig>>
 		<<if $prof.net isnot undefined>>
diff --git a/game/base-system/cheats.twee b/game/base-system/cheats.twee
index ca6c178c002b7eb19c8d27018a8eb0b3ae4ab976..94e4833cbdfd364913ce1ca3351cf7c70dee1464 100644
--- a/game/base-system/cheats.twee
+++ b/game/base-system/cheats.twee
@@ -10,6 +10,9 @@
 <<button "NPCs">>
 	<<replace #cheatsShown>><<cheats-npcs>><</replace>>
 <</button>>
+<<button "Teleport">>
+	<<replace #cheatsShown>><<cheats-teleport>><</replace>>
+<</button>>
 <<button "Other">>
 	<<replace #cheatsShown>><<cheats-other>><</replace>>
 <</button>>
@@ -1214,7 +1217,7 @@ Nipple parasites: <span id="statsnippleparasite"><<if $parasite.nipples.name>>$p
 	<<removeparasite penis>>
 	<</if>>
 	<<replace "#statspenisparasite">><<print $parasite.penis.name>><</replace>>
-	 <<updatesidebarimg>>
+	<<updatesidebarimg>>
 	<</link>>
 	<br>
 <</if>>
@@ -1230,7 +1233,7 @@ Nipple parasites: <span id="statsnippleparasite"><<if $parasite.nipples.name>>$p
 	<<removeparasite clit>>
 	<</if>>
 	<<replace "#statsclitparasite">><<print $parasite.clit.name>><</replace>>
-	 <<updatesidebarimg>>
+	<<updatesidebarimg>>
 	<</link>>
 	<br>
 <</if>>
@@ -1385,63 +1388,61 @@ Right ear parasite: <span id="statsright_earparasite"><<if $parasite.right_ear.n
 
 <<link "<">><<set $player.bodyliquid.neck.semen -= 1>><<set $player.bodyliquid.neck.semen = Math.clamp($player.bodyliquid.neck.semen , 0, 5)>><<replace "#statsnecksemen">><<print Math.trunc($player.bodyliquid.neck.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Neck semen: <span id="statsnecksemen"><<print Math.trunc($player.bodyliquid.neck.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.neck.semen += 1>><<set $player.bodyliquid.neck.semen = Math.clamp($player.bodyliquid.neck.semen , 0, 5)>><<replace "#statsnecksemen">><<print Math.trunc($player.bodyliquid.neck.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.neck.semen += 1>><<set $player.bodyliquid.neck.semen = Math.clamp($player.bodyliquid.neck.semen , 0, 5)>><<replace "#statsnecksemen">><<print Math.trunc($player.bodyliquid.neck.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.rightarm.semen -= 1>><<set $player.bodyliquid.rightarm.semen = Math.clamp($player.bodyliquid.rightarm.semen , 0, 5)>><<replace "#statsrightarmsemen">><<print Math.trunc($player.bodyliquid.rightarm.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Right arm semen: <span id="statsrightarmsemen"><<print Math.trunc($player.bodyliquid.rightarm.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.rightarm.semen += 1>><<set $player.bodyliquid.rightarm.semen = Math.clamp($player.bodyliquid.rightarm.semen , 0, 5)>><<replace "#statsrightarmsemen">><<print Math.trunc($player.bodyliquid.rightarm.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.rightarm.semen += 1>><<set $player.bodyliquid.rightarm.semen = Math.clamp($player.bodyliquid.rightarm.semen , 0, 5)>><<replace "#statsrightarmsemen">><<print Math.trunc($player.bodyliquid.rightarm.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.leftarm.semen -= 1>><<set $player.bodyliquid.leftarm.semen = Math.clamp($player.bodyliquid.leftarm.semen , 0, 5)>><<replace "#statsleftarmsemen">><<print Math.trunc($player.bodyliquid.leftarm.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Left arm semen: <span id="statsleftarmsemen"><<print Math.trunc($player.bodyliquid.leftarm.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.leftarm.semen = Math.clamp($player.bodyliquid.leftarm.semen , 0, 5)>><<replace "#statsleftarmsemen">><<print Math.trunc($player.bodyliquid.leftarm.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.leftarm.semen += 1>><<set $player.bodyliquid.leftarm.semen = Math.clamp($player.bodyliquid.leftarm.semen , 0, 5)>><<replace "#statsleftarmsemen">><<print Math.trunc($player.bodyliquid.leftarm.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.thigh.semen -= 1>><<set $player.bodyliquid.thigh.semen = Math.clamp($player.bodyliquid.thigh.semen , 0, 5)>><<replace "#statsthighsemen">><<print Math.trunc($player.bodyliquid.thigh.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Thigh semen: <span id="statsthighsemen"><<print Math.trunc($player.bodyliquid.thigh.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.thigh.semen += 1>><<set $player.bodyliquid.thigh.semen = Math.clamp($player.bodyliquid.thigh.semen , 0, 5)>><<replace "#statsthighsemen">><<print Math.trunc($player.bodyliquid.thigh.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.thigh.semen += 1>><<set $player.bodyliquid.thigh.semen = Math.clamp($player.bodyliquid.thigh.semen , 0, 5)>><<replace "#statsthighsemen">><<print Math.trunc($player.bodyliquid.thigh.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.bottom.semen -= 1>><<set $player.bodyliquid.bottom.semen = Math.clamp($player.bodyliquid.bottom.semen , 0, 5)>><<replace "#statsbottomsemen">><<print Math.trunc($player.bodyliquid.bottom.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Bottom semen: <span id="statsbottomsemen"><<print Math.trunc($player.bodyliquid.bottom.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.bottom.semen += 1>><<set $player.bodyliquid.bottom.semen = Math.clamp($player.bodyliquid.bottom.semen , 0, 5)>><<replace "#statsbottomsemen">><<print Math.trunc($player.bodyliquid.bottom.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.bottom.semen += 1>><<set $player.bodyliquid.bottom.semen = Math.clamp($player.bodyliquid.bottom.semen , 0, 5)>><<replace "#statsbottomsemen">><<print Math.trunc($player.bodyliquid.bottom.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.tummy.semen -= 1>><<set $player.bodyliquid.tummy.semen = Math.clamp($player.bodyliquid.tummy.semen , 0, 5)>><<replace "#statstummysemen">><<print Math.trunc($player.bodyliquid.tummy.semen )>><</replace>> <<updatesidebarimg>><</link>>
-Tummy semen: <span id="statstummysemen"><<print Math.trunc($player.bodyliquid.tummy.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.tummy.semen += 1>><<set $player.bodyliquid.tummy.semen = Math.clamp($player.bodyliquid.tummy.semen , 0, 5)>><<replace "#statstummysemen">><<print Math.trunc($player.bodyliquid.tummy.semen )>><</replace>> <<updatesidebarimg>><</link>>
+Tummy semen: <span id="statstummysemen"><<print Math.trunc($player.bodyliquid.tummy.semen )>></span><<link ">">><<set $player.bodyliquid.tummy.semen += 1>><<set $player.bodyliquid.tummy.semen = Math.clamp($player.bodyliquid.tummy.semen , 0, 5)>><<replace "#statstummysemen">><<print Math.trunc($player.bodyliquid.tummy.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.chest.semen -= 1>><<set $player.bodyliquid.chest.semen = Math.clamp($player.bodyliquid.chest.semen , 0, 5)>><<replace "#statschestsemen">><<print Math.trunc($player.bodyliquid.chest.semen )>><</replace>> <<updatesidebarimg>><</link>>
-Chest semen: <span id="statschestsemen"><<print Math.trunc($player.bodyliquid.chest.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.chest.semen += 1>><<set $player.bodyliquid.chest.semen = Math.clamp($player.bodyliquid.chest.semen , 0, 5)>><<replace "#statschestsemen">><<print Math.trunc($player.bodyliquid.chest.semen )>><</replace>> <<updatesidebarimg>><</link>>
+Chest semen: <span id="statschestsemen"><<print Math.trunc($player.bodyliquid.chest.semen )>></span><<link ">">><<set $player.bodyliquid.chest.semen += 1>><<set $player.bodyliquid.chest.semen = Math.clamp($player.bodyliquid.chest.semen , 0, 5)>><<replace "#statschestsemen">><<print Math.trunc($player.bodyliquid.chest.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.face.semen -= 1>><<set $player.bodyliquid.face.semen = Math.clamp($player.bodyliquid.face.semen , 0, 5)>><<replace "#statsfacesemen">><<print Math.trunc($player.bodyliquid.face.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Face semen: <span id="statsfacesemen"><<print Math.trunc($player.bodyliquid.face.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.face.semen += 1>><<set $player.bodyliquid.face.semen = Math.clamp($player.bodyliquid.face.semen , 0, 5)>><<replace "#statsfacesemen">><<print Math.trunc($player.bodyliquid.face.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.face.semen += 1>><<set $player.bodyliquid.face.semen = Math.clamp($player.bodyliquid.face.semen , 0, 5)>><<replace "#statsfacesemen">><<print Math.trunc($player.bodyliquid.face.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.hair.semen -= 1>><<set $player.bodyliquid.hair.semen = Math.clamp($player.bodyliquid.hair.semen , 0, 5)>><<replace "#statshairsemen">><<print Math.trunc($player.bodyliquid.hair.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Hair semen: <span id="statshairsemen"><<print Math.trunc($player.bodyliquid.hair.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.hair.semen += 1>><<set $player.bodyliquid.hair.semen = Math.clamp($player.bodyliquid.hair.semen , 0, 5)>><<replace "#statshairsemen">><<print Math.trunc($player.bodyliquid.hair.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.hair.semen += 1>><<set $player.bodyliquid.hair.semen = Math.clamp($player.bodyliquid.hair.semen , 0, 5)>><<replace "#statshairsemen">><<print Math.trunc($player.bodyliquid.hair.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.feet.semen -= 1>><<set $player.bodyliquid.feet.semen = Math.clamp($player.bodyliquid.feet.semen , 0, 5)>><<replace "#statsfeetsemen">><<print Math.trunc($player.bodyliquid.feet.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Feet semen: <span id="statsfeetsemen"><<print Math.trunc($player.bodyliquid.feet.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.feet.semen += 1>><<set $player.bodyliquid.feet.semen = Math.clamp($player.bodyliquid.feet.semen , 0, 5)>><<replace "#statsfeetsemen">><<print Math.trunc($player.bodyliquid.feet.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.feet.semen += 1>><<set $player.bodyliquid.feet.semen = Math.clamp($player.bodyliquid.feet.semen , 0, 5)>><<replace "#statsfeetsemen">><<print Math.trunc($player.bodyliquid.feet.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.vaginaoutside.semen -= 1>><<set $player.bodyliquid.vaginaoutside.semen = Math.clamp($player.bodyliquid.vaginaoutside.semen , 0, 5)>><<replace "#statsvaginaoutsidesemen">><<print Math.trunc($player.bodyliquid.vaginaoutside.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Labia semen: <span id="statsvaginaoutsidesemen"><<print Math.trunc($player.bodyliquid.vaginaoutside.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.vaginaoutside.semen = Math.clamp($player.bodyliquid.vaginaoutside.semen , 0, 5)>><<replace "#statsvaginaoutsidesemen">><<print Math.trunc($player.bodyliquid.vaginaoutside.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.vaginaoutside.semen += 1>><<set $player.bodyliquid.vaginaoutside.semen = Math.clamp($player.bodyliquid.vaginaoutside.semen , 0, 5)>><<replace "#statsvaginaoutsidesemen">><<print Math.trunc($player.bodyliquid.vaginaoutside.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.vagina.semen -= 1>><<set $player.bodyliquid.vagina.semen = Math.clamp($player.bodyliquid.vagina.semen , 0, 5)>><<replace "#statsvaginasemen">><<print Math.trunc($player.bodyliquid.vagina.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Vagina semen: <span id="statsvaginasemen"><<print Math.trunc($player.bodyliquid.vagina.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.vagina.semen += 1>><<set $player.bodyliquid.vagina.semen = Math.clamp($player.bodyliquid.vagina.semen , 0, 5)>><<replace "#statsvaginasemen">><<print Math.trunc($player.bodyliquid.vagina.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.vagina.semen += 1>><<set $player.bodyliquid.vagina.semen = Math.clamp($player.bodyliquid.vagina.semen , 0, 5)>><<replace "#statsvaginasemen">><<print Math.trunc($player.bodyliquid.vagina.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.penis.semen -= 1>><<set $player.bodyliquid.penis.semen = Math.clamp($player.bodyliquid.penis.semen , 0, 5)>><<replace "#statspenissemen">><<print Math.trunc($player.bodyliquid.penis.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Penis semen: <span id="statspenissemen"><<print Math.trunc($player.bodyliquid.penis.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.penis.semen += 1>><<set $player.bodyliquid.penis.semen = Math.clamp($player.bodyliquid.penis.semen , 0, 5)>><<replace "#statspenissemen">><<print Math.trunc($player.bodyliquid.penis.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.penis.semen += 1>><<set $player.bodyliquid.penis.semen = Math.clamp($player.bodyliquid.penis.semen , 0, 5)>><<replace "#statspenissemen">><<print Math.trunc($player.bodyliquid.penis.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.anus.semen -= 1>><<set $player.bodyliquid.anus.semen = Math.clamp($player.bodyliquid.anus.semen , 0, 5)>><<replace "#statsanussemen">><<print Math.trunc($player.bodyliquid.anus.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Anus semen: <span id="statsanussemen"><<print Math.trunc($player.bodyliquid.anus.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.anus.semen += 1>><<set $player.bodyliquid.anus.semen = Math.clamp($player.bodyliquid.anus.semen , 0, 5)>><<replace "#statsanussemen">><<print Math.trunc($player.bodyliquid.anus.semen )>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.anus.semen += 1>><<set $player.bodyliquid.anus.semen = Math.clamp($player.bodyliquid.anus.semen , 0, 5)>><<replace "#statsanussemen">><<print Math.trunc($player.bodyliquid.anus.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.mouth.semen -= 1>><<set $player.bodyliquid.mouth.semen = Math.clamp($player.bodyliquid.mouth.semen , 0, 5)>><<replace "#statsmouthsemen">><<print Math.trunc($player.bodyliquid.mouth.semen )>><</replace>> <<updatesidebarimg>><</link>>
 Mouth semen: <span id="statsmouthsemen"><<print Math.trunc($player.bodyliquid.mouth.semen )>></span>
-  <<link ">">><<set $player.bodyliquid.mouth.semen += 1>><<set $player.bodyliquid.mouth.semen = Math.clamp($player.bodyliquid.mouth.semen , 0, 5)>><<replace "#statsmouthsemen">><<print Math.trunc($player.bodyliquid.mouth.semen )>><</replace>> <<updatesidebarimg>><</link>>
+ <<link ">">><<set $player.bodyliquid.mouth.semen += 1>><<set $player.bodyliquid.mouth.semen = Math.clamp($player.bodyliquid.mouth.semen , 0, 5)>><<replace "#statsmouthsemen">><<print Math.trunc($player.bodyliquid.mouth.semen )>><</replace>> <<updatesidebarimg>><</link>>
 |
 
 <br><br>
@@ -1490,63 +1491,63 @@ Mouth semen: <span id="statsmouthsemen"><<print Math.trunc($player.bodyliquid.mo
 
 <<link "<">><<set $player.bodyliquid.neck.goo -= 1>><<set $player.bodyliquid.neck.goo = Math.clamp($player.bodyliquid.neck.goo, 0, 5)>><<replace "#statsneckgoo">><<print Math.trunc($player.bodyliquid.neck.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Neck slime: <span id="statsneckgoo"><<print Math.trunc($player.bodyliquid.neck.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.neck.goo += 1>><<set $player.bodyliquid.neck.goo = Math.clamp($player.bodyliquid.neck.goo, 0, 5)>><<replace "#statsneckgoo">><<print Math.trunc($player.bodyliquid.neck.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.neck.goo += 1>><<set $player.bodyliquid.neck.goo = Math.clamp($player.bodyliquid.neck.goo, 0, 5)>><<replace "#statsneckgoo">><<print Math.trunc($player.bodyliquid.neck.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.rightarm.goo -= 1>><<set $player.bodyliquid.rightarm.goo = Math.clamp($player.bodyliquid.rightarm.goo, 0, 5)>><<replace "#statsrightarmgoo">><<print Math.trunc($player.bodyliquid.rightarm.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Right arm slime: <span id="statsrightarmgoo"><<print Math.trunc($player.bodyliquid.rightarm.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.rightarm.goo += 1>><<set $player.bodyliquid.rightarm.goo = Math.clamp($player.bodyliquid.rightarm.goo, 0, 5)>><<replace "#statsrightarmgoo">><<print Math.trunc($player.bodyliquid.rightarm.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.rightarm.goo += 1>><<set $player.bodyliquid.rightarm.goo = Math.clamp($player.bodyliquid.rightarm.goo, 0, 5)>><<replace "#statsrightarmgoo">><<print Math.trunc($player.bodyliquid.rightarm.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.leftarm.goo -= 1>><<set $player.bodyliquid.leftarm.goo = Math.clamp($player.bodyliquid.leftarm.goo, 0, 5)>><<replace "#statsleftarmgoo">><<print Math.trunc($player.bodyliquid.leftarm.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Left arm slime: <span id="statsleftarmgoo"><<print Math.trunc($player.bodyliquid.leftarm.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.leftarm.goo += 1>><<set $player.bodyliquid.leftarm.goo = Math.clamp($player.bodyliquid.leftarm.goo, 0, 5)>><<replace "#statsleftarmgoo">><<print Math.trunc($player.bodyliquid.leftarm.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.leftarm.goo += 1>><<set $player.bodyliquid.leftarm.goo = Math.clamp($player.bodyliquid.leftarm.goo, 0, 5)>><<replace "#statsleftarmgoo">><<print Math.trunc($player.bodyliquid.leftarm.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.thigh.goo -= 1>><<set $player.bodyliquid.thigh.goo = Math.clamp($player.bodyliquid.thigh.goo, 0, 5)>><<replace "#statsthighgoo">><<print Math.trunc($player.bodyliquid.thigh.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Thigh slime: <span id="statsthighgoo"><<print Math.trunc($player.bodyliquid.thigh.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.thigh.goo += 1>><<set $player.bodyliquid.thigh.goo = Math.clamp($player.bodyliquid.thigh.goo, 0, 5)>><<replace "#statsthighgoo">><<print Math.trunc($player.bodyliquid.thigh.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.thigh.goo += 1>><<set $player.bodyliquid.thigh.goo = Math.clamp($player.bodyliquid.thigh.goo, 0, 5)>><<replace "#statsthighgoo">><<print Math.trunc($player.bodyliquid.thigh.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.bottom.goo -= 1>><<set $player.bodyliquid.bottom.goo = Math.clamp($player.bodyliquid.bottom.goo, 0, 5)>><<replace "#statsbottomgoo">><<print Math.trunc($player.bodyliquid.bottom.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Bottom slime: <span id="statsbottomgoo"><<print Math.trunc($player.bodyliquid.bottom.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.bottom.goo += 1>><<set $player.bodyliquid.bottom.goo = Math.clamp($player.bodyliquid.bottom.goo, 0, 5)>><<replace "#statsbottomgoo">><<print Math.trunc($player.bodyliquid.bottom.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.bottom.goo += 1>><<set $player.bodyliquid.bottom.goo = Math.clamp($player.bodyliquid.bottom.goo, 0, 5)>><<replace "#statsbottomgoo">><<print Math.trunc($player.bodyliquid.bottom.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.tummy.goo -= 1>><<set $player.bodyliquid.tummy.goo = Math.clamp($player.bodyliquid.tummy.goo, 0, 5)>><<replace "#statstummygoo">><<print Math.trunc($player.bodyliquid.tummy.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Tummy slime: <span id="statstummygoo"><<print Math.trunc($player.bodyliquid.tummy.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.tummy.goo += 1>><<set $player.bodyliquid.tummy.goo = Math.clamp($player.bodyliquid.tummy.goo, 0, 5)>><<replace "#statstummygoo">><<print Math.trunc($player.bodyliquid.tummy.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.tummy.goo += 1>><<set $player.bodyliquid.tummy.goo = Math.clamp($player.bodyliquid.tummy.goo, 0, 5)>><<replace "#statstummygoo">><<print Math.trunc($player.bodyliquid.tummy.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.chest.goo -= 1>><<set $player.bodyliquid.chest.goo = Math.clamp($player.bodyliquid.chest.goo, 0, 5)>><<replace "#statschestgoo">><<print Math.trunc($player.bodyliquid.chest.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Chest slime: <span id="statschestgoo"><<print Math.trunc($player.bodyliquid.chest.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.chest.goo += 1>><<set $player.bodyliquid.chest.goo = Math.clamp($player.bodyliquid.chest.goo, 0, 5)>><<replace "#statschestgoo">><<print Math.trunc($player.bodyliquid.chest.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.chest.goo += 1>><<set $player.bodyliquid.chest.goo = Math.clamp($player.bodyliquid.chest.goo, 0, 5)>><<replace "#statschestgoo">><<print Math.trunc($player.bodyliquid.chest.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.face.goo -= 1>><<set $player.bodyliquid.face.goo = Math.clamp($player.bodyliquid.face.goo, 0, 5)>><<replace "#statsfacegoo">><<print Math.trunc($player.bodyliquid.face.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Face slime: <span id="statsfacegoo"><<print Math.trunc($player.bodyliquid.face.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.face.goo += 1>><<set $player.bodyliquid.face.goo = Math.clamp($player.bodyliquid.face.goo, 0, 5)>><<replace "#statsfacegoo">><<print Math.trunc($player.bodyliquid.face.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.face.goo += 1>><<set $player.bodyliquid.face.goo = Math.clamp($player.bodyliquid.face.goo, 0, 5)>><<replace "#statsfacegoo">><<print Math.trunc($player.bodyliquid.face.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.hair.goo -= 1>><<set $player.bodyliquid.hair.goo = Math.clamp($player.bodyliquid.hair.goo, 0, 5)>><<replace "#statshairgoo">><<print Math.trunc($player.bodyliquid.hair.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Hair slime: <span id="statshairgoo"><<print Math.trunc($player.bodyliquid.hair.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.hair.goo += 1>><<set $player.bodyliquid.hair.goo = Math.clamp($player.bodyliquid.hair.goo, 0, 5)>><<replace "#statshairgoo">><<print Math.trunc($player.bodyliquid.hair.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.hair.goo += 1>><<set $player.bodyliquid.hair.goo = Math.clamp($player.bodyliquid.hair.goo, 0, 5)>><<replace "#statshairgoo">><<print Math.trunc($player.bodyliquid.hair.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.feet.goo -= 1>><<set $player.bodyliquid.feet.goo = Math.clamp($player.bodyliquid.feet.goo, 0, 5)>><<replace "#statsfeetgoo">><<print Math.trunc($player.bodyliquid.feet.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Feet slime: <span id="statsfeetgoo"><<print Math.trunc($player.bodyliquid.feet.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.feet.goo += 1>><<set $player.bodyliquid.feet.goo = Math.clamp($player.bodyliquid.feet.goo, 0, 5)>><<replace "#statsfeetgoo">><<print Math.trunc($player.bodyliquid.feet.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.feet.goo += 1>><<set $player.bodyliquid.feet.goo = Math.clamp($player.bodyliquid.feet.goo, 0, 5)>><<replace "#statsfeetgoo">><<print Math.trunc($player.bodyliquid.feet.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.vaginaoutside.goo -= 1>><<set $player.bodyliquid.vaginaoutside.goo = Math.clamp($player.bodyliquid.vaginaoutside.goo, 0, 5)>><<replace "#statsvaginaoutsidegoo">><<print Math.trunc($player.bodyliquid.vaginaoutside.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Labia slime: <span id="statsvaginaoutsidegoo"><<print Math.trunc($player.bodyliquid.vaginaoutside.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.vaginaoutside.goo += 1>><<set $player.bodyliquid.vaginaoutside.goo = Math.clamp($player.bodyliquid.vaginaoutside.goo, 0, 5)>><<replace "#statsvaginaoutsidegoo">><<print Math.trunc($player.bodyliquid.vaginaoutside.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.vaginaoutside.goo += 1>><<set $player.bodyliquid.vaginaoutside.goo = Math.clamp($player.bodyliquid.vaginaoutside.goo, 0, 5)>><<replace "#statsvaginaoutsidegoo">><<print Math.trunc($player.bodyliquid.vaginaoutside.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.vagina.goo -= 1>><<set $player.bodyliquid.vagina.goo = Math.clamp($player.bodyliquid.vagina.goo, 0, 5)>><<replace "#statsvaginagoo">><<print Math.trunc($player.bodyliquid.vagina.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Vagina slime: <span id="statsvaginagoo"><<print Math.trunc($player.bodyliquid.vagina.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.vagina.goo += 1>><<set $player.bodyliquid.vagina.goo = Math.clamp($player.bodyliquid.vagina.goo, 0, 5)>><<replace "#statsvaginagoo">><<print Math.trunc($player.bodyliquid.vagina.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.vagina.goo += 1>><<set $player.bodyliquid.vagina.goo = Math.clamp($player.bodyliquid.vagina.goo, 0, 5)>><<replace "#statsvaginagoo">><<print Math.trunc($player.bodyliquid.vagina.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.penis.goo -= 1>><<set $player.bodyliquid.penis.goo = Math.clamp($player.bodyliquid.penis.goo, 0, 5)>><<replace "#statspenisgoo">><<print Math.trunc($player.bodyliquid.penis.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Penis slime: <span id="statspenisgoo"><<print Math.trunc($player.bodyliquid.penis.goo)>></span>
-	<<link ">">><<set $player.bodyliquid.penis.goo += 1>><<set $player.bodyliquid.penis.goo = Math.clamp($player.bodyliquid.penis.goo, 0, 5)>><<replace "#statspenisgoo">><<print Math.trunc($player.bodyliquid.penis.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.penis.goo += 1>><<set $player.bodyliquid.penis.goo = Math.clamp($player.bodyliquid.penis.goo, 0, 5)>><<replace "#statspenisgoo">><<print Math.trunc($player.bodyliquid.penis.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.anus.goo -= 1>><<set $player.bodyliquid.anus.goo = Math.clamp($player.bodyliquid.anus.goo, 0, 5)>><<replace "#statsanusgoo">><<print Math.trunc($player.bodyliquid.anus.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Anus slime: <span id="statsanusgoo"><<print Math.trunc($player.bodyliquid.anus.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.anus.goo += 1>><<set $player.bodyliquid.anus.goo = Math.clamp($player.bodyliquid.anus.goo, 0, 5)>><<replace "#statsanusgoo">><<print Math.trunc($player.bodyliquid.anus.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.anus.goo += 1>><<set $player.bodyliquid.anus.goo = Math.clamp($player.bodyliquid.anus.goo, 0, 5)>><<replace "#statsanusgoo">><<print Math.trunc($player.bodyliquid.anus.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <<link "<">><<set $player.bodyliquid.mouth.goo -= 1>><<set $player.bodyliquid.mouth.goo = Math.clamp($player.bodyliquid.mouth.goo, 0, 5)>><<replace "#statsmouthgoo">><<print Math.trunc($player.bodyliquid.mouth.goo)>><</replace>> <<updatesidebarimg>><</link>>
 Mouth slime: <span id="statsmouthgoo"><<print Math.trunc($player.bodyliquid.mouth.goo)>></span>
-  <<link ">">><<set $player.bodyliquid.mouth.goo += 1>><<set $player.bodyliquid.mouth.goo = Math.clamp($player.bodyliquid.mouth.goo, 0, 5)>><<replace "#statsmouthgoo">><<print Math.trunc($player.bodyliquid.mouth.goo)>><</replace>> <<updatesidebarimg>><</link>>
+<<link ">">><<set $player.bodyliquid.mouth.goo += 1>><<set $player.bodyliquid.mouth.goo = Math.clamp($player.bodyliquid.mouth.goo, 0, 5)>><<replace "#statsmouthgoo">><<print Math.trunc($player.bodyliquid.mouth.goo)>><</replace>> <<updatesidebarimg>><</link>>
 |
 <br><br>
 
@@ -1640,6 +1641,15 @@ Robin confidence: <span id="statsrobindom"><<print Math.trunc($NPCName[$NPCNameL
  | <<link ">">><<npcincr Robin dom 1>><<clamp>><<replace "#statsrobindom">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].dom)>><</replace>><</link>>
  | <<link ">>">><<npcincr Robin dom 10>><<clamp>><<replace "#statsrobindom">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].dom)>><</replace>><</link>>
  | <<link ">>>">><<npcincr Robin dom 100>><<clamp>><<replace "#statsrobindom">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].dom)>><</replace>><</link>> (100 = full)
+<br>
+
+<<link "<<<">><<npcincr Robin trauma -100>><<clamp>><<replace "#statsrobintrauma">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].trauma)>><</replace>><</link>> |
+<<link "<<">><<npcincr Robin trauma -10>><<clamp>><<replace "#statsrobintrauma">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].trauma)>><</replace>><</link>> |
+<<link "<">><<npcincr Robin trauma -1>><<clamp>><<replace "#statsrobintrauma">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].trauma)>><</replace>><</link>> |
+Robin trauma: <span id="statsrobintrauma"><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].trauma)>></span>
+ | <<link ">">><<npcincr Robin trauma 1>><<clamp>><<replace "#statsrobintrauma">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].trauma)>><</replace>><</link>>
+ | <<link ">>">><<npcincr Robin trauma 10>><<clamp>><<replace "#statsrobintrauma">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].trauma)>><</replace>><</link>>
+ | <<link ">>>">><<npcincr Robin trauma 100>><<clamp>><<replace "#statsrobintrauma">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Robin")].trauma)>><</replace>><</link>> (100 = full)
 <br><br>
 
 <<link "<<<">><<npcincr Whitney love -10>><<clamp>><<replace "#statswhitneylove">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Whitney")].love)>><</replace>><</link>> |
@@ -1717,7 +1727,7 @@ Kylar lust: <span id="statskylarlust"><<print Math.trunc($NPCName[$NPCNameList.i
 <<link "<<<">><<npcincr Kylar rage -100>><<clamp>><<replace "#statskylarsus">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>><</replace>><</link>> |
 <<link "<<">><<npcincr Kylar rage -10>><<clamp>><<replace "#statskylarsus">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>><</replace>><</link>> |
 <<link "<">><<npcincr Kylar rage -1>><<clamp>><<replace "#statskylarsus">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>><</replace>><</link>> |
-Kylar suspicion: <span id="statskylarsus"><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>></span>
+Kylar jealousy: <span id="statskylarsus"><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>></span>
  | <<link ">">><<npcincr Kylar rage 1>><<clamp>><<replace "#statskylarsus">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>><</replace>><</link>>
  | <<link ">>">><<npcincr Kylar rage 10>><<clamp>><<replace "#statskylarsus">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>><</replace>><</link>>
  | <<link ">>>">><<npcincr Kylar rage 100>><<clamp>><<replace "#statskylarsus">><<print Math.trunc($NPCName[$NPCNameList.indexOf("Kylar")].rage)>><</replace>><</link>> (100 = full)
@@ -1940,11 +1950,11 @@ Delinquency: <span id="statsdelinquency"><<print Math.trunc($delinquency)>></spa
 <<if $player.gender is "h">>
 	<<link "<">><<set $schoolrep.herm -= 1>><<set $schoolrep.herm = Math.clamp($schoolrep.herm, 0, 5)>><<replace "#statsschoolrepherm">><<print Math.trunc($schoolrep.herm)>><</replace>><</link>> |
 	School hermaphrodite reputation: <span id="statsschoolrepherm"><<print Math.trunc($schoolrep.herm)>></span>
-	 | <<link ">">><<set $schoolrep.herm += 1>><<set $schoolrep.herm = Math.clamp($schoolrep.herm, 0, 5)>><<replace "#statsschoolrepherm">><<print Math.trunc($schoolrep.herm)>><</replace>><</link>>
+	| <<link ">">><<set $schoolrep.herm += 1>><<set $schoolrep.herm = Math.clamp($schoolrep.herm, 0, 5)>><<replace "#statsschoolrepherm">><<print Math.trunc($schoolrep.herm)>><</replace>><</link>>
 <<else>>
 	<<link "<">><<set $schoolrep.crossdress -= 1>><<set $schoolrep.crossdress = Math.clamp($schoolrep.crossdress, 0, 5)>><<replace "#statsschoolrepcrossdress">><<print Math.trunc($schoolrep.crossdress)>><</replace>><</link>> |
 	School crossdresser reputation: <span id="statsschoolrepcrossdress"><<print Math.trunc($schoolrep.crossdress)>></span>
-	 | <<link ">">><<set $schoolrep.crossdress += 1>><<set $schoolrep.crossdress = Math.clamp($schoolrep.crossdress, 0, 5)>><<replace "#statsschoolrepcrossdress">><<print Math.trunc($schoolrep.crossdress)>><</replace>><</link>>
+	| <<link ">">><<set $schoolrep.crossdress += 1>><<set $schoolrep.crossdress = Math.clamp($schoolrep.crossdress, 0, 5)>><<replace "#statsschoolrepcrossdress">><<print Math.trunc($schoolrep.crossdress)>><</replace>><</link>>
 <</if>>
 <br><br>
 <<link "<<<">><<set $crime -= 1000>><<set $crime = Math.clamp($crime, 0, $crimemax)>><<replace "#statscrime">><<print Math.trunc($crime)>><</replace>><</link>> |
@@ -2034,7 +2044,7 @@ Orphanage rebelliousness: <span id="statsorphan_reb"><<print Math.trunc($orphan_
 
 
 
-<<if $location is "docks" and $dockwork is 2>>
+<<if $dockwork is 2>>
 
 <<link "<<<">><<set $dockstatus -= 100>><<set $dockstatus = Math.clamp($dockstatus, 0, 100)>><<replace "#statdockstatus">><<print Math.trunc($dockstatus)>><</replace>><</link>> |
 <<link "<<">><<set $dockstatus -= 10>><<set $dockstatus = Math.clamp($dockstatus, 0, 100)>><<replace "#statdockstatus">><<print Math.trunc($dockstatus)>><</replace>><</link>> |
@@ -2046,121 +2056,259 @@ Docks status: <span id="statdockstatus"><<print Math.trunc($dockstatus)>></span>
 <br><br>
 <</if>>
 
+<<if $pound>>
+	<<link "<<<">><<set $pound.status -= 100>><<set $pound.status = Math.clamp($pound.status, 0, 100)>><<replace "#statpoundstatus">><<print Math.trunc($pound.status)>><</replace>><</link>> |
+	<<link "<<">><<set $pound.status -= 10>><<set $pound.status = Math.clamp($pound.status, 0, 100)>><<replace "#statpoundstatus">><<print Math.trunc($pound.status)>><</replace>><</link>> |
+	<<link "<">><<set $pound.status -= 1>><<set $pound.status = Math.clamp($pound.status, 0, 100)>><<replace "#statpoundstatus">><<print Math.trunc($pound.status)>><</replace>><</link>> |
+	Pound respect: <span id="statpoundstatus"><<print Math.trunc($pound.status)>></span>
+	 | <<link ">">><<set $pound.status += 1>><<set $pound.status = Math.clamp($pound.status, 0, 100)>><<replace "#statpoundstatus">><<print Math.trunc($pound.status)>><</replace>><</link>>
+	 | <<link ">>">><<set $pound.status += 10>><<set $pound.status = Math.clamp($pound.status, 0, 100)>><<replace "#statpoundstatus">><<print Math.trunc($pound.status)>><</replace>><</link>>
+	 | <<link ">>>">><<set $pound.status += 100>><<set $pound.status = Math.clamp($pound.status, 0, 100)>><<replace "#statpoundstatus">><<print Math.trunc($pound.status)>><</replace>><</link>>
+	<br><br>
+<</if>>
+
 <u>Fame</u>
 <br>
 
-<<link "<<<">><<set $famesex -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($famesex)>><</replace>><</link>> |
-<<link "<<">><<set $famesex -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($famesex)>><</replace>><</link>> |
-<<link "<">><<set $famesex -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($famesex)>><</replace>><</link>> |
-Sex: <span id="statsfamesex"><<print Math.trunc($famesex)>></span>
- | <<link ">">><<set $famesex += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($famesex)>><</replace>><</link>>
- | <<link ">>">><<set $famesex += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($famesex)>><</replace>><</link>>
- | <<link ">>>">><<set $famesex += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($famesex)>><</replace>><</link>>
+<<link "<<<">><<famesex -1000 "none" true>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($fame.sex)>><</replace>><</link>> |
+<<link "<<">><<famesex -100 "none" true>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($fame.sex)>><</replace>><</link>> |
+<<link "<">><<famesex -10 "none" true>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($fame.sex)>><</replace>><</link>> |
+Sex: <span id="statsfamesex"><<print Math.trunc($fame.sex)>></span>
+ | <<link ">">><<famesex 10 "none" true>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($fame.sex)>><</replace>><</link>>
+ | <<link ">>">><<famesex 100 "none" true>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($fame.sex)>><</replace>><</link>>
+ | <<link ">>>">><<famesex 1000 "none" true>><<fameclamp>><<replace "#statsfamesex">><<print Math.trunc($fame.sex)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $fameprostitution -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fameprostitution)>><</replace>><</link>> |
-<<link "<<">><<set $fameprostitution -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fameprostitution)>><</replace>><</link>> |
-<<link "<">><<set $fameprostitution -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fameprostitution)>><</replace>><</link>> |
-Prostitution: <span id="statsfameprostitution"><<print Math.trunc($fameprostitution)>></span>
- | <<link ">">><<set $fameprostitution += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fameprostitution)>><</replace>><</link>>
- | <<link ">>">><<set $fameprostitution += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fameprostitution)>><</replace>><</link>>
- | <<link ">>>">><<set $fameprostitution += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fameprostitution)>><</replace>><</link>>
+<<link "<<<">><<fameprostitution -1000 "none" true>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fame.prostitution)>><</replace>><</link>> |
+<<link "<<">><<fameprostitution -100 "none" true>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fame.prostitution)>><</replace>><</link>> |
+<<link "<">><<fameprostitution -10 "none" true>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fame.prostitution)>><</replace>><</link>> |
+Prostitution: <span id="statsfameprostitution"><<print Math.trunc($fame.prostitution)>></span>
+ | <<link ">">><<fameprostitution 10 "none" true>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fame.prostitution)>><</replace>><</link>>
+ | <<link ">>">><<fameprostitution 100 "none" true>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fame.prostitution)>><</replace>><</link>>
+ | <<link ">>>">><<fameprostitution 1000 "none" true>><<fameclamp>><<replace "#statsfameprostitution">><<print Math.trunc($fame.prostitution)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $famerape -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($famerape)>><</replace>><</link>> |
-<<link "<<">><<set $famerape -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($famerape)>><</replace>><</link>> |
-<<link "<">><<set $famerape -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($famerape)>><</replace>><</link>> |
-Rape: <span id="statsfamerape"><<print Math.trunc($famerape)>></span>
- | <<link ">">><<set $famerape += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($famerape)>><</replace>><</link>>
- | <<link ">>">><<set $famerape += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($famerape)>><</replace>><</link>>
- | <<link ">>>">><<set $famerape += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($famerape)>><</replace>><</link>>
+<<link "<<<">><<famerape -1000 "none" true>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($fame.rape)>><</replace>><</link>> |
+<<link "<<">><<famerape -100 "none" true>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($fame.rape)>><</replace>><</link>> |
+<<link "<">><<famerape -10 "none" true>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($fame.rape)>><</replace>><</link>> |
+Rape: <span id="statsfamerape"><<print Math.trunc($fame.rape)>></span>
+ | <<link ">">><<famerape 10 "none" true>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($fame.rape)>><</replace>><</link>>
+ | <<link ">>">><<famerape 100 "none" true>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($fame.rape)>><</replace>><</link>>
+ | <<link ">>>">><<famerape 1000 "none" true>><<fameclamp>><<replace "#statsfamerape">><<print Math.trunc($fame.rape)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $famebestiality -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($famebestiality)>><</replace>><</link>> |
-<<link "<<">><<set $famebestiality -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($famebestiality)>><</replace>><</link>> |
-<<link "<">><<set $famebestiality -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($famebestiality)>><</replace>><</link>> |
-Bestiality: <span id="statsfamebestiality"><<print Math.trunc($famebestiality)>></span>
- | <<link ">">><<set $famebestiality += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($famebestiality)>><</replace>><</link>>
- | <<link ">>">><<set $famebestiality += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($famebestiality)>><</replace>><</link>>
- | <<link ">>>">><<set $famebestiality += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($famebestiality)>><</replace>><</link>>
+<<link "<<<">><<famebestiality -1000 "none" true>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($fame.bestiality)>><</replace>><</link>> |
+<<link "<<">><<famebestiality -100 "none" true>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($fame.bestiality)>><</replace>><</link>> |
+<<link "<">><<famebestiality -10 "none" true>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($fame.bestiality)>><</replace>><</link>> |
+Bestiality: <span id="statsfamebestiality"><<print Math.trunc($fame.bestiality)>></span>
+ | <<link ">">><<famebestiality 10 "none" true>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($fame.bestiality)>><</replace>><</link>>
+ | <<link ">>">><<famebestiality 100 "none" true>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($fame.bestiality)>><</replace>><</link>>
+ | <<link ">>>">><<famebestiality 1000 "none" true>><<fameclamp>><<replace "#statsfamebestiality">><<print Math.trunc($fame.bestiality)>><</replace>><</link>>
 <br>
 /*ToDo: Pregnancy, remove check to properly enable*/
 <<if $pregnancyTesting>>
-	<<link "<<<">><<set $famepregnancy -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($famepregnancy)>><</replace>><</link>> |
-	<<link "<<">><<set $famepregnancy -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($famepregnancy)>><</replace>><</link>> |
-	<<link "<">><<set $famepregnancy -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($famepregnancy)>><</replace>><</link>> |
-	Pregnancy: <span id="statsfamepregnancy"><<print Math.trunc($famepregnancy)>></span>
-	| <<link ">">><<set $famepregnancy += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($famepregnancy)>><</replace>><</link>>
-	| <<link ">>">><<set $famepregnancy += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($famepregnancy)>><</replace>><</link>>
-	| <<link ">>>">><<set $famepregnancy += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($famepregnancy)>><</replace>><</link>>
+	<<link "<<<">><<famepregnancy -1000 "none" true>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($fame.pregnancy)>><</replace>><</link>> |
+	<<link "<<">><<famepregnancy -100 "none" true>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($fame.pregnancy)>><</replace>><</link>> |
+	<<link "<">><<famepregnancy -10 "none" true>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($fame.pregnancy)>><</replace>><</link>> |
+	Pregnancy: <span id="statsfamepregnancy"><<print Math.trunc($fame.pregnancy)>></span>
+	| <<link ">">><<famepregnancy 10 "none" true>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($fame.pregnancy)>><</replace>><</link>>
+	| <<link ">>">><<famepregnancy 100 "none" true>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($fame.pregnancy)>><</replace>><</link>>
+	| <<link ">>>">><<famepregnancy 1000 "none" true>><<fameclamp>><<replace "#statsfamepregnancy">><<print Math.trunc($fame.pregnancy)>><</replace>><</link>>
 	<br>
 <</if>>
 
-<<link "<<<">><<set $fameexhibitionism -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fameexhibitionism)>><</replace>><</link>> |
-<<link "<<">><<set $fameexhibitionism -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fameexhibitionism)>><</replace>><</link>> |
-<<link "<">><<set $fameexhibitionism -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fameexhibitionism)>><</replace>><</link>> |
-Exhibitionism: <span id="statsfameexhibitionism"><<print Math.trunc($fameexhibitionism)>></span>
- | <<link ">">><<set $fameexhibitionism += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fameexhibitionism)>><</replace>><</link>>
- | <<link ">>">><<set $fameexhibitionism += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fameexhibitionism)>><</replace>><</link>>
- | <<link ">>>">><<set $fameexhibitionism += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fameexhibitionism)>><</replace>><</link>>
+<<link "<<<">><<fameexhibitionism -1000 "none" true>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fame.exhibitionism)>><</replace>><</link>> |
+<<link "<<">><<fameexhibitionism -100 "none" true>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fame.exhibitionism)>><</replace>><</link>> |
+<<link "<">><<fameexhibitionism -10 "none" true>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fame.exhibitionism)>><</replace>><</link>> |
+Exhibitionism: <span id="statsfameexhibitionism"><<print Math.trunc($fame.exhibitionism)>></span>
+ | <<link ">">><<fameexhibitionism 10 "none" true>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fame.exhibitionism)>><</replace>><</link>>
+ | <<link ">>">><<fameexhibitionism 100 "none" true>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fame.exhibitionism)>><</replace>><</link>>
+ | <<link ">>>">><<fameexhibitionism 1000 "none" true>><<fameclamp>><<replace "#statsfameexhibitionism">><<print Math.trunc($fame.exhibitionism)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $famescrap -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($famescrap)>><</replace>><</link>> |
-<<link "<<">><<set $famescrap -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($famescrap)>><</replace>><</link>> |
-<<link "<">><<set $famescrap -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($famescrap)>><</replace>><</link>> |
-Combat: <span id="statsfamescrap"><<print Math.trunc($famescrap)>></span>
- | <<link ">">><<set $famescrap += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($famescrap)>><</replace>><</link>>
- | <<link ">>">><<set $famescrap += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($famescrap)>><</replace>><</link>>
- | <<link ">>>">><<set $famescrap += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($famescrap)>><</replace>><</link>>
+<<link "<<<">><<famescrap -1000 "none" true>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($fame.scrap)>><</replace>><</link>> |
+<<link "<<">><<famescrap -100 "none" true>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($fame.scrap)>><</replace>><</link>> |
+<<link "<">><<famescrap -10 "none" true>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($fame.scrap)>><</replace>><</link>> |
+Combat: <span id="statsfamescrap"><<print Math.trunc($fame.scrap)>></span>
+ | <<link ">">><<famescrap 10 "none" true>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($fame.scrap)>><</replace>><</link>>
+ | <<link ">>">><<famescrap 100 "none" true>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($fame.scrap)>><</replace>><</link>>
+ | <<link ">>>">><<famescrap 1000 "none" true>><<fameclamp>><<replace "#statsfamescrap">><<print Math.trunc($fame.scrap)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $famegood -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($famegood)>><</replace>><</link>> |
-<<link "<<">><<set $famegood -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($famegood)>><</replace>><</link>> |
-<<link "<">><<set $famegood -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($famegood)>><</replace>><</link>> |
-Kindness: <span id="statsfamegood"><<print Math.trunc($famegood)>></span>
- | <<link ">">><<set $famegood += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($famegood)>><</replace>><</link>>
- | <<link ">>">><<set $famegood += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($famegood)>><</replace>><</link>>
- | <<link ">>>">><<set $famegood += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($famegood)>><</replace>><</link>>
+<<link "<<<">><<famegood -1000 "none" true>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($fame.good)>><</replace>><</link>> |
+<<link "<<">><<famegood -100 "none" true>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($fame.good)>><</replace>><</link>> |
+<<link "<">><<famegood -10 "none" true>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($fame.good)>><</replace>><</link>> |
+Kindness: <span id="statsfamegood"><<print Math.trunc($fame.good)>></span>
+ | <<link ">">><<famegood 10 "none" true>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($fame.good)>><</replace>><</link>>
+ | <<link ">>">><<famegood 100 "none" true>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($fame.good)>><</replace>><</link>>
+ | <<link ">>>">><<famegood 1000 "none" true>><<fameclamp>><<replace "#statsfamegood">><<print Math.trunc($fame.good)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $famebusiness -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($famebusiness)>><</replace>><</link>> |
-<<link "<<">><<set $famebusiness -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($famebusiness)>><</replace>><</link>> |
-<<link "<">><<set $famebusiness -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($famebusiness)>><</replace>><</link>> |
-Business: <span id="statsfamebusiness"><<print Math.trunc($famebusiness)>></span>
- | <<link ">">><<set $famebusiness += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($famebusiness)>><</replace>><</link>>
- | <<link ">>">><<set $famebusiness += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($famebusiness)>><</replace>><</link>>
- | <<link ">>>">><<set $famebusiness += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($famebusiness)>><</replace>><</link>>
+<<link "<<<">><<famebusiness -1000 "none" true>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($fame.business)>><</replace>><</link>> |
+<<link "<<">><<famebusiness -100 "none" true>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($fame.business)>><</replace>><</link>> |
+<<link "<">><<famebusiness -10 "none" true>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($fame.business)>><</replace>><</link>> |
+Business: <span id="statsfamebusiness"><<print Math.trunc($fame.business)>></span>
+ | <<link ">">><<famebusiness 10 "none" true>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($fame.business)>><</replace>><</link>>
+ | <<link ">>">><<famebusiness 100 "none" true>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($fame.business)>><</replace>><</link>>
+ | <<link ">>>">><<famebusiness 1000 "none" true>><<fameclamp>><<replace "#statsfamebusiness">><<print Math.trunc($fame.business)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $famesocial -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($famesocial)>><</replace>><</link>> |
-<<link "<<">><<set $famesocial -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($famesocial)>><</replace>><</link>> |
-<<link "<">><<set $famesocial -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($famesocial)>><</replace>><</link>> |
-Socialite: <span id="statsfamesocial"><<print Math.trunc($famesocial)>></span>
- | <<link ">">><<set $famesocial += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($famesocial)>><</replace>><</link>>
- | <<link ">>">><<set $famesocial += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($famesocial)>><</replace>><</link>>
- | <<link ">>>">><<set $famesocial += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($famesocial)>><</replace>><</link>>
+<<link "<<<">><<famesocial -1000 "none" true>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($fame.social)>><</replace>><</link>> |
+<<link "<<">><<famesocial -100 "none" true>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($fame.social)>><</replace>><</link>> |
+<<link "<">><<famesocial -10 "none" true>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($fame.social)>><</replace>><</link>> |
+Socialite: <span id="statsfamesocial"><<print Math.trunc($fame.social)>></span>
+ | <<link ">">><<famesocial 10 "none" true>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($fame.social)>><</replace>><</link>>
+ | <<link ">>">><<famesocial 100 "none" true>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($fame.social)>><</replace>><</link>>
+ | <<link ">>>">><<famesocial 1000 "none" true>><<fameclamp>><<replace "#statsfamesocial">><<print Math.trunc($fame.social)>><</replace>><</link>>
 <br>
 
-<<link "<<<">><<set $famemodel -= 1000>><<set $fame -= 100>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($famemodel)>><</replace>><</link>> |
-<<link "<<">><<set $famemodel -= 100>><<set $fame -= 10>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($famemodel)>><</replace>><</link>> |
-<<link "<">><<set $famemodel -= 10>><<set $fame -= 1>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($famemodel)>><</replace>><</link>> |
-Model: <span id="statsfamemodel"><<print Math.trunc($famemodel)>></span>
- | <<link ">">><<set $famemodel += 10>><<set $fame += 1>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($famemodel)>><</replace>><</link>>
- | <<link ">>">><<set $famemodel += 100>><<set $fame += 10>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($famemodel)>><</replace>><</link>>
- | <<link ">>>">><<set $famemodel += 1000>><<set $fame += 100>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($famemodel)>><</replace>><</link>>
+<<link "<<<">><<famemodel -1000 "none" true>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($fame.model)>><</replace>><</link>> |
+<<link "<<">><<famemodel -100 "none" true>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($fame.model)>><</replace>><</link>> |
+<<link "<">><<famemodel -10 "none" true>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($fame.model)>><</replace>><</link>> |
+Model: <span id="statsfamemodel"><<print Math.trunc($fame.model)>></span>
+ | <<link ">">><<famemodel 10 "none" true>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($fame.model)>><</replace>><</link>>
+ | <<link ">>">><<famemodel 100 "none" true>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($fame.model)>><</replace>><</link>>
+ | <<link ">>>">><<famemodel 1000 "none" true>><<fameclamp>><<replace "#statsfamemodel">><<print Math.trunc($fame.model)>><</replace>><</link>>
 <br>
 
 <</widget>>
 
+<<widget "cheats-teleport">>
+Teleporting from anywhere but the overworld can cause bugs.
+<br><br>
+<u>Places</u>
+<br>
+Town:
+<br>
+<<domusicon>>[[Domus Street]] 
+<br>
+<<domushouseicon>>[[Orphanage]]
+<br>
+<<barbicon>>[[Barb Street]]
+<br>
+<<if $dorenintro gte 1 and $exposed lte 0>>
+	<<dorenflaticon>><<link [[Doren's Flat|Doren Entrance]]>><</link>>
+	<br>
+<</if>>
+<<dancestudioicon>>[[Dance Studio]]
+<br>
+<<policeicon>>[[Police Station]]
+<br>
+<<policeicon>>[[Police Back Office]]
+<br>
+<<danubeicon>>[[Danube Street]]
+<br>
+<<spaicon>>[[Spa]]
+<br>
+<<wolficon>>[[Wolf Street]]
+<br>
+<<wolficon>>[[Temple]]
+<br>
+<<soupkitchenicon>>[[Soup Kitchen]]
+<br>
+<<connudatusicon>>[[Connudatus Street]]
+<br>
+<<stripclubicon>>[[Strip Club]]
+<br>
+<<nightingaleicon>>[[Nightingale Street]]
+<br>
+<<hospitalicon>><<link [[Hospital|Hospital front]]>><</link>>
+<br>
+<<highicon>>[[High Street]]
+<br>
+<<shoppingcentreicon>>[[Shopping Centre]]
+<br>
+<<elkicon>>[[Elk Street]]
+<br>
+<<if $trash_unlocked is 1>>
+<<landfillicon>><<link [[Landfill|Trash Gate Enter]]>><</link>>
+<br>
+<</if>>
+<<if $compoundcard is 1 or $farm_stage gte 9>>
+<<landfillicon>>[[Elk Compound]]
+<br>
+<</if>>
+<<oxfordicon>>[[Oxford Street]]
+<br>
+<<museumicon>>[[Museum]]
+<br>
+<<oxfordicon>>[[School Front Playground]]
+<br>
+<<harvesticon>>[[Harvest Street]]
+<br>
+<<brothelicon>>[[Brothel]]
+<br>
+<<pubicon>>[[Pub]]
+<br>
+<<busstationicon>>[[Bus Station]]
+<br>
+<<mericon>>[[Mer Street]]
+<br>
+<<docksicon>>[[Docks]]
+<br>
+<<starfishicon>>[[Starfish Street]]
+<br>
+<<beachicon>>[[Beach]]
+<br>
+<<clifficon>>[[Cliff Street]]
+<br>
+<<cafeicon>>[[Ocean Breeze]]
+<br>
+<<alleyicon>>[[Commercial alleyways]]
+<br>
+<<alleyicon>>[[Industrial alleyways]]
+<br>
+<<alleyicon>>[[Residential alleyways]]
+<br><br>
+
+<u>Town Outskirts</u>
+<br>
+<<foresticon>>[[Forest]]
+<br>
+<<roadicon>>[[Farm Road 1]]
+<br><br>
+
+<u>Underground</u>
+<br>
+<<sewericon>>[[Industrial Drain]]
+<br>
+<<sewericon>>[[Commercial Drain]]
+<br>
+<<sewericon>>[[Residential Drain]]
+<br>
+<<sewericon>><<link [[Drain ocean exit|Drain Exit]]>><</link>>
+<br>
+<<sewericon>>[[Sewers Residential]]
+<br>
+<<sewericon>>[[Sewers Commercial]]
+<br>
+<<sewericon>>[[Sewers Industrial]]
+<br>
+<</widget>>
+
 <<widget "cheats-other">>
 
 <u>Time</u>
 <br>
+<<link [[Forward 15 minutes|$passage]]>><<pass 15>><</link>>
+<br>
+<<link [[Forward 30 minutes|$passage]]>><<pass 30>><</link>>
+<br>
 <<link [[Forward 1 hour|$passage]]>><<pass 1 hour>><</link>>
 <br>
-<<link [[Forward 6 hours|$passage]]>><<pass 6 hours>><</link>>
+<<link [[Forward 2 hours|$passage]]>><<pass 2 hour>><</link>>
+<br>
+<<link [[Forward 3 hours|$passage]]>><<pass 3 hour>><</link>>
+<br>
+<<link [[Forward 6 hours|$passage]]>><<pass 6 hour>><</link>>
+<br>
+<<link [[Forward 8 hours|$passage]]>><<pass 8 hour>><</link>>
+<br>
+<<link [[Forward 12 hours|$passage]]>><<pass 12 hour>><</link>>
+<br>
+<<link [[Forward 16 hours|$passage]]>><<pass 16 hour>><</link>>
 <br>
-<<link [[Forward 24 hours|$passage]]>><<pass 24 hours>><</link>>
+<<link [[Forward 24 hours|$passage]]>><<pass 24 hour>><</link>>
 <br><br>
 
 <u>Weather</u>
diff --git a/game/base-system/clamp.twee b/game/base-system/clamp.twee
index 4ad7658323b112842338d85684d4866c5d1871a2..8d430feff8d6d5cdd45ac378c0c045217427932a 100644
--- a/game/base-system/clamp.twee
+++ b/game/base-system/clamp.twee
@@ -66,7 +66,13 @@
 <</if>>
 <<set $awareness = Math.clamp($awareness, -200, 1000)>>
 <<set $submissive = Math.clamp($submissive, 0, 2000)>>
-<<if $player.virginity.vaginal is true and $player.virginity.penile is true>><<set $purity = Math.clamp($purity, 0, 1000)>><<else>><<set $purity = Math.clamp($purity, 0, 999)>><</if>>
+<<if $virginityProtected is true>>
+	<<set $purity = Math.clamp($purity, 0, 1000)>>
+<<elseif $player.virginity.vaginal is true and $player.virginity.penile is true>>
+	<<set $purity = Math.clamp($purity, 0, 1000)>>
+<<else>>
+	<<set $purity = Math.clamp($purity, 0, 999)>>
+<</if>>
 <<set $time = Math.clamp($time, 0, 1440)>>
 <<set $minute = Math.clamp($minute, 0, 1440)>>
 <<set $orgasmcount = Math.clamp($orgasmcount, 0, 25)>>
@@ -150,22 +156,18 @@
 <</widget>>
 
 <<widget "fameclamp">>
-
-<<set $famesex to Math.clamp($famesex, 0, 2000)>>
-<<set $famerape to Math.clamp($famerape, 0, 2000)>>
-<<set $famebestiality to Math.clamp($famebestiality, 0, 2000)>>
-<<set $fameexhibitionism to Math.clamp($fameexhibitionism, 0, 2000)>>
-<<set $fameprostitution to Math.clamp($fameprostitution, 0, 2000)>>
-<<set $famepregnancy to Math.clamp($famepregnancy, 0, 2000)>>
-<<set $famescrap to Math.clamp($famescrap, 0, 2000)>>
-<<set $famegood to Math.clamp($famegood, 0, 2000)>>
-<<set $famebusiness to Math.clamp($famebusiness, 0, 2000)>>
-<<set $famepimp to Math.clamp($famepimp, 0, 2000)>>
-<<set $famesocial to Math.clamp($famesocial, 0, 2000)>>
-<<set $famemodel to Math.clamp($famemodel, 0, 2000)>>
-
-<<set $fame to ($famesex + $famerape + $famebestiality + $fameexhibitionism + $fameprostitution + $famescrap + $famegood + $famebusiness + $famepimp + $famesocial + $famemodel)>>
-
+	<<set $fame.sex to Math.clamp($fame.sex, 0, 2000)>>
+	<<set $fame.rape to Math.clamp($fame.rape, 0, 2000)>>
+	<<set $fame.bestiality to Math.clamp($fame.bestiality, 0, 2000)>>
+	<<set $fame.exhibitionism to Math.clamp($fame.exhibitionism, 0, 2000)>>
+	<<set $fame.prostitution to Math.clamp($fame.prostitution, 0, 2000)>>
+	<<set $fame.pregnancy to Math.clamp($fame.pregnancy, 0, Math.clamp($sexStats.vagina.pregnancy.totalBirthEvents,1,20) * 100)>>
+	<<set $fame.scrap to Math.clamp($fame.scrap, 0, 2000)>>
+	<<set $fame.good to Math.clamp($fame.good, 0, 2000)>>
+	<<set $fame.business to Math.clamp($fame.business, 0, 2000)>>
+	<<set $fame.pimp to Math.clamp($fame.pimp, 0, 2000)>>
+	<<set $fame.social to Math.clamp($fame.social, 0, 2000)>>
+	<<set $fame.model to Math.clamp($fame.model, 0, 2000)>>
 <</widget>>
 
 <<widget "maxDefaultActionSetsclamp">>
diff --git a/game/base-system/effects.twee b/game/base-system/effects.twee
index 91d9e7c4b552b5af1ebc853db973ece9e5704206..1dd8d1e382a601f008fe194f042ae6f9425ef738 100644
--- a/game/base-system/effects.twee
+++ b/game/base-system/effects.twee
@@ -755,6 +755,7 @@
 <<if $timer gte 1>>
 	<<set $timer -= 1>>
 <</if>>
+<<set $turnCount++>>
 
 <<bindings>>
 
@@ -770,7 +771,7 @@
 <br>
 <<set $menu to 0>>
 <<if $combat is 0 and $ironmanmode is true>>
-	<<run window.ironmanScheduledSaves()>>
+	<<run IronMan.scheduledSaves()>>
 <</if>>
 <</widget>>
 
diff --git a/game/base-system/exhibitionism.twee b/game/base-system/exhibitionism.twee
index 1a5b7442bfec1d13eca99d5c7e79bcf450963c90..1158b1041e3ac7945b5840eac741c1df9fee31c0 100644
--- a/game/base-system/exhibitionism.twee
+++ b/game/base-system/exhibitionism.twee
@@ -1,156 +1,192 @@
 :: Widgets Exhibitionism [widget]
 <<widget "exhibitionism1">>
-<<if $desperateaction is 1>>
-	You feel disgusting, but it's better than what Bailey has in store for you.
-		<<lcontrol>><<gtrauma>><<control -10>><<trauma 1>>
-<<elseif $desperateaction is 2>>
-	You feel disgusting, but it's better than the alternative.
-		<<lcontrol>><<gtrauma>><<control -10>><<trauma 1>>
-<<else>>
-	<<if $control lt $controlmax>>
-		<<if $exhibitionism lte 19>>
-			<<set $exhibitionism += 2>>
-			Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
-			<<ggcontrol>><<control 25>><<arousal 100>><<set $stress -= 300>><<combattrauma -30>><<ltrauma>><<lstress>><<garousal>>
-		<<elseif $exhibitionism gte 20>>
-			Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
-			<<arousal 100>><<garousal>>
-			<<if $exhibitionismstress1 isnot 1 and $statFreeze isnot true>>
-				<<set $exhibitionismstress1 to 1>><<lstress>><<set $stress -= 100>>
-			<</if>>
-		<</if>>
+	<<if $desperateaction is 1>>
+		You feel disgusting, but it's better than what Bailey has in store for you.
+			<<lcontrol>><<gtrauma>><<control -10>><<trauma 1>>
+	<<elseif $desperateaction is 2>>
+		You feel disgusting, but it's better than the alternative.
+			<<lcontrol>><<gtrauma>><<control -10>><<trauma 1>>
 	<<else>>
-		<<if $exhibitionism lte 19>>
-			<<set $exhibitionism += 2>>
-			You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
-			<<control 25>><<arousal 100>><<set $stress -= 300>><<combattrauma -30>><<ltrauma>><<lstress>><<garousal>>
-		<<elseif $exhibitionism gte 20>>
-			You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
-			<<arousal 100>><<garousal>>
-			<<if $exhibitionismstress1 isnot 1 and $statFreeze isnot true>>
-				<<set $exhibitionismstress1 to 1>><<lstress>><<set $stress -= 100>>
+		<<if $control lt $controlmax>>
+			<<if $exhibitionism lte 19>>
+				<<set $exhibitionism += 2>>
+				Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
+				<<ggcontrol>><<control 25>><<arousal 100>><<set $stress -= 300>><<combattrauma -30>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 20>>
+				Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
+				<<arousal 100>><<garousal>>
+				<<if $exhibitionismstress1 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress1 to 1>><<lstress>><<set $stress -= 100>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<<if $exhibitionism lte 19>>
+				<<set $exhibitionism += 2>>
+				You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
+				<<control 25>><<arousal 100>><<set $stress -= 300>><<combattrauma -30>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 20>>
+				You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
+				<<arousal 100>><<garousal>>
+				<<if $exhibitionismstress1 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress1 to 1>><<lstress>><<set $stress -= 100>>
+				<</if>>
 			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
-<br><br>
-<<unset $desperateaction>>
+	<br><br>
+	<<unset $desperateaction>>
 <</widget>>
 
 <<widget "exhibitionism2">>
-<<if $control lt $controlmax>>
-	<<if $exhibitionism lte 39>>
-		<<set $exhibitionism += 2>>
-		Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
-		<<ggcontrol>><<control 25>><<arousal 200>><<set $stress -= 600>><<combattrauma -60>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 40>>
-		Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
-		<<arousal 100>><<garousal>>
-		<<if $exhibitionismstress2 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress2 to 1>><<lstress>><<set $stress -= 200>>
-		<</if>>
-	<</if>>
-<<else>>
-	<<if $exhibitionism lte 39>>
-		<<set $exhibitionism += 2>>
-		You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
-		<<control 25>><<arousal 600>><<set $stress -= 200>><<combattrauma -60>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 40>>
-		You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
-		<<arousal 200>><<garousal>>
-		<<if $exhibitionismstress2 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress2 to 1>><<lstress>><<set $stress -= 200>>
+<<if $desperateaction is 1>>
+		You feel disgusting, but it's better than what Bailey has in store for you.
+			<<lcontrol>><<gtrauma>><<control -20>><<trauma 2>>
+	<<elseif $desperateaction is 2>>
+		You feel disgusting, but it's better than the alternative.
+			<<lcontrol>><<gtrauma>><<control -20>><<trauma 2>>
+	<<else>>
+		<<if $control lt $controlmax>>
+			<<if $exhibitionism lte 39>>
+				<<set $exhibitionism += 2>>
+				Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
+				<<ggcontrol>><<control 25>><<arousal 200>><<set $stress -= 600>><<combattrauma -60>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 40>>
+				Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
+				<<arousal 100>><<garousal>>
+				<<if $exhibitionismstress2 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress2 to 1>><<lstress>><<set $stress -= 200>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<<if $exhibitionism lte 39>>
+				<<set $exhibitionism += 2>>
+				You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
+				<<control 25>><<arousal 600>><<set $stress -= 200>><<combattrauma -60>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 40>>
+				You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
+				<<arousal 200>><<garousal>>
+				<<if $exhibitionismstress2 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress2 to 1>><<lstress>><<set $stress -= 200>>
+				<</if>>
+			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
-<br><br>
+	<br><br>
+	<<unset $desperateaction>>
 <</widget>>
 
 <<widget "exhibitionism3">>
-<<if $control lt $controlmax>>
-	<<if $exhibitionism lte 59>>
-		<<set $exhibitionism += 2>>
-		Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
-		<<ggcontrol>><<control 25>><<arousal 300>><<set $stress -= 900>><<combattrauma -90>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 60>>
-		Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
-		<<arousal 300>><<garousal>>
-		<<if $exhibitionismstress3 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress3 to 1>><<lstress>><<set $stress -= 300>>
-		<</if>>
-	<</if>>
-<<else>>
-	<<if $exhibitionism lte 59>>
-		<<set $exhibitionism += 2>>
-		You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
-		<<control 25>><<arousal 300>><<set $stress -= 900>><<combattrauma -90>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 60>>
-		You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
-		<<arousal 300>><<garousal>>
-		<<if $exhibitionismstress3 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress3 to 1>><<lstress>><<set $stress -= 300>>
+	<<if $desperateaction is 1>>
+		You feel disgusting, but it's better than what Bailey has in store for you.
+			<<lcontrol>><<gtrauma>><<control -30>><<trauma 3>>
+	<<elseif $desperateaction is 2>>
+		You feel disgusting, but it's better than the alternative.
+			<<lcontrol>><<gtrauma>><<control -30>><<trauma 3>>
+	<<else>>
+		<<if $control lt $controlmax>>
+			<<if $exhibitionism lte 59>>
+				<<set $exhibitionism += 2>>
+				Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
+				<<ggcontrol>><<control 25>><<arousal 300>><<set $stress -= 900>><<combattrauma -90>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 60>>
+				Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
+				<<arousal 300>><<garousal>>
+				<<if $exhibitionismstress3 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress3 to 1>><<lstress>><<set $stress -= 300>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<<if $exhibitionism lte 59>>
+				<<set $exhibitionism += 2>>
+				You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
+				<<control 25>><<arousal 300>><<set $stress -= 900>><<combattrauma -90>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 60>>
+				You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
+				<<arousal 300>><<garousal>>
+				<<if $exhibitionismstress3 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress3 to 1>><<lstress>><<set $stress -= 300>>
+				<</if>>
+			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
-<br><br>
+	<br><br>
+	<<unset $desperateaction>>
 <</widget>>
 
 <<widget "exhibitionism4">>
-<<if $control lt $controlmax>>
-	<<if $exhibitionism lte 79>>
-		<<set $exhibitionism += 2>>
-		Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
-		<<ggcontrol>><<control 25>><<arousal 400>><<set $stress -= 1200>><<combattrauma -120>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 80>>
-		Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
-		<<arousal 400>><<garousal>>
-		<<if $exhibitionismstress4 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress4 to 1>><<lstress>><<set $stress -= 400>>
-		<</if>>
-	<</if>>
-<<else>>
-	<<if $exhibitionism lte 79>>
-		<<set $exhibitionism += 2>>
-		You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
-		<<control 25>><<arousal 400>><<set $stress -= 1200>><<combattrauma -120>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 80>>
-		You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
-		<<arousal 400>><<garousal>>
-		<<if $exhibitionismstress4 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress4 to 1>><<lstress>><<set $stress -= 400>>
+	<<if $desperateaction is 1>>
+		You feel disgusting, but it's better than what Bailey has in store for you.
+			<<lcontrol>><<gtrauma>><<control -40>><<trauma 4>>
+	<<elseif $desperateaction is 2>>
+		You feel disgusting, but it's better than the alternative.
+			<<lcontrol>><<gtrauma>><<control -40>><<trauma 4>>
+	<<else>>
+		<<if $control lt $controlmax>>
+			<<if $exhibitionism lte 79>>
+				<<set $exhibitionism += 2>>
+				Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
+				<<ggcontrol>><<control 25>><<arousal 400>><<set $stress -= 1200>><<combattrauma -120>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 80>>
+				Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
+				<<arousal 400>><<garousal>>
+				<<if $exhibitionismstress4 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress4 to 1>><<lstress>><<set $stress -= 400>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<<if $exhibitionism lte 79>>
+				<<set $exhibitionism += 2>>
+				You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
+				<<control 25>><<arousal 400>><<set $stress -= 1200>><<combattrauma -120>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 80>>
+				You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
+				<<arousal 400>><<garousal>>
+				<<if $exhibitionismstress4 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress4 to 1>><<lstress>><<set $stress -= 400>>
+				<</if>>
+			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
-<br><br>
+	<br><br>
+	<<unset $desperateaction>>
 <</widget>>
 
 <<widget "exhibitionism5">>
-<<if $control lt $controlmax>>
-	<<if $exhibitionism lte 99>>
-		<<set $exhibitionism += 2>>
-		Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
-		<<ggcontrol>><<control 25>><<arousal 500>><<set $stress -= 1500>><<combattrauma -150>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 100>>
-		Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
-		<<arousal 500>><<garousal>>
-		<<if $exhibitionismstress5 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress5 to 1>><<lstress>><<set $stress -= 500>>
-		<</if>>
-	<</if>>
-<<else>>
-	<<if $exhibitionism lte 99>>
-		<<set $exhibitionism += 2>>
-		You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
-		<<control 25>><<arousal 500>><<set $stress -= 1500>><<combattrauma -150>><<ltrauma>><<lstress>><<garousal>>
-	<<elseif $exhibitionism gte 100>>
-		You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
-		<<arousal 500>><<garousal>>
-		<<if $exhibitionismstress5 isnot 1 and $statFreeze isnot true>>
-			<<set $exhibitionismstress5 to 1>><<lstress>><<set $stress -= 500>>
+	<<if $desperateaction is 1>>
+		You feel disgusting, but it's better than what Bailey has in store for you.
+			<<lcontrol>><<gtrauma>><<control -50>><<trauma 5>>
+	<<elseif $desperateaction is 2>>
+		You feel disgusting, but it's better than the alternative.
+			<<lcontrol>><<gtrauma>><<control -50>><<trauma 5>>
+	<<else>>
+		<<if $control lt $controlmax>>
+			<<if $exhibitionism lte 99>>
+				<<set $exhibitionism += 2>>
+				Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now.
+				<<ggcontrol>><<control 25>><<arousal 500>><<set $stress -= 1500>><<combattrauma -150>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 100>>
+				Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span>
+				<<arousal 500>><<garousal>>
+				<<if $exhibitionismstress5 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress5 to 1>><<lstress>><<set $stress -= 500>>
+				<</if>>
+			<</if>>
+		<<else>>
+			<<if $exhibitionism lte 99>>
+				<<set $exhibitionism += 2>>
+				You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you.
+				<<control 25>><<arousal 500>><<set $stress -= 1500>><<combattrauma -150>><<ltrauma>><<lstress>><<garousal>>
+			<<elseif $exhibitionism gte 100>>
+				You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you.
+				<<arousal 500>><<garousal>>
+				<<if $exhibitionismstress5 isnot 1 and $statFreeze isnot true>>
+					<<set $exhibitionismstress5 to 1>><<lstress>><<set $stress -= 500>>
+				<</if>>
+			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
-<br><br>
+	<br><br>
+	<<unset $desperateaction>>
 <</widget>>
 
 <<widget "exhibitionism">>
diff --git a/game/base-system/fame.twee b/game/base-system/fame.twee
index cdeaf451e9da0bb178f7e9c7841b1c9ccebc8714..084d43465c1b9e10a80a1fee5699339e766429d3 100644
--- a/game/base-system/fame.twee
+++ b/game/base-system/fame.twee
@@ -1,132 +1,137 @@
 :: Widgets Fame [widget]
-<<widget "fameexhibitionism">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Kylar", "Sydney"].includes($npc[0]))>>
-		<<set $fame += _args[0]>>
-		<<set $fameexhibitionism += _args[0]>>
-		<<set $fameexhibitionism to Math.clamp($fameexhibitionism, 0, 2000)>>
+<<widget "fame">>
+	<!-- Usage: <<fame 10 "scrap" "good">>. Raises fames regardless of mask, gloryhole, etc. -->
+	<<if _args.length gte 2 and $statFreeze isnot true>>
+		<<set [$_gain, ...($_fameTypes)] to _args>> <!-- remove first element of array since it's the number -->
+		<<run $_fameTypes.forEach(fameType => $fame[fameType] += $_gain)>> <!-- add the specified amount to each specified fame type -->
+		<<fameclamp>>
 	<</if>>
-<</if>>
 <</widget>>
-<<widget "fameschoolex">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $fameexhibitionism += _args[0]>>
-		<<set $fameexhibitionism to Math.clamp($fameexhibitionism, 0, 2000)>>
+
+<<widget "fameexhibitionism">>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Kylar", "Sydney"].includes($npc[0])) or _args[1] is true>>
+			<<set $fame.exhibitionism += _args[0]>>
+			<<set $fame.exhibitionism to Math.clamp($fame.exhibitionism, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "fameprostitution">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $fameprostitution += _args[0]>>
-		<<set $fameprostitution to Math.clamp($fameprostitution, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.prostitution += _args[0]>>
+			<<set $fame.prostitution to Math.clamp($fame.prostitution, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famebestiality">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famebestiality += _args[0]>>
-		<<set $famebestiality to Math.clamp($famebestiality, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.bestiality += _args[0]>>
+			<<set $fame.bestiality to Math.clamp($fame.bestiality, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famerape">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Kylar", "Sydney"].includes($npc[0]))>>
-		<<set $fame += _args[0]>>
-		<<set $famerape += _args[0]>>
-		<<set $famerape to Math.clamp($famerape, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if ($face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Kylar", "Sydney"].includes($npc[0]))) or _args[1] is true>>
+			<<set $fame.rape += _args[0]>>
+			<<set $fame.rape to Math.clamp($fame.rape, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famesex">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Sydney"].includes($npc[0]))>>
-		<<set $fame += _args[0]>>
-		<<set $famesex += _args[0]>>
-		<<set $famesex to Math.clamp($famesex, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true or _args[1] is true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Sydney"].includes($npc[0]))>>
+			<<set $fame.sex += _args[0]>>
+			<<set $fame.sex to Math.clamp($fame.sex, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famepregnancy">>
-<<if _args[0] and pregnancyBellyVisible()>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famepregnancy += _args[0]>>
-		<<set $famepregnancy to Math.clamp($famepregnancy, 0, Math.clamp($sexStats.vagina.pregnancy.totalBirthEvents,1,20) * 100)>>
+	<<if _args[0] and $statFreeze isnot true and pregnancyBellyVisible()>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.pregnancy += _args[0]>>
+			<<set $fame.pregnancy to Math.clamp($fame.pregnancy, 0, Math.clamp($sexStats.vagina.pregnancy.totalBirthEvents,1,20) * 100)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famegood">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famegood += _args[0]>>
-		<<set $famegood to Math.clamp($famegood, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.good += _args[0]>>
+			<<set $fame.good to Math.clamp($fame.good, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famebusiness">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famebusiness += _args[0]>>
-		<<set $famebusiness to Math.clamp($famebusiness, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.business += _args[0]>>
+			<<set $fame.business to Math.clamp($fame.business, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famepimp">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famepimp += _args[0]>>
-		<<set $famepimp to Math.clamp($famepimp, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.pimp += _args[0]>>
+			<<set $fame.pimp to Math.clamp($fame.pimp, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
+
 <<widget "famescrap">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famescrap += _args[0]>>
-		<<set $famescrap to Math.clamp($famescrap, 0, 2000)>>
-	<</if>>
-<</if>>
-<</widget>>
-<<widget "famedance">>
-<<exposure>>
-<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and $statFreeze isnot true>>
-	<<if $exposed is 1>>
-		<<set $fameexhibitionism += $audience>>
-		<<set $fame += $audience>>
-	<<elseif $exposed gte 2>>
-		<<set $fameexhibitionism += ($audience * 2)>>
-		<<set $fame += ($audience * 2)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.scrap += _args[0]>>
+			<<set $fame.scrap to Math.clamp($fame.scrap, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
 
 <<widget "famesocial">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famesocial += _args[0]>>
-		<<set $famesocial to Math.clamp($famesocial, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.social += _args[0]>>
+			<<set $fame.social to Math.clamp($fame.social, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
 
 <<widget "famemodel">>
-<<if _args[0] and $statFreeze isnot true>>
-	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
-		<<set $fame += _args[0]>>
-		<<set $famemodel += _args[0]>>
-		<<set $famemodel to Math.clamp($famemodel, 0, 2000)>>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[1] is true>>
+			<<set $fame.model += _args[0]>>
+			<<set $fame.model to Math.clamp($fame.model, 0, 2000)>>
+		<</if>>
+	<</if>>
+<</widget>>
+
+<<widget "famedance">>
+	<<exposure>>
+	<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and $statFreeze isnot true>>
+		<<if $exposed is 1>>
+			<<set $fame.exhibitionism += $audience>>
+		<<elseif $exposed gte 2>>
+			<<set $fame.exhibitionism += ($audience * 2)>>
+		<</if>>
+	<</if>>
+<</widget>>
+
+<<widget "fameschoolex">>
+	<<if _args[0] and $statFreeze isnot true>>
+		<<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>>
+			<<set $fame.exhibitionism += _args[0]>>
+			<<set $fame.exhibitionism to Math.clamp($fame.exhibitionism, 0, 2000)>>
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
diff --git a/game/base-system/feats.twee b/game/base-system/feats.twee
index 60e7a4d03221fdcdccdf7e62791848ba1ccc3854..c63ce2a3df8f79eeed49543926e8c821e72a5a31 100644
--- a/game/base-system/feats.twee
+++ b/game/base-system/feats.twee
@@ -418,6 +418,7 @@
 <</widget>>
 
 <<widget "earnAllFeats">>
+<<specialClothesUpdate>>
 <<if $feats.locked is false and $cheatdisable is "t" and $debug is 0 and $gamemode isnot "soft" and $alluremod gte 1 and $replayScene is undefined>>
 	<!-- Save a widget call by checking _feats outside the widget -->
 	<<if _feats is undefined>>
@@ -437,7 +438,7 @@
 			<<if $days gte 150>>
 				<<earnFeat "Being an Orphan">>
 			<</if>>
-			
+
 			<<if $passoutstat is 0>>
 				<<earnFeat "Stressful Challenge">>
 				<<if $days gte 150>>
@@ -467,7 +468,7 @@
 			<<earnFeat "It Belongs in a Museum">>
 		<</if>>
 		<<if ($robinromance gte 1 and $whitneyromance gte 1 and $kylarenglish gte 1) or ($robinromance gte 1 and $whitneyromance gte 1 and $sydneyromance gte 1) or ($robinromance gte 1 and $kylarenglish gte 1 and $sydneyromance gte 1) or ($kylarenglish gte 1 and $whitneyromance gte 1 and $sydneyromance gte 1)>>
-			<<earnFeat "Love Triangles">>		
+			<<earnFeat "Love Triangles">>
 		<</if>>
 		<<if $robinromance gte 1 and $whitneyromance gte 1 and $kylarenglish gte 1 and $sydneyromance gte 1>>
 			<<earnFeat "Love Trapezoids">>
@@ -558,7 +559,6 @@
 		<<if $sadism_level gte 4>>
 			<<earnFeat "Served Hot">>
 		<</if>>
-		<<specialClothesUpdate>>
 	<</if>>
 	<<if $money gte 100000>>
 		<<earnFeat "Pocket Change">>
@@ -643,7 +643,7 @@
 		},
 		"It Belongs in a Museum":{
 			title: "It Belongs in a Museum!",
-			desc: "Find all the artifacts",
+			desc: "Find all the artefacts",
 			difficulty: 3,
 			series: "",
 			filter: ["All", "General"],
@@ -1154,7 +1154,7 @@
 			difficulty: 1,
 			series: "",
 			filter: ["All", "Social"],
-			
+
 		},
 		"A Crime Most Foul":{
 			title: "A Crime Most Foul",
@@ -1823,6 +1823,42 @@
 			hint: "Hint: Use your dance connections to access and end a ritual.",
 			softLockable: true,
 		},
+		"Pound Alpha":{
+			title: "Pound Alpha",
+			desc: "Reached maximum status at the dog pound.",
+			difficulty: 1,
+			series: "",
+			filter: ["All", "Discoveries"],
+			hint: "Hint: Show those dogs who's boss.",
+			softLockable: true,
+		},
+		"Pound Runt":{
+			title: "Pound Runt",
+			desc: "Reached minimum status at the dog pound.",
+			difficulty: 1,
+			series: "",
+			filter: ["All", "Discoveries"],
+			hint: "Hint: Submit to the dogs.",
+			softLockable: true,
+		},
+		"Pounded Pound":{
+			title: "Pounded Pound",
+			desc: "Informed Bailey of the dog pound's activities.",
+			difficulty: 2,
+			series: "",
+			filter: ["All", "Discoveries"],
+			hint: "Hint: Find dirt on the dog pound.",
+			softLockable: true,
+		},
+		"Pound Liberator":{
+			title: "Pound Liberator",
+			desc: "Rescued the black dog.",
+			difficulty: 2,
+			series: "",
+			filter: ["All", "Discoveries"],
+			hint: "Hint: Release a special prisoner.",
+			softLockable: true,
+		},
 		"Max Those Shots":{
 			title: "Max Those Shots",
 			desc: "Holding a lot of pepper spray.",
diff --git a/game/base-system/images.twee b/game/base-system/images.twee
index 5282befc52fe821037ded5a66b30dc6d520cc2f6..b588094f0efb5e5abfafe8e5d86faa8626a438c9 100644
--- a/game/base-system/images.twee
+++ b/game/base-system/images.twee
@@ -932,6 +932,24 @@
 	<</if>>
 <</widget>>
 
+<<widget "furnitureicon">>
+	<<if $images is 1>>
+		<<set $_icon to _args[0]>>
+		<img id="icon" @src="'img/misc/icon/furniture/' + $_icon">
+	<</if>>
+<</widget>>
+
+<<widget "bedroomtablechairicon">>
+	<<if $images is 1>>
+		<<set $_table to Furniture.get('table')>>
+		<<set $_chair to Furniture.get('chair')>>
+		<span>
+			<img id="icon" class="infront" @src="'img/misc/icon/furniture/' + $_table.iconFile">
+			<img id="icon" @src="'img/misc/icon/furniture/' + $_chair.iconFile">
+		</span>
+	<</if>>
+<</widget>>
+
 <<widget "wardrobeicon">>
 	<<if $images is 1>>
 		<img id="icon" src="img/misc/icon/wardrobe.png">
@@ -1196,6 +1214,18 @@
 	<</if>>
 <</widget>>
 
+<<widget "beericon">>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/beer.png">
+	<</if>>
+<</widget>>
+
+<<widget "coffeeicon">>
+	<<if $images is 1>>
+		<img id="icon" src="img/misc/icon/coffee.png">
+	<</if>>
+<</widget>>
+
 <<widget "ind">>
 	<<if $images is 1>>
 		<img id="icon" src="img/misc/icon/indent.png">
diff --git a/game/base-system/journal.twee b/game/base-system/journal.twee
index 6ab165d9e5961e7eb0f88135df48d4f1572f638e..1d3c0d8ba357bb121ca8f6567a9f148098744536 100644
--- a/game/base-system/journal.twee
+++ b/game/base-system/journal.twee
@@ -2,6 +2,46 @@
 <<widget "journal">>
 
 <h4>Journal</h4>
+It is the $monthday<<monthday>> of <<month>> $year.
+<br>
+It has been $days days since the game started.
+<br>
+The game started in $startingseason.
+<br>
+<<if $hardmodedays isnot undefined>>
+	You survived <span class="gold">$hardmodedays</span> days on hard mode.
+	<br>
+<</if>>
+<<schoolterm>>
+<br>
+It is $season.
+<br><br>
+<<if $antiquemoney gt 0>>
+	You are carrying antiques worth £<<print $antiquemoney>>.
+	<br>
+<</if>>
+<<if $blackmoney gt 0>>
+	You are carrying £<<print $blackmoney>> in stolen goods.
+	<br>
+<</if>>
+<<set _plant_keys to Object.keys($plants)>>
+<<for _t to 0; _t lt _plant_keys.length; _t++>>
+	<<if $plants[_plant_keys[_t]].amount gte 1>><<set _plant_temp to 1>>
+		You have <span class="gold"><<print $plants[_plant_keys[_t]].amount>></span> <<print $plants[_plant_keys[_t]].plural>>. |
+	<</if>>
+<</for>>
+<<if _plant_temp is 1>>You can sell them by renting a stand on Connudatus Street at dawn.<br><</if>>
+<<if $phials_held gte 2>>
+	You are carrying $phials_held phials of aphrodisiac. You can sell them on Elk Street. <br>
+<<elseif $phials_held gte 1>>
+	You are carrying a phial of aphrodisiac. You can sell it on Elk Street. <br>
+<</if>>
+<<if $lurkers_held gte 2>>
+	You are carrying $lurkers_held lurkers. <br>
+<<elseif $lurkers_held is 1>>
+	You are carrying a lurker. <br>
+<</if>>
+<br>
 
 <<if $images is 1>>
 	<<if $season is "winter">>
@@ -78,7 +118,7 @@
 	Landry might be able to help you with the locked police computer.
 	<br>
 <<elseif $pub_hack_job is 1>>
-	Landry wants you to find a young hacker living at the Domus street orphanage.
+	Landry wants you to find a hacker living at the Domus street orphanage.
 	<br>
 <<elseif $pub_hack_job is 2>>
 	Convince the hacker to work with you.
@@ -118,8 +158,23 @@
 	<br>
 <</if>>
 
-<<if $robindebtevent gte 1 and $docksrobinintro isnot 1>>
-	Robin is missing. They were taken to the docks on Mer Street.
+<<if $robindebtevent gte 1 and $robinmissing is "docks" and $docksrobinintro isnot 1>>
+	Robin is missing. <<nnpc_He "Robin">> was taken to the docks on Mer Street.
+	<br>
+<</if>>
+
+<<if $robindebtevent gte 1 and $robinmissing is "landfill" and $mistrobinintro isnot 1 and $robinmistknown>>
+	Robin is missing. <<nnpc_He "Robin">> was taken to the landfill on Elk Street.
+	<br>
+<</if>>
+
+<<if $robindebtevent gte 1 and $robinmissing is "pillory" and $robinPillory.known is 1>>
+	Robin is missing.
+	<<if $hour lte 14>>
+		<<nnpc_Hes "Robin">> scheduled to be put in the pillory at <<ampm 15 00>>.
+	<<else>>
+		<<nnpc_Hes "Robin">> currently in the pillory. You don't know what will happen to <<nnpc_him "Robin">>.
+	<</if>>
 	<br>
 <</if>>
 
@@ -143,7 +198,7 @@
 	<<if $halloween_whitney is 1 and $NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon">>
 		Whitney will be trick-or-treating on Domus Street from <<ampm 19 00>>.
 	<</if>>
-	<<if $halloween_robin is 1 and $robinmissing isnot 1>>
+	<<if $halloween_robin is 1 and $robinmissing is 0>>
 		Robin wants to go trick-or-treating between <<ampm 16 00>> and <<ampm 19 00>>.
 	<</if>>
 	<<if $halloween_kylar is 1 and $NPCName[$NPCNameList.indexOf("Kylar")].state isnot "prison">>
@@ -291,7 +346,7 @@
 <<if $farm_state gte 5 and $estate_fence is undefined>>
 	Remy is encroaching on Alex's farm, operating from the estate on the moor.
 	<br>
-<<elseif $estate_fence is "quest" and $skulduggery lt 800>>
+<<elseif $estate_fence is "quest" and currentSkillValue('skulduggery') lt 800>>
 	Find someone who can help you break into the Remy estate. Someone with underworld connections, or who knows the moor.
 	<br>
 <<elseif $estate_fence is "bird">>
diff --git a/game/base-system/location.twee b/game/base-system/location.twee
index 9f1f8d0e377ac6c34359c9a34eaf5252e7edb11f..636017442aa1f5cc96d568f84cb15236aa238a41 100644
--- a/game/base-system/location.twee
+++ b/game/base-system/location.twee
@@ -4,12 +4,12 @@
 	/*
 		parent: the location this location is in. values are inherited from here
 		area: marker for locations that represent large areas with many locations inside. you don't usually want to set the pc
-		      location to them. use a more specialized location instead.
+			  location to them. use a more specialised location instead.
 		bus: marker for sub-areas within the town
 		outside: if the location is outside or indoors
 		tanning: factor applied to tanning. only used for outside locations
 		location: locations that should show up in C.location, don't set this on e.g. indoor variants or single rooms. you can get
-		          those with C.sublocation if you need them
+				  those with C.sublocation if you need them
 	*/
 	<<script>>
 		setup.addlocation = function(location) {
@@ -29,11 +29,11 @@
 					return this;
 				},
 				outside: function() {
-					this.data.outside = true;
+					this.data.outside = 1;
 					return this;
 				},
 				inside: function() {
-					this.data.outside = false;
+					this.data.outside = 0;
 					return this;
 				},
 				tanning: function(tanning) {
@@ -53,7 +53,7 @@
 					if (this.data.descr === undefined) {
 						this.data.descr = this.data.name.replace(/_/, " ").replace(/(^|\s)\S/g, function(t) { return t.toUpperCase() });
 					}
-					
+
 					let parent = this.data.name;
 					while (parent !== undefined) {
 						if (this.data.area_name === undefined && setup.locations[parent].area) {
@@ -85,7 +85,7 @@
 				area: true,
 				location: true,
 				bus: false,
-				outside: true,
+				outside: 1,
 				tanning: 1.0
 			}
 		};
@@ -142,6 +142,7 @@
 		setup.addlocation(   "museum"                 ).parent("oxford").location().inside().build();
 		setup.addlocation(  "commercial_alley"        ).parent("commercial").location("allay").build();
 		setup.addlocation(  "commercial_drain"        ).parent("commercial").location("drain").inside().build();
+		setup.addlocation(   "pound"                  ).parent("starfish").location().inside().build();
 
 		setup.addlocation( "industrial"               ).parent("town").bus().location().build();
 		setup.addlocation(  "mer"                     ).parent("industrial").bus().build();
@@ -185,7 +186,7 @@
 		setup.addlocation( "seacliffs"                ).parent("sea").bus().build();
 		setup.addlocation( "seapirates"               ).parent("sea").inside().build();
 		setup.addlocation( "coastpath"                ).parent("sea").build();
-		setup.addlocation( "prison"               	  ).parent("sea").location().inside().build();
+		setup.addlocation( "prison"                   ).parent("sea").location().inside().build();
 
 		setup.addlocation("tentworld"                 ).parent("world").area().location().tanning(0).inside().build(); /* TODO: remove inside() when consuming code has been adapted */
 
diff --git a/game/base-system/mirror.twee b/game/base-system/mirror.twee
index 582c1ec53ee262662917fe4b8f3ee5ab5a61af29..cbf7d97bd4cdc869ac84ff85224167727d511eef 100644
--- a/game/base-system/mirror.twee
+++ b/game/base-system/mirror.twee
@@ -456,142 +456,142 @@ Increasing your allure:
 		<br>
 	<</if>>
 </span>
-<<if $famesex gte 1000>>
+<<if $fame.sex gte 1000>>
 	<span class="red">Notorious slut</span>
 	<br>
-<<elseif $famesex gte 600>>
+<<elseif $fame.sex gte 600>>
 	<span class="pink">Famous slut</span>
 	<br>
-<<elseif $famesex gte 400>>
+<<elseif $fame.sex gte 400>>
 	<span class="purple">Recognised slut</span>
 	<br>
-<<elseif $famesex gte 200>>
+<<elseif $fame.sex gte 200>>
 	<span class="blue">Known slut</span>
 	<br>
-<<elseif $famesex gte 100>>
+<<elseif $fame.sex gte 100>>
 	<span class="lblue">Low-key slut</span>
 	<br>
-<<elseif $famesex gte 30>>
+<<elseif $fame.sex gte 30>>
 	<span class="teal">Obscure slut</span>
 	<br>
 <</if>>
 
-<<if $fameprostitution gte 1000>>
+<<if $fame.prostitution gte 1000>>
 	<span class="red">Notorious whore</span>
 	<br>
-<<elseif $fameprostitution gte 600>>
+<<elseif $fame.prostitution gte 600>>
 	<span class="pink">Famous whore</span>
 	<br>
-<<elseif $fameprostitution gte 400>>
+<<elseif $fame.prostitution gte 400>>
 	<span class="purple">Recognised whore</span>
 	<br>
-<<elseif $fameprostitution gte 200>>
+<<elseif $fame.prostitution gte 200>>
 	<span class="blue">Known whore</span>
 	<br>
-<<elseif $fameprostitution gte 100>>
+<<elseif $fame.prostitution gte 100>>
 	<span class="lblue">Low-key whore</span>
 	<br>
-<<elseif $fameprostitution gte 30>>
+<<elseif $fame.prostitution gte 30>>
 	<span class="teal">Obscure whore</span>
 	<br>
 <</if>>
 
-<<if $famerape gte 1000>>
+<<if $fame.rape gte 1000>>
 	<span class="red">Notorious fucktoy</span>
 	<br>
-<<elseif $famerape gte 600>>
+<<elseif $fame.rape gte 600>>
 	<span class="pink">Famous fucktoy</span>
 	<br>
-<<elseif $famerape gte 400>>
+<<elseif $fame.rape gte 400>>
 	<span class="purple">Recognised fucktoy</span>
 	<br>
-<<elseif $famerape gte 200>>
+<<elseif $fame.rape gte 200>>
 	<span class="blue">Known fucktoy</span>
 	<br>
-<<elseif $famerape gte 100>>
+<<elseif $fame.rape gte 100>>
 	<span class="lblue">Low-key fucktoy</span>
 	<br>
-<<elseif $famerape gte 30>>
+<<elseif $fame.rape gte 30>>
 	<span class="teal">Obscure fucktoy</span>
 	<br>
 <</if>>
 
 <<if $bestialitydisable is "f">>
-	<<if $famebestiality gte 1000>>
+	<<if $fame.bestiality gte 1000>>
 		<span class="red">Notorious bitch</span>
 		<br>
-	<<elseif $famebestiality gte 600>>
+	<<elseif $fame.bestiality gte 600>>
 		<span class="pink">Famous bitch</span>
 		<br>
-	<<elseif $famebestiality gte 400>>
+	<<elseif $fame.bestiality gte 400>>
 		<span class="purple">Recognised bitch</span>
 		<br>
-	<<elseif $famebestiality gte 200>>
+	<<elseif $fame.bestiality gte 200>>
 		<span class="blue">Known bitch</span>
 		<br>
-	<<elseif $famebestiality gte 100>>
+	<<elseif $fame.bestiality gte 100>>
 		<span class="lblue">Low-key bitch</span>
 		<br>
-	<<elseif $famebestiality gte 30>>
+	<<elseif $fame.bestiality gte 30>>
 		<span class="teal">Obscure bitch</span>
 		<br>
 	<</if>>
 <<else>>
-	<<if $famebestiality gte 1000>>
+	<<if $fame.bestiality gte 1000>>
 		<span class="red">Notorious monster fucker</span>
 		<br>
-	<<elseif $famebestiality gte 600>>
+	<<elseif $fame.bestiality gte 600>>
 		<span class="pink">Famous monster fucker</span>
 		<br>
-	<<elseif $famebestiality gte 400>>
+	<<elseif $fame.bestiality gte 400>>
 		<span class="purple">Recognised monster fucker</span>
 		<br>
-	<<elseif $famebestiality gte 200>>
+	<<elseif $fame.bestiality gte 200>>
 		<span class="blue">Known monster fucker</span>
 		<br>
-	<<elseif $famebestiality gte 100>>
+	<<elseif $fame.bestiality gte 100>>
 		<span class="lblue">Low-key monster fucker</span>
 		<br>
-	<<elseif $famebestiality gte 30>>
+	<<elseif $fame.bestiality gte 30>>
 		<span class="teal">Obscure monster fucker</span>
 		<br>
 	<</if>>
 <</if>>
 
-<<if $fameexhibitionism gte 1000>>
+<<if $fame.exhibitionism gte 1000>>
 	<span class="red">Notorious flaunter</span>
 	<br>
-<<elseif $fameexhibitionism gte 600>>
+<<elseif $fame.exhibitionism gte 600>>
 	<span class="pink">Famous flaunter</span>
 	<br>
-<<elseif $fameexhibitionism gte 400>>
+<<elseif $fame.exhibitionism gte 400>>
 	<span class="purple">Recognised flaunter</span>
 	<br>
-<<elseif $fameexhibitionism gte 200>>
+<<elseif $fame.exhibitionism gte 200>>
 	<span class="blue">Known flaunter</span>
 	<br>
-<<elseif $fameexhibitionism gte 100>>
+<<elseif $fame.exhibitionism gte 100>>
 	<span class="lblue">Low-key flaunter</span>
 	<br>
-<<elseif $fameexhibitionism gte 30>>
+<<elseif $fame.exhibitionism gte 30>>
 	<span class="teal">Obscure flaunter</span>
 	<br>
 <</if>>
-<<if $famepregnancy gte 1000>>
+<<if $fame.pregnancy gte 1000>>
 	<span class="red">Notorious broodmother</span>
 	<br>
-<<elseif $famepregnancy gte 600>>
+<<elseif $fame.pregnancy gte 600>>
 	<span class="pink">Famous broodmother</span>
-<<elseif $famepregnancy gte 400>>
+<<elseif $fame.pregnancy gte 400>>
 	<span class="purple">Recognised breeder</span>
 	<br>
-<<elseif $famepregnancy gte 200>>
+<<elseif $fame.pregnancy gte 200>>
 	<span class="blue">Known breeder</span>
 	<br>
-<<elseif $famepregnancy gte 100>>
+<<elseif $fame.pregnancy gte 100>>
 	<span class="lblue">Low-key mother</span>
 	<br>
-<<elseif $famepregnancy gte 50>>
+<<elseif $fame.pregnancy gte 50>>
 	<span class="teal">Obscure mother</span>
 	<br>
 <</if>>
@@ -600,98 +600,98 @@ Increasing your allure:
 Decreasing your allure:
 <br>
 
-<<if $famescrap gte 1000>>
+<<if $fame.scrap gte 1000>>
 	<span class="green">Notorious scrapper</span>
 	<br>
-<<elseif $famescrap gte 600>>
+<<elseif $fame.scrap gte 600>>
 	<span class="teal">Famous scrapper</span>
 	<br>
-<<elseif $famescrap gte 400>>
+<<elseif $fame.scrap gte 400>>
 	<span class="lblue">Recognised scrapper</span>
 	<br>
-<<elseif $famescrap gte 200>>
+<<elseif $fame.scrap gte 200>>
 	<span class="blue">Known scrapper</span>
 	<br>
-<<elseif $famescrap gte 100>>
+<<elseif $fame.scrap gte 100>>
 	<span class="purple">Low-key scrapper</span>
 	<br>
-<<elseif $famescrap gte 30>>
+<<elseif $fame.scrap gte 30>>
 	<span class="pink">Obscure scrapper</span>
 	<br>
 <</if>>
-<<if $famegood gte 1000>>
+<<if $fame.good gte 1000>>
 	<span class="green">Notorious do-gooder</span>
 	<br>
-<<elseif $famegood gte 600>>
+<<elseif $fame.good gte 600>>
 	<span class="teal">Famous do-gooder</span>
 	<br>
-<<elseif $famegood gte 400>>
+<<elseif $fame.good gte 400>>
 	<span class="lblue">Recognised do-gooder</span>
 	<br>
-<<elseif $famegood gte 200>>
+<<elseif $fame.good gte 200>>
 	<span class="blue">Known do-gooder</span>
 	<br>
-<<elseif $famegood gte 100>>
+<<elseif $fame.good gte 100>>
 	<span class="purple">Low-key do-gooder</span>
 	<br>
-<<elseif $famegood gte 30>>
+<<elseif $fame.good gte 30>>
 	<span class="pink">Obscure do-gooder</span>
 	<br>
 <</if>>
-<<if $famebusiness gte 1000>>
+<<if $fame.business gte 1000>>
 	<span class="green">Notorious entrepreneur</span>
 	<br>
-<<elseif $famebusiness gte 600>>
+<<elseif $fame.business gte 600>>
 	<span class="teal">Famous entrepreneur</span>
 	<br>
-<<elseif $famebusiness gte 400>>
+<<elseif $fame.business gte 400>>
 	<span class="lblue">Recognised entrepreneur</span>
 	<br>
-<<elseif $famebusiness gte 200>>
+<<elseif $fame.business gte 200>>
 	<span class="blue">Known entrepreneur</span>
 	<br>
-<<elseif $famebusiness gte 100>>
+<<elseif $fame.business gte 100>>
 	<span class="purple">Low-key entrepreneur</span>
 	<br>
-<<elseif $famebusiness gte 30>>
+<<elseif $fame.business gte 30>>
 	<span class="pink">Obscure entrepreneur</span>
 	<br>
 <</if>>
-<<if $famesocial gte 1000>>
+<<if $fame.social gte 1000>>
 	<span class="green">Notorious schmoozer</span>
 	<br>
-<<elseif $famesocial gte 600>>
+<<elseif $fame.social gte 600>>
 	<span class="teal">Famous socialite</span>
 	<br>
-<<elseif $famesocial gte 400>>
+<<elseif $fame.social gte 400>>
 	<span class="lblue">Recognised socialite</span>
 	<br>
-<<elseif $famesocial gte 200>>
+<<elseif $fame.social gte 200>>
 	<span class="blue">Known socialite</span>
 	<br>
-<<elseif $famesocial gte 100>>
+<<elseif $fame.social gte 100>>
 	<span class="purple">Low-key socialite</span>
 	<br>
-<<elseif $famesocial gte 30>>
+<<elseif $fame.social gte 30>>
 	<span class="pink">Obscure socialite</span>
 	<br>
 <</if>>
-<<if $famemodel gte 1000>>
+<<if $fame.model gte 1000>>
 	<span class="green">Notorious show off</span>
 	<br>
-<<elseif $famemodel gte 600>>
+<<elseif $fame.model gte 600>>
 	<span class="teal">Famous model</span>
 	<br>
-<<elseif $famemodel gte 400>>
+<<elseif $fame.model gte 400>>
 	<span class="lblue">Recognised model</span>
 	<br>
-<<elseif $famemodel gte 200>>
+<<elseif $fame.model gte 200>>
 	<span class="blue">Known model</span>
 	<br>
-<<elseif $famemodel gte 100>>
+<<elseif $fame.model gte 100>>
 	<span class="purple">Low-key model</span>
 	<br>
-<<elseif $famemodel gte 30>>
+<<elseif $fame.model gte 30>>
 	<span class="pink">Obscure model</span>
 	<br>
 <</if>>
@@ -785,33 +785,33 @@ __Body Writing__<br>
 }>>
 
 <<if $beauty gte ($beautymax / 7) * 3>>
-   <<set _bodyWritingOptions.General["Handsome"] to "handsome">>
-   <<set _bodyWritingOptions.General["Pretty"] to "pretty">>
+	<<set _bodyWritingOptions.General["Handsome"] to "handsome">>
+	<<set _bodyWritingOptions.General["Pretty"] to "pretty">>
 <</if>>
 <<if $beauty gte ($beautymax / 7) * 4>>
-   <<set _bodyWritingOptions.General["Stud"] to "stud">>
-   <<set _bodyWritingOptions.General["Beauty"] to "beauty">>
+	<<set _bodyWritingOptions.General["Stud"] to "stud">>
+	<<set _bodyWritingOptions.General["Beauty"] to "beauty">>
 <</if>>
 <<if $beauty gte ($beautymax / 7) * 5>>
-   <<set _bodyWritingOptions.General["Beautiful"] to "beautiful">>
+	<<set _bodyWritingOptions.General["Beautiful"] to "beautiful">>
 <</if>>
 
 <<if $trauma gte (($traumamax / 5) * 2)>>
-   <<set _bodyWritingOptions.General["Daddy issues"] to "daddy_issues">>
-   <<set _bodyWritingOptions.General["Mommy issues"] to "mommy_issues">>
-   <<set _bodyWritingOptions.General["Trashy"] to "trashy">>
+	<<set _bodyWritingOptions.General["Daddy issues"] to "daddy_issues">>
+	<<set _bodyWritingOptions.General["Mommy issues"] to "mommy_issues">>
+	<<set _bodyWritingOptions.General["Trashy"] to "trashy">>
 <</if>>
 <<if $trauma gte (($traumamax / 5) * 3)>>
-   <<set _bodyWritingOptions.General["Worthless"] to "worthless">>
-   <<set _bodyWritingOptions.General["Oh no"] to "oh_no">>
-   <<set _bodyWritingOptions.General["Dumb bitch"] to "dumb_bitch">>
+	<<set _bodyWritingOptions.General["Worthless"] to "worthless">>
+	<<set _bodyWritingOptions.General["Oh no"] to "oh_no">>
+	<<set _bodyWritingOptions.General["Dumb bitch"] to "dumb_bitch">>
 <</if>>
 
 <<if $promiscuity gte 15>>
-   <<set _bodyWritingOptions.General["Hot"] to "hot">>
+	<<set _bodyWritingOptions.General["Hot"] to "hot">>
 <</if>>
 <<if $promiscuity gte 35>>
-   <<set _bodyWritingOptions.Promiscuity = {}>>
+	<<set _bodyWritingOptions.Promiscuity = {}>>
 	<<set _bodyWritingOptions.Promiscuity["Slut"] to "slut">>
 	<<set _bodyWritingOptions.Promiscuity["Promiscuous"] to "promiscuous">>
 	<<set _bodyWritingOptions.Promiscuity["Wanton"] to "wanton">>
@@ -819,25 +819,25 @@ __Body Writing__<br>
 <</if>>
 
 <<if $promiscuity gte 55>>
-   <<set _bodyWritingOptions.Promiscuity["Insatiable slut"] to "insatiable_slut">>
-   <<set _bodyWritingOptions.Promiscuity["Free Sex"] to "free_sex">>
-   <<set _bodyWritingOptions.Promiscuity["Town bicycle"] to "town_bicycle">>
-   <<set _bodyWritingOptions.Promiscuity["Size queen"] to "size_queen">>
-   <<if $orgasmtrait gte 1>>
+	<<set _bodyWritingOptions.Promiscuity["Insatiable slut"] to "insatiable_slut">>
+	<<set _bodyWritingOptions.Promiscuity["Free Sex"] to "free_sex">>
+	<<set _bodyWritingOptions.Promiscuity["Town bicycle"] to "town_bicycle">>
+	<<set _bodyWritingOptions.Promiscuity["Size queen"] to "size_queen">>
+	<<if $orgasmtrait gte 1>>
 		<<set _bodyWritingOptions.Promiscuity["Sex addict"] to "sex_addict">>
 		<<set _bodyWritingOptions.Promiscuity["Make me cum"] to "make_me_cum">>
-   <</if>>
+	<</if>>
 <</if>>
 
 <<if $promiscuity gte 75>>
-   <<set _bodyWritingOptions.Promiscuity["Fuck Me"] to "fuck_me">>
-   <<set _bodyWritingOptions.Promiscuity["Cocksucker"] to "cocksucker">>
-   <<set _bodyWritingOptions.Promiscuity["Cum dump"] to "cum_dump">>
-   <<set _bodyWritingOptions.Promiscuity["Public Slut"] to "public_slut">>
-   <<if $analstat gte 100>>
-	  <<set _bodyWritingOptions.Promiscuity["Buttslut"] to "buttslut">>
-	  <<set _bodyWritingOptions.Promiscuity["Anal whore"] to "anal_whore">>
-   <</if>>
+	<<set _bodyWritingOptions.Promiscuity["Fuck Me"] to "fuck_me">>
+	<<set _bodyWritingOptions.Promiscuity["Cocksucker"] to "cocksucker">>
+	<<set _bodyWritingOptions.Promiscuity["Cum dump"] to "cum_dump">>
+	<<set _bodyWritingOptions.Promiscuity["Public Slut"] to "public_slut">>
+	<<if $analstat gte 100>>
+		<<set _bodyWritingOptions.Promiscuity["Buttslut"] to "buttslut">>
+		<<set _bodyWritingOptions.Promiscuity["Anal whore"] to "anal_whore">>
+	<</if>>
 <</if>>
 
 <<if $promiscuity gte 35>>
@@ -889,10 +889,10 @@ __Body Writing__<br>
 	<<set _bodyWritingOptions.Submission["Submissive"] to "submissive">>
 	<<set _bodyWritingOptions.Submission["Pet"] to "pet">>
 
-   	<<if $deviancy gte 35>>
-	  <<set _bodyWritingOptions.Submission["Public pet"] to "public_pet">>
-  	<</if>>
-	  
+		<<if $deviancy gte 35>>
+		<<set _bodyWritingOptions.Submission["Public pet"] to "public_pet">>
+	<</if>>
+
 	<<if $promiscuity gte 55>>
 		<<set _bodyWritingOptions.Submission["Free use"] to "free_use">>
 		<<set _bodyWritingOptions.Submission["Use Me"] to "use_me">>
@@ -907,7 +907,7 @@ __Body Writing__<br>
 			<<set _bodyWritingOptions.Submission["Fucktoy"] to "fucktoy">>
 			<<if $player.penisExist>>
 				<<set _bodyWritingOptions.Submission["Walking dildo"] to "walking_dildo">>
-			<</if>> 
+			<</if>>
 		<</if>>
 	<</if>>
 <</if>>
@@ -979,7 +979,7 @@ __Body Writing__<br>
 		<</if>>
 	<</if>>
 	<<if $sydneyromance is 1>>
-		<<set _bodyWritingOptions["Love Interests"]["Sydney's Savior"] to "sydneys_savior">>
+		<<set _bodyWritingOptions["Love Interests"]["Sydney's Saviour"] to "sydneys_savior">>
 		<<set _bodyWritingOptions["Love Interests"]["Bound to Sydney"] to "bound_to_sydney">>
 		<<set _bodyWritingOptions["Love Interests"]["Sydney Makes Me :)"] to "sydney_makes_me_smile">>
 		<<if $NPCName[$NPCNameList.indexOf("Sydney")].purity gt 1>>
@@ -1002,6 +1002,20 @@ __Body Writing__<br>
 		<<set _bodyWritingOptions["Love Interests"]["Terror's Mate"] to "terrors_mate">>
 		<<set _bodyWritingOptions["Love Interests"]["Free Bird"] to "free_bird">>
 	<</if>>
+	<<if $debug is 1>>
+		<<set _bodyWritingOptions["Debug"] to setup.bodywriting>>
+		<<set _debugBodywritingOptionsKeys to Object.keys(setup.bodywriting)>>
+		<<link [[Wash yourself|$passage]]>>
+			<<set $mirrorMenu to "skin">>
+			<<wash>>
+		<</link>>
+		<<link [[Bind hands|$passage]]>>
+			<<set $mirrorMenu to "skin">>
+			<<bind>>
+		<</link>>
+		<br/>
+		<<print Object.values(setup.bodywriting).length>> known bodywriting options.
+	<</if>>
 
 /*Needs to be last*/
 <div id="bodywritingMenuLinks">
@@ -1041,6 +1055,22 @@ __Body Writing__<br>
 			<<set _bodyPartOptions[_text_output.toUpperFirst()] to _label>>
 		<</if>>
 	<</for>>
+	<<if $debug is 1>>
+		Write
+		<<listbox "_bodyWritingDebugSelected">>
+			<<optionsfrom _bodyWritingOptions[$bodywritingSet]>>
+		<</listbox>>
+		everywhere where you can
+		<<link [[Confirm|$passage]]>>
+			<<set $mirrorMenu to "skin">>
+			<<for _part range _bodyPartOptions>>
+				<<add_bodywriting _part _bodyWritingDebugSelected "pen">>
+			<</for>>
+		<</link>>
+		<br />
+		<br />
+	<</if>>
+
 	<<if Object.keys(_bodyPartOptions).length gt 0>>
 		Write
 		<<listbox "_bodyWritingSelected">>
@@ -1073,8 +1103,8 @@ __Hair__
 		Default: {hairtype:$hairtype, fringetype:$fringetype, hairposition:$hairposition}
 	}>>
 <</if>>
-<<set _hairTypeByName to {"Braid left": "braid left", "Braid right": "braid right", "Flat ponytail": "flat ponytail", "Loose": "loose", "Messy": "messy", "Pigtails": "pigtails", "Ponytail": "ponytail", "Short": "short", "Side tail left": "side tail left", "Side tail right": "side tail right", "Straight": "straight", "Swept left": "swept left", "Twin braids": "twin braids", "Twintails": "twintails", "Curl": "curl", "Defined curl": "defined curl", "Neat": "neat", "Curly pigtails": "curly pigtails", "Sailor buns": "sailor buns", "Dreads": "dreads"}>>
-<<set _fringeTypeByName to {"Thin flaps": "thin flaps", "Wide flaps": "wide flaps", "Hime": "hime", "Loose": "loose", "Messy": "messy", "Overgrown": "overgrown", "Ringlets": "ringlets", "Split": "split", "Straight": "straight", "Swept left": "swept left", "Back": "back", "Parted": "parted", "Flat": "flat", "Quiff": "quiff", "Straight curl": "straight curl", "Ringlet curl": "ringlet curl", "Curtain": "curtain"}>>
+<<set _hairTypeByName to {"Braid left": "braid left", "Braid right": "braid right", "Flat ponytail": "flat ponytail", "Loose": "loose", "Messy": "messy", "Pigtails": "pigtails", "Ponytail": "ponytail", "Short": "short", "Side tail left": "side tail left", "Side tail right": "side tail right", "Straight": "straight", "Swept left": "swept left", "Twin braids": "twin braids", "Twintails": "twintails", "Curl": "curl", "Defined curl": "defined curl", "Neat": "neat", "Curly pigtails": "curly pigtails", "Sailor buns": "sailor buns", "Dreads": "dreads", "Short spiky": "short spiky", "Bubble tails": "bubble tails", "Curly side up": "curly side up", "Heart braid": "heart braid", "Loop braid": "loop braid", "Ruffled": "ruffled"}>>
+<<set _fringeTypeByName to {"Thin flaps": "thin flaps", "Wide flaps": "wide flaps", "Hime": "hime", "Loose": "loose", "Messy": "messy", "Overgrown": "overgrown", "Ringlets": "ringlets", "Split": "split", "Straight": "straight", "Swept left": "swept left", "Back": "back", "Parted": "parted", "Flat": "flat", "Quiff": "quiff", "Straight curl": "straight curl", "Ringlet curl": "ringlet curl", "Curtain": "curtain", "Trident": "trident"}>>
 
 <div class="no-numberify">
 	<<link [[Natural|$passage]]>>
@@ -1160,7 +1190,8 @@ Your fringe is in the "$fringetype" style.
 <<if $makeup.owned[_itemType].length == 0>>
 	You don't own any _plural.
 <<elseif _items.length == 0>>
-	You ran out of _plural.<br>
+	You ran out of _plural.
+	<br>
 <</if>>
 <<if _items.length != 0 or $makeup[_itemType] != 0>>
 	Apply _singular:<br>
@@ -1205,10 +1236,12 @@ __Makeup__
 <<if $mirror_eyebrow_dye is true>>
 	<br>
 	<<unset $mirror_eyebrow_dye>>
-	You open up the box with $browsDyeOption dye and prepare the mixture.<br>
-	Using a small brush you carefully apply the dye to your eyebrows.<br>
-	You wait several minutes for the dye to set and hope you didn't mess up anything.<br>
-	<br><br>
+	You open up the box with $browsDyeOption dye and prepare the mixture.
+	<br>
+	Using a small brush you carefully apply the dye to your eyebrows.
+	<br>
+	You wait several minutes for the dye to set and hope you didn't mess up anything.
+	<br><br><br>
 	<<set $makeup.owned.hairdye.find(x => x.colour == $browsDyeOption).count -= 1>>
 	<<pass 10>><<set $makeup.browscolour = $browsDyeOption>><<unset $browsDyeOption>>
 <</if>>
@@ -1271,10 +1304,11 @@ __Makeup__
 <<if !$simpleMirror>>
 	/* CONTACT LENSES */
 	<<if $makeup.owned.eyelenses.length == 0 and $makeup.owned.custom_eyelenses.length == 0>>
-		You don't own any contact lenses.<br>
+		You don't own any contact lenses.
+		<br>
 	<<else>>
 		<<set _contact_eye_selected to "Both">>
-		Wear contact lenses:<br> /* NON CUSTOMIZED ONES */
+		Wear contact lenses:<br> /* NON CUSTOMISED ONES */
 		Select eye : <<listbox "_contact_eye_selected" autoselect>>
 			<<option "Both">>
 			<<option "Left eye">>
@@ -1306,7 +1340,7 @@ __Makeup__
 			<</capture>>
 		<</for>>
 		<br>
-				Custom contact lenses:<br> /* CUSTOMIZED ONES */
+				Custom contact lenses:<br> /* CUSTOMISED ONES */
 		<<set _custom_eye_selected to "Both">>
 		Select eye : <<listbox "_custom_eye_selected" autoselect>>
 			<<option "Both">>
@@ -1559,6 +1593,10 @@ If your Trauma gets too high, you will be unable to hide.
 			<<option "Default" "default">>
 			<<option "Classic" "classic">>
 			<<option "Pink" "pink">>
+			<<option "Blue" "blue">>
+			<<option "Lime" "lime">>
+			<<option "Red" "red">>
+			<<option "Yellow" "yellow">>
 		<</listbox>>
 		<br>
 	<</if>>
@@ -1568,6 +1606,10 @@ If your Trauma gets too high, you will be unable to hide.
 			<<option "Hide" "hidden">>
 			<<option "Default" "default">>
 			<<option "Pink" "pink">>
+			<<option "Blue" "blue">>
+			<<option "Lime" "lime">>
+			<<option "Red" "red">>
+			<<option "Yellow" "yellow">>
 		<</listbox>>
 		<br>
 	<</if>>
@@ -1578,6 +1620,10 @@ If your Trauma gets too high, you will be unable to hide.
 			<<option "Default" "default">>
 			<<option "Classic" "classic">>
 			<<option "Pink" "pink">>
+			<<option "Blue" "blue">>
+			<<option "Lime" "lime">>
+			<<option "Red" "red">>
+			<<option "Yellow" "yellow">>
 		<</listbox>>
 		<br>
 	<</if>>
@@ -1620,6 +1666,8 @@ If your Trauma gets too high, you will be unable to hide.
 		<<listbox "$transformationParts.cow.ears" autoselect>>
 			<<option "Hide" "hidden">>
 			<<option "Default" "default">>
+			<<option "Spotted black" "spotted black">>
+			<<option "Spotted brown" "spotted brown">>
 		<</listbox>>
 		<br>
 	<</if>>
diff --git a/game/base-system/name-list.twee b/game/base-system/name-list.twee
index c650ff1602e06a4eae3190cc243fab404405f38a..80d9299a3bc9d84ef8ac66af1f16cbaf2739db2a 100644
--- a/game/base-system/name-list.twee
+++ b/game/base-system/name-list.twee
@@ -1,108 +1,108 @@
 :: Widgets Name List [widget]
 <<widget "init_names">>
 <<set $NPC_names_m to [
-    "Oliver",
-    "Noah",
-    "George",
-    "Arthur",
-    "Freddie",
-    "Leo",
-    "Theo",
-    "Oscar",
-    "Charlie",
-    "Harry",
-    "Michael",
-    "Christopher",
-    "Matthew",
-    "Joshua",
-    "Jacob",
-    "Nicholas",
-    "Andrew",
-    "Daniel",
-    "Tyler",
-    "Joseph",
-    "James",
-    "David",
-    "Robert",
-    "Jack",
-    "Richard",
-    "Paul",
-    "Mark",
-    "Thomas",
-    "Adam",
-    "Jason",
-    "Connor",
-    "Jake",
-    "John",
-    "Brian",
-    "William",
-    "Ben",
-    "Kevin",
-    "Eric",
-    "Jeffrey",
-    "Jamie",
-    "Louis",
-    "Ryan",
-    "Mark",
-    "Joe",
-    "Stephen",
-    "Ian",
-    "Austin",
-    "Kyle",
-    "Zach",
-    "Patrick"
-    ]>>
+	"Oliver",
+	"Noah",
+	"George",
+	"Arthur",
+	"Freddie",
+	"Leo",
+	"Theo",
+	"Oscar",
+	"Charlie",
+	"Harry",
+	"Michael",
+	"Christopher",
+	"Matthew",
+	"Joshua",
+	"Jacob",
+	"Nicholas",
+	"Andrew",
+	"Daniel",
+	"Tyler",
+	"Joseph",
+	"James",
+	"David",
+	"Robert",
+	"Jack",
+	"Richard",
+	"Paul",
+	"Mark",
+	"Thomas",
+	"Adam",
+	"Jason",
+	"Connor",
+	"Jake",
+	"John",
+	"Brian",
+	"William",
+	"Ben",
+	"Kevin",
+	"Eric",
+	"Jeffrey",
+	"Jamie",
+	"Louis",
+	"Ryan",
+	"Mark",
+	"Joe",
+	"Stephen",
+	"Ian",
+	"Austin",
+	"Kyle",
+	"Zach",
+	"Patrick"
+	]>>
 
 <<set $NPC_names_f to [
-    "Olivia",
-    "Amelia",
-    "Isla",
-    "Ava",
-    "Mia",
-    "Grace",
-    "Freya",
-    "Lily",
-    "Sophia",
-    "Ivy",
-    "Jessica",
-    "Ashley",
-    "Emily",
-    "Sarah",
-    "Samantha",
-    "Amanda",
-    "Brittany",
-    "Elizabeth",
-    "Taylor",
-    "Megan",
-    "Laura",
-    "Gemma",
-    "Emma",
-    "Rebecca",
-    "Claire",
-    "Victoria",
-    "Rachel",
-    "Amy",
-    "Jennifer",
-    "Nicola",
-    "Katie",
-    "Lisa",
-    "Julie",
-    "Melissa",
-    "Michelle",
-    "Kim",
-    "Angela",
-    "Heather",
-    "Stephanie",
-    "Nicole",
-    "Christina",
-    "Susan",
-    "Karen",
-    "Jacqueline",
-    "Deborah",
-    "Tracey",
-    "Jane",
-    "Helen",
-    "Diane",
-    "Sharon"
-    ]>>
+	"Olivia",
+	"Amelia",
+	"Isla",
+	"Ava",
+	"Mia",
+	"Grace",
+	"Freya",
+	"Lily",
+	"Sophia",
+	"Ivy",
+	"Jessica",
+	"Ashley",
+	"Emily",
+	"Sarah",
+	"Samantha",
+	"Amanda",
+	"Brittany",
+	"Elizabeth",
+	"Taylor",
+	"Megan",
+	"Laura",
+	"Gemma",
+	"Emma",
+	"Rebecca",
+	"Claire",
+	"Victoria",
+	"Rachel",
+	"Amy",
+	"Jennifer",
+	"Nicola",
+	"Katie",
+	"Lisa",
+	"Julie",
+	"Melissa",
+	"Michelle",
+	"Kim",
+	"Angela",
+	"Heather",
+	"Stephanie",
+	"Nicole",
+	"Christina",
+	"Susan",
+	"Karen",
+	"Jacqueline",
+	"Deborah",
+	"Tracey",
+	"Jane",
+	"Helen",
+	"Diane",
+	"Sharon"
+	]>>
 <</widget>>
\ No newline at end of file
diff --git a/game/base-system/named-npcs.twee b/game/base-system/named-npcs.twee
index ff1e76f3bdd8f72d52f1f44b92d8aee26ab376e4..ad6149f85722ded4e28a51ec730c6ebe80884028 100644
--- a/game/base-system/named-npcs.twee
+++ b/game/base-system/named-npcs.twee
@@ -248,10 +248,10 @@ Zohar
 
 <!-- Set Genital Existence -->
 <<if $NPCName[_i].type isnot "human">>
-	<<set $NPCName[_i].penis to  ($NPCName[_i].gender !== "f" ? 0 : "none")>>
+	<<set $NPCName[_i].penis to ($NPCName[_i].gender !== "f" ? 0 : "none")>>
 	<<set $NPCName[_i].vagina to ($NPCName[_i].gender !== "m" ? 0 : "none")>>
 <<else>>
-	<<set $NPCName[_i].penis to  ($NPCName[_i].gender !== "f" ? "clothed" : "none")>>
+	<<set $NPCName[_i].penis to ($NPCName[_i].gender !== "f" ? "clothed" : "none")>>
 	<<set $NPCName[_i].vagina to ($NPCName[_i].gender !== "m" ? "clothed" : "none")>>
 <</if>>
 
@@ -261,7 +261,7 @@ Zohar
 <<set _b_mod_upper to Math.clamp($breast_mod + 12, 0, 12)>>
 
 <!-- can't use breastsize, since that would either break the numberslider
- or make one of the sizes always be randomized,
+ or make one of the sizes always be randomised,
  but can use breastdesc not being changed from 0 as a substitute -->
 <<if $NPCName[_i].breastdesc is 0 or _args[1] is "breasts">>
 	<<if $NPCName[_i].pronoun is "m">>
@@ -281,9 +281,9 @@ Zohar
 <!-- Set pp to defaults-->
 
 /* New way to set upper and lower bounds.
- * This method makes use of all other slider positions, but does nothing when slider is between -1 and 1, 
+ * This method makes use of all other slider positions, but does nothing when slider is between -1 and 1,
  * for a total of 15 unique positions vs the current method's 9. (max would be 17)
- * Changing the penis_mod slider to range from -7 to 7 would work to make every slider position unique here, but potentially affects unnamed npc generation. 
+ * Changing the penis_mod slider to range from -7 to 7 would work to make every slider position unique here, but potentially affects unnamed npc generation.
  */
 
 /*
@@ -394,6 +394,7 @@ alternative way to write that:
 	<<case Robin>>
 		<<set $NPCName[_i].virginity to clone(setup.NPCVirginityTypesVirgin)>>
 		<<set $robinDaily to {}>>
+		<<set $robinSeen to []>>
 		<<set $NPCName[_i].cdquest to 0>>
 	<<case River>>
 		<<if $NPCName[_i].pronoun is "m">>
@@ -494,7 +495,7 @@ alternative way to write that:
 	<<case Sydney>>
 		<<set $NPCName[_i].purity to 100>>
 		<<set $NPCName[_i].virginity to {anal:true, oral:true, penile:true, vaginal:true, temple:true, handholding:true, kiss:true}>>
-		<<set $NPCName[_i].chastity to {penis:"chastity belt", vagina:"chastity belt", anus:"anal shield"}>>	
+		<<set $NPCName[_i].chastity to {penis:"chastity belt", vagina:"chastity belt", anus:"anal shield"}>>
 		<<set $sydneySeen to []>>
 		<<set $sydneyFirstSeen to "">>
 		<<set $sydney to {}>>
@@ -597,7 +598,7 @@ alternative way to write that:
 		<<case Robin>>
 			<<run getRobinCrossdressingStatus($NPCName[_i].crossdress)>>
 			<<set $NPCName[_i].crossdressing to _robin_cd>>
-			<<run getRobinLocation()>>
+			<<run statusCheck("Robin")>>
 			<<switch _robin_location>>
 				<<case "sleep">>
 					<<npcClothesType $NPCName[_i] "sleep">>
@@ -610,7 +611,7 @@ alternative way to write that:
 						<<npcClothesType $NPCName[_i] "halloween">>
 					<<else>>
 						<<generateNPCClothes $NPCName[_i]>>
-					<</if>>	
+					<</if>>
 				<<default>>
 					<<generateNPCClothes $NPCName[_i]>>
 			<</switch>>
@@ -657,13 +658,16 @@ alternative way to write that:
 <<set _i to $NPCNameList.indexOf(_nam)>>
 <<set $_newNPCOutfit to _args[1]>>
 <<if _args[0] and _args[1]>>
-	<<set $_src to Utils.GetStack()>>
 	<<if !setup.npcClothesSets.some(set => set.name.includes($_newNPCOutfit))>>
-		<<set $_msg to `NPC (${_nam}) was given invalid outfit (Outfit name: ${$_newNPCOutfit}). Please inform PurityGuy.`>>
-		<<error $_msg $_src>>
+		<<error {
+			message	: `NPC (${_nam}) was given invalid outfit (Outfit name: ${$_newNPCOutfit}). Please inform PurityGuy.`,
+			source	: Utils.GetStack()
+		}>>
 	<<elseif _i lt 0>>
-		<<set $_msg to `NPC (${_nam}) ${"is"} invalid (Must be a named NPC. check for typos!). Please inform PurityGuy.`>>
-		<<error $_msg $_src>>
+		<<error {
+			message	: `NPC (${_nam}) ${"is"} invalid (Must be a named NPC. check for typos!). Please inform PurityGuy.`,
+			source	: Utils.GetStack()
+		}>>
 	<<else>>
 		<<if !$NPCName[_i].outfits>>
 			<<set $NPCName[_i].outfits to ["naked", "maleDefault", "femaleDefault"]>>
@@ -678,16 +682,21 @@ alternative way to write that:
 <<set _i to $NPCNameList.indexOf(_nam)>>
 <<set $_newNPCOutfit to _args[1]>>
 <<if _args[0] and _args[1]>>
-	<<set $_src to Utils.GetStack()>>
 	<<if _i lt 0>>
-		<<set $_msg to `NPC (${_nam}) ${"is"} invalid (Must be a named NPC. Check for typos!). Please inform PurityGuy.`>>
-		<<error $_msg $_src>>
+		<<error {
+			message	: `NPC (${_nam}) ${"is"} invalid (Must be a named NPC. Check for typos!). Please inform PurityGuy.`,
+			source	: Utils.GetStack()
+		}>>
 	<<elseif !$NPCName[_i].outfits>>
-		<<set $_msg to `NPC (${_nam}) attempted to remove outfit (Outfit name: ${$_newNPCOutfit}) while having no outfits. Why don't you remove that pesky skin of yours? Please inform PurityGuy.`>>
-		<<error $_msg $_src>>
+		<<error {
+			message	: `NPC (${_nam}) attempted to remove outfit (Outfit name: ${$_newNPCOutfit}) while having no outfits. Why don't you remove that pesky skin of yours? Please inform PurityGuy.`,
+			source	: Utils.GetStack()
+		}>>
 	<<elseif !$NPCName[_i].outfits.some(x => x.includes($_newNPCOutfit))>>
-		<<set $_msg to `NPC (${_nam}) had non-existant outfit removed (Outfit name: ${$_newNPCOutfit}). Please inform PurityGuy.`>>
-		<<error $_msg $_src>>
+		<<error {
+			message	: `NPC (${_nam}) had non-existant outfit removed (Outfit name: ${$_newNPCOutfit}). Please inform PurityGuy.`,
+			source	: Utils.GetStack()
+		}>>
 	<<else>>
 		<<set $NPCName[_i].outfits.delete($_newNPCOutfit)>>
 		<<if $NPCName[_i].outfits.length is 0>>
@@ -843,6 +852,10 @@ alternative way to write that:
 <<set $NPCList[_npcno].breastdesc to $NPCName[_i].breastdesc>>
 <<set $NPCList[_npcno].vagina to $NPCName[_i].vagina>>
 
+<<if $breastfeedingdisable is "f" and _nam is "Morgan" and $NPCName[_i].pronoun is "f" and $NPCName[_i].breastsize gt 0>>
+	<<set $NPCList[_npcno].lactation to 1>>
+<</if>>
+
 <<set $NPCList[_npcno].penis to $NPCName[_i].penis>>
 <<set $NPCList[_npcno].penissize to $NPCName[_i].penissize>>
 <<set $NPCList[_npcno].penisdesc to $NPCName[_i].penisdesc>>
@@ -851,6 +864,14 @@ alternative way to write that:
 <<set $NPCList[_npcno].clothes to clone($NPCName[_i].clothes)>>
 <<set $NPCList[_npcno].chest to clone($NPCName[_i].chest)>>
 
+<<if $NPCList[_npcno].penis is "none" and $NPCName[_i].strapons and $NPCName[_i].strapons.length gt 0 and random(0,99) lt $straponchance>>
+	<<set $NPCList[_npcno].penis to $NPCList[_npcno].vagina>>
+	<<set $NPCList[_npcno].vagina to "none">>
+	<<set $NPCList[_npcno].gender to "m">>
+	<<set $_strapon to clone($NPCName[_i].strapons.random())>>
+	<<setNPCStrapon $NPCList[_npcno] $_strapon>>
+<</if>>
+
 <<set $NPCList[_npcno].insecurity to $NPCName[_i].insecurity>>
 <<set $npcdescription to $NPCName[_i].title>>
 <<set $NPCList[_npcno].description to $NPCName[_i].title>>
@@ -878,7 +899,7 @@ alternative way to write that:
 <</if>>
 
 <!-- Whitney and Avery should wear strap-ons based on strap-on chance -->
-<<if $NPCList[_npcno].penis is "none" and (_nam is "Whitney" or _nam is "Avery") and !_strapIgnore and random(0,99) lt  $straponchance>>
+<<if $NPCList[_npcno].penis is "none" and (_nam is "Whitney" or _nam is "Avery") and !_strapIgnore and random(0,99) lt $straponchance>>
 	<<npcstrapon _npcno>>
 <</if>>
 
@@ -1025,7 +1046,17 @@ alternative way to write that:
 	<<case init>>
 		<<set $NPCName[_i].init to _val>>
 	<<case trauma>>
-		<<set $NPCName[_i].trauma += _val>>
+		<<if _nam is "Robin" and _val lt 0>>
+			<<set $NPCName[_i].trauma += Math.round(_val * ($robinTraumaMultiplier || 1))>>
+			<<if $NPCName[_i].trauma lt 0>>
+				<<set $NPCName[_i].trauma = 0>>
+			<</if>>
+		<<else>>
+			<<set $NPCName[_i].trauma += _val>>
+			<<if $NPCName[_i].trauma gt 100>>
+				<<set $NPCName[_i].trauma = 100>>
+			<</if>>
+		<</if>>
 	<<case purity>>
 		<<if $NPCName[_i].corruption gt 0>>
 			<<set $NPCName[_i].corruption -= _val>>
@@ -1048,7 +1079,7 @@ alternative way to write that:
 					<<set $NPCName[_i].purity = 0>>
 					<<set $corruptionRollover to 1>>
 				<<else>>
-					<<set $NPCName[_i].purity = 1>>		
+					<<set $NPCName[_i].purity = 1>>
 				<</if>>
 			<</if>>
 			<<if $NPCName[_i].purity gte 100 and ($NPCName[_i].virginity.vaginal isnot true or $NPCName[_i].virginity.penile isnot true)>>
@@ -1097,7 +1128,7 @@ alternative way to write that:
 	<<case purity>>
 		<<set $NPCName[_i].purity to _val>>
 	<<case corruption>>
-		<<set $NPCName[_i].corruption to _val>>		
+		<<set $NPCName[_i].corruption to _val>>
 	<<default>>
 		<span class="red">NPCSET error - Unknown value _var</span>
 		<br><br>
@@ -1113,7 +1144,17 @@ alternative way to write that:
 	<<case Robin>>
 		Robin
 		<<if $robinromance is 1>>
-			<span class="lewd">loves you.</span>
+			<<if $NPCName[_i].trauma gte 80>>
+				<<if $NPCName[_i].lust gte 50>>
+					<span class="red">is lost in need for you.</span>
+				<<else>>
+					<span class="red">is nothing without you.</span>
+				<</if>>
+			<<elseif $NPCName[_i].dom gte 40>>
+				<span class="lewd">cherishes you.</span>
+			<<else>>
+				<span class="lewd">loves you.</span>
+			<</if>>
 		<<elseif $NPCName[_i].trauma gte 80>>
 			<span class="red">is traumatised.</span>
 		<<elseif $NPCName[_i].trauma gte 40>>
@@ -1252,13 +1293,13 @@ alternative way to write that:
 					<span class="lewd">wants to be <<if $NPCName[_i].virginity.vaginal is true and $NPCName[_i].virginity.penile is true>>deflowered<<else>>defiled<</if>> by you.</span>
 				<<else>>
 					<span class="lewd">loves you beyond words.</span>
-				<</if>>				
+				<</if>>
 			<<elseif $NPCName[_i].corruption gte 10>>
 				<<if $NPCName[_i].lust gte 10>>
 					<span class="lewd">craves your touch.</span>
 				<<else>>
 					<span class="lewd">belongs to you.</span>
-				<</if>>	
+				<</if>>
 			<<else>>
 				<span class="lewd">loves you.</span>
 			<</if>>
@@ -1284,7 +1325,7 @@ alternative way to write that:
 					<span class="teal">looks up to you.</span>
 				<<else>>
 					<span class="teal">enjoys your company.</span>
-				<</if>>			
+				<</if>>
 			<<elseif $NPCName[_i].corruption gte 10>>
 				<span class="pink">wants to know you better.</span>
 			<<else>>
@@ -1296,7 +1337,7 @@ alternative way to write that:
 					<span class="pink">thinks you're lost.</span>
 				<<else>>
 					<span class="lblue">is proud of you.</span>
-				<</if>>			
+				<</if>>
 			<<else>>
 				<span class="lblue">is intrigued by you.</span>
 			<</if>>
@@ -1360,7 +1401,7 @@ alternative way to write that:
 		<<else>>
 			has no strong opinion of you.
 		<</if>>
-	
+
 <!-- Default cases for all other NNPCs -->
 	<<default>>
 		<<if $npctextlove gte $npclovehigh>>
@@ -1414,13 +1455,25 @@ alternative way to write that:
 <</if>>
 <</widget>>
 
-<<widget "NPCStatusCheck">>
+/* <<widget "NPCStatusCheck">>	[OBSOLETE; use statusCheck(name)]
 <!-- When NPCs are updated and made compatible with statusCheck-style widgets, add them to here. Make a new if statement, NOT an elseif -->
-<!-- Usage: call a SINGLE argument with every relevant NPC. <<NPCStatusCheck "Kylar Sydney">> will call <<kylarStatusCheck>> and <<sydneyStatusCheck>> -->
-<<if _args[0].includes("Kylar") and $NPCName[$NPCNameList.indexOf("Kylar")].init is 1>>
-	<<kylarStatusCheck>>
+<!-- Usage: call a SINGLE argument with every relevant NPC. <<NPCStatusCheck("Kylar Sydney")>> will call <<kylarStatusCheck>> and <<sydneyStatusCheck>> --> [DOES NOT WORK WITH statusCheck(name)]
+<<if _args[0].includes("Robin")>>
+	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<if _robin.init is 1>>
+		<<robinStatusCheck>>
+	<</if>>
 <</if>>
-<<if _args[0].includes("Sydney") and $NPCName[$NPCNameList.indexOf("Sydney")].init is 1>>
-	<<sydneyStatusCheck>>
+<<if _args[0].includes("Kylar")>>
+	<<set _kylar to $NPCName[$NPCNameList.indexOf("Kylar")]>>
+	<<if _kylar.init is 1>>
+		<<kylarStatusCheck>>
+	<</if>>
 <</if>>
-<</widget>>
+<<if _args[0].includes("Sydney")>>
+	<<set _sydney to $NPCName[$NPCNameList.indexOf("Sydney")]>>
+	<<if _sydney.init is 1>>
+		<<sydneyStatusCheck>>
+	<</if>>
+<</if>>
+<</widget>> */
diff --git a/game/base-system/nicknames.twee b/game/base-system/nicknames.twee
index 53362db41a0e9fda9e655aead07350086d71f2e4..ee34845682acac5b9dff4485cbc06ff7b51b10c5 100644
--- a/game/base-system/nicknames.twee
+++ b/game/base-system/nicknames.twee
@@ -1,11 +1,11 @@
 :: Widgets Nicknames [widget]
 <<widget "underworld_nickname">>
-<<if $famesex gte 400>>
-	<<if $fameprostitution gte 400>>
-		<<if $famerape gte 400>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+<<if $fame.sex gte 400>>
+	<<if $fame.prostitution gte 400>>
+		<<if $fame.rape gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<if $player.gender_appearance is "m">>
 							<<set _text_output to "Our Boy">>
 						<<else>>
@@ -19,21 +19,21 @@
 						<</if>>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Plaything">>
 					<<else>>
 						<<set _text_output to "Fucktoy">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Pike">>
 					<<else>>
 						<<set _text_output to "Rapier">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Ultra Slut">>
 					<<else>>
 						<<set _text_output to "Super Slut">>
@@ -41,29 +41,29 @@
 				<</if>>
 			<</if>>
 		<<else>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Milker">>
 					<<else>>
 						<<set _text_output to "Milky">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Kibbles">>
 					<<else>>
 						<<set _text_output to "Nibbles">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Weaver">>
 					<<else>>
 						<<set _text_output to "Needle">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Pokies">>
 					<<else>>
 						<<set _text_output to "Pokey">>
@@ -72,30 +72,30 @@
 			<</if>>
 		<</if>>
 	<<else>>
-		<<if $famerape gte 400>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+		<<if $fame.rape gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Wolf Whore">>
 					<<else>>
 						<<set _text_output to "Wolf Slut">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Dog Whore">>
 					<<else>>
 						<<set _text_output to "Dog Slut">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Spike">>
 					<<else>>
 						<<set _text_output to "Rough-and-Tumble">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Freebies">>
 					<<else>>
 						<<set _text_output to "Free Slut">>
@@ -103,23 +103,23 @@
 				<</if>>
 			<</if>>
 		<<else>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Doggy Squeezer">>
 					<<else>>
 						<<set _text_output to "Wolf Warrior">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Doggy Milker">>
 					<<else>>
 						<<set _text_output to "Wolf Rider">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<if $player.gender_appearance is "m">>
 							<<set _text_output to "Pimp">>
 						<<else>>
@@ -129,7 +129,7 @@
 						<<set _text_output to "Sabre">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<if $player.gender_appearance is "m">>
 							<<set _text_output to "Slut Dad">>
 						<<else>>
@@ -143,11 +143,11 @@
 		<</if>>
 	<</if>>
 <<else>>
-	<<if $fameprostitution gte 400>>
-		<<if $famerape gte 400>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+	<<if $fame.prostitution gte 400>>
+		<<if $fame.rape gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<if $player.gender_appearance is "m">>
 							<<set _text_output to "Hound Father">>
 						<<else>>
@@ -157,21 +157,21 @@
 						<<set _text_output to "Hound">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Dogged One">>
 					<<else>>
 						<<set _text_output to "Pup">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Dagger">>
 					<<else>>
 						<<set _text_output to "Scar">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Sex Beggar">>
 					<<else>>
 						<<set _text_output to "Rape Beggar">>
@@ -179,29 +179,29 @@
 				<</if>>
 			<</if>>
 		<<else>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Fang">>
 					<<else>>
 						<<set _text_output to "Claw">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "The Hound">>
 					<<else>>
 						<<set _text_output to "Puppy">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Stiletto">>
 					<<else>>
 						<<set _text_output to "Knife">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<if $player.gender_appearance is "m">>
 							<<set _text_output to "Whoredad">>
 						<<else>>
@@ -214,24 +214,24 @@
 			<</if>>
 		<</if>>
 	<<else>>
-		<<if $famerape gte 400>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+		<<if $fame.rape gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Tasty">>
 					<<else>>
 						<<set _text_output to "The Rabbit">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Kitten">>
 					<<else>>
 						<<set _text_output to "Bitch">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "The Rough One">>
 					<<else>>
 						<<if $player.gender_appearance is "m">>
@@ -241,7 +241,7 @@
 						<</if>>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Free Samples">>
 					<<else>>
 						<<set _text_output to "Rape Bait">>
@@ -249,9 +249,9 @@
 				<</if>>
 			<</if>>
 		<<else>>
-			<<if $famebestiality gte 400>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+			<<if $fame.bestiality gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<if $player.gender_appearance is "m">>
 							<<set _text_output to "Den Father">>
 						<<else>>
@@ -261,21 +261,21 @@
 						<<set _text_output to "The Wolf">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "Rancher">>
 					<<else>>
 						<<set _text_output to "Paw">>
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famescrap gte 400>>
-					<<if $famepimp gte 400>>
+				<<if $fame.scrap gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<set _text_output to "The Rat">>
 					<<else>>
 						<<set _text_output to "Scrappy">>
 					<</if>>
 				<<else>>
-					<<if $famepimp gte 400>>
+					<<if $fame.pimp gte 400>>
 						<<if $player.gender_appearance is "m">>
 							<<set _text_output to "Dad">>
 						<<else>>
@@ -293,25 +293,25 @@
 <</widget>>
 
 <<widget "overworld_nickname">>
-<<if $fameexhibitionism gte 400>>
-	<<if $famegood gte 400>>
-		<<if $famebusiness gte 400>>
-			<<if $famesocial gte 400>>
+<<if $fame.exhibitionism gte 400>>
+	<<if $fame.good gte 400>>
+		<<if $fame.business gte 400>>
+			<<if $fame.social gte 400>>
 				<<set _text_output to "The Orphan">>
-			<<elseif $famemodel gte 400>>
+			<<elseif $fame.model gte 400>>
 				<<set _text_output to "Crowd Pleaser">>
 			<<else>>
 				<<set _text_output to "Gold Heart">>
 			<</if>>
 		<<else>>
-			<<if $famesocial gte 400>>
-				<<if $famemodel gte 400>>
+			<<if $fame.social gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Scandalous">>
 				<<else>>
 					<<set _text_output to "Flaunty">>
 				<</if>>
 			<<else>>
-				<<if $famemodel gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Venus">>
 				<<else>>
 					<<set _text_output to "Smiles">>
@@ -319,15 +319,15 @@
 			<</if>>
 		<</if>>
 	<<else>>
-		<<if $famebusiness gte 400>>
-			<<if $famesocial gte 400>>
-				<<if $famemodel gte 400>>
+		<<if $fame.business gte 400>>
+			<<if $fame.social gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Centerfold">>
 				<<else>>
 					<<set _text_output to "Orchid">>
 				<</if>>
 			<<else>>
-				<<if $famemodel gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Hot Shot">>
 				<<else>>
 					<<if $player.gender_appearance is "m">>
@@ -338,8 +338,8 @@
 				<</if>>
 			<</if>>
 		<<else>>
-			<<if $famesocial gte 400>>
-				<<if $famemodel gte 400>>
+			<<if $fame.social gte 400>>
+				<<if $fame.model gte 400>>
 					<<if $player.gender_appearance is "m">>
 						<<set _text_output to "Star">>
 					<<else>>
@@ -353,7 +353,7 @@
 					<</if>>
 				<</if>>
 			<<else>>
-				<<if $famemodel gte 400>>
+				<<if $fame.model gte 400>>
 					<<if $player.gender_appearance is "m">>
 						<<set _text_output to "Pin-Up Boy">>
 					<<else>>
@@ -370,30 +370,30 @@
 		<</if>>
 	<</if>>
 <<else>>
-	<<if $famegood gte 400>>
-		<<if $famebusiness gte 400>>
-			<<if $famesocial gte 400>>
-				<<if $famemodel gte 400>>
+	<<if $fame.good gte 400>>
+		<<if $fame.business gte 400>>
+			<<if $fame.social gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Icon">>
 				<<else>>
 					<<set _text_output to "Flower">>
 				<</if>>
 			<<else>>
-				<<if $famemodel gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Mascot">>
 				<<else>>
 					<<set _text_output to "Charity">>
 				<</if>>
 			<</if>>
 		<<else>>
-			<<if $famesocial gte 400>>
-				<<if $famemodel gte 400>>
+			<<if $fame.social gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Poppet">>
 				<<else>>
 					<<set _text_output to "Preachy">>
 				<</if>>
 			<<else>>
-				<<if $famemodel gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Muse">>
 				<<else>>
 					<<set _text_output to "Angel">>
@@ -401,15 +401,15 @@
 			<</if>>
 		<</if>>
 	<<else>>
-		<<if $famebusiness gte 400>>
-			<<if $famesocial gte 400>>
-				<<if $famemodel gte 400>>
+		<<if $fame.business gte 400>>
+			<<if $fame.social gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Promo">>
 				<<else>>
 					<<set _text_output to "Tulip">>
 				<</if>>
 			<<else>>
-				<<if $famemodel gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Money Shot">>
 				<<else>>
 					<<if $player.gender_appearance is "m">>
@@ -420,14 +420,14 @@
 				<</if>>
 			<</if>>
 		<<else>>
-			<<if $famesocial gte 400>>
-				<<if $famemodel gte 400>>
+			<<if $fame.social gte 400>>
+				<<if $fame.model gte 400>>
 					<<set _text_output to "Trendy">>
 				<<else>>
 					<<set _text_output to "Wallflower">>
 				<</if>>
 			<<else>>
-				<<if $famemodel gte 400>>
+				<<if $fame.model gte 400>>
 					<<if $player.gender_appearance is "m">>
 						<<set _text_output to "Glamour Boy">>
 					<<else>>
@@ -448,102 +448,189 @@
 <</widget>>
 
 <<widget "pcpetname">><<silently>>
-<<switch _args[0]>>
-	<<case "Avery" "avery">>
-		/* note: female terms for male pc are intentional */
-		<<set _names to []>>
-		<<set _gender to $player.gender_appearance>>
-		<<set _names.push(_gender is "m" ? "boy" : "girl")>>
-		<<set _love to $NPCName[$NPCNameList.indexOf("Avery")].love>>
-		<<set _rage to $NPCName[$NPCNameList.indexOf("Avery")].rage>>
-		<<if _love + _rage gte 25>>
-			/* generic */
-			<<if _love gte 30>>
-				<<set _names.push("doll", "sunshine")>>
-				<<if _love gte 60>>
-					<<set _names.push("princess")>>
-					<<if _gender is "m">><<set _names.push("prince")>><</if>>
+	<<if _args[0]>>
+		<<set $_npc to _args[0]>>
+	<<elseif $npc.length gte 1>>
+		<<set $_npc to $npc[0]>>
+	<</if>>
+	<<if $wraith and $wraith.mimic is $_npc>>
+		<<set $_wraith to true>>
+	<</if>>
+	<<set _names to []>>
+	<<set _gender to $player.gender_appearance>>
+
+	<<switch $_npc>>
+		<<case "Avery" "avery">>
+			/* note: female terms for male pc are intentional */
+			<<set _names.push(_gender is "m" ? "boy" : "girl")>>
+			<<set _love to $NPCName[$NPCNameList.indexOf("Avery")].love>>
+			<<set _rage to $NPCName[$NPCNameList.indexOf("Avery")].rage>>
+			<<if _love + _rage gte 25>>
+				/* generic */
+				<<if _love gte 30>>
+					<<set _names.push("doll", "sunshine")>>
+					<<if _love gte 60>>
+						<<set _names.push("princess")>>
+						<<if _gender is "m">><<set _names.push("prince")>><</if>>
+					<</if>>
+				<</if>>
+				<<if _rage gte 30>>
+					<<set _names.push("brat")>>
+					<<if _rage gte 60>>
+						<<set _names.push("cunt")>>
+						<<if _gender is "m">><<set _names.push("dick")>><</if>>
+					<</if>>
+				<</if>>
+				/* tf */
+				<<if ($cat gte 6) and ($transformationParts.cat.ears isnot "hidden") and ($transformationParts.cat.tail isnot "hidden")>>
+					<<set _names.push("kitten", "pussy")>>
+				<</if>>
+				<<if ($wolfgirl gte 6) and ($transformationParts.wolf.ears isnot "hidden") and ($transformationParts.wolf.tail isnot "hidden")>>
+					<<set _names.push("puppy", "pup")>>
+				<</if>>
+				<<if ($cow gte 6) and ($transformationParts.cow.ears isnot "hidden") and ($transformationParts.cow.tail isnot "hidden") and ($transformationParts.cow.horns isnot "hidden")>>
+					<<set _names.push(_gender is "m"? "cowboy" : "cowgirl")>>
+				<</if>>
+				<<if ($harpy gte 6) and ($transformationParts.bird.wings isnot "hidden") and ($transformationParts.bird.tail isnot "hidden") and ($transformationParts.bird.plumage isnot "hidden")>>
+					<<set _names.push("nestling", "cygnet")>>
+				<</if>>
+				<<if ($angel gte 6) and ($transformationParts.angel.wings isnot "hidden") and ($transformationParts.angel.halo isnot "hidden")>>
+					<<set _names.push("angel", "cherub")>>
+				<</if>>
+				<<if ($demon gte 6) and ($transformationParts.demon.wings isnot "hidden") and ($transformationParts.demon.tail isnot "hidden") and ($transformationParts.demon.horns isnot "hidden")>>
+					<<set _names.push("demon", "succubus")>>
+					<<if _gender is "m">><<set _names.push("incubus")>><</if>>
+				<</if>>
+				/* attitude */
+				<<if random(0, 100) lt 40>>
+					<<if $submissive gte 1150>>
+						<<set _names.push("pet")>>
+						<<if $submissive gte 1500>>
+							<<set _names.push("toy")>>
+							<<if $submissive gte 1900>>
+								<<set _names.push("slave")>>
+							<</if>>
+						<</if>>
+					<</if>>
 				<</if>>
-			<</if>>
-			<<if _rage gte 30>>
-				<<set _names.push("brat")>>
-				<<if _rage gte 60>>
-					<<set _names.push("cunt")>>
-					<<if _gender is "m">><<set _names.push("dick")>><</if>>
+				/* fame */
+				<<if random(0, 100) lt 20>>
+					<<if $fame.exhibitionism gte 400>>
+						<<set _names.push("show off")>>
+						<<if $fame.exhibitionism gte 600>>
+							<<set _names.push("flaunty")>>
+						<</if>>
+					<</if>>
+					<<if $fame.sex gte 400>>
+						<<set _names.push("nymph")>>
+						<<if $fame.sex gte 600>>
+							<<set _names.push("slut")>>
+						<</if>>
+					<</if>>
+					<<if $fame.prostitution gte 400>>
+						<<set _names.push("tramp")>>
+						<<if $fame.prostitution gte 600>>
+							<<set _names.push("whore")>>
+						<</if>>
+					<</if>>
+					<<if $fame.rape gte 400>>
+						<<set _names.push("fuckdoll")>>
+						<<if $fame.rape gte 600>>
+							<<set _names.push("fucktoy")>>
+						<</if>>
+					<</if>>
+				<</if>>
+				/* mimic */
+				<<if $_wraith>>
+					<<set _names.push("thief","graverobber")>>
 				<</if>>
 			<</if>>
-			/* tf */
-			<<if ($cat gte 6) and ($transformationParts.cat.ears isnot "hidden") and ($transformationParts.cat.tail isnot "hidden")>>
-				<<set _names.push("kitten", "pussy")>>
+			/* pick and decorate */
+			<<set _text_output to _names.pluck()>>
+			<<if _love gte 30 and random(0, 100) lt _love - 30 and !["boy","girl"].includes(_text_output)>>
+				<<set _text_output to "little " + _text_output>>
 			<</if>>
-			<<if ($wolfgirl gte 6) and ($transformationParts.wolf.ears isnot "hidden") and ($transformationParts.wolf.tail isnot "hidden")>>
-				<<set _names.push("puppy", "pup")>>
+			<<if _rage gte 50 and random(0, 100) lt _rage - 30>>
+				<<set _text_output to "insufferable " + _text_output>>
 			<</if>>
-			<<if ($cow gte 6) and ($transformationParts.cow.ears isnot "hidden") and ($transformationParts.cow.tail isnot "hidden") and ($transformationParts.cow.horns isnot "hidden")>>
-				<<set _names.push(_gender is "m"? "cowboy" : "cowgirl")>>
+			<<if _love gte 60 and random(0, 100) lt _love - 30>>
+				<<set _text_output to "my " + _text_output>>
 			<</if>>
-			<<if ($bird gte 6) and ($transformationParts.bird.wings isnot "hidden") and ($transformationParts.bird.tail isnot "hidden") and ($transformationParts.bird.plumage isnot "hidden")>>
-				<<set _names.push("nestling", "cygnet")>>
+		<<case "wraith" "Wraith" "Ivory Wraith">>
+			<<set _pre to [""]>>
+			/* generic */
+			<<set _names.push(
+				"manifestation",
+				"reflection",
+				"body"
+			)>>
+			<<if $location is "lake" or $location is "forest">>
+				<<set _names.push("trespasser")>>
 			<</if>>
-			<<if ($angel gte 6) and ($transformationParts.angel.wings isnot "hidden") and ($transformationParts.angel.halo isnot "hidden")>>
-				<<set _names.push("angel", "cherub")>>
+			/* angry or calm */
+			<<if $wraith.state is "haunt">>
+				<<set _names.push(
+					"graverobber","graverobber","graverobber","graverobber","graverobber","graverobber",
+					"thief","thief","thief","thief",
+					"vulture","vulture",
+					"forsaker",
+					"Pandora",
+					"scion",
+					"twig"
+				)>>
+				<<set _pre.push(
+					"wretched ",
+					"baleful ",
+					"cruel "
+				)>>
+			<<else>>
+				<<set _names.push(
+					"coalwalker",
+					"promise",
+					"droplet",
+					"memory",
+					"pearl"
+				)>>
 			<</if>>
-			<<if ($demon gte 6) and ($transformationParts.demon.wings isnot "hidden") and ($transformationParts.demon.tail isnot "hidden") and ($transformationParts.demon.horns isnot "hidden")>>
-				<<set _names.push("demon", "succubus")>>
-				<<if _gender is "m">><<set _names.push("incubus")>><</if>>
+			/* offspring */
+			<<if $wraith.offspring is "dead">>
+				<<set _names.push(
+					"oathbreaker",
+					"mutineer",
+					"snake"
+				)>>
 			<</if>>
-			/* attitude */
-			<<if random(0, 100) lt 40>>
-				<<if $submissive gte 1150>>
-					<<set _names.push("pet")>>
-					<<if $submissive gte 1500>>
-						<<set _names.push("toy")>>
-						<<if $submissive gte 1900>>
-							<<set _names.push("slave")>>
-						<</if>>
-					<</if>>
-				<</if>>
+			/* tfs */
+			<<if $angel gte 6>>
+				<<set _names.push(
+					"messenger",
+					"gaoler"
+				)>>
+				<<set _pre.push("fluttering ")>>
 			<</if>>
-			/* fame */
-			<<if random(0, 100) lt 20>>
-				<<if $fameexhibitionism gte 400>>
-					<<set _names.push("show off")>>
-					<<if $fameexhibitionism gte 600>>
-						<<set _names.push("flaunty")>>
-					<</if>>
-				<</if>>
-				<<if $famesex gte 400>>
-					<<set _names.push("nymph")>>
-					<<if $famesex gte 600>>
-						<<set _names.push("slut")>>
-					<</if>>
-				<</if>>
-				<<if $fameprostitution gte 400>>
-					<<set _names.push("tramp")>>
-					<<if $fameprostitution gte 600>>
-						<<set _names.push("whore")>>
-					<</if>>
-				<</if>>
-				<<if $famerape gte 400>>
-					<<set _names.push("fuckdoll")>>
-					<<if $fameprostitution gte 600>>
-						<<set _names.push("fucktoy")>>
-					<</if>>
-				<</if>>
+			<<if $fallen_angel gte 2>>
+				<<set _names.push(
+					"wingless",
+					"shard"
+				)>>
+				<<set _pre.push("fallen ")>>
 			<</if>>
-		<</if>>
-		/* pick and decorate */
-		<<set _text_output to _names.pluck()>>
-		<<if _love gte 30 and random(0, 100) lt _love - 30>>
-			<<set _text_output to "little " + _text_output>>
-		<</if>>
-		<<if _rage gte 50 and random(0, 100) lt _rage - 30>>
-			<<set _text_output to "insufferable " + _text_output>>
-		<</if>>
-		<<if _love gte 60 and random(0, 100) lt _love - 30>>
-			<<set _text_output to "my " + _text_output>>
-		<</if>>
-	<<default>>
-		<<girl>>
-<</switch>>
+			<<if $demon gte 6>>
+				<<set _names.push(
+					"hellion",
+					"imp"
+				)>>
+			<</if>>
+			/* pick and decorate */
+			<<set _text_output to _names.pluck()>>
+			<<if random(1,100) lte 15 and _text_output isnot "Pandora">>
+				<<set _text_output to _pre.pluck() + _text_output>>
+			<</if>>
+		<<default>>
+			<<girl>>
+	<</switch>>
+<</silently>><<print _text_output>><</widget>>
+
+<<widget "pcPetname">><<silently>>
+	<<pcpetname _args[0]>><<capitalise>>
 <</silently>><<print _text_output>><</widget>>
diff --git a/game/base-system/options.twee b/game/base-system/options.twee
index b4d2116f5740303a994bf24eb3af52447441dd8d..9a6b3c684430ec1e4359723a928628fb7f07abd1 100644
--- a/game/base-system/options.twee
+++ b/game/base-system/options.twee
@@ -155,17 +155,23 @@ Combat Controls:
 <<if SugarCube.Browser.isMobile.any() is true>>
 	Note that saving and loading from file does not work on Android currently.
 <<else>>
+	<<set $_errorCount to document.querySelectorAll('.error').length>>
+	<<set $_dolErrorCount to document.querySelectorAll('.dol-error').length>>
+	<<set $_customErrorCount to Errors.log.length>>
+	<<set $_bypassRestrictions to $debug is 1 or $_errorCount gt 0 or $_dolErrorCount gt 0 or $_customErrorCount gt 0>>
 	Load from file: <input id="saveImport" type="file" value="Load from file" onchange="importSave(this.files)">
 	<br><br>
 	<<if $passage is "Start" or $passage is "Start2">>
 		Please load a save before trying to export a save file.
-	<<elseif ($dancing is 0 and $combat is 0 and $replayScene is undefined) or $debug is 1>>
-		<<set _exportName to "'degrees-of-lewdity"+($saveName isnot ''?'-'+$saveName:'')+ "'">>
-		<<if $ironmanmode is true>>
-			<input type="button" value="Save to file" disabled>
+	<<elseif $ironmanmode>>
+		<<if $_bypassRestrictions>>
+			<input type="button" value="Save to file" onclick="IronMan.exportCurrent()">
 		<<else>>
-			<input type="button" value="Save to file" @onclick="'updateExportDay();SugarCube.Save.export('+_exportName+')'">
+			Unable to save to file during ironman-mode. Only autosaves can be exported.
 		<</if>>
+	<<elseif ($dancing is 0 and $combat is 0 and $replayScene is undefined) or $_bypassRestrictions>>
+		<<set _exportName to "'degrees-of-lewdity"+($saveName isnot ''?'-'+$saveName:'')+ "'">>
+		<input type="button" value="Save to file" @onclick="'updateExportDay();SugarCube.Save.export('+_exportName+')'">
 	<<else>>
 		Unable to save to file currently.
 	<</if>>
@@ -280,7 +286,7 @@ Combat Controls:
 						<div class="saveGroup">
 							<<if _saveDetails.slots[_slot].metadata.ironman == true>>
 								<div class="saveId" style="width: 10px;">
-									<img @id="'saveSlot'+_slot" src="img/ui/SilverCoin.gif" style="max-width: 16px;filter: brightness(2.2);" click-count=0 @onclick="'IronMan.UI.exportButton('+_slot+')'">
+									<img @id="'saveSlot'+_slot" src="img/ui/SilverCoin.gif" style="max-width: 16px;filter: brightness(2.2);" click-count=0 @onclick="'IronMan.export()'">
 								</div>
 							<<else>>
 								<div class="saveId" style="width: 10px;">
@@ -311,7 +317,7 @@ Combat Controls:
 							</div>
 						</div>
 						<<if _i == 9>>
-							<div id="exportButton" class="exportButton"><input type="button" class="saveMenuButton right" value="Export" onclick="IronMan.UI.exportButton()"/></div>
+							<div id="exportButton" class="exportButton"><input type="button" class="saveMenuButton right" value="Export" onclick="IronMan.export()"/></div>
 						<</if>>
 						<div class="deleteButton"><input type="button" class="saveMenuButton right" value="Delete" @onclick="'deleteSave('+ _slot +')'"/></div>
 					<<else>>
diff --git a/game/base-system/orgasm.twee b/game/base-system/orgasm.twee
index 0ee631206aaccf473d36e445889d2574d773f419..bed66b46e492c0ed0e18c50dc92e28b47a0fd90d 100644
--- a/game/base-system/orgasm.twee
+++ b/game/base-system/orgasm.twee
@@ -408,7 +408,7 @@
 
 <<widget "orgasmstage">>
 	<<if $exhibitionism gte 75 and $backgroundTraits.includes("lustful") and $orgasmtrait gte 1>>
-		You feel a massive orgasm building up. 
+		You feel a massive orgasm building up.
 		<br><br>
 		Blinded by your <span class="lewd">lust</span> and your <span class="lewd">hedonism</span>, you
 		<<if $exposed lte 1 and $leftarm isnot "bound" and $rightarm isnot "bound">>
@@ -446,7 +446,7 @@
 		<<set $audiencemod += 5>>
 	<<else>>
 		You feel an orgasm build within, interrupting your dance. <<orgasm>>
-		<<if $danceskill lte 500>>
+		<<if currentSkillValue('danceskill') lte 500>>
 			It breaks your focus. You try to regain balance, but your knees give in and you fall to your knees.
 			The gathered crowd taunts you, and mocks your dance skills.
 			<br><br>
@@ -456,17 +456,17 @@
 				The heel on one of your shoes breaks your fall, and your weight breaks your heel.
 				You crash to the floor again, eliciting laughter from the crowd.<<ggpain>> <<pain 10>>
 				<<feetruined>>
-				<br><br>  
+				<br><br>
 			<</if>>
 			<<if $dancelocation is "smuggler_forced" or $dancelocation is "underground">>
 				You feel ashamed, but you've nowhere to run.
 				<<ggtrauma>><<gggstress>><<trauma 12>><<stress 24>>
 			<<else>>
-				<<tearful>> you crawl out of sight, face red and ashamed. 
+				<<tearful>> you crawl out of sight, face red and ashamed.
 				<<gtrauma>><<gstress>><<trauma 10>><<stress 10>>
 				<<set $danceevent to "finish">>
 			<</if>>
-		<<elseif $danceskill lte 1000 and $exhibitionism gte 50 and $promiscuity gte 50>>
+		<<elseif currentSkillValue('danceskill') lte 1000 and $exhibitionism gte 50 and $promiscuity gte 50>>
 			You drop to your knees before you collapse outright. Your <<body_size_text>> is wracked by violent spasms. The crowd cheers you on.
 			<br><br>
 			You climb to your feet and continue dancing, as the crowd jeer.
@@ -482,7 +482,7 @@
 			<<else>>
 				But it's too much to bear. You flee the scene with as much grace as you can manage.
 				<<gtrauma>><<gstress>><<trauma 5>><<stress 5>>
-				<<set $danceevent to "finish">> 
+				<<set $danceevent to "finish">>
 			<</if>>
 		<</if>>
 	<</if>>
@@ -581,6 +581,9 @@
 				The sight and sound of a <<girl>> convulsing in climax draws the attention of those in the studio. Their reactions are mixed. Some avoid looking. Some stare at you with displeasure. But some also cheer you on. As you regain control of yourself, you notice how rowdy the studio has become. Face red, you try to make yourself look as small and unassumng as possible.
 				<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>>
 			<</if>>
+		<<case "pound">>
+			The sight and sound of a <<girl>> convulsing in climax draws the attention of the <<pound_text>>, who watch with curiosity as you shake and steady yourself.
+			<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
 		<<case "danceStudioLesson">>
 			The sight and sound of a <<girl>> convulsing in climax draws the attention of those in the studio. Their reactions are mostly muted, only the odd glances as they focus on their dancing. As you regain control of yourself, you notice Charlie blushing.
 			<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>><<npcincr Charlie love 1>>
@@ -619,7 +622,7 @@
 				You steady yourself as your spasms subside. Fortunately, the loud ambient noise has stifled your moans, and the dim lights made your spasms almost imperceptible. Still, as you look around, you notice a patron staring at you. <<generate1>><<person1>><<He>> grins and gives you a wink, before getting up and leaving.
 				<<endevent>>
 				<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>>
-			<</if>>	
+			<</if>>
 		<<case "shoppingCentre">>
 			<<if $daystate is "night">>
 				<<set $_quiet to "shopping centre">>
@@ -710,8 +713,8 @@
 			<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<npcincr Alex lust 1>><<glust>>
 		<<case "alexFarmTendingAlone">>
 			You steady yourself as your spasms subside, and feel grateful that Alex isn't around right now to see you in such a state.
-		<<case "alexFarmAdmin">> 
-			Your loud moans attract the attention of Alex and the person on the phone. "I-I'm sorry," <<nnpc_he "Alex">> stammers. "Th-that was just the wind." 
+		<<case "alexFarmAdmin">>
+			Your loud moans attract the attention of Alex and the person on the phone. "I-I'm sorry," <<nnpc_he "Alex">> stammers. "Th-that was just the wind."
 			<br><br>
 			<<nnpc_He "Alex">> continues the call with <<nnpc_his "Alex">> face deep red, and you both avoid eye contact as your spasms subside.
 			<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<npcincr Alex lust 1>><<glust>>
@@ -811,7 +814,7 @@
 			<<set $_semen_gain += Math.floor($semen_volume * (1/24))>>
 		<</if>>
 		<<set $semen_amount += $_semen_gain>>
-		
+
 		<<if $semen_amount gt $semen_volume>>
 			<<if $arousal gte $arousalmax * (4/5)>>
 				<<semenvolume 2>>
@@ -892,7 +895,7 @@
 		<<set $combatWetBoost to 0>>
 	<</if>>
 	<!-- combatArousalWetness has been replaced by vaginaArousalWetness but I don't want to remove it completely so it's commented out for now. -->
-	/* <<set $_combatArousalWetness to 75 - Math.floor(Math.pow(0.99985,_totalArousal) * 75)>> 
+	/* <<set $_combatArousalWetness to 75 - Math.floor(Math.pow(0.99985,_totalArousal) * 75)>>
 	<<set $combatWetBoost += $_combatArousalWetness>> */
 <<else>>
 	<<set $combatWetBoost to 0>>
@@ -935,7 +938,7 @@
 <</widget>>
 
 <!-- Lube is only released when vaginaArousalWetness is over 60 (also, its max value is 100)-->
-<!-- "passive" means the lube is dripping out, while "active" means it is being pushed out  -->
+<!-- "passive" means the lube is dripping out, while "active" means it is being pushed out -->
 <<widget "vaginaFluidPassive">>
 	<<set $_lube_max to Math.round(30*Math.log10($vaginaArousalWetness - 59))>>
 	<<set _lube_released to random(0, $_lube_max)/20>>
@@ -951,7 +954,7 @@
 <<widget "vaginaFluidActive">>
 	<<set $_lube_max to Math.ceil(30*Math.log10($vaginaArousalWetness - 59))>>
 	<<set _lube_released to random(10, $_lube_max)/10>>
-	<!-- Expected value is between 1 and 5, much more likely to be on the lower end due to wetness having a softcap  -->
+	<!-- Expected value is between 1 and 5, much more likely to be on the lower end due to wetness having a softcap -->
 	<<set _lube_released to parseFloat(_lube_released.toFixed(1))>>
 
 	<<if $masturbation_bowl is 1>>
diff --git a/game/base-system/persistent-npcs.twee b/game/base-system/persistent-npcs.twee
index af40b6556840a1ab9cda1f3783c82e40f8bb1bb2..88443e5703e086c8f96c5a486927262a6e376673 100644
--- a/game/base-system/persistent-npcs.twee
+++ b/game/base-system/persistent-npcs.twee
@@ -79,10 +79,10 @@
 
 		<!-- Set Genital Existence -->
 		<<if $per_npc[$_i].type isnot "human">>
-			<<set $per_npc[$_i].penis to  ($per_npc[$_i].gender !== "f" ? 0 : "none")>>
+			<<set $per_npc[$_i].penis to ($per_npc[$_i].gender !== "f" ? 0 : "none")>>
 			<<set $per_npc[$_i].vagina to ($per_npc[$_i].gender !== "m" ? 0 : "none")>>
 		<<else>>
-			<<set $per_npc[$_i].penis to  ($per_npc[$_i].gender !== "f" ? "clothed" : "none")>>
+			<<set $per_npc[$_i].penis to ($per_npc[$_i].gender !== "f" ? "clothed" : "none")>>
 			<<set $per_npc[$_i].vagina to ($per_npc[$_i].gender !== "m" ? "clothed" : "none")>>
 		<</if>>
 
@@ -92,7 +92,7 @@
 		<<set _b_mod_upper to Math.clamp($breast_mod + 12, 0, 12)>>
 
 		<!-- can't use breastsize, since that would either break the numberslider
-		or make one of the sizes always be randomized,
+		or make one of the sizes always be randomised,
 		but can use breastdesc not being changed from 0 as a substitute -->
 		<<if $per_npc[$_i].breastdesc is 0 or _args[0] is "breasts">>
 			<<if $per_npc[$_i].pronoun is "m">>
@@ -112,9 +112,9 @@
 		<!-- Set pp to defaults-->
 
 		/* New way to set upper and lower bounds.
-		* This method makes use of all other slider positions, but does nothing when slider is between -1 and 1, 
+		* This method makes use of all other slider positions, but does nothing when slider is between -1 and 1,
 		* for a total of 15 unique positions vs the current method's 9. (max would be 17)
-		* Changing the penis_mod slider to range from -7 to 7 would work to make every slider position unique here, but potentially affects unnamed npc generation. 
+		* Changing the penis_mod slider to range from -7 to 7 would work to make every slider position unique here, but potentially affects unnamed npc generation.
 		*/
 
 		/*
diff --git a/game/base-system/physicalAdjustments.twee b/game/base-system/physicalAdjustments.twee
index 911a0d6c49b1224c95f45237d20cf32ba71806ec..bb7daf7d11033f232d2c7024ffd5134bea580004 100644
--- a/game/base-system/physicalAdjustments.twee
+++ b/game/base-system/physicalAdjustments.twee
@@ -175,7 +175,7 @@
 	/*
 		- pregnancy has multiple slots, but pregnancy should only occur when none are taken
 		- "baseDays", "baseDaysRng", "lastDaysMax", "currentDaysMax" values should not be changed by multipliers, but by percent if you want a faster/slower cycle during calculations only, do not modifier the values themselves
-		- Sperm Template - 
+		- Sperm Template -
 		"sperm":{
 			"Robin":{"type":"npc", "count":[[daysTillRemoval,cummed inside],[4,3],[3,2]]},
 			"Avery":{"type":"npc", "count":[[daysTillRemoval,cummed inside],[5,1]]},
@@ -283,7 +283,7 @@
 	<<if $cow gte 1>>
 		<<set _breastMulti += 1>>
 	<</if>>
-	
+
 	<<set _purityBoost to (_breastMulti lt 0 ? 1 + ($purity / 1000) : 1 + ((1000 - $purity) / 1000))>>
 	<<set $breastgrowthtimer -= _breastMulti * 25 * _purityBoost>>
 
diff --git a/game/base-system/plant-objects.twee b/game/base-system/plant-objects.twee
index 0fc7504f7dfa2dd26e8f8913dd50fa7e2f1bcb9e..05ec7658a8873a840b73c43eb98698f54917c2ce 100644
--- a/game/base-system/plant-objects.twee
+++ b/game/base-system/plant-objects.twee
@@ -465,7 +465,7 @@
 		}
 }>>
 
-<!-- Jimmy: Sorts all plants alphabetically after their initialisation into _plants. 
+<!-- Jimmy: Sorts all plants alphabetically after their initialisation into _plants.
 			This is so Object.values/keys will read them based on their alphabetical key order.
 			Yet allows extras to be added easily based on .index being available and ordered above.
 -->
diff --git a/game/base-system/pregnancy/children.twee b/game/base-system/pregnancy/children.twee
index 635bea1611d5d1f1cb69943085085f4b2ce30f45..1029073a363f2d77c2ef463f7a5feb24f02f613e 100644
--- a/game/base-system/pregnancy/children.twee
+++ b/game/base-system/pregnancy/children.twee
@@ -553,13 +553,13 @@ args[3] - "both" to include unrelated children or "only" to exclude the player c
 <<widget "childViewerHiddenElements">>
 <<if _args[0]>>
 	<div @id="'childViewerHidden-'+_args[0]" class="hidden">
-		Mother: 
+		Mother:
 		<<if $children[_args[0]].motherKnown>>
 			<<print $children[_args[0]].mother>>
 		<<else>>
 			????
 		<</if>>
-		| Father: 
+		| Father:
 		<<if $children[_args[0]].fatherKnown>>
 			<<print $children[_args[0]].father>>
 		<<else>>
diff --git a/game/base-system/pregnancy/childrenEvents.twee b/game/base-system/pregnancy/childrenEvents.twee
index 21a49018812b31adcfc6638f1ef937f6caae9d19..b866ab87cab9a909d007db13dce1633a1d78e9c2 100644
--- a/game/base-system/pregnancy/childrenEvents.twee
+++ b/game/base-system/pregnancy/childrenEvents.twee
@@ -262,10 +262,10 @@
 		<<childname>> sits alone and wears a scowl on <<childhis>> infant face. You walk over and sit down next to <<childhim>> but <<childhe>> seems to ignore you. Unable to help but smile at the grumpy child's expression you begin to tickle <<childhim>>. While perhaps not ticklish at this age <<childname>> is still deeply amused by your teasing fingers and the silly noises you make as you playfully attack <<childhis>> sides. Soon enough the scowl is gone and the <<childtype>> is giggling and smiling. Mission accomplished, you stand back up. <<lstress>><<stress -5>>
 		<<set $children[$childActivityEvent.childid].localVariables.activity to "thumbSucking">>
 	<<case "readingAttempt">>
-		You walk over to <<childname>> and sit down before pulling <<childhim>> and the inverted book into your lap. Taking the book from the <<childtype>> you flip it about and begin to read it's simple words to <<childhim>>. <<childHe>> follows along with both your voice and the colorful pictures for some time but eventually becomes distracted by something else and rolls off of your lap to pursue it. <<lstress>><<stress -5>>
+		You walk over to <<childname>> and sit down before pulling <<childhim>> and the inverted book into your lap. Taking the book from the <<childtype>> you flip it about and begin to read it's simple words to <<childhim>>. <<childHe>> follows along with both your voice and the colourful pictures for some time but eventually becomes distracted by something else and rolls off of your lap to pursue it. <<lstress>><<stress -5>>
 		<<set $children[$childActivityEvent.childid].localVariables.activity to "readingCorrected">>
 	<<case "babyRattle">>
-		You go over to <<childname>> and sit down next to <<childhim>>. <<childHe>> is looking down at a <<childtoy $location $childActivityEvent.toyid "lowercase">>. You take the toy in hand and give it a shake causing a cacophony of rattles to emanate from it. The <<childtype>> looks bewildered and intrigued as <<childhe>> reaches  for the strange thing. You give the <<childtoy $location $childActivityEvent.toyid "lowercase">> one last shake before handing it over for the <<childtype>> to experiment with. <<lstress>><<stress -5>><<ltrauma>><<trauma -2>>
+		You go over to <<childname>> and sit down next to <<childhim>>. <<childHe>> is looking down at a <<childtoy $location $childActivityEvent.toyid "lowercase">>. You take the toy in hand and give it a shake causing a cacophony of rattles to emanate from it. The <<childtype>> looks bewildered and intrigued as <<childhe>> reaches for the strange thing. You give the <<childtoy $location $childActivityEvent.toyid "lowercase">> one last shake before handing it over for the <<childtype>> to experiment with. <<lstress>><<stress -5>><<ltrauma>><<trauma -2>>
 	<<case "teddyBear">>
 		You go over to the restlessly sleeping <<childtype>> and tuck the <<childtoy $location $childActivityEvent.toyid "lowercase">> into <<childhis>> arms. <<childname>> grips the <<childtoy $location $childActivityEvent.toyid "lowercase">> tightly and nuzzles into it. Soon <<childhe>> is sleeping soundly again. You spend a few calming moments watching <<childhim>>. <<lstress>><<stress -5>><<ltrauma>><<trauma -2>>
 		<<set $children[$childActivityEvent.childid].localVariables.activity to "teddyBear2">>
diff --git a/game/base-system/pregnancy/events.twee b/game/base-system/pregnancy/events.twee
index 9bcb41fe18e443527616ca06d21b91f814c0c3e8..d2cb88e57b39d3122989f7ac665ca3fae658ab14 100644
--- a/game/base-system/pregnancy/events.twee
+++ b/game/base-system/pregnancy/events.twee
@@ -469,7 +469,7 @@ Midwife give the ok to push
 
 :: Pregnancy Birth Hospital 4
 <<set $outside to 0>><<set $location to "hospital">><<effects>>
-$timeCalc can be used to he reference how difficult the birth was, base it on the number of children
+$timeCalc can be used to reference how difficult the birth was, base it on the number of children
 Player pushes and eventually gives birth, and is given the children to hold. Mild contractions still occur, pain stops here.
 <br><br>
 
@@ -669,10 +669,10 @@ Ultrasound occurs, Dr Harper lets them know what going on.
 			<<if _multiple>>
 				The babies are small, the ultrasound can only just pick it up. Their tiny hearts are beating about once every second.
 				<<if _pregnancy.currentCount gt 1>>
-					You know you are carring <<if _pregnancy.currentCount is 3>>triplets<<else>>twins<</if>>.
+					You know you are carrying <<if _pregnancy.currentCount is 3>>triplets<<else>>twins<</if>>.
 				<</if>>
 			<<else>>
-				Your baby is tiny, the ultrasound can only just pick it up. It's tiny heart is beating about once every second.
+				Your baby is tiny, the ultrasound can only just pick it up. Its tiny heart is beating about once every second.
 			<</if>>
 		<<elseif _pregnancy.timer gte _pregnancy.timerStart * 0.8>>
 			<<if _multiple>>
@@ -688,10 +688,10 @@ Ultrasound occurs, Dr Harper lets them know what going on.
 			<</if>>
 		<<elseif _pregnancy.timer gte _pregnancy.timerStart * 0.6>>
 			<<if _multiple>>
-				Babies continues to grow in size. Their hearts are audible through an instrument called a doppler. Eyelids, eyesbrows, eyelashes, nails and hair are formed. They can suck their own thumbs, yawn, stretch and make faces. Genitalia are fully developed so they can be told to the player.
+				Babies continues to grow in size. Their hearts are audible through an instrument called a doppler. Eyelids, eyebrows, eyelashes, nails and hair are formed. They can suck their own thumbs, yawn, stretch and make faces. Genitalia are fully developed so they can be told to the player.
 				<<pregnancyGendersText>>
 			<<else>>
-				<<print $_He>> continues to grow in size. Heart is audible through an instrument called a doppler. Eyelids, eyesbrows, eyelashes, nails and hair are formed. <<print $_He>> can suck <<print $_his>> own thumbs, yawn, stretch and make faces. Genitalia are fully developed now so you know <<print $_he>> is a little 
+				<<print $_He>> continues to grow in size. Heart is audible through an instrument called a doppler. Eyelids, eyebrows, eyelashes, nails and hair are formed. <<print $_He>> can suck <<print $_his>> own thumbs, yawn, stretch and make faces. Genitalia are fully developed now so you know <<print $_he>> is a little
 				<<switch _pregnancy[0].gender>>
 					<<case "m">>boy.
 					<<case "f">>girl.
@@ -700,9 +700,9 @@ Ultrasound occurs, Dr Harper lets them know what going on.
 			<</if>>
 		<<elseif _pregnancy.timer gte _pregnancy.timerStart * 0.5>>
 			<<if _multiple>>
-				Babies continues to grow in size. They can move around, developing muscles and exercising them. Hair is growing on their head, protective hair/white coating is growing over the baby, this will shed shortly after birth. 
+				Babies continues to grow in size. They can move around, developing muscles and exercising them. Hair is growing on their head, protective hair/white coating is growing over the baby, this will shed shortly after birth.
 			<<else>>
-				<<print $_He>> continues to grow in size. <<print $_He>> can move around, developing muscles and exercising them. Hair is growing on <<print $_his>> head, protective hair/white coating is growing over the baby, this will shed shortly after birth. 
+				<<print $_He>> continues to grow in size. <<print $_He>> can move around, developing muscles and exercising them. Hair is growing on <<print $_his>> head, protective hair/white coating is growing over the baby, this will shed shortly after birth.
 			<</if>>
 		<<elseif _pregnancy.timer gte _pregnancy.timerStart * 0.4>>
 			<<if _multiple>>
@@ -724,14 +724,14 @@ Ultrasound occurs, Dr Harper lets them know what going on.
 			<</if>>
 		<<elseif _pregnancy.timer gte _pregnancy.timerStart * 0.1>>
 			<<if _pregnancy.currentCount gt 1>>
-				Babies are almost fully grown, they are slightly smaller than if you wernt pregnanct with <<if _pregnancy.currentCount is 3>>triplets<<else>>twins<</if>>. They will start to move around less, their position will have moved to having their head closer to your pelvis.
+				Babies are almost fully grown, they are slightly smaller than if you weren't pregnant with <<if _pregnancy.currentCount is 3>>triplets<<else>>twins<</if>>. They will start to move around less, their position will have moved to having their head closer to your pelvis.
 			<<else>>
 				<<print $_He>> is almost fully grown. <<print $_He>> will start to move around less, <<print $_his>> position will have moved to having <<print $_his>> head closer to your pelvis.
 			<</if>>
 			Mention the time for labour is starting to get close.
 		<<else>>
 			<<if _pregnancy.currentCount gt 1>>
-				Babies are fully grown and ready to face the world, they are slightly smaller than if you wernt pregnanct with <<if _pregnancy.currentCount is 3>>triplets<<else>>twins<</if>>.
+				Babies are fully grown and ready to face the world, they are slightly smaller than if you weren't pregnant with <<if _pregnancy.currentCount is 3>>triplets<<else>>twins<</if>>.
 			<<else>>
 				<<print $_He>> is fully grown and ready to face the world.
 			<</if>>
diff --git a/game/base-system/pregnancy/pregnancy.twee b/game/base-system/pregnancy/pregnancy.twee
index 15e4cf1988aa5b05179d67d151004b43b4198a2f..00688b9bcf6f9a24aa93157a0f4e202dea60c5bd 100644
--- a/game/base-system/pregnancy/pregnancy.twee
+++ b/game/base-system/pregnancy/pregnancy.twee
@@ -618,7 +618,7 @@
 <</if>>
 <</widget>>
 
-/*Dont call outside of the menstruationCycle widget*/
+/*Don't call outside of the menstruationCycle widget*/
 <<widget "restartMenstruationCycle">>
 <<set _menstruation.currentDay to 0.5>>
 <<set _menstruation.currentDaysMax to _menstruation.baseDays + random(0, _menstruation.baseDaysRng)>>
@@ -781,13 +781,13 @@
 		<<case "h">>Hermaphrodite
 	<</switch>>
 	<br>
-	Mother: 
+	Mother:
 	<<if _pregnancy[_args[0]].motherKnown>>
 		<<print _pregnancy[_args[0]].mother>>
 	<<else>>
 		????
 	<</if>>
-	| Father: 
+	| Father:
 	<<if _pregnancy[_args[0]].fatherKnown>>
 		<<print _pregnancy[_args[0]].father>>
 	<<else>>
@@ -910,7 +910,7 @@
 		<<case "bellySize">>
 			<<set $_text_output to "You wake and take a look at your growing belly.">>
 			<<if _pregnancy.potentialFathers.length is 1>>
-				<<set $_text_output += "  It's clear that "+ _pregnancy.potentialFathers[0] +" was who got you pregnant.">>
+				<<set $_text_output += " It's clear that "+ _pregnancy.potentialFathers[0] +" was who got you pregnant.">>
 			<<else>>
 				<<set $_text_output += " You wonder who got you pregnant.">>
 			<</if>>
@@ -991,7 +991,7 @@
 		<<case "babyHiccup">>
 			<<set $_text_output to "You feel some baby hiccups.<<stress -10>><<lstress>>">>
 		<<case "earlyContractions">>
-			<<set $_text_output to "You feel a brief and sporadic contraction.<<stress 1>><<gstress>>">>	
+			<<set $_text_output to "You feel a brief and sporadic contraction.<<stress 1>><<gstress>>">>
 	<</switch>>
 <</if>>
 <</silently>><<if $_text_output>><<print $_text_output>><br><</if>>
diff --git a/game/base-system/settings.twee b/game/base-system/settings.twee
index 6295c5b58cf993e2395ac34c0c8b3b1fb6a283ba..4746d50fe47cd839fe5399c967070ae770e0ab88 100644
--- a/game/base-system/settings.twee
+++ b/game/base-system/settings.twee
@@ -17,6 +17,7 @@
 <<set $hairlength to 200>>
 <<set $awareselect to "innocent">>
 <<set $background to "waif">>
+<<set $startingseason to "autumn">>
 <<if StartConfig.enableImages is true>>
 	<<set $images to 1>>
 	<<set $silhouettedisable to "f">>
@@ -58,6 +59,7 @@
 <<set $toywhipdisable to "f">>
 <<set $toydildodisable to "f">>
 <<set $toymultiplepenetration to "f">>
+<<set $pregnancyspeechdisable to "f">>
 <<set $tipdisable to "f">>
 <<set $statdisable to "f">>
 <<set $bodywritingImages to true>>
@@ -90,6 +92,7 @@
 <<set $clothesPriceUnderwear to 1>>
 <<set $clothesPriceSchool to 1>>
 <<set $clothesPriceLewd to 1>>
+<<set $furniturePriceFactor to 1>>
 <<set $baseVaginalPregnancyChance to 80>>
 <<set $baseNpcPregnancyChance to 8>>
 <<set $humanPregnancyMonths to 3>>
@@ -349,9 +352,9 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 <<link "All">><<presets "randomize" `randomizeSettings()`>><</link>> |
 <<if $passage is "Start">>
 	<<link "Character Appearance">><<presets "randomize" `randomizeSettings('characterAppearance')`>><</link>>
-	<mouse class="tooltip linkBlue">(?)<span>Randomises the settings related to player character appearance, including hair, eyes, skin colour, gender and bodypart sizes. This is only avaliable before starting the game. Can lead to normally inaccessable values to the player leading to no controls being selected, these are still valid.</span></mouse> |
+	<mouse class="tooltip linkBlue">(?)<span>Randomises the settings related to player character appearance, including hair, eyes, skin colour, gender and bodypart sizes. This is only available before starting the game. Can lead to normally inaccessible values to the player leading to no controls being selected, these are still valid.</span></mouse> |
 	<<link "Character Traits">><<presets "randomize" `randomizeSettings('characterTrait')`>><</link>>
-	<mouse class="tooltip linkBlue">(?)<span>Randomises the settings related to player character traits, including background, awareness and general sensitivity. This is only avaliable before starting the game.</span></mouse> |
+	<mouse class="tooltip linkBlue">(?)<span>Randomises the settings related to player character traits, including background, awareness and general sensitivity. This is only available before starting the game.</span></mouse> |
 <</if>>
 <<link "Gameplay">><<presets "randomize" `randomizeSettings('gameplay')`>><</link>>
 <mouse class="tooltip linkBlue">(?)<span>Randomises the settings related to general gameplay, including allure mod, clothing prices and Bailey's rent modifier.</span></mouse> |
@@ -586,6 +589,20 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 	<label>Knowledgeable <<radiobutton "$awareselect" "knowledgeable" autocheck>></label>
 	<br><br>
 
+	<span class="gold">Starting season</span> <mouse class="tooltip linkBlue">(?)<span>The game will start on the chosen season's fourth day.</span></mouse>
+	<br>
+
+	<label><mouse class="tooltip tangerine">Autumn <<radiobutton "$startingseason" "autumn" autocheck>><span class="green"><i>Recommended for beginners.</i></span></mouse></label> |
+	
+	<label><span class="teal">Winter</span> <<radiobutton "$startingseason" "winter" autocheck>></label> |
+	
+	<label><span class="lime-green">Spring</span> <<radiobutton "$startingseason" "spring" autocheck>></label> |
+	
+	<label><span class="red">Summer</span> <<radiobutton "$startingseason" "summer" autocheck>></label> |
+	
+	<label>Random <<radiobutton "$startingseason" "random" autocheck>></label>
+	<br><br>
+
 	<span class="gold">Background</span>
 	<br>
 	<label><span class="green">Waif</span> <<radiobutton "$background" "waif" autocheck>> - No special advantages or disadvantages. <i>Recommended for beginners.</i></label>
@@ -610,7 +627,7 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 	/*<br>
 	<label>Green Thumb <<radiobutton "$background" "greenthumb" autocheck>> - More bountiful crops and no decay when using fertiliser. Start with ne unit of fertiliser.</label>*/
 	<br>
-	<label><mouse class="tooltip lewd">Dendrophile <<radiobutton "$background" "plantlover" autocheck>> - Plants are everything to you.<span class="green">You're addicted to nectar. You're more vulnerable to aphrodisiacs and alcohol. Plantpeople and plant-based tentacles no longer require hallucinations to encounter. You get a bonus to Tending, as your Trauma increases.</span></mouse>
+	<label><mouse class="tooltip"><span class="lewd">Dendrophile</span> <<radiobutton "$background" "plantlover" autocheck>> - Plants are everything to you.<span class="green">You're addicted to nectar. You're more vulnerable to aphrodisiacs and alcohol. Plantpeople and plant-based tentacles no longer require hallucinations to encounter. You get a bonus to Tending, as your Trauma increases.</span></mouse>
 	</label>
 	<br>
 
@@ -668,7 +685,7 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 	</label>
 	<br>
 	<label><mouse class = "tooltip blue">Soft mode<span>For those who prefer a light-hearted lewd adventure, though the game is still dark in places.<span class="red">This is an experimental feature, and contains gamebreaking bugs. It will be changed or removed in the future. Leaving the settings with soft mode will prevent you from earning feats until it is set to normal mode. Doing this will permanently prevent some feats from being earned.</span></span></mouse>
-	<<if ($ironmanmode is true and ["hard","normal"].includes($gamemode) is true)  and $passage != "Start">>
+	<<if ($ironmanmode is true and ["hard","normal"].includes($gamemode) is true) and $passage != "Start">>
 		<input id="radiobutton-gamemode-8" name="radiobutton-gamemode" type="radio" tabindex="0" class="macro-radiobutton" disabled>
 	<<else>>
 		<<radiobutton "$gamemode" "soft" autocheck>>
@@ -686,7 +703,7 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 		<br>
 	<</if>>
 	<br>
-	<input id="checkbox-ironmanmode" onclick="IronMan.UI.checkBox()" name="checkbox-ironmanmode" type="checkbox" tabindex="0" class="macro-checkbox"> <mouse class="tooltip white">Ironman mode<span>To prevent save-scumming and other practices in that spirit<br><br>You can save, you will then be led to Start Menu. You can then load that save, but then it will delete itself.<br><br>There will also be an additional save every 4-8 in-game days just in case you lose the other save.</span></mouse><span class="italic" style="color: #d4d4d4; font-size: 15px;">   (Cannot be unset after game start)</span>
+	<input id="checkbox-ironmanmode" onclick="IronMan.UI.checkBox()" name="checkbox-ironmanmode" type="checkbox" tabindex="0" class="macro-checkbox"> <mouse class="tooltip white">Ironman mode<span>To prevent save-scumming and other practices in that spirit<br><br>You can save, you will then be led to Start Menu. You can then load that save, but then it will delete itself.<br><br>There will also be an additional save every 4-8 in-game days just in case you lose the other save.</span></mouse><span class="italic" style="color: #d4d4d4; font-size: 15px;"> (Cannot be unset after game start)</span>
 	<<run IronMan.UI.checkBox(`init`)>>
 	<br>
 	<br>
@@ -958,7 +975,14 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 				</div>
 				<div class="numberslider-inline">
 					<span class="gold">Lewd Clothes</span>
-					<<numberslider "$clothesPriceLewd" $clothesPriceLewd 0.1 2 0.1>>
+					<<numberslider "$clothesPriceLewd" $clothesPriceLewd 1 2 0.1>>
+				</div>
+			</div>
+			<div class="numberslider-group">
+				<span class="gold">Furniture Price</span>
+				<div class="small-description">Modifies the pricing of furniture.</div>
+				<div class="ironman-slider" id="slider-furniture-price-factor">
+					<<numberslider "$furniturePriceFactor" $furniturePriceFactor 0.6 5 0.2 $ironmanmode>>
 				</div>
 			</div>
 			<div class="numberslider-group">
@@ -1116,6 +1140,11 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 	<<checkbox "$facesitdisable" "t" "f" autocheck>> Enable facesitting
 	<mouse class="tooltip linkBlue">(?)<span>Does not prevent cunnilingus.</span></mouse>
 	</div></label>
+	
+	<label><div class="settingsToggle">
+	<<checkbox "$pregnancyspeechdisable" "t" "f" autocheck>> Enable fertility references.
+	<mouse class="tooltip linkBlue">(?)<span>Prevents references to the PC being impregnated, or impregnating others. Does not prevent all references to pregnancy, especially if other pregnancy settings are enabled.</span></mouse>
+	</div></label>
 
 	<div class="settingsToggle" role="group" aria-labelledby="settingsToysHead">
 	<span id="settingsSexToysHead">Sex toys:</span>
@@ -1679,50 +1708,57 @@ Values above 5 can lead to errors when creating new saves! Make sure you know wh
 		<<replace #perNPCSettingsMenu>><<perNPCSettingsMenu>><</replace>>
 	<</link>>
 	<br><br>
-	<<if $per_npc[_pNPCId].name_known>>
-		<span class="gold">$per_npc[_pNPCId].name the <<print _pNPCId.replace(/_/g, ' ')>></span>
-	<<elseif $per_npc[_pNPCId].name is "Ivory Wraith">>
-		<span class="wraith">The Ivory Wraith</span>
-	<<elseif _pNPCId is "tower_creature">>
-		<span class="gold">The Night Monster</span>
+	<<if $per_npc[_pNPCId] eq null>>
+		<<error {
+			message	: `The given ID for pNPCs failed to match any available pNPC: ${_pNPCId}.`,
+			source	: _pNPCId
+		}>>
 	<<else>>
-		<span class="gold"><<print _pNPCId.toUpperFirst().replace(/_/g, ' ')>></span>
-	<</if>>
-	<<if $per_npc[_pNPCId].name_known and $debug is 1>>
-		| <<link "Rename">>
-			<<if $per_npc[_pNPCId].pronoun is "f">>
-				<<set $per_npc[_pNPCId].name to $NPC_names_f.random()>>
-			<<else>>
-				<<set $per_npc[_pNPCId].name to $NPC_names_m.random()>>
-			<</if>>
-			<<replace #perNPCSettingsMenu>><<perNPCSettingsMenu>><</replace>>
-		<</link>>
+		<<if $per_npc[_pNPCId].name_known>>
+			<span class="gold">$per_npc[_pNPCId].name the <<print _pNPCId.replace(/_/g, ' ')>></span>
+		<<elseif $per_npc[_pNPCId].name is "Ivory Wraith">>
+			<span class="wraith">The Ivory Wraith</span>
+		<<elseif _pNPCId is "tower_creature">>
+			<span class="gold">The Night Monster</span>
+		<<else>>
+			<span class="gold"><<print _pNPCId.toUpperFirst().replace(/_/g, ' ')>></span>
+		<</if>>
+		<<if $per_npc[_pNPCId].name_known and $debug is 1>>
+			| <<link "Rename">>
+				<<if $per_npc[_pNPCId].pronoun is "f">>
+					<<set $per_npc[_pNPCId].name to $NPC_names_f.random()>>
+				<<else>>
+					<<set $per_npc[_pNPCId].name to $NPC_names_m.random()>>
+				<</if>>
+				<<replace #perNPCSettingsMenu>><<perNPCSettingsMenu>><</replace>>
+			<</link>>
+		<</if>>
+		<br>
+		<label><<radiobutton "$per_npc[_pNPCId].pronoun" "f" autocheck>> Female</label> |
+		<label><<radiobutton "$per_npc[_pNPCId].pronoun" "m" autocheck>> Male</label>
+		<br>
+		<label><<radiobutton "$per_npc[_pNPCId].gender" "f" autocheck>> Vagina</label> |
+		<label><<radiobutton "$per_npc[_pNPCId].gender" "m" autocheck>> Penis</label> |
+		<label><<radiobutton "$per_npc[_pNPCId].gender" "h" autocheck>> Both</label>
+		<<run settingsPersistentNpcGenderUpdate()>>
+		<br><br>
+		Penis size - if applicable:
+		<br>
+		<<set _penisNames to ["", "Tiny", "Average", "Thick", "Huge"]>> /* the empty first element is necessary because _j starts at 1 */
+		<<for _j to 1; _j lt _penisNames.length; _j++>>
+			<label>
+				<<radiobutton "$per_npc[_pNPCId].penissize" _j autocheck>>
+				<<print _penisNames[_j]>>
+			</label>
+			<<if _j isnot _penisNames.length -1>>|<</if>>
+		<</for>>
+		<br><br>
+		<div class="settingsToggle" style="display: inline-flex;">
+			Breast size
+			<<numberslider "$per_npc[_pNPCId].breastsize" $per_npc[_pNPCId].breastsize 0 12 1>>
+			<<run settingsNamedNpcBreastSize(Util.slugify('$per_npc[_pNPCId].breastsize'), true)>>
+		</div>
 	<</if>>
-	<br>
-	<label><<radiobutton "$per_npc[_pNPCId].pronoun" "f" autocheck>> Female</label> |
-	<label><<radiobutton "$per_npc[_pNPCId].pronoun" "m" autocheck>> Male</label>
-	<br>
-	<label><<radiobutton "$per_npc[_pNPCId].gender" "f" autocheck>> Vagina</label> |
-	<label><<radiobutton "$per_npc[_pNPCId].gender" "m" autocheck>> Penis</label> |
-	<label><<radiobutton "$per_npc[_pNPCId].gender" "h" autocheck>> Both</label>
-	<<run settingsPersistentNpcGenderUpdate()>>
-	<br><br>
-	Penis size - if applicable:
-	<br>
-	<<set _penisNames to ["", "Tiny", "Average", "Thick", "Huge"]>> /* the empty first element is necessary because _j starts at 1 */
-	<<for _j to 1; _j lt _penisNames.length; _j++>>
-		<label>
-			<<radiobutton "$per_npc[_pNPCId].penissize" _j autocheck>>
-			<<print _penisNames[_j]>>
-		</label>
-		<<if _j isnot _penisNames.length -1>>|<</if>>
-	<</for>>
-	<br><br>
-	<div class="settingsToggle" style="display: inline-flex;">
-		Breast size
-		<<numberslider "$per_npc[_pNPCId].breastsize" $per_npc[_pNPCId].breastsize 0 12 1>>
-		<<run settingsNamedNpcBreastSize(Util.slugify('$per_npc[_pNPCId].breastsize'), true)>>
-	</div>
 	<div style="clear:both;">
 		/*Keep at end of toggles*/
 	</div>
diff --git a/game/base-system/skill-difficulties.twee b/game/base-system/skill-difficulties.twee
index 6adb624a29d59b0e3355c47cbc336ef463c87639..b7a2ba7945c3937dfee3fb162b05f8d101ce0900 100644
--- a/game/base-system/skill-difficulties.twee
+++ b/game/base-system/skill-difficulties.twee
@@ -647,31 +647,42 @@
 <</if>>
 <</widget>>
 
+<!--
 
+	args[0]: skill to be checked.
+	args[1]: skill name to display.
+	args[2]: skill required to have a chance.
+	args[3]: skill required for 100% success rate
+	args[4]: hide the skill text.
+-->
 <<widget "skill_difficulty">>
-/*args[0]: skill to be checked.
-args[1]: skill name to display.
-args[2]: skill required to have a chance.
-args[3]: skill required for 100% success rate
-args[4]: hide the skill text.*/
-<<set _skilldifficultymin to (_args[2] ? _args[2] : 1)>>
-<<set _skilldifficultymax to (_args[3] ? _args[3] : 1000)>>
-<<if _skilldifficultymin gte _skilldifficultymax>>
-	<<set _skilldifficultymax to _skilldifficultymin + 1>>
-<</if>>
-/* Note: willpower uses a different default value for skilldifficultymax */
-<<if _args[4] is undefined and $statdisable is "f">>
-	<<if $checkstyle is "skillname">>
-		| <span class="orange"><<print _args[1]>></span>
-	<<else>>
-		| <span class="orange"><<print _args[1]>></span>:
-		<<print '<<set _difficulty to Math.round(Math.clamp($' + _args[0] + ' - _skilldifficultymin, 0, _skilldifficultymax) / (_skilldifficultymax - _skilldifficultymin) * 100)>>'>>
-		<<if _difficulty gt 100>>
-			<<set _difficulty to 100>>
+	<<set $_skill to Scripting.evalTwineScript(_args[0])>>
+	<<if typeof $_skill is "number">>
+		<!-- Now we know $_skill is a valid number, we can perform our calculations safely. -->
+		<<set _skilldifficultymin to (_args[2] ? _args[2] : 1)>>
+		<<set _skilldifficultymax to (_args[3] ? _args[3] : 1000)>>
+		<<if _skilldifficultymin gte _skilldifficultymax>>
+			<<set _skilldifficultymax to _skilldifficultymin + 1>>
 		<</if>>
-		<<skillDifficultyText _difficulty>>
+		/* Note: willpower uses a different default value for skilldifficultymax */
+		<<if _args[4] is undefined and $statdisable is "f">>
+			<<if $checkstyle is "skillname">>
+				| <span class="orange"><<print _args[1]>></span>
+			<<else>>
+				| <span class="orange"><<print _args[1]>></span>:
+				<<set _difficulty to Math.round(Math.clamp($_skill - _skilldifficultymin, 0, _skilldifficultymax) / (_skilldifficultymax - _skilldifficultymin) * 100)>>
+				<<if _difficulty gt 100>>
+					<<set _difficulty to 100>>
+				<</if>>
+				<<skillDifficultyText _difficulty>>
+			<</if>>
+		<</if>>
+	<<else>>
+		<<error {
+			message: '<<skill_difficulty>> widget was given an invalid skill name: Not a number.',
+			source: `Skill name: ${_args[0]}, skill display: ${_args[1]}, minimum: ${_args[2]}, max: ${_args[3]}, hide: ${_args[4]}`
+		}>>
 	<</if>>
-<</if>>
 <</widget>>
 
 <<widget "historyrequired">>
diff --git a/game/base-system/sleep.twee b/game/base-system/sleep.twee
index 87baf3a052433f4a55179bee497eaeed23d21667..0d5c3118f9f13c1ed17d9856ad00257e930565e3 100644
--- a/game/base-system/sleep.twee
+++ b/game/base-system/sleep.twee
@@ -12,33 +12,43 @@
 		<<set $_bonusFatigueLoss += 5>>
 	<</if>>
 	<!-- sleeping with others -->
-	<<if $robinbed is 1 or $kylarbed is 1 or $wolfbed is 1>>
+	<<if $robinbed isnot undefined or $kylarbed is 1 or $wolfbed is 1>>
 		<<set $_bonusFatigueLoss += 5>>
 	<</if>>
 	<!-- wearing any non-sleep clothing disables the sleep bonus -->
 	<<if !Object.values($worn).every(clothes => clothes.type.includes("naked") || clothes.type.includes("sleep") || clothes.type.includes("eerie"))>>
 		<<set $_bonusFatigueLoss to 0>>
 	<</if>>
+	<!-- sleeping in a poor/regular/comfy bed at home provides a -10/0/+10 bonus regardless of clothing -->
+	<<if $location is "home">>
+		<<set $_bed to Furniture.get('bed')>>
+		<<if $_bed.type.includes('comfy')>>
+			<<set $_bonusFatigueLoss += 10>>
+		<<elseif $_bed.type.includes('starter')>>
+			<<set $_bonusFatigueLoss -= 10>>
+		<</if>>
+	<</if>>
 	<!-- note: every hour of sleep gives a standard 250 fatigue reduction, so this bonus may not be all that much. -->
 
 	<!-- sleephour repeats this until you have slept for the selected number of hours -->
 	<!-- if you select "just sleep", then you wake up when tiredness hits 0, or after 10 hours. -->
 	<<for $sleephour gte 1 or $sleephour lte -1>>
 		<<set $sleephour -= 1>>
-		
+
 		<<if $location isnot "asylum">>
 			<<effectstime>>
 		<</if>>
 		<<switch $location>>
 			<<case "home">>
-				<<if $robinromance is 1 and $NPCName[$NPCNameList.indexOf("Robin")].lust gte 20 and $robinbed isnot 1 and $robinwakeday isnot 1 and $kylarbed isnot 1>>
+				<<set _robin to statusCheck("Robin")>>
+				<<if (($robinromance is 1 and _robin.lust gte 20) or (_robin.trauma gte 50 and $rng gte 51)) and !$robinbed and $robinwakeday isnot 1 and $kylarbed isnot 1 and $robinmissing is 0>>
 					<!-- Robin climbs into bed with you -->
 					<<if $hour gte 18 or $hour lte 6>>
 						<<set _sleepinterrupt to 1>>
-						<<set $NPCName[$NPCNameList.indexOf("Robin")].lovewake to 1>>
+						<<set _robin.lovewake to 1>>
 						<<set $robinwakeday to 1>>
 					<</if>>
-				<<elseif $NPCName[$NPCNameList.indexOf("Robin")].love gte 100 and $robindebtknown isnot 1 and $kylarbed isnot 1>>
+				<<elseif _robin.love gte 100 and $robinbed is undefined and $robindebtknown isnot 1 and $kylarbed isnot 1 and $robinmissing is 0>>
 					<<if $hour gte 18 or $hour lte 6>>
 						<<set _sleepinterrupt to 1>>
 						<<set $robindebtwake to 1>>
@@ -107,15 +117,19 @@
 				<<if wraithSleepEventCheck()>>
 					<<wraithEvent>>
 				<</if>>
+			<<case "pound">>
+				<<if $hour is 6 or $hour is 12 or $hour is 18>>
+					<<set _sleepinterrupt to 1>>
+				<</if>>
 		<</switch>>
-		
+
 		<!-- this will stop sleep from happening, meaning no fatigue reduction or time passing -->
 		<<if _sleepinterrupt>>
 			<<break>>
 		<</if>>
 
 		<<set $sleepHoursTotal += 1>><<set $sleepStat++>>
-		
+
 		<!-- fatigue is lowered by 200 for every hour slept, and another 50 more if the player has no trauma. -->
 		<<set $tiredness -= 200>>
 		<<if !($sleeptrouble is 1 and $controlled is 0)>>
@@ -252,7 +266,7 @@
 	<<else>>
 		<<set _eventsList to ["have sex with someone", "go running or swimming for an hour"]>>
 	<</if>>
-	<<if $skulduggery gt 200>>
+	<<if currentSkillValue('skulduggery') gt 200>>
 		<<set _eventsList.push("steal something")>>
 	<</if>>
 	<<if $exhibitionism gt 35>>
@@ -310,7 +324,7 @@
 <</widget>>
 
 <<widget "wraithEvent">>
-	
+
 	<!-- this is because this event wakes the player up AFTER they have slept for an hour. -->
 	<<unset _sleepinterrupt>>
 
diff --git a/game/base-system/social.twee b/game/base-system/social.twee
index b8751e12527db084a7463fe71e6aba11eeef1d58..26c2189d4d211ef88b88907e2a2e267a4ed70616 100644
--- a/game/base-system/social.twee
+++ b/game/base-system/social.twee
@@ -10,7 +10,7 @@
 			T.npcConfig = {
 				"Robin" : {
 					important : true,
-					dom :  { name : "Confidence", activeIcon : "img/ui/confidence.png", color: "blue" }
+					dom : { name : "Confidence", activeIcon : "img/ui/confidence.png", color: "blue" }
 				},
 				"Whitney" : {
 					important : true,
@@ -35,7 +35,7 @@
 				},
 				"Sydney" : {
 					important : true,
-					love : { maxValue: 150 },			
+					love : { maxValue: 150 },
 					purity : { requirements : State.variables.NPCName[28].purity > 0, maxValue : 100, minValue : 0 },
 					corruption : { requirements : State.variables.NPCName[28].corruption > 0, maxValue : 50, minValue : 0 }
 				},
@@ -98,7 +98,7 @@
 			<<set _policeCrimeConfig = { currentValue : $crimehistory, states : [
 				{ requiredValue: 0,		color: 'green',		description: 'The police aren\'t concerned with you,'},
 				{ requiredValue: 1000,	color: 'teal',		description: 'The police have you on their records,'},
-				{ requiredValue: 2000,  color: 'lblue',		description: 'The police consider you a person of interest,'},
+				{ requiredValue: 2000,	color: 'lblue',		description: 'The police consider you a person of interest,'},
 				{ requiredValue: 3000,	color: 'blue',		description: 'The police consider you a troublemaker,'},
 				{ requiredValue: 5000,	color: 'purple',	description: 'The police consider you a criminal,'},
 				{ requiredValue: 10000,	color: 'pink',		description: 'The police have a binder devoted to you,'},
@@ -316,10 +316,10 @@
 				{ requiredValue: 5,		color: 'lblue',		description: 'trust'},
 				{ requiredValue: 20,	color: 'green',		description: 'respect'}
 			]}>>
-			<<set _farmHorseBoxConfig = 	{ name: "Horses",	description : '<<relation-text _farmHorseRepConfig>>'}>>
-			<<set _farmPigBoxConfig = 		{ name: "Pigs",		description : '<<relation-text _farmPigRepConfig>>'}>>
-			<<set _farmCattleBoxConfig = 	{ name: "Cattle",	description : '<<relation-text _farmCattleRepConfig>>'}>>
-			<<set _farmDogBoxConfig = 		{ name: "Dogs",		description : '<<relation-text _farmDogRepConfig>>'}>>
+			<<set _farmHorseBoxConfig =		{ name: "Horses",	description : '<<relation-text _farmHorseRepConfig>>'}>>
+			<<set _farmPigBoxConfig =		{ name: "Pigs",		description : '<<relation-text _farmPigRepConfig>>'}>>
+			<<set _farmCattleBoxConfig =	{ name: "Cattle",	description : '<<relation-text _farmCattleRepConfig>>'}>>
+			<<set _farmDogBoxConfig =		{ name: "Dogs",		description : '<<relation-text _farmDogRepConfig>>'}>>
 
 			<<if $farm_stage gte 5>>
 				/* Farm Sabotage */
@@ -369,29 +369,32 @@
 				{ requiredValue: 1000,	color: 'green',		description: ' Notorious _config.flavorText'}
 			]>>
 
-			<<set _sexFameConfig =				{ currentValue: $famesex,			preText: 'Sex:',			flavorText: 'slut',			states: _fameStates }>>
-			<<set _prostitutionFameConfig =		{ currentValue: $fameprostitution,	preText: 'Prostitution:',	flavorText: 'whore',		states: _fameStates }>>
-			<<set _rapeFameConfig =				{ currentValue: $famerape,			preText: 'Rape:',			flavorText: 'fucktoy',		states: _fameStates }>>
+			<<set _sexFameConfig =				{ currentValue: $fame.sex,				preText: 'Sex:',			flavorText: 'slut',				states: _fameStates }>>
+			<<set _prostitutionFameConfig =		{ currentValue: $fame.prostitution,		preText: 'Prostitution:',	flavorText: 'whore',			states: _fameStates }>>
+			<<set _rapeFameConfig =				{ currentValue: $fame.rape,				preText: 'Rape:',			flavorText: 'fucktoy',			states: _fameStates }>>
 			<<if $bestialitydisable is "f">>
-				<<set _bestialityFameConfig =		{ currentValue: $famebestiality,	preText: 'Bestiality:',	flavorText: 'bitch',		states: _fameStates }>>
+				<<set $_pre to "Bestiality:">>
+				<<set $_flavor to "bitch">>
 			<<else>>
-				<<set _bestialityFameConfig =		{ currentValue: $famebestiality,	preText: 'Monster People:',	flavorText: 'monster fucker',		states: _fameStates }>>
+				<<set $_pre to "Monster People:">>
+				<<set $_flavor to "monster fucker">>
 			<</if>>
-			<<set _exhibitionismFameConfig =	{ currentValue: $fameexhibitionism,	preText: 'Exhibitionism:',	flavorText: 'flaunter',		states: _fameStates }>>
-			<<if $famepregnancy gte 600>>
+			<<set _bestialityFameConfig =		{ currentValue: $fame.bestiality,		preText: $_pre,				flavorText: $_flavor,			states: _fameStates }>>
+			<<set _exhibitionismFameConfig =	{ currentValue: $fame.exhibitionism,	preText: 'Exhibitionism:',	flavorText: 'flaunter',			states: _fameStates }>>
+			<<if $fame.pregnancy gte 600>>
 				<<set $_name to "broodmother">>
-			<<elseif $famepregnancy gte 200>>
+			<<elseif $fame.pregnancy gte 200>>
 				<<set $_name to "breeder">>
 			<<else>>
 				<<set $_name to "mother">>
 			<</if>>
-			<<set _pregnancyFameConfig = 		{ currentValue: $famepregnancy,		preText: 'Pregnancy:',	flavorText: $_name,		states: _fameStates }>>
-			<<set _combatFameConfig =			{ currentValue: $famescrap,			preText: 'Combat:',		flavorText: 'scrapper',		states: _inverseFameStates }>>
-			<<set _kindnessFameConfig =			{ currentValue: $famegood,			preText: 'Kindness:',		flavorText: 'do-gooder',	states: _inverseFameStates }>>
-			<<set _businessFameConfig =			{ currentValue: $famebusiness,		preText: 'Business:',		flavorText: 'entrepreneur',	states: _inverseFameStates }>>
-			<<set _socialFameConfig =			{ currentValue: $famesocial,		preText: 'Socialite:',		flavorText: 'schmoozer',	states: _inverseFameStates }>>
-			<<set _modelFameConfig =			{ currentValue: $famemodel,		preText: 'Modelling:',		flavorText: 'show off',	states: _inverseFameStates }>>
-			<<set _overallFameConfig =			{ currentValue: $fame,				preText: 'Overall:',		flavorText: '', states: [
+			<<set _pregnancyFameConfig =		{ currentValue: $fame.pregnancy,		preText: 'Pregnancy:',		flavorText: $_name,				states: _fameStates }>>
+			<<set _combatFameConfig =			{ currentValue: $fame.scrap,			preText: 'Combat:',			flavorText: 'scrapper',			states: _inverseFameStates }>>
+			<<set _kindnessFameConfig =			{ currentValue: $fame.good,				preText: 'Kindness:',		flavorText: 'do-gooder',		states: _inverseFameStates }>>
+			<<set _businessFameConfig =			{ currentValue: $fame.business,			preText: 'Business:',		flavorText: 'entrepreneur',		states: _inverseFameStates }>>
+			<<set _socialFameConfig =			{ currentValue: $fame.social,			preText: 'Socialite:',		flavorText: 'schmoozer',		states: _inverseFameStates }>>
+			<<set _modelFameConfig =			{ currentValue: $fame.model,			preText: 'Modelling:',		flavorText: 'show off',			states: _inverseFameStates }>>
+			<<set _overallFameConfig =			{ currentValue: fameTotal(),			preText: 'Overall:',		flavorText: '',					states: [
 				{ requiredValue: 0,		color: 'green',		description: ' Unknown'},
 				{ requiredValue: 100,	color: 'teal',		description: ' Obscure'},
 				{ requiredValue: 500,	color: 'lblue',		description: ' Low-key'},
@@ -406,7 +409,7 @@
 			<<set _rapeFameBoxConfig =			{ description : '<<relation-text _rapeFameConfig>>' }>>
 			<<set _bestialityFameBoxConfig =	{ description : '<<relation-text _bestialityFameConfig>>' }>>
 			<<set _exhibitionismFameBoxConfig =	{ description : '<<relation-text _exhibitionismFameConfig>>' }>>
-			<<set _pregnancyFameBoxConfig = 	{ description : '<<relation-text _pregnancyFameConfig>>' }>>
+			<<set _pregnancyFameBoxConfig =		{ description : '<<relation-text _pregnancyFameConfig>>' }>>
 			<<set _combatFameBoxConfig =		{ description : '<<relation-text _combatFameConfig>>' }>>
 			<<set _kindnessFameBoxConfig =		{ description : '<<relation-text _kindnessFameConfig>>' }>>
 			<<set _businessFameBoxConfig =		{ description : '<<relation-text _businessFameConfig>>' }>>
@@ -420,7 +423,7 @@
 		<<relation-box-simple _rapeFameBoxConfig>>
 		<<relation-box-simple _bestialityFameBoxConfig>>
 		<<relation-box-simple _exhibitionismFameBoxConfig>>
-		<<if $famemodel gte 1>>
+		<<if $fame.model gte 1>>
 			<<relation-box-simple _modelFameBoxConfig>>
 		<</if>>
 		/*ToDo: Pregnancy, remove check to properly enable*/
@@ -458,7 +461,7 @@
 
 	<<if $dockwork gte 2>>
 		<div id="other-relation-blocks">
-				Docks: 
+				Docks:
 				<<set $dockstatus = Math.clamp($dockstatus, 0, 100)>>
 				<<if $dockstatus gte 100>>
 					<span class="green">The other workers respect you.</span>
diff --git a/game/base-system/stat-changes.twee b/game/base-system/stat-changes.twee
index a09055088754c2065a19d1a241dc0166841744de..0f90658eaabe59453f3f08f2bc3b67f5e59c3e40 100644
--- a/game/base-system/stat-changes.twee
+++ b/game/base-system/stat-changes.twee
@@ -487,7 +487,7 @@
 	<<set _acceptance to V["acceptance_" + _args[0]]>>
 	<<set _insecurity to V["insecurity_" + _args[0]]>>
 	<<set _stat_gain to (_args[1] * 10)>>
-	
+
 	<<set _insecurity_possible = {
 		"penis_tiny": $player.penisExist and $player.penissize lte 0,
 		"penis_small": $player.penisExist and $player.penissize is 1,
@@ -525,7 +525,7 @@
 
 <<widget "insecurity">>
 	/*
-		args[0]: insecurity type 
+		args[0]: insecurity type
 		args[1]: amount to increase by
 	*/
 	<<if _args[0] and _args[1] and $statFreeze isnot true>>
@@ -539,11 +539,11 @@
 
 <<widget "acceptance">>
 	/*
-		args[0]: insecurity type 
+		args[0]: insecurity type
 		args[1]: amount to increase by
 	*/
 	<<if _args[0] and _args[1] and $statFreeze isnot true>>
-		/* note: this does not check if a player is capable of gaining acceptance, so dont use this widget without checking.  */
+		/* note: this does not check if a player is capable of gaining acceptance, so don't use this widget without checking. */
 		<<if ["penis_tiny", "penis_small", "penis_big", "breasts_tiny", "breasts_small", "breasts_big"].includes(_args[0])>>
 			<<set V["acceptance_"+_args[0]] += (_args[1] * 6)>>
 			<<set V["acceptance_"+_args[0]] = Math.clamp(V["acceptance_"+_args[0]], 0, 1000)>>
@@ -553,6 +553,25 @@
 	<</if>>
 <</widget>>
 
+<<widget "gpenisacceptance">>
+	<<if _args[0] isnot undefined and _args[0] gt 0>>
+		<<switch Math.clamp($player.penissize, 0, 4)>>
+			<<case 0>><<set $_type to "penis_tiny">>
+			<<case 1>><<set $_type to "penis_small">>
+			<<case 2 3>> <!-- nothing should happen -->
+			<<case 4>><<set $_type to "penis_big">>
+		<</switch>>
+		<<if $_type and V["insecurity_"+$_type] gt 0 and V["acceptance_"+$_type] lt 1000>>
+			<<acceptance $_type _args[0]>><<gacceptance>>
+			<<if V["acceptance_"+$_type] gte 1000>>
+				<<set _acceptanceAchieved to $_type>>
+			<</if>>
+		<</if>>
+	<<else>>
+		<<run throw new Error("gpenisacceptance called with no argument or an invalid argument")>>
+	<</if>>
+<</widget>>
+
 <<widget "willpower">>
 	<<if _args[0] and $statFreeze isnot true>>
 		<<set $willpower += (_args[0] * 2)>>
diff --git a/game/base-system/statistics.twee b/game/base-system/statistics.twee
index 72ca73e5e01e4abb30c8e13b1a31b7e82cb06540..d8748922cf4c6f0390a8d8d0a54d837917427dca 100644
--- a/game/base-system/statistics.twee
+++ b/game/base-system/statistics.twee
@@ -521,27 +521,34 @@ __Save Game Details__
 		Docks status: <<print Math.trunc($dockstatus)>>
 		<br>
 	<</if>>
-	Sex fame: <<print Math.trunc($famesex)>>
+	Sex fame: <<print Math.trunc($fame.sex)>>
 	<br>
-	Prostitution fame: <<print Math.trunc($fameprostitution)>>
+	Prostitution fame: <<print Math.trunc($fame.prostitution)>>
 	<br>
-	Rape fame: <<print Math.trunc($famerape)>>
+	Rape fame: <<print Math.trunc($fame.rape)>>
 	<br>
-	Bestiality fame: <<print Math.trunc($famebestiality)>>
+	Bestiality fame: <<print Math.trunc($fame.bestiality)>>
 	<br>
-	Exhibitionism fame: <<print Math.trunc($fameexhibitionism)>>
+	Exhibitionism fame: <<print Math.trunc($fame.exhibitionism)>>
 	<br>
-	Combat fame: <<print Math.trunc($famescrap)>>
-	<br>
-	Kindness fame: <<print Math.trunc($famegood)>>
-	<br>
-	Business fame: <<print Math.trunc($famebusiness)>>
+	<<if $pregnancyTesting>> <!-- ToDo: pregnancy, remove to properly enable -->
+		Pregnancy fame: <<print Math.trunc($fame.pregnancy)>>
+		<br>
+	<</if>>
+	Combat fame: <<print Math.trunc($fame.scrap)>>
 	<br>
-	Socialite fame: <<print Math.trunc($famesocial)>>
+	Kindness fame: <<print Math.trunc($fame.good)>>
 	<br>
-	Model fame: <<print Math.trunc($famemodel)>>
+	Business fame: <<print Math.trunc($fame.business)>>
 	<br>
+	<<if $dev is 1>>
+		Pimp fame: <<print Math.trunc($fame.pimp)>>
+		<br>
+	<</if>>
+	Socialite fame: <<print Math.trunc($fame.social)>>
 	<br>
+	Model fame: <<print Math.trunc($fame.model)>>
+	<br><br>
 
 
 	__Transformations__
@@ -573,5 +580,22 @@ __Save Game Details__
 	Fallen manifestation:
 	<<print ($fallenangel is undefined ? 0 : Math.trunc($fallenangel))>>
 	<br>
+	<br>
+	
+	
+	__Anal Pregnancy__
+	<br>
+	<<set _pregnancy to $sexStats.anus.pregnancy>>
+	<<for _i to 0; _i lt _pregnancy.maxCount; _i++>>
+	<<if _pregnancy[_i] isnot null>>
+	<<if _pregnancy[_i].fertilised>>
+	Anal slot <<=_i+1>> is pregnant with a _pregnancy[_i].stats.gender _pregnancy[_i].creature, and will be ready to deliver in less than <<=_pregnancy[_i].daysLeft + 1>> days.<br>
+	<<else>>
+	Anal slot <<=_i+1>> has a _pregnancy[_i].stats.gender _pregnancy[_i].creature egg ready to be fertilised.<br>
+	<</if>>
+	<<else>>
+	Anal slot <<=_i+1>> is empty.<br>
+	<</if>>
+	<</for>>
 </div>
 <</widget>>
diff --git a/game/base-system/tending.twee b/game/base-system/tending.twee
index 1fd1d43faf283de4af4915fd9b8d8186b725d9e5..664984e8267d91837c7340c3ae29f30233323688 100644
--- a/game/base-system/tending.twee
+++ b/game/base-system/tending.twee
@@ -28,7 +28,7 @@
 <</widget>>
 
 <<widget "clear_plot">>
-	/*Returns a plot to its default state. 
+	/*Returns a plot to its default state.
 	First argument: location.
 	Second argument: index of plot to be reset.
 	OR
@@ -103,7 +103,7 @@
 	<<for _plantbed range $_plotsHere>>
 		<<capture _plantbed>>
 			<span class="gold"><<wordify_i $_i cap>> plot (<<display_quality _plantbed>>):</span>
-			
+
 			<<if _plantbed.stage gte 1>>
 				<<set $_plantedPlant to setup.plants[_plantbed.plant]>>
 
@@ -156,7 +156,7 @@
 				<</if>>
 			<</if>>
 			<br>
-		
+
 		<</capture>>
 		<<set $_i++>>
 	<</for>>
@@ -180,7 +180,7 @@
 		<br>
 
 	<</if>>
-	
+
 	<<if $debug is 1 and $_plotsHere.filter(plot => plot.stage > 0 && plot.stage < 5).length gte 1>>
 		<br>
 		<<link "DEBUG: Instagrow all plants here" $passage>><<run tendingInstaGrow(_location)>><</link>>
@@ -214,13 +214,13 @@
 		<<pass _waterTime>><<event_trigger>>
 	<</for>>
 	<<set $tendingvars.all_plots_watered to true>>
-	
+
 <</widget>>
 
 <<widget "tendingPlantSeedsOptions">>
 	<<set _location to _args[0]>>
 	<<set _plantbed to _args[1]>>
-	
+
 	<<if $plants_known.length is 0>>
 		Search wild areas for seeds to plant.
 	<</if>>
@@ -252,7 +252,7 @@
 		<<else>>
 			<<tending_season_notice $_plant>>
 		<</if>>
-		
+
 	<</for>>
 	<br>
 <</widget>>
@@ -298,7 +298,7 @@
 		<</capture>>
 	<</if>>
 	<br>
-	<<if $fertiliser.current gte 1 and _plantbed.quality lt 4 and $tending gte 400>>
+	<<if $fertiliser.current gte 1 and _plantbed.quality lt 4 and currentSkillValue('tending') gte 400>>
 		<<set _baseTimeFert to Math.floor(_baseTime * 1.5)>>
 		<<set _timeString to getTimeString(_baseTimeFert)>>
 		<<set _fertTiredness to Math.floor(_baseTiredsness * 1.5)>>
@@ -424,7 +424,7 @@
 		<<set _tending_amount *= 1.2>>
 	<</if>>
 	<<set _tending_amount *= $tending_yield_factor>>
-	
+
 	<<set _tending_amount to Math.trunc(_tending_amount)>>
 	<<set $plants[$_type].amount += _tending_amount>>
 
@@ -461,7 +461,7 @@
 	<<set _tending_amount to Math.trunc(_tending_amount)>>
 	<<set $plants[$_type].amount += _tending_amount>>
 	<<set $wild_plant_stat += _tending_amount>>
-	
+
 	You pick
 	<<if _tending_amount is 1>>
 		a <<print setup.plants[$_type].name.replace(/_/g," ")>>.
@@ -478,14 +478,14 @@
 		<<elseif $plants[$_type].name is undefined>>
 			<<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": $plants[$_type].amount}>>
 		<</if>>
-		
+
 		<<set $plants[$_type].amount += (_args[1] ? _args[1] : 1)>>
 	<</if>>
 <</widget>>
 
 <<widget "tending_season_notice">>
 	<<set $_plant to _args[0]>>
-	<span class="blue">	
+	<span class="blue">
 		<<print $_plant.plural.toLocaleUpperFirst()>> can only be planted in
 		<<switch $_plant.season.length>>
 			<<case 1>>
diff --git a/game/base-system/text.twee b/game/base-system/text.twee
index 5e498c33531bac7b45c211a49f6c1e4922154e7f..2b684fcc2ba33f0f232da097e70884f2a12f8124 100644
--- a/game/base-system/text.twee
+++ b/game/base-system/text.twee
@@ -81,7 +81,11 @@
 <</widget>>
 
 <<widget "charles">><<silently>>
-	<<set _text_output to ($player.gender_appearance is "m" ? "Charles" : "Charlene")>>
+	<<if $wraith and $wraith.mimic is "Morgan" and $wraith.state is "haunt" and random(1,3) is 1>>
+		<<set _text_output to "graverobber">>
+	<<else>>
+		<<set _text_output to ($player.gender_appearance is "m" ? "Charles" : "Charlene")>>
+	<</if>>
 <</silently>><<print _text_output>><</widget>>
 
 <<widget "npcexposetext">><<silently>>
@@ -232,7 +236,7 @@
 		<<set _args[0].pronouns.him = "it">>
 		<<set _args[0].pronouns.himself = "itself">>
 		<<set _args[0].pronouns.man = "man">>
-		<<set _args[0].pronouns.boy = "kid">>
+		<<set _args[0].pronouns.boy = "boy">>
 		<<set _args[0].pronouns.men = "men">>
 	<<case "n">>
 		<<set _args[0].pronouns.he = "one">>
@@ -250,7 +254,7 @@
 		<<set _args[0].pronouns.him = "them">>
 		<<set _args[0].pronouns.himself = "themselves">>
 		<<set _args[0].pronouns.man = "man">>
-		<<set _args[0].pronouns.boy = "kid">>
+		<<set _args[0].pronouns.boy = "boy">>
 		<<set _args[0].pronouns.men = "men">>
 	<</switch>>
 <</if>>
@@ -403,6 +407,21 @@
 <</if>>
 <</silently>>_text_output<</widget>>
 
+<<widget "bhers">><<silently>>
+<<if typeof _args[0] is "number">>
+	<<set _na to _args[0]>>
+<<elseif $enemyno gte 0>>
+	<<set _na to $enemyno-1>>
+<<else>>
+	<<set _na to 0>>
+<</if>>
+<<if $NPCList[_na].monster is "monster">>
+	<<set _text_output to ($NPCList[_na].pronoun is "m" ? "his" : "hers")>>
+<<else>>
+	<<set _text_output to "its">>
+<</if>>
+<</silently>>_text_output<</widget>>
+
 <<widget "bHim">><<silently>>
 <<if typeof _args[0] is "number">>
 	<<set _na to _args[0]>>
@@ -765,6 +784,42 @@
 <</if>>
 <</silently>><<print _text_output>><</widget>>
 
+<<widget "fullGroup">><<silently>>
+	<<set $_person to []>>
+	<<for _fg to 0; _fg lt $enemyno; _fg++>>
+		<<personselect _fg>><<person>>
+		<<set $_person.push(_text_output)>>
+		<<if _fg is 0>>
+			<<set $_text_output to $_person[_fg]>>
+		<<elseif _fg is $enemyno-1>>
+			<<set $_text_output += " and " + $_person[_fg]>>
+		<<else>>
+			<<set $_text_output += ", " + $_person[_fg]>>
+		<</if>>
+	<</for>>
+	<<if _args[0] is "cap">><<capitalise>><</if>>
+<</silently>><<print $_text_output>><</widget>>
+
+<<widget "enumeratedGroup">><<silently>>
+	<<set $_menCount to $NPCList.countWith(npc => npc.pronoun is "m")>>
+	<<set $_womenCount to $NPCList.countWith(npc => npc.pronoun is "f")>>
+	<<silently>>
+		<<number $_menCount>><<set $_men to _text_output + " " + ($_menCount is 1 ? "man" : "men")>>
+		<<number $_womenCount>><<set $_women to _text_output + " " + ($_womenCount is 1 ? "woman" : "women")>>
+	<</silently>>
+
+	<<set [$_first, $_second, $_secondCount] to ($_menCount gte $_womenCount ? [$_men, $_women, $_womenCount] : [$_women, $_men, $_menCount])>>
+
+	<<set _text_output to $_first>>
+	<<if $_secondCount gt 0>>
+		<<set _text_output += " and " + $_second>>
+	<</if>>
+<</silently>><<print _text_output>><</widget>>
+
+<<widget "EnumeratedGroup">><<silently>>
+	<<enumeratedGroup>><<capitalise>>
+<</silently>><<print _text_output>><</widget>>
+
 <<widget "gendercheck">>
 	<<if !["m", "f"].includes($player.gender_appearance)>><<set _text_output to "<span class=\"red\">ERROR: Unexpected $$player.gender_appearance: [$player.gender_appearance]</span>">><</if>>
 <</widget>>
@@ -1154,18 +1209,18 @@
 <</silently>><<print _text_output>><</widget>>
 
 <<widget "combatPerson">><<silently>>
-	<<combatperson>><<capitalise>>	
+	<<combatperson>><<capitalise>>
 <</silently>><<print _text_output>><</widget>>
 
 <<widget "genderswap">>
 	<!-- Changes the current pronoun, without modifying the NPC it's referencing. Useful for crossdressing NPC dialogue. -->
 	<!-- Usage: <<person1>><<genderswap>><<he>> -->
-	
+
 	<!-- Cannot use genderswap when pronoun is anything other than "m" or "f". -->
 	<<switch $pronoun>>
 		<<case "m">> <<set $pronoun to "f">>
 		<<case "f">> <<set $pronoun to "m">>
-		<<default>>  <<print `<span class="red">[ERROR: invalid pronoun in genderswap, `+ $pronoun +`]</span>`>>
+		<<default>> <<print `<span class="red">[ERROR: invalid pronoun in genderswap, `+ $pronoun +`]</span>`>>
 	<</switch>>
 <</widget>>
 
@@ -1234,17 +1289,20 @@
 <</silently>><<print _text_output>><</widget>>
 
 <<widget "father">><<silently>>
-	<<set $_text_output to ($pronoun is "m" ? "father" : "mother")>>
-<</silently>><<print $_text_output>><</widget>>
+	<<set text_output to ($pronoun is "m" ? "father" : "mother")>>
+<</silently>><<print _text_output>><</widget>>
 
-<<widget "father">><<silently>>
-<<if $pronoun is "m">>
-	<<set $_text_output to "father">>
-<<else>>
-	<<set $_text_output to "mother">>
-<</if>>
-<</silently>><<if $_text_output>><<print $_text_output>><</if>>
-<</widget>>
+<<widget "Father">><<silently>>
+<<father>><<capitalise>>
+<</silently>><<print _text_output>><</widget>>
+
+<<widget "mummy">><<silently>>
+	<<set _text_output to ($pronoun is "m" ? "daddy" : "mummy")>>
+<</silently>><<print _text_output>><</widget>>
+
+<<widget "Mummy">><<silently>>
+<<mummy>><<capitalise>>
+<</silently>><<print _text_output>><</widget>>
 
 <<widget "girl">><<silently>>
 	<<set _text_output to ($player.gender_appearance is "m"? "boy" : "girl")>>
@@ -1366,7 +1424,7 @@
 <</if>>
 <</silently>><<print _text_output>><</widget>>
 
-<!-- optionally takes 2 parameters: what to add after the text for singular/plural   -->
+<!-- optionally takes 2 parameters: what to add after the text for singular/plural -->
 <<widget "genitalsandbreasts">>
 	<<genitals>> <<if $player.breastsize gte 1>>and <<breasts>><</if>>
 	<<if _args[0] isnot undefined and _args[1] isnot undefined>>
@@ -1559,37 +1617,37 @@
 <</widget>>
 
 <<widget "lrtrauma">>
-	<<if $statdisable is "f">> |
+	<<if $statdisable is "f" and ($NPCName[$NPCNameList.indexOf("Robin")].trauma gt 0 or _args[0] is true)>> |
 		<span class="green">- Robin's Trauma</span>
 	<</if>>
 <</widget>>
 
 <<widget "llrtrauma">>
-	<<if $statdisable is "f">> |
+	<<if $statdisable is "f" and ($NPCName[$NPCNameList.indexOf("Robin")].trauma gt 0 or _args[0] is true)>> |
 		<span class="green">- - Robin's Trauma</span>
 	<</if>>
 <</widget>>
 
 <<widget "lllrtrauma">>
-	<<if $statdisable is "f">> |
+	<<if $statdisable is "f" and ($NPCName[$NPCNameList.indexOf("Robin")].trauma gt 0 or _args[0] is true)>> |
 		<span class="green">- - - Robin's Trauma</span>
 	<</if>>
 <</widget>>
 
 <<widget "grtrauma">>
-	<<if $statdisable is "f">> |
+	<<if $statdisable is "f" and ($NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20 or _args[0] is true)>> |
 		<span class="red">+ Robin's Trauma</span>
 	<</if>>
 <</widget>>
 
 <<widget "ggrtrauma">>
-	<<if $statdisable is "f">> |
+	<<if $statdisable is "f" and ($NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20 or _args[0] is true)>> |
 		<span class="red">+ + Robin's Trauma</span>
 	<</if>>
 <</widget>>
 
 <<widget "gggrtrauma">>
-	<<if $statdisable is "f">> |
+	<<if $statdisable is "f" and ($NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20 or _args[0] is true)>> |
 		<span class="red">+ + + Robin's Trauma</span>
 	<</if>>
 <</widget>>
@@ -2038,8 +2096,8 @@
 
 <<widget "gsydneytoy">>
 <<if $sydney_toy is undefined>>
-	 | <span class="purple">Sydney will keep the $args[0] for future use</span>
-<<elseif $sydney_toy isnot $args[0]>>
+	| <span class="purple">Sydney will keep the $args[0] for future use</span>
+<<elseif $sydney_toy isnot _args[0]>>
 	| <span class="purple">Sydney will keep the $args[0] for future use, replacing their $sydney_toy</span>
 <</if>>
 <</widget>>
@@ -2583,7 +2641,7 @@
 		<<elseif $npc.length isnot 0>>
 			<span class="lblue">- - $npc[0]'s Dominance</span>
 		<<else>>
-			<span class="lblue">--  NPC Dominance</span>
+			<span class="lblue">- - NPC Dominance</span>
 		<</if>>
 	<</if>>
 <</widget>>
@@ -4664,7 +4722,7 @@ School finishes on the first Monday of December.
 				You quiver with excitement.
 			<</if>>
 		<<elseif ($exposed gte 2 and ($exhibitionism lt 95 or $uncomfortable.nude))
-			or ($exposed is  1 and ($exhibitionism lt 55 or $uncomfortable.nude))>>
+			or ($exposed is 1 and ($exhibitionism lt 55 or $uncomfortable.nude))>>
 			<<if _parts isnot "">>
 				You cover your <span class="lewd">exposed _parts</span> with your hands.
 			<<else>>
@@ -5585,6 +5643,9 @@ School finishes on the first Monday of December.
 <<else>>
 	<<set _text_output to "shaft">>
 <</if>>
+<<if playerHasStrapon()>>
+	<<set _text_output to "strap-on">>
+<</if>>
 <</silently>><<print _text_output>><</widget>>
 
 <<widget "testicle">><<silently>>
@@ -5669,8 +5730,8 @@ School finishes on the first Monday of December.
 <</widget>>
 
 <<widget "penilevirginitywarning">>
- 	<<if playerHasStrapon()>>
-		!<!-- do nothing -->
+	<<if playerHasStrapon()>>
+		<!-- do nothing -->
 	<<elseif $player.virginity.penile is true and $statdisable is "f">>
 		<span class="red">This action will deflower you.</span>
 	<</if>>
@@ -5700,9 +5761,7 @@ School finishes on the first Monday of December.
 	<</if>>
 <</widget>>
 
-/* Does not currently support named NPCs having their virginity taken by something other than the player. 
- * Argument 0 is the npc, argument 1 is their virginity.
-*/
+/* Argument 0 is the npc, argument 1 is their virginity. */
 <<widget "NPCvirginitywarning">>
 <<if $NPCNameList.indexOf(_args[0]) >= 0 and $NPCName[$NPCNameList.indexOf(_args[0])].virginity[_args[1]] is true and $statdisable is "f">>
 	<<if $combatControls.includes("ists")>>
@@ -5815,17 +5874,17 @@ School finishes on the first Monday of December.
 
 <<widget "randomteacher">>
 <<if $rng gte 81 and $NPCName[$NPCNameList.indexOf("Sirris")].init is 1>>
-Sirris
+	Sirris
 <<elseif $rng gte 61 and $NPCName[$NPCNameList.indexOf("River")].init is 1>>
-River
+	River
 <<elseif $rng gte 41 and $NPCName[$NPCNameList.indexOf("Doren")].init is 1>>
-Doren
+	Doren
 <<elseif $rng gte 21 and $NPCName[$NPCNameList.indexOf("Winter")].init is 1>>
-Winter
+	Winter
 <<elseif $NPCName[$NPCNameList.indexOf("Mason")].init is 1>>
 Mason
 <<else>>
-a teacher
+	a teacher
 <</if>>
 <</widget>>
 
@@ -6737,7 +6796,7 @@ $worn.genitals.name
 <</widget>>
 
 <<widget "npcPenis">>
-<<set $_npcGen to (_args[0] ? _args[0] : 0)>>
+<<set $_npcGen to (_args[0] ? _args[0] : $index)>>
 <<if $NPCList[$_npcGen].chastity.penis is "chastity cage">>
 	<<set _text_output to "caged penis">>
 <<elseif $NPCList[$_npcGen].chastity.penis.includes("chastity")>>
@@ -6752,7 +6811,7 @@ $worn.genitals.name
 	<<if $enemynomax is 1>>
 		<<set _args[0] to 0>>
 	<</if>>
-	<<set $_npcGen to (_args[0] ? _args[0] : 0)>>
+	<<set $_npcGen to (_args[0] ? _args[0] : $index)>>
 	<<if $NPCList[$_npcGen].chastity.penis is "chastity cage">>
 		<<set _text_output to "caged penis">>
 	<<elseif $NPCList[$_npcGen].chastity.penis.includes("chastity")>>
@@ -6766,7 +6825,7 @@ $worn.genitals.name
 <</widget>>
 
 <<widget "npcPenisColored">>
-	<<set $_npcGen to (_args[0] ? _args[0] : 0)>>
+	<<set $_npcGen to (_args[0] ? _args[0] : $index)>>
 	<<set $_ppcolor to "tan">>
 	<<if $NPCList[$_npcGen].chastity.penis.includes("chastity")>>
 		<<set $_ppcolor to "gray">>
@@ -6785,7 +6844,7 @@ $worn.genitals.name
 
 <<widget "npcVagina">>
 <<if !_args[0]>>
-	<<set _npcGen to 0>>
+	<<set _npcGen to $index>>
 <<else>>
 	<<set _npcGen to _args[0]>>
 <</if>>
@@ -6799,7 +6858,7 @@ $worn.genitals.name
 
 <<widget "npcAnus">>
 <<if !_args[0]>>
-	<<set _npcGen to 0>>
+	<<set _npcGen to $index>>
 <<else>>
 	<<set _npcGen to _args[0]>>
 <</if>>
@@ -6811,6 +6870,29 @@ $worn.genitals.name
 <<print _text_output>>
 <</widget>>
 
+<<widget "npcGenitals">>
+	<<if !_args[0]>>
+		<<set _npcGen to $index>>
+	<<else>>
+		<<set _npcGen to _args[0]>>
+	<</if>>
+	<<if $NPCList[_npcGen].penis isnot "none" and $NPCList[_npcGen].vagina isnot "none">>
+		<<if _args[1] is "simple">>
+			<<npcPenisSimple _npcGen>> and <<npcVagina _npcGen>>
+		<<else>>
+			<<npcPenis _npcGen>> and <<npcVagina _npcGen>>
+		<</if>>
+	<<elseif $NPCList[_npcGen].penis isnot "none">>
+		<<if _args[1] is "simple">>
+			<<npcPenisSimple _npcGen>>
+		<<else>>
+			<<npcPenis _npcGen>>
+		<</if>>
+	<<else>>
+		<<npcVagina _npcGen>>
+	<</if>>
+<</widget>>
+
 <<widget "npcHairColour">>
 <<if _args[0]>>
 	<<switch $NPCName[$NPCNameList.indexOf(_args[0])].hairColour>>
@@ -6829,8 +6911,8 @@ $worn.genitals.name
 <<print _text_output>>
 <</widget>>
 
-<!-- Argument 0 is the appropriate NPCName or NPCList object. 
-Argument 1 should be "upper", "lower", or "both" 
+<!-- Argument 0 is the appropriate NPCName or NPCList object.
+Argument 1 should be "upper", "lower", or "both"
 Argument 2, where appropriate, determines whether it's the player undressing the NPC or the NPC undressing themselves-->
 <<widget "npcClothesText">><<silently>>
 <<if _args[0]>>
@@ -6884,8 +6966,9 @@ Argument 2, where appropriate, determines whether it's the player undressing the
 	<<set $_part to _args[1]>> /* can be "upper" or "lower" */
 	<<set _text_output to "revealing <<his>> ">>
 	<<if $_part is "both">>
-		<!-- placeholder -->
-	<<elseif $_part is "lower">>
+		<<set _text_output += "$_npc.breastsdesc and ">>
+	<</if>>
+	<<if ["both","lower"].includes($_part)>>
 		<<if $_npc.penis isnot "none" and $_npc.vagina isnot "none">>
 			<<set _text_output += "$_npc.penisdesc and <<his>> ">>
 			<<set _text_output += $enemyarousal gte 40 ? "moistened pussy" : "pussy">>
@@ -7020,8 +7103,8 @@ Argument 2, where appropriate, determines whether it's the player undressing the
 <</widget>>
 
 <!-- usage
-  <<number -69>> -> "negative sixty-nine"
-  <<number 69 silent>> -> _text_output = "sixty-nine"
+	<<number -69>> -> "negative sixty-nine"
+	<<number 69 silent>> -> _text_output = "sixty-nine"
 -->
 <<widget "number">><<silently>>
 	<<set $_x to _args[0]>>
@@ -7037,16 +7120,16 @@ Argument 2, where appropriate, determines whether it's the player undressing the
 		<<if $_x is 0>>
 			<<set _text_output to "zero">>
 		<<elseif $_x gte 10 and $_x lte 20>>
-			<<set _text_output to  ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"][$_x-10]>>
+			<<set _text_output to ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"][$_x-10]>>
 		<<else>>
 			<<set $_ones to ($_x % 10)>>
 			<<set $_tens to ($_x - $_ones)/10>>
 			<<set $_tenword to ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"][$_tens]>>
 			<<set $_oneword to ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"][$_ones]>>
 			<<if $_tenword and $_oneword>>
-				<<set _text_output to  $_tenword + "-" + $_oneword>>
+				<<set _text_output to $_tenword + "-" + $_oneword>>
 			<<else>>
-				<<set _text_output to  $_tenword + "" + $_oneword>>
+				<<set _text_output to $_tenword + "" + $_oneword>>
 			<</if>>
 		<</if>>
 	<</if>>
@@ -7143,7 +7226,7 @@ Argument 2, where appropriate, determines whether it's the player undressing the
 -->
 
 <<widget "penisSimple">><<silently>>
-    <<set _text_output to (playerHasStrapon() ? "strap-on": "penis")>>
+	<<set _text_output to (playerHasStrapon() ? "strap-on": "penis")>>
 <</silently>><<print _text_output>><</widget>>
 
 <<widget "gfabric">>
@@ -7221,4 +7304,17 @@ Argument 2, where appropriate, determines whether it's the player undressing the
 
 <<widget "A_role">><<silently>>
 	<<a_role>><<capitalise>>
-<</silently>><<print _text_output>><</widget>>
\ No newline at end of file
+<</silently>><<print _text_output>><</widget>>
+
+<<widget "bred">>
+<<if $pregnancyspeechdisable is "f">>
+	<<if random(1, 10000) is 10000>>
+		<<set _text_output to "bread">>
+	<<else>>
+		<<set _text_output to "bred">>
+	<</if>>
+<<else>>
+	<<set _text_output to "fucked">>
+<</if>>
+<<print _text_output>>
+<</widget>>
\ No newline at end of file
diff --git a/game/base-system/time.twee b/game/base-system/time.twee
index df62aea6ac753f9dc0a8d4bed805240106441696..b2c0184511449b673efb87b480ad7cf3b56b154c 100644
--- a/game/base-system/time.twee
+++ b/game/base-system/time.twee
@@ -8,6 +8,9 @@
 	<<earnAllFeats true>>
 	<<set $noon_check to 0>>
 	<<set $dawn_check to 0>>
+	<<if $renttime lte 0>>
+		<<set $baileyOverdue++>>
+	<</if>>
 	<<set $renttime -= 1>>
 	<<set $motherwake to 0>>
 	<<if $gamemode isnot "hard" and $uncomfortable.lewd is true>>
@@ -64,6 +67,18 @@
 	<<set $schooleventtimer -= 1>>
 	<<if $robindebtevent gt 0>>
 		<<set $robindebtevent -= 1>>
+		<<switch $robinmissing>>
+			<<case "dinner">>
+				<<npcincr Robin trauma 40>>
+			<<case "docks">>
+				<<npcincr Robin trauma 15>>
+			<<case "landfill">>
+				<<if $robindebtevent gte 1>>
+					<<npcincr Robin trauma 10>>
+				<<else>>
+					<<npcincr Robin trauma 25>>
+				<</if>>
+		<</switch>>
 	<</if>>
 	<<unset $robin_tending>>
 	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gt 0>>
@@ -120,8 +135,8 @@
 	<</if>>
 	<<set $boysroomentered to 0>>
 	<<set $girlsroomentered to 0>>
-	<<set $famepark -= 7>>
-	<<set $famepark = Math.clamp($famepark, 0, 100)>>
+	<<set $park_fame -= 7>>
+	<<set $park_fame = Math.clamp($park_fame, 0, 100)>>
 	<<unset $robinbeachpolice>>
 	<<unset $robinparksnow>>
 	<<set $sewersfeeding to 0>>
@@ -204,6 +219,7 @@
 			<<set $wolfchallengetimer-->>
 		<</if>>
 	<</if>>
+	<<unset $wolf_cave_dog>>
 	<<unset $jordan_missing>>
 	<<unset $blackWolfMonsterRoll>>
 	<<unset $temple_pray>>
@@ -498,6 +514,12 @@
 		<<set $loveInterestAwareMessage to 1>>
 		<span class = "pink"><i>Your mind is open to the possibility of multiple lovers. You may now choose a second love interest.</i></span>
 	<</if>>
+	
+	<<if $pound>>
+		<<set $pound.compete to 0>>
+		<<stray_happiness -1>>
+		<<set $pound.tasks to []>>
+	<</if>>
 
 
 	<<pregProgressDay>>
@@ -684,10 +706,8 @@
 	<<if $bell_timer>>
 		<<set $bell_timer -= 1>>
 	<</if>>
-	<<if $weekday isnot 1>>
-		<<if $robindebtevent is 0>>
-			<<set $robinmissing to 0>>
-		<</if>>
+	<<if $robindebtevent is 0>>
+		<<set $robinmissing to 0>>
 	<</if>>
 
 	<<if $birthmonth is $month and $birthday is $monthday>>
@@ -755,7 +775,7 @@
 	<<if $purity lte 0>>
 		<<if $fallenangel gte 2>>
 			<<fallenDescend>> /* Moved to transformations.twee */
-		
+
 		<</if>>
 		<<transform demon 1>>
 	<<else>>
@@ -785,7 +805,7 @@
 	<<else>>
 		<<set $angelBanish to 0>>
 	<</if>>
-	
+
 	<<transform angel -1>>
 
 	<<if $fallenangel gte 2>>
@@ -1076,11 +1096,11 @@
 	<<if $sydneyScience isnot 1 and $days gte random(7, 12)>>
 		/*<<set $sydneyLate to 1>><<set $sydneyScience to 1>>*/ <!-- Uncomment this when Sydney can show up in Science Class -->
 	<</if>>
-	
+
 	<<if $adultshopprogress lt 22 and $weekday is 6>>
 		<<set $adultshopprogress += 1>>
 	<<elseif $adultshopgrandopening is true>>
-		<<unlockAdultShop>>	
+		<<unlockAdultShop>>
 	<<elseif $adultshopprogress gte 22 and $adultshopunlocked isnot true>>
 		<<set $adultshopgrandopening to true>>
 	<<elseif $adultshopdegree lt 15>>
@@ -1089,7 +1109,7 @@
 	<<unset $adultshophelped>>
 
 	<<if $NPCName[$NPCNameList.indexOf("Sydney")].init is 1>>
-		<<NPCStatusCheck "Sydney">>
+		<<run statusCheck("Sydney")>>
 		<<if $NPCName[$NPCNameList.indexOf("Sydney")].purity gte 1 and $NPCName[$NPCNameList.indexOf("Sydney")].virginity.temple is true>>
 			<<npcincr Sydney purity 1>>
 		<</if>>
@@ -1110,7 +1130,7 @@
 				<<set $sydneyLeightonConfront to 1>>
 				<<set $sydneyLeightonWhitneyGuilty to 1>>
 			<<elseif $libraryMoneyStolen gte 100 or $sydneyStolenKnown>>
-				<<set $sydneyLeightonConfront to 1>>		
+				<<set $sydneyLeightonConfront to 1>>
 				<<set $sydneyLeightonPlayerGuilty to 1>>
 			<</if>>
 		<<elseif $sydneyLeightonConfrontTimer>>
@@ -1401,6 +1421,9 @@
 <<unset $birdSleep>>
 <<unset $glideScared>>
 <<unset $edenbed>>
+<<if $pound>>
+	<<set $pound.sneak to 0>>
+<</if>>
 <</widget>>
 
 <<widget "dawn">>
@@ -1472,7 +1495,7 @@
 	<<if $wolfevent is 0>>
 		<<set $wolfevent to 1>>
 	<</if>>
-	
+
 	/*ToDo: Pregnancy, remove $pregnancyTesting to properly enable*/
 	<<if $pregnancyTesting is undefined>>
 	<<elseif $sexStats.vagina.menstruation.currentState is "pregnant" or ($sexStats.vagina.menstruation.currentState is "normal" and ($playerPregnancyHumanDisable is "f" or $playerPregnancyBeastDisable is "f"))>>
@@ -1507,6 +1530,9 @@
 		<<set $wolfpatrolsent++>>
 	<</if>>
 
+	<<if $robinPillory and $robinPillory.danger isnot undefined>>
+		<<robinPilloryHour>>
+	<</if>>
 <</if>>
 <</widget>>
 
@@ -1593,7 +1619,8 @@
 	<</if>>
 <</if>>
 <<if $robinpaid isnot 1 and $robindebt gte $robindebtlimit and $robindebtevent lte 0>>
-	<<set $NPCName[$NPCNameList.indexOf("Robin")].trauma to 100>><<set $robin_injured to 1>><<set $robineventnote to 1>><<set $robinmissing to 1>>
+	<<robinPunishment "docks">>
+	<<set $robineventnote to 1>>
 <</if>>
 <<set $robinmoney += 300>>
 <<unset $robinBrothelWeekly>>
@@ -1608,8 +1635,6 @@
 	<<set $loft_spray to 0>>
 <</if>>
 
-<<set $kylarfameconfront to 0>>
-
 <<set $leightondanceoffered to 0>>
 <<set $leightondancerefused to 0>>
 
@@ -1627,6 +1652,7 @@
 <<unset $spatheft>>
 <<unset $schoollibrarymoneytheft>>
 <<unset $infirmarydrugstheft>>
+<<unset $furnitureshoptheft>>
 
 <<set $streetpolice to 0>>
 <<unset $sewersantiquecrystal>>
diff --git a/game/base-system/tips.twee b/game/base-system/tips.twee
index 13634cfe085ecfa91ad57f5a312f6f053410a2d1..766c131102b2732ba0c4938377c03175e03dae4c 100644
--- a/game/base-system/tips.twee
+++ b/game/base-system/tips.twee
@@ -133,7 +133,7 @@
 			"Bound legs will make dancing and swimming very difficult, and make athletics impossible.",
 			"You can rent a textbook from the school library, which will increase one of your grades over time.",
 			"The book store in the school library offers school appropriate clothing at a hefty markup.",
-			"Blood moons are said to cause strange behavior and hallucinations. They happen on the last day of every month.",
+			"Blood moons are said to cause strange behaviour and hallucinations. They happen on the last day of every month.",
 			"Sleeping through a blood moon can be dangerous.",
 		]>>
 
@@ -188,7 +188,7 @@
 
 <<widget "generateTipsList">>
 	<<set setup.tipsList to setup.tips.general>>
-	
+
 	<<if $tentacledisable is "f">>
 		<<set setup.tipsList to setup.tipsList.concat(setup.tips.tentacles)>>
 	<</if>>
diff --git a/game/base-system/traits.twee b/game/base-system/traits.twee
index c19510ac482d5c2dbba433a1b4f3965667418bcc..51056c1c93f5c9f8a9afe6c10f892b08b9161efe 100644
--- a/game/base-system/traits.twee
+++ b/game/base-system/traits.twee
@@ -173,8 +173,8 @@
 	<<else>>
 		<span class="grey">Bird <<girl>></span>
 	<</if>>
-	 - The skies call.
-	 <br>
+	- The skies call.
+	<br>
 <</if>>
 
 <<if $fallenangel gte 2>>
@@ -255,7 +255,7 @@
 	<<else>>
 		<span class="lewd">Cum Dump</span>
 	<</if>>
-	 - You've become accustomed to the scent of ejaculate and can take advantage of its calming effect. Your stress is reduced hourly depending on how much slime and semen covers you.
+	- You've become accustomed to the scent of ejaculate and can take advantage of its calming effect. Your stress is reduced hourly depending on how much slime and semen covers you.
 	<br>
 <</if>>
 
@@ -285,7 +285,7 @@
 	<<else>>
 		<span class="lewd">Bitch</span>
 	<</if>>
-	- Animals have tried to breed with you so often that you're used to it. Trauma increases more slowly when attacked by animals.
+	- Animals have tried to <<if $speechpregnancydisable is "f">>breed<<else>>mate<</if>> with you so often that you're used to it. Trauma increases more slowly when attacked by animals.
 	<br>
 <</if>>
 
@@ -315,7 +315,7 @@
 	<<else>>
 		<span class="lewd">Milk Addict</span>
 	<</if>>
-	 - You take full advantage of the nutrition in fresh breast milk. Drinking it invigorates your body, improving physique.
+	- You take full advantage of the nutrition in fresh breast milk. Drinking it invigorates your body, improving physique.
 	<br>
 <</if>>
 
diff --git a/game/base-system/transformations.twee b/game/base-system/transformations.twee
index 52aeaa1b91d082ac0bda377a9d989ab355f03c3b..63a2c707a80cdb34edea5b8ec1e7e524975c9c4e 100644
--- a/game/base-system/transformations.twee
+++ b/game/base-system/transformations.twee
@@ -140,7 +140,7 @@
 		<</if>>
 	<</if>>
 	<<if _args[1] gte 1>>
-		<<if _args[0] isnot "wolf" and $worn.neck.name isnot "spiked collar">>
+		<<if _args[0] isnot "wolf" and $worn.neck.name isnot "spiked collar" and $worn.neck.name isnot "spiked collar with leash">>
 			<<set $wolfbuild -= _args[1]>>
 			<<set $wolfbuild = Math.clamp($wolfbuild, 0, 100)>>
 		<</if>>
@@ -162,7 +162,7 @@
 
 <<widget "transformationStateUpdate">>
 
-	<<if $wolfbuild gte 1 and $worn.neck.name isnot "spiked collar">>
+	<<if $wolfbuild gte 1 and $worn.neck.name isnot "spiked collar" and $worn.neck.name isnot "spiked collar with leash">>
 		<<transform wolf -1>>
 	<</if>>
 
@@ -282,22 +282,20 @@
 <</widget>>
 
 <<widget "fallenTransform">>
-	<<if $angel gte 1>>
-		<<set $specialTransform to 0>>
-	<</if>>
-	<<if $angel gte 6>>
-		<span class="red">Your halo shatters and your wings blacken. An overwhelming sense of loss overcomes you.</span>
-		<<set $trauma to $traumamax>>
-		<<set $fallenangel to 2>>
-		<<set $specialTransform to 1>>
-		<<set $transformationParts.fallenAngel.halo to "default">>
-		<<set $transformationParts.fallenAngel.wings to "default">>
-		<<earnFeat "Fallen Angel">>
-	<<elseif $angel gte 4>>
-		<span class="red">Your halo shatters and fades.</span>
-	<</if>>
-	<<angelTransform 99>>
-	<<set $specialTransform to 1>>
+		<<if $angel gte 6>>
+			<span class="red">Your halo shatters and your wings blacken. An overwhelming sense of loss overcomes you.</span>
+			<<set $trauma to $traumamax>>
+			<<set $fallenangel to 2>>
+			<<set $transformationParts.fallenAngel.halo to "default">>
+			<<set $transformationParts.fallenAngel.wings to "default">>
+			<<earnFeat "Fallen Angel">>
+		<<elseif $angel gte 4>>
+			<span class="red">Your halo shatters and fades.</span>
+		<</if>>
+		<<angelTransform 99>>
+		<<if $fallenangel is 2>>
+			<<set $specialTransform to 1>>
+		<</if>>
 <</widget>>
 
 <<widget "fallenDescend">>
@@ -318,7 +316,7 @@
 <</widget>>
 
 
-/*  <<angelTransform step>> If neither is provided, force full transformation */
+/* <<angelTransform step>> If neither is provided, force full transformation */
 <<widget "angelTransform">>
 	<<if _args[0] gte 0>>
 		<<switch _args[0]>>
@@ -413,7 +411,7 @@
 	<</if>>
 <</widget>>
 
-/*  <<demonTransform step>> If neither is provided, force full transformation */
+/* <<demonTransform step>> If neither is provided, force full transformation */
 <<widget "demonTransform">>
 	<<if _args[0] gte 0>>
 		<<switch _args[0]>>
@@ -521,7 +519,7 @@
 	<</if>>
 <</widget>>
 
-/*  <<wolfTransform step>> If neither is provided, force full transformation */
+/* <<wolfTransform step>> If neither is provided, force full transformation */
 <<widget "wolfTransform">>
 	<<if _args[0] gte 0>>
 		<<switch _args[0]>>
@@ -629,7 +627,7 @@
 	<</if>>
 <</widget>>
 
-/*  <<catTransform step>> If neither is provided, force full transformation */
+/* <<catTransform step>> If neither is provided, force full transformation */
 <<widget "catTransform">>
 	<<if _args[0] gte 0>>
 		<<switch _args[0]>>
@@ -882,7 +880,7 @@
 	<</if>>
 <</widget>>
 
-/*  <<harpyTransform step>> If neither is provided, force full transformation */
+/* <<harpyTransform step>> If neither is provided, force full transformation */
 <<widget "harpyTransform">>
 	<<if _args[0] gte 0>>
 		<<switch _args[0]>>
diff --git a/game/base-system/weather.twee b/game/base-system/weather.twee
index 46f99c855a5e3b8f5242312a518e317f78846ead..356a5e9f92b285ba4d6058f346446ce5e88864a6 100644
--- a/game/base-system/weather.twee
+++ b/game/base-system/weather.twee
@@ -45,7 +45,7 @@
 		<<set _prev to _i - 1>>
 
 		<!--Changes the chance of weather based on previous day. Bonuses for same type and penalties for far steps.
-	 	'else' boosts the weather's chance, while being less than rng lowers it. If it gets too low, the weather can change.-->
+		'else' boosts the weather's chance, while being less than rng lowers it. If it gets too low, the weather can change.-->
 		<<if $weather.sevendayforcast[_i] is "clear">>
 
 			<<if $weather.sevendayforcast[_prev] is "clear">>
@@ -367,7 +367,7 @@
 
 <</widget>>
 
-<!--Initializes the weather.-->
+<!--Initialises the weather.-->
 <<widget "weatherinit">>
 	<<set _weatherOptions to ["clear", "clear", "clear", "clear", "overcast", "overcast", "overcast", "overcast", "rain", "rain"]>>
 	<<set $weather.current to either(_weatherOptions)>>
diff --git a/game/base-system/widgets.js b/game/base-system/widgets.js
index 6c4abdc2be572d69f3f42f0295cd66f205b791e4..af54617ec4f9379e1a98a91b2f22a160c2d1f88e 100644
--- a/game/base-system/widgets.js
+++ b/game/base-system/widgets.js
@@ -60,8 +60,9 @@ const hairStyleCap = {
 		"straight curl":200,
 		"ringlet curl":300,
 		"curtain":200,
+		"trident":200,
 	}
-}	
+}
 
 /** Calculate the player's gender appearance */
 function genderappearancecheck() {
@@ -283,11 +284,11 @@ function genderAppearanceHermTiebreak() {
 	// Reminder: this is only if the player has an *exactly* 0 femininity score. This should be nearly impossible to reach, but we still need to handle it.
 
 	// The general principle here is that these factors are things that indicate which gender is the player's preference for this character.
-	// We rely on as many manually-chosen details as possible to break the tie in a way that favors the player's preference.
+	// We rely on as many manually-chosen details as possible to break the tie in a way that favours the player's preference.
 
-	if (["m", "f"].includes(V.player.gender_body)) { 
+	if (["m", "f"].includes(V.player.gender_body)) {
 		return V.player.gender_body; // break the tie with natural features, if player has masculine or feminine features.
-	} else if (["m", "f"].includes(V.player.gender_posture)) { 
+	} else if (["m", "f"].includes(V.player.gender_posture)) {
 		return V.player.gender_posture; // break the tie with gender posture, if gender posture is "m" or "f"
 	} else {
 		return "f"; // you've done it. you've broken me. default to "f".
@@ -310,7 +311,7 @@ function apparentbottomsizecheck(){
 	V.player.perceived_bottomsize = Math.clamp( V.bottomsizemin, T.tempbutt, V.bottomsizemax );
 }
 
-function exposedcheck() { 
+function exposedcheck() {
 	if ( !V.combat || V.args[0] === true ){
 		genderappearancecheck();
 		V.player.gender_appearance = T.gender_appearance;
@@ -396,7 +397,7 @@ Macro.add('reqSkill', {
 			/* Output variable to store what will be appended to EVERY link in the section. */
 			let output = "";
 			const cancel = section.args.some(arg => {
-				/* Splits up the arguments so that everything but the last character goes into type, and the last character goes into tier. 
+				/* Splits up the arguments so that everything but the last character goes into type, and the last character goes into tier.
 				   If arg is "deviancy5", type would be "deviancy" and tier would be 5. */
 				const type = arg.slice(0, -1);
 				const tier = Number.parseInt(arg.slice(-1));
@@ -428,7 +429,7 @@ Macro.add('reqSkill', {
 			});
 			/* If cancel signals true, exit but continue next payloads. */
 			if (cancel) return false;
-			/* Final render, and insertion of elements. 
+			/* Final render, and insertion of elements.
 			   Renders the section defined within the block that was successful.*/
 			new Wikifier(this.output, section.contents);
 			/* Renders the HTML elements that are inserted after every link. */
diff --git a/game/base-system/widgets.twee b/game/base-system/widgets.twee
index 8d3b1844359e167e3f525b5fddfebc76fc3e8d6d..48257fb7ef8b630e7e2884f7978678fbdaa43899 100644
--- a/game/base-system/widgets.twee
+++ b/game/base-system/widgets.twee
@@ -136,7 +136,7 @@
 			<<if random(1, 120) lte 3>>
 				<<unset $lake_ice_broken>>
 			<</if>>
-		<</if>>	
+		<</if>>
 	<</if>>
 <</widget>>
 
@@ -159,7 +159,7 @@
 			<span class="red">You can't breathe! Your stress will increase and you'll soon pass out if you can't find air.</span>
 		<</if>>
 		<<oxygencaption>>
-		<<if $underwaterintro isnot 1 and $combat isnot 1>>
+		<<if $underwaterintro isnot 1 and $combat isnot 1 and !$possessed>>
 			<<set $underwaterintro to 1>>
 			<i>You can't hold your breath forever. You will pass less time and use less air per action with a higher swimming skill.</i>
 			<br><br>
@@ -245,7 +245,7 @@
 	<<if $player.vaginaExist>>
 		<<set $_wetnessChange to 0>>
 		<<set $_arousalPercent to Math.clamp($arousal / $arousalmax, 0, 1)>>
-		
+
 		<!-- Vaginal lube is produced at a fairly linear rate, between 1-3 per minute based on arousal. -->
 		<<if $arousal gte $arousalmax * (2/5)>>
 			<<set $_wetnessChange to 1 + ($_arousalPercent * 2)>>
@@ -284,7 +284,7 @@
 				<<set $lowerwet += Math.round($_change * $pass)>>
 			<</if>> */
 		<</if>>
-		
+
 		<<set $vaginaArousalWetness to Math.clamp($vaginaArousalWetness, 0, 100)>>
 		<<vaginaWetnessCalculate>>
 	<</if>>
@@ -372,6 +372,14 @@
 	<</if>>
 <</widget>>
 
+<<widget "virginitylosttext">>
+	<<if $templePromised is _args[0]>>
+		<span class="lblue">yet you remain pure.</span>
+	<<else>>
+		<span class="red">forever robbing you of your purity.</span>
+	<</if>>
+<</widget>>
+
 <<widget "neutral">>
 	<<if _args[0]>>
 		<<if $consensual isnot 1>>
@@ -1014,11 +1022,11 @@
 				<span class="gold"> You get a good workout.</span>
 			<</if>>
 		<</if>>
-    <<elseif $combat is 1>>
-        <span class="gold"> It invigorates you.</span>
-    <<else>>
-        <span class="gold"> You get a good workout.</span>
-    <</if>>
+	<<elseif $combat is 1>>
+		<span class="gold"> It invigorates you.</span>
+	<<else>>
+		<span class="gold"> You get a good workout.</span>
+	<</if>>
 <</if>>
 <</widget>>
 
@@ -1344,7 +1352,7 @@
 					<span class="pink">You're being puppeteered.</span>
 				<<else>>
 					<span class="red">You're helpless.</span>
-				<</if>>				
+				<</if>>
 			<<else>>
 				<<if $control gte $controlmax>>
 					<span class="green">You are confident.</span>
@@ -1787,15 +1795,15 @@
 			<<else>>
 				<img id="daystate" src="img/misc/day.png">
 			<</if>>
-		
+
 			<<if $location is "tentworld">>
 				<img id="weather" src="img/misc/tentskyday.png">
 			<<else>>
 				<<switch $weather>>
-					<<case "clear">>    <img id="weather" src="img/misc/clearday.png">
+					<<case "clear">>	<img id="weather" src="img/misc/clearday.png">
 					<<case "overcast">> <img id="weather" @src="'img/misc/' + _weather_display + '/overcastday.png'">
-					<<case "rain">>     <img id="weather" src="img/misc/rainday.gif">
-					<<case "snow">>     <img id="weather" src="img/misc/winter/snowday.gif">
+					<<case "rain">>		<img id="weather" src="img/misc/rainday.gif">
+					<<case "snow">>		<img id="weather" src="img/misc/winter/snowday.gif">
 				<</switch>>
 			<</if>>
 
@@ -1825,9 +1833,9 @@
 				<<case "tentworld">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_day.gif'">
 				<<case "underground">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/undergroundday.png'">
 				<<case "sewers">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/sewersday.gif'">
 				<<case "school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/schoolday.png'">
 				<<case "cabin">>
@@ -1890,7 +1898,7 @@
 				<<case "riding_school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/riding_school_day.gif'">
 				<<case "estate">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/farm_day.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/remy_farm_day.png'">
 				<<case "wolf_cave">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_day.png'">
 				<<case "forest_shop">>
@@ -1914,7 +1922,7 @@
 						<img id="location" @src="'img/misc/' + _weather_display + '/alley_day.gif'">
 					<</if>>
 				<<case "drain">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/drain.gif'">
 				<<case "spa">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/spa_day.gif'">
 				<<case "prison">>
@@ -1923,6 +1931,8 @@
 					<img id="location" @src="'img/misc/' + _weather_display + '/promenade_beach_day.gif'">
 				<<case "factory">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/factory_day.gif'">
+				<<case "pound">>
+					<img id="location" @src="'img/misc/' + _weather_display + '/town_day.gif'">
 			<</switch>>
 		<<elseif $daystate is "night">>
 			<!-- if bloodmoon -->
@@ -1938,10 +1948,10 @@
 				<img id="weather" src="img/misc/tentskynight.png">
 			<<else>>
 				<<switch $weather>>
-					<<case "clear">>    <img id="weather" src="img/misc/clearnight.png">
+					<<case "clear">>	<img id="weather" src="img/misc/clearnight.png">
 					<<case "overcast">> <img id="weather" @src="'img/misc/' + _weather_display + '/overcastnight.png'">
-					<<case "rain">>     <img id="weather" src="img/misc/rainnight.gif">
-					<<case "snow">>     <img id="weather" src="img/misc/winter/snownight.gif">
+					<<case "rain">>		<img id="weather" src="img/misc/rainnight.gif">
+					<<case "snow">>		<img id="weather" src="img/misc/winter/snownight.gif">
 				<</switch>>
 			<</if>>
 
@@ -1971,9 +1981,9 @@
 				<<case "tentworld">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_night.gif'">
 				<<case "underground">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/undergroundnight.png'">
 				<<case "sewers">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/sewersnight.gif'">
 				<<case "school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/schoolnight.png'">
 				<<case "cabin">>
@@ -2031,7 +2041,7 @@
 				<<case "riding_school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/riding_school_night.gif'">
 				<<case "estate">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/farm_night.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/remy_farm_night.png'">
 				<<case "wolf_cave">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_night.png'">
 				<<case "forest_shop">>
@@ -2055,7 +2065,7 @@
 						<img id="location" @src="'img/misc/' + _weather_display + (_bloodmoon ? '/alley_blood.gif' : '/alley_night.gif')">
 					<</if>>
 				<<case "drain">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/drain.gif'">
 				<<case "spa">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/spa_night.gif'">
 				<<case "prison">>
@@ -2063,7 +2073,9 @@
 				<<case "promenade">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/promenade_beach_night.gif'">
 				<<case "factory">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/factory_night.gif'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/factory_night.png'">
+				<<case "pound">>
+					<img id="location" @src="'img/misc/' + _weather_display + '/town_night.gif'">
 			<</switch>>
 		<<elseif $daystate is "dawn">>
 			<<if $location is "tentworld">>
@@ -2076,10 +2088,10 @@
 				<img id="weather" src="img/misc/tentskydawn.png">
 			<<else>>
 				<<switch $weather>>
-					<<case "clear">>    <img id="weather" src="img/misc/cleardawn.png">
+					<<case "clear">>	<img id="weather" src="img/misc/cleardawn.png">
 					<<case "overcast">> <img id="weather" @src="'img/misc/' + _weather_display + '/overcastdawn.png'">
-					<<case "rain">>     <img id="weather" src="img/misc/raindawn.gif">
-					<<case "snow">>     <img id="weather" src="img/misc/winter/snowdawn.gif">
+					<<case "rain">>		<img id="weather" src="img/misc/raindawn.gif">
+					<<case "snow">>		<img id="weather" src="img/misc/winter/snowdawn.gif">
 				<</switch>>
 			<</if>>
 
@@ -2109,9 +2121,9 @@
 				<<case "tentworld">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_dawn.gif'">
 				<<case "underground">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/undergrounddawn.png'">
 				<<case "sewers">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/sewersdawn.gif'">
 				<<case "school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/schooldawn.png'">
 				<<case "cabin">>
@@ -2169,7 +2181,7 @@
 				<<case "riding_school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/riding_school_dawn.gif'">
 				<<case "estate">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/farm_dawn.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/remy_farm_dawn.png'">
 				<<case "wolf_cave">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_dawn.png'">
 				<<case "forest_shop">>
@@ -2193,7 +2205,7 @@
 						<img id="location" @src="'img/misc/' + _weather_display + '/alley_dawn.gif'">
 					<</if>>
 				<<case "drain">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/drain.gif'">
 				<<case "spa">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/spa_dawn.gif'">
 				<<case "prison">>
@@ -2202,6 +2214,8 @@
 					<img id="location" @src="'img/misc/' + _weather_display + '/promenade_beach_dawn.gif'">
 				<<case "factory">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/factory_dawn.gif'">
+				<<case "pound">>
+					<img id="location" @src="'img/misc/' + _weather_display + '/town_dawn.gif'">
 			<</switch>>
 		<<elseif $daystate is "dusk">>
 			<<if $location is "tentworld">>
@@ -2214,10 +2228,10 @@
 				<img id="weather" src="img/misc/tentskydusk.png">
 			<<else>>
 				<<switch $weather>>
-					<<case "clear">>    <img id="weather" src="img/misc/cleardusk.png">
+					<<case "clear">>	<img id="weather" src="img/misc/cleardusk.png">
 					<<case "overcast">> <img id="weather" @src="'img/misc/' + _weather_display + '/overcastdusk.png'">
-					<<case "rain">>     <img id="weather" src="img/misc/raindusk.gif">
-					<<case "snow">>     <img id="weather" src="img/misc/winter/snowdusk.gif">
+					<<case "rain">>		<img id="weather" src="img/misc/raindusk.gif">
+					<<case "snow">>		<img id="weather" src="img/misc/winter/snowdusk.gif">
 				<</switch>>
 			<</if>>
 
@@ -2247,9 +2261,9 @@
 				<<case "tentworld">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/tentacles_dusk.gif'">
 				<<case "underground">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/undergrounddusk.png'">
 				<<case "sewers">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/sewersdusk.gif'">
 				<<case "school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/schooldusk.png'">
 				<<case "cabin">>
@@ -2307,7 +2321,7 @@
 				<<case "riding_school">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/riding_school_dusk.gif'">
 				<<case "estate">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/farm_dusk.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/remy_farm_dusk.png'">
 				<<case "wolf_cave">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/wolf_cave_dusk.png'">
 				<<case "forest_shop">>
@@ -2331,7 +2345,7 @@
 						<img id="location" @src="'img/misc/' + _weather_display + '/alley_dusk.gif'">
 					<</if>>
 				<<case "drain">>
-					<img id="location" @src="'img/misc/' + _weather_display + '/deepunderground.png'">
+					<img id="location" @src="'img/misc/' + _weather_display + '/drain.gif'">
 				<<case "spa">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/spa_dusk.gif'">
 				<<case "prison">>
@@ -2340,6 +2354,8 @@
 					<img id="location" @src="'img/misc/' + _weather_display + '/promenade_beach_dusk.gif'">
 				<<case "factory">>
 					<img id="location" @src="'img/misc/' + _weather_display + '/factory_dusk.gif'">
+				<<case "pound">>
+					<img id="location" @src="'img/misc/' + _weather_display + '/town_dusk.png'">
 			<</switch>>
 		<</if>>
 	<<else>>
@@ -2402,6 +2418,14 @@
 <</if>>
 <</widget>>
 
+<<widget "dry_towel">>
+<<dry_full>>
+<<exposure>>
+<<if $exposed gte 1>>
+	<<towelup>>
+<</if>>
+<</widget>>
+
 <<widget "towelup">>
 <<if $exposed gte 1>>
 	<<if $upperwetstage gte 3>>
@@ -2763,6 +2787,49 @@ or _args[0] is "force">>
 <</if>>
 <</widget>>
 
+<<widget "wet_all">>
+<<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>>
+	<<set $upperwet to 200>>
+	<<set $upperwetstage to 3>>
+<</if>>
+<<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>>
+	<<set $lowerwet to 200>>
+	<<set $lowerwetstage to 3>>
+<</if>>
+<<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked")>>
+	<<set $underupperwet to 200>>
+	<<set $underupperwetstage to 3>>
+<</if>>
+<<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked")>>
+	<<set $underlowerwet to 200>>
+	<<set $underlowerwetstage to 3>>
+<</if>>
+<</widget>>
+
+<<widget "wet_upper">>
+<<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>>
+	<<set $upperwet to 200>>
+<</if>>
+<</widget>>
+
+<<widget "wet_lower">>
+<<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>>
+	<<set $lowerwet to 200>>
+<</if>>
+<</widget>>
+
+<<widget "wet_under_upper">>
+<<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked")>>
+	<<set $underupperwet to 200>>
+<</if>>
+<</widget>>
+
+<<widget "wet_under_lower">>
+<<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked")>>
+	<<set $underlowerwet to 200>>
+<</if>>
+<</widget>>
+
 <<widget "storecleanup">>
 
 <<set $action_unclad_over_outfit to 0>>
@@ -3060,7 +3127,7 @@ or _args[0] is "force">>
 <<widget "clampgoo">>
 	<<for _bodypart range setup.bodyliquid.bodyparts>>
 		<<if $player.bodyliquid[_bodypart]["goo"] gte 5 or $player.bodyliquid[_bodypart]["semen"] gte 5>>
-			<<set $player.bodyliquid[_bodypart]["goo"]   to Math.clamp($player.bodyliquid[_bodypart]["goo"],   0, 5)>>
+			<<set $player.bodyliquid[_bodypart]["goo"] to Math.clamp($player.bodyliquid[_bodypart]["goo"], 0, 5)>>
 			<<set $player.bodyliquid[_bodypart]["semen"] to Math.clamp($player.bodyliquid[_bodypart]["semen"], 0, 5)>>
 		<</if>>
 	<</for>>
@@ -3114,7 +3181,7 @@ or _args[0] is "force">>
 
 <<if $combat isnot 1>>
 	<<for _bodypart range setup.bodyliquid.bodyparts>>
-		<<if $player.bodyliquid[_bodypart]["goo"] gte 1>>  <<set $waterwash += 1>><<set $allure += 500>><<set $player.bodyliquid[_bodypart]["goo"] -= 1>><</if>>
+		<<if $player.bodyliquid[_bodypart]["goo"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<set $player.bodyliquid[_bodypart]["goo"] -= 1>><</if>>
 		<<if $player.bodyliquid[_bodypart]["semen"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<set $player.bodyliquid[_bodypart]["semen"] -= 1>><</if>>
 	<</for>>
 <</if>>
@@ -3277,21 +3344,15 @@ You negotiate a price of <<printmoney $tip>>,
 <</widget>>
 
 <<widget "vaginaraped">>
-	<<fallenTransform>> /*transformations.twee*/
-	<<if $player.virginity.temple is true>>
-
-		/*Old check, remove when not required*/
-		<<set $temple_virginity to 0>>
+	<<if $enemytype isnot "man" or $NPCList[0].fullDescription is "Ivory Wraith" or $templePromised isnot $NPCList[$vaginatarget].fullDescription>>
+		<<fallenTransform>> /*transformations.twee*/
 	<</if>>
 	<<set $vaginafucked to 1>>
 <</widget>>
 
 <<widget "penisraped">>
-	<<fallenTransform>> /*transformations.twee*/
-	<<if $player.virginity.temple is true>>
-
-		/*Old check, remove when not required*/
-		<<set $temple_virginity to 0>>
+	<<if $enemytype isnot "man" or $NPCList[0].fullDescription is "Ivory Wraith" or $templePromised isnot $NPCList[$penistarget].fullDescription>>
+		<<fallenTransform>> /*transformations.twee*/
 	<</if>>
 	<<set $penisfucked to 1>>
 <</widget>>
@@ -3387,10 +3448,10 @@ __Map__<br>
 						@title="$map.arrayList[_i] + (_canMoveTo ? ' (0:05)' : '')">
 
 					<rect @x="_boxLocations[_i].x"
-						  @y="_boxLocations[_i].y"
-						  height="34"
-						  width="30"
-						  @style="'stroke:cyan;fill-opacity:0;stroke-opacity:' + (_showMarker ? '0.6' : '0') + ';'">
+							@y="_boxLocations[_i].y"
+							height="34"
+							width="30"
+							@style="'stroke:cyan;fill-opacity:0;stroke-opacity:' + (_showMarker ? '0.6' : '0') + ';'">
 					</rect>
 				</a>
 			<</for>>
@@ -3431,7 +3492,7 @@ __Map__<br>
 <</widget>>
 
 <<widget "rentday">>
-	<<set $_text_output to  ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][$rentday-1]>>
+	<<set $_text_output to ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][$rentday-1]>>
 	<<print $_text_output>>
 <</widget>>
 
@@ -3594,11 +3655,11 @@ __Map__<br>
 		<</for>>
 
 		/* Set the details to show from the current state */
-		<<set _config.level = 		_config.states[_config.currentLevel].level>>
+		<<set _config.level =		_config.states[_config.currentLevel].level>>
 		<<set _config.description = _config.states[_config.currentLevel].description>>
-		<<set _config.color = 		_config.states[_config.currentLevel].color>>
+		<<set _config.color =		_config.states[_config.currentLevel].color>>
 
-		/* Determine the color of the bottom bar based on a few types, default is to match the level color */
+		/* Determine the colour of the bottom bar based on a few types, default is to match the level colour */
 		<<if _config.meterColorType eq 'next'>>
 			<<if _config.currentLevel lt _config.states.length - 1>>
 				<<set _config.meterColor = _config.states[_config.currentLevel + 1].color>>
@@ -3667,9 +3728,9 @@ __Map__<br>
 		<<if _config.showStars>>
 			<span class="characteristic-description grade-progress">Daily Progress</span>
 			<div class="progress-stars">
-				<img class="icon" @src="'img/ui/' + (_config.starLevel > 0 ? 'bronze_star' : 'empty_star') + '.png'" />
-				<img class="icon" @src="'img/ui/' + (_config.starLevel > 1 ? 'silver_star' : 'empty_star') + '.png'" />
-				<img class="icon" @src="'img/ui/' + (_config.starLevel > 2 ? 'gold_star'   : 'empty_star') + '.png'" />
+				<img class="icon" @src="'img/ui/' + (_config.starLevel > 0 ? 'bronze_star'	: 'empty_star') + '.png'" />
+				<img class="icon" @src="'img/ui/' + (_config.starLevel > 1 ? 'silver_star'	: 'empty_star') + '.png'" />
+				<img class="icon" @src="'img/ui/' + (_config.starLevel > 2 ? 'gold_star'	: 'empty_star') + '.png'" />
 			</div>
 		<</if>>
 		<div class="meter">
@@ -3739,10 +3800,10 @@ __Map__<br>
 		<</script>>
 
 		/* Set the details to show from the current state */
-		<<set _config.preText = 	_config.currentLevel.preText || _config.preText>>
+		<<set _config.preText =		_config.currentLevel.preText || _config.preText>>
 		<<set _config.description = _config.currentLevel.description>>
-		<<set _config.postText = 	_config.currentLevel.postText || _config.postText>>
-		<<set _config.color = 		_config.currentLevel.color>>
+		<<set _config.postText =	_config.currentLevel.postText || _config.postText>>
+		<<set _config.color =		_config.currentLevel.color>>
 	<</if>>
 
 
@@ -5112,7 +5173,7 @@ __Map__<br>
 	<!-- Currently only works for strap-ons. Will need a refactor when other toy scenes are written. -->
 	<<run window.handSextoysGiftToNPC(_args[0])>>
 	<<set _strapons to checkIfNPCHasCategorySextoy(_args[0],"strap-on")>>
-	<<if _strapons isnot 0>>
+	<<if _strapons.length > 0>>
 		<<for _i = 0; _i lt _strapons.length; _i++>>
 			<<if _strapons[_i].shape is undefined>>
 				<<set _strapons[_i].shape to "dildo">>
@@ -5121,7 +5182,7 @@ __Map__<br>
 				<<set _strapons[_i].prefixdescriptor to "">>
 			<</if>>
 			<<generateNewStrapon _strapons[_i].size _strapons[_i].colour _strapons[_i].shape>>
-			<<giveNNPCnewstrapon _args[0] _strapons[_i].size _strapons[_i].colour _strapons[_i].shape _strapons[_i].prefixdescriptor>>
+			<<giveNNPCnewstrapon _args[0]>>
 		<</for>>
 	<</if>>
-<</widget>>
\ No newline at end of file
+<</widget>>
diff --git a/game/flavour-text-generators/seasonal-events.twee b/game/flavour-text-generators/seasonal-events.twee
index 95683523149f80de8ed09f1c1d0926769ef43970..bbba6c67a5b322a19ef1402789f93ff2b729d73b 100644
--- a/game/flavour-text-generators/seasonal-events.twee
+++ b/game/flavour-text-generators/seasonal-events.twee
@@ -1,6 +1,6 @@
 :: Ambient Weather And Seasonal Event Widgets [widget]
 /* Bite-sized events based on the current season and weather. Made to be easily expandable, and using the new event pool system.
- * These are all treated as their own event passages, except for the lake, where they happen in addition to any other event. Other locations can be made to follow this behavior in the future.
+ * These are all treated as their own event passages, except for the lake, where they happen in addition to any other event. Other locations can be made to follow this behaviour in the future.
  * Exit passage depends on location. Town uses destinationeventend, forest uses the normal forest passage, etc. Called separately from the eventAmbient widget. Further control may be needed in the future, should any of these scenes expand into player choices.
  * Winter events and Snow events are not mutually exclusive. Rain, however, overrides other seasonal event pools. In the future, every season and weather combination could have a unique pool.
  * Future-proofed for snow outside of the Winter season.
@@ -441,12 +441,12 @@
 				<</addinlineevent>>
 				<<if $hour gte 21 or $hour lt 6>>
 					<<addinlineevent "autumn_anyalley_3" 0.33>>
-						Several large piles of leaves litter the alley. Raccoons run and play between the piles. <<if $science gte 500>>You wonder why there are raccoons here, they certainly aren't native.<</if>> <<stress -3>><<lstress>>
+						Several large piles of leaves litter the alley. Raccoons run and play between the piles. <<if currentSkillValue('science') gte 500>>You wonder why there are raccoons here, they certainly aren't native.<</if>> <<stress -3>><<lstress>>
 					<</addinlineevent>>
 				<</if>>
 			<<case "park">>
 				<<addinlineevent "autumn_park_1">>
-					You look out over the park and marvel at the various colors of autumn. <<stress -3>><<lstress>>
+					You look out over the park and marvel at the various colours of autumn. <<stress -3>><<lstress>>
 				<</addinlineevent>>
 				<<if $hour gte 6 and $hour lt 21>>
 					<<addinlineevent "autumn_park_2">>
@@ -536,7 +536,7 @@
 			<<case "alley">>
 				<<if $hour gte 6 and $hour lt 21>>
 					<<addinlineevent "summer_anyalley_1">>
-						Two teens with water guns race through the alley firing at each other. <<stress -3>><<lstress>>
+						Two students with water guns race through the alley firing at each other. <<stress -3>><<lstress>>
 					<</addinlineevent>>
 					<<addinlineevent "summer_anyalley_2">>
 						<<beastNEWinit 1 dog>>
diff --git a/game/overworld-forest/loc-asylum/events.twee b/game/overworld-forest/loc-asylum/events.twee
index c20c69f3b4da0166a70f87b7f5db8f0732b0602c..640da3cb34a7af0627ee2c13f2e52f7e5172ea61 100644
--- a/game/overworld-forest/loc-asylum/events.twee
+++ b/game/overworld-forest/loc-asylum/events.twee
@@ -101,13 +101,16 @@ Harper shakes <<his>> head. "I'm disappointed. You can go."
 	<<set $phase to 1>>
 	You press the button. The long-haired girl squirms. Lain on her back, you notice her ankles and wrists are bound.
 	Her wrists are somehow tied to the floor either side of her face while her ankles are tied together to a metal post.
-	She is wearing a two-piece swim suit.<br>
+	She is wearing a two-piece swim suit.
+	<br>
 	"That's right," Doctor Harper says. "Thank you. This is good for her. We have a device placed inside her vagina, another on her clitoris,
-	and two more on her nipples. These all aid in her treatment."<br>
+	and two more on her nipples. These all aid in her treatment."
+	<br>
 	You spot wires trailing across the floor and disappearing into her swimwear.
 	<br><br>
 
-	"Press the button any time I point at you," the doctor instructs.<br>
+	"Press the button any time I point at you," the doctor instructs.
+	<br>
 	Harper points at you.
 	<br><br>
 	<<link [[Press|Asylum Button Long Hair Press]]>><<awareness -1>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>>
@@ -116,15 +119,19 @@ Harper shakes <<his>> head. "I'm disappointed. You can go."
 	<br>
 <<elseif $phase is 1>>
 	<<set $phase to 2>>
-	You press the button. The girl squirms more this time, a noise escapes her lips. She pulls against the bonds.<br>
+	You press the button. The girl squirms more this time, a noise escapes her lips. She pulls against the bonds.
+	<br>
 	The doctor nods. "Good."
 	<br><br>
-	Harper's voice becomes lower, almost hypnotic as <<person1>><<he>> addresses the long-haired girl.<br>
+	Harper's voice becomes lower, almost hypnotic as <<person1>><<he>> addresses the long-haired girl.
+	<br>
 	"You were dancing for them on the beach," <<he>> says. "In swimwear. You enjoyed them watching you, you liked their attention, but it wasn't enough.
-	You wanted more."<br>
+	You wanted more."
+	<br>
 	Harper cuts away her swimwear, exposing first her breasts, then her pussy.
 	<br><br>
-	"They didn't remove your swimwear. You did. You stripped for them. It was thrilling to feel their eyes on your most private parts. Just like it is now."<br>
+	"They didn't remove your swimwear. You did. You stripped for them. It was thrilling to feel their eyes on your most private parts. Just like it is now."
+	<br>
 	Harper points at you.
 	<br><br>
 	<<link [[Press|Asylum Button Long Hair Press]]>><<awareness -2>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>>
@@ -137,7 +144,8 @@ Harper shakes <<his>> head. "I'm disappointed. You can go."
 	<br><br>
 	"You liked the hunger in their eyes," Harper says. "You wanted them to touch you. You needed it. In fact, you just kept on dancing UNTIL they touched you."
 	<br><br>
-	The girl weakly struggles. Harper slowly brushes <<his>> fingertips down her stomach, over her pubic hairs.<br>
+	The girl weakly struggles. Harper slowly brushes <<his>> fingertips down her stomach, over her pubic hairs.
+	<br>
 	"You started it. You escalated it. You made them do it, because deep down you wanted it."
 	<br><br>
 	Harper points at you.
@@ -174,12 +182,14 @@ Harper shakes <<his>> head. "I'm disappointed. You can go."
 	<br>
 <<else>>
 	You hold the button down. The girl writhes and twists, but resists orgasm.
-	Doctor Harper looks crestfallen.<br>
+	Doctor Harper looks crestfallen.
+	<br>
 	"Okay, stop."
 	<br><br>
 	You let go of the button. The girl's writhing subsides.
 	<br><br>
-	Doctor Harper writes on <<his>> clipboard, a small sad smile on <<his>> face.<br>
+	Doctor Harper writes on <<his>> clipboard, a small sad smile on <<his>> face.
+	<br>
 	"Thank you," <<he>> says. "You were helpful. Be well."
 	<br><br>
 	<<endevent>>
@@ -190,7 +200,8 @@ Harper shakes <<his>> head. "I'm disappointed. You can go."
 :: Asylum Button Long Hair Refuse
 
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
-You refuse to press the button.<br>
+You refuse to press the button.
+<br>
 "This is for her benefit,<<person1>> and yours," <<he>> says. "Press the button."
 <br><br>
 <<if $phase is 0>>
@@ -368,7 +379,7 @@ You kiss <<him>>, and make good use of your tongue. <<His>> eyes widen at first,
 	The doctor bears down on you, tracing <<his>> fingers along your arm. "I think it's time I observe your progress first-hand."
 	<br><br>
 
-	<<link [["Take " + $NPCList[0].pronouns.his + " hands"|Asylum Sit Kiss Sex]]>><<set $phase to 1>><<set $sexstart to 1>><</link>><<handholdingvirginitywarning>><<NPCvirginitywarning "Kylar" "handholding">>
+	<<link [["Take " + $NPCList[0].pronouns.his + " hands"|Asylum Sit Kiss Sex]]>><<set $phase to 1>><<set $sexstart to 1>><</link>><<handholdingvirginitywarning>>
 	<br>
 	<<link [[Stay still|Asylum Sit Kiss Sex]]>><<set $phase to 0>><<set $sexstart to 1>><</link>>
 	<br>
@@ -386,7 +397,7 @@ You kiss <<him>>, and make good use of your tongue. <<His>> eyes widen at first,
 
 			You shiver as <<he>> pulls <<his>> fingers out of you. "You've shown great improvement today." <<He>> leads you out of the office with a smile. "Be well."
 		<<case "m">>
-			<<He>> displaces your clothes, <span class="lewd">exposing your <<penis>></span>. The cool air provides mild relief from the heat in your body. <<He>> smiles and rubs <<his>> thumb against the very tip, causing you to shudder. <<He>> coats his glove in the leaking precum, then wraps <<his>> fingers around your shaft, stroking it in a steady up-and-down motion.
+			<<He>> displaces your clothes, <span class="lewd">exposing your <<penis>></span>. The cool air provides mild relief from the heat in your body. <<He>> smiles and rubs <<his>> thumb against the very tip, causing you to shudder. <<He>> coats <<his>> glove in the leaking precum, then wraps <<his>> fingers around your shaft, stroking it in a steady up-and-down motion.
 			<<arousal 10000>>
 			<<orgasm>>
 
@@ -433,7 +444,7 @@ You kiss <<him>>, and make good use of your tongue. <<His>> eyes widen at first,
 	<<neutral 1>>
 	<<maninit>>
 	<<if $phase is 1>>
-		You reach up and intertwine your fingers with <<his>>.
+		You reach up and intertwine your fingers with <<hers>>.
 		<<takeHandholdingVirginity "Harper">>
 	<</if>>
 <</if>>
@@ -753,7 +764,7 @@ This continues for a few minutes. Puffs of pink mist continue to emerge, along w
 	<br><br>
 	A faint red light begins to shine around you, <span class="red">revealing a<<if $wraith.seen gte 3>> familiar<</if>> pale face right above yours.</span> You try to scream, but something is already blocking your mouth.
 	<<if $wraith.seen gte 1>>
-		The <<person>> smiles. "<span class="wraith">We meet again, thief.</span>"
+		The <<person>> smiles. "<span class="wraith">We meet again, <<pcpetname "Wraith">>.</span>"
 	<<else>>
 		<span class="wraith">Thief. Give it back.</span>"
 	<</if>>
@@ -767,7 +778,7 @@ This continues for a few minutes. Puffs of pink mist continue to emerge, along w
 	Harper's voice is just barely audible. "Something's wrong with the machine! Get <<phim>> out of there!"
 	<br><br>
 	<<link [[Next|Asylum Machine Wraith]]>><<set $molestationstart to 1>><</link>>
-	<br>	
+	<br>
 <<else>>
 	<<arousal 10000>>
 	<<orgasm>>
diff --git a/game/overworld-forest/loc-asylum/main.twee b/game/overworld-forest/loc-asylum/main.twee
index 6765b947a3aa939a993f85bbc0557ab3c20b540e..72186a5ce18797b8ad4a73519c6e628f285d6d9d 100644
--- a/game/overworld-forest/loc-asylum/main.twee
+++ b/game/overworld-forest/loc-asylum/main.twee
@@ -231,28 +231,28 @@ Harper and security leave you alone in your room. The shutters remain.
 You snuggle under the covers.
 <br><br>
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Asylum Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Asylum Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Asylum Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Asylum Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
-<<link [[Sleep for 8 hours|Asylum Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Asylum Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Asylum Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Asylum Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Asylum Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Asylum Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Asylum Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Asylum Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Asylum Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Asylum Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Asylum Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Asylum Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Asylum Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Asylum Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hour|Asylum Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hour|Asylum Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Asylum Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Asylum Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 <<link [[Climb out of bed|Asylum Cell]]>><<loadTempHairStyle>><</link>>
 <br><br>
@@ -291,7 +291,7 @@ You snuggle under the covers.
 			A <<person>> rubs your back. "Feeling better now?" <<he>> says. "Me and my friend here work very hard protecting you crazies from yourselves. How about you give us a little something in return?" <<He>> gropes you.
 		<<else>>
 			A <<person>> shakes you awake. "Wakey wakey," <<he>> says. "Me and my friend here work very hard protecting you crazies from yourselves. How about you give us a little something in return?" <<He>> gropes you.
-		<</if>>		
+		<</if>>
 		<br><br>
 		<<link [[Next|Asylum Cell Rape]]>><<set $molestationstart to 1>><</link>>
 		<br>
@@ -314,7 +314,7 @@ You snuggle under the covers.
 		<<set $asylumsecondtreatment to 1>>
 		<<generate1>><<person1>>
 		<<if _wakingEffect is "dryheaving">>
-			A <<person>>  rubs your back. <<Hes>> a nurse.
+			A <<person>> rubs your back. <<Hes>> a nurse.
 			<br><br>
 		<<else>>
 			A <<person>> shakes you awake. <<Hes>> a nurse.
@@ -329,7 +329,7 @@ You snuggle under the covers.
 		<<set $asylumassessment to 1>>
 		<<generate1>><<person1>>
 		<<if _wakingEffect is "dryheaving">>
-			A <<person>>  rubs your back. <<Hes>> a nurse.
+			A <<person>> rubs your back. <<Hes>> a nurse.
 			<br><br>
 		<<else>>
 			A <<person>> shakes you awake. <<Hes>> a nurse.
@@ -528,7 +528,7 @@ Using the lock pick Eden gave you, you enter the breaker room, lock the door and
 :: Asylum Disable
 
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
-<<if random(1, 200) lte ($science + 100)>>
+<<if random(1, 200) lte (currentSkillValue('science') + 100)>>
 	<<set $edendistract to 2>>
 	You successfully disable power to the guard tower search lights. Hopefully that'll buy you some time to escape.
 	<br><br>
@@ -552,7 +552,7 @@ After wandering the asylum for a while, you find a wireless alarm mounted to the
 :: Asylum Disconnect
 
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
-<<if random(1, 200) lte ($science + 100)>>
+<<if random(1, 200) lte (currentSkillValue('science') + 100)>>
 	<<set $edenasylumdisarm to 2>>
 	You successfully disconnect the alarm system from its power source. Hopefully no one will be alerted to your escape.
 	<br><br>
@@ -582,7 +582,7 @@ You sneak to a nurse. "Excuse me," you say.
 		smirk. <<covered>> "Can I have some clothes please?"
 		<br><br>
 		"Nah, you're hot." <<He>> pulls out a phone. "I wanna watch you go and ask someone else."
-		<<fameexhibitionism 2 pic>>
+		<<fameexhibitionism 2 "pic">>
 	<<else>>
 		frown. <<covered>> "Can I have some clothes please?"
 		<br><br>
@@ -596,7 +596,7 @@ You sneak to a nurse. "Excuse me," you say.
 		<<He>> turns, and smiles with open lust when <<he>> sees you. <<covered>> "Can I have some clothes please?"
 		<br><br>
 		"Nah, you're hot." <<He>> pulls out a phone. "I wanna watch you go and ask someone else."
-		<<fameexhibitionism 2 pic>>
+		<<fameexhibitionism 2 "pic">>
 	<<else>>
 		<<He>> turns, and smiles with open lust when <<he>> sees you. <<covered>> "Can I have some clothes please?"
 		<br><br>
@@ -608,13 +608,13 @@ You sneak to a nurse. "Excuse me," you say.
 	<br><br>
 	"One moment," <<he>> says. <<He>> pulls out a phone and takes a quick photo of your <<genitals>>.
 	<<He>> nods at the screen, and then chucks a bundle of fabric at you. "Seems like a damn shame to cover that up."
-	<<unbind>><<upperwear 87>><<fameexhibitionism 2 pic>>
+	<<unbind>><<upperwear 87>><<fameexhibitionism 2 "pic">>
 <<elseif $player.breastsize gte 7>>
 	<<He>> turns, and smiles when <<he>> sees you. <<covered>> "Can I have some clothes please?"
 	<br><br>
 	"One moment," <<he>> says. <<He>> pulls out a phone and takes a quick photo of your <<breasts>>.
 	<<He>> nods at the screen, and then chucks a bundle of fabric at you. "Seems like a damn shame to cover those up."
-	<<unbind>><<upperwear 87>><<fameexhibitionism 2 pic>>
+	<<unbind>><<upperwear 87>><<fameexhibitionism 2 "pic">>
 <<elseif _towel gte 2>>
 	<<He>> turns, and seems completely unphased when <<he>> sees you. <<covered>> "Can I have some clothes please?"
 	<br><br>
@@ -667,13 +667,13 @@ You sneak to a nurse. "Excuse me," you say.
 <<else>>
 	<<if $leftarm is "bound" and $rightarm is "bound" and $worn.upper.name is "straightjacket">>
 		Despite the straightjacket, you persist in running around the asylum grounds.
-		<<if $danceskill + $athletics gte 1600>>
+		<<if currentSkillValue('danceskill') + currentSkillValue('athletics') gte 1600>>
 			With your agile and athletic movement, you make it an excellent training session.
 			<<athletics 2>><<physique 5>>
-		<<elseif $danceskill + $athletics gte 1100>>
+		<<elseif currentSkillValue('danceskill') + currentSkillValue('athletics') gte 1100>>
 			With your skillful movement, you can still get a decent training session.
 			<<athletics 2>><<physique 4>>
-		<<elseif $danceskill + $athletics gte 650>>
+		<<elseif currentSkillValue('danceskill') + currentSkillValue('athletics') gte 650>>
 			It's tricky but thanks to your reasonable agility and athleticism you can still get some kind of workout.
 			<<athletics 2>><<physique 2>>
 		<<else>>
@@ -814,14 +814,16 @@ You chat with the other patients.
 	<<asylumevents>>
 <<elseif $rng gte 90>>
 	There is a buzz of excitement in the room today. A popular patient has been cured and is being released. Patients crowd by the window
-	waving at a smiling <<person>>, as <<he>> stands with Dr Harper by the driveway.<br><br>
+	waving at a smiling <<person>>, as <<he>> stands with Dr Harper by the driveway.
+	<br><br>
 
 	Moments later, the gates open and a vehicle drives through. It circles round the driveway and stops by the grinning former-patient.
 	<<if $rng % 2>>
 		Oddly, the vehicle isn't a taxi or mini-bus. It looks more like an animal-hauler. The driver emerges to greet them.
 		<<if $fluid_forced_stat gte 100>>You recognise the driver from somewhere.<</if>>
 		With a final flurry of waves, the <<person>> is led into the back of the vehicle. A look of confusion finally crosses <<his>> face a moment before
-		<<he>> is hidden behind the closing door.<br>
+		<<he>> is hidden behind the closing door.
+		<br>
 		The driver bars and padlocks the door.
 		<<if $fluid_forced_stat gte 100>>
 			As the driver talks with Dr Harper, you suddenly remember <<him>> as one of Remy's farmhands.
@@ -833,32 +835,44 @@ You chat with the other patients.
 	<<else>>
 		The <<person>> climbs into the waiting taxi, and waves back through the window. The engine sounds rises and the car pulls away
 		taking the <<person>> back to the town.
-	<</if>><br><br>
-	"Be well," you hear Dr Harper call after the departing vehicle.<br>
+	<</if>>
+	<br><br>
+	"Be well," you hear Dr Harper call after the departing vehicle.
+	<br>
 	The watching crowd disperses.
 	<br><br>
 	<<endevent>>
 	<<asylumevents>>
-<<elseif $rng gte 85>><<generate2>><<generate3>><br>
-	"Be wary, friend!" a <<person>> fixes your eye. "Beware the door that's ajar!"<br>
-	"You what, mate?" a <<person2>><<person>> nearby turns to <<person1>><<him>>. "'ow can a door be a jar?"<br>
-	"How can..? It just is. They don't close it properly. Almost like they want the unwary to-"<br>
+<<elseif $rng gte 85>><<generate2>><<generate3>>
+<br>
+	"Be wary, friend!" a <<person>> fixes your eye. "Beware the door that's ajar!"
+	<br>
+	"You what, mate?" a <<person2>><<person>> nearby turns to <<person1>><<him>>. "You daft? 'ow can a door be a jar?"
+	<br>
+	"How can..? It just is. They don't close it properly. Almost like they want the unwary to-"
+	<br>
 	"Totally, man!" a <<person3>><<person>> nearby interrupts. "A door can totally be a jar. Like a giant jar. I mean, like, I never
 	thought of it that way, but the building is like, the cupboard. Full of jars. Which are doors. The door is the jar, literally.
 	And we're the... the jam trying to get out to the town, which is obviously the toast in this... this... ...analogy?
 	I mean, yeah - the door is the jar - I see it. I totally see it." <<He>> sounds quite sure of <<himself>>.
 
 	/*Disabled due to feedback
-	The <<person1>><<person>> squints between them, confused. Looking back at you restores <<his>> train of thought.<br>
+	The <<person1>><<person>> squints between them, confused. Looking back at you restores <<his>> train of thought.
+	<br>
 
 	"Aye, beware that door, friend. Beware its inviting amaranthine glow; beware its seductive fragrance; beware the mellifluous winds that whisper of freedom beyond.
-	For if you pass that door, you'll find that freedom merely a mirage - a phantasm in those endless, shifting plains without."<br>
-	The <<person2>><<person>> and the <<person3>><<person>> both gaze raptly at the <<person1>><<person>>.<br>
-	"Without what?"<br>
+	For if you pass that door, you'll find that freedom merely a mirage - a phantasm in those endless, shifting plains without."
+	<br>
+	The <<person2>><<person>> and the <<person3>><<person>> both gaze raptly at the <<person1>><<person>>.
+	<br>
+	"Without what?"
+	<br>
 	"There is no map," <<he>> goes on. "There is no 'right way' that you can learn. There is only Hunger. The endless, voracious hunger of those creatures.
-	Those creatures out there. And if you pass that way, <<if $player.gender_appearance is "f">>girl,<<else>>boy,<</if>> they will have you. This much I know."<br><br>
+	Those creatures out there. And if you pass that way, <<if $player.gender_appearance is "f">>girl,<<else>>boy,<</if>> they will have you. This much I know."
+	<br><br>
 
-	<<He>> looks between <<his>> listeners.<br>
+	<<He>> looks between <<his>> listeners.
+	<br>
 	"Most souls who pass that door, wake up back here, broken and abused. Missing a piece. A few never show up. Where do they go? Rumour would have it they escape.
 	Ha! No. No. Know what I think? I think they're Them now. I think, lost in the plains, they eventually surrender to that rapacious hunger and it transforms them.
 	Changes their very beings into those seeping, tentacles of lust. I think they wander the plains still, only now, they search for you."*/
@@ -867,31 +881,45 @@ You chat with the other patients.
 	<<asylumevents>>
 <<elseif $rng gte 80>>
 	"They pump gas into our rooms at night, I swear," a <<person>> says. "Makes us suggestible."
-	<<if $rng % 2>><br>"<<print either("Don't need gas to make YOU suggestible!","You're a fine one to talk about making gas!")>>" a voice mutters snidely.<br>
-	The <<person>> swears at them.<</if>>
+	<<if $rng % 2>>
+		<br>
+		"<<print either("Don't need gas to make YOU suggestible!","You're a fine one to talk about making gas!")>>" a voice mutters snidely.
+		<br>
+		The <<person>> swears at them.
+	<</if>>
 	<br><br>
 	<<endevent>>
 	<<asylumevents>>
 <<elseif $rng gte 75>>
 	<<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7>><<set $o_long_and_beautiful += 1>>
-		A thin girl with extremely long, messy, tangled hair stands by a window staring at the trees across the garden.<br>
+		A thin girl with extremely long, messy, tangled hair stands by a window staring at the trees across the garden.
+		<br>
 		You stand next to her and try to strike up a conversation, but she doesn't respond at all. With her face mostly hidden
-		in a mass of long, tangled hair, it's hard to tell if she even hears you.<br><br>
+		in a mass of long, tangled hair, it's hard to tell if she even hears you.
+		<br><br>
 
-		Through the window you notice a small plane passing low over the forest, or maybe the town beyond.<br>
+		Through the window you notice a small plane passing low over the forest, or maybe the town beyond.
+		<br>
 		When you glance beside you again, the long-haired girl has vanished.
 	<<else>>
-		A <<person>> stands by a window overlooking the garden and the forest beyond. <<He>> points at a plane.<br>
-		"So many planes fly over there," <<he>> says. "Every day."<br><br>
+		A <<person>> stands by a window overlooking the garden and the forest beyond. <<He>> points at a plane.
+		<br>
+		"So many planes fly over there," <<he>> says. "Every day."
+		<br><br>
 
-		Sure enough, out the window you notice a small plane passing quite low over the tree line.<br>
-		"What do you reckon? Is that going over the forest or the town?"<br>
-		<<if $science gte 400 and $maths gte 600>>
-			You take a couple of steps left and right; make a rough calculation in your head.<br>
+		Sure enough, out the window you notice a small plane passing quite low over the tree line.
+		<br>
+		"What do you reckon? Is that going over the forest or the town?"
+		<br>
+		<<if currentSkillValue('science') gte 400 and currentSkillValue('maths') gte 600>>
+			You take a couple of steps left and right; make a rough calculation in your head.
+			<br>
 			"Judging by the parallax, probably the town," you say.
 		<<else>>
-			You shrug.<br>
-		<</if>><br>
+			You shrug.
+			<br>
+		<</if>>
+		<br>
 
 	<</if>>
 	<br><br>
@@ -928,7 +956,8 @@ You chat with the other patients.
 	<<if $rng % 2>>
 		"Security is tight," a <<person>> says. "No way you're sneaking past them. Not without a distraction."
 	<<else>>
-		"Sometimes they put me in a straightjacket," a <<person>> says. "I'm so powerless. They can do whatever they want to me."<br>
+		"Sometimes they put me in a straightjacket," a <<person>> says. "I'm so powerless. They can do whatever they want to me."
+		<br>
 		<<He>> smiles.
 	<</if>>
 	<br><br>
@@ -970,25 +999,41 @@ You chat with the other patients.
 		"It's bad in here," a <<person>> says. "But it's worse out there."
 	<<else>>
 		<<generate2>><<generate3>>
-		A <<person1>><<person>>, a <<person2>><<person>> and a <<person3>><<person>> plot their escape.<br><br>
-		"How though?" the <<person>> asks. "How are you getting out?"<br>
+		A <<person1>><<person>>, a <<person2>><<person>> and a <<person3>><<person>> plot their escape.
+		<br><br>
+		"How though?" the <<person>> asks. "How are you getting out?"
+		<br>
 		The <<person1>><<person>> looks wildly around the room. "With that thing!" <<he>> points at
 		<<print either("the coffee vendor.","a mysterious machine.","the water fountain.","a heavy wooden desk.","a morbidly obese patient.")>>
-		"I'm gonna put that through the fuckin' window, that's how!"<br>
-		"You're going to try to pick that up and throw it through the window?"<br>
-		"Fuckin' right, I am!" the <<person>> says.<br>
-		"By yourself?" the <<person2>><<person>> asks. "That?"<br>
-		"Didn't I just say I would?"<br>
-		"No way."<br>
-		"Bollocks," the <<person3>><<person>> says. "I'll bet an oral fuck you can't do it!"<br>
-		"What?"<br>
-		"Yeah!"<br>
-		"What?"<br>
+		"I'm gonna put that through the fuckin' window, that's how!"
+		<br>
+		"You're going to try to pick that up and throw it through the window?"
+		<br>
+		"Fuckin' right, I am!" the <<person>> says.
+		<br>
+		"By yourself?" the <<person2>><<person>> asks. "That?"
+		<br>
+		"Didn't I just say I would?"
+		<br>
+		"No way."
+		<br>
+		"Bollocks," the <<person3>><<person>> says. "I'll bet an oral fuck you can't do it!"
+		<br>
+		"What?"
+		<br>
+		"Yeah!"
+		<br>
+		"What?"
+		<br>
 		"Simple. If you do it I'll <<person1>><<if $NPCList[0].penis isnot "none">>suck you off<<else>>eat you out<</if>> right here," the <<person3>><<person>> says.
-		"No questions. If not, you do the <<if $NPCList[0].pronoun is $NPCList[2].pronoun>>same<<else>>equivalent<</if>> for me."<br>
-		"Okay," the <<person1>><<person>> says. "You're on."<br>
-		"Me too," the <<person2>><<person>> says. "I want in on this!"<br>
-		"More the fuckin' merrier," the <<person1>><<person>> says. "I hope you bitches are ready for a big hairy <<if $NPCList[0].penis isnot "none">>cock<<else>>cunt<</if>> in your face!"<br><br>
+		"No questions. If not, you do the <<if $NPCList[0].pronoun is $NPCList[2].pronoun>>same<<else>>equivalent<</if>> for me."
+		<br>
+		"Okay," the <<person1>><<person>> says. "You're on."
+		<br>
+		"Me too," the <<person2>><<person>> says. "I want in on this!"
+		<br>
+		"More the fuckin' merrier," the <<person1>><<person>> says. "I hope you bitches are ready for a big hairy <<if $NPCList[0].penis isnot "none">>cock<<else>>cunt<</if>> in your face!"
+		<br><br>
 
 		A couple of nearby guards watch on with amusement.
 	<</if>>
@@ -1007,32 +1052,41 @@ You chat with the other patients.
 	<br><br>
 	<<endevent>>
 	<<asylumevents>>
-<<elseif $o_long_and_beautiful gte 8 and $o_long_and_beautiful lte 9 and $hy_sibling and $hy_parent>> /* aprox 1/3 chance once right stage is reached. */
+<<elseif $o_long_and_beautiful gte 8 and $o_long_and_beautiful lte 9 and $hy_sibling and $hy_parent>> /* approx. 1/3 chance once right stage is reached. */
 	<<generate2>><<set $NPCList[0] to clone($hy_sibling)>><<set $NPCList[1] to clone($hy_parent)>><<person1>>
 	Everyone seems phased out today. No one is talking. As you slump into a chair trying to figure out what to do next,
 	a voice behind you starts singing an upbeat pop song from a year or so ago. <span class="teal">It sounds familiar.</span>
 	You turn around to find a <<person>> smiling at you.
 	<br><br>
 	"I thought that was you," <<he>> says.
-	<<if $hairlength gte 500>>"I knew I recognised that long, beautiful hair."
-	<<else>>"Your hair was so long and beautiful. Why did you cut it?"
-	<</if>><br>
+	<<if $hairlength gte 500>>
+		"I knew I recognised that long, beautiful hair."
+	<<else>>
+		"Your hair was so long and beautiful. Why did you cut it?"
+	<</if>>
+	<br>
 	After a moment, you place <<him>> as the shy <<person>> who braided your hair on Domus Street a while ago.
-	You hear raised voices from somewhere nearby.<br>
+	You hear raised voices from somewhere nearby.
+	<br>
 	"So this is where you've been hiding away?" <<he>> says.
 	<<if $chef_state gte 7 and ($chef_rework is undefined or $chef_rework is 0)>>
 		<<if $NPCName[$NPCNameList.indexOf("Sam")].gender>>"That man,<<else>>"That lady,<</if>>
 		Sam, the owner at Ocean Breeze, was offering the orphans money to find you.
 		The customers are furious about the lack of cream buns.
-	<<elseif $orphan_hope gte 25>>"Those orphans were looking for you. Making search parties along the beach.
-	<<elseif $orphan_hope lte -10>>"I don't blame you. The orphans seem miserable these days.
+	<<elseif $orphan_hope gte 25>>
+		"Those orphans were looking for you. Making search parties along the beach.
+	<<elseif $orphan_hope lte -10>>
+		"I don't blame you. The orphans seem miserable these days.
 	<<elseif $NPCName[$NPCNameList.indexOf("Kylar")].love gte 30 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active">>
 		"That shy <<nnpc_gendery "Kylar">> you hang out with was skulking around the street looking for you.
-	<<elseif $fameexhibitionism gte 500>>"I think the town's pervs have missed you. Some creep in a car offered me money to strip!
-	<<else>>I thought I hadn't seen you around lately.
+	<<elseif $fame.exhibitionism gte 500>>
+		"I think the town's pervs have missed you. Some creep in a car offered me money to strip!
+	<<else>>
+		I thought I hadn't seen you around lately.
 	<</if>>
 	So have you met my sister? She's here. Very slim, long hair. I told you about her. Attacked at that beach party.
-	She's been here forever now. Her long hair used to be so beautiful but now no one-"<br>
+	She's been here forever now. Her long hair used to be so beautiful but now no one-"
+	<br>
 	The voices behind raise sharply. A <<person2>><<person>> is arguing with one of the orderlies.
 	<br><br>
 	"That's <<if $NPCList[0].pronoun is "m">>Dad. He's<<else>>Mum. She's<</if>> telling them to take better care of my sister.
@@ -1042,11 +1096,12 @@ You chat with the other patients.
 	<br><br>
 	"We're leaving," a hand grabs the <<person1>><<persons>> shoulder. "These useless-" The <<person2>><<person>> trails off as <<he>> looks at you.
 	"You? I remember you. With the long hair. You came knocking on our door looking for work. Helped out that time. So you're in here now?!
-	I hope you're okay. And I hope these... people are treating you well. We have to leave now. Good day."<br>
+	I hope you're okay. And I hope these... people are treating you well. We have to leave now. Good day."
+	<br>
 	<<He>> drags the waving <<person1>><<person>> toward the exit.
 	<br><br>
 	As you watch them leave, you notice a slim girl with long, messy hair watching from the door of the one of the therapy rooms.
-	With a loud buzz, the <<person1>><<person>> and the <<person2>><<person>> are let out through a security door.
+	With a loud buzz, the <<fullGroup>> are let out through a security door.
 	When you look back to the therapy room, the long-haired girl is nowhere to be seen.
 	<br><br>
 	<span class="teal">Is that the sister?</span><<set $o_long_and_beautiful to 10>>
@@ -1057,7 +1112,8 @@ You chat with the other patients.
 	<<if $rng % 2>>
 		"Stay out of the empty parts of the building," a <<person>> says. "Someone went there once, and vanished."
 	<<else>>
-		A <<person>> looks you up and down.<br>
+		A <<person>> looks you up and down.
+		<br>
 		"If anyone attacks you, just let me know," <<he>> smiles. "I like to watch."
 	<</if>>
 	<br><br>
@@ -1066,9 +1122,11 @@ You chat with the other patients.
 <<elseif $rng gte 25>>
 	<<if $chef_state gte 3>>
 		<<if $chef_state gte 7 and $rng gte 27>>
-			A <<person>> stares at you open mouthed.<br>
+			A <<person>> stares at you open mouthed.
+			<br>
 			"You're Sam's new chef from Ocean Breeze, aren't you?" <<he>> asks. "Oh my god, I can't believe you're here.
-			I miss those buns! I don't suppose you could make some in here? Could you?!" <<lstress>><<stress -2>><<asylumstatus 2>><<gcool>>
+			I miss those buns! I don't suppose you could make some in here? Could you?!"
+			<<lstress>><<stress -2>><<asylumstatus 2>><<gcool>>
 		<<else>>
 			"It's funny the things you miss in a place like this," a <<person>> tells you. "I miss the Ocean Breeze Cafe over on Cliff Street.
 			Sam had just hired some new chef who was making the most incredible cream buns."
@@ -1086,11 +1144,15 @@ You chat with the other patients.
 	<<else>>
 		"I know everyone says this here," a <<person>> says. "But I'm actually not crazy. I'm
 		<<print either("a Detective","a Detective Inspector","a Chief Inspector", "an Officer")>>
-		with the police. Back in the Met I was a big deal. Cracked a few big cases. Newspapers and everything. Was transferred here to clean things up."<br>
-		<<He>> laughs bitterly.<br>
+		with the police. Back in the Met I was a big deal. Cracked a few big cases. Newspapers and everything. Was transferred here to clean things up."
+		<br>
+		<<He>> laughs bitterly.
+		<br>
 		"Can you believe that? It's true. We heard rumours about this place. Nasty things. So I was sent here to be the big shining
-		white knight, come to put away the bad guys. Instead they put away me. I have 'PTSD,' apparently."<br>
-		<<He>> falls silent.<br><br>
+		white knight, come to put away the bad guys. Instead they put away me. I have 'PTSD,' apparently."
+		<br>
+		<<He>> falls silent.
+		<br><br>
 
 		"Hey!" <<he>> says as you move to leave. "Do me a favour. If you get back out there: never trust the police in this town. There are some good apples,
 		but most are in with the criminals - by the time you know for sure it'll be too late. Like it was for me. Some of the doctors are in on it too.
@@ -1102,8 +1164,11 @@ You chat with the other patients.
 <<elseif $rng gte 15>>
 	<<if $rng % 2>>
 		"The doctor never calls on me anymore," a <<person>> grumbles. "I haven't had a session in weeks.
-		<<if $beauty gte ($beautymax / 3) * 2>>I'll never get better because the doctors are always busy with pretty little things like you." <<gstress>><<stress 1>>
-		<<else>>We should complain! The doctors should help all of us, not just those attractive ones."
+		<<if $beauty gte ($beautymax / 3) * 2>>
+			I'll never get better because the doctors are always busy with pretty little things like you."
+			<<gstress>><<stress 1>>
+		<<else>>
+			We should complain! The doctors should help all of us, not just those attractive ones."
 		<</if>>
 	<<else>>
 		"That young doctor smelled like cow manure the other afternoon," a <<person>> whispers. "Does <<nnpc_he "Harper">> live on a farm or something!?"
@@ -1115,36 +1180,46 @@ You chat with the other patients.
 	<<if $rng % 2>>/*11 13*/
 		"The doctor makes me do such lewd things," a <<person>> says. "I used to hate it, but now I can't wait for the next treatment."
 	<<else>>
-		Everyone is busy with their own activities right now.<br><br>
+		Everyone is busy with their own activities right now.
+		<br><br>
 		As you stand by a window, Dr Harper leads a naked <<personsimple>> into the recreation area.
 
 		Completely nude,
 		<<if $rng gte 14>>/*14*/
 			the <<person>> seems to believe <<he>> is a Doctor. Methodically, Harper leads <<him>> between different patients in the room asking
 			for a medical opinion. The <<person>> refers to an imaginary clipboard as <<he>> pronounces
-			<<if $science gte 500>>earnest but meaningless psuedo-medical 'diagnoses' for these patients.
-			<<else>>a medical diagnosis for each patient.
-			<</if>><br>
-			Whatever <<he>> says, Harper nods gravely and says, "I see. Thank you, Doctor." And leads <<him>> to another patient.<br><br>
+			<<if currentSkillValue('science') gte 500>>
+				earnest but meaningless pseudo-medical 'diagnoses' for these patients.
+			<<else>>
+				a medical diagnosis for each patient.
+			<</if>>
+			<br>
+			Whatever <<he>> says, Harper nods gravely and says, "I see. Thank you, Doctor." And leads <<him>> to another patient.
+			<br><br>
 
 			After the seventh or eighth patient, they leave together.
 		<<else>>/*10 12*/
 			except for a collar connected a lead in Harper's hand, the <<person>> crawls on <<his>> hands and knees, seemingly
 			believing <<he>> is a dog. As Harper leads <<him>> through the room <<he>> tries to crawl under tables and sniff patients'
-			legs.<br><br>
+			legs.
+			<br><br>
 
 			In the middle of the room, Harper unclips the lead from the <<persons>> collar, allowing <<him>> to roam while Harper stops
 			to talk with one of the orderlies. As Harper chats, the <<person>> crawls between patients, getting them to stroke <<his>> head,
-			sniffing their groins, or rolling over so they can rub <<his>> tummy.<br>
+			sniffing their groins, or rolling over so they can rub <<his>> tummy.
+			<br>
 
 			When
 			<<if $NPCList[0].penis isnot "none">> <<he>> suddenly raises <<his>> leg to pee against
 			<<else>> <<he>> suddenly squats to pee by
 			<</if>>
-			a table, Harper lunges across and grabs <<his>> collar. "That's enough now."<br>
+			a table, Harper lunges across and grabs <<his>> collar. "That's enough now."
+			<br>
 			Harper quickly leads <<him>> from the room.
-		<</if>><br><br>
-		Many watch with amusement. Some with lust. A few with embarrassment.<br>
+		<</if>>
+		<br><br>
+		Many watch with amusement. Some with lust. A few with embarrassment.
+		<br>
 		Absolutely no one seems surprised.
 	<</if>>
 	<br><br>
@@ -1153,11 +1228,13 @@ You chat with the other patients.
 <<elseif $rng gte 5>>
 	<<if $rng % 2>>
 		"That Harper isn't a Doctor," a <<person>> mutters. "Not really. When I first came here Harper was a patient like the rest of us.
-		But now suddenly Harper's our Doctor. THEY all play along, and everyone who might remember has conveniently forgotten. Or disappeared."<br>
+		But now suddenly Harper's our Doctor. THEY all play along, and everyone who might remember has conveniently forgotten. Or disappeared."
+		<br>
 		<<He>> looks sharply around.
 	<<else>>
 		A <<person>> is smiling at you. As you sit near <<him>> you notice one of <<his>> hands is under <<his>> clothes, rhythmically
-		<<if $NPCList[0].penis isnot "none">>rubbing <<his>> dick.<<else>>rubbing <<his>> pussy.<</if>><br><br>
+		<<if $NPCList[0].penis isnot "none">>rubbing <<his>> dick.<<else>>rubbing <<his>> pussy.<</if>>
+		<br><br>
 
 		"Stay right there," <<he>> breathes.
 		<<if $beauty gte ($beautymax / 3) * 2 and $rng % 3>>"Looking at you is helping a lot."
@@ -1319,8 +1396,10 @@ You sit down and enjoy breakfast with the other patients.
 <<if $leftarm is "bound" and $rightarm is "bound">>
 	Your arms are bound, so
 	<<if $asylumstatus gte 66>>
-		a nearby patient helps you to eat.<br>
-		"We've got to look out for each other in here."<br>
+		a nearby patient helps you to eat.
+		<br>
+		"We've got to look out for each other in here."
+		<br>
 	<<elseif $asylumstatus gte 33>>
 		you find yourself pressing your face against your plate.
 	<<else>>
@@ -1345,7 +1424,8 @@ The food is good, and leaves you feeling warm and happy. It's not just you. The
 	The nearest patients begrudgingly talk with you.
 <<else>>
 	However, anything you say is met with stony silence.
-<</if>><br>
+<</if>>
+<br>
 <<asylumevents>>
 
 :: Asylum Staff
@@ -1400,8 +1480,8 @@ You open the door and peek through.
 :: Asylum Cameras
 
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
-<<if random(1, 1000) lte ($science + 100)>>
-	<<if $science gte 400>>
+<<if random(1, 1000) lte (currentSkillValue('science') + 100)>>
+	<<if currentSkillValue('science') gte 400>>
 		You try to work out how to operate the machine. There's a logic to it, and through trial and error you discover how to turn up the aphrodisiac. Without warning, an alarm blares. The screen now reads "<span class="red">WARNING Aphrodisiac ministration active: 2000%</span>" You hear shouting.
 		<br><br>
 	<<else>>
@@ -1524,36 +1604,55 @@ You strip slowly, just fast enough to keep the orderlies at bay. By the time you
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
 <<generate2>><<generate3>>
 <<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7 and $rng % 3 == 0>><<set $o_long_and_beautiful += 1>>
-	As you strip, two orderlies, a <<person2>><<person>> and a <<person3>><<person>> march toward a slender girl with long, messy, matted hair sat near you.<br>
-	"Strip," the <<person>> barks. "Now."<br>
+	As you strip, two orderlies, a <<person2>><<person>> and a <<person3>><<person>> march toward a slender girl with long, messy, matted hair sat near you.
+	<br>
+	"Strip," the <<person>> barks. "Now."
+	<br>
 	She doesn't move. The <<person2>><<person>> grabs her shoulder and yanks at her top, at which the girl abruptly screeches and claws at the <<persons>> face.
 	The <<person3>><<person>> quickly grabs the girl's hair, firmly yanks back her head and drags her back to the floor. The long-haired girl goes down hard,
-	but then flails frantically on the ground, screeching and clawing in every direction as they struggle to pin her down.<br>
-	You glance at Doctor Harper who is looking anywhere but here right now.<br>
+	but then flails frantically on the ground, screeching and clawing in every direction as they struggle to pin her down.
+	<br>
+	You glance at Doctor Harper who is looking anywhere but here right now.
+	<br>
 	With the girl pinned, the orderlies start to remove her clothes. Just as abruptly the girl falls silent. Looking down at her, her body has gone limp,
-	tears stream from her eyes as they strip her.<br>
-	Dr Harper is still studiously looking elsewhere.<br>
-	"Why do you make us do this every time," the <<person2>><<person>> spits as <<he>> removes the last of the girl's underwear. "You think we get off on this?"<br>
-	"And wash your damn hair," the <<person3>><<person>> adds. They shake their heads.<br>
-	The girl lies completely nude and completely unmoving, tears streaming from empty, vacant eyes.<br><br>
+	tears stream from her eyes as they strip her.
+	<br>
+	Dr Harper is still studiously looking elsewhere.
+	<br>
+	"Why do you make us do this every time," the <<person2>><<person>> spits as <<he>> removes the last of the girl's underwear. "You think we get off on this?"
+	<br>
+	"And wash your damn hair," the <<person3>><<person>> adds. They shake their heads.
+	<br>
+	The girl lies completely nude and completely unmoving, tears streaming from empty, vacant eyes.
+	<br><br>
 
-	"What are you looking at?" the <<person2>><<person>> glares at you. "Do YOU need our help as well?"<br>
+	"What are you looking at?" the <<person2>><<person>> glares at you. "Do YOU need our help as well?"
+	<br>
 	<<if $submissive gte 1150>>
-		"Sorry," you say, quickly stripping. You run to Harper. "Doctor, is- is it okay if I stay to help that girl. I- I think I know her."<br>
+		"Sorry," you say, quickly stripping. You run to Harper. "Doctor, is- is it okay if I stay to help that girl. I- I think I know her."
+		<br>
 		Harper looks confused at you for a moment. "Yes. Yes, okay. Just make sure you don't miss your wash. Hygiene is important."
 	<<elseif $submissive lte 850>>
 		"DOCTOR Harper," you shout. Harper turns. "I think your two geniuses here
-		<<if $science gte 600>>can't recognise a post-traumatic trigger reaction.
-		<<else>>are just making things worse.
-		<</if>>Can I stay here and look after my friend?"<br>
+		<<if currentSkillValue('science') gte 600>>
+			can't recognise a post-traumatic trigger reaction.
+		<<else>>
+			are just making things worse.
+		<</if>>
+		Can I stay here and look after my friend?"
+		<br>
 		Harper looks confused at you for a moment. "Yes. Yes, okay. Just make sure neither of you miss your wash. Hygiene is important."
 	<<else>>
-		You quickly finish stripping and jog across to Harper.<br>
+		You quickly finish stripping and jog across to Harper.
+		<br>
 		"Doctor, please. Look at that girl.
-		<<if $science gte 600>>That looks like a post-traumatic trigger reaction and <</if>>I think those two are just making things worse.
-		Is it okay if I stay back to help her. I- I think I kind of know her."<br>
+		<<if currentSkillValue('science') gte 600>>That looks like a post-traumatic trigger reaction and <</if>>I think those two are just making things worse.
+		Is it okay if I stay back to help her. I- I think I kind of know her."
+		<br>
 		Harper looks curious for a moment. "Yes. Yes, okay. Just make sure you don't miss your wash. Hygiene is important."
-	<</if>><br>Harper signals for the orderlies to leave you alone.
+	<</if>>
+	<br>
+	Harper signals for the orderlies to leave you alone.
 	<<exhibitionism2>>
 	<<endevent>>
 	<<link [[Next|Asylum Shower Wash Hair]]>><</link>>
@@ -1572,17 +1671,25 @@ You strip slowly, just fast enough to keep the orderlies at bay. By the time you
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
 <<pass 25>>
 Completely naked, you sit for a time with the slim, long haired girl. You don't touch her, you just keep quietly talking to her.
-<<if $english gte 500>>After a time, you notice her looking at you. Your eloquence seems to be getting through.<<if $o_long_and_beautiful lt 9>><<set $o_long_and_beautiful += 1>><</if>>
-<<else>>After a time, she seems to come round.
-<</if>><br><br>
-
-Finally, she whispers: "Okay."
-Together you head to the shower and wash. It is just you two, everyone else finished some time ago. The long-haired girl
-<<if $o_long_and_beautiful gte 6>>talks to you a little about her life in the asylum as she washes.
-<<elseif $o_long_and_beautiful gte 4>>washes properly. A few times you think she might be smiling at you.
-<<else>>no longer seems to notice you as she quickly washes.
+<<if currentSkillValue('english') gte 500>>
+	After a time, you notice her looking at you. Your eloquence seems to be getting through.
+	<<if $o_long_and_beautiful lt 9>>
+		<<set $o_long_and_beautiful += 1>>
+	<</if>>
+<<else>>
+	After a time, she seems to come round.
+<</if>>
+<br><br>
+Finally, she whispers: "Okay." Together you head to the shower and wash. It is just you two, everyone else finished some time ago. The long-haired girl
+<<if $o_long_and_beautiful gte 6>>
+	talks to you a little about her life in the asylum as she washes.
+<<elseif $o_long_and_beautiful gte 4>>
+	washes properly. A few times you think she might be smiling at you.
+<<else>>
+	no longer seems to notice you as she quickly washes.
 <</if>>
-You head back to your clothes, dry yourself and get dressed.<br><br>
+You head back to your clothes, dry yourself and get dressed.
+<br><br>
 <<link [[Next|Asylum]]>><<clotheson>><</link>>
 <br>
 
@@ -1688,7 +1795,7 @@ You emerge from the wood far from town, but the road curves north through moor a
 :: Asylum Return
 
 <<set $outside to 0>><<set $location to "home">><<effects>>
-<<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $robinmissing isnot 1>>
+<<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $robinmissing is 0>>
 	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 80>>
 		You enter the orphanage and head to your room. You don't meet anyone. There's a small cake sat on the windowsill with a note attached.
 		<br><br>
@@ -1754,7 +1861,6 @@ You pull the <<person1>><<persons>> arm away from the <<person2>><<person>>. The
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
 You smile back at the <<person>>. <<He>> walks over and you have a pleasant chat.
 <<promiscuity1>>
-<br><br>
 <<link [[Say goodbye|Asylum]]>><<endevent>><</link>>
 <br>
 <<if $promiscuity gte 15>>
@@ -1772,7 +1878,6 @@ You smile back at the <<person>>. <<He>> walks over and you have a pleasant chat
 <br><br>
 You lean closer to the <<person>>. "There are a lot of quiet places here," you whisper. "Who knows what one could get up to."
 <<promiscuity2>>
-<br><br>
 <<if $seductionrating gte $seductionrequired>>
 	<<He>> glances around, and takes you by the hand. <<He>> leads you to an empty room, then turns and embraces you.
 	<br><br>
@@ -2006,7 +2111,8 @@ Each patient is given a bed of soil to work as they please. Many are untended, b
 	<<link [[Search for seeds (0:30)|Asylum Garden Seeds]]>><<set $plants_known.push("poppy")>><<pass 30>><</link>>
 	<br>
 <<elseif $rng % 4 == 0 and $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7>>/*1 in 4 chance if in right stage*/
-	<<if $o_long_and_beautiful lt 9>><<set $o_long_and_beautiful += 1>><</if>><br>
+	<<if $o_long_and_beautiful lt 9>><<set $o_long_and_beautiful += 1>><</if>>
+	<br>
 	A girl with long, messy, matted hair seems to be watching from a plot nearby.
 	<<if currentSkillValue('tending') gte 600>>She might be impressed by your tending skills. It's hard to tell.<<if $o_long_and_beautiful lt 9>><<set $o_long_and_beautiful += 1>><</if>><</if>>
 <</if>>
@@ -2033,7 +2139,8 @@ Much of grounds are untended, with wild poppies growing from the exterior fence
 :: Asylum Fake Treatment Accept
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
 <<set $phase to 0>>
-You agree to go with them. The pair lead you to a door marked 'staff only,' where more orderlies are waiting.<br>
+You agree to go with them. The pair lead you to a door marked 'staff only,' where more orderlies are waiting.
+<br>
 They open the door, leading you into a bright but empty cell. A large mirror covers one wall.
 <br><br>
 <<link [[Next|Asylum Fake Treatment]]>><</link>>
@@ -2063,7 +2170,8 @@ You refuse to go with them, and start to walk away.
 			As you try to move with the crowd, another patient trips you and leaves you sprawled on the floor.
 		<</if>>
 		The <<person2>><<person>> and the <<person1>><<person>> grab you and together lead you to a door marked 'staff only'
-		where more orderlies wait.<br>
+		where more orderlies wait.
+		<br>
 		They open the door, leading you into a bright but empty cell. A large mirror covers one wall.
 		<br><br>
 		<<link [[Next|Asylum Fake Treatment]]>><</link>>
@@ -2074,7 +2182,8 @@ You refuse to go with them, and start to walk away.
 	The <<person>> is grappling you into an armlock, when, <span class="green">with a yell, <<he>> is lifted into the air and hurled across the room.</span>
 	You see the <<person1>><<person>> also backing away as a number of patients gather around you.
 	<br>
-	After a moment, the <<person>> scowls at you and walks away. <<suspicion 2>><<gsuspicion>><br><br>
+	After a moment, the <<person>> scowls at you and walks away. <<suspicion 2>><<gsuspicion>>
+	<br><br>
 	The other patients nod, smile and pat your on the shoulder as they go back to what they were doing.
 	<br><br>
 	<<link [[Next|Asylum]]>><</link>>
@@ -2082,7 +2191,8 @@ You refuse to go with them, and start to walk away.
 <<else>>
 	<span class="red">The <<person2>><<person>> grabs you and tackles you to the floor.</span>
 	Before you can recover <<he>> has you painfully armlocked, and together they lead you to a door marked 'staff only'
-	where more orderlies are waiting.<<gpain>><<pain 2>><br>
+	where more orderlies are waiting.<<gpain>><<pain 2>>
+	<br>
 	They open the door, leading you into a bright but empty cell. A large mirror covers one wall.
 	<br><br>
 	<<link [[Next|Asylum Fake Treatment]]>><</link>>
@@ -2096,7 +2206,8 @@ You refuse to go with them, and start to walk away.
 "Doctor Harper's behind that one-way mirror," the <<person1>><<person>> says, pointing at the mirror.
 "Observing and taking complete notes of everything that happens here. Doctor Harper stressed that this
 is an important part of your assessment so you need to be on your best behaviour.
-<<if $phase is 1>>Especially after the way you behaved just now.<</if>> Understood?"<br>
+<<if $phase is 1>>Especially after the way you behaved just now.<</if>> Understood?"
+<br>
 
 <<if $submissive gte 1150>>
 	"Yes, <<sir>>," you say. "I understand."
@@ -2130,7 +2241,8 @@ is an important part of your assessment so you need to be on your best behaviour
 	in a few moments, they will be led into this room and will drink from you. Doctor Harper says it's very important for you to relax
 	and think about how you are helping to nourish and sustain others. This hood will hide your face to protect your dignity."
 	<br><br>
-	The hood is placed over your head, plunging you into darkness.<br>
+	The hood is placed over your head, plunging you into darkness.
+	<br>
 	Almost immediately, lips clamp around your <<nipples>>.
 	<br><br>
 	<<link [[Next|Asylum Fake Treatment Milked]]>><<set $ft_count to 8>><</link>>
@@ -2153,9 +2265,10 @@ is an important part of your assessment so you need to be on your best behaviour
 		<</if>>
 		<<underlowerstrip>>removes your _undies, and
 	<</if>>
-	leads you in front of the mirror. A chair is placed behind you.<br>
+	leads you in front of the mirror. A chair is placed behind you.
+	<br>
 	"Have a seat," the <<person1>><<person>> says as hands pull you down. The <<person2>><<person>> attaches your straightjacket to the chair
-	as the <<person1>><<person>> ties your calves and ankles to the chairlegs, forcing your knees apart.
+	as the <<person1>><<person>> ties your calves and ankles to the chair legs, forcing your knees apart.
 	<br><br>
 	<<generate3>><<generate4>><<generate5>>
 	<<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7>><<set $o_long_and_beautiful += 1>> /*Modifies person 4 enough */
@@ -2166,8 +2279,10 @@ is an important part of your assessment so you need to be on your best behaviour
 	a <<person5>><<person>> is set up similarly beside <<person4>><<him>>.
 	<br><br>
 	<<person1>>"This is a trust exercise. Despite your obvious vulnerability, you need to learn that the world doesn't want to hurt you.
-	Mostly it just wants to make you feel good. All of you believe you are victims. Instead you need to learn to accept approaches as... opportunties."<br>
-	The <<person4>><<person>> next to you struggles against <<his>> bindings.<br>
+	Mostly it just wants to make you feel good. All of you believe you are victims. Instead you need to learn to accept approaches as... opportunities."
+	<br>
+	The <<person4>><<person>> next to you struggles against <<his>> bindings.
+	<br>
 
 	A <<person3>><<person>> walks behind the chair-bound <<person5>><<person>>. The <<person2>><<person>> moves behind the chair-bound
 	<<person4>><<person>> next to you. Finally the <<person1>><<person>> moves behind you.
@@ -2187,7 +2302,8 @@ is an important part of your assessment so you need to be on your best behaviour
 	to the links on the wall and binds your feet, fixing you in place.
 	<br><br>
 	"The doctors believe an irrational phobia of sexual fluids is driving your condition," the <<person1>><<person>> tells you.
-	"Our staff have kindly agreed to help with an exposure therapy approach."<br>
+	"Our staff have kindly agreed to help with an exposure therapy approach."
+	<br>
 	<<if $malechance gte 1 and $cbchance lt 100 or $malechance lt 100 and $dgchance gte 1>>
 		Glancing back you see a number of the orderlies already have their dicks out.
 	<</if>>
@@ -2205,45 +2321,74 @@ is an important part of your assessment so you need to be on your best behaviour
 <<set _they_drink to either("Anonymous mouths continue to hungrily suck milk from you.","Hungry mouths lap at your nipples.","Mouths suck and massage milk from your teats.","Mouths clamp to your breasts as unseen people drink from you.","They suck milk from you insatiably.")>>
 <<if $ft_count is 8>>
 	They drink thirstily from your breasts. After a time, the mouth on the <<print either("left","right")>> finishes and leaves.
-	Another mouth quickly replaces them. A minute or so later, this happens on the other side. <<garousal>><<breastarousal 200>>
+	Another mouth quickly replaces them. A minute or so later, this happens on the other side.
+	<<garousal>><<breastarousal 200>>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
-	<</if>><br><br>
+	<</if>>
+	<br><br>
 	<<set $milk_amount -= 200>>
 	<<link [[Next|Asylum Fake Treatment Milked]]>><<set $ft_count -= 1>><</link>>
 <<elseif $ft_count gte 1>>
 	<<if $milk_amount gte 300>>
 		_they_drink <<garousal>><<breastarousal 250>>
-		<<set _rand to random(1,10)>><br>
-		<<if _rand is 1>>An anonymous hand <<print either("gently","roughly","rhythmically","persistently","sensuously")>> <<print either("fondles","rubs","teases")>> your <<genitals>>.<<garousal>><<genitalarousal 200>>
-		<<elseif _rand is 2>>One of them bites your <<nipple>>. <<ggpain>><<pain 8>>
-		<<elseif _rand is 3>>A tongue playfully circles and teases your <<nipple>> between sucks. <<ggarousal>><<breastarousal 400>>
-		<<elseif _rand is 4>>Someone flicks your <<nipple>>. <<gpain>><<pain 3>>
-		<<elseif _rand is 5>>The people to your left and right seem to be working together as their mouths suck and squeeze your <<nipples>> in perfect rhythm. <<ggarousal>><<breastarousal 400>>
-		<<elseif _rand is 6>>One mouth barely drinks, preferring to blow and then lick at your <<nipple>>. <<ggarousal>><<breastarousal 500>>
-		<<elseif _rand is 7>>A hand painfully slaps your breast. <<ggpain>><<pain 8>><br>"Hey! Take it easy," a voice says.<br>"Sorry."<br>
-		<<elseif _rand is 8>>As one sucks, they squeeze your <<breasts>> with their hands to force out more milk.<<set $milk_amount -= random(50,100)>>
-		<</if>><br>
+		<<set _rand to random(1,10)>>
+		<br>
+		<<if _rand is 1>>
+			An anonymous hand <<print either("gently","roughly","rhythmically","persistently","sensuously")>> <<print either("fondles","rubs","teases")>> your <<genitals>>.
+			<<garousal>><<genitalarousal 200>>
+		<<elseif _rand is 2>>
+			One of them bites your <<nipple>>.
+			<<ggpain>><<pain 8>>
+		<<elseif _rand is 3>>
+			A tongue playfully circles and teases your <<nipple>> between sucks.
+			<<ggarousal>><<breastarousal 400>>
+		<<elseif _rand is 4>>
+			Someone flicks your <<nipple>>.
+			<<gpain>><<pain 3>>
+		<<elseif _rand is 5>>
+			The people to your left and right seem to be working together as their mouths suck and squeeze your <<nipples>> in perfect rhythm.
+			<<ggarousal>><<breastarousal 400>>
+		<<elseif _rand is 6>>
+			One mouth barely drinks, preferring to blow and then lick at your <<nipple>>.
+			<<ggarousal>><<breastarousal 500>>
+		<<elseif _rand is 7>>
+			A hand painfully slaps your breast.
+			<<ggpain>><<pain 8>>
+			<br>
+			"Hey! Take it easy," a voice says.
+			<br>
+			"Sorry."
+			<br>
+		<<elseif _rand is 8>>
+			As one sucks, they squeeze your <<breasts>> with their hands to force out more milk.<<set $milk_amount -= random(50,100)>>
+		<</if>>
+		<br>
 		<<if $arousal gte $arousalmax>>
 			<<orgasm>>
 			Mouths clamp to your <<nipples>>, sucking hard as you cum.
-		<</if>><br>
+		<</if>>
+		<br>
 		<<link [[Next|Asylum Fake Treatment Milked]]>><<set $milk_amount -= random(200,300)>><<set $ft_count -= 1>><</link>>
 	<<elseif $milk_amount gte 50>>
 		As yet another greedy mouth tries to <<print either("suck","suck and squeeze")>> the milk from your breasts
 		you start to run dry. Soon you are getting close to dry on both sides. Hands and mouths work harder to squeeze and suck milk from you.
-		<<ggarousal>><<breastarousal 400>><<gpain>><<pain 3>><br>
+		<<ggarousal>><<breastarousal 400>><<gpain>><<pain 3>>
+		<br>
 		<<if $arousal gte $arousalmax>>
 			<<orgasm>>
-		<</if>><br><br>
+		<</if>>
+		<br><br>
 		<<link [[Next|Asylum Fake Treatment Milked]]>><<set $milk_amount -= random(200,300)>><<set $ft_count -= 1>><</link>>
 	<<else>>
 		Even though you are nearly dry, thirsty mouths insistently <<print either("suck at","pull at","try to suck milk from")>> your <<breasts>>.
 		Your nipples feel sore and tender as they suck the last of the milk from you.
-		<<ggarousal>><<breastarousal 500>><<gpain>><<pain 8>><br>
+		<<ggarousal>><<breastarousal 500>><<gpain>><<pain 8>>
+		<br>
 		<<if $arousal gte $arousalmax>>
 			<<orgasm>>
-		<</if>><br><br>
+		<</if>>
+		<br><br>
 		<<link [[Next|Asylum Fake Treatment Milked]]>><<set $milk_amount to 0>><<set $ft_count to 0>><</link>>
 	<</if>>
 <<else>>
@@ -2251,23 +2396,27 @@ is an important part of your assessment so you need to be on your best behaviour
 		<<ggarousal>><<breastarousal 400>>
 	<<else>>
 		No more come to you.
-	<</if>><br>
+	<</if>>
+	<br>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
 	<<elseif $arousal gte ($arousalmax / 5) * 4>>
-		Your bare nipples tingle in the air.<br>
+		Your bare nipples tingle in the air.
+		<br>
 		<<if $submissive gte 1150>>
-			"More," you whimper. "Please, more."<br>
+			"More," you whimper. "Please, more."
+			<br>
 		<</if>>
 	<</if>>
 	Your breasts feel a lot lighter. <<llstress>><<stress 18>>
 	<br><br>
-	"Uhm... okay," the <<person>> says loudly. "Get these patients out."<br>
-	The door opens and <<if $science gte 600 or currentSkillValue('skulduggery') gte 600>>closes suspiciously quickly.<<else>>closes.<</if>>
+	"Uhm... okay," the <<person>> says loudly. "Get these patients out."
+	<br>
+	The door opens and <<if currentSkillValue('science') gte 600 or currentSkillValue('skulduggery') gte 600>>closes suspiciously quickly.<<else>>closes.<</if>>
 	<br><br>
 	The hood lifts off your head and the straightjacket is closed to cover your <<breasts>>.
-	As the <<person2>><<person>> releases you from the wall, the <<person1>><<person>> talks to you.<br>
-	<br><br>
+	As the <<person2>><<person>> releases you from the wall, the <<person1>><<person>> talks to you.
+	<br><br><br>
 	<<link [[Next|Asylum Fake Treatment Finish]]>><<unset $ft_count>><</link>>
 <</if>>
 
@@ -2292,17 +2441,22 @@ is an important part of your assessment so you need to be on your best behaviour
 	There is an air of disappointment as the <<person1>><<person>> leaves you.
 <<elseif $ft_count%2>><<set _crowd = either("The crowd of orderlies watch.","The crowd jostle to get a better view.","The crowd shouts encouragement.")>>
 <<else>><<set _crowd = "">>
-<</if>><br>
+<</if>>
+<br>
 
 <<if $ft_count is 20>>
 	The <<person1>><<person>> grabs you, one hand rubbing your chest, the other reaching for your <<genitals>>. <<breastarousal 100>>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
 		<<set $ft_count to -10>>
-	<</if>><br>
-	_crowd<br><br>
-	<<link [[Let yourself enjoy it|Asylum Fake Treatment Masturbation]]>><<arousal 200>><<set $ft_count -=1>><</link>><<garousal>><br>
-	<<link [[Resist|Asylum Fake Treatment Masturbation]]>><<arousal -100>><<set $ft_count -=1>><</link>><br>
+	<</if>>
+	<br>
+	_crowd
+	<br><br>
+	<<link [[Let yourself enjoy it|Asylum Fake Treatment Masturbation]]>><<arousal 200>><<set $ft_count -=1>><</link>><<garousal>>
+	<br>
+	<<link [[Resist|Asylum Fake Treatment Masturbation]]>><<arousal -100>><<set $ft_count -=1>><</link>>
+	<br>
 <<elseif $ft_count gte 1>>
 	<<if $ft_count is 19>>
 		The <<person1>><<person>> slips a hand under the straightjacket to tease your <<nipple>>, while the other grabs your <<genitals>>. <<breastarousal 200>><<genitalarousal 100>>
@@ -2316,8 +2470,10 @@ is an important part of your assessment so you need to be on your best behaviour
 		<</if>>
 		The <<person1>><<persons>> hands continue to work your <<genitals>> and your <<breasts>>.<<breastarousal 200>><<genitalarousal 200>>
 	<<elseif $ft_count is $ft_five>>
-		You hear the <<person5>><<person>> moan loudly, and <<if $NPCList[0].penis isnot "none">>see a spurt of cum fly toward the mirror and<<else>>see squirts of female ejaculate<</if>> splatter on the floor.<br>
-		Some of the orderlies cheer. You see them excitedly passing money between each other.<br>
+		You hear the <<person5>><<person>> moan loudly, and <<if $NPCList[0].penis isnot "none">>see a spurt of cum fly toward the mirror and<<else>>see squirts of female ejaculate<</if>> splatter on the floor.
+		<br>
+		Some of the orderlies cheer. You see them excitedly passing money between each other.
+		<br>
 		The <<person2>><<person>> moves both hands to focus on your <<genitals>> and continues with renewed intensity. <<genitalarousal 600>>
 	<<elseif $ft_count gt $ft_four>>
 		<<if $rng>>
@@ -2329,41 +2485,53 @@ is an important part of your assessment so you need to be on your best behaviour
 		The <<person4>><<person>> beside you starts to shudder as, silently, <<he>> cums
 		<<if $NPCList[0].penis isnot "none">>sending a large spurt of cum toward the mirror
 		<<else>>squirting hard
-		<</if>>and making a mess of the floor in front of <<him>>.<br>
-		More orderlies cheer. You see them excitedly passing money between each other.<br>
+		<</if>>and making a mess of the floor in front of <<him>>.
+		<br>
+		More orderlies cheer. You see them excitedly passing money between each other.
+		<br>
 		With a sigh, the <<person1>><<person>> eases up on your <<genitals>>. <<genitalarousal 300>>
 	<<else>>/*last one standing*/
 		The <<person1>><<person>> continues working your <<genitals>> with both hands.
 		<<set $ft_count to -20>>
-		 <<if $arousal gte $arousalmax>><<set $arousal to 9900>><</if>>
+		<<if $arousal gte $arousalmax>><<set $arousal to 9900>><</if>>
 	<</if>>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
 		<<set $ft_count to -10>>
-	<</if>><br>
-	_crowd<br><br>
+	<</if>>
+	<br>
+	_crowd
+	<br><br>
 	<<if $ft_count gte 0 or $ft_count is -20>>
-		<<link [[Let yourself enjoy it|Asylum Fake Treatment Masturbation]]>><<arousal 200>><<set $ft_count -=1>><</link>><<garousal>><br>
-		<<link [[Resist|Asylum Fake Treatment Masturbation]]>><<arousal -100>><<set $ft_count -=1>><</link>><br>
+		<<link [[Let yourself enjoy it|Asylum Fake Treatment Masturbation]]>><<arousal 200>><<set $ft_count -=1>><</link>><<garousal>>
+		<br>
+		<<link [[Resist|Asylum Fake Treatment Masturbation]]>><<arousal -100>><<set $ft_count -=1>><</link>>
+		<br>
 	<<else>>
-		<<link [[Cool off|Asylum Fake Treatment Masturbation]]>><</link>><br>
+		<<link [[Cool off|Asylum Fake Treatment Masturbation]]>><</link>>
+		<br>
 	<</if>>
 <<else>>
 	<<if $ft_count is 0>>
-		The <<person1>><<person>> finally gives up.<br>
+		The <<person1>><<person>> finally gives up.
+		<br>
 		"I can't do it," <<he>> says. "<<pShe>> won't cum."
 	<<elseif $ft_count lte -20>> /* you won */
-		The <<person1>><<person>> finally gives up.<br>
+		The <<person1>><<person>> finally gives up.
+		<br>
 		"I can't do it," <<he>> says. "<<pShe>> won't cum."
 	<<elseif $ft_count lte -10>> /*someone else won*/
-		As your orgasm resides you hear cheering. You notice the orderlies seem to be exchanging something.<br>
+		As your orgasm resides you hear cheering. You notice the orderlies seem to be exchanging something.
+		<br>
 
 		The <<person1>><<person>> wanders into the crowd of orderlies, where they hand <<him>> something. <<He>> smiles back at you.
 		A few moments later, the <<person4>><<person>> beside you starts to shudder as, silently, <<he>> cums
 		<<if $NPCList[0].penis isnot "none">>sending a large spurt of cum toward the mirror <<else>>squirting hard<</if>>
-		and making a mess of the floor in front of <<him>>.<br>
+		and making a mess of the floor in front of <<him>>.
+		<br>
 		More orderlies cheer. You see them excitedly passing things between each other.
-	<</if>><br><br>
+	<</if>>
+	<br><br>
 	Finally, you are released from the chair. The <<person1>><<person>> starts to speak.
 	<br><br>
 	<<link [[Listen|Asylum Fake Treatment Finish]]>><<unset $ft_count>><<unset $ft_five>><<unset $ft_four>><</link>>
@@ -2374,18 +2542,21 @@ is an important part of your assessment so you need to be on your best behaviour
 <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>>
 <<pass 5>>
 <<if $ft_count is 5>>
-	The <<person1>><<person>> and the <<person2>><<person>> rub themselves off in front of you.
+	The <<fullGroup>> rub themselves off in front of you.
 	Soon the <<person>> cums, squirting <<if $NPCList[0].penis isnot "none">><<set $player.bodyliquid.face.semen += 1>>semen across<<else>><<set $player.bodyliquid.face.goo += 1>>suddenly in<</if>> your face.
 	Another orderly takes <<his>> place as the <<person1>><<person>> reaches climax. The <<person>> stares into your eyes as
-	<<he>> cums, <<his>> fluids splattering against your cheek and running down the collar of your straightjacket.<br>
+	<<he>> cums, <<his>> fluids splattering against your cheek and running down the collar of your straightjacket.
+	<br>
 	Two more orderlies take <<his>> place.<<if $NPCList[0].penis isnot "none">><<set $player.bodyliquid.neck.semen += 1>><<else>><<set $player.bodyliquid.neck.goo += 1>><</if>>
 	<br><br>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
-	<</if>><br><br>
+	<</if>>
+	<br><br>
 	<<link [[Next|Asylum Fake Treatment Bukkake]]>><<set $ft_count -= 1>><</link>>
 <<elseif $ft_count gte 1>>
-	<<print either("They keep coming and cumming.","You try to keep your mouth shut, but breathing through your nose means you have to smell it.","You're surrounded by grunts and throbbing genitals.","You keep your eyes shut to avoid getting cum in them.")>><br>
+	<<print either("They keep coming and cumming.","You try to keep your mouth shut, but breathing through your nose means you have to smell it.","You're surrounded by grunts and throbbing genitals.","You keep your eyes shut to avoid getting cum in them.")>>
+	<br>
 	<<set _rand to random(1,9)>>
 	<<if _rand lte 6>>
 		<<if _rand is 1>>
@@ -2426,9 +2597,12 @@ is an important part of your assessment so you need to be on your best behaviour
 			a moment later you feel hot juices jet into your hair. <<hairejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.hair.semen += 1>>
 		<</if>>
 	<<elseif _rand is 7 and ($malechance gte 1 and $cbchance lt 100 or $malechance lt 100 and $dgchance gte 1)>>
-		One orderly tries to shove their cock in your mouth. They're jerked away by another.<br>
-		"May I remind everyone that any attempt at any kind of penetration will result in removal." <<lstress>><<stress -2>><br>
-	<</if>><<unset _rand>><br>
+		One orderly tries to shove their cock in your mouth. They're jerked away by another.
+		<br>
+		"May I remind everyone that any attempt at any kind of penetration will result in removal." <<lstress>><<stress -2>>
+		<br>
+	<</if>><<unset _rand>>
+	<br>
 
 	<<if $submissive gte 1150>>
 		<span class="sub">Being degraded like this makes you feel horny.</span><<ggarousal>><<arousal 666>>
@@ -2439,14 +2613,17 @@ is an important part of your assessment so you need to be on your best behaviour
 	<</if>>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
-	<</if>><br><br>
+	<</if>>
+	<br><br>
 	<<link [[Next|Asylum Fake Treatment Bukkake]]>><<set $ft_count -= 1>><</link>>
 <<else>>
-	Finally, there are no more.<br>
+	Finally, there are no more.
+	<br>
 	<<if $arousal gte $arousalmax>>
 		<<orgasm>>
 	<<elseif $arousal gte ($arousalmax / 4) * 3 and $submissive gte 1150>>
-		"More," you whimper.<br>
+		"More," you whimper.
+		<br>
 	<</if>>
 	You feel soaked as fluids ooze down you.
 	<br><br>
@@ -2459,7 +2636,8 @@ is an important part of your assessment so you need to be on your best behaviour
 
 "Excellent. Doctor Harper's very pleased with your progress. The doctor asked me to tell you not to mention this treatment to anyone.
 It's very important for your treatment. If you mention it to anyone - even to Doctor Harper <<nnpc_himself "Harper">> - <<nnpc_he "Harper">>
-will be very angry and it will set back your progress. This should be kept secret. Understood?"<br>
+will be very angry and it will set back your progress. This should be kept secret. Understood?"
+<br>
 
 <<if $submissive gte 1150>>
 	You meekly nod.
@@ -2467,13 +2645,16 @@ will be very angry and it will set back your progress. This should be kept secre
 	You wait for <<him>> to get to the point.
 <<else>>
 	You nod once.
-<</if>><br><br>
+<</if>>
+<br><br>
 
 <<if $phase is 1 and ($ft_event is "bukkake" or $ft_event is "milk" or $ft_event is "masturbation")>>
-	"Should I take this off?" the <<person2>><<person>> asks, tugging on the straightjacket.<br>
+	"Should I take this off?" the <<person2>><<person>> asks, tugging on the straightjacket.
+	<br>
 	<<if $ft_event is "bukkake">>
 		"After the fuss <<pshe>> made about coming here?" <<person1>><<he>> shakes <<his>> head.
-		"Let <<phim>> learn <<pher>> place walking around looking like that for a while."<br>
+		"Let <<phim>> learn <<pher>> place walking around looking like that for a while."
+		<br>
 		The <<person2>><<person>> laughs.
 	<<else>>
 		"After the fuss <<pshe>> made about coming here?" <<person1>><<he>> shakes <<his>> head. "This one needs to learn some obedience."
@@ -2481,17 +2662,20 @@ will be very angry and it will set back your progress. This should be kept secre
 <<else>>
 	The <<person2>><<person>> removes the straightjacket.
 	<<unbind>><<exposure>><<upperwear 87>>
-<</if>><br><br>
+<</if>>
+<br><br>
 
 <<if $NPCList[3].description is "long-haired">>
 	<<person4>>The <<person>> is led past you - it feels like you make eye-contact, but it is hard to tell with her face hidden behind her long, matted, messy hair.
 <</if>>
 
 <<if $ft_event is "milk">>
-	As you leave, you notice many of the orderlies have something white around their lips or chin.<br><br>
+	As you leave, you notice many of the orderlies have something white around their lips or chin.
+	<br><br>
 <<elseif $ft_event is "masturbation">>
 	As you leave, you notice many orderlies grouped together passing money between them. Some seem happy, others less so.
-	<<print either("One looks","Several look","One glances")>> <<print either("accusingly","crossly","cheerfully","lustfully","hungrily")>> at you.<br><br>
+	<<print either("One looks","Several look","One glances")>> <<print either("accusingly","crossly","cheerfully","lustfully","hungrily")>> at you.
+	<br><br>
 <</if>>
 <<endevent>><<unset $ft_event>>
 <<link [[Leave|Asylum]]>><</link>>
diff --git a/game/overworld-forest/loc-asylum/widgets.twee b/game/overworld-forest/loc-asylum/widgets.twee
index 02c936c2b6e1a62f6afc37c1a35a93ca28c1e053..e1f6704fee2b9e37522e7f2f4cd4f42ccc4f1ca4 100644
--- a/game/overworld-forest/loc-asylum/widgets.twee
+++ b/game/overworld-forest/loc-asylum/widgets.twee
@@ -51,9 +51,11 @@
 		<<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7 and $rng % 2 and $malechance lt 100>>
 			<<set $phase to 0>><<set $o_long_and_beautiful += 1>>
 			<<npc Harper>><<person1>>
-			You are led into a thin room. Curtains line one side.<br>
+			You are led into a thin room. Curtains line one side.
+			<br>
 			"Hello," Doctor Harper says. "I'm glad you could make it. Please stand just there."
-			<<He>> pushes a button on the wall by the door and the curtain pulls back, revealing the other half of the room. A patient lies on the floor.<br>
+			<<He>> pushes a button on the wall by the door and the curtain pulls back, revealing the other half of the room. A patient lies on the floor.
+			<br>
 			The long, matted hair covering most of her face hides any visible reaction.
 			<br><br>
 			<<person1>>"This treatment isn't for you," the doctor says. "It's for your fellow patient. I just need an assistant."
@@ -157,10 +159,10 @@
 		<<beastNEWinit 1 dog>>
 		<<if $monster is 1 or $bestialitydisable is "f">>
 			<<if $monster is 1>>
-				"Good," The doctor says. "Bring <<bhim>> in." A group of orderlies enter. One holds a <<beasttype>> on a leash, who appears to be panting heavily. <<bHis>> nude body is on full display. <<bHe>> strains to reach you. Harper turns to you. "We found <<bhim>> up near those farms," <<nnpc_he "Harper">> says. "<<bHe>>'s been misbehaving, and could use some "personal" attention. From a bitch in heat, more specifically. You can't wait to be bred." You feel an urge to bark.
+				"Good," The doctor says. "Bring <<bhim>> in." A group of orderlies enter. One holds a <<beasttype>> on a leash, who appears to be panting heavily. <<bHis>> nude body is on full display. <<bHe>> strains to reach you. Harper turns to you. "We found <<bhim>> up near those farms," <<nnpc_he "Harper">> says. "<<bHe>>'s been misbehaving, and could use some "personal" attention. From a bitch in heat, more specifically. You can't wait to be <<bred>>." You feel an urge to bark.
 				<br><br>
 			<<else>>
-				"Good," The doctor says. "Bring it in." A group of orderlies enter. One holds a dog on a leash. It strains to reach you. Harper turns to you. "You're a bitch in heat. You can't wait to be bred." You feel an urge to bark.
+				"Good," The doctor says. "Bring it in." A group of orderlies enter. One holds a dog on a leash. It strains to reach you. Harper turns to you. "You're a bitch in heat. You can't wait to be <<bred>>." You feel an urge to bark.
 				<br><br>
 			<</if>>
 
diff --git a/game/overworld-forest/loc-cabin/events.twee b/game/overworld-forest/loc-cabin/events.twee
index 9f8ee2c43733d090141e74f4aa4c2cc1c0ff6caa..8ddb819b92bf12ee1082bffa56f4e5e1e1f60c6a 100644
--- a/game/overworld-forest/loc-cabin/events.twee
+++ b/game/overworld-forest/loc-cabin/events.twee
@@ -382,13 +382,11 @@ Eden runs <<his>> hands through your hair, smiling faintly in thanks.<<lllust>>
 
 You rest your arms on <<his>> knees and lift up <<his>> skirt, giving you a peek of <<his>> genitals.
 <<promiscuity4>>
-<br><br>
 
 <<else>>
 
 You rest your arms on <<his>> knees and open <<his>> fly, giving you a peek of <<his>> genitals.
 <<promiscuity4>>
-<br><br>
 
 <</if>>
 
@@ -501,7 +499,7 @@ You walk outside to see Eden skinning <<his>> catch. <<He>> seems engrossed in <
 <<link [[Next|Eden Cabin]]>><<endevent>><</link>>
 <br>
 
-::  Eden Bath Join
+:: Eden Bath Join
 <<set $outside to 0>><<set $location to "cabin">><<effects>>
 
 <<if $submissive gte 1150>>
@@ -661,11 +659,11 @@ You blink in slight surprise at Eden's sudden offer, but nod and hand
 to <<him>>.
 <br><br>
 
-Turning around, you release a sigh as <<he>> scrubs it over your skin. The sensation of <<his>> firm hands sliding over your muscles is surprisingly relaxing, 
+Turning around, you release a sigh as <<he>> scrubs it over your skin. The sensation of <<his>> firm hands sliding over your muscles is surprisingly relaxing,
 and you find your eyes closing as you sink into <<his>> arms.
 <br><br>
 
-Leaning back against <<him>>, you feel yourself drift off as Eden trails the sponge over your body. <<His>> hands roam from your back, to your chest, and down to your legs. 
+Leaning back against <<him>>, you feel yourself drift off as Eden trails the sponge over your body. <<His>> hands roam from your back, to your chest, and down to your legs.
 <br><br>
 
 With each stroke, you feel the stress of the day melt away from <<his>> touch, and you let out an involuntary moan in response. Eden chuckles softly at the sound, <<his>> gaze tender as <<he>> traces <<his>> eyes over your form.
@@ -684,8 +682,8 @@ Then again, with the warmth of <<his>> arms wrapped around you, you don't really
 Feeling you shift, Eden glances down at you, slowly stroking your thigh. "I thought I'd let you sleep," <<he>> says. It's almost like <<he>> read your mind.
 <br><br>
 
-Even as the sky darkens, you can't help but sink into <<his>> embrace, the both of you not wanting to leave each other just yet. Pressed against <<him>>, the thumping of Eden's heart is only accompanied 
-by the occasional sound of the water sloshing about. 
+Even as the sky darkens, you can't help but sink into <<his>> embrace, the both of you not wanting to leave each other just yet. Pressed against <<him>>, the thumping of Eden's heart is only accompanied
+by the occasional sound of the water sloshing about.
 <br><br>
 
 "Thanks," you say, shifting yourself even closer to Eden. Your voice rings clear through the peaceful serenity of the cabin.
@@ -1156,7 +1154,7 @@ You nod. The two of you watch the embers crackle into the night.
 		<<else>>
 			<<link [[Say you want to learn how to shoot (0:05)|Eden Shoot Ask]]>><<pass 5>><</link>>
 			<br>
-		<</if>> 
+		<</if>>
 	<<else>>
 		<<link [[Ask Eden to read to you (0:30)|Eden Read]]>><<pass 30>><<trauma -3>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>>
 		<br>
@@ -1170,6 +1168,7 @@ You nod. The two of you watch the embers crackle into the night.
 
 :: Eden Read
 <<set $outside to 0>><<set $location to "cabin">><<effects>>
+<<set $edenBook to 1>>
 /* eden is already generated on passages that lead here
 <<npc Eden>><<person1>>*/
 
@@ -1423,7 +1422,7 @@ Eden kisses your forehead before helping you back to your feet.<<glove>><<lllust
 <<elseif $edenmassage is 2>>
 	Working your way lower, you note that <<his>> shoulder blades are just as tightened with tension as <<his>> shoulders. You carefully work to undo the knots and kinks along them.
 <<elseif $edenmassage is 3>>
-	You roll your hands across the taught muscles of Eden's large arms. As you tend to the strains of <<his>> daily chores, you feel them slacken in relief.
+	You roll your hands across the taut muscles of Eden's large arms. As you tend to the strains of <<his>> daily chores, you feel them slacken in relief.
 <<elseif $edenmassage is 4>>
 	Moving back along Eden's strong arms, you arrive at <<his>> upper back. Here you work diligently and firmly along the rough muscles with your knuckles.
 <<elseif $edenmassage is 5>>
@@ -1551,7 +1550,7 @@ You turn away from <<him>>, making your disapproval of <<his>> actions clear. <<
 <<elseif $hour lte 18 and $edendinner isnot 1 and $NPCName[$NPCNameList.indexOf("Eden")].love gte 100>>
 	You relax by the window, watching as Eden prepares dinner. When <<hes>> done, <<he>> brings the food to the dining table.
 	<br><br>
-	
+
 	<<link [[Next|Eden Cabin]]>><<endevent>><</link>>
 <<else>>
 	<<if $days % 2 is 0>>
@@ -2488,7 +2487,7 @@ a sheen of sweat lining <<his>> neck. Though <<he>> looks quite focused, you can
 <<wash>>
 
 You wave your hand in the air, calling for Eden. <<He>> turns <<his>> head to you, a questioning look in <<his>> eyes. Over the distance, you ask if <<he>>'d like to join you in the spring.
-For a second, <<his>> eyes dart down to 
+For a second, <<his>> eyes dart down to
 
 <<if $hour gte 9 and $hour lte 10>>
 	the crops,
@@ -2498,10 +2497,10 @@ For a second, <<his>> eyes dart down to
 	<<his>> axe,
 <</if>>
 
-but <<his>> exhaustion gets the better of <<him>>, and <<he>> walks over. 
+but <<his>> exhaustion gets the better of <<him>>, and <<he>> walks over.
 <br><br>
 
-After <<he>> strips, the both of you sink into the spring. The cool water feels absolutely refreshing against your skin, and you let out a sigh of relief. 
+After <<he>> strips, the both of you sink into the spring. The cool water feels absolutely refreshing against your skin, and you let out a sigh of relief.
 Eden does the same, lying back against the edge with <<his>> eyes closed.
 <br><br>
 
@@ -2523,7 +2522,7 @@ Together, the both of you bask in the stillness of the forest, surrounded by not
 :: Eden Spring Intro Cuddle 2
 <<effects>>
 
-The both of you spend some time in the water, curled up in each other's embrace. After a while, Eden pulls away, looking much less exhausted than before. 
+The both of you spend some time in the water, curled up in each other's embrace. After a while, Eden pulls away, looking much less exhausted than before.
 Although it's clear that <<he>>'d like to stay with you, <<he>> glances back to the clearing. "I should get back to work," <<he>> says, eyes landing on
 
 <<if $hour gte 9 and $hour lte 10>>
@@ -2534,7 +2533,7 @@ Although it's clear that <<he>>'d like to stay with you, <<he>> glances back to
 	<<his>> axe.
 <</if>>
 
-He gives your forehead a quick kiss, and climbs out of the water.
+<<He>> gives your forehead a quick kiss, and climbs out of the water.
 <br><br>
 
 <span class = "gold">You can now invite Eden to join you in the spring.</span>
@@ -2647,7 +2646,7 @@ Eden pulls away from you, holding you close as <<he>> relaxes by the edge of the
 <<npc Eden>><<person1>>
 <<wash>>
 
-The both of you take a minute to catch your breath, the sound of your pants echoing through the air. After a bit, Eden pulls away, looking much less exhausted than before. 
+The both of you take a minute to catch your breath, the sound of your pants echoing through the air. After a bit, Eden pulls away, looking much less exhausted than before.
 Although it's clear that <<he>>'d like to stay with you, <<he>> glances back to the clearing. "I should get back to work," <<he>> says, eyes landing on
 
 <<if $hour gte 9 and $hour lte 10>>
@@ -2658,7 +2657,7 @@ Although it's clear that <<he>>'d like to stay with you, <<he>> glances back to
 	<<his>> axe.
 <</if>>
 
-He gives your forehead a quick kiss, and climbs out of the water.
+<<He>> gives your forehead a quick kiss, and climbs out of the water.
 <br><br>
 
 <span class = "gold">You can now invite Eden to join you in the spring.</span>
@@ -2674,7 +2673,7 @@ He gives your forehead a quick kiss, and climbs out of the water.
 
 You and Eden walk to the spring, undressing and slipping into the cool water. <<He>> holds you close as the both of you lie back and relax. Around you,
 <<if $rng gte 61>>
-	the leaves dance in the wind, resting gently by the water's edge.	
+	the leaves dance in the wind, resting gently by the water's edge.
 <<elseif $rng gte 31>>
 	the sound of bird calls echo through the clearing.
 <<else>>
@@ -2695,7 +2694,7 @@ You and Eden walk to the spring, undressing and slipping into the cool water. <<
 <<if $seductionskill lt 1000>><span class="gold">You feel more confident in your powers of seduction.</span><</if>><<seductionskilluse>>
 <br><br>
 
-You trail your hand down Eden's stomach, bringing your lips to <<his>> neck. 
+You trail your hand down Eden's stomach, bringing your lips to <<his>> neck.
 
 <<if $seductionrating gte $seductionrequired>>
 	Resting a hand on your cheek, <<he>> pulls you in for a kiss.
diff --git a/game/overworld-forest/loc-cabin/hunt.twee b/game/overworld-forest/loc-cabin/hunt.twee
index b2fa00633790b791d3463a69af00d621f5fd2365..98424bfdde5671ea615123fb02c875b06e107bfd 100644
--- a/game/overworld-forest/loc-cabin/hunt.twee
+++ b/game/overworld-forest/loc-cabin/hunt.twee
@@ -3,7 +3,7 @@
 
 <<if $phase is 0 and $exposed gte 1 and !$edenexposed>>
 
-<<His>> gaze lingers on your <<lewdness>>. "I don't want you alone like that." 
+<<His>> gaze lingers on your <<lewdness>>. "I don't want you alone like that."
 <br><br>
 
 <<link [[Go inside|Eden Cabin]]>><<endevent>><</link>>
@@ -20,7 +20,7 @@
 
 <<elseif $phase is 1 and $exposed gte 1 and !$edenexposed>>
 
-<<He>> nods, but <<his>> gaze lingers on your <<lewdness>>. "I don't want you alone like that." 
+<<He>> nods, but <<his>> gaze lingers on your <<lewdness>>. "I don't want you alone like that."
 <br><br>
 
 <<link [[Go inside|Eden Cabin]]>><<endevent>><</link>>
@@ -588,7 +588,7 @@ They disappear between the trees as Eden emerges, marching towards you.
 <<set $outside to 1>><<set $location to "cabin">><<effects>>
 
 <<if $edenPrey is undefined>>
-	You agree to Eden's proposal, despite the lack of details. 
+	You agree to Eden's proposal, despite the lack of details.
 	<br><br>
 <</if>>
 
@@ -624,7 +624,7 @@ You turn around, as instructed. A loud crack erupts behind you, shattering the t
 <<if $submissive gte 1150>>
 	"I-I don't know..." you mutter, looking away from Eden. "Maybe another time...?"
 <<elseif $submissive lte 850>>
-	 "No way," you tell <<him>>, crossing your arms. "I'm not a sex toy."
+	"No way," you tell <<him>>, crossing your arms. "I'm not a sex toy."
 <<else>>
 	"I don't want to do that right now," you say.
 <</if>>
@@ -667,16 +667,16 @@ You turn around, as instructed. A loud crack erupts behind you, shattering the t
 <<if $phase is 1>>
 	You sprint into the brush as Eden gives chase. Your curiosity gets the better of you, causing you to look for a plausible excuse for the hunt to end. An idea pops into your mind when you spot a root. You jam your foot into the tree and fall onto the forest floor. Eden takes advantage in an instant.
 	<br><br>
-	
-	You feel your wrists forced behind you as rope coils over them, restricting them to your back. Your eyes dart around, <span class="meek">until a shiny, red ball-gag is forced into your mouth.</span> A <<if $submissive gte 1150>>whimper<<elseif $submissive lte 850>>growl<<else>>sigh<</if>> escapes from you in response. A cloth is wrapped around your eyes and tied around your head, blinding you. You can do nothing but squirm helplessly, as Eden keeps you pinned down. 
+
+	You feel your wrists forced behind you as rope coils over them, restricting them to your back. Your eyes dart around, <span class="meek">until a shiny, red ball-gag is forced into your mouth.</span> A <<if $submissive gte 1150>>whimper<<elseif $submissive lte 850>>growl<<else>>sigh<</if>> escapes from you in response. A cloth is wrapped around your eyes and tied around your head, blinding you. You can do nothing but squirm helplessly, as Eden keeps you pinned down.
 	<<bind>><<facewear 6>>
 	<br><br>
-	
+
 	"Well, well, it seems I've found myself helpless prey," Eden taunts you. "Leaving you here just won't do." <<He>> hoists you up and carries you over <<his>> shoulder.
 	<br>
 	Tied up and deprived of your senses, you can only wait and anticipate what Eden has in store for you.
 	<br><br>
-	
+
 	<<link [[Next|Eden Prey Caught]]>><</link>>
 	<br>
 <<else>>
@@ -695,7 +695,7 @@ You turn around, as instructed. A loud crack erupts behind you, shattering the t
 		You sprint into the brush as Eden gives chase. The twists and turns in the forest allow you the freedom to evade <<him>>. However, <span class="red">you're unable to shake off the <<nnpc_title "Eden">>.</span> Despite your best efforts, you can hear <<his>> heavy breathing right behind you. As the last of your energy runs out, you're tackled to the ground.<<pain 1>><<tiredness 12>><<npcincr Eden dom 5>><<gpain>><<gtiredness>><<ggdom>>
 		<br><br>
 
-		You feel your wrists forced behind you as rope coils over them, restricting them to your back. Your eyes dart around, <span class="meek">until a shiny, red ball-gag is forced into your mouth.</span> A <<if $submissive gte 1150>>whimper<<elseif $submissive lte 850>>growl<<else>>sigh<</if>> escapes from you in response. A cloth is wrapped around your eyes and tied around your head, blinding you. You can do nothing but squirm helplessly, as Eden keeps you pinned down. 
+		You feel your wrists forced behind you as rope coils over them, restricting them to your back. Your eyes dart around, <span class="meek">until a shiny, red ball-gag is forced into your mouth.</span> A <<if $submissive gte 1150>>whimper<<elseif $submissive lte 850>>growl<<else>>sigh<</if>> escapes from you in response. A cloth is wrapped around your eyes and tied around your head, blinding you. You can do nothing but squirm helplessly, as Eden keeps you pinned down.
 		<<bind>><<facewear 6>>
 		<br><br>
 
@@ -762,9 +762,9 @@ Without warning, you're dropped onto a bed. Strong arms pin you down, preventing
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>><<npcincr Eden lust -20>>
-	
+
 	<<if ($player.penisExist and $player.virginity.penile is true and ($NPCList[0].vagina isnot "none" or $analdisable is "f")) and ($player.vaginaExist and $player.virginity.vaginal is true and $NPCList[0].penis isnot "none")>>
-		You feel a gentle slap across your face. 
+		You feel a gentle slap across your face.
 		<br>
 		"We're going to fuck properly next time we do this," Eden says, <<if $NPCName[$NPCNameList.indexOf("Eden")].lust gte 70>>licking<<else>>kissing<</if>> your cheek.
 		<br><br>
@@ -798,10 +798,10 @@ Without warning, you're dropped onto a bed. Strong arms pin you down, preventing
 		You hear a satisfied chuckle as your orgasm subsides.
 		<br><br>
 	<</if>>
-	
+
 	You feel Eden's lips press against your forehead, then hear the bed creak as <<he>> rolls off, leaving you alone in your bound state.
 	<br><br>
-	
+
 	<<link [[Next|Eden Prey End]]>><<set $phase to 0>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
@@ -812,7 +812,7 @@ Without warning, you're dropped onto a bed. Strong arms pin you down, preventing
 	<br><br>
 	In a fit of rage, <<he>> walks off. You're left alone, bound, blind and gagged.
 	<br><br>
-	
+
 	<<link [[Next|Eden Prey End]]>><<set $phase to 1>><</link>>
 	<br>
 <</if>>
@@ -825,7 +825,7 @@ You feel exhausted, struggling to move. You're not left there for long. Eden sit
 "It's water," Eden states. <<He>> holds it closer to your mouth. "Drink."
 <br><br>
 
-You have no qualms about drinking as you gulp down a few sips. It's refreshing. Eden allows you a moment to catch your breath before pressing the cup against your lips again. 
+You have no qualms about drinking as you gulp down a few sips. It's refreshing. Eden allows you a moment to catch your breath before pressing the cup against your lips again.
 <br>
 <<He>> pulls the cup away, then turns your body around. Your blindfold is removed, and your bindings follow.
 <<set $worn.face.type.push("broken")>>
diff --git a/game/overworld-forest/loc-cabin/main.twee b/game/overworld-forest/loc-cabin/main.twee
index a486244cd2e72ce10ee2a2dee85e268c8cbd86a2..a7ce57cb41117c723906b466f4164dcf4f2f6af7 100644
--- a/game/overworld-forest/loc-cabin/main.twee
+++ b/game/overworld-forest/loc-cabin/main.twee
@@ -78,7 +78,7 @@ You are in Eden's cabin.
 	<<else>>
 		<<He>> trails off and yawns, then rolls back onto <<his>> side. The sound of <<his>> snoring soon fills the cabin.
 		<br><br>
-		
+
 		<<link [[Next|Eden Cabin]]>><<endevent>><</link>>
 		<br>
 	<</if>>
@@ -130,7 +130,11 @@ You are in Eden's cabin.
 	<<elseif $weather is "overcast">>
 
 	<<elseif $weather is "rain">>
-		Droplets of rainwater seep through the wooden ceiling and patter on the ground.
+		<<if $edenroof gte 5>>
+			Rain pours down on the cabin's roof with a soothing sound.
+		<<else>>
+			Droplets of rainwater seep through the wooden ceiling and patter on the ground.
+		<</if>>
 	<<elseif $weather is "snow">>
 		Snow settles on the window sills.
 	<</if>>
@@ -143,7 +147,7 @@ You are in Eden's cabin.
 
 <<if $possessed>>
 	<<if $nextPassageCheck is "Eden Clearing" and $worn.neck.collared is 1>>
-		You're stopped by your collar's leash going taught. You stare at Eden's sleeping form and sneer.
+		You're stopped by your collar's leash going taut. You stare at Eden's sleeping form and sneer.
 		<br><br>
 		You grip the collar, and pull. You can't feel your arms or hands, but you know you're pulling with impossible force.
 		<br><br>
@@ -379,7 +383,7 @@ You are in Eden's cabin.
 		<</if>>
 		<<link [[Approach Eden|Cabin Eden Actions]]>><</link>>
 		<br><br>
-		<<if window.checkSextoysGift("Eden") == 1 and $NPCName[$NPCNameList.indexOf("Eden")].penis is "none">>
+		<<if checkSextoysGift("Eden") and $NPCName[$NPCNameList.indexOf("Eden")].penis is "none" and checkIfNPCHasCategorySextoy("Eden","strap-on").length <= 5>>
 			<<link [[Gift Eden a strap-on|Eden Gift Strap-on]]>><</link>>
 			<br><br>
 		<</if>>
@@ -400,7 +404,7 @@ You are in Eden's cabin.
 		<</if>>
 		<<link [[Approach Eden|Cabin Eden Actions]]>><</link>>
 		<br><br>
-		<<if window.checkSextoysGift("Eden") == 1 and $NPCName[$NPCNameList.indexOf("Eden")].penis is "none">>
+		<<if checkSextoysGift("Eden") and $NPCName[$NPCNameList.indexOf("Eden")].penis is "none" and checkIfNPCHasCategorySextoy("Eden","strap-on").length <= 5>>
 			<<link [[Gift Eden a strap-on|Eden Gift Strap-on]]>><</link>>
 			<br><br>
 		<</if>>
@@ -519,29 +523,29 @@ You are in Eden's cabin.
 <br><br>
 
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Cabin Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Cabin Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Cabin Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Cabin Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
 
-<<link [[Sleep for 8 hours|Cabin Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Cabin Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Cabin Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Cabin Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Cabin Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Cabin Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Cabin Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Cabin Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Cabin Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Cabin Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Cabin Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Cabin Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Cabin Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Cabin Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hour|Cabin Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hour|Cabin Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Cabin Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Cabin Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 
 <<link [[Climb out of bed|Eden Cabin]]>><<endevent>><<loadTempHairStyle>><</link>>
@@ -937,9 +941,9 @@ You are in the clearing outside Eden's cabin. The surrounding trees are so huge
 		<<link [[Just say you removed it|Eden Collar Remove]]>><</link>>
 		<br>
 	<<else>>
-		<<He>> stares at you for a moment longer, before returning to <<his>> business. 
+		<<He>> stares at you for a moment longer, before returning to <<his>> business.
 		<br><br>
-		
+
 		<<link [[Next|Eden Clearing]]>><<endevent>><</link>>
 		<br>
 	<</if>>
@@ -998,11 +1002,12 @@ You are in the clearing outside Eden's cabin. The surrounding trees are so huge
 	<br><br>
 <<elseif $exposed gte 1>>
 	<span class="lewd">Your <<lewdness>> embarrasses you, but it's alright if
-	<<if $hour lte 10 or ($hour gte 11 and $hour lte 14 and $edenhunting isnot 1) or $hour gte 15>>
-		Eden's here.</span>
-	<<else>>
-		you're alone.</span>
-	<</if>>
+		<<if $hour lte 10 or ($hour gte 11 and $hour lte 14 and $edenhunting isnot 1) or $hour gte 15>>
+			Eden's here.
+		<<else>>
+			you're alone.
+		<</if>>
+	</span>
 	<br><br>
 <</if>>
 
@@ -1098,18 +1103,18 @@ You are in the clearing outside Eden's cabin. The surrounding trees are so huge
 		<br><br>
 
 		<<if $submissive gte 1150>>
-		  		"You're hurt! W-what happened?" You rush over to examine <<his>> wounds, tears brimming in your eyes.
+			"You're hurt! W-what happened?" You rush over to examine <<his>> wounds, tears brimming in your eyes.
 		<<elseif $submissive lte 850>>
-		  		"You're hurt! How could you be so reckless?" You stomp over to examine <<his>> wounds.
+			"You're hurt! How could you be so reckless?" You stomp over to examine <<his>> wounds.
 		<<else>>
-		  		"You're hurt!" you cry, and rush over to examine <<his>> wounds.
+			"You're hurt!" you cry, and rush over to examine <<his>> wounds.
 		<</if>>
 		<br><br>
 
 		Eden brushes your concern off with a wave of <<his>> hand. "I'm fine," <<he>> says. "Ran into some wolves, but I scared them off."
 		<<He>> wipes some sweat from <<his>> face and brushes a few clumps of dirt off <<his>> pants. "I'm going to fix myself up." Making <<his>> way to the cabin door, <<he>> pauses just as <<he>> reaches for the handle.
 		Turning to face you, <<he>> gives you a wary look. "Better get in. Don't want you getting hurt too."
-	 	<br><br>
+		<br><br>
 
 		<<link [[Offer to patch wounds (0:20)|Eden Wounds]]>><<pass 20>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>>
 		<br>
@@ -1140,7 +1145,7 @@ You are in the clearing outside Eden's cabin. The surrounding trees are so huge
 <<elseif $hour is 16>>
 
 	<<if $NPCName[$NPCNameList.indexOf("Eden")].lust gte 26 and $edenchoplust isnot 1>><<set $edenchoplust to 1>>
-	<!-- <<npc Eden>><<person1>> -->Eden is chopping firewood. <<He>> stretches <<his>> back and spots you watching <<him>>. "I could use a break," <<he>> says. <<He>> marches towards you, covered in sweat and axe still in hand. <<He>> can't realise how menacing <<he>> looks. 
+	<!-- <<npc Eden>><<person1>> -->Eden is chopping firewood. <<He>> stretches <<his>> back and spots you watching <<him>>. "I could use a break," <<he>> says. <<He>> marches towards you, covered in sweat and axe still in hand. <<He>> can't realise how menacing <<he>> looks.
 		<<if $NPCName[$NPCNameList.indexOf("Eden")].dom gte 75>>
 			<<He>> drops the axe and pulls you into a deep kiss. <<takeKissVirginity "Eden" `($syndromeeden gte 1?"loveInterest":"romantic")`>>
 		<<else>>
@@ -1428,7 +1433,7 @@ Eden leads you back to the safety of <<his>> cabin.
 	<br>
 	"But you don't have to go. I'll do it," you say.
 	<br><br>
- 	<<He>> sighs at your words, looking away in consideration. "Fine," <<he>> says, "but don't go overboard."
+	<<He>> sighs at your words, looking away in consideration. "Fine," <<he>> says, "but don't go overboard."
 	<br>
 	You smile at <<him>> in thanks, leaving <<him>> be.
 	<br><br>
@@ -1472,7 +1477,7 @@ Eden leads you back to the safety of <<his>> cabin.
 	<br>
 	"But it's just for two more things," you say.
 	<br><br>
- 	For a few seconds, Eden shifts <<his>> gaze to the worn out curtains hanging from the cabin windows, before <<his>> eyes land back on you.
+	For a few seconds, Eden shifts <<his>> gaze to the worn out curtains hanging from the cabin windows, before <<his>> eyes land back on you.
 	"Fine," <<he>> says, albeit more reluctantly than last time. "But we're making the coat stand."
 	<br>
 	You smile at <<him>> in thanks, leaving <<him>> be.
@@ -1523,7 +1528,7 @@ Eden leads you back to the safety of <<his>> cabin.
 		"That's fine," you say.
 	<</if>>
 	<br><br>
- 	"Fine," <<he>> says. "Tell me when you want to start."
+	"Fine," <<he>> says. "Tell me when you want to start."
 	<br>
 	You smile at <<him>> in gratitude.
 	<br><br>
@@ -1555,31 +1560,39 @@ Eden leads you back to the safety of <<his>> cabin.
 <<effects>>
 <<switch $edenloveseat>>
 	<<case 1>>
-		Grabbing some leftover wood, you and Eden start cutting out the side arm rests, drilling in some holes and attaching them together with screws. Next, you cut out the base stretcher for the arm rests, then work on cutting out the front and back boards.<br>
+		Grabbing some leftover wood, you and Eden start cutting out the side arm rests, drilling in some holes and attaching them together with screws. Next, you cut out the base stretcher for the arm rests, then work on cutting out the front and back boards.
+		<br>
 		With that done, you attach the arm rest to the stretcher, completing the first part of your project.
 	<<case 2>>
-		This time, the two of you cut out the seat base, creating notches in the inner support. Next, you cut out the seat slats, and start assembling them together by placing the slats in the notches.<br>
+		This time, the two of you cut out the seat base, creating notches in the inner support. Next, you cut out the seat slats, and start assembling them together by placing the slats in the notches.
+		<br>
 		To finish it up, you join the outer frame with some superglue and a few screws.
 	<<case 3>>
-		Now, you and Eden place your inner support planks and screw them in, aligning the cleats and attaching them with screws.<br>
+		Now, you and Eden place your inner support planks and screw them in, aligning the cleats and attaching them with screws.
+		<br>
 		You do the same with attaching the slats in the notches. The loveseat's foundation is halfway done.
 	<<case 4>>
-		You and Eden turn your attention to creating the upright back of the loveseat.<br>
+		You and Eden turn your attention to creating the upright back of the loveseat.
+		<br>
 		It's thankfully a similar process of cutting out notches and placing the supporting slats inside.
 	<<case 5>>
-		With most of the loveseat's foundation complete, you and Eden spend your time sanding the wood down in the clearing.<br>
+		With most of the loveseat's foundation complete, you and Eden spend your time sanding the wood down in the clearing.
+		<br>
 		Though it's not the easiest process in the world, you know that sanding before the foundation is assembled would save you a lot of time in the long run.
 	<<case 6>>
-		Now that the foundation's been sanded, you and Eden start putting it all together. You position the seats, securing them by drilling in some screws in the corner.<br>
+		Now that the foundation's been sanded, you and Eden start putting it all together. You position the seats, securing them by drilling in some screws in the corner.
+		<br>
 		Next, you join the upright back, once again securing them in with screws. You and Eden step back and take a look at your work. The only thing missing now are some cushions.
 		<br><br>
 
 		<i>You can buy materials in the shopping centre.</i>
 	<<case 7>>
-		Using the foam cushions as a template, you cut the batting and attach them to the cushions with superglue. Next, you cut out the cloth and start sewing together some cushion covers.<br>
+		Using the foam cushions as a template, you cut the batting and attach them to the cushions with superglue. Next, you cut out the cloth and start sewing together some cushion covers.
+		<br>
 		With that done, you place the covers around your foam base, completing your cushions.
 	<<case 8>>
-		As the last step, you place your cushions on top of the frame, completing your loveseat. Knowing that this wasn't an easy project to tackle, looking at your work fills you with a sense of pride.<br>
+		As the last step, you place your cushions on top of the frame, completing your loveseat. Knowing that this wasn't an easy project to tackle, looking at your work fills you with a sense of pride.
+		<br>
 		You glance around the cabin one more time. With all your new additions, the cabin's looking better than ever, and you smile to yourself in satisfaction for a job well done.
 <</switch>>
 <br><br>
@@ -2217,7 +2230,7 @@ Using the broom and dustpan, you sweep the cabin floor until it's clean.
 :: Eden Salve
 <<effects>>
 <!-- <<npc Eden>><<person1>> -->
-You gather the ingredients for your salve and boil the mixture on the stove. When you're done, you leave your salve on the table to cool and dry.
+You gather the ingredients for your salve and melt the mixture on the stove. When you're done, you leave your salve on the table to cool and dry.
 <br><br>
 <<if $salve is 1>>
 	You have 1 jar of salve.
@@ -2230,7 +2243,7 @@ You gather the ingredients for your salve and boil the mixture on the stove. Whe
 :: Eden Soap
 <<effects>>
 <!-- <<npc Eden>><<person1>> -->
-You gather the ingredients for your soap and boil the mixture on the stove. When you're done, you leave your soap on the table to cool and set.
+You gather the ingredients for your soap and melt the mixture on the stove. When you're done, you leave your soap on the table to cool and set.
 <br><br>
 <<if $soap is 1>>
 	You have 1 bar of soap.
diff --git a/game/overworld-forest/loc-cabin/punishment.twee b/game/overworld-forest/loc-cabin/punishment.twee
index 369c228794024c80a6292f2a12a0066bd6e8dded..32a5e3ab1e4d22d463fe298154c3ea053de40419 100644
--- a/game/overworld-forest/loc-cabin/punishment.twee
+++ b/game/overworld-forest/loc-cabin/punishment.twee
@@ -103,6 +103,7 @@ Fearing whatever Eden has in store for you, you pull hard.
 	<<if $location is "forest">>
 		You're in the clear, but you know Eden's already on your trail. <span class="red">Something is hunting you.</span>
 		<<set $foresthunt to 1>>
+		<br><br>
 
 		<<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>>
 		<br>
@@ -124,7 +125,7 @@ Fearing whatever Eden has in store for you, you pull hard.
 <<set $outside to 1>><<set $location to "forest">><<effects>>
 
 <<if $phase is 1>>
-	Eden's right. You've been away for far too long. You probably couldn't break free, anyway. 
+	Eden's right. You've been away for far too long. You probably couldn't break free, anyway.
 	<br><br>
 
 	<<He>> doesn't loosen <<his>> grip, but <<he>> eases up on <<his>> handling of you as you march through the forest.
@@ -303,7 +304,7 @@ Fearing whatever Eden has in store for you, you pull hard.
 	<</if>>
 	<br><br>
 
-	The usual familiarity and comfort of the cabin is disrupted by a foreboding feeling in your stomach. Your dread is reinforced when you see the cage in the corner. 
+	The usual familiarity and comfort of the cabin is disrupted by a foreboding feeling in your stomach. Your dread is reinforced when you see the cage in the corner.
 <</if>>
 <<set $outside to 0>><<set $location to "cabin">>
 <br><br>
@@ -371,7 +372,7 @@ Fearing whatever Eden has in store for you, you pull hard.
 	"Oh, so now you're behaving?" Eden spits. "Fucking great timing, isn't it? Being good when you know you can't get away with shit."
 <<elseif $phase is 0>>
 	<<if $physiqueSuccess>>
-		Knowing the punishment that is about to unfurl, you dig your heels into the floor and pull. Eden, more confident now that you're home, had loosened <<his>> grip, allowing you to pull free. 
+		Knowing the punishment that is about to unfurl, you dig your heels into the floor and pull. Eden, more confident now that you're home, had loosened <<his>> grip, allowing you to pull free.
 		<br><br>
 
 		Before <<he>> can turn and lunge, you dart to the door, practically ripping it off of its hinges and sprinting back into the forest. Eden is right behind you, heavy footfalls pounding into the ground as <<he>> gives chase.
@@ -450,7 +451,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 
 			Having done all you can, you lay on your side and try your best to sleep.
 		<<else>>
-			However, after one strike, you freeze. It was much louder than you remembered. Over on the furred mattress, the <<nnpc_title "Eden">> stirs briefly, before resting once again. 
+			However, after one strike, you freeze. It was much louder than you remembered. Over on the furred mattress, the <<nnpc_title "Eden">> stirs briefly, before resting once again.
 			<br><br>
 
 			It's too risky. You should try again when Eden is distracted with something else.
@@ -479,10 +480,10 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 	<</if>>
 <<elseif $hour lte 8>>/* breakfast */
 	<<if $NPCName[$NPCNameList.indexOf("Eden")].trust gte 100 or $edenCaged.days gte 5>>
-		The sound of the cage creaking open rouses you from your slumber. Eden is crouched in the opening. "Come on. Punishment's over." 
+		The sound of the cage creaking open rouses you from your slumber. Eden is crouched in the opening. "Come on. Punishment's over."
 		<br><br>
 
-		<<He>> moves to the side as you clamber out, watching you stand and stretch. Before you can get far, the <<nnpc_title "Eden">> grabs your chin, angling it so that you're looking <<him>> in the eye. 
+		<<He>> moves to the side as you clamber out, watching you stand and stretch. Before you can get far, the <<nnpc_title "Eden">> grabs your chin, angling it so that you're looking <<him>> in the eye.
 		<br><br>
 
 		"You'd best behave from now on. This was me being kind." <<His>> face is stern as <<he>> drops <<his>> hand, leaving you standing alone to contemplate the words of warning.
@@ -606,7 +607,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 	<br>
 <<elseif $hour lte 22>>/* dinnertime */
 	<<if $phase is 2>>
-		Resigned to your cage with nothing else to do, you decide to catch some sleep. When you wake up, your side hurts from the uncomfortable angle you're at. 
+		Resigned to your cage with nothing else to do, you decide to catch some sleep. When you wake up, your side hurts from the uncomfortable angle you're at.
 		<br><br>
 
 		The sound of Eden making dinner wakes you up. <<He>> gives you none, and ignores you in favour of reading afterwards.
@@ -652,7 +653,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 
 			Having done all you can, you lay on your side and try your best to sleep.
 		<<else>>
-			However, after one strike, you freeze. It was much louder than you were expecting. Over on the furred mattress, the <<nnpc_title "Eden">> stirs briefly, before resting once again. 
+			However, after one strike, you freeze. It was much louder than you were expecting. Over on the furred mattress, the <<nnpc_title "Eden">> stirs briefly, before resting once again.
 			<br><br>
 
 			It's too risky. You should try again when Eden is distracted with something else.
@@ -756,7 +757,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 	"You little fucking whore!" Eden yells out, rubbing at <<his>> side. <<He>> kicks you back into the cage, quickly locking it up again.<<pain 10>><<npcincr Eden trust -10>><<ggpain>><<ltrust>>
 	<br><br>
 
-	"It's a wonder I don't tie you to a tree and leave you for anyone to use," <<he>> threatens, before leaving you alone once more. 
+	"It's a wonder I don't tie you to a tree and leave you for anyone to use," <<he>> threatens, before leaving you alone once more.
 	<br><br>
 
 	<<clotheson>>
@@ -802,7 +803,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 	<</if>>
 	<br><br>
 
-	Eden cocks an eyebrow at your request, putting <<his>> book down before walking over to the cage. Squatting down to make eye contact, <<he>> smirks. "What do I get in return?" 
+	Eden cocks an eyebrow at your request, putting <<his>> book down before walking over to the cage. Squatting down to make eye contact, <<he>> smirks. "What do I get in return?"
 	<br><br>
 
 	<<link [["Offer to get " + $NPCList[0].pronouns.him + " off"|Eden Caged Evening 2]]>><<set $phase to 0>><<npcincr Eden trust 5>><<npcincr Eden dom 1>><</link>><<gtrust>><<gdom>>
@@ -810,7 +811,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 	<<link [[Nevermind|Eden Caged Evening 2]]>><<set $phase to 1>><<npcincr Eden trust -5>><<npcincr Eden dom -1>><</link>><<ltrust>><<ldom>>
 	<br>
 <<else>>
-	The rest of the night is silent, the crackling of the fire and pages in Eden's book turning all you can hear. A few hours pass before the <<nnpc_title "Eden">> gets up and gets ready for bed. 
+	The rest of the night is silent, the crackling of the fire and pages in Eden's book turning all you can hear. A few hours pass before the <<nnpc_title "Eden">> gets up and gets ready for bed.
 	<br><br>
 
 	"Behave and I might let you back in the bed one day," <<he>> says before climbing onto the furred mattress and falling asleep.
@@ -834,7 +835,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 <<set $outside to 0>><<set $location to "cabin">><<effects>>
 
 <<if $phase is 1>>
-	"Actually, I'm okay," you insist. 
+	"Actually, I'm okay," you insist.
 	<br><br>
 
 	Eden's face drops and <<he>> grinds <<his>> jaw. Undoing the lock, <<he>> reaches in and grabs you by the hair. <<He>> drags you out of the cage and starts pulling your legs apart.
@@ -922,7 +923,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 	<<else>>
 		The anger recedes from Eden's face, brows relaxing as <<he>> lets you go.<<npcincr Eden trust 10>><<gtrust>>
 		<br>
-		"Good pet. Shame that you changed your mind on the exchange, though. I might have let you walk around on your leash a little before bed." 
+		"Good pet. Shame that you changed your mind on the exchange, though. I might have let you walk around on your leash a little before bed."
 		<br><br>
 
 		Getting up from you, Eden fixes <<his>> clothes, then puts you back in the cage, locking it tight once more. <<He>> returns to <<his>> spot by the fire.
@@ -966,7 +967,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 :: Eden Caged Evening Stretch
 <<set $outside to 0>><<set $location to "cabin">><<effects>>
 
-<<tearful>> you crawl out of the cage. The stiffness slowly leaves your body as you rise to your feet. 
+<<tearful>> you crawl out of the cage. The stiffness slowly leaves your body as you rise to your feet.
 <br><br>
 
 <<if $worn.neck.collared isnot 1>>
@@ -976,7 +977,7 @@ You are locked in a cage in Eden's cabin. It's small and cramped, impossible to
 "Come on." Eden tugs on your leash as <<he>> heads towards the door. You follow <<him>> outside, breathing in the fresh air. The <<nnpc_title "Eden">> keeps your leash in <<his>> hand as you walk around the clearing. <<He>> watches your every move.<<stress -6>><<lstress>>
 <br><br>
 
-After a few minutes, <<he>> calls out for you again. "That's enough. Come on, time for bed now." 
+After a few minutes, <<he>> calls out for you again. "That's enough. Come on, time for bed now."
 <br><br>
 
 You're taken back inside and returned to the confines of the metal prison you currently call home. Eden climbs into bed.
@@ -1113,10 +1114,10 @@ Alone with only Eden's snores to keep you company, you wonder what to do.
 :: Eden Caged Escape
 <<set $outside to 0>><<set $location to "cabin">><<effects>>
 
-The sound of running water is enough cover to kick at the gate again. Using all of your strength, you lash out - once, twice, three times before the hinges pop loose. 
+The sound of running water is enough cover to kick at the gate again. Using all of your strength, you lash out - once, twice, three times before the hinges pop loose.
 <br><br>
 
-The adrenaline surges through your veins. If you want to escape, now's your chance. 
+The adrenaline surges through your veins. If you want to escape, now's your chance.
 <br><br>
 
 <<link [[Run for it|Eden Caged Freedom]]>><<set $phase to 1>><<set $stress -= 1000>><<npcincr Eden dom -1>><</link>><<llltrust>><<ldom>>
@@ -1128,11 +1129,11 @@ The adrenaline surges through your veins. If you want to escape, now's your chan
 <<set $outside to 0>><<set $location to "cabin">><<effects>>
 
 <<if $phase is 1>>
-	Determined to be free, you crawl out of the metal prison, knees popping as you stand. You're able to snatch a towel and wrap it around yourself before creeping to the door, your heart pounding with each step. But Eden doesn't notice. 
+	Determined to be free, you crawl out of the metal prison, knees popping as you stand. You're able to snatch a towel and wrap it around yourself before creeping to the door, your heart pounding with each step. But Eden doesn't notice.
 	<<towelup>>
 	<br><br>
 
-	Sliding through the slight crack you make in the door, your feet move before your brain registers the feeling. At a full sprint, you make your way into the forest, the cabin fading behind the trees the further you get. 
+	Sliding through the slight crack you make in the door, your feet move before your brain registers the feeling. At a full sprint, you make your way into the forest, the cabin fading behind the trees the further you get.
 	<br><br>
 
 	You know that Eden will be mad when <<he>> finds you again.
@@ -1141,13 +1142,13 @@ The adrenaline surges through your veins. If you want to escape, now's your chan
 	<<link [[Next|Forest]]>><<unset $edenCaged>><<set $edenCagedEscape to true>><<endevent>><<set $eventskip to 1>><<set $forest to 80>><</link>>
 	<br>
 <<else>>
-	The cage door pops open off its hinges, and for a fleeting moment hope blooms in your chest at the prospect of escape. However, the hope is soon replaced by guilt when you remember how hurt Eden was bringing you home. 
+	The cage door pops open off its hinges, and for a fleeting moment hope blooms in your chest at the prospect of escape. However, the hope is soon replaced by guilt when you remember how hurt Eden was bringing you home.
 	<br><br>
 
-	Swallowing, you sit back down and hug your legs to your chest. Soon, Eden emerges from the bathroom, drying <<his>> hair off with a towel. <<He>> pauses when he sees the state of the cage. 
+	Swallowing, you sit back down and hug your legs to your chest. Soon, Eden emerges from the bathroom, drying <<his>> hair off with a towel. <<He>> pauses when <<he>> sees the state of the cage.
 	<br><br>
 
-	"You're that sick of being cooped up, huh?" <<he>> says. "Well, I can't blame you for that. Come on, you've earned your place. Just don't piss me off again." Eden juts <<his>> finger in your face as you crawl out. 
+	"You're that sick of being cooped up, huh?" <<he>> says. "Well, I can't blame you for that. Come on, you've earned your place. Just don't piss me off again." Eden juts <<his>> finger in your face as you crawl out.
 	<br><br>
 
 	You watch as <<he>> folds the cage up and puts it away. You hope you never see it again.
diff --git a/game/overworld-forest/loc-cabin/valentines.twee b/game/overworld-forest/loc-cabin/valentines.twee
index d481e18ff5ee915332a8471d317b0824a8b3e1be..03edc1639da56fd141f34dd13ff0a9fb3104e256 100644
--- a/game/overworld-forest/loc-cabin/valentines.twee
+++ b/game/overworld-forest/loc-cabin/valentines.twee
@@ -127,8 +127,7 @@ Eden looks away from you, sporting a slight blush. "I thought we could spend mor
 As you step into the cabin's living area, the melody playing from the radio catches your attention. Something about it sounds strangely familiar. Then it hits you. It's the song. The first song that you and Eden danced to.
 <br><br>
 
-You glance at Eden. By the look on <<his>> face, it seems <<hes>> had the same realisation as you. A look of determination flashes in <<his>> eyes and <<he>> turns to you. There's no hesitation this time. Being the first to act,
-<<he>> wraps <<his>> hands around your waist and pulls you towards <<him>>. You wind yours around <<his>> neck in turn, and once again, begin your slow waltz around the cabin.
+You glance at Eden. By the look on <<his>> face, it seems <<hes>> had the same realisation as you. A look of determination flashes in <<his>> eyes and <<he>> turns to you. There's no hesitation this time. Being the first to act, <<he>> wraps <<his>> hands around your waist and pulls you towards <<him>>. You wind yours around <<his>> neck in turn, and, once again, begin your slow waltz around the cabin.
 <br><br>
 
 <<link [[Next|Eden Valentines Dance 2]]>><<npcincr Eden love 1>><</link>>
@@ -136,8 +135,7 @@ You glance at Eden. By the look on <<his>> face, it seems <<hes>> had the same r
 :: Eden Valentines Dance 2
 <<effects>>
 
-As Eden holds you in <<his>> arms, the rest of the world seems to fade away. Even though you've danced before, this moment seems different. It's a familiar mix of tenderness and nostalgic vulnerability. Eden seems to feel it too, and although <<hes>> improved,
-a recognisable, but no less endearing clumsiness leaks into <<his>> movements. As a matter of fact, <<his>> light blush and awkward missteps bring you back to the way <<he>> bared <<his>> heart to you in the first dance you shared.
+As Eden holds you in <<his>> arms, the rest of the world seems to fade away. Even though you've danced before, this moment seems different. It's a familiar mix of tenderness and nostalgic vulnerability. Eden seems to feel it too, and although <<hes>> improved, a recognisable but no less endearing clumsiness leaks into <<his>> movements. As a matter of fact, <<his>> light blush and awkward missteps bring you back to the way <<he>> bared <<his>> heart to you in the first dance you shared.
 <br><br>
 
 You look back at the memory and realise that this is what makes Eden who <<he>> is. Through <<his>> outer brashness to the softness <<he>> hides deep down, you see how much Eden has tried for you, and as a result, how far you've come together.
diff --git a/game/overworld-forest/loc-cabin/widgets.twee b/game/overworld-forest/loc-cabin/widgets.twee
index e99c21fa0dec2435c18f4185ab4c228e065c3759..bc428cb78be42331b533570b19dd3f187e3d19b1 100644
--- a/game/overworld-forest/loc-cabin/widgets.twee
+++ b/game/overworld-forest/loc-cabin/widgets.twee
@@ -224,7 +224,7 @@
 	<<elseif $edenfurniture is 3 and $edenloveseat lt 7>>
 		<<link [[Work on the loveseat (3:00)|Eden Loveseat Work]]>><<pass 2 hours>><<pass 1 hour>><</link>>
 		<br>
-	<</if>>	
+	<</if>>
 	<<if $hour is 17 and $edenjoin is 1>>
 		<<link [[Ask to join Eden in the bath|Eden Bath Join]]>><<npcincr Eden love 1>><<pass 30>><</link>><<glove>>
 		<br>
@@ -377,7 +377,7 @@
 		<span class="green">The spring is clean and clear.</span>
 		<br>
 
-		<<if !$edenspringintro and (($hour gte 9 and $hour lte 10) or ($hour is 15) or ($hour is 16))>> 
+		<<if !$edenspringintro and (($hour gte 9 and $hour lte 10) or ($hour is 15) or ($hour is 16))>>
 			<<link [[Relax in the spring (0:30)|Eden Spring Intro]]>><</link>><<lstress>>
 		<<else>>
 			<<link [[Relax in the spring (0:30)|Clearing Spring]]>><<unset $edenpush>><<endevent>><<pass 30>><<stress -6>><</link>><<lstress>>
@@ -546,7 +546,7 @@
 					<<set _edenPreyEvent to true>>
 				<</if>>
 		<</switch>>
-		
+
 		<<if _edenPreyEvent>>
 			<<set $edenPreyWeekly to true>>
 		<</if>>
@@ -578,7 +578,7 @@
 	<<else>>
 		Gwylan
 	<</if>>
-	 bursts from the treeline and rushes to your side. "Hey! You alright-"
+	bursts from the treeline and rushes to your side. "Hey! You alright-"
 	<br><br>
 
 	<<if $gwylan_eden_coop gte 4>>
diff --git a/game/overworld-forest/loc-forest/events.twee b/game/overworld-forest/loc-forest/events.twee
index f917d1aff35d9b58777fe2ae7d9744615a37658e..befe0cae3169f0851f4d3284b72ed3a73408d425 100644
--- a/game/overworld-forest/loc-forest/events.twee
+++ b/game/overworld-forest/loc-forest/events.twee
@@ -268,7 +268,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 
 	<br><br>
 
-	<<link [[Don't struggle|Forest Hunter Intro]]>><<endcombat>><</link>>
+	<<link [[Don't struggle|Forest Hunter Intro]]>><<clotheson>><<endcombat>><</link>>
 	<br>
 	<<link [[Resist|Forest Hunter Resist Molestation]]>><<set $enemyanger += 200>><<set $molestationstart to 1>><</link>>
 	<br>
@@ -289,18 +289,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 
 <<location "cabin">><<effects>>
 
-<<if $upperoff isnot 0>>
-	<<upperruined>>
-<</if>>
-<<if $loweroff isnot 0>>
-	<<lowerruined>>
-<</if>>
-<<if $underloweroff isnot 0>>
-	<<underlowerruined>>
-<</if>>
-<<if $underupperoff isnot 0>>
-	<<underupperruined>>
-<</if>>
+<<clothesruined>>
 
 <<npc Eden>><<initnpc Eden>><<person1>>
 
@@ -395,7 +384,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 <<else>>
 	Battered and bruised by <<his>> assault, you are helpless as <<he>> retrieves <<his>> rope from the ground.
 	<br><br>
-	<<link [[Next|Forest Hunter Intro]]>><<endcombat>><</link>>
+	<<link [[Next|Forest Hunter Intro]]>><<clotheson>><<endcombat>><</link>>
 	<br>
 <</if>>
 
@@ -523,17 +512,17 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 	You leave the trail and walk into the dense forest. You avoid the pair, but your journey is slowed some.
 	<br><br>
 <<elseif $phase is 1>>
-	<<generate1>><<generate2>>A <<person1>><<person>> and <<person2>><<person>> come into view. They eye you up as they walk past.
+	<<generate1>><<generate2>>A <<fullGroup>> come into view. They eye you up as they walk past.
 	<<gstress>><<stress 1>>
 	<br><br>
 	<<endevent>>
 <<elseif $phase is 2>>
-	<<generate1>><<generate2>>A <<person1>><<person>> and <<person2>><<person>> come into view. They eye you up as they walk past, clearly enjoying the view.
+	<<generate1>><<generate2>>A <<fullGroup>> come into view. They eye you up as they walk past, clearly enjoying the view.
 	<<exhibitionism3>>
 	<br><br>
 	<<endevent>>
 <<elseif $phase is 3>>
-	<<generate1>><<generate2>>A <<person1>><<person>> and <<person2>><<person>> come into view. They eye you up as they walk past, clearly shocked at seeing a naked <<girl>> in the middle of the forest, but not complaining. <<flaunting>> you wink as you pass.
+	<<generate1>><<generate2>>A <<fullGroup>> come into view. They eye you up as they walk past, clearly shocked at seeing a naked <<girl>> in the middle of the forest, but not complaining. <<flaunting>> you wink as you pass.
 	<<exhibitionism5>>
 	<br><br>
 	<<endevent>>
@@ -551,7 +540,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 	<<molested>>
 
 	<<generate1>><<generate2>><<maninit>>
-	A <<person1>><<person>> and <<person2>><<person>> walk into view. <<person1>>As they walk by, they reach out and grab you!
+	A <<fullGroup>> walk into view. <<person1>>As they walk by, they reach out and grab you!
 	<br><br>
 	<<if ($loveInterest.primary is "Eden" or $loveInterest.secondary is "Eden") and (random(1, 2) is 2 or $eden_rescue isnot 1) and $forest lte 20>>
 		<<set $rescue to 2>>
@@ -860,7 +849,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 	<br><br>
 
 	<<if $forest_shop_intro isnot 1 and $gwylan_rescue isnot 1>>
-		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
+		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
 		<br><br>
 
 		"I swear they get more aggressive every day," the <<nnpc_gendery "Gwylan">> mutters. <<nnpc_He "Gwylan">> steps out from the treeline, and walks toward you. "You okay? Good thing I was in the area."
@@ -872,7 +861,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 		"I have a shop right by the outskirts of the forest," <<nnpc_he "Gwylan">> says. "You can't miss it. I sell-" <<nnpc_he "Gwylan">> pauses. "My grand<<if $pronoun is "m">>father<<else>>mother<</if>> sells-" another pause. "I sell knick-knacks there. Things you won't find in normal shops. Even I don't know what I have in stock!" <<nnpc_He "Gwylan">> sounds proud.
 
 	<<else>>
-		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
+		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
 			<br><br>
 
 		"I swear they get more aggressive every day," Gwylan mutters. <<nnpc_He "Gwylan">> steps out from the treeline, and walks toward you. "You okay? Good thing I was in the area."
@@ -949,7 +938,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 		The <<beasttype>> recoils in pain and fear, but the other is eager for a go.
 		<<combatTrainAdvance>>
 		<br><br>
-		<<link [[Next|Forest Wolf Sex2]]>><</link>>
+		<<link [[Next|Forest Wolf2]]>><</link>>
 	<<else>>
 		The <<beasttype>> recoils in pain and fear.
 		<<combatTrainAdvance>>
@@ -1204,7 +1193,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 	<br><br>
 
 	<<if $forest_shop_intro isnot 1 and $gwylan_rescue isnot 1>>
-		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> dives back into the churning water.
+		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> dives back into the churning water.
 		<br><br>
 
 		"The rivers keep getting more dangerous," the <<nnpc_gendery "Gwylan">> mutters. <<nnpc_He "Gwylan">> steps out from the treeline, and walks toward you. "You okay? Good thing I was in the area." <<nnpc_He "Gwylan">> grasps your arm and pulls you out of the water.
@@ -1216,7 +1205,7 @@ Six pairs of eyes stare at you through the dim light. The pack advances on you.
 		"I have a shop right by the outskirts of the forest," <<nnpc_he "Gwylan">> says. "You can't miss it. I sell-" <<nnpc_he "Gwylan">> pauses. "My grand<<if $pronoun is "m">>father<<else>>mother<</if>> sells-" another pause. "I sell knick-knacks there. Things you won't find in normal shops. Even I don't know what I have in stock!" <<nnpc_He "Gwylan">> sounds proud.
 
 	<<else>>
-		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> dives back into the churning water.
+		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> dives back into the churning water.
 			<br><br>
 
 		"The rivers keep getting more dangerous," the <<nnpc_gendery "Gwylan">> mutters. <<nnpc_He "Gwylan">> steps out from the treeline, and walks toward you. "You okay? Good thing I was in the area." <<nnpc_He "Gwylan">> grasps your arm and pulls you out of the water.
@@ -1428,7 +1417,7 @@ The snakes slither off of you, escaping through nooks and crannies all around th
 	<<violence 1>>
 	<<neutral 1>>
 	<<molested>>
-	
+
 	<<beastCombatInit>><<set $enemytrust -= 40>><<set $enemyanger += 40>><<set $enemyhealthmax to 400>><<set $enemyhealth to 400>><<set $enemyarousalmax to 1000>>
 	You continue on your path. You don't get far before hearing a roar behind you.
 	<<if $monster is 1>>
@@ -1818,7 +1807,7 @@ You throw your head back and howl into the canopy. The <<if $phase is 1>><<beast
 	<br><br>
 
 	<<if $forest_shop_intro isnot 1 and $gwylan_rescue isnot 1>>
-		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
+		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
 		<br><br>
 
 		"I swear they get more aggressive every day," the <<nnpc_gendery "Gwylan">> mutters. <<nnpc_He "Gwylan">> steps out from the treeline, walking toward you. "You okay? Good thing I was in the area!"
@@ -1830,7 +1819,7 @@ You throw your head back and howl into the canopy. The <<if $phase is 1>><<beast
 		"I have a shop right by the outskirts of the forest," <<nnpc_he "Gwylan">> says. "You can't miss it. I sell-" <<nnpc_he "Gwylan">> pauses. "My grand<<if $pronoun is "m">>father<<else>>mother<</if>> sells-" another pause. "I sell knick-knacks there. Things you won't find in normal shops. Even I don't know what I have in stock!" <<nnpc_He "Gwylan">> sounds proud.
 
 	<<else>>
-		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
+		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
 		<br><br>
 
 		"I swear they get more aggressive every day," Gwylan mutters. <<nnpc_He "Gwylan">> steps out from the treeline, walking toward you. "You okay? Good thing I was in the area!"
@@ -2072,7 +2061,6 @@ After a while <<he>> looks at the sky. "I need to get back to work," <<he>> says
 <br><br>
 
 You sit on the grass and look up at <<him>>. "I'm just looking for some company," you say, patting the grass next to you.<<promiscuity2>>
-<br><br>
 
 <<if $seductionrating gte $seductionrequired>>
 <<He>> hesitates. You reach up, take <<his>> arm and gently pull <<him>> on top of you.
@@ -2243,13 +2231,13 @@ You creep forward. Unfortunately, the deer turns and runs in the other direction
 :: Forest Slime Pair Submit willingly
 <<location "forest">><<effects>>
 <<generate1>><<generate2>>
-You stop in the middle of the trail, and wait. A <<person1>><<person>> and <<person2>><<person>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them.
+You stop in the middle of the trail, and wait. A <<fullGroup>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them.
 <br>
 <<promiscuity4>>
 "You lost?" the <<person1>><<person>> asks.
 <br><br>
 
-"I need you to have me." you say.
+"I need you to have me," you say.
 <<if $worn.lower.name isnot "naked">>
 	<<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>>
 	<<if $worn.under_lower.name is "naked">>
@@ -2284,7 +2272,7 @@ The pair share a grin. "We'll be happy to oblige," <<he>> says, stepping closer.
 :: Forest Slime Pair Obey
 <<location "forest">><<effects>>
 <<generate1>><<generate2>>
-You stop in the middle of the trail, and wait. A <<person1>><<person>> and <<person2>><<person>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them.
+You stop in the middle of the trail, and wait. A <<fullGroup>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them.
 <br><br>
 "You lost?" the <<person1>><<person>> asks.
 <br><br>
@@ -2318,7 +2306,7 @@ The pair share a grin. "We'll be happy to oblige," <<he>> says, stepping closer.
 	<<ggwillpower>><<willpower 3>>
 	<br><br>
 
-	You stop in the middle of the trail, and wait. A <<person1>><<person>> and <<person2>><<person>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them.
+	You stop in the middle of the trail, and wait. A <<fullGroup>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them.
 	<br><br>
 	"You lost?" the <<person1>><<person>> asks.
 	<br><br>
@@ -2693,7 +2681,7 @@ A <<beasttype>> steps out from the forest, sniffs you, then mounts.
 	<br><br>
 
 	<<if $forest_shop_intro isnot 1 and $gwylan_rescue isnot 1>>
-		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
+		"Hey!" a <<nnpc_gendery "Gwylan">> shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
 		<br><br>
 
 		"I swear they get more aggressive every day," the <<nnpc_gendery "Gwylan">> mutters. <<nnpc_He "Gwylan">> steps out from the treeline, walking toward you. "You okay? Good thing I was in the area!"
@@ -2705,7 +2693,7 @@ A <<beasttype>> steps out from the forest, sniffs you, then mounts.
 		"I have a shop right by the outskirts of the forest," <<nnpc_he "Gwylan">> says. "You can't miss it. I sell-" <<nnpc_he "Gwylan">> pauses. "My grand<<if $pronoun is "m">>father<<else>>mother<</if>> sells-" another pause. "I sell knick-knacks there. Things you won't find in normal shops. Even I don't know what I have in stock!" <<nnpc_He "Gwylan">> sounds proud.
 
 	<<else>>
-		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem,  hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
+		"Hey!" Gwylan shouts from beyond the treeline. "Shoo!" <<nnpc_He "Gwylan">> throws a ?gwylanItem, hitting the <<beasttype>> in the side. <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs.
 		<br><br>
 
 		"I swear they get more aggressive every day," Gwylan mutters. <<nnpc_He "Gwylan">> steps out from the treeline, walking toward you. "You okay? Good thing I was in the area!"
@@ -3804,7 +3792,7 @@ The slimes disappear into the river. <<tearful>> you look around frantically.
 	You lean forward and kiss the <<person "normal">>, and <<he>> smiles against your mouth. <span class="lewd"><<His>> lips are sticky, and taste very sweet.</span>
 	<<takeKissVirginity $NPCList[0].fullDescription "consensual">><<promiscuity1>>
 	<<if $rng gte 81>>
-		<<He>> suddenly thrusts <<his>> tongue into your mouth. Something drips into your mouth, and your taste buds are assaulted by a dizzyingly sweet flavor.
+		<<He>> suddenly thrusts <<his>> tongue into your mouth. Something drips into your mouth, and your taste buds are assaulted by a dizzyingly sweet flavour.
 		<<nectarfed 10>><br>
 		Your mind gets foggy, and you barely notice <<him>> pushing you to the ground. <span class="purple">The vines behind <<him>> writhe to life, slithering behind <<him>>.</span>
 		<br><br>
@@ -3823,7 +3811,7 @@ The slimes disappear into the river. <<tearful>> you look around frantically.
 		<<He>> turns to walk away. "Well, hope that brings you good luck! See you around, <<girl>>!"
 		<br><br>
 
-		<<if $deviancy gte 35>>
+		<<if $deviancy gte 35 or $backgroundTraits.includes("plantlover")>>
 			<<link [[Seduce|Forest Plant Seduce]]>><</link>><<deviant3>>
 			<br>
 			<<link [[Say goodbye|Forest]]>><<endevent>><<set $eventskip to 1>><</link>>
@@ -3877,7 +3865,7 @@ The slimes disappear into the river. <<tearful>> you look around frantically.
 
 :: Forest Plant Passout
 <<effects>><<location "forest">>
-<<set $forest += random(15,-15)>><<set $forest = Math.clamp($forest, 21, 100)>>
+<<set $forest += random(-3,3)*5>><<set $forest = Math.clamp($forest, 21, 100)>>
 <<generatePlant1>><<person1>>
 
 <<orgasm>>
@@ -3886,7 +3874,7 @@ You wake up to a sudden rush of pleasure, and a wet sensation on your <<genitals
 
 "Oh, hi there!" You crane your neck, and see a <<person>> sitting between your legs, with <<plant_details>> braided into <<his>> hair.
 <<if $exposed lte 1>>
-	Your $worn.lower.name has been <<if $worn.lower.skirt is 1>>lifted up<<else>>pulled down<</if>>, <<if !$worn.under_lower.type.includes("naked")>> and your $worn.under_lower.name has been pulled aside,<</if>> <span class="pink">revealing your <<genitals>>.</span>
+	Your $worn.lower.name <<lowerhas>> been <<if $worn.lower.skirt is 1>>lifted up<<else>>pulled down<</if>>, <<if !$worn.under_lower.type.includes("naked")>> and your $worn.under_lower.name <<underlowerhas>> been pulled aside,<</if>> <span class="pink">revealing your <<genitals>>.</span>
 <</if>>
 <<He>> licks <<his>> lips. "I found you conked out in the forest, so I dragged you somewhere safe and helped myself."
 <<if $worn.genitals.type.includes("chastity")>>
@@ -3903,4 +3891,21 @@ Am I squeezing your arms too tight? Sorry if I am."
 You try to sit up again, but the vines pull you back down. "Ah bup bup," the <<person>> chides. "Just let me take care of you. Now, where was I...?" <<He>> moves <<his>> mouth back down to your <<genitals>>.
 <br><br>
 
-<<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
\ No newline at end of file
+<<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
+
+:: Forest Plant Snare
+<<effects>>
+<<if $phase is 0>>
+	You ignore it and continue on your way. You hear a <<personsimple>> in the bush whining as you walk away.
+	<br><br>
+
+	<<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>>
+<<else>>
+	Taking a deep breath, you purposefully step into the snare trap. It immediately tightens, pulling your legs together and sending you to the forest floor. The snare splits off to pull your legs apart.
+	<br><br>
+
+	A <<person "normal">> with <<plant_details>> in <<his>> hair and <span class="purple">writhing vines trailing behind <<him>></span> runs up to you from out of the bush. "Got one!" the <<person>> crows. "And I only waited six hours. I'm pretty much a trapping pro." <<He>> licks <<his>> lips and moves toward you, wiggling <<his>> fingers lewdly.
+	<br><br>
+
+	<<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $leftleg to "bound">><<set $rightleg to "bound">><</link>>
+<</if>>
\ No newline at end of file
diff --git a/game/overworld-forest/loc-forest/main.twee b/game/overworld-forest/loc-forest/main.twee
index d0eddccbeabd997fefbf1fc4f12c787b3f6d1305..4bd98ea6ebb5cb44f1d30a0b25d800054addb66b 100644
--- a/game/overworld-forest/loc-forest/main.twee
+++ b/game/overworld-forest/loc-forest/main.twee
@@ -312,7 +312,7 @@
 <<if $pubtasksetting is "pair">>
 
 	<<generate1>><<generate2>>
-	You return to the clearing with the dilapidated cabin. The <<person1>><<person>> and <<person2>><<person>> are still there.
+	You return to the clearing with the dilapidated cabin. The <<fullGroup>> are still there.
 	"Changed your mind?" says the <<person1>><<person>> "Let us have our way with you and we'll give you the black box."
 	<br><br>
 
@@ -321,7 +321,7 @@
 
 	<<generate1>><<generate2>>
 	You come to the clearing where the black box supposedly resides. There's a dilapidated wood cabin in the middle.
-	A <<person1>><<person>> and <<person2>><<person>> sit outside beside a fire. They look up as you approach.
+	A <<fullGroup>> sit outside beside a fire. They look up as you approach.
 	"This is unexpected," says the <<person1>><<person>>. "What brings you all the way out here?"
 	<br><br>
 	You tell them you're looking for a small black box. "Oh," <<he>> says. "You mean this?" <<He>> stands and produces a black box from <<his>> pocket.
diff --git a/game/overworld-forest/loc-forest/widgets.twee b/game/overworld-forest/loc-forest/widgets.twee
index 8ce97ed1f426c16a306a2bd4e8ee5c60115f0042..d2aab9ff920fc0a1118c558e0b8360de435d482b 100644
--- a/game/overworld-forest/loc-forest/widgets.twee
+++ b/game/overworld-forest/loc-forest/widgets.twee
@@ -387,7 +387,8 @@ Go towards town
 		<<link [[Next|Forest]]>><<set $eventskip to 1>><</link>>
 	<</addinlineevent>>
 <<if $plantdisable is "f" and $tentacledisable is "f" and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>>
-	<<addevent "forestplantkiss">>
+	<<addevent "forestplant_kiss">>
+	<<addevent "forestplant_snare">>
 <</if>>
 <<addevent "forestrock">>
 <<if $bestialitydisable is "f" and $waspdisable is "f">>
@@ -661,7 +662,7 @@ You hear a buzzing in the surrounding trees.
 <</widget>>
 
 
-<<widget "forestplantkiss">>
+<<widget "forestplant_kiss">>
 <<generatePlant1>><<person1>>
 "Hi there!" You hear a voice beside you. A <<person "normal">> stands by a bush of tangled vines, waving at you cheerfully. <<He>> has <<plant_details>> scattered throughout <<his>> hair, and <<hes>> completely naked.
 <<arousal 600>><<garousal>>
@@ -692,6 +693,27 @@ The <<person "normal">> thinks for a moment, before smiling. "Hey, before you go
 <</widget>>
 
 
+<<widget "forestplant_snare">>
+<<generatePlant1>><<person1>>
+<<if currentSkillValue('skulduggery') gte random(200,700)>>
+	You <span class="green">notice something out of the corner of your eye</span>, and look down. A snare trap made of vines is hidden in the ground. A vine leads across the ground into a nearby bush.
+	<br><br>
+
+	<<link [[Step over it|Forest Plant Snare]]>><<set $phase to 0>><</link>>
+	<br>
+	<<link [[Purposefully step in it|Forest Plant Snare]]>><<set $phase to 1>><<control 10>><</link>><<gcontrol>>
+<<else>>
+	You're walking through the forest when <span class="red">a snare trap circles around your legs</span>. It tightens and pulls you to the ground, splitting off to pull your legs apart. It looks like it's made out of vines.
+	<br><br>
+
+	A <<person "normal">> with <<plant_details>> in <<his>> hair and <span class="purple">writhing vines trailing behind <<him>></span> runs up to you from out of a bush. "Got one!" the <<person>> crows. "And I only waited six hours. I'm pretty much a trapping pro." <<He>> licks <<his>> lips and moves toward you, wiggling <<his>> fingers lewdly.
+	<br><br>
+
+	<<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $leftleg to "bound">><<set $rightleg to "bound">><</link>>
+<</if>>
+<</widget>>
+
+
 <<widget "forestdagger">>
 You tread on something hard. You kneel and pull it from the forest detritus. It's an ancient dagger, worn beyond use. A collector might pay for this.
 <br><br>
@@ -776,7 +798,7 @@ You spot a decaying metal shard amongst the fallen bark at your feet. It's an ar
 <<else>>
 	<<rngWraith 2 "night">>
 	<<if $wraith and _wraithEvent and ($wraith.state is "haunt" or $wraith.offspring is "dead") and $syndromeeden is 1>>
-		
+
 		<<set $wraith.mimic to "Eden">><<npc Eden>><<person1>>Something whizzes past and hits a tree in front of you. You shield your face with your arms and stagger backwards. Something presses against your back, and you hear a <<personsimple>>'s voice. "I've got you now. Don't resist."
 		<br><br>
 
@@ -1007,7 +1029,7 @@ You find a cluster of edible mushrooms growing at the base of a <<if _forest_shr
 <br><br>
 
 <<if _forest_shrooms is 2>>
-	<<if $science gte 200>>
+	<<if currentSkillValue('science') gte 200>>
 		You remember from school that they're called wolfshrooms, and were prized by warriors in ancient times.
 	<</if>>
 
diff --git a/game/overworld-forest/loc-lake/events.twee b/game/overworld-forest/loc-lake/events.twee
index 6f5db714ee941833c3fe04c06babb2584a3eefc0..c696cfbfd921f97cba702c2f3bd4223fc12cdd4e 100644
--- a/game/overworld-forest/loc-lake/events.twee
+++ b/game/overworld-forest/loc-lake/events.twee
@@ -67,7 +67,6 @@ Amused by <<his>> response, you continue your walk.
 
 <<flaunting>> you walk around the edge of the lake. You don't see anybody nearby, but being so exposed is thrilling.
 <<exhibitionism4>>
-<br><br>
 
 <<if $player.bodyliquid.vagina.semen gte 2>>
 A bit of semen drips from your <<pussy>> onto the ground as you walk.
@@ -116,7 +115,6 @@ A bit of semen drips from your <<pussy>> onto the ground as you walk.
 <<if $phase is 1>>
 You lie back and let them explore you.
 <<deviancy3>>
-<br><br>
 	<<if $arousal gte ($arousalmax / 5) * 2>>
 	The bugs and insects search around for the source of the delicious "honey".
 	<<else>>
@@ -134,7 +132,6 @@ After a few minutes you brush them off. You rise to your feet and finish your wa
 <<elseif $phase is 2>>
 You lie back and let them explore you.
 <<deviancy3>>
-<br><br>
 	<<if $arousal gte ($arousalmax / 5) * 2>>
 	The bugs and insects search around for the source of the delicious "honey".
 	<<else>>
@@ -143,7 +140,6 @@ You lie back and let them explore you.
 
 It tingles. A warm feeling spreads through your <<genitals>>. You start touching yourself as you feel them crawl inside.
 <<deviancy4>>
-<br><br>
 <<link [[Next|Lake Masturbation]]>><<set $bugsinside to 1>><<set $masturbationstart to 1>><</link>>
 <br>
 <<elseif $phase is 3>>
@@ -318,7 +314,7 @@ You wake up unable to move. You're up to your neck in sand.
 <br><br>
 "You're awake," says a <<person>>. <<Hes>> not alone. "You looked so peaceful asleep on the beach. We decided to turn you into a mermaid. We are almost done, we just want a picture." They step back to admire their handiwork. The <<person>> looks up, and fear darkens <<his>> face. <<He>> and <<his>> friends run.
 <br><br>
-<<endevent>><<generatey1>><<generatey2>><<generatey3>> Seconds later a shadow is cast over you. It's a group of teenagers. "What do we have here?" A <<person1>><<person>> says. <<He>> drops to <<his>> knees in front of you.
+<<endevent>><<generatey1>><<generatey2>><<generatey3>> Seconds later a shadow is cast over you. It's a <<fullGroup>>. You recognize them from school. "What do we have here?" The <<person1>><<person>> says. <<He>> drops to <<his>> knees in front of you.
 <br><br>
 <<if $submissive gte 1150>>
 	"P-please don't," you plead.
@@ -343,7 +339,7 @@ You wake up unable to move. You're up to your neck in sand.
 
 :: Lake Mermaid Eden
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
-You hear a gun fire from the forest. A bullet lands nearby, and the teenagers scramble away from you in fear. "W-What was that?" One of them asks in a hesitant voice.
+You hear a gun fire from the forest. A bullet lands nearby, and the students scramble away from you in fear. "W-What was that?" One of them asks in a hesitant voice.
 <br><br>
 A second gunshot rings through the air. The bullet lands closer this time, causing them to jump up to their feet. A third one follows, making them run off in a panic.
 <br><br>
@@ -366,30 +362,20 @@ Others along the shore flee the area, hearing the gunshots as well, leaving you
 	<br>
 	<<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>>
 	<br>
-<<elseif $edenfreedom gte 2 and $edendays gte 8>>
-	"I trusted you," <<he>> says. "This is what happens if you don't obey me. It's for your own protection." <<He>> digs you out and pulls you to your feet. "Let's go home."
+<<elseif ($edenfreedom gte 2 and $edendays lt 8) or ($edenfreedom is 1 and $edendays lt 2)>>
+	"I knew you'd end up like this. This place dangerous," <<he>> says, digging you out and helping you to your feet. "Let's go home."
 	<br><br>
 
-	<<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>>
-	<br>
-
-	<<elseif $edenfreedom is 1 and $edendays gte 2>>
-
-	"I trusted you," <<he>> says. "This is what happens if you don't obey me. It's for your own protection." <<He>> digs you out and pulls you to your feet. "Let's go home."
+	<<He>> takes you back to <<his>> cabin.
 	<br><br>
 
-	<<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>>
+	<<link [[Next (0:30)|Eden Cabin]]>><<endevent>><<pass 30>><</link>>
 	<br>
-
-<<elseif $edenfreedom gte 1>>
-
-	"I knew you'd end up like this. This place dangerous," <<he>> says, digging you out and helping you to your feet. "Let's go home."
+<<else>>
+	"I trusted you," <<he>> says. "This is what happens if you don't obey me. It's for your own protection." <<He>> digs you out and pulls you to your feet. "Let's go home."
 	<br><br>
 
-	<<He>> takes you back to <<his>> cabin.
-	<br><br>
-	<<endevent>>
-	<<link [[Next (0:30)|Eden Cabin]]>><<pass 30>><</link>>
+	<<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>>
 	<br>
 <</if>>
 
@@ -423,8 +409,8 @@ You continue to struggle against the sand. A few people come for a closer look,
 
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 <<set $lakecouple to 1>>
-<<generate1>><<generatep2>><<person1>><<person2>>
-You walk into the light of the fire. You see them more closely now, a <<person1>><<person>> and <<person2>><<person>>. "Hey," the <<person1>><<person>> says. "What are you doing out here alone? Come join us."
+<<generate1>><<generatep2>>
+You walk into the light of the fire. You see them more closely now, a <<fullGroup>>. "Hey," the <<person1>><<person>> says. "What are you doing out here alone? Come join us."
 <br><br>
 <<link [[Join them (0:10)|Lake Couple 2]]>><<pass 10>><</link>>
 <br>
@@ -462,7 +448,6 @@ The <<person2>><<person>> leans over and kisses your cheek. <<He>> looks at the
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 You kiss them back. One after the other, while the other kisses your cheek. Sometimes they kiss each other. <<takeKissVirginity "Lake couple" "romantic">>
 <<promiscuity1>>
-<br><br>
 "I'm sorry," the <<person2>><<person>> pants. "I should have asked first." You're not sure who <<hes>> addressing.
 <br><br>
 <<person1>>"It's getting late," the <<person>> says. "The tent is waiting."
@@ -694,11 +679,11 @@ You join the others in sprinting the rest of the way to the lake. You don't know
 	<</if>>
 <<else>>
 	An impromptu game of tag starts.
-	<<if $athletics gte 800>>
+	<<if currentSkillValue('athletics') gte 800>>
 		No one can catch you.
 		<<gcool>><<status 1>><<gathletics>><<athletics 3>><<physique 3>>
 		<br><br>
-	<<elseif $athletics gte 400>>
+	<<elseif currentSkillValue('athletics') gte 400>>
 		You give as good as you get.
 		<<gathletics>><<athletics 3>><<physique 3>>
 		<br><br>
@@ -720,7 +705,7 @@ You join the others in sprinting the rest of the way to the lake. You don't know
 	<br>
 <<elseif $danger gte (9900 - $allure)>>
 	<<if $cool gte 160>>
-		A <<generates1>><<person1>><<person>> approaches you. "H-hi," <<he>> says. "Umm, c-can I ask you something?" <<He>> takes a deep breath. "Will you kiss me? They said they'd leave me alone if I could get a kiss from you." <<He>> looks down and blushes. The teenagers <<hes>> referring to watch from a rock not far away. You've seen them bully the <<person>> before.
+		A <<generates1>><<person1>><<person>> approaches you. "H-hi," <<he>> says. "Umm, c-can I ask you something?" <<He>> takes a deep breath. "Will you kiss me? They said they'd leave me alone if I could get a kiss from you." <<He>> looks down and blushes. The students <<hes>> referring to watch from a rock not far away. You've seen them bully the <<person>> before.
 		<br><br>
 		<<link [[Kiss|Lake Kiss]]>><<status -10>><</link>><<promiscuous1>><<lcool>>
 		<br>
@@ -1038,7 +1023,7 @@ You awaken naked on a stone slab with your arms tied down. All around you loom <
 	<<link [[Next|Forest]]>><<set $eventskip to 1>><</link>>
 <<elseif $rescue is 1 and $alarm is 1>>
 	<<if $phase2 is 2>>
-		<<set $wraith.seen ++>>
+		<<set $wraith.seen++>>
 		You hear your own scream echo back through the trees. The group backs off, looking to the source. They all go quiet. After a moment, you see a flash of <<wraithEyes>> from the darkness. <<rainWraith true>>
 		<br><br>
 		One of the <<person1>><<monks>> is hurled backwards by an unseen force, colliding with a tree. Splinters of bark fall after <<him>> as <<he>> comes crashing to the ground. The rest all clutch their heads in agony, attempting to block their ears. You don't hear anything.
diff --git a/game/overworld-forest/loc-lake/ivory/main.twee b/game/overworld-forest/loc-lake/ivory/main.twee
index 99327e43849efd79cf6f49328461329c7509a19f..9b5e771e3390ec4d915e47355d5028110ddb479c 100644
--- a/game/overworld-forest/loc-lake/ivory/main.twee
+++ b/game/overworld-forest/loc-lake/ivory/main.twee
@@ -55,10 +55,10 @@
 	<<elseif $wraith.gen is "arms">>
 		<<His>> extra arms fold back in.
 	<</if>>
-	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. The water rushes in to fill the empty space, sending a shockwave out that leaves you tumbling in the water. Your ears ring, and you think you hear laughter. "<span class="wraith">You can't keep me away forever.</span>"
+	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. The water rushes in to fill the empty space, sending a shockwave out that leaves you tumbling in the water. Your ears ring, and you think you hear laughter. "<span class="wraith">You can't keep me away forever, <<pcpetname "Wraith">>.</span>"
 	<br><br>
 	<<tearful>> you try to get your bearings.
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 <<else>>
 	<<ejacW>>
 	With a bright flash, <<he>> vanishes. You feel lewd energy linger in the water, and <<his>> laughs echo between your ears. "<span class="wraith">Worry not, we'll meet again soon.</span>"
@@ -101,7 +101,7 @@
 
 <<if $enemyhealth lte 0>>
 	With both feet, you kick as hard as you can. The cover of the machine flies open.
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
 	<<ejacW>>
 	Light floods into the machine as the cover is finally pried open. Laughter echoes between your ears. "<span class="wraith">See you soon.</span>"
@@ -165,7 +165,7 @@ You turn to <<him>>. <<His>> skin has turned a stark white.
 You shake your head. <<He>> freezes in an unnatural position, and grins. Your pulse quickens. <<His>> skin grows more and more pale by the second.
 <br><br>
 <<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6>>
-	"<span class="wraith">You never had a choice.</span>"
+	"<span class="wraith"><<pcPetname "Wraith">>. You never had a choice.</span>"
 	<<if $wraith.seen gte 3>>
 		You immediately recognise it as the pale being that's been following you.
 	<<elseif $wraith.seen gte 1>>
@@ -256,7 +256,7 @@ You shake your head. <<He>> freezes in an unnatural position, and grins. Your pu
 	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everywhere. You will never escape me.</span>"
 	<br><br>
 	<<tearful>> you run from the clearing, not daring to look back.
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 <<else>>
 	<<ejacW>>
 	<<kissWraith>>
@@ -330,7 +330,7 @@ You shake your head. <<He>> freezes in an unnatural position, and grins. Your pu
 	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everywhere. You will never escape me.</span>"
 	<br><br>
 	<<tearful>> you run from the glowing shore, not daring to look back.
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 <<else>>
 	<<ejacW>>
 	<<kissWraith>>
@@ -463,7 +463,7 @@ This isn't Kylar. <<trauma 12>><<ggtrauma>><<set $wraith.revealed to true>>
 	<br><br>
 	<<His>> skin turns more and more pale as you stare. Slowly, <<he>> rights <<his>> head to look at you with a manic grin.
 <<else>>
-	As you think <<hes>> about to reach climax, <<he>> laughs in a voice that isn't <<his>>.
+	As you think <<hes>> about to reach climax, <<he>> laughs in a voice that isn't <<hers>>.
 	<<if $wraith.seen gte 3>>
 		It's a voice that fills you with dread. You instinctively push yourself away.
 	<<else>>
@@ -491,7 +491,7 @@ This isn't $wraith.mimic. <<trauma 24>><<gggtrauma>><<set $wraith.revealed to tr
 <<elseif $wraith.offspring is "dead" and $tentacledisable is "f">>
 	"<span class="wraith">You let them die. We will make more.</span>"
 <<else>>
-	"<span class="wraith">Carnal lust. Passion. Beautiful.</span>"
+	"<span class="wraith">Carnal lust. Passion. Beautiful. <<pcPetname "Wraith">>.</span>"
 <</if>>
 <br><br>
 <<startWraith>>
@@ -512,10 +512,10 @@ This isn't $wraith.mimic. <<trauma 24>><<gggtrauma>><<set $wraith.revealed to tr
 	<<elseif $wraith.gen is "arms">>
 		<<His>> extra arms fold back in.
 	<</if>>
-	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everyone. You will never escape me.</span>"
+	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everyone. You will never escape me, <<pcpetname "Wraith">>.</span>"
 	<br><br>
 	<<tearful>> you look around, trying to make sure <<hes>> really gone.
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 <<else>>
 	<<ejacW>>
 	<<kissWraith>>
@@ -666,7 +666,12 @@ You grab the tentacle and try calm it. <<deviancy1>>
 	It thrashes against you, <span class="green">then slows to a rhythmic, thrusting movement.</span> Before you realise what it is doing, the tentacle ejaculates slime all over your hands.
 	<<set $player.bodyliquid.leftarm.goo += 1>><<set $player.bodyliquid.rightarm.goo += 1>>
 	<br><br>
-	Worn out, the pale tentacle retracts as several more emerge from the manhole, wrapping around your limbs and waist and pulling you underground. They're easily able to hold your weight.
+	<<if $location is "sewers">>
+		<<water>>
+		Worn out, the pale tentacle retracts as several more emerge from the canal, wrapping around your limbs and waist and pulling you into the water. They're easily able to hold your weight.
+	<<else>>
+		Worn out, the pale tentacle retracts as several more emerge from the manhole, wrapping around your limbs and waist and pulling you underground. They're easily able to hold your weight.
+	<</if>>
 	<br><br>
 	<<link [[Next|Wraith Tentacle Rape]]>><<set $molestationstart to 1>><</link>>
 	<br>
@@ -675,7 +680,7 @@ You grab the tentacle and try calm it. <<deviancy1>>
 	<<gpain>><<pain 5>><<gtrauma>><<gstress>><<stress 6>><<trauma 6>>
 	<br><br>
 	You feel the sense of dread building, and can't shake the notion that whatever's hunting you knows exactly where you are now.
-	<<set $wraith.hunt ++>>
+	<<set $wraith.hunt++>>
 	<<exitWraith>>
 <</if>>
 
@@ -703,7 +708,12 @@ You grab the tentacle and try calm it. <<deviancy1>>
 
 :: Wraith Tentacle Sex Finish
 <<effects>>
-The pale tentacles recoil from you and disappear into the sewer. You're not sure why, but you feel as though whatever's hunting you has lost some progress.
+<<if $location is "sewers">>
+	The pale tentacles recoil from you and disappear into the canal. <<tearful>> you climb out of the water.
+<<else>>
+	The pale tentacles recoil from you and disappear into the sewer.
+<</if>>
+You're not sure why, but you feel as though whatever's hunting you has lost some progress.
 <<set $wraith.hunt -= 2>>
 <<clotheson>>
 <<endcombat>>
@@ -716,7 +726,49 @@ You pull away from the pale tentacle, hoping to shake it off. <span class="red">
 The vision of the pale figure in your head grows more and more intense, and you feel a warmth building up. The tentacle ejaculates slime all over your leg, and quickly retreats. The slime smells strange. <<ghallucinogens>>
 <br><br>
 The dread builds, and you can't shake the notion that whatever's hunting you knows exactly where you are now.
-<<set $wraith.hunt ++>>
+<<set $wraith.hunt++>>
+<<exitWraith>>
+
+:: Wraith Sewers Struggle
+<<effects>>
+<<if $struggle_start is 1>>
+	<<struggle_init>>
+	<<set $struggle.creature to "pale slime">>
+	<<struggle_creatures 1 2>>
+	<<set $combat to 1>>
+	<<controlloss>>
+	<<violence 1>>
+	<<molested>>
+	<<unset $struggle_start>>
+	<<set $timer to 7>>
+<</if>>
+
+<<if $timer is 1>>
+	<<struggle_add 2 1>>
+	<span class="pink">Two more slimes drop from the ceiling!</span>
+	<br><br>
+<</if>>
+
+<<struggle>>
+
+<<if $struggle.done gte $struggle.number>>
+	<span id="next"><<link [[Next|Wraith Sewers Struggle End]]>><</link>></span>
+	<br>
+<<else>>
+	<span id="next"><<link [[Next|Wraith Sewers Struggle]]>><</link>></span>
+	<br>
+<</if>>
+
+:: Wraith Sewers Struggle End
+<<effects>>
+
+The slime slips away without a sound. <<tearful>> you peek around.
+<br><br>
+You don't see anything. You're safe, if only for a precious moment. <<stress -3>><<lstress>>
+<<set $wraith.hunt -= 2>>
+<br><br>
+<<clotheson>>
+<<endcombat>>
 <<exitWraith>>
 
 :: Wraith Caught Obey
@@ -724,7 +776,7 @@ The dread builds, and you can't shake the notion that whatever's hunting you kno
 It moves in a hypnotic pattern, leaving phantom shapes in the air. A warmth builds in your head. You fall to your knees without resistance.
 <br><br>
 <<generateWraith 1 true>>
-<<initWraith "abomination">>
+<<initWraith "arms" "abomination">>
 <<if $wraith.state is "haunt" or $wraith.offspring is "dead">>
 	A pair of pale hands grabs your head.
 	<<if $wraith.gen is "arms">>
@@ -756,7 +808,7 @@ It moves in a hypnotic pattern, leaving phantom shapes in the air. A warmth buil
 		You stand up, but can't feel your legs.
 	<</if>>
 	<br><br>
-	<<link [[Next|Wraith Snatched Intro]]>><<endWraith>><<wraithPossess>><</link>>
+	<<link [[Next|Wraith Snatched Intro]]>><<endcombat>><<endWraith>><<wraithPossess>><</link>>
 <</if>>
 <br>
 
@@ -772,9 +824,12 @@ It moves in a hypnotic pattern, leaving phantom shapes in the air. A warmth buil
 			<br><br>
 		<<case "forest" "lake">>
 			The forest grows quiet. You see shapes between the trees, and red moonlight covers everything in a red glow. You're not in the clear yet.
+		<<case "sewers">>
+			The sewers are still empty, and the air is uncomfortably chilly. You're not in the clear yet.
 	<</switch>>
+	<br><br>
 	<<set $wraith.hunt to 6>>
-	<<set $wraith.evaded ++>>
+	<<set $wraith.evaded++>>
 	<<exitWraith>>
 <<else>>
 	Even with your eyes closed, <span class="red">you still see it.</span> Its arms move in a hypnotic pattern, leaving phantom shapes in the air. Your whole body goes numb. <<willpower 3>><<gwillpower>>
@@ -818,10 +873,12 @@ Your eyes snap open. The figure is gone, but you hear laughter echo in your head
 		The streets are still empty, and baleful red light shines down on you. You're not in the clear yet.
 	<<case "forest" "lake">>
 		The forest grows quiet. You see shapes between the trees, and red moonlight covers everything in a red glow. You're not in the clear yet.
+	<<case "sewers">>
+		The sewers are still empty, and the air is uncomfortably chilly. You're not in the clear yet.
 <</switch>>
 <br><br>
 <<set $wraith.hunt to 8>>
-<<set $wraith.evaded ++>>
+<<set $wraith.evaded++>>
 <<exitWraith>>
 
 :: Wraith Caught
@@ -886,7 +943,7 @@ Your eyes snap open. The figure is gone, but you hear laughter echo in your head
 		<<set $wraithCount to 0>>
 		<<set $wraithMax to 3>>
 		<<if $wraith.offspring is "dead">>
-			<<set $wraithMax ++>>
+			<<set $wraithMax++>>
 		<</if>>
 		<<if $tentacledisable is "t">>
 			<<set $wraithMax -->>
@@ -915,20 +972,20 @@ Your eyes snap open. The figure is gone, but you hear laughter echo in your head
 		<br><br>
 		<<tearful>> you look around, trying to make sure <<hes>> really gone.
 	<</if>>
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 	<<set $wraith.timer to -30>>
 	<<set $wraith.hunt to 0>>
 	<<clotheson>>
 	<<endcombat>>
 	<<exitWraith>>
 <<elseif $enemyarousal gte $enemyarousalmax or $pain gte 100 and $willpowerpain is 0 or ($wraith.type is "tentacles" and $tentacles.active lte ($tentacles.max / 2)) or ($wraith.type is "slime" and $struggle.done gte $struggle.number)>>
-	<<set $wraithCount ++>>
+	<<set $wraithCount++>>
 	<<ejacW>>
 	<<if $wraithCount gte $wraithMax>>
 		<<kissWraith "stress">>
 		<br><br>
 		<<if $moonstate is "morning" and $hour gte 6>>
-			<<He>> floats away from you, looking to the sky as the sun comes up. <<He>> sneers. "<span class="wraith">Alas, time is fleeting. Worry not, we'll meet again soon.</span>"
+			<<He>> floats away from you, looking to the sky as the sun comes up. <<He>> sneers. "<span class="wraith">Alas, time is fleeting. Worry not, <<pcpetname "Wraith">>, we'll meet again soon.</span>"
 			<br><br>
 			<<His>> glow begins to dim, and <<he>> slowly melts away in a torrent of water.
 			The dread slowly passes. <span class="blue"><i>You're safe until the next blood moon.</i></span>
@@ -1004,7 +1061,7 @@ You walk up to the mirror and gaze into its depths. It no longer reflects, but g
 <br><br>
 The light begins to take shape. A pale hand gently presses up against the surface from the other side. A pale figure stares back, smiling. Its <<wraithEyes>> eyes hold your gaze.
 <<if $wraith.seen gte 3 or $wraithPrison>>
-	<span class="red">You recognise it.</span> You feel as though you should be full of dread, but you aren't.
+	<span class="blue">You recognise it.</span> You feel as though you should be full of dread, but you aren't.
 <<else>>
 	You feel like you should be scared, but you aren't.
 <</if>>
@@ -1088,7 +1145,7 @@ The tapestries on the walls peel away, revealing utter emptiness as the figures
 <br><br>
 <<His>> skin turns marble white once again, and <<he>> begins to fade away. The faint <<wraithEyes>> light of <<his>> eyes flicker out in a rapidly expanding darkness.
 <br><br>
-<span class="wraith">"Remember us, not as we are, but as how we were."</span>
+<span class="wraith">"Remember us, <<pcpetname "Wraith">>, not as we are, but as how we were."</span>
 <br><br>
 As the light draws away, you begin to fall. You can't hear wind in your ears, or against your skin, but somehow you know you're falling. Snowflakes and shards of glass brush past, mingling and dissolving.
 <br><br>
diff --git a/game/overworld-forest/loc-lake/ivory/schism.twee b/game/overworld-forest/loc-lake/ivory/schism.twee
index 3ca1a1d38de027dbbb4f73196af0f17780063dda..65494628e728bb311057b15250bb3411730dcbb4 100644
--- a/game/overworld-forest/loc-lake/ivory/schism.twee
+++ b/game/overworld-forest/loc-lake/ivory/schism.twee
@@ -719,10 +719,6 @@ The feeling of dread rapidly fades. <span class="blue"><i>You're safe until the
 <<set $real_cat to $cat>>
 <<set $real_cow to $cow>>
 <<set $real_bird to $bird>>
-<<set $real_famesex to $famesex>>
-<<set $real_famerape to $famerape>>
-<<set $real_fameexhibitionism to $fameexhibitionism>>
-<<set $real_famescrap to $famescrap>>
 <<set $real_fame to $fame>>
 <<set $real_sexStats to clone($sexStats)>>
 <<set $real_skulduggery to $skulduggery>>
@@ -913,10 +909,6 @@ The feeling of dread rapidly fades. <span class="blue"><i>You're safe until the
 <<set $cow to $real_cow>>
 <<set $bird to $real_bird>>
 <<showTransformations>>
-<<set $famesex to $real_famesex>>
-<<set $famerape to $real_famerape>>
-<<set $fameexhibitionism to $real_fameexhibitionism>>
-<<set $famescrap to $real_famescrap>>
 <<set $fame to $real_fame>>
 <<set $sexStats to clone($real_sexStats)>>
 <<set $skulduggery to $real_skulduggery>>
diff --git a/game/overworld-forest/loc-lake/ivory/snatched.twee b/game/overworld-forest/loc-lake/ivory/snatched.twee
index 733e08c0fd9ed84fbcc354f038a1ef7a673efa1d..4e748af6462217a3c6fa9b24c902c22af9db7391 100644
--- a/game/overworld-forest/loc-lake/ivory/snatched.twee
+++ b/game/overworld-forest/loc-lake/ivory/snatched.twee
@@ -43,7 +43,7 @@ You steady yourself against the wall, and push yourself to the window.
 	<br><br>
 	<<endWraith>>
 	<<clearWraith>>
-	<<link [[Separate|Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><<unset $possessed>><</link>><<ltiredness>>
+	<<link [[Separate|Sleep]]>><<set $sleephour to 1>><<incrementautosave>><<unset $possessed>><</link>><<ltiredness>>
 	<br>
 <<else>>
 	<<set $nextPassage to "Wraith Snatched Home Leave">>
@@ -170,7 +170,7 @@ Your head swiftly turns again, causing more cracks. You can't feel anything anym
 <<pass 10>><<effects>><<getTarget>>
 <<set $nextPassage to "Wraith Snatched Guest 2">>
 <<if $location is "home">>
-	<<if $robinbed is 1>>
+	<<if $robinbed is "yours">>
 		<<set _bedGuest to "Robin">>
 	<<else>>
 		<<set _bedGuest to "Kylar">>
@@ -194,7 +194,7 @@ You remain purely focused on <<nnpc_him _bedGuest>>. You raise an arm, and begin
 	<br><br>
 <</if>>
 <<if $location is "home">>
-	<<if $robinbed is 1>>
+	<<if $robinbed is "yours">>
 		<<set _bedGuest to "Robin">>
 	<<else>>
 		<<set _bedGuest to "Kylar">>
@@ -246,7 +246,7 @@ You're crying. <<set $pain to 100>><<set $phase2 to 2>>
 <br><br>
 You don't know how long you sit there. You hardly feel anything. Your face remains locked in cold unexpression. <<set _palePass to (45 + (15 * _paleCount))>><<pass _palePass>><<ggcontrol>>
 <br><br>
-Eventually, your gaze turns to <<if $wraith.exit is "home" and ($robinbed is 1 or $kylarbed is 1)>><<if $robinbed is 1>>Robin.<<else>>Kylar.<</if>><<else>>the lake.<</if>>
+Eventually, your gaze turns to <<if $wraith.exit is "home" and ($robinbed is "yours" or $kylarbed is 1)>><<if $robinbed is "yours">>Robin.<<else>>Kylar.<</if>><<else>>the lake.<</if>>
 <br><br>
 
 <<switch $wraith.exit>>
@@ -283,6 +283,8 @@ Eventually, your gaze turns to <<if $wraith.exit is "home" and ($robinbed is 1 o
 	You float over to a reflective part of the wall,
 <<elseif $location is "drain">>
 	You peek over the edge of the walkway,
+<<elseif $location is "sewers">>
+	You shamble over to a nearby shard of broken glass,
 <<else>>
 	You shamble over to a window,
 <</if>>
@@ -292,9 +294,9 @@ You move each finger individually, as if to test them.
 <br><br>
 Your head quickly tilts to the side, making sickening cracks. Your hands open and clench.
 <br><br>
-<i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i>
+<i><span class="red">Fully restore your</span> <span class="green">control</span> <span class="red">to take back your body.</span></i>
 <br><br>
-<span class="nextLink"><<exitWraith true>></span><<rainWraith>>
+<span class="nextLink"><<exitWraith true>></span><<rainWraith>><<set $phase2 to 1>>
 <br>
 
 :: Wraith Resisted
@@ -312,7 +314,7 @@ Your head quickly tilts to the side, making sickening cracks. Your hands open an
 	<<else>>
 		A beautiful pale figure walks out of your body, towering over you. <<if $wraith.state is "haunt">>It angrily claws at its own neck as it stares you down.<<else>>It's naked, save an ornate necklace of ivory around its neck.<</if>> It places a hand under your chin.
 		<br><br>
-		"<span class="wraith">Cut short. Next time. See you soon<<if $wraith.state is "haunt">>, thief<</if>>.</span>" <<trauma 50>><<gggtrauma>>
+		"<span class="wraith">Cut short. Next time. See you soon, <<pcpetname "Wraith">>.</span>" <<trauma 50>><<gggtrauma>>
 		<br><br>
 	<</if>>
 	It vanishes in a torrent of water. You slowly regain feeling in your body, and try to stand. It takes a few tries, but eventually, you hoist yourself up.
@@ -358,7 +360,7 @@ Your head quickly tilts to the side, making sickening cracks. Your hands open an
 	<<else>>
 		A beautiful pale figure floats out of your body, towering over you. <<if $wraith.state is "haunt">>It angrily claws at its own neck as it stares you down.<<else>>It's naked, save an ornate necklace of ivory around its neck.<</if>> It places a hand under your chin.
 		<br><br>
-		"<span class="wraith">Cut short. Next time. See you soon<<if $wraith.state is "haunt">>, thief<</if>>.</span>" <<trauma 50>><<gggtrauma>>
+		"<span class="wraith">Cut short. Next time. See you soon, <<pcpetname "Wraith">>.</span>" <<trauma 50>><<gggtrauma>>
 		<br><br>
 	<</if>>
 	It vanishes with a bright flash. You slowly regain feeling in your body, and try to swim. It takes some time, but you're able to move yourself again.
@@ -439,10 +441,10 @@ You find yourself sinking through the ice, submerging without causing a break.
 						<<set $nextPassageCheck to "Containers">>
 						<<set $nextPassage to "Wraith Snatched Offspring">>
 						<<set $phaseWraith to 2>>
-					<<elseif $phaseWraith lt 3 and ($robinbed is 1 or $kylarbed is 1)>>
+					<<elseif $phaseWraith lt 3 and ($robinbed is "yours" or $kylarbed is 1)>>
 						<<set $nextPassageCheck to "Bed">>
 						<<set $nextPassage to "Wraith Snatched Guest">>
-						<<set $phaseWraith to 3>>					
+						<<set $phaseWraith to 3>>
 					<<else>>
 						<<set $nextPassageCheck to "Bedroom">>
 						<<set $nextPassage to "Wraith Snatched Home Window">>
@@ -493,17 +495,17 @@ You find yourself sinking through the ice, submerging without causing a break.
 					<<set $phaseWraith to 1>>
 				<<else>>
 					<<set $nextPassageCheck to "Forest">>
-					<<set $nextPassage to "Wraith Snatched Cave Leave">>	
+					<<set $nextPassage to "Wraith Snatched Cave Leave">>
 				<</if>>
 			<<case "Bird Tower">>
 				<<set $nextPassageCheck to "Bird Tower Mirror">>
 				<<set $nextPassage to "Wraith Snatched Far Mirror">>
 			<<case "Farm Alex Bedroom">>
 				<<set $nextPassageCheck to "Farm Bedroom">>
-				<<set $nextPassage to "Farm Bedroom">>				
+				<<set $nextPassage to "Farm Bedroom">>
 			<<case "Farm Bedroom">>
 				<<set $nextPassageCheck to "Farm Mirror">>
-				<<set $nextPassage to "Wraith Snatched Far Mirror">>				
+				<<set $nextPassage to "Wraith Snatched Far Mirror">>
 			<<case "Domus Street" "Barb Street" "Danube Street" "Residential Drain">>
 				<<pass 5>>
 				<<set $nextPassageCheck to "Residential alleyways">>
@@ -524,6 +526,33 @@ You find yourself sinking through the ice, submerging without causing a break.
 				<<pass 5>>
 				<<set $nextPassageCheck to "Industrial Drain">>
 				<<set $nextPassage to "Industrial Drain">>
+			<<case "Sewers Residential" "Sewers Commercial" "Sewers Industrial">>
+				<<set $nextPassageCheck to "Sewers Possessed">>
+				<<set $nextPassage to "Sewers Possessed">>
+			<<case "Sewers Scrap" "Sewers Wood">>
+				<<set $nextPassageCheck to "Sewers Residential">>
+				<<set $nextPassage to "Sewers Residential">>
+			<<case "Sewers Mud" "Sewers Ruins">>
+				<<set $nextPassageCheck to "Sewers Commercial">>
+				<<set $nextPassage to "Sewers Commercial">>
+			<<case "Sewers Waterfall" "Sewers Algae" "Sewers Rubble">>
+				<<set $nextPassageCheck to "Sewers Industrial">>
+				<<set $nextPassage to "Sewers Industrial">>
+			<<case "Sewers Lake">>
+				<<set $nextPassageCheck to "Sewers Waterfall">>
+				<<set $nextPassage to "Sewers Waterfall">>
+			<<case "Sewers Webs">>
+				<<set $nextPassageCheck to "Sewers Wood">>
+				<<set $nextPassage to "Sewers Wood">>
+			<<case "Sewers Shrooms">>
+				<<set $nextPassageCheck to "Sewers Mud">>
+				<<set $nextPassage to "Sewers Mud">>
+			<<case "Sewers Hole">>
+				<<set $nextPassageCheck to "Sewers Ruins">>
+				<<set $nextPassage to "Sewers Ruins">>
+			<<case "Sewers Workshop">>
+				<<set $nextPassageCheck to "Sewers Scrap">>
+				<<set $nextPassage to "Sewers Scrap">>
 			<<case "Harvest Street" "Mer Street" "Industrial Drain">>
 				<<pass 5>>
 				<<set $nextPassageCheck to "Industrial alleyways">>
@@ -559,7 +588,7 @@ You find yourself sinking through the ice, submerging without causing a break.
 				<<elseif $forest gt 40 and $forest lte 50>>
 					<<set $nextPassageCheck to "Lake Fishing Rock">>
 					<<set $nextPassage to "Lake Fishing Rock">>
-					<<set $wraith.exit to "lake">>					
+					<<set $wraith.exit to "lake">>
 				<<elseif $forest gt 30>>
 					<<set $nextPassageCheck to "Forest Blood Less Deep">>
 					<<set $nextPassage to "Forest">>
@@ -571,7 +600,7 @@ You find yourself sinking through the ice, submerging without causing a break.
 				<<else>>
 					<<set $nextPassageCheck to "Lake Shore">>
 					<<set $nextPassage to "Lake Shore">>
-					<<set $wraith.exit to "lake">>	
+					<<set $wraith.exit to "lake">>
 				<</if>>
 			<<case "Lake Campsite">>
 				<<pass 5>>
@@ -645,11 +674,11 @@ You find yourself sinking through the ice, submerging without causing a break.
 			<<case "Lake Depths Ice">>
 				<<pass 5>>
 				<<set $nextPassageCheck to "Lake Depths Ice Break">>
-				<<set $nextPassage to "Lake Depths Ice Break">>				
+				<<set $nextPassage to "Lake Depths Ice Break">>
 			<<case "Lake Underwater" "Lake Ruin Deep">>
 				<<pass 5>>
 				<<set $nextPassageCheck to "Lake Ruin">>
-				<<set $nextPassage to "Lake Ruin">>	
+				<<set $nextPassage to "Lake Ruin">>
 			<<case "Lake Ruin">>
 				<<pass 2>>
 				<<set $nextPassageCheck to "Lake Ruin Prison Intro">>
diff --git a/game/overworld-forest/loc-lake/ivory/underwater-prison.twee b/game/overworld-forest/loc-lake/ivory/underwater-prison.twee
index 45fb732d9f3f040c22e07a5605e0374ebaff530c..5bc0ea0b091eb2af95e2bdd316ff52768ee3eebc 100644
--- a/game/overworld-forest/loc-lake/ivory/underwater-prison.twee
+++ b/game/overworld-forest/loc-lake/ivory/underwater-prison.twee
@@ -54,7 +54,7 @@ You collapse on the cold stone floor, with your senses slowly returning to you.
 	<<else>>
 		It thumbs its necklace, before gently pushing you on your back. It floats down, and comes to rest as it straddles you.
 		<br><br>
-		"<span class="wraith">Welcome home.</span>"
+		"<span class="wraith">Welcome home, <<pcpetname "Wraith">>.</span>"
 	<</if>>
 <</if>>
 Its gaze bores into you, keeping your body weak and unresponsive.
@@ -225,7 +225,7 @@ Its grip on you loosens<<if $wraith.state is "haunt">>, and you gasp for breath<
 	<<set $wraithCount to 0>>
 	<<set $wraithMax to 2>>
 	<<if $wraith.offspring is "dead">>
-		<<set $wraithMax ++>>
+		<<set $wraithMax++>>
 	<</if>>
 	<<if $tentacledisable is "t">>
 		<<set $wraithMax -->>
@@ -245,10 +245,10 @@ Its grip on you loosens<<if $wraith.state is "haunt">>, and you gasp for breath<
 		<<neckruined>>
 	<</if>>
 	<br><br>
-	You're dragged and thrust into the cage next to the center of the lichen colony. There's no door. The figure becomes more translucent, and begins fading. "<span class="wraith">I must recover. You will wait.</span>" It vanishes in a bright flash.
+	You're dragged and thrust into the cage next to the centre of the lichen colony. There's no door. The figure becomes more translucent, and begins fading. "<span class="wraith">I must recover. You will wait.</span>" It vanishes in a bright flash.
 	<br><br>
 	<<tearful>> you look around, trying to make sure its really gone.
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 	<<set $wraithPrison.timer to 120>>
 	<<set $wraithPrison.state to "recovering">>
 	<<clotheson>>
@@ -258,7 +258,7 @@ Its grip on you loosens<<if $wraith.state is "haunt">>, and you gasp for breath<
 	<<link [[Next|Lake Ruin Prison]]>><<unset $wraithParasite>><</link>>
 	<br>
 <<elseif $enemyarousal gte $enemyarousalmax or ($wraith.type is "tentacles" and $tentacles.active lte ($tentacles.max / 2)) or ($wraith.type is "slime" and $struggle.done gte $struggle.number)>>
-	<<set $wraithCount ++>>
+	<<set $wraithCount++>>
 	<<ejacW>>
 	<<if $wraithCount gte $wraithMax or $wraithCount gte 5>>
 		<<kissWraith>>
@@ -284,7 +284,7 @@ Its grip on you loosens<<if $wraith.state is "haunt">>, and you gasp for breath<
 			<br><br>
 		<</if>>
 		It suddenly lifts you, and begins to carry you. You're helpless to resist.
-		You're placed in a decrepit cage, right next to the center of the lichen colony. There's no door.
+		You're placed in a decrepit cage, right next to the centre of the lichen colony. There's no door.
 		<<if $wraith.state is "haunt">>
 			"<span class="wraith">I will break open your mind, and then I will show you. And then you will. Give. It. Back.</span>"
 			<<if $worn.neck.cursed is 1>>
@@ -349,9 +349,9 @@ You are in a submerged prison. Pink mist swirls in the air. <<ghallucinogens>>
 	<<if $wraith.state is "haunt" and $trauma gte ($traumamax / 10) * 5 and $wraithPrison.timePassed gte 180>>
 		The pale figure emerges from the ground. You feel your energy being sapped away already. You're pushed into one of the cells and onto a bed of lichen by an unseen force.
 		<br><br>
-		It looks you over with a cold gaze, and grabs your cheeks with a clawed hand. "<span class="wraith">You wanted to know, so you stole from the dead. I'll show you what it's like to drown with the corpse of this temple. May your curiosity be sated as the waves chew your bones.</span>"
+		It looks you over with a cold gaze, and grabs your cheeks with a clawed hand. "<span class="wraith">You wanted to know, so you stole from the dead. I'll show you what it's like to drown with the corpse of this temple. May your curiosity be sated as the waves chew your bones. <<pcPetname "Wraith">>. <<pcPetname "Wraith">>. <<pcPetname "Wraith">>.</span>"
 		<br><br>
-		It grabs a handful of lichen from the center of the large colony, and tilts your head back. It begins to drop the crushed lichen into your mouth. You try to spit it out, but your body isn't obeying you. Once your mouth is full of the flowering lichen, it kisses you.
+		It grabs a handful of lichen from the centre of the large colony, and tilts your head back. It begins to drop the crushed lichen into your mouth. You try to spit it out, but your body isn't obeying you. Once your mouth is full of the flowering lichen, it kisses you.
 		You tense up, but soon enough, you feel an odd sense of relief. <<takeKissVirginity "Ivory Wraith" "rape">>
 		<<stress -200>><<lllstress>><<trauma 36>><<gggtrauma>><<purity -50>><<lllpurity>><<physique_loss 16>><<llphysique>><<pain -15>><<llpain>>
 		<br><br>
@@ -368,6 +368,7 @@ You are in a submerged prison. Pink mist swirls in the air. <<ghallucinogens>>
 		<<if $wraith.state is "haunt">>
 			"<span class="wraith"><<print either(
 				"Open your eyes.",
+				"<<pcPetname \"Wraith\">>",
 				"You must sleep before you can awaken.",
 				"You must open your mind, only then can you face penance.",
 				"You aren't ready to see yet, thief. I will make you ready.",
@@ -378,6 +379,7 @@ You are in a submerged prison. Pink mist swirls in the air. <<ghallucinogens>>
 				"Do not resist.",
 				"Won't you give in?",
 				"Drown with me, forever.",
+				"<<pcPetname \"Wraith\">>",
 				"I am already inside you.",
 				"This is everything you have."
 			)>></span>"
@@ -544,7 +546,7 @@ You don't know how much time passes. Your body feels refreshed, but your mind fe
 	<<set $wraithCount to 0>>
 	<<set $wraithMax to 1>>
 	<<if $wraith.offspring is "dead">>
-		<<set $wraithMax ++>>
+		<<set $wraithMax++>>
 	<</if>>
 	<<if $tentacledisable is "t">>
 		<<set $wraithMax -->>
@@ -557,10 +559,10 @@ You don't know how much time passes. Your body feels refreshed, but your mind fe
 	<<elseif $wraith.gen is "arms">>
 		<<His>> extra arms fold back in.
 	<</if>>
-	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you hear its voice all around you "<span class="wraith">Good. Keep struggling.</span>"
+	<<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you hear its voice all around you. "<span class="wraith">Good. Keep struggling.</span>"
 	<br><br>
 	<<tearful>> you look around, trying to make sure <<hes>> really gone.
-	<<set $wraith.defeated ++>>
+	<<set $wraith.defeated++>>
 	<<set $wraithPrison.timer to 120>>
 	<<set $wraithPrison.state to "recovering">>
 	<<clotheson>>
@@ -570,7 +572,7 @@ You don't know how much time passes. Your body feels refreshed, but your mind fe
 	<<link [[Next|Lake Ruin Prison]]>><</link>>
 	<br>
 <<elseif $enemyarousal gte $enemyarousalmax or ($wraith.type is "tentacles" and $tentacles.active lte ($tentacles.max / 2)) or ($wraith.type is "slime" and $struggle.done gte $struggle.number)>>
-	<<set $wraithCount ++>>
+	<<set $wraithCount++>>
 	<<ejacW>>
 	<<if $wraithCount gte $wraithMax>>
 		<<kissWraith>>
@@ -789,11 +791,11 @@ Your body is unnaturally warm. <<arousal 600>><<garousal>>
 <br><br>
 <<masturbationactions>>
 <<if $arousal gte $arousalmax>>
-	<<link [[Continue|Lake Ruin Prison Masturbation Finish]]>><</link>><<nexttext>>
+	<span id="next" class="nextWraith"><<link [[Continue|Lake Ruin Prison Masturbation Finish]]>><</link>></span><<nexttext>>
 <<elseif $control gte $controlmax>>
-	<<link [[Continue|Lake Ruin Prison Masturbation Finish]]>><</link>><<nexttext>>
+	<span id="next" class="nextWraith"><<link [[Continue|Lake Ruin Prison Masturbation Finish]]>><</link>></span><<nexttext>>
 <<else>>
-	<<link [[Continue|Lake Ruin Prison Masturbation]]>><</link>><<nexttext>>
+	<span id="next" class="nextWraith"><<link [[Continue|Lake Ruin Prison Masturbation]]>><</link>></span><<nexttext>>
 <</if>>
 <br>
 
diff --git a/game/overworld-forest/loc-lake/ivory/widgets.twee b/game/overworld-forest/loc-lake/ivory/widgets.twee
index 9bcd6bd39e16258e200fdd3bcb2427a321f65a67..1bdec646baff802e331ff93a3986c860b847ea37 100644
--- a/game/overworld-forest/loc-lake/ivory/widgets.twee
+++ b/game/overworld-forest/loc-lake/ivory/widgets.twee
@@ -28,7 +28,7 @@
 	<<checkWraith>>
 <</if>>
 <<if _args[1]>>
-	<<set $wraith.seen ++>>
+	<<set $wraith.seen++>>
 <</if>>
 <<personselect _n>>
 <</widget>>
@@ -277,20 +277,30 @@
 	<<set $real_weather to $weather>>
 	<<if $season is "winter">>
 		<<set $weather to "snow">>
-		<<if _args[0]>>
-			<<print either(
-				"You don't remember when it started snowing. It's already hard to see.",
-				"The wind picks up, and visibility drops as a snow squall rolls in.",
-				"You feel snowflakes on your skin."
-			)>>
-		<</if>>
 	<<else>>
 		<<set $weather to "rain">>
-		<<if _args[0]>>
+	<</if>>
+
+	<<if _args[0]>>
+		<<if $outside is 1>>
+			<<if $weather is "snow">>
+				<<print either(
+					"You don't remember when it started snowing. It's already hard to see.",
+					"The wind picks up, and visibility drops as a snow squall rolls in.",
+					"You feel snowflakes on your skin."
+				)>>
+			<<else>>
+				<<print either(
+					"You don't remember when it started raining.",
+					"The wind picks up, and it starts to rain.",
+					"You feel raindrops on your skin."
+				)>>
+			<</if>>
+		<<else>>
 			<<print either(
-				"You don't remember when it started raining.",
-				"The wind picks up, and it starts to rain.",
-				"You feel raindrops on your skin."
+				"You don't remember when the fog rolled in. It's already hard to see.",
+				"An inexplicible wind picks up, and a fog rolls in.",
+				"Fog envelops your surroundings."
 			)>>
 		<</if>>
 	<</if>>
@@ -300,17 +310,25 @@
 <<widget "endRainWraith">>
 <<if $real_weather>>
 	<<if _args[0]>>
-		<<if $weather is "rain">>
-			<<print either(
-				"The rain suddenly stops.",
-				"The rain relents.",
-				"The sky begins to clear up."
-			)>>
+		<<if $outside is 1>>
+			<<if $weather is "rain">>
+				<<print either(
+					"The sky begins to clear up.",
+					"The rain suddenly stops.",
+					"The rain relents."
+				)>>
+			<<else>>
+				<<print either(
+					"The sky begins to clear up.",
+					"The snow suddenly stops.",
+					"The snow relents."
+				)>>
+			<</if>>
 		<<else>>
 			<<print either(
-				"The snow suddenly stops.",
-				"The snow relents.",
-				"The sky begins to clear up."
+				"The surroundings begins to clear up.",
+				"The fog suddenly dissipates.",
+				"The fog relents."
 			)>>
 		<</if>>
 	<</if>>
@@ -439,7 +457,7 @@
 		"Like sand slipping through our fingers.",
 		"Even if I have to drag you there myself.",
 		"Run. Forget that you have nowhere to go. Run.",
-		"Come to my parlor, said the fly to the spider.",
+		"Come to my parlour, said the fly to the spider.",
 		"What is within always conquers what is without.",
 		"Steel yourself all you like. You'll eventually rust.",
 		"History swallows the victims and spits out their bones.",
@@ -448,7 +466,7 @@
 		"Carve. Into. You. Our. Name. Perfection. Wash. Away. All. You. Are."
 	]>>
 	<<if $npc.includes("Sydney")>>
-		<<NPCStatusCheck "Sydney">>
+		<<run statusCheck("Sydney")>>
 		<<run _linePool.pushUnique(
 			"Liar.",
 			"Again.",
@@ -503,8 +521,8 @@
 			"How far would you go? How far can you run?",
 			"You've accepted your cage, songbird. Lie in it."
 		)>>
-		<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 1>>
-			<<run _linePool.pushUnique("Scion of a salted deluge.")>>
+		<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20>>
+			<<run _linePool.pushUnique("I'm sorry that you put your trust in <<phim>>.")>>
 		<</if>>
 	<</if>>
 	<<if $npc.includes("Whitney")>>
@@ -583,44 +601,50 @@
 	Temp arrays don't work either. -->
 	<<if $npc[0]>>
 		<<set _npc0 to clone($npc[0])>>
+		<<set _title0 to $NPCName[$NPCNameList.indexOf($npc[0])].title.split(" ").pop()>>
 		<<run _linePool.pushUnique(
 			"_npc0 _npc0 _npc0 _npc0 _npc0 _npc0 _npc0 _npc0.",
-			"Hie away, <<nnpc_title _npc0>> mine, hie away."
+			"Hie away, _title0 mine, hie away."
 		)>>
 	<</if>>
 	<<if $npc[1]>>
 		<<set _npc1 to clone($npc[1])>>
+		<<set _title1 to $NPCName[$NPCNameList.indexOf($npc[1])].title.split(" ").pop()>>
 		<<run _linePool.pushUnique(
 			"_npc1 _npc1 _npc1 _npc1 _npc1 _npc1 _npc1 _npc1.",
-			"Hie away, <<nnpc_title _npc1>> mine, hie away."
+			"Hie away, _title1 mine, hie away."
 		)>>
 	<</if>>
 	<<if $npc[2]>>
 		<<set _npc2 to clone($npc[2])>>
+		<<set _title2 to $NPCName[$NPCNameList.indexOf($npc[2])].title.split(" ").pop()>>
 		<<run _linePool.pushUnique(
 			"_npc2 _npc2 _npc2 _npc2 _npc2 _npc2 _npc2 _npc2.",
-			"Hie away, <<nnpc_title _npc2>> mine, hie away."
+			"Hie away, _title2 mine, hie away."
 		)>>
 	<</if>>
 	<<if $npc[3]>>
 		<<set _npc3 to clone($npc[3])>>
+		<<set _title3 to $NPCName[$NPCNameList.indexOf($npc[3])].title.split(" ").pop()>>
 		<<run _linePool.pushUnique(
 			"_npc3 _npc3 _npc3 _npc3 _npc3 _npc3 _npc3 _npc3.",
-			"Hie away, <<nnpc_title _npc3>> mine, hie away."
+			"Hie away, _title3 mine, hie away."
 		)>>
 	<</if>>
 	<<if $npc[4]>>
 		<<set _npc4 to clone($npc[4])>>
+		<<set _title4 to $NPCName[$NPCNameList.indexOf($npc[4])].title.split(" ").pop()>>
 		<<run _linePool.pushUnique(
 			"_npc4 _npc4 _npc4 _npc4 _npc4 _npc4 _npc4 _npc4.",
-			"Hie away, <<nnpc_title _npc4>> mine, hie away."
+			"Hie away, _title4 mine, hie away."
 		)>>
 	<</if>>
 	<<if $npc[5]>>
 		<<set _npc5 to clone($npc[5])>>
+		<<set _title5 to $NPCName[$NPCNameList.indexOf($npc[5])].title.split(" ").pop()>>
 		<<run _linePool.pushUnique(
 			"_npc5 _npc5 _npc5 _npc5 _npc5 _npc5 _npc5 _npc5.",
-			"Hie away, <<nnpc_title _npc5>> mine, hie away."
+			"Hie away, _title5 mine, hie away."
 		)>>
 	<</if>>
 
@@ -670,13 +694,28 @@
 <<elseif $wraith.state isnot "haunt" and $rng lte 8 and _args[0] isnot "lines">>
 	<<set _speechWraith to "<<He>> holds <<his>> necklace close.">>
 <<else>>
-	<<set _speaks to ["snarls","growls","cackles","purrs","hisses","emanates","speaks","grunts","giggles","whispers","speaks in an eerily calm tone"].pluck()>>
+	<<set _speaks to [
+		"<<He>> snarls",
+		"<<He>> growls",
+		"<<He>> cackles",
+		"<<He>> purrs",
+		"<<He>> hisses",
+		"<<He>> emanates",
+		"<<He>> speaks",
+		"<<He>> grunts",
+		"<<He>> giggles",
+		"<<He>> whispers",
+		"<<He>> speaks in an eerily calm tone",
+		"<<His>> voice comes from directly behind you"
+	].pluck()>>
 	<<if $alarm is 1>>
 		<<set $alarm to 0>>
 		<<set _speaks to "repeats your screams for help in a mocking tone, in your own voice">>
 	<</if>>
 
 	<<set _linePool to [
+		"<<pcPetname \"Wraith\">>.","<<pcPetname \"Wraith\">>.","<<pcPetname \"Wraith\">>.","<<pcPetname \"Wraith\">>.",
+		"<<pcPetname \"Wraith\">> <<pcpetname \"Wraith\">>.", "<<pcPetname \"Wraith\">> <<pcpetname \"Wraith\">>.",
 		"You.",
 		"Give in.",
 		"Take a bow.",
@@ -723,7 +762,9 @@
 	<<else>>
 		<<run _linePool.pushUnique(
 			"Just once, can't they stay?",
-			"I'm sorry that you put your trust in me."
+			"You did it. I knew you could do it.",
+			"I'm sorry that you put your trust in me.",
+			"Can I pretend you're back, if only for a while?"
 		)>>
 	<</if>>
 	<<if $templePromised is "Sydney">>
@@ -790,18 +831,24 @@
 		<<run _linePool.pushUnique(
 			"Falling. Falling. Falling.",
 			"Almost like looking in a mirror.",
-			"Was it worth it? Don't answer, you would be wrong."
-			)>>
+			"Was it worth it? Don't answer, you would be wrong.",
+			"Open your eyes, blacken your wings, harden your heart."
+		)>>
 	<<elseif $demon gte 6>>
-		<<run _linePool.pushUnique("You think you've found the bottom. You've barely breached the surface.")>>
+		<<run _linePool.pushUnique(
+			"Sapphire and brimstone.",
+			"All the world's to defile.",
+			"You wear a mask. Your face molds to fit it.",
+			"You think you've found the bottom. You've barely breached the surface."
+		)>>
 	<</if>>
 
 	<<set _line1 to "<span class=\"wraith\">" + _linePool.pluck() + "</span>">>
 	<<set _line2 to "<span class=\"wraith\">" + _linePool.pluck() + "</span>">>
 	<<if random(0,2)>>
-		<<set _speechWraith to "<<He>> _speaks. \"_line1 _line2\"">>
+		<<set _speechWraith to "_speaks. \"_line1 _line2\"">>
 	<<else>>
-		<<set _speechWraith to "<<He>> _speaks. \"_line1\"">>
+		<<set _speechWraith to "_speaks. \"_line1\"">>
 	<</if>>
 <</if>>
 <</silently>><<print _speechWraith>><</widget>>
@@ -868,6 +915,16 @@
 		<</if>>
 		<<set $worn.genitals.type.push("broken")>>
 		<<genitalsruined>>
+		<<if $vaginalchastityparasite isnot 0 or $analchastityparasite isnot 0 or $penilechastityparasite isnot 0>>
+			<<set $vaginalchastityparasite to 0>><<set $analchastityparasite to 0>><<set $penilechastityparasite to 0>>
+			<span class="lblue">The parasites within writhe their way out of your body,
+			<<if $underwater is 1>>
+				fading into the murk
+			<<else>>
+				falling to the ground
+			<</if>>
+			with a hiss.</span>
+		<</if>>
 	<</if>>
 <<else>>
 	<<if $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.genitals.type.includes("chastity")>>
@@ -887,7 +944,7 @@
 				<</if>>
 				<<if $tentacles[_i].tentaclehealth gt 0>>
 					<<set $tentacles[_i].tentaclehealth -= 20>>
-					<<set _tentDefeated ++>>
+					<<set _tentDefeated++>>
 				<</if>>
 			<</for>>
 		<<else>>
@@ -895,6 +952,16 @@
 		<</if>>
 		<<set $worn.genitals.type.push("broken")>>
 		<<genitalsruined>>
+		<<if $vaginalchastityparasite isnot 0 or $analchastityparasite isnot 0 or $penilechastityparasite isnot 0>>
+			<<set $vaginalchastityparasite to 0>><<set $analchastityparasite to 0>><<set $penilechastityparasite to 0>>
+			<span class="lblue">The parasites within writhe their way out of your body,
+			<<if $underwater is 1>>
+				fading into the murk
+			<<else>>
+				falling to the ground
+			<</if>>
+			with a hiss.</span>
+		<</if>>
 	<</if>>
 <</if>>
 <</widget>>
@@ -960,161 +1027,195 @@
 <</widget>>
 
 <<widget "kissWraith">>
-    <<if _args[0] is "stress" and $stress gte $stressmax>>
-        <<set $_wraithStress to true>>
-    <</if>>
-    <<if $wraith.type is "tentacles" or $wraith.gen is "abomination">>
-        <<He>> approaches you, pushing some tentacles aside.
-        <<if $tentacleMouth>>
-            <<set $_outof to (["tentacle", "tentacledeep"].includes($mouthstate) ? "out of" : "away from")>>
-            <<He>> <span class="lblue">yanks the $tentacleMouth $_outof your mouth.</span>
-        <</if>>
-    <</if>>
-    <<He>> kisses you, and your ears immediately begin to ring. Your fingers and toes go cold, and your face becomes fiery hot.
+	<<if _args[0] is "stress" and $stress gte $stressmax>>
+		<<set $_wraithStress to true>>
+	<</if>>
+	<<if $wraith.type is "tentacles" or $wraith.gen is "abomination">>
+		<<He>> approaches you, pushing some tentacles aside.
+		<<if $tentacleMouth>>
+			<<set $_outof to (["tentacle", "tentacledeep"].includes($mouthstate) ? "out of" : "away from")>>
+			<<He>> <span class="lblue">yanks the $tentacleMouth $_outof your mouth.</span>
+		<</if>>
+	<</if>>
+	<<He>> kisses you, and your ears immediately begin to ring. Your fingers and toes go cold, and your face becomes fiery hot.
 	Until it, too, grows cold. You feel as though some part of you was drained away.
-    <<takeKissVirginity "Ivory Wraith" "rape">>
-    <<arousal 2000>><<gggarousal>>
-    <<trauma 36>><<gggtrauma>><<purity -50>><<lllpurity>><<physique_loss 16>><<llphysique>><<pain -15>><<llpain>>
-    <<if $arousal gte $arousalmax>>
-        <br><br>
-        <<orgasm>>
-        Your climax is torturous and painful as you writhe against <<him>>. <<His>> assault only grows more intense. You feel weak.
-        <<trauma 36>><<gggtrauma>><<purity -25>><<llpurity>><<physique_loss 8>><<lphysique>><<awareness -20>><<lllawareness>>
-        <<if $_wraithStress>>
-            <<set $stress to $stressmax>>
-        <</if>>
-    <</if>>
+	<<takeKissVirginity "Ivory Wraith" "rape">>
+	<<arousal 2000>><<gggarousal>>
+	<<trauma 36>><<gggtrauma>><<purity -50>><<lllpurity>><<physique_loss 16>><<llphysique>><<pain -15>><<llpain>>
+	<<if $arousal gte $arousalmax>>
+		<br><br>
+		<<orgasm>>
+		Your climax is torturous and painful as you writhe against <<him>>. <<His>> assault only grows more intense. You feel weak.
+		<<trauma 36>><<gggtrauma>><<purity -25>><<llpurity>><<physique_loss 8>><<lphysique>><<awareness -20>><<lllawareness>>
+		<<if $_wraithStress>>
+			<<set $stress to $stressmax>>
+		<</if>>
+	<</if>>
 <</widget>>
 
 <<widget "wHunt">>
-<<switch _args[0]>>
-	<<case "town">>
-		<<if ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 5) and $wraith and $wraith.state isnot "" and $wraith.hunt is 0 and $wraith.timer gte (random(0, 50))>>
-			<br><br>
-			<<set $wraith.hunt to 1>>
-			A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image.
-			<br>
-			You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>
-			<br>
-			<<if $wraith.state is "haunt">>
-				<span class="red">You are being hunted.</span>
-			<<else>>
-				<span class="red">Dread lingers in the air.</span>
-			<</if>>
-		<<elseif $wraith and $wraith.hunt isnot 0>>
-			<<if $moonstate is "morning" and $hour gte 6>>
-				<br><br>
-				With the rising of the sun, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span>
-				<<clearWraith>>
-			<<elseif $wPersist is 1>>
-				<<set $wPersist to 2>>
+	<<if !$possessed>>
+		<<switch _args[0]>>
+			<<case "town">>
+				<<if ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 5) and $wraith and $wraith.state isnot "" and $wraith.hunt is 0 and $wraith.timer gte (random(0, 50))>>
+					<br><br>
+					<<set $wraith.hunt to 1>>
+					A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image.
+					<br>
+					You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>
+					<br>
+					<<if $wraith.state is "haunt">>
+						<span class="red">You are being hunted.</span>
+					<<else>>
+						<span class="red">Dread lingers in the air.</span>
+					<</if>>
+				<<elseif $wraith and $wraith.hunt isnot 0>>
+					<<if $moonstate is "morning" and $hour gte 6>>
+						<br><br>
+						With the rising of the sun, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span>
+						<<clearWraith>>
+					<<elseif $wPersist is 1>>
+						<<set $wPersist to 2>>
+						<br><br>
+						The feeling of dread remains. Something's wrong. <span class="red">Whatever was hunting you is still coming.</span><<stress 3>><<gstress>>
+					<<elseif $wraith.state is "haunt">>
+						<span class="red">Something terrible is hunting you.</span>
+						<<set $wraith.hunt++>>
+						<<if $wraith.hunt gte ($rng / 10)>>
+							<<set $eventforced to true>>
+						<</if>>
+					<<else>>
+						<span class="red">Something unnatural stalks the streets.</span>
+						<<set $wraith.hunt += 0.5>>
+						<<if $wraith.hunt gte ($rng / 10)>>
+							<<set $eventforced to true>>
+						<</if>>
+					<</if>>
+				<</if>>
+			<<case "forest">>
+				<<if $wraith.hunt is 0>>
+					<<set $rng2 to random(1, 3)>>
+					<<if $rng2 is 1 and $edenfreedom gte 1>>
+						A chill runs up your spine, a warning from some primal instinct. <span class="red">Something is hunting you.</span>
+						<<set $edenforesthunt to 1>>
+						<<set $blackwolfhunt to 0>>
+					<<else>>
+						A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image.
+						<br>
+						You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>
+						<br>
+						<span class="red">Something is hunting you.</span>
+						<<set $edenforesthunt to 0>>
+						<<set $blackwolfhunt to 0>>
+					<</if>>
+					<<set $wraith.hunt to 1>>
+				<<else>>
+					You begin to see strange shapes in the air around you. A chill runs up your spine. <span class="red">Something is still hunting you.</span>
+					<<set $edenforesthunt to 0>>
+					<<set $blackwolfhunt to 0>>
+				<</if>>
+				<<set $foresthunt to $wraith.hunt>>
 				<br><br>
-				The feeling of dread remains. Something's wrong. <span class="red">Whatever was hunting you is still coming.</span><<stress 3>><<gstress>>
-			<<elseif $wraith.state is "haunt">>
-				<span class="red">Something terrible is hunting you.</span>
-				<<set $wraith.hunt ++>>
-				<<if $wraith.hunt gte ($rng / 10)>>
-					<<set $eventforced to true>>
+				<<link [[Next|Forest]]>><<set $eventskip to 1>><</link>>
+			<<case "drain">>
+				<<if ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 5) and $wraith and $wraith.state isnot "" and $wraith.hunt is 0 and $wraith.timer gte (random(0, 60))>>
+					<<set $wraith.hunt to 1>>
+					<br><br>
+					A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image.
+					<br>
+					You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>
+					<br>
+					<<if $wraith.state is "haunt">>
+						<span class="red">You are being hunted.</span>
+					<<else>>
+						<span class="red">Dread lingers in the air.</span>
+					<</if>>
+				<<elseif $wraith and $wraith.hunt isnot 0>>
+					<<if $moonstate is "morning" and $hour gte 6>>
+						<br><br>
+						As the first rays of sunlight trickle through open manholes and grates, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span>
+						<<clearWraith>>
+					<<elseif $wraith.state is "haunt">>
+						<span class="red">Something terrible is hunting you.</span>
+						<<set $wraith.hunt++>>
+						<<if $wraith.hunt gte ($rng / 10)>>
+							<<set $eventforced to true>>
+						<</if>>
+					<<else>>
+						<span class="red">Something unnatural stalks the streets above.</span>
+						<<set $wraith.hunt += 0.5>>
+						<<if $wraith.hunt gte ($rng / 10)>>
+							<<set $eventforced to true>>
+						<</if>>
+					<</if>>
 				<</if>>
-			<<else>>
-				<span class="red">Something unnatural stalks the streets.</span>
-				<<set $wraith.hunt += 0.5>>
-				<<if $wraith.hunt gte ($rng / 10)>>
-					<<set $eventforced to true>>
+			<<case "sewers">>
+				<<if ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 5) and $wraith and $wraith.state isnot "" and $wraith.hunt is 0 and $wraith.timer gte (random(0, 60))>>
+					<<set $wraith.hunt to 1>>
+					<br><br>
+					A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image.
+					<br>
+					You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>
+					<br>
+					<<if $wraith.state is "haunt">>
+						<span class="red">You are being hunted.</span>
+					<<else>>
+						<span class="red">Dread lingers in the air.</span>
+					<</if>>
+				<<elseif $wraith and $wraith.hunt isnot 0>>
+					<<if $moonstate is "morning" and $hour gte 6>>
+						<br><br>
+						You feel a sense of relief, and instinctively know the sun has risen. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span>
+						<<clearWraith>>
+					<<elseif $wraith.state is "haunt">>
+						<span class="red">Something terrible is hunting you.</span>
+						<<set $wraith.hunt++>>
+						<<if $wraith.hunt gte ($rng / 10)>>
+							<<set $eventforced to true>>
+						<</if>>
+					<<else>>
+						<span class="red">Something unnatural stalks the sewers.</span>
+						<<set $wraith.hunt += 0.5>>
+						<<if $wraith.hunt gte ($rng / 10)>>
+							<<set $eventforced to true>>
+						<</if>>
+					<</if>>
 				<</if>>
-			<</if>>
-		<</if>>
-	<<case "forest">>
-		<<if $wraith.hunt is 0>>
-			<<set $rng2 to random(1, 3)>>
-			<<if $rng2 is 1 and $edenfreedom gte 1>>
-				A chill runs up your spine, a warning from some primal instinct. <span class="red">Something is hunting you.</span>
-				<<set $edenforesthunt to 1>>
-				<<set $blackwolfhunt to 0>>
-			<<else>>
-				A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image.
-				<br>
-				You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>
-				<br>
-				<span class="red">Something is hunting you.</span>
+			<<case "lake">>
+				Your ears begin to ring, and you feel like you're being watched. Out of instinct, you turn around.
+				<br><br>
+				<<if $bus is "lakeshore" or $bus is "lakeshallows" or $bus is "lakedepths">>
+					A beautiful pale figure hovers over the centre of the lake. You see a long stream of silver hair flowing in the wind. As soon as you see it, it vanishes. <<stress 6>><<gstress>>
+					<br><br>
+				<<elseif $location is "lake_ruin">>
+					A beautiful pale figure floats in the water. Long streams of silver hair flow in the current. As soon as you see it, it vanishes. <<stress 6>><<gstress>>
+					<br><br>
+				<<else>>
+					For a moment, you think you see the shape of a pale face between the trees. <<stress 6>><<gstress>>
+					<br><br>
+				<</if>>
+				<span class="red">You're trespassing. Something is hunting you.</span>
 				<<set $edenforesthunt to 0>>
 				<<set $blackwolfhunt to 0>>
-			<</if>>
-			<<set $wraith.hunt to 1>>
-		<<else>>
-			You begin to see strange shapes in the air around you. A chill runs up your spine. <span class="red">Something is still hunting you.</span>
-			<<set $edenforesthunt to 0>>
-			<<set $blackwolfhunt to 0>>
-		<</if>>
-		<<set $foresthunt to $wraith.hunt>>
-		<br><br>
-		<<link [[Next|Forest]]>><<set $eventskip to 1>><</link>>
-	<<case "drain">>
-		<<if ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 5) and $wraith and $wraith.state isnot "" and $wraith.hunt is 0 and $wraith.timer gte (random(0, 60))>>
-			<<set $wraith.hunt to 1>>
-			<br><br>
-			A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image.
-			<br>
-			You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>
-			<br>
-			<<if $wraith.state is "haunt">>
-				<span class="red">You are being hunted.</span>
-			<<else>>
-				<span class="red">Dread lingers in the air.</span>
-			<</if>>
-		<<elseif $wraith and $wraith.hunt isnot 0>>
-			<<if $moonstate is "morning" and $hour gte 6>>
+				<<set $wraith.hunt to 1>>
+				<<set $foresthunt to $wraith.hunt>>
 				<br><br>
-				As the first rays of sunlight trickle through open manholes and grates, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span>
-				<<clearWraith>>
-			<<elseif $wraith.state is "haunt">>
-				<span class="red">Something terrible is hunting you.</span>
-				<<set $wraith.hunt ++>>
-				<<if $wraith.hunt gte ($rng / 10)>>
-					<<set $eventforced to true>>
-				<</if>>
-			<<else>>
-				<span class="red">Something unnatural stalks the streets above.</span>
-				<<set $wraith.hunt += 0.5>>
-				<<if $wraith.hunt gte ($rng / 10)>>
-					<<set $eventforced to true>>
+				<<set $eventskip to 1>>
+				<<if $location is "lake_ruin">>
+					<<destinationlakeruin>>
+				<<else>>
+					<<if $season is "winter" and ($bus is "lakeshallows" or $bus is "lakedepths")>>
+						<<destination_lake_ice>>
+					<<else>>
+						<<destinationlake>>
+					<</if>>
 				<</if>>
-			<</if>>
-		<</if>>
-	<<case "lake">>
-		Your ears begin to ring, and you feel like you're being watched. Out of instinct, you turn around.
-		<br><br>
-		<<if $bus is "lakeshore" or $bus is "lakeshallows" or $bus is "lakedepths">>
-			A beautiful pale figure hovers over the center of the lake. You see a long stream of silver hair flowing in the wind. As soon as you see it, it vanishes. <<stress 6>><<gstress>>
-			<br><br>
-		<<elseif $location is "lake_ruin">>
-			A beautiful pale figure floats in the water. Long streams of silver hair flow in the current. As soon as you see it, it vanishes. <<stress 6>><<gstress>>
-			<br><br>
-		<<else>>
-			For a moment, you think you see the shape of a pale face between the trees. <<stress 6>><<gstress>>
-			<br><br>
-		<</if>>
-		<span class="red">You're trespassing. Something is hunting you.</span>
-		<<set $edenforesthunt to 0>>
-		<<set $blackwolfhunt to 0>>
-		<<set $wraith.hunt to 1>>
-		<<set $foresthunt to $wraith.hunt>>
-		<br><br>
-		<<set $eventskip to 1>>
-		<<if $location is "lake_ruin">>
-			<<destinationlakeruin>>
-		<<else>>
-			<<if $season is "winter" and ($bus is "lakeshallows" or $bus is "lakedepths")>>
-				<<destination_lake_ice>>
-			<<else>>
-				<<destinationlake>>
-			<</if>>
-		<</if>>
-<</switch>>
+		<</switch>>
+	<</if>>
 <</widget>>
 
 <<widget "wPersist">>
-<<if $wraith>>
+<<if $wraith and !$possessed>>
 	<<if $wraith.hunt and ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 5)>>
 		<<if _args[0] is "forest">>
 			<<if $foresthunt gte 1>>
@@ -1156,13 +1257,13 @@
 
 <<widget "wTimerProgress">>
 <<if $wraith and $wraith.state isnot "" and $wraith.hunt is 0 and ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6)>>
-	<<set $wraith.timer ++>>
+	<<set $wraith.timer++>>
 	<<if $wraith.offspring is "dead">>
-		<<set $wraith.timer ++>>
+		<<set $wraith.timer++>>
 	<</if>>
 	<<if $rng gte 60 and ($parasite.left_ear.name is "slime" or $parasite.right_ear.name is "slime")>>
 		You hear the slime in your ear make an unusual sound, <span class="red">as if it's calling out to something.</span>
-		<<set $wraith.timer ++>>
+		<<set $wraith.timer++>>
 	<</if>>
 <</if>>
 <</widget>>
@@ -1206,10 +1307,13 @@
 	<<case "farm_assault">>
 		<<link [[Next|Farm Assault]]>><<endevent>><</link>>
 		<br>
+	<<case "sewers">>
+		<<destinationsewers>>
+		<<endevent>><<set $eventskip to 1>>
 	<<default>>
 		<span class="red">Something went wrong. There's nowhere to place you due to a failure of the Wraith's code. Please inform PurityGuy.</span>
 		<br><br>
-		Offending event: $passage
+		Offending event: $passage | Location: $location ($bus) | Exit: $wraith.exit
 		<br><br>
 		<<endWraith>>
 		<<clearWraith>>
@@ -1285,10 +1389,10 @@
 			<</addinlineevent>>
 			<<addinlineevent "wraithClose2" 0.1>>
 				Something whispers your name directly in your ear. You flail to the side, but there's nothing there.
-				<br><br>
 				<<if $loveInterest.primary isnot "None" and $loveInterest.primary isnot "Black Wolf" and $loveInterest.primary isnot "Great Hawk">>
 					You think it sounded like $loveInterest.primary. <<if $wraith.seen gte 5>>You know better, though.<</if>>
 				<</if>>
+				<br><br>
 				When you turn around, your blood freezes. The pale figure <<if $location is "park">>floats atop the fountain<<else>>stands at the end of the street<</if>>. <<rainWraith>>
 				<br><br>
 				<<link [[Run|Wraith Run]]>><</link>><<athleticsdifficulty 800 1500>>
@@ -1315,7 +1419,7 @@
 					<br><br>
 					You scramble to your feet and keep moving.
 					<br><br>
-					<<set $wraith.hunt ++>>
+					<<set $wraith.hunt++>>
 					<<destinationeventend>>
 				<</if>>
 			<</addinlineevent>>
@@ -1341,7 +1445,7 @@
 				A final water spout shoots up from another manhole far behind you. You see a ghostly pale figure standing at the crest, surrounded by translucent watery tendrils. <<stress 12>><<ggstress>>
 				<br><br>
 				You run in the opposite direction.
-				<<set $wraith.hunt ++>>
+				<<set $wraith.hunt++>>
 				<br><br>
 				<<exitWraith>>
 			<</addinlineevent>>
@@ -1364,7 +1468,7 @@
 		<<destinationeventend>>
 	<</addinlineevent>>
 	<<addinlineevent "wraith3" 0.1>>
-		<<generate1>><<person1>>A <<person>> runs by, nearly knocking you over. <<Hes>> barely staying on their feet, and keep looking towards you with panic.
+		<<generate1>><<person1>>A <<person>> runs by, nearly knocking you over. <<Hes>> barely staying on <<his>> feet, and keep looking towards you with panic.
 		<br><br>
 		You realise <<hes>> looking behind you. You turn, but there's nothing except
 		<<if $location is "park">>
@@ -1396,6 +1500,112 @@
 <</if>>
 <</widget>>
 
+<<widget "wraithEventSewers">>
+	<<set $wraith.exit to "sewers">>
+	<<if $wraith.hunt gte 10>>
+		<<if !$wraithIntro>>
+			<<wraithIntro>>
+		<<else>>
+			<<wraithCaught>>
+		<</if>>
+	<<else>>
+		<<cleareventpool>>
+		<<if $wraith.hunt gte 5>>
+			<<if !$wraithIntro>>
+				<<addevent "wraithIntro" 0.1>>
+			<<else>>
+				<<addinlineevent "wraithClose1" 0.1>>
+					As you walk, your footfalls become lighter. You're having trouble breathing<<if $exposed lte 0>>, and your clothes feel heavy<</if>>. <<rainWraith true>>
+					<br><br>
+					Your ears begin to ring, and you see something taking shape in the fog.
+					A beautiful pale figure floats just above the ground, wearing translucent white robes that flow in the wind. Its eyes flash a bright <<wraithEyes>> as it sees you. Your mind feels cloudy as you see shapes dancing in the air and behind its eyes.
+					<br><br>
+					Before you can look away, it makes a hypnotic motion with its hands.
+					<<if $wraith.state is "haunt">>
+						It then raises a hand to its neck, seemingly trying to grab something that isn't there. Its hand clenches.
+						<br><br>
+						"<span class="wraith">Thief. You will never be free again.</span>"
+						<br><br>
+						<<if $parasite.left_ear.name is "slime" or $parasite.right_ear.name is "slime">>
+							<span class="lewd">You feel the slime in your head command you to</span> <span class="red">give it back.</span>
+							<br><br>
+						<</if>>
+					<<else>>
+						It raises a hand to its chest, rubbing its ivory necklace. The glint of the inlaid blue gemstones match its glowing eyes.
+						<br><br>
+						"<span class="wraith">Kneel.</span>"
+						<br><br>
+						<<if $parasite.left_ear.name is "slime" or $parasite.right_ear.name is "slime">>
+							<span class="lewd">You feel the slime in your head command you to kneel.</span>
+							<br><br>
+						<</if>>
+					<</if>>
+					<<link [[Give in|Wraith Caught Obey]]>><<if $parasite.left_ear.name is "slime" or $parasite.right_ear.name is "slime">><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><</if>><<set $submissive += 1>><</link>><<if $parasite.left_ear.name is "slime" or $parasite.right_ear.name is "slime">><<gcorruption>><<lpain>><<lltrauma>><<lstress>><</if>>
+					<br>
+					<<link [[Try to look away|Wraith Caught Resist]]>><<if $parasite.left_ear.name is "slime" or $parasite.right_ear.name is "slime">><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><</if>><<set $submissive -= 1>><</link>><<if $parasite.left_ear.name is "slime" or $parasite.right_ear.name is "slime">><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>><</if>><<willpowerdifficulty 1 $willpowermax>>
+					<br>
+				<</addinlineevent>>
+				<<addinlineevent "wraithClose2" 0.1>>
+					<<if $tentacledisable is "f">>
+						You see a blur of white from the corner of your eye, and feel something touch your thighs. You look down to see a pale tentacle extending from the canal. <span class="red">You feel whatever's hunting you drawing near.</span>
+						<br><br>
+						<<link [[Grab the tentacle|Wraith Tentacle Grab]]>><</link>><<physiquedifficulty 6000 16000>><<deviant1>>
+						<br>
+						<<if $deviancy gte 75>>
+							<<link [[Offer yourself|Wraith Tentacle Rape]]>><<set $molestationstart to 1>><</link>><<deviant5>>
+							<br>
+						<</if>>
+						<<link [[Try to run|Wraith Tentacle Run]]>><<stress 3>><<trauma 3>><</link>><<gtrauma>><<gstress>>
+						<br>
+					<<else>>
+						You see a blur of white from the corner of your eye, and feel something grab your ankle. You immediately try to jump back, but trip as it tightens its grip. <<pain 2>><<gpain>>
+						<br><br>
+						You look down to see a pale hand retreating into a storm drain. <<stress 6>><<gstress>>
+						<br><br>
+						You scramble to your feet and keep moving.
+						<br><br>
+						<<set $wraith.hunt++>>
+						<<destinationsewers>>
+					<</if>>
+				<</addinlineevent>>
+				<<addinlineevent "wraithClose3" 0.1>>
+					You notice the ceiling glisten.
+					<<if $slimedisable is "f">>
+						A sticky substance drops to the floor with a splat. It's thick, slimy and pale. It shambles toward you, and more appear from the fog.
+						<br><br>
+						<<link [[Next|Wraith Sewers Struggle]]>><<set $struggle_start to 1>><</link>>
+					<<else>>
+						You step to the side just as a pale slime drops to the floor with a splat. You run before it gives chase, but feel whatever's hunting you draw closer. <<stress 6>><<gstress>>
+						<br><br>
+						<<set $wraith.hunt++>>
+						<<destinationsewers>>
+					<</if>>
+				<</addinlineevent>>
+			<</if>>
+		<</if>>
+		<<addinlineevent "wraith1" 0.2>>
+			From the corner of your eye, you catch a glimpse of a pale face watching you from the shadows. When you blink, it's gone. <<stress 6>><<gstress>>
+			<br><br>
+			<<destinationsewers>>
+		<</addinlineevent>>
+		<<addinlineevent "wraith2" 0.1>>
+			You think you hear someone call your name. You don't see a single person around you. <<stress 6>><<gstress>>
+			<br><br>
+			<<destinationsewers>>
+		<</addinlineevent>>
+		<<addinlineevent "wraith3" 0.1>>
+			The water churns unnaturally, before leaping at you. You jump back, but the water stops in midair. It slowly retreats back into the canal, as if changing its mind. <<stress 6>><<gstress>>
+			<br><br>
+			<<destinationsewers>>
+		<</addinlineevent>>
+		<<addinlineevent "wraithEventSkip" 0.1>>
+			<<set _wraithEventSkipped to true>>
+			<<eventssewers>>
+		<</addinlineevent>>
+		<<runeventpool>>
+	<</if>>
+<</widget>>
+
 <<widget "wraithIntro">>
 <<set $wraithIntro to true>>
 As you walk, your footfalls become lighter. You're having trouble breathing<<if $exposed lte 0>>, and your clothes feel heavy<</if>>.
@@ -1417,6 +1627,11 @@ As you walk, your footfalls become lighter. You're having trouble breathing<<if
 	Your ears begin to ring.
 	<br><br>
 	The shape of a person begins to form in the $weather, and your pulse quickens.
+<<elseif $location is "sewers">>
+	<<rainWraith>>
+	The air around you chills. You swear you feel $weather on your skin, but there is no $weather in the sewers. Only a rapidly expanding fog.
+	<br><br>
+	Your ears begin to ring. An image starts to take shape in the fog, and your pulse quickens.
 <<else>>
 	You look around. The area is completely devoid of people. You take a moment to steady yourself. The image of the robed figure slowly fades from your head. <<rainWraith true>>
 	<br><br>
@@ -1572,6 +1787,7 @@ A beautiful pale figure floats just above the ground, wearing translucent white
 <<widget "wraithPossess">>
 	<<set $possessed to true>>
 	<<set $controlSaved to $control>><<set $control to 0>>
+	<<set $wraith.hunt to 0>>
 
 	<<if _args[0]>>
 		<<set $wraith.exit to _args[0]>>
diff --git a/game/overworld-forest/loc-lake/main.twee b/game/overworld-forest/loc-lake/main.twee
index 405c2b6f2674ce702a6e16021da03a71528b1c33..9da0c9931ea14adec5e6218db87029088e41ce89 100644
--- a/game/overworld-forest/loc-lake/main.twee
+++ b/game/overworld-forest/loc-lake/main.twee
@@ -4,7 +4,7 @@
 
 <<if $season is "winter">>
 	<<if $laketeenspresent is 1>>
-	You are at the shore of the frozen lake. Teens hang out nearby, while others practise ice skating.
+	You are at the shore of the frozen lake. Students hang out nearby, while others practise ice skating.
 	<<elseif $daystate is "night">>
 		<<if $weekday is 7 or $weekday is 1>>
 		You are at the shore of the frozen lake. You can see faint light from a fire at the campsite across the water.
@@ -23,7 +23,7 @@
 	<</if>>
 <<else>>
 	<<if $laketeenspresent is 1>>
-		You are at the shore of the lake. There are several people playing in the water. You can see the Swimmers Dock with a few teens sitting on it.
+		You are at the shore of the lake. There are several people playing in the water. You can see the Swimmers Dock with a few students sitting on it.
 	<<elseif $daystate is "night">>
 		<<if $weekday is 7 or $weekday is 1>>
 			You are at the shore of the lake. You can see faint light from a fire at the campsite across the water.
@@ -97,7 +97,7 @@ There's a rocky alcove where you could store your clothes.
 			<br>
 		<</if>>
 	<</if>>
-	
+
 	<<if $dev is 1>>
 		<<ind>><<link [[North to firepit (0:10)|Lake Firepit]]>><<pass 10>><</link>>
 		<br>
@@ -130,7 +130,7 @@ There's a rocky alcove where you could store your clothes.
 	<</if>>
 <<else>>
 	<<if $laketeenspresent is 1>>
-		You are at the waterfall. Some of the younger students are playing in the falling water. Teens sit in the pond above.
+		You are at the waterfall. Some of the students are playing in the falling water. Others sit in the pond above.
 	<<elseif $daystate is "night">>
 		You are at the waterfall. A curtain of silver in the moonlight.
 	<<else>>
@@ -263,7 +263,7 @@ There's a rocky alcove where you could store your clothes.
 <<set $forest to 30>><<set $bus to "lakefirepit">>
 <<if $season is "winter">>
 	<<if $laketeenspresent is 1>>
-		You are at the Firepit. Several teens sit on a circle of stone benches. Others try to skate on the nearby ice.
+		You are at the Firepit. Several students sit on a circle of stone benches. Others try to skate on the nearby ice.
 	<<elseif $daystate is "night">>
 		<<if $laketeensfire is 1>>
 			You are at the Firepit. People are sitting around the fire as it burns, talking and drinking. The reflection of the fire on the lake's surface is almost mesmerising.
@@ -282,7 +282,7 @@ There's a rocky alcove where you could store your clothes.
 	<</if>>
 <<else>>
 	<<if $laketeenspresent is 1>>
-		You are at the Firepit. Several teens sit on a circle of stone benches. You can see several people splashing in the water down on the shore.
+		You are at the Firepit. Several students sit on a circle of stone benches. You can see several people splashing in the water down on the shore.
 	<<elseif $daystate is "night">>
 		<<if $laketeensfire is 1>>
 			You are at the Firepit. People are sitting around the fire as it burns, talking and drinking. The reflection of the fire on the lake's surface is almost mesmerising.
@@ -543,7 +543,7 @@ There's a rocky alcove where you could store your clothes.
 <<fameschoolex 5>>
 <<generatey1>><<generatey2>>
 <<if ($phase is 0 and ($uncomfortable.nude is false) or ($phase is 1 and $uncomfortable.underwear is false))>>
-	In a moment of daring, you casually emerge from the lake despite your <<lewdness>>. <<flaunting>> you stroll right past a group of teens.
+	In a moment of daring, you casually emerge from the lake despite your <<lewdness>>. <<flaunting>> you stroll right past a group of students.
 	It takes a moment for anyone to notice, but eventually a <<person1>><<person>> gasps and points at you, drawing the attention of several more.
 	<br><br>
 	A few avert their eyes in embarrassment, but many more have their eyes glued to you as you stride over to the rocky alcove.
@@ -551,7 +551,7 @@ There's a rocky alcove where you could store your clothes.
 	<br><br>
 	You sit by the rocky alcove, just out of sight. You wonder how many are still looking in your direction.
 <<else>>
-	In a moment of daring, you emerge from the lake despite your <<lewdness>>. You run right past a group of teens, attempting to cover yourself however you can.
+	In a moment of daring, you emerge from the lake despite your <<lewdness>>. You run right past a group of students, attempting to cover yourself however you can.
 	A <<person1>><<person>> points and laughs as you run, drawing the attention of several more. <<status -10>><<lcool>>
 	<br><br>
 	A few avert their eyes in embarrassment, but many more have their eyes glued to you as you stride over to the rocky alcove.
@@ -572,7 +572,7 @@ There's a rocky alcove where you could store your clothes.
 
 <<set $outside to 1>><<set $location to "lake">><<set $bus to "lakeshallows">><<effects>><<lakeeffects>>
 <<if $laketeenspresent is 1>>
-	You are stood on the frozen lake near the shore. Teens practise ice skating nearby.
+	You are stood on the frozen lake near the shore. Students practise ice skating nearby.
 <<else>>
 	<<if $weather is "snow">>
 		You are stood on the frozen lake near the shore. Snow blankets the ice, softening your footsteps.
@@ -642,7 +642,7 @@ You free the lotus flowers from the ice, gathering the seeds. <span class="gold"
 
 <<set $outside to 1>><<set $location to "lake">><<set $bus to "lakedepths">><<water>><<effects>><<lakeeffects>>
 <<if $laketeenspresent is 1>>
-	You are swimming in the middle of the lake near the dock. You see several teens hanging out on and around it.
+	You are swimming in the middle of the lake near the dock. You see several students hanging out on and around it.
 <<else>>
 	<<if $weather is "rain">>
 		You are swimming in the lake near the shore. The rain is so thick you can't see the shore. An endless deluge surrounds you in all directions.
@@ -849,7 +849,7 @@ You lift the shovel, and thrust it into the ice. It's hard work, but you manage
 
 <<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>>
 <<if $laketeenspresent is 1>>
-	You are on the swimming dock. Several teens accompany you on the dock. There is a bikini sitting on the edge with no signs of its owner.
+	You are on the swimming dock. Several students accompany you on the dock. There is a bikini sitting on the edge with no signs of its owner.
 <<elseif $weather is "rain">>
 	You are on the swimming dock. The sound of the rain hitting the water surrounding you is almost deafening. <<if $hallucinations gte 1>>You can't see far, yet you feel like something watches you.<</if>>
 <<elseif $daystate is "day">>
@@ -872,7 +872,7 @@ You lift the shovel, and thrust it into the ice. It's hard work, but you manage
 <<if $phase is 1>>
 	<<set $phase to 0>>
 	You sit on the rock and look out at the lake.
-	<<if $season is "winter">>
+	<<if $season isnot "winter">>
 		<<if $daystate is "night">>
 			<<if $weather is "rain">>
 				The violent darkness roils before you.
diff --git a/game/overworld-forest/loc-lake/mason.twee b/game/overworld-forest/loc-lake/mason.twee
index 30293c030fdc306941590352896493277045d410..e3bbcd2a84ffd95175812fdfc059e7d2a58cf531 100644
--- a/game/overworld-forest/loc-lake/mason.twee
+++ b/game/overworld-forest/loc-lake/mason.twee
@@ -559,7 +559,7 @@ Mason seems unsure, but nods. "If you're sure. Be careful." <<He>> dries <<himse
 <<elseif $NPCName[$NPCNameList.indexOf("Mason")].lust gte -10>>
 	"You should put some clothes on," <<he>> says.
 <<elseif $NPCName[$NPCNameList.indexOf("Mason")].lust gte -30>>
-	"That's no way to present yourself to your teacher." <<he>> asks.
+	"That's no way to present yourself to your teacher," <<he>> says.
 <<else>>
 	<<He>> sighs in resignation.
 <</if>>
diff --git a/game/overworld-forest/loc-lake/skating.twee b/game/overworld-forest/loc-lake/skating.twee
index e525ba1c1f91228c6270d485e1d81fc59eeff908..03797cbeaa2f17cf0c8f609242cff8c4167e6005 100644
--- a/game/overworld-forest/loc-lake/skating.twee
+++ b/game/overworld-forest/loc-lake/skating.twee
@@ -3,23 +3,23 @@
 
 You don a pair of ice skates, and push yourself onto the lake.
 
-<<if $danceskill gte 1000>>
+<<if currentSkillValue('danceskill') gte 1000>>
 	You glide across, leaping and spinning with grace.
 	<<if $laketeenspresent is 1 and $rng gte 51>>
-		<span class="green">The teenagers watch, awed by your skill.</span><<ltrauma>><<gcool>><<trauma -6>><<status 1>>
+		<span class="green">The students watch, awed by your skill.</span><<ltrauma>><<gcool>><<trauma -6>><<status 1>>
 	<</if>>
-<<elseif $danceskill gte 800>>
+<<elseif currentSkillValue('danceskill') gte 800>>
 	You glide across at a good pace, and practise more advanced tricks.
 	<<if $laketeenspresent is 1 and $rng gte 81>>
-		<span class="green">The teenagers watch, awed by your skill.</span><<ltrauma>><<gcool>><<trauma -6>><<status 1>>
+		<span class="green">The students watch, awed by your skill.</span><<ltrauma>><<gcool>><<trauma -6>><<status 1>>
 	<</if>>
-<<elseif $danceskill gte 600>>
+<<elseif currentSkillValue('danceskill') gte 600>>
 	You glide across at a good pace.
-<<elseif $danceskill gte 400>>
+<<elseif currentSkillValue('danceskill') gte 400>>
 	You move at a good pace, and rarely wobble.
-<<elseif $danceskill gte 200>>
+<<elseif currentSkillValue('danceskill') gte 200>>
 	You're a bit wobbly, but manage to put one foot in front of the other without falling.
-<<elseif $danceskill gte 100>>
+<<elseif currentSkillValue('danceskill') gte 100>>
 	You're able to remain upright, but little more than that.
 <<else>>
 	You struggle to even remain upright.<<gpain>><<pain 4>>
@@ -54,7 +54,7 @@ You don a pair of ice skates, and push yourself onto the lake.
 		<br>
 
 	<<elseif $rng gte 61>>
-		You catch a <<generatey1>><<person1>><<person>> admiring you from the shore. <<He>> looks away when your eyes meet <<his>>.
+		You catch a <<generatey1>><<person1>><<person>> admiring you from the shore. <<He>> looks away when your eyes meet <<hers>>.
 		<br><br>
 
 		<<link [[Bring onto the ice (0:05)|Lake Skate Flirt]]>><<pass 5>><</link>><<promiscuous1>>
@@ -92,7 +92,7 @@ You don a pair of ice skates, and push yourself onto the lake.
 		<</if>>
 	<<else>>
 		<<generatey1>><<person1>><<generatey2>><<generatey3>><<generatey4>>
-		A few delinquents surround a <<person>>. They push <<him>> away from the other teenagers, trying to isolate <<him>>.
+		A few delinquents surround a <<person>>. They push <<him>> away from the other students, trying to isolate <<him>>.
 		<br><br>
 		<<link [[Intervene (0:05)|Lake Skate Intervene]]>><<def 1>><<famegood 4>><<pass 5>><</link>>
 		<br>
@@ -108,7 +108,7 @@ You don a pair of ice skates, and push yourself onto the lake.
 <<effects>>
 
 You
-<<if $danceskill gte 200>>
+<<if currentSkillValue('danceskill') gte 200>>
 	skate
 <<else>>
 	wobble
@@ -361,11 +361,11 @@ There's no substitute for practise, but your presence is great for the <<persons
 <<effects>>
 
 
-<<if $danceskill gte 800>>
+<<if currentSkillValue('danceskill') gte 800>>
 	You perform some tricks in front of the <<person>>. <<He>> watches, then points out the flaws in your technique.
-<<elseif $danceskill gte 400>>
+<<elseif currentSkillValue('danceskill') gte 400>>
 	You skate in front of the <<person>>. <<He>> watches, then offers tips on how to improve your speed and balance.
-<<elseif $danceskill gte 100>>
+<<elseif currentSkillValue('danceskill') gte 100>>
 	The skate in front of the <<person>>. <<He>> watches, then offers tips on how to improve your balance.
 <<else>>
 	The <<person>> holds your arm as you skate, and gives you pointers. You're able to skate more adventurously than normal, knowing you aren't going to end up on your ass.
@@ -503,7 +503,7 @@ You shove the <<person>> away from you. <<He>> loses <<his>> footing, and lands
 You race after the <<person>>. <<He>> speeds up when <<he>> notices you following.
 <<if $danceSuccess>>
 
-	<<if $danceskill gte 600>>
+	<<if currentSkillValue('danceskill') gte 600>>
 		You're able to keep up, <span class="green">and then overtake <<him>>.</span> You spin and wink.
 	<<else>>
 		Driven by the desire to win, you manage to keep up, <span class="green">and even overtake <<him>></span> You spin and wink.
@@ -514,7 +514,7 @@ You race after the <<person>>. <<He>> speeds up when <<he>> notices you followin
 	<<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>>
 	<br>
 <<else>>
-	<<if $danceskill gte 800>>
+	<<if currentSkillValue('danceskill') gte 800>>
 		<<Hes>> fast, <span class="red">too fast.</span> Realising you won't catch up, you slow to a stop.<<lcool>><<status -10>>
 	<<else>>
 		In your rush to catch up, <span class="red">you lose your balance.</span> You're left sprawled on the ice.<<gpain>><<gstress>><<lcool>><<pain 4>><<stress 6>><<status -1>>
@@ -532,7 +532,7 @@ You race after the <<person>>. <<He>> speeds up when <<he>> notices you followin
 
 
 
-<<if $danceskill gte 200>>
+<<if currentSkillValue('danceskill') gte 200>>
 	You skate over.
 <<else>>
 	You manage to wobble your way over.
@@ -550,7 +550,7 @@ You race after the <<person>>. <<He>> speeds up when <<he>> notices you followin
 <<Hes>> already wearing ice skates. You hold out your hand.
 <<promiscuity1>>
 
-<<if $danceskill gte 200>>
+<<if currentSkillValue('danceskill') gte 200>>
 	You help <<him>> across the ice. You have to steady <<him>> more than once when <<he>> slips. <<He>> laughs, embarrassed, but <<his>> nervousness abates.
 	<br><br>
 <<else>>
@@ -558,7 +558,7 @@ You race after the <<person>>. <<He>> speeds up when <<he>> notices you followin
 	<br><br>
 <</if>>
 
-You're a fair way onto the ice, well away from the other teenagers.
+You're a fair way onto the ice, well away from the other students.
 <br><br>
 
 <<if $promiscuity gte 15>>
@@ -583,7 +583,7 @@ You're a fair way onto the ice, well away from the other teenagers.
 <</if>>
 <<seductionskilluse>>
 
-<<if $danceskill gte 200>>
+<<if currentSkillValue('danceskill') gte 200>>
 	You press your body against the <<persons>>, and breathe on <<his>> neck.
 <<else>>
 	You roll on top of the <<person>>, and breathe on <<his>> neck.
@@ -602,7 +602,7 @@ You're a fair way onto the ice, well away from the other teenagers.
 	<<He>> shivers, <span class="red">but <<his>> nervousness returns,</span> and <<he>> looks away.
 	<br><br>
 
-	<<if $danceskill gte 200>>
+	<<if currentSkillValue('danceskill') gte 200>>
 		You help <<him>> back to shore.
 	<<else>>
 		You help <<him>> to <<his>> feet, and back to shore.
@@ -677,7 +677,7 @@ You're a fair way onto the ice, well away from the other teenagers.
 :: Lake Skate Shore
 <<effects>>
 
-<<if $danceskill gte 200>>
+<<if currentSkillValue('danceskill') gte 200>>
 	You help the <<person>> back to shore. <<He>> kisses your cheek before you part.<<ltrauma>><<trauma -6>>
 	<br><br>
 <<else>>
diff --git a/game/overworld-forest/loc-lake/underwater.twee b/game/overworld-forest/loc-lake/underwater.twee
index c8b3bcb3edb76c7371d167844442efbe37550238..b19b1e6735fbdb966bcce1555431784f73220bdb 100644
--- a/game/overworld-forest/loc-lake/underwater.twee
+++ b/game/overworld-forest/loc-lake/underwater.twee
@@ -263,7 +263,7 @@ You are deep in the submerged ruin beneath the lake. Pots of different sizes fil
 		<span class="nextLink"><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><</link>><<loxygen>></span>
 	<<else>>
 		<<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><</link>><<loxygen>>
-	<</if>>	
+	<</if>>
 	<br>
 <</if>>
 
@@ -430,7 +430,7 @@ You lift the necklace from the plinth. The craftsmanship is masterful, and you g
 <<if $moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6>>
 	You suddenly hear pounding on the walls all around you. <<if $wraith and $wraith.seen gte 1>>A familiar<<else>>An unfamiliar<</if>> voice cries out, and it feels like something's grabbing at your arms and legs. You instinctively flail and push yourself backwards through the water. <<trauma 12>><<ggtrauma>>
 	<br><br>
-	It dies down after a few moments, leaving you shaken. 
+	It dies down after a few moments, leaving you shaken.
 	<<if $wraith and $wraith.hunt>>
 		The dread slowly passes, and you no longer sense the presence hunting you. <span class="blue"><i>You're safe until the next blood moon.</i></span>
 		<br><br>
@@ -819,7 +819,7 @@ A warmth spreads through your fingers, up your arm and into the rest of your bod
 	<br><br>
 	<<initWraith "abomination">>
 	<<He>> has a hand wrapped around your neck.
-	<<set $NPCList[0].lefthand to "throat">><<set $neckuse to "hand">>	
+	<<set $NPCList[0].lefthand to "throat">><<set $neckuse to "hand">>
 	<<if $wraith.gen is "abomination">>
 		<<He>> raises <<his>> other hand, and a swarm of pale tendrils rise from the shadows.
 	<<else>>
@@ -831,7 +831,7 @@ A warmth spreads through your fingers, up your arm and into the rest of your bod
 	<<else>>
 		<<link [[Next|Wraith Underwater Rape]]>><<set $molestationstart to 1>><</link>>
 	<</if>>
-	<br>	
+	<br>
 <<else>>
 	<<initWraith "man">>
 	You hear whispers, and turn to see a beautiful pale figure floating before you.
diff --git a/game/overworld-forest/loc-lake/widgets.twee b/game/overworld-forest/loc-lake/widgets.twee
index ab8edc46d9db2d379d0f81be64e3fd9db6c29e99..464397360830dcec73e10285aecf99fe3a462fe6 100644
--- a/game/overworld-forest/loc-lake/widgets.twee
+++ b/game/overworld-forest/loc-lake/widgets.twee
@@ -207,7 +207,7 @@ Someone screams. Everyone turns and backs away from the newcomer, a <<beasttype>
 <<elseif $rng gte 61>>
 	You're struck by a sudden terror. <span class="pink">You feel watched.</span>
 	<<if $laketeenspresent is 1>>
-		The voices of the teens fade, until you're alone.
+		The voices of the students fade, until you're alone.
 	<</if>>
 	<br><br>
 	There's something below.
@@ -228,7 +228,7 @@ Someone screams. Everyone turns and backs away from the newcomer, a <<beasttype>
 <<elseif $rng gte 21>>
 	<<if $weather is "snow">>
 		The snow falls heavy, and conceals the trees around the lake.
-		<<if $history gte random(1, 1000)>>
+		<<if currentSkillValue('history') gte random(1, 1000)>>
 			<span class="green">It soon passes.</span>
 			<br><br>
 		<<else>>
diff --git a/game/overworld-forest/loc-wolfpack/events.twee b/game/overworld-forest/loc-wolfpack/events.twee
index 81473a510b04482492938cc06a736c317577082a..d79632c6a8305fcc18a7957772b27585342450ce 100644
--- a/game/overworld-forest/loc-wolfpack/events.twee
+++ b/game/overworld-forest/loc-wolfpack/events.twee
@@ -766,7 +766,7 @@ One of the hunters, a <<beasttype>>,
 		<</if>>
 		<<physique 2>><<athletics 2>>
 	<<case 2>>
-		You try to dance around <<bhim>>, getting in hits while avoiding all of <<bhis>>. 
+		You try to dance around <<bhim>>, getting in hits while avoiding all of <<bhers>>.
 		<<if $danceSuccess>>
 			<<set _victory to 1>>
 			<span class="green">You find it easy to stave off your opponent's attacks.</span> You evade the <<beasttype>>'s pounce and deliver a decisive blow to <<bhis>> <<if $monster is 1>>face<<else>>muzzle<</if>>.
diff --git a/game/overworld-forest/loc-wolfpack/hunts.twee b/game/overworld-forest/loc-wolfpack/hunts.twee
index f9c5f0b31ed19ca87d1d8bc8aa6ee30c9298c29c..205bc38b8d62bd0ca2721fd417dacacb6bf38847 100644
--- a/game/overworld-forest/loc-wolfpack/hunts.twee
+++ b/game/overworld-forest/loc-wolfpack/hunts.twee
@@ -84,9 +84,9 @@ You run with the pack alongside the river. You come to a soft patch of grass. So
 
 <<location "forest">><<effects>>
 You come to a decaying stump at the base of the cliff. There's a collection of mushrooms growing at its base, some red some pink.
-<<if $science gte 400>>
+<<if currentSkillValue('science') gte 400>>
 	You recognise the red ones as wolfshrooms, thought to grant strength and prized by warriors in ancient times. You recognise the pink ones too. They're an aphrodisiac, and poisonous to many animals. Including <<wolf_cave_plural>>.
-<<elseif $science gte 200>>
+<<elseif currentSkillValue('science') gte 200>>
 	You recognise the red ones as wolfshrooms, thought to grant strength and prized by warriors in ancient times. You don't recognise the pink ones.
 <<else>>
 	You don't recognise either of them.
@@ -924,7 +924,7 @@ You begin to walk towards the rival pack. The alpha <<beasttype>> growls as you
 <<if $monster is 1>>
 	The <<beasttype>> marches up to you, pushing your head down onto the ground and holding you tightly. "Take food," <<bhe>> says to the Black Wolf. "We found tastier prey..." The rest of the <<beasttype>>'s pack draws closer, allowing your own party to take back its original hunt.
 <<else>>
-	Their leader approaches to sniff you, before holding your hair in its teeth and mounting you from behind. The rest of the pack draws closer, leaving their previous quarry unattended and free for your friends to take. 
+	Their leader approaches to sniff you, before holding your hair in its teeth and mounting you from behind. The rest of the pack draws closer, leaving their previous quarry unattended and free for your friends to take.
 <</if>>
 <br><br>
 
diff --git a/game/overworld-forest/loc-wolfpack/main.twee b/game/overworld-forest/loc-wolfpack/main.twee
index 6083c6a70518200ab15a5632a208b06d57e426f5..879ae533d68ff3cc61a1d6da3fb03db7d2641f3c 100644
--- a/game/overworld-forest/loc-wolfpack/main.twee
+++ b/game/overworld-forest/loc-wolfpack/main.twee
@@ -115,6 +115,10 @@ You are in the clearing outside the wolf cave. A stream runs by.
 	<</if>>
 	<<wolfcavestate>>
 <</if>>
+<<if $pound and $pound.progress is 5>>
+	<span class="blue">A dark shape lurks in the trees.</span>
+	<br>
+<</if>>
 <br><br>
 <<if $foresthunt gte 1>>
 	<span class="lblue">You're safe at the cave. Whatever was hunting you will have given up.</span>
@@ -137,6 +141,13 @@ You are in the clearing outside the wolf cave. A stream runs by.
 <<else>>
 	<<link [[Play (1:00)|Wolf Cave Play]]>><<stress -12>><<pass 1 hour>><</link>><<lstress>>
 	<br>
+	<<if $pound and $pound.progress is 5>>
+		<<link [[Approach the dark shape|Wolf Cave Dog Intro]]>><<set $pound.progress to 6>><<stress 6>><<trauma -6>><<control 25>><</link>><<gstress>><<ggcontrol>><<ltrauma>>
+		<br>
+	<<elseif $pound and $pound.progress is 6 and $daystate is "day" and $wolf_cave_dog is undefined>>
+		<<link [[Approach the black dog|Wolf Cave Dog]]>><</link>>
+		<br>
+	<</if>>
 	<<if $nextPassageCheck is "Wolf Cave Wash">>
 		<span class="nextLink"><<link [[Water.|Wolf Cave Wash]]>><</link>></span>
 	<<else>>
@@ -191,6 +202,89 @@ You are in the clearing outside the wolf cave. A stream runs by.
 	<br>
 <</if>>
 
+:: Wolf Cave Dog Intro
+<<effects>>
+
+<<loadNPC 0 "black_dog">>
+The dark shape slinks away before you arrive. You turn to leave, and come face-to-face with a pair of yellow eyes. The creature jumps on you, knocking you on your back, and covers your face in licks. <span class="green">It's the black <<beasttype>> you rescued from the pound.</span>
+<br><br>
+
+<<if $monster is 1>>
+	"Sorry," <<bhe>> says, climbing off you. <<bHe>> adopts <<bhis>> usual gruff demeanor, but there's a light in <<bhis>> eyes that wasn't present before. <<bHe>> looks healthier. "Happy to see you."
+<<else>>
+	<<bHe>> climbs off you, and resumes <<bhis>> usual gruff demeanor as if remembering <<bhimself>>, but there's a light in <<bhis>> eyes that wasn't present before. <<bHe>> looks healthier. <<bHe>> gives you a playful bark.
+<</if>>
+<br><br>
+
+<<link [[Next|Wolf Cave Clearing]]>><<endevent>><</link>>
+<br>
+
+:: Wolf Cave Dog
+<<effects>>
+<<loadNPC 0 "black_dog">>
+The black dog lurks on the outskirts of the clearing. The <<wolf_cave_plural>> tolerate <<bhim>>, but keep their distance.
+<br><br>
+
+<<bHe>> lies beneath a large fern, and watches you approach.
+<br><br>
+
+<<link [[Relax (0:30)|Wolf Cave Dog Relax]]>><<set $wolf_cave_dog to 1>><<trauma -6>><<stress -6>><</link>><<ltrauma>><<lstress>>
+<br>
+<<link [[Encourage to play with the pups|Wolf Cave Dog Play]]>><<set $wolf_cave_dog to 1>><</link>>
+<br><br>
+
+
+<<link [[Leave|Wolf Cave Clearing]]>><<endevent>><</link>>
+<br>
+
+:: Wolf Cave Dog Relax
+<<effects>>
+You sit beside the <<beasttype>>, and chat.
+<<if $monster is 1>>
+	<<if $rng gte 81>>
+		"This my <<if $NPCName[$NPCNameList.indexOf("Black Wolf")].pronoun is "f">>half-sister's<<else>>half-brother's<</if>> pack," <<bhe>> says. "Not welcome here. Not welcome anywhere. I have nowhere else."
+	<<elseif $rng gte 61>>
+		"Stay away from big human caves," <<bhe>> says. "Danger."
+	<<elseif $rng gte 41>>
+		"Stay away from lake," <<bhe>> says. "More danger than forest. More danger than town."
+	<<elseif $rng gte 21>>
+		"Pups frightened of me," <<bhe>> says. "Must look strange."
+	<<else>>
+		"Didn't hate master," <<bhe>> says. "But demanded too much."
+	<</if>>
+<<else>>
+	You lean against the <<beasttype>>, and stare at the canopy above as you rise and fall with <<bhis>> breathing. It's almost enough to send you to sleep.
+<</if>>
+<br><br>
+
+<<link [[Next|Wolf Cave Clearing]]>><<endevent>><</link>>
+<br>
+
+:: Wolf Cave Dog Play
+<<effects>>
+
+The <<beasttype>> huffs, and prowls from <<bhis>> hiding place, towards the playing pups.
+<<if $wolfstate is "cave">>
+	The black wolf watches from atop the cave, interested but unconcerned.
+<<elseif $wolfstate isnot "hunt">>
+	The grown <<wolf_cave_plural>> watch, wary.
+<<else>>
+	They're alone, but back away in fright when the large figure emerges from a bush in front of them.
+<</if>>
+<br><br>
+<<if $rng gte 51>>
+	<<bHe>> growls, and runs at the closest. They scramble to escape. You watch as <<bhe>> chases them around the clearing, sniffing out their hiding places with ease. <<bHe>>'s only playing, but you're not sure the pups know that.<<gferocity>>
+<<else>>
+	<<bHe>> lies down for a while, until a more adventurous pup summons the courage to approach, and learns that there's nothing to fear.
+	<br><br>
+	You watch as the <<beasttype>> plays with the pups. They have more energy than <<bhe>> however, and <<bhe>> soon returns to the trees to rest.<<gharmony>>
+<</if>>
+<br><br>
+
+<<link [[Next|Wolf Cave Clearing]]>><<endevent>><</link>>
+<br>
+
+
 :: Wolf Cave Plots
 <<effects>>
 
@@ -256,28 +350,28 @@ You rub your binds against a sharp rock and they soon come loose.
 <</if>>
 <br><br>
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Wolf Cave Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Wolf Cave Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Wolf Cave Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Wolf Cave Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
-<<link [[Sleep for 8 hours|Wolf Cave Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Wolf Cave Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Wolf Cave Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Wolf Cave Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Wolf Cave Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Wolf Cave Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Wolf Cave Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Wolf Cave Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Wolf Cave Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Wolf Cave Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Wolf Cave Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Wolf Cave Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Wolf Cave Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Wolf Cave Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hour|Wolf Cave Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hour|Wolf Cave Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Wolf Cave Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Wolf Cave Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 <<link [[Climb out of bed|Wolf Cave]]>><<set $wolfbed to 0>><<loadTempHairStyle>><</link>>
 <br><br>
diff --git a/game/overworld-forest/loc-wolfpack/wolf.twee b/game/overworld-forest/loc-wolfpack/wolf.twee
index 4706aaf80c66e3ddb0d90c858ac9d58c9c21191c..f759968595da8da00273a72f45db17fea9cb6302 100644
--- a/game/overworld-forest/loc-wolfpack/wolf.twee
+++ b/game/overworld-forest/loc-wolfpack/wolf.twee
@@ -168,7 +168,7 @@
 				<<if $monster is 1>>
 					"<<pPackbrother>>'s ears cannot perk up," <<bhe>> says. "Poor hearing over large distances. Can still hear pack's howl, hopefully."
 				<<else>>
-					<<bHe>> leans in to sniff them, 
+					<<bHe>> leans in to sniff them,
 					<<if $transformationParts.cow.horns isnot "hidden" or $demon gte 2 and $transformationParts.demon.horns isnot "hidden" >>
 						but bumps <<bhis>> nose against your horns. <<bHe>> huffs and backs away.
 					<<else>>
@@ -363,11 +363,11 @@ Having lived like the rest of your pack, you feel a deeper connection to them. "
 <<if $wolfpackleader is 1>>
 	<<if $wolfpackharmony gte $wolfpackferocity>>
 		<<if $monster is 1>>
-			"Alpha," <<bhis>> ears perk up as you approach, sitting up and stretching <<bhis>> limbs. Looking up at the moon, <<bhe>> sniffs at the air, flicking <<bhis>> tail. 
+			"Alpha," <<bhis>> ears perk up as you approach, sitting up and stretching <<bhis>> limbs. Looking up at the moon, <<bhe>> sniffs at the air, flicking <<bhis>> tail.
 			<br><br>
 			The Black Wolf's eyes narrow, ears flattening to <<bhis>> head. "Intruder," <<bhe>> growls. Standing, <<bhe>> looks back to you for permission to go.
 		<<else>>
-			<<bHis>> ears perk up as you approach, sitting up and stretching <<bhis>> limbs. Tilting <<bhis>> head back, <<bhe>> sniffs at the air, flicking <<bhis>> tail. 
+			<<bHis>> ears perk up as you approach, sitting up and stretching <<bhis>> limbs. Tilting <<bhis>> head back, <<bhe>> sniffs at the air, flicking <<bhis>> tail.
 			<br><br>
 			The Black Wolf's lip curls into a snarl, ears flattening to <<bhis>> head. Standing, <<bhe>> looks back to you for permission to go.
 		<</if>>
@@ -399,21 +399,21 @@ Having lived like the rest of your pack, you feel a deeper connection to them. "
 			<br><br>
 			The Black Wolf's eyes narrow, ears flattening to <<bhis>> head. "Intruder," <<bhe>> growls. Standing, <<bhe>> heads into the trees without looking back.
 		<<else>>
-			<<bHis>> ears perk up as you approach, sitting up and stretching <<bhis>> limbs. Tilting <<bhis>> head back, <<bhe>> sniffs at the air, flicking <<bhis>> tail. 
+			<<bHis>> ears perk up as you approach, sitting up and stretching <<bhis>> limbs. Tilting <<bhis>> head back, <<bhe>> sniffs at the air, flicking <<bhis>> tail.
 			<br><br>
 			The Black Wolf's lip curls into a snarl, ears flattening to <<bhis>> head. Standing, <<bhe>> heads into the trees without looking back.
 		<</if>>
 	<<else>>
 		<<if $monster is 1>>
-			As you approach, the Black Wolf snaps out of <<bhis>> restful state, keeping an eye on you as you sit. 
+			As you approach, the Black Wolf snaps out of <<bhis>> restful state, keeping an eye on you as you sit.
 			<br><br>
-			<<bHe>> stays cautious, even as <<he>> sniffs, eyes flickering between you and the trees. 
+			<<bHe>> stays cautious, even as <<he>> sniffs, eyes flickering between you and the trees.
 			<br><br>
 			"Something there," <<he>> growls, standing and rushing off. You wonder if it is just an excuse to be alone.
 		<<else>>
-			As you approach, the Black Wolf snaps out of <<bhis>> restful state, keeping an eye on you as you sit. 
+			As you approach, the Black Wolf snaps out of <<bhis>> restful state, keeping an eye on you as you sit.
 			<br><br>
-			<<bHe>> stays cautious, even as <<he>> sniffs, eyes flickering between you and the trees. 
+			<<bHe>> stays cautious, even as <<he>> sniffs, eyes flickering between you and the trees.
 			<br><br>
 			<<bHe>> growls, standing and rushing off. You wonder if it is just an excuse to be alone.
 		<</if>>
@@ -449,7 +449,7 @@ You watch the Black Wolf leave, <<bhis>> large body disappearing between the bus
 	"I-I don't think anything would be brave enough to come close," you say, huddling closer. "You should stay, so you can protect everyone. Just in case."
 	<br><br>
 	<<if $wolfpackharmony gte $wolfpackferocity>>
-		The Black Wolf chuffs, letting you lean on <<bhis>> body. 
+		The Black Wolf chuffs, letting you lean on <<bhis>> body.
 	<<else>>
 		The Black Wolf pushes you away when you try to lean on <<bhim>>. <<bHe>> obviously disapproves of your decision.
 	<</if>>
@@ -540,7 +540,7 @@ After a full loop, nothing is found. You widen the circle and try again, but wha
 <<if $phase is 1>>Happy <<bhe>> seems in better spirits<<else>>Ignoring <<bhis>> mood<</if>>, you keep walking towards the grassy clearing near the river. It's the last place to check.
 <br><br>
 
-Just as with the trees surrounding the cave, nothing more threatening than a field mouse can be found in the clearing. With the light of the moon overhead, the few flowers you can make out look quite pretty. 
+Just as with the trees surrounding the cave, nothing more threatening than a field mouse can be found in the clearing. With the light of the moon overhead, the few flowers you can make out look quite pretty.
 <br><br>
 
 Satisfied nothing will attack you in your sleep, you turn to make your way back. The Black Wolf blocks your path.
diff --git a/game/overworld-plains/loc-bird/main.twee b/game/overworld-plains/loc-bird/main.twee
index 3188ef10dabc473f7f02befa07746be8dba0ac6c..368f6baddbea0e2382df8b3cf1bdb602c701dc37 100644
--- a/game/overworld-plains/loc-bird/main.twee
+++ b/game/overworld-plains/loc-bird/main.twee
@@ -761,11 +761,11 @@ You tie one end of your rope around a chunk of upward-pointing stone, and throw
 	<<if $bird.activity isnot "sleep">>
 		<<set $moor_hunt to 9>>
 
-	 	<span class="red"> You hear a terrible shriek.</span> It didn't take long for the <<beasttype>> to notice your escape.
+		<span class="red"> You hear a terrible shriek.</span> It didn't take long for the <<beasttype>> to notice your escape.
 	<<elseif $bird.activity is "sleep" and $rng lte 70>>
 		<<set $moor_hunt to 9>>
 
-	 	<span class="red"> You hear a terrible shriek.</span> It didn't take long for the <<beasttype>> to notice your escape.
+		<span class="red"> You hear a terrible shriek.</span> It didn't take long for the <<beasttype>> to notice your escape.
 	<</if>>
 
 	<br><br>
@@ -1419,29 +1419,29 @@ You don't move.
 <</if>>
 
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Bird Tower Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Bird Tower Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Bird Tower Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Bird Tower Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
 
-<<link [[Sleep for 8 hours|Bird Tower Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Bird Tower Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Bird Tower Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Bird Tower Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Bird Tower Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Bird Tower Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Bird Tower Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Bird Tower Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Bird Tower Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Bird Tower Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Bird Tower Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Bird Tower Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Bird Tower Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Bird Tower Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hour|Bird Tower Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hour|Bird Tower Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Bird Tower Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Bird Tower Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 <<link [[Climb out of bed|Bird Tower]]>><<loadTempHairStyle>><</link>>
 <br><br>
@@ -1454,29 +1454,29 @@ You lie in a covered corner of the tower. It's hard to get comfortable.
 
 
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
 
-<<link [[Sleep for 8 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Bird Tower Sleep Alone]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hour|Bird Tower Sleep Alone]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hour|Bird Tower Sleep Alone]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Bird Tower Sleep Alone]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Bird Tower Sleep Alone]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 <<link [[Climb out of bed|Bird Tower]]>><<loadTempHairStyle>><</link>>
 <br><br>
@@ -2098,7 +2098,7 @@ The <<beasttype>> shakes <<bhis>> feathers, and lets you stroke <<bhis>> wings.
 	<br><br>
 	<<bird_perch_options>>
 <<elseif $rng gte 71>>
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 	Your thoughts turn to
 	<<if random(1,2) is 1>>
 		<<switch $loveInterest.primary>>
@@ -2653,9 +2653,12 @@ you say, flaring out your wings.
 <<bHe>> spends some time helping you preen your wings.
 <<if $monster is 1>>
 	<br><br>
-	"Always take care of feathers. Want to catch the wind as fast as possible," <<bhe>> says.<br>
-	"You're not going to push me, are you?" you ask.<br>
-	"Not if you're expecting it," <<bhe>> shoots back with a smile. <<stress 3>><<gstress>>
+	"Always take care of feathers. Want to catch the wind as fast as possible," <<bhe>> says.
+	<br>
+	"You're not going to push me, are you?" you ask.
+	<br>
+	"Not if you're expecting it," <<bhe>> shoots back with a smile.
+	<<stress 3>><<gstress>>
 	<br><br>
 	<<bHe>> walks behind you, and begins to knead and gently raise and lower your wings with <<bhis>> hands.
 	"Not much muscle. Very new. You will have trouble flying. But you should glide well."
@@ -2679,14 +2682,15 @@ Your vision begins to blur, and the ground looks to be getting further and furth
 <br><br>
 And then, you're pushed.
 <br><br>
-<<link [[Next|Bird Tower Fly Intro 3]]>><</link>><br>
+<<link [[Next|Bird Tower Fly Intro 3]]>><</link>>
+<br>
 
 :: Bird Tower Fly Intro 3
 <<bird_pass 10>>
 The air rushing by your head is deafening. The ground slowly gets closer and closer. You feel the urge to scream, but it gets caught in your throat.
 Your arms and legs begin to feel numb, and the edges of your vision begin to darken. Soon, the only things you can feel are your racing heart and your beating wings. <<ggstress>>
 <br><br>
-You don't even know when your wings started moving, but they're beating furiously. They're moving out of synch and in different directions, leaving feathers in the air behind you.
+You don't even know when your wings started moving, but they're beating furiously. They're moving out of sync and in different directions, leaving feathers in the air behind you.
 It feels like hours have passed since you were pushed over. You manage to look behind you, and see the Great Hawk rapidly descending towards you. Everything fades to black. <<stress 1000>><<gggstress>>
 <br><br>
 When your eyes open again, the ground is barely any closer. In fact, it almost looks like it's getting further away.
diff --git a/game/overworld-plains/loc-bird/widgets.twee b/game/overworld-plains/loc-bird/widgets.twee
index 68deecd1faefcdcc94e96003e9f433cf04aa0ac6..12c0d1c32fca6730ef0a124a8459bbaf356a3045 100644
--- a/game/overworld-plains/loc-bird/widgets.twee
+++ b/game/overworld-plains/loc-bird/widgets.twee
@@ -452,7 +452,7 @@
 		<<elseif $birdFly is 1 or $birdGlide is 1>>
 			<br><br>
 			<<link [[Glide down (0:02)|Bird Tower Glide]]>><<unset $birdPerch>><<bird_pass 2>><<endevent>><</link>><<flight_text>>
-		<<elseif $willpower lt 250>>
+		<<elseif currentSkillValue('willpower') lt 250>>
 			<span class="red">But you don't have the will or courage to attempt it.</span>
 		<<elseif $glideScared>>
 			<span class="red">You're too scared to try again right now.</span>
diff --git a/game/overworld-plains/loc-coast/coast.twee b/game/overworld-plains/loc-coast/coast.twee
index 349200e00c43d8864040b3a8c820368d0aff20cd..f264141ccc6d2a10636cedaf9196e38c664f236b 100644
--- a/game/overworld-plains/loc-coast/coast.twee
+++ b/game/overworld-plains/loc-coast/coast.twee
@@ -27,10 +27,10 @@ White rose bushes flower here, unbothered by the wind.
 <<if $historytrait gte 3>>
 	<<link [[Walk east along the coast (2:00)|Coast Path East]]>><<pass 120>><</link>>
 	<br>
-	<<if $athletics gte 300 and ($weather is "clear" or $weather is "overcast") and !$worn.feet.type.includes("heels")>>
+	<<if currentSkillValue('athletics') gte 300 and ($weather is "clear" or $weather is "overcast") and !$worn.feet.type.includes("heels")>>
 		<<link [[Jog east along the coast (1:30)|Coast Path East]]>><<pass 90>><<tiredness 2>><<set $speed to "jog">><</link>><<athleticsdifficulty 250 700>><<gtiredness>>
 		<br>
-		<<if $athletics gte 700>>
+		<<if currentSkillValue('athletics') gte 700>>
 			<<link [[Run east along the coast (1:00)|Coast Path East]]>><<pass 60>><<tiredness 5>><<set $speed to "run">><</link>><<athleticsdifficulty 650 1000>><<gtiredness>>
 			<br>
 		<</if>>
@@ -94,10 +94,10 @@ You're on a thin coastal path north of the farmlands, above a cliff facing the s
 	<<link [[Search for seeds (0:30)|Coast Path Cabbage]]>><<pass 30>><<tending 6>><<set $plants_known.push("cabbage")>><</link>><<gtending>>
 	<br>
 <</if>>
-<<if $athletics gte 300 and ($weather is "clear" or $weather is "overcast") and !$worn.feet.type.includes("heels")>>
+<<if currentSkillValue('athletics') gte 300 and ($weather is "clear" or $weather is "overcast") and !$worn.feet.type.includes("heels")>>
 	<<link [[Jog west along the coast (1:30)|Coast Path West]]>><<pass 90>><<tiredness 2>><<set $speed to "jog">><</link>><<athleticsdifficulty 250 700>><<gtiredness>>
 	<br>
-	<<if $athletics gte 700>>
+	<<if currentSkillValue('athletics') gte 700>>
 		<<link [[Run west along the coast (1:00)|Coast Path West]]>><<pass 60>><<tiredness 5>><<set $speed to "run">><</link>><<athleticsdifficulty 650 1000>><<gtiredness>>
 		<br>
 	<</if>>
diff --git a/game/overworld-plains/loc-estate/cards.twee b/game/overworld-plains/loc-estate/cards.twee
index 680b8315ded560021212f84f80d0d93e32c0f0f0..7539a8219a1b8391a61bef409484390f94d1288a 100644
--- a/game/overworld-plains/loc-estate/cards.twee
+++ b/game/overworld-plains/loc-estate/cards.twee
@@ -610,7 +610,7 @@ What do you ask?
 	<<set _rng to random(1, 3)>>
 	<<switch _rng>>
 	<<case 1>>
-		Wren runs a finger over your <<pussy>>. "This is taking a lot of self-control, you know," Wren says as <<he>> fondles you. "Having such a cute <<girl>> on my lap. A lesser <<personsimple>> would have ravaged you already."
+		Wren runs a finger over your <<pussy>>. "This is taking a lot of self-control, you know," Wren says as <<he>> fondles you. "Having such a cute <<girl>> <<if $estate.cards.position is "pc_lap" or $estate.cards.position is "penile">>beneath me<<else>>on my lap<</if>>. A lesser <<personsimple>> would have ravaged you already."
 	<<case 2>>
 		You feel Wren's eyes on your <<pussy>> as <<his>> finger teases your entrance. "I'll be inside you soon," <<he>> says as <<he>> strokes. "Just you wait."
 	<<default>>
@@ -729,7 +729,7 @@ What do you ask?
 <<elseif _cards_desire is "kiss">>
 	<<link [[Endure|Estate Cards Strip]]>><<set $phase to 0>><</link>><<willpowerdifficulty 1 1000>><<if $statdisable is "f">> | <span class="purple">Failure will increase arousal.</span><</if>> <<cards_virginity_warning>>
 	<br>
-	<<link [[Kiss back|Estate Cards Strip]]>><<set $phase to 1>><<set $estate.cards.degree to "promiscuity1">><</link>><<promiscuous1>><<willpowerdifficulty 1 1000>><<skill_difficulty oralskill "Oral Skill" 400 1000>><<ggarousal>><<cards_virginity_warning>>
+	<<link [[Kiss back|Estate Cards Strip]]>><<set $phase to 1>><<set $estate.cards.degree to "promiscuity1">><</link>><<promiscuous1>><<willpowerdifficulty 1 1000>><<skill_difficulty "$oralskill" "Oral Skill" 400 1000>><<ggarousal>><<cards_virginity_warning>>
 	<br>
 <<else>>
 	<<link [[Do as asked|Estate Cards Strip]]>><<set $phase to 0>><<stress 6>><<npcincr Wren love 1>><</link>><<gstress>><<glove>>
@@ -1553,7 +1553,7 @@ You drop to your knees, and crawl beneath the table. They're already beginning a
 		Wren said you had to use your mouth.
 		<br><br>
 
-		<<link [[Lick|Estate Cards Oral Penis]]>><<if $promiscuity lt 55>><<trauma 6>><<stress 6>><</if>><<arousal 600>><</link>><<skill_difficulty oralskill "Oral Skill" 1 1000>>
+		<<link [[Lick|Estate Cards Oral Penis]]>><<if $promiscuity lt 55>><<trauma 6>><<stress 6>><</if>><<arousal 600>><</link>><<skill_difficulty "$oralskill" "Oral Skill" 1 1000>>
 		<<if $promiscuity lt 55>>
 			<<gtrauma>><<gstress>>
 		<</if>>
@@ -1574,7 +1574,7 @@ You drop to your knees, and crawl beneath the table. They're already beginning a
 
 		Wren said you had to use your mouth.
 		<br><br>
-		<<link [[Lick|Estate Cards Oral Vagina]]>><<if $promiscuity lt 55>><<trauma 6>><<stress 6>><</if>><<arousal 600>><</link>><<skill_difficulty oralskill "Oral Skill" 1 1000>>
+		<<link [[Lick|Estate Cards Oral Vagina]]>><<if $promiscuity lt 55>><<trauma 6>><<stress 6>><</if>><<arousal 600>><</link>><<skill_difficulty "$oralskill" "Oral Skill" 1 1000>>
 		<<if $promiscuity lt 55>>
 			<<gtrauma>><<gstress>>
 		<</if>>
diff --git a/game/overworld-plains/loc-estate/main.twee b/game/overworld-plains/loc-estate/main.twee
index b4132701af5fba816998f5c6cbe91400ce01c365..0675f894e836154d35983457b3811e0990885088 100644
--- a/game/overworld-plains/loc-estate/main.twee
+++ b/game/overworld-plains/loc-estate/main.twee
@@ -88,7 +88,7 @@ There's a large barn ahead, and a manor looming from a hill beyond.
 	<</if>>
 	<span class="red">Making them cum won't be enough.</span>
 	<br><br>
-	A thought strikes you. 	<i>If you caused trouble elsewhere, the guards might be drawn away.</i>
+	A thought strikes you. <i>If you caused trouble elsewhere, the guards might be drawn away.</i>
 	<br><br>
 	<<link [[Fight|Estate Stone Approach 2]]>><</link>>
 	<br>
diff --git a/game/overworld-plains/loc-farm/assault.twee b/game/overworld-plains/loc-farm/assault.twee
index d5eb880e63db9e10a1ebc066259c47866dc12fcd..a295f713f869746d62664aa8a2b285876cdacf8a 100644
--- a/game/overworld-plains/loc-farm/assault.twee
+++ b/game/overworld-plains/loc-farm/assault.twee
@@ -120,17 +120,17 @@ You find Alex lying on <<his>> face, an empty bottle beside <<him>>. <<Hes>> unc
 	<<loadNPC 0 "farm_tower_guard">><<person1>>
 	You find <<him>> sitting at the base of the watchtower,
 	<<if $NPCList[0].traits.includes("relaxed")>>
-	   trying to light a cigarette butt. "That was rougher than I expected," <<he>> says. "Could you help me up?"
+		trying to light a cigarette butt. "That was rougher than I expected," <<he>> says. "Could you help me up?"
 	<<elseif $NPCList[0].traits.includes("sociable")>>
 		chatting on <<his>> phone. "-boss is here. Call you back." <<He>> smiles at you. "You should have seen how many I took on before they got me."
 	<<elseif $NPCList[0].traits.includes("brooding")>>
-		gazing at the sky. "Sorry kid," <<he>> says. "I like to think I gave as good as I got."
+		gazing at the sky. "Sorry boss," <<he>> says. "I like to think I gave as good as I got."
 	<<else>>
 		watching you. "Are you an angel come to take me away?" <<he>> laughs.
 	<</if>>
 	You help <<him>> to <<his>> feet.
 	<<if $NPCList[0].traits.includes("relaxed")>>
-	   "I'll be alright" <<he>> continues. "Just need to stretch."
+		"I'll be alright" <<he>> continues. "Just need to stretch."
 	<<elseif $NPCList[0].traits.includes("sociable")>>
 		"There's a stool just inside," <<he>> continues. "A little rest would do me good."
 	<<elseif $NPCList[0].traits.includes("brooding")>>
@@ -148,11 +148,11 @@ You find Alex lying on <<his>> face, an empty bottle beside <<him>>. <<Hes>> unc
 	<<loadNPC 0 "farm_tower_guard">><<person1>>
 
 	<<if $NPCList[0].traits.includes("relaxed")>>
-	   "Let's get <<nnpc_him Alex>> inside," <<he>> says, nodding at Alex. "Then I need a smoke."
+		"Let's get <<nnpc_him Alex>> inside," <<he>> says, nodding at Alex. "Then I need a smoke."
 	<<elseif $NPCList[0].traits.includes("sociable")>>
 		"Is <<nnpc_he Alex>> alright?" <<he>> asks, then notices the bottle. "Ah."
 	<<elseif $NPCList[0].traits.includes("brooding")>>
-		"Sorry kid," <<he>> says. "You're handling this better than Alex at least. Let's get <<nnpc_him Alex>> inside."
+		"Sorry boss," <<he>> says. "You're handling this better than Alex at least. Let's get <<nnpc_him Alex>> inside."
 	<<else>>
 		"That was a mess," <<he>> says. "Alex has the right idea. Odd choice of bed though."
 	<</if>>
@@ -197,17 +197,17 @@ You find Alex lying on <<his>> face, an empty bottle beside <<him>>. <<Hes>> unc
 	<<loadNPC 0 "farm_tower_guard">><<person1>>
 	You find the lookout sat at the base of the tower,
 	<<if $NPCList[0].traits.includes("relaxed")>>
-	   trying to light a cigarette butt. "That was rougher than I expected," <<he>> says. "Could you help me up?"
+		trying to light a cigarette butt. "That was rougher than I expected," <<he>> says. "Could you help me up?"
 	<<elseif $NPCList[0].traits.includes("sociable")>>
 		chatting on <<his>> phone. "-bosses are here. Call you back." <<He>> smiles at you. "You should have seen how many I took on before they got me."
 	<<elseif $NPCList[0].traits.includes("brooding")>>
-		gazing at the sky. "Sorry kids," <<he>> says. "I like to think I gave as good as I got."
+		gazing at the sky. "Sorry boss," <<he>> says. "I like to think I gave as good as I got."
 	<<else>>
 		watching you. "Have the angels come to take me away?" <<he>> laughs.
 	<</if>>
 	You and Alex help <<him>> to <<his>> feet.
 	<<if $NPCList[0].traits.includes("relaxed")>>
-	   "I'll be alright" <<he>> continues. "Just need to stretch."
+		"I'll be alright" <<he>> continues. "Just need to stretch."
 	<<elseif $NPCList[0].traits.includes("sociable")>>
 		"There's a stool just inside," <<he>> continues. "A little rest would do me good."
 	<<elseif $NPCList[0].traits.includes("brooding")>>
@@ -222,7 +222,7 @@ You find Alex lying on <<his>> face, an empty bottle beside <<him>>. <<Hes>> unc
 	<<endevent>>
 	<<loadNPC 0 "farm_tower_guard">><<person1>>
 	<<if $NPCList[0].traits.includes("relaxed")>>
-	   "Glad you guys are alright,"<<he>> says. "That was almost too exciting."
+		"Glad you guys are alright,"<<he>> says. "That was almost too exciting."
 	<<elseif $NPCList[0].traits.includes("sociable")>>
 		"That livened things up," <<he>> says. "I think I need a breather."
 	<<elseif $NPCList[0].traits.includes("brooding")>>
@@ -237,11 +237,11 @@ You find Alex lying on <<his>> face, an empty bottle beside <<him>>. <<Hes>> unc
 
 <<endevent>>
 <<npc Alex>><<person1>>
-You walk back to the cottage. 
+You walk back to the cottage.
 <<if $loveInterest.primary is "Alex" or $loveInterest.secondary is "Alex">>
 	Alex wraps an arm around your shoulder.
 <<else>>
-	Alex pats your shoulder. 
+	Alex pats your shoulder.
 <</if>>
 "We won, but Remy will be back. We'll be ready."
 <br><br>
@@ -369,7 +369,7 @@ You hear shouting outside.
 	<<set $farm_assault.teams[_assault_keys[_s]].wall_progress to 0>>
 	<<set $farm_assault.teams[_assault_keys[_s]].field_progress to 0>>
 	<<set $farm_assault.teams[_assault_keys[_s]].number to 3>>
-	<<if $wraith and $wraith.state is "haunt" and $farm_assault.wraith is undefined and $hallucinations gte 2 and random(1,10) is 1>>
+	<<if $wraith and $wraith.state is "haunt" and $farm_assault.wraith is undefined and $hallucinations gte 2 and random(1,12) is 1>>
 		<<set $farm_assault.teams[_assault_keys[_s]].type to "wraith">>
 		<<set $farm_assault.teams[_assault_keys[_s]].number to 1>>
 		<<set $farm_assault.teams[_assault_keys[_s]].torched to 0>>
@@ -552,7 +552,7 @@ You hear shouting outside.
 		<<else>>
 			<<if random(1, 100) gte 60>>
 				<<set $farm_assault.teams[_assault_keys[_s]].number -= 1>>
-				 <<set _alex_success to true>>
+				<<set _alex_success to true>>
 			<</if>>
 		<</if>>
 	<</if>>
@@ -572,7 +572,7 @@ You hear shouting outside.
 	<<set _farm_assault_active to true>>
 <<elseif $farm_assault.teams[_assault_keys[_s]].location gte 0>>
 	<<set $farm_assault.no.push($farm_assault.teams[_assault_keys[_s]].location)>>/*Add their location back to the pool.*/
-	<<if $farm_assault.alex is  _assault_keys[_s]>>/*Alex patrols again. */
+	<<if $farm_assault.alex is _assault_keys[_s]>>/*Alex patrols again. */
 		<<set $farm_assault.alex to "patrol">>
 	<</if>>
 <<elseif $farm_assault.alex is _assault_keys[_s] and $farm_assault.teams[_assault_keys[_s]].location is "done">>
@@ -927,7 +927,7 @@ You hear shouting outside.
 				<</if>>
 				<<set $_min to ($_isBaileyTeam ? 3000 : 200)>>
 				<<set $_max to ($_isBaileyTeam ? 3000 : 1000)>>
-				<<link [[Threaten (0:05)|Farm Assault Threaten]]>><<pass 5>><</link>><<skill_difficulty famescrap "Combat Fame" $_min $_max>>
+				<<link [[Threaten (0:05)|Farm Assault Threaten]]>><<pass 5>><</link>><<skill_difficulty "$fame.scrap" "Combat Fame" $_min $_max>>
 				<br>
 			<<elseif $_team.state is "entry">>
 				<<if $_isBaileyTeam>>
@@ -1202,7 +1202,7 @@ You march into the open.
 			<<if $farm_assault.teams[_assault_keys[_s]].number gte 2>>
 				<<generate1>><<person1>>
 				<span class="red">The intruders laugh.</span>
-				<<if $famescrap gte 400>>
+				<<if $fame.scrap gte 400>>
 					"<span class="pink"><<underworld_nickname>></span>," a <<person>> says. "Very scary. But there's scarier behind us."
 				<<else>>
 					"Very scary," a <<person>> says. "But there's scarier behind us."
@@ -1211,14 +1211,14 @@ You march into the open.
 			<<else>>
 				<<generate1>><<person1>>
 				<span class="red">The <<person>> laughs.</span>
-				<<if $famescrap gte 400>>
+				<<if $fame.scrap gte 400>>
 					"<span class="pink"><<underworld_nickname>></span>," <<he>> says. "Very scary. But there's scarier behind me."
 				<<else>>
 					"Very scary," <<he>> says. "But there's scarier behind me."
 				<</if>>
 				<<He>> continues forcing their way in.
 			<</if>>
-		<<elseif $famescrap gte random(200, 1000)>>
+		<<elseif $fame.scrap gte random(200, 1000)>>
 			<<if $farm_assault.teams[_assault_keys[_s]].number gte 2>>
 				<<generate1>><<person1>><<generate2>>
 				The intruders glance at each other.
@@ -1236,7 +1236,7 @@ You march into the open.
 				The intruder, a <<person>>, stares at you. "I'm just getting paid to clear some fields," <<he>> says. "I don't want no trouble." <span class="green"><<He>> turns and leaves.</span>
 				<br><br>
 
-			   <<set $farm_assault.teams[_assault_keys[_s]].location to "done">>
+				<<set $farm_assault.teams[_assault_keys[_s]].location to "done">>
 			<</if>>
 		<<else>>
 			<<if $farm_assault.teams[_assault_keys[_s]].number gte 2>>
@@ -1267,11 +1267,11 @@ You march into the open.
 	<<if $bus is $farm_assault.teams[_assault_keys[_s]].location>>
 		<<if $farm_assault.teams[_assault_keys[_s]].number gte 3>>
 			<<generate1>><<generate2>><<generate3>>
-			You charge Remy's thugs, a <<person1>><<person>>, <<person2>><<person>>, and <<person3>><<person>>. They plant their feet, ready to face you.
+			You charge Remy's thugs, a <<fullGroup>>. They plant their feet, ready to face you.
 			<br><br>
 		<<elseif $farm_assault.teams[_assault_keys[_s]].number gte 2>>
 			<<generate1>><<generate2>>
-			You charge Remy's thugs, a <<person1>><<person>> and <<person2>><<person>>. They plant their feet, ready to face you.
+			You charge Remy's thugs, a <<fullGroup>>. They plant their feet, ready to face you.
 			<br><br>
 		<<else>>
 			<<generate1>>
@@ -1293,11 +1293,11 @@ You march into the open.
 	<<if $bus is $farm_assault.teams[_assault_keys[_s]].location>>
 		<<if $farm_assault.teams[_assault_keys[_s]].number gte 3>>
 			<<generate1>><<generate2>><<generate3>>
-			You charge Bailey's thugs, a <<person1>><<person>>, <<person2>><<person>>, and <<person3>><<person>>. They turn to meet you. The <<person1>><<person>> cracks <<his>> knuckles.
+			You charge Bailey's thugs, a <<fullGroup>>. They turn to meet you. The <<person1>><<person>> cracks <<his>> knuckles.
 			<br><br>
 		<<elseif $farm_assault.teams[_assault_keys[_s]].number gte 2>>
 			<<generate1>><<generate2>>
-			You charge Bailey's thugs, a <<person1>><<person>> and <<person2>><<person>>. They turn to meet you. The <<person1>><<person>> cracks <<his>> knuckles.
+			You charge Bailey's thugs, a <<fullGroup>>. They turn to meet you. The <<person1>><<person>> cracks <<his>> knuckles.
 			<br><br>
 		<<else>>
 			<<generate1>>
@@ -1482,7 +1482,7 @@ You march into the open.
 <<else>>
 	You fall to the earth, too hurt to continue fighting.
 	<br><br>
-	The <<person1>><<person>> crouches over you. "Sorry kid," <<he>> says. "But this is the way of the world."
+	The <<person1>><<person>> crouches over you. "Sorry," <<he>> says. "But this is the way of the world."
 	<br><br>
 	You can't stop <<him>> binding your arms and legs together, and tying a gag around your mouth. "Later <<girl>>."
 	<br><br>
@@ -1532,7 +1532,7 @@ You march into the open.
 			<<skulduggeryuse>>
 
 			<<link [[Next|Farm Assault]]>><<endevent>><</link>>
-		   <br>
+			<br>
 
 		<<else>>
 
@@ -1681,8 +1681,8 @@ You charge the intruders, Alex at your side.
 <<for _s to 0; _s lt _assault_keys.length; _s++>>
 	<<if $bus is $farm_assault.teams[_assault_keys[_s]].location>>
 		<<if $farm_assault.teams[_assault_keys[_s]].number gte 3>>
-			<<generate1>><<generate2>><<person1>>
-			There are three of them. One splits off to intercept Alex, leaving the <<person>> and <<person2>><<person>> to you.
+			<<generate1>><<generate2>>
+			There are three of them. One splits off to intercept Alex, leaving the <<fullGroup>> to you.
 			<br><br>
 			<<person1>>
 		<<else>>
@@ -1916,7 +1916,7 @@ You hear Alex fighting the other intruder.
 <<else>>
 	You fall to the earth, too hurt to continue fighting.
 	<br><br>
-	The <<person1>><<person>> crouches over you. "Sorry kid," <<he>> says. "But this is the way of the world." <<He>> produces a length of rope, and a gag.
+	The <<person1>><<person>> crouches over you. "Sorry," <<he>> says. "But this is the way of the world." <<He>> produces a length of rope, and a gag.
 	<br><br>
 	<<endcombat>>
 	<<npc Alex>><<person1>><<generate2>>
@@ -2494,7 +2494,7 @@ You move as fast as you think you can get away with. $farm.tower_guard tries to
 <</if>>
 <br><br>
 
-"<span class="wraith">Ashes to ashes, eye for an eye. Graverobber.</span>"
+"<span class="wraith">Ashes to ashes, eye for an eye. <<pcPetname "Wraith">>.</span>"
 <br><br>
 
 <<generateWraith 1 true>>
diff --git a/game/overworld-plains/loc-farm/cottage.twee b/game/overworld-plains/loc-farm/cottage.twee
index b23a5d00b1210acf4a35c4537408b89ce14ba10b..1c176b9252bcb4804fa7fd22ebaaeb6597c774f1 100644
--- a/game/overworld-plains/loc-farm/cottage.twee
+++ b/game/overworld-plains/loc-farm/cottage.twee
@@ -137,7 +137,7 @@ You are in your room at Alex's cottage. It's cramped, but larger than your room
 		<<He>> yawns, and casts aside the sheets. <<covered>> "Time for breakfast," <<he>> says.
 		<<if $alexDaily.bed_orgasm>>
 			<<if $exposed gte 2>>
-				Alex hastily brushes <<his>> clothes with a washcloth, then hands a fresh one to you, averting <<his>> gaze. 
+				Alex hastily brushes <<his>> clothes with a washcloth, then hands a fresh one to you, averting <<his>> gaze.
 				<br><br>
 				<<switch random(1, 3)>>
 					<<case 1>>
@@ -321,7 +321,7 @@ You snuggle under the covers.
 					Alex hangs off the bed. You fix <<nnpc_him "Alex">>.
 				<<case 6>>
 					"<<print either("Bad... no supper for you tonight",
-									"D-don't look", 
+									"D-don't look",
 									"I think I have a hangover",
 									"Dumb bird",
 									"Get off... property",
@@ -362,13 +362,13 @@ You snuggle under the covers.
 				<<if $NPCList[0].penis isnot "none">>
 					and a firm length pressed against your <<bottom>>.
 				<<else>>
-					and someone's 
+					and someone's
 					<<if $NPCList[0].breastsize is 0>>
 						chest
 					<<else>>
 						<<print $NPCList[0].breastsdesc>>
-					<</if>> 
-					pressed against your back. 
+					<</if>>
+					pressed against your back.
 				<</if>>
 				Another hand rests against your thigh.
 				<br><br>
@@ -407,12 +407,12 @@ You snuggle under the covers.
 				<<if $NPCList[0].penis isnot "none">>
 					and a firm length pressed against your <<bottom>>.
 				<<else>>
-					and someone's 
+					and someone's
 					<<if $NPCList[0].breastsize is 0>>
 						chest
 					<<else>>
 						<<print $NPCList[0].breastsdesc>>
-					<</if>> 
+					<</if>>
 					pressed against your back.
 				<</if>>
 				<br><br>
@@ -509,7 +509,7 @@ You gyrate your hips, <<bottomtext>> rubbing your <<bottom>> against Alex's <<pr
 
 You turn onto your other side, and push Alex away from you.
 <<if _alex.dom gte random(1, 50)>>
-	<<He>> wraps <<his>> arms around your waist and shoulder, and pulls your body against <<his>>. "You want me to be rough?" <<he>> asks, squeezing your <<bottom>>. "That's okay by me."<<gstress>><<stress 6>><<glust>><<npcincr Alex lust 1>>
+	<<He>> wraps <<his>> arms around your waist and shoulder, and pulls your body against <<hers>>. "You want me to be rough?" <<he>> asks, squeezing your <<bottom>>. "That's okay by me."<<gstress>><<stress 6>><<glust>><<npcincr Alex lust 1>>
 	<br><br>
 
 	<<link [[Push away again|Farm Alex Push 2]]>><<def 1>><<npcincr Alex dom -1>><</link>><<ldom>>
@@ -913,7 +913,7 @@ You are in Alex's bedroom. It's similar to yours. Clothes tumble from the wardro
 			<<orgasmLocation "alexFarmAdmin">>
 		<</if>>
 		<<endevent>>
-		<<link [[Offer help (1:00)|Farm Alex Admin]]>><<pass 60>><<npc Alex>><<person1>><<npcincr Alex love 1>><<stress 6>><</link>><<skill_difficulty maths "Maths" 1 1000>><<glove>><<gstress>>
+		<<link [[Offer help (1:00)|Farm Alex Admin]]>><<pass 60>><<npc Alex>><<person1>><<npcincr Alex love 1>><<stress 6>><</link>><<skill_difficulty "$maths" "Maths" 1 1000>><<glove>><<gstress>>
 		<br>
 		<<if $alex_countdown is undefined and $NPCName[$NPCNameList.indexOf("Alex")].love gte 80>>
 			<<link [[Cuddle Alex (0:30)|Farm Phone Cuddle]]>><<pass 30>><<npc Alex>><<person1>><<npcincr Alex love 1>><</link>><<glove>>
@@ -923,7 +923,7 @@ You are in Alex's bedroom. It's similar to yours. Clothes tumble from the wardro
 			<<link [[Crawl beneath the desk|Farm Alex Admin Crawl]]>><<npc Alex>><<person1>><<set $alexDaily.admin_oral to true>><</link>><<promiscuous4>>
 			<br>
 		<</if>>
-		<<if window.checkSextoysGift("Alex") == 1 and ($loveInterest.primary is "Alex" or $loveInterest.secondary is "Alex")>>
+		<<if checkSextoysGift("Alex") and ($loveInterest.primary is "Alex" or $loveInterest.secondary is "Alex") and checkIfNPCHasCategorySextoy("Alex","strap-on").length <= 5>>
 			<<link [[Gift Alex a strap-on|Alex Gift Strap-on]]>><<npc Alex>><<person1>><</link>>
 			<br>
 		<</if>>
@@ -1054,7 +1054,7 @@ Alex digs in as soon as <<he>> sits.
 <<set _alex to $NPCName[$NPCNameList.indexOf("Alex")]>>
 
 <<if $phase is 1>>
-	You compliment the food. 
+	You compliment the food.
 	<<if $submissive gte 1150>>
 		"It's s-so delicious!" you say. "The f-food in town doesn't come close."
 	<<elseif $submissive lte 850>>
@@ -1074,27 +1074,27 @@ Alex digs in as soon as <<he>> sits.
 			<<else>>
 				"I've had a lot of practice."
 			<</if>>
-		<<case 2>> 
+		<<case 2>>
 			<<if $farm.build_finished.includes("coop 2")>>
 				"I've more eggs than I know what to do with, thanks to you."
 			<<elseif $farm.build_finished.includes("coop 1")>>
 				"Egg surplus. Those chickens multiplied like rabbits. Speaking of...
 				<<if $NPCName[$NPCNameList.indexOf("Alex")].lust gte 20>>
 					can't wait 'til we get some time to ourselves." <<He>> winks.
-				<<else>>    
+				<<else>>
 					nevermind. Food's getting cold." <<He>> scarfs down the rest of <<his>> plate.
 				<</if>>
 			<<else>>
 				"What'd I tell you about our eggs?"
-			<</if>> 
+			<</if>>
 		<<case 3>>
 			"I'm in a good mood.
 			<<if $farm_attack_timer is 0>>
-				Whatever goes down tonight, I'm ready for it." 
+				Whatever goes down tonight, I'm ready for it."
 			<<elseif $loveInterest.primary is "Alex" or $loveInterest.secondary is "Alex">>
-				I've got my 
+				I've got my
 				<<if _alex.dom gte 30>>
-					<<girl>>, 
+					<<girl>>,
 				<<else>>
 					<<if $player.gender_appearance is "f">>wo<</if>>man,
 				<</if>>
@@ -1132,12 +1132,12 @@ Alex digs in as soon as <<he>> sits.
 <<elseif $phase is 2>>
 	You chat with Alex about the farm and <<his>> plans for the day while you eat.
 	<<switch random(1, 5)>>
-		<<case 1>> 
+		<<case 1>>
 			"Enough about the farm," <<he>> says at one point. "Tell me something about yourself."
 			<br><br>
 
 			<<farm_tell_alex>>
-		<<case 2>> 
+		<<case 2>>
 			<<silently>><<farm_upgrades_status>><</silently>>
 			<<if $farm_attack_timer is 0>>
 				"Remy's paying a visit tonight," <<he>> says after properly swallowing.
@@ -1199,7 +1199,7 @@ Alex digs in as soon as <<he>> sits.
 			<<He>> almost chokes on <<his>> food, then clears <<his>> throat.
 			<br><br>
 			/* Modify to account for tfs*/
-			<<if $worn.neck.collared is 1>>	
+			<<if $worn.neck.collared is 1>>
 				<<if _alex.dom gte 30>>
 					Without warning, your leash is yanked with such force that you nearly faceplant into the food. "Sorry, I was only getting warmed up." <<he>> grins.
 					"Seems I underestimated myself."<<arousal 100>><<npcincr Alex lust 1>><<garousal>><<glust>>
@@ -1217,7 +1217,7 @@ Alex digs in as soon as <<he>> sits.
 			<<elseif $worn.head.name is "football helmet" or $worn.upper.name is "padded football shirt" or $worn.lower.name is "football shorts">>
 				<<He>> takes notice of your football gear, and looks surprised. "Didn't take you for the type," <<he>> says. "It's been a while since I've played."
 			<<elseif $worn.upper.type.includes("school") or $worn.lower.type.includes("school")>>
-				<<if $schoolday is 1>>  
+				<<if $schoolday is 1>>
 					"Good luck with school," <<he>> says. "I'm glad I was taught at home."
 				<<else>>
 					"Y'know, it's the weekend," <<he>> laughs. <<Hes>> referring to your school uniform.
@@ -1762,7 +1762,7 @@ Alex slumps onto the chair beside you.
 :: Farm Breakfast TV
 <<effects>>
 
-<<if $alexDaily.spank and $pain gte 20>> 
+<<if $alexDaily.spank and $pain gte 20>>
 	<<He>> looks remorseful when <<he>> sees your tears, and wipes them with one hand, gently patting your back with the other.
 	<<He>> gives you awkward reassurances, but you can tell <<hes>> trying <<his>> best. You feel slightly better.<<pain -10>><<lpain>>
 	<br><br>
@@ -1781,7 +1781,7 @@ Alex slumps onto the chair beside you.
 			"My <<if $pronoun is "m">>brother<<else>>sister<</if>> bought that once," <<he>> chuckles. "It came busted."
 	<</switch>>
 <<elseif $rng gte 71>>
-	You watch the news. It's <<print either("some famous person's birthday", "the weather", "showing off the locales", "interviewing the locals")>>. Alex complains about nothing in particular. 
+	You watch the news. It's <<print either("some famous person's birthday", "the weather", "showing off the locales", "interviewing the locals")>>. Alex complains about nothing in particular.
 <<elseif $rng gte 61>>
 	You watch an old sports game. Alex <<if random(1,2) is 1>>cheers vibrantly when <<his>> team scores a goal.<<else>>agonises over a loss, despite already knowing the outcome of the game.<</if>>
 <<elseif $rng gte 51>>
@@ -1839,7 +1839,7 @@ Alex slumps onto the chair beside you.
 <<set _alex to $NPCName[$NPCNameList.indexOf("Alex")]>>
 
 You get comfy beside Alex.
-<<if $alexDaily.spank and $pain gte 20>> 
+<<if $alexDaily.spank and $pain gte 20>>
 	<<He>> looks remorseful when <<he>> sees your tears, and wipes them with one hand, gently patting your back with the other.
 	<<He>> gives you awkward reassurances, but you can tell <<hes>> trying <<his>> best. You feel slightly better.<<pain -10>><<lpain>>
 	<br><br>
@@ -1866,10 +1866,10 @@ You get comfy beside Alex.
 			"I-I'm onto you," Alex blushes, pointing at you as <<he>> slouches back.<<npcincr Alex lust 1>><<glust>><<arousal 100>><<garousal>>
 		<<else>>
 			The remote falls off. You both reach for it at the same time, and your hands meet. <<He>> can't help but chuckle, and you follow suit.
-		<</if>>	
-	<<case 2>> 
+		<</if>>
+	<<case 2>>
 		<<He>> strokes your hair while you gaze at the sunrise together. "It's gorgeous. I know someone like that. <<pShes>> real close,"
-		 <<he>> leans in to kiss your cheek, then grins. "I don't have to go far."
+		<<he>> leans in to kiss your cheek, then grins. "I don't have to go far."
 	<<case 3>>
 		<<He>> flips the channel. It's a movie in the middle of a lewd scene. <<He>> glimpses at you, but changes it quickly.<<npcincr Alex lust 1>><<glust>>
 		<<if $hour isnot 6>>
@@ -1923,12 +1923,12 @@ You get comfy beside Alex.
 			<br><br>
 
 			You swoop in to kiss <<him>> mid-laugh, and <<he>> turns red.<<takeKissVirginity "Alex" "loveInterest">>
-		<<elseif $athletics gte 800>>
+		<<elseif currentSkillValue('athletics') gte 800>>
 			<span class="green"><<His>> reflexes are fast, but yours prove faster.</span> "You won, fair and square. Now give it back." <<He>> folds <<his>> arms.
 			<br><br>
 
 			<<if $submissive gte 1150>>
-				"A-are you mad?" you giggle, clinging your arms to <<his>>. "M-maybe you should watch me instead."
+				"A-are you mad?" you giggle, clinging your arms to <<hers>>. "M-maybe you should watch me instead."
 			<<elseif $submissive lte 850>>
 				"Did I touch a nerve?" you tease, flicking <<his>> nose. "I should be your main source of entertainment."
 			<<else>>
@@ -1936,7 +1936,7 @@ You get comfy beside Alex.
 			<</if>>
 			<br><br>
 
-			<<His>> demeanor slips as <<he>> cracks a smile. "You're absolutely right." Shortly after, you exchange a playful kiss.<<takeKissVirginity "Alex" "loveInterest">> 
+			<<His>> demeanor slips as <<he>> cracks a smile. "You're absolutely right." Shortly after, you exchange a playful kiss.<<takeKissVirginity "Alex" "loveInterest">>
 		<<else>>
 			<span class="red"><<He>> readily moves it away.</span> You slip, and hang off the sofa. "I've got you," <<he>> exclaims,
 			<<if _alex.dom gte 30>>
@@ -1948,12 +1948,12 @@ You get comfy beside Alex.
 			<</if>>
 			<br><br>
 
-			You lean forward, expecting a kiss. <<He>> indulges you, and after some playful back and forth, pulls away, blushing.<<takeKissVirginity "Alex" "loveInterest">> 
+			You lean forward, expecting a kiss. <<He>> indulges you, and after some playful back and forth, pulls away, blushing.<<takeKissVirginity "Alex" "loveInterest">>
 		<</if>>
 	<<case 9>>
 		You lock your arms and legs around <<him>>, just as <<hes>> about to shift.
 		<br><br>
-		
+
 		<<if _alex.dom gte 30>>
 			<<He>> squeezes you tightly into <<his>> toned arms. "Looks like we had the same idea," <<he>> grins.
 		<<elseif _alex.dom lte -30>>
@@ -1962,7 +1962,7 @@ You get comfy beside Alex.
 			"Don't worry, I'm not going anywhere." <<He>> gives you a warm smile, and pulls you into a secure embrace.
 		<</if>>
 	<<case 10>>
-		Your hands traverse <<his>> legs, and you clutch <<his>> toned thighs.<<npcincr Alex lust 1>><<glust>> 
+		Your hands traverse <<his>> legs, and you clutch <<his>> toned thighs.<<npcincr Alex lust 1>><<glust>>
 		<br><br>
 
 		<<if $alexDaily.breakfast_sex>>
@@ -2029,7 +2029,7 @@ You swerve at the last second. <<He>> looks baffled and
 <</if>>
 <br><br>
 
-You don't say anything, and resume cuddling like it never happened. 
+You don't say anything, and resume cuddling like it never happened.
 <br><br>
 
 <<farm_cottage_tv_options>>
@@ -2099,7 +2099,7 @@ You pull up a chair, and help Alex manage the business.
 <</if>>
 <br><br>
 
-<<if $maths gte random(1, 1000)>>
+<<if currentSkillValue('maths') gte random(1, 1000)>>
 	<<if $rng gte 3>>
 		<span class="green">You convince Alex to charge more per <<print either("pint", "gallon", "kilo", "gram", "weight", "carton", "bushel", "ton")>>.</span><<farm_yield 3>><<ggfarm>>
 		<br><br>
@@ -2145,7 +2145,7 @@ You sit beside Alex, and make yourself comfy.
 	<<case 6>>
 		You rub your cheek against <<his>>, content to listen to the sound of <<his>> voice.
 	<<case 7>>
-		Bored, you bump your head against <<his>>. 
+		Bored, you bump your head against <<hers>>.
 		<<if ($demon gte 2 and $transformationParts.demon.horns isnot "hidden") or ($cow gte 2 and $transformationParts.cow.horns isnot "hidden")>>
 			<<He>> recoils in pain, and you suddenly remember you have horns. Before you can apologise, <<he>> bumps back. You both laugh, hands on your foreheads.
 		<<else>>
@@ -2160,7 +2160,7 @@ You sit beside Alex, and make yourself comfy.
 <</switch>>
 <br><br>
 
-<<if $hour gte 21>>	
+<<if $hour gte 21>>
 	<<He>> glances at <<his>> bedside clock, and rises to <<his>> feet. "Time to hit the hay," <<he>> says, kissing you goodnight.<<takeKissVirginity "Alex" "loveInterest">>
 <br><br>
 
@@ -2179,14 +2179,14 @@ You sit beside Alex, and make yourself comfy.
 
 <<switch random(1, 10)>>
 	<<case 1>>
-		"You're strong," you whisper, feeling up <<his>> toned arms. Alex swells <<his>> chest, and feel yours after ending a call.<<npcincr Alex lust 1>><<glust>> 
+		"You're strong," you whisper, feeling up <<his>> toned arms. Alex swells <<his>> chest, and feel yours after ending a call.<<npcincr Alex lust 1>><<glust>>
 		<br><br>
 
-		<<if $physique gte ($physiquesize / 7) * 6>> 
-			"You're even stronger," <<he>> whispers back, admiring your muscle definition. "I'm impressed." <<He>> plants a kiss on your cheek.<<npcincr Alex dom -1>><<ldom>> 
-		<<elseif $physique gte ($physiquesize / 7) * 5>> 
+		<<if $physique gte ($physiquesize / 7) * 6>>
+			"You're even stronger," <<he>> whispers back, admiring your muscle definition. "I'm impressed." <<He>> plants a kiss on your cheek.<<npcincr Alex dom -1>><<ldom>>
+		<<elseif $physique gte ($physiquesize / 7) * 5>>
 			"You as well. We're about the same," <<he>> observes, planting a kiss on your cheek.
-		<<elseif $physique gte ($physiquesize / 7) * 4>>	
+		<<elseif $physique gte ($physiquesize / 7) * 4>>
 			"Not bad yourself. Could lift a few more hay bales," <<he>> teases, planting a kiss on your cheek.
 		<<else>>
 			"A little soft," <<he>> remarks. "It's alright. I'm strong enough for the two of us." <<He>> plants a kiss on your cheek.<<npcincr Alex dom 1>><<gdom>>
@@ -2243,7 +2243,7 @@ You sit beside Alex, and make yourself comfy.
 		<<else>>
 			squish your chest against <<his>>,
 		<</if>>
-		capturing <<his>> full attention. Face crimson, <<he>> almost drops the phone before regaining <<his>> composure.<<npcincr Alex lust 1>><<glust>> 
+		capturing <<his>> full attention. Face crimson, <<he>> almost drops the phone before regaining <<his>> composure.<<npcincr Alex lust 1>><<glust>>
 	<<case 8>>
 		"I've been sitting for too long," Alex says, putting the phone away. "I need to stretch." <<He>> gets up from <<his>> chair.
 		<br><br>
@@ -2284,7 +2284,7 @@ You sit beside Alex, and make yourself comfy.
 			<<else>>
 				"I know you're capable of handling yourself, but I think you needed this,"
 			<</if>>
-				you say. 
+				you say.
 			<br><br>
 
 		<<He>> nods, bringing you closer for a shared respite. "I don't thank you enough," <<he>> grins.
@@ -2294,7 +2294,7 @@ You sit beside Alex, and make yourself comfy.
 		<<if _alex.dom gte 30>>
 			"You just love making my work difficult, don't you?" <<he>> whispers. "I like that about my <<girl>>. Everything about you is so damn cute."
 		<<elseif _alex.dom lte -30>>
-			"Fuck, I can't work like this." <<His>> voice wavers. "You always make it so damn hard to want to. Don't ever change." 
+			"Fuck, I can't work like this." <<His>> voice wavers. "You always make it so damn hard to want to. Don't ever change."
 		<<else>>
 			"How am I supposed to work like this?" <<he>> chuckles. "That's my <<if $player.gender_appearance is "f">>wo<</if>>man, alright. Always so damn special and charming."
 		<</if>>
@@ -2346,7 +2346,7 @@ You pull aside <<his>> underwear.
 <</if>>
 <<effects>>
 <<set _alex to $NPCName[$NPCNameList.indexOf("Alex")]>>
-Alex talks on the phone, trying to keep <<his>> voice steady. 
+Alex talks on the phone, trying to keep <<his>> voice steady.
 <<switch random(1, 6)>>
 	<<case 1>>
 		<<if _alex.penis isnot "none" or $player.penisExist>>
@@ -2563,6 +2563,7 @@ property."
 
 :: Farm Cottage Bailey Refuse 2
 <<effects>>
+<<set $baileypaychain to 0>>
 
 Alex slams the door.
 <<if $bailey_encroach is undefined>>
diff --git a/game/overworld-plains/loc-farm/events.twee b/game/overworld-plains/loc-farm/events.twee
index 4cc43d093122156453820f56d9aec0a9b94ae8cb..b7a1064afb654e2e46cf3e09031177ad55acdf54 100644
--- a/game/overworld-plains/loc-farm/events.twee
+++ b/game/overworld-plains/loc-farm/events.twee
@@ -248,7 +248,7 @@ You gasp for air. "Be careful of those," <<he>> says. "They crawl in from the mo
 	You try to hurl the net, <span class="red">but it's on you too fast,</span> latching onto your face. You can't see. You try to pull the creature off, but you struggle to get a grip on its slimy skin. You keep your lips sealed as something presses against your mouth.<<gnet>>
 	<<prof net 1>>
 	<br><br>
-	
+
 	<<link [[Next|Farm Yard Struggle]]>><<set $struggle_start to 1>><</link>>
 	<br>
 <</if>>
@@ -830,7 +830,7 @@ You're sure it'll be fine. You shut and lock the door.
 <<effects>>
 
 
-<<if $tending gte (1, 600)>>
+<<if currentSkillValue('tending') gte (1, 600)>>
 
 	"Down!" you repeat. <span class="green">The <<farm_text pig>> listens this time,</span> dropping Alex's <<if $pronoun is "f">>skirt<<else>>shorts<</if>> and trotting back to the others.
 	<br><br>
@@ -930,7 +930,8 @@ You open your mouth to scold, but you only manage a yell as you are yanked over
 <br><br>
 <<if $tendingSuccess>>
 	The <<farm_text_many pig>> surround you, their <<if $farm_work.pig.monster is true>>hands and tongues<<else>>tongues<</if>> exploring your body.<<gstress>><<garousal>><<stress 6>><<arousal 600>>
-	You push them away as best you can.<br><br>
+	You push them away as best you can.
+	<br><br>
 
 	"Away!" you shout, <span class="green">your voice firm and sure.</span> The <<farm_text_many pig>> back away from you, giving you space to stand.<<ggrespect>><<farm_pigs 3>>
 	<br><br>
@@ -951,7 +952,7 @@ You open your mouth to scold, but you only manage a yell as you are yanked over
 	The <<farm_text_many pig>> surround you, their <<if $farm_work.pig.monster is true>>hands and tongues<<else>>tongues<</if>> exploring your body. You push them away as best you can.<<gstress>><<garousal>><<stress 6>><<arousal 600>>
 	<br><br>
 
-	"A-Away," you say, <span class="red">but your voice trembles and the <<farm_text_many pig>> ignore you.</span> They continue their assualt. They grasp and tear, and soon have your <span class="pink">clothes reduced to tatters.</span><<clothesruined>>
+	"A-Away," you say, <span class="red">but your voice trembles and the <<farm_text_many pig>> ignore you.</span> They continue their assault. They grasp and tear, and soon have your <span class="pink">clothes reduced to tatters.</span><<clothesruined>>
 	<br><br>
 
 	<<link [[Next|Farm Pigs Feed Extreme]]>><</link>>
@@ -1224,7 +1225,7 @@ Alex arrives at the edge of the pen, and laughs. <<He>> hauls <<himself>> over w
 <<elseif $enemyhealth lte 0>>
 
 	<<if $farm_work.horse.monster is true>>
-		The centaur backs away. "What's wrong?" the other chuckles. "This little <<girl>> too much for you?"
+		The centaur backs away. "What's wrong?" the other chuckles. "This human <<girl>> too much for you?"
 		<br><br>
 
 		"I don't see you having a go," the centaur responds. "I'm thirsty anyway." It runs for the field, and the other follows.
@@ -1591,7 +1592,7 @@ You wait until they tire, then approach a <<farm_text horse>>, brush in hand.
 At last, the <<farm_text horse>> shudders into orgasm.
 
 <<if $farm_work.horse.genitals is "penis">>
-	<<if $danceskill gte 400>>
+	<<if currentSkillValue('danceskill') gte 400>>
 		<span class="green">You're able to dodge the ejaculate.</span> It arcs over your shoulder, landing on the grass.
 	<<else>>
 		<span class="pink">Semen splatters over your face and drips down your chest.</span><<set $player.bodyliquid.chest.semen += 1>><<set $player.bodyliquid.face.semen += 1>><<faceejacstat>><<ejacstat>>
@@ -1636,7 +1637,7 @@ You take it as a yes.
 At last, the <<farm_text horse>> shudders into orgasm.
 
 <<if $farm_work.horse.genitals is "penis">>
-	<<if $danceskill gte 400>>
+	<<if currentSkillValue('danceskill') gte 400>>
 		<span class="green">You're able to dodge the ejaculate.</span> It arcs over your shoulder, landing on the grass.
 	<<else>>
 		<span class="pink">Semen splatters over your face and drips down your chest.</span><<set $player.bodyliquid.chest.semen += 1>><<set $player.bodyliquid.face.semen += 1>><<faceejacstat>><<ejacstat>>
@@ -2012,7 +2013,7 @@ You enter the far end of the stall, and lean against the wall in a mating postur
 	<<else>>
 		<<He>> brushes <<himself>> down.
 	<</if>>
-	"Thanks," <<he>> says. 
+	"Thanks," <<he>> says.
 	<<if $alex_countdown is undefined and $farm_stage gte 7>>
 		"Keep an eye out for any critters. Don't be afraid to give em a good whack if it comes to it. Or give me a shout. We can at least catch ourselves, if we both fall over."
 	<<else>>
@@ -2046,11 +2047,11 @@ You enter the far end of the stall, and lean against the wall in a mating postur
 <br><br>
 
 <<if _alex.dom gte 10>>
-	<<if $athletics gte 800 or $danceskill gte 800>>
+	<<if currentSkillValue('athletics') gte 800 or currentSkillValue('danceskill') gte 800>>
 		<<He>> attempts to grab your ankles, <span class="green">but you evade <<his>> hands with relative ease</span>, and laugh even harder.
 		<<He>> wordlessly resigns <<himself>> to the ground.<<npcincr Alex dom -3>><<lldom>>
 		<br><br>
-	
+
 		You don't regret a thing. After a short time, you help <<him>> to <<his>> feet and return to work.
 		<br><br>
 
@@ -2058,7 +2059,7 @@ You enter the far end of the stall, and lean against the wall in a mating postur
 	<<else>>
 		<<He>> grabs your ankles, <span class="pink">pulling you down to the <<if $weather is "snow" or $weather is "rain">>mud<<else>>dirt<</if>> with <<him>>.</span>
 		<br><br>
-		
+
 		<<if _alex.lust gte 10>>
 			"Whoops. You might be able to make it up to me now," <<he>> laughs, and places a hand on your thigh. It moves towards your <<genitals>>.<<gtrauma>><<garousal>><<trauma 6>><<arousal 600>>
 			<br><br>
@@ -2083,7 +2084,7 @@ You enter the far end of the stall, and lean against the wall in a mating postur
 		<<He>> picks <<himself>> up and wipes off the mud. <<He>> doesn't get all of it, and the sight of <<his>> mud-stained clothes makes you laugh even more.
 		<<He>> glares, but then laughs with you. "Come on, let's get back to it. I can wash my clothes off later."
 		<br><br>
-		
+
 		Short of breath, you return to work.
 		<br><br>
 
@@ -2120,7 +2121,7 @@ You sit beside Alex, and gaze up at the <<if $weather is "clear">>sky<<else>>clo
 	You return to work, but you can't shake the feeling that something was up with <<him>>.
 <<else>>
 	Your thoughts are interrupted by the sound of <<him>> brushing <<himself>> down. "I hate those damn critters, by the way," <<he>> says, already up on <<his>> feet.
-	"Be sure to whack 'em if it comes to it, or give me a shout. I'll try my best not to fall over." 
+	"Be sure to whack 'em if it comes to it, or give me a shout. I'll try my best not to fall over."
 	<br><br>
 
 	You return to work, still laughing.
@@ -2478,7 +2479,7 @@ You remain focused on the work in front of you, and Alex switches to lighter top
 
 			"G-go on, then," <<he>> whispers. <<His>> hand clenches tight around you. "Finish what you started."
 		<<else>>
-			grabs your wrist and yanks you closer, pulling your body against <<his>>.
+			grabs your wrist and yanks you closer, pulling your body against <<hers>>.
 			<br><br>
 
 			"C'mon, <<girl>>," <<he>> chuckles, one hand sliding towards your <<bottom>>. "Don't tell me you've lost your nerve already."
@@ -2860,7 +2861,8 @@ The shoots fall inert, and you manage to crawl free.
 	<<else>>
 		"I can't," you say. "I've lots of work to do."
 	<</if>>
-	You turn away from <<him>>.<br><br>
+	You turn away from <<him>>.
+	<br><br>
 <<else>>
 	You ignore the <<person>>.
 <</if>>
@@ -3621,7 +3623,7 @@ You push shove Alex away, but <<he>> holds you even tighter. You shove <<him>> a
 <<effects>>
 
 You push Alex onto <<his>> back. Laughing, <<he>> grasps your shoulders and pushes you onto yours in turn, with <<him>> on top.
-<<if $physique gte 16000>>
+<<if currentSkillValue('physique') gte 16000>>
 	You struggle for a few moments. <<Hes>> strong, but you manage to get on top and pin <<his>> arms to the ground.
 	<br><br>
 <<else>>
@@ -4259,7 +4261,7 @@ You pocket the money as Alex enters the farmhouse.
 :: Farm Race
 <<effects>>
 
-<<if $athletics gte 800>>
+<<if currentSkillValue('athletics') gte 800>>
 	You run after Alex, <span class="green">and manage to catch up</span> halfway through the field. <<He>> speeds up when <<he>> sees you, but so do you. You're level with each other right up to the forest's edge.
 	<br><br>
 
@@ -5072,7 +5074,7 @@ You open one of the boxes, and peek inside.
 <<case 4>>
 	There's a variety of sundries the local grocers wouldn't sell. There's more of the same in the second.
 <<case 5>>
-	<<if $science gte 700>>
+	<<if currentSkillValue('science') gte 700>>
 		There's a variety of metal and glass equipment. Pipes, tubes, and measuring devices. Stuff you'd expect to find in a lab rather than a farm. The second box has more of the same.
 	<<else>>
 		There's a variety of metal and glass equipment. Pipes, tubes, and containers. You're not sure what it's for. The second box has more of the same.
@@ -5763,9 +5765,9 @@ You sit with them, and chat. You share a little about the troubles on the farm,
 	<br>
 	"<<pShe>> started it," the <<person1>><<person>> protests.
 	<br>
-	"Get the fuck off 
+	"Get the fuck off
 	<<if $NPCName[$NPCNameList.indexOf("Alex")].dom gte 20>>
-		my 
+		my
 	<<else>>
 		our
 	<</if>>
diff --git a/game/overworld-plains/loc-farm/exhibitionism.twee b/game/overworld-plains/loc-farm/exhibitionism.twee
index 7f0e2946a3e8e7bcb4f61cef0c24deea4dc74372..996271e92b901d037c50673099e0f376f85ecc2f 100644
--- a/game/overworld-plains/loc-farm/exhibitionism.twee
+++ b/game/overworld-plains/loc-farm/exhibitionism.twee
@@ -392,7 +392,7 @@ A <<beasttype>> takes advantage of your vulnerability, and jumps on top.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	<<generate1>><<generate2>>A uniformed <<person1>><<person>> and <<person2>><<person>> corral the herd. They're more attentive than the farmer. The <<person1>><<person>> points at you. <<covered>>
+	<<generate1>><<generate2>>A uniformed <<fullGroup>> corral the herd. They're more attentive than the farmer. The <<person1>><<person>> points at you. <<covered>>
 	<br><br>
 	<<fameexhibitionism 2>>
 	<<link [[Next|Farmland Pigs Factory]]>><</link>>
@@ -415,7 +415,7 @@ A <<beasttype>> takes advantage of your vulnerability, and jumps on top.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	<<generate1>><<generate2>>A uniformed <<person1>><<person>> and <<person2>><<person>> corral the herd. They're more attentive than the farmer. The <<person1>><<person>> points at you. <<covered>>
+	<<generate1>><<generate2>>A uniformed <<fullGroup>> corral the herd. They're more attentive than the farmer. The <<person1>><<person>> points at you. <<covered>>
 	<br><br>
 	<<fameexhibitionism 2>>
 	<<link [[Next|Farmland Pigs Factory]]>><</link>>
diff --git a/game/overworld-plains/loc-farm/fields.twee b/game/overworld-plains/loc-farm/fields.twee
index 3bc94be02efde5a510f1c7518a7e8a78ee0134ea..7c6462e50a6556fad70ee0422996e0a9216e0ff8 100644
--- a/game/overworld-plains/loc-farm/fields.twee
+++ b/game/overworld-plains/loc-farm/fields.twee
@@ -299,6 +299,7 @@ You climb the tower.
 	<br><br>
 
 	<<farm_guard_paid>>
+	<<saveNPC 0 "farm_tower_guard">>
 
 	<<clotheson>>
 	<<endcombat>>
diff --git a/game/overworld-plains/loc-farm/kennel.twee b/game/overworld-plains/loc-farm/kennel.twee
index be5f0a216316790ec9723a787578d1bfa726d490..92a9bda2d629310d000b2fc08b766d633e39a056 100644
--- a/game/overworld-plains/loc-farm/kennel.twee
+++ b/game/overworld-plains/loc-farm/kennel.twee
@@ -1,119 +1,119 @@
-:: Farm Kennel 
+:: Farm Kennel
 <<set $outside to 0>><<effects>>
 <<beastNEWinit 1 dog>>
 <<if $kennel_intro isnot true>>
-    <<set $kennel_intro to true>>
-    You enter the kennel. The scent of <<beastsplural>> surrounds you. <<if $farm.kennel gte 1>>Here, you can train them to defend the farm.<</if>>
-    <br><br>
-    <<if $wolfgirl gte 5>>
-        It doesn't take long for the first <<beasttype>> to notice you. Soon enough, the entire kennel looks your way. They cock their heads as they examine your tail, as if unsure what to make of it, before one barks approval.<<ggrespect>><<farm_dogs 3>>
-        <br><br>
-
-        <<kennel_intro>>
-        <br><br>
-
-    <<elseif $cat gte 5>>
-        It doesn't take long for the <<beastsplural>> to notice you. Your cat-like smell must be betraying your presence. They seem agitated. The smell is riling them up. You purr, but it doesn't help.<<llrespect>><<farm_dogs -3>>
-        <br><br>
-
-        <<kennel_intro>>
-        <br><br>
-    <<elseif $harpy gte 5>>
-        They examine your wings, and back away. You remind them of something terrible.<<lrespect>><<farm_dogs -1>>
-        <br><br>
-
-        <<kennel_intro>>
-        <br><br>
-    <<elseif $cow gte 5>>
-        <<if $lactating is 1 and $milk_amount gte 30>>
-            Their noses twitch. They can smell your milk, and it puts them at ease. They are used to cattle, after all.<<ggrespect>><<farm_dogs 3>>
-        <<else>>
-            They barely seem to register your presence. They are used to cattle, after all.<<grespect>><<farm_dogs 1>>
-        <</if>>
-        <br><br>
-
-        <<kennel_intro>>
-        <br><br>
-    <<else>>
-
-        One <<beasttype>> looks up. Soon enough, the entire kennel looks your way.
-
-        <<kennel_intro>>
-        <br><br>
-    <</if>>
-
-    <<link [[Next|Farm Kennel]]>><<endevent>><</link>>
-    <br>
+	<<set $kennel_intro to true>>
+	You enter the kennel. The scent of <<beastsplural>> surrounds you. <<if $farm.kennel gte 1>>Here, you can train them to defend the farm.<</if>>
+	<br><br>
+	<<if $wolfgirl gte 5>>
+		It doesn't take long for the first <<beasttype>> to notice you. Soon enough, the entire kennel looks your way. They cock their heads as they examine your tail, as if unsure what to make of it, before one barks approval.<<ggrespect>><<farm_dogs 3>>
+		<br><br>
+
+		<<kennel_intro>>
+		<br><br>
+
+	<<elseif $cat gte 5>>
+		It doesn't take long for the <<beastsplural>> to notice you. Your cat-like smell must be betraying your presence. They seem agitated. The smell is riling them up. You purr, but it doesn't help.<<llrespect>><<farm_dogs -3>>
+		<br><br>
+
+		<<kennel_intro>>
+		<br><br>
+	<<elseif $harpy gte 5>>
+		They examine your wings, and back away. You remind them of something terrible.<<lrespect>><<farm_dogs -1>>
+		<br><br>
+
+		<<kennel_intro>>
+		<br><br>
+	<<elseif $cow gte 5>>
+		<<if $lactating is 1 and $milk_amount gte 30>>
+			Their noses twitch. They can smell your milk, and it puts them at ease. They are used to cattle, after all.<<ggrespect>><<farm_dogs 3>>
+		<<else>>
+			They barely seem to register your presence. They are used to cattle, after all.<<grespect>><<farm_dogs 1>>
+		<</if>>
+		<br><br>
+
+		<<kennel_intro>>
+		<br><br>
+	<<else>>
+
+		One <<beasttype>> looks up. Soon enough, the entire kennel looks your way.
+
+		<<kennel_intro>>
+		<br><br>
+	<</if>>
+
+	<<link [[Next|Farm Kennel]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    You are in the kennel. 
-    <<if $farm.beasts.dogs gte 20>>
-        The <<beastsplural>> await your words, their tails wagging.
-    <<elseif $farm.beasts.dogs gte 5>>
-        The <<beastsplural>> await your words.
-    <<elseif $farm.beasts.dogs gte -5>>
-        The <<beastsplural>> ignore you.
-    <<elseif $farm.beasts.dogs gte -20>>
-        A <<beasttype>> growls at you.
-    <<else>>
-        The <<beastsplural>> watch you with unrestrained lust.
-    <</if>>
-    <<if $farm.kennel gte 1>>Training equipment lines one wall.<</if>>
-    <br><br>
-
-    <<if $farm.kennel gte 1>>
-        <<link [[Train (1:00)|Farm Kennel Train]]>><<set $farm_kennel to 1>><<pass 60>><</link>>
-        <br>
-    <</if>>
-    <<link [[Give treats|Farm Kennel Treats]]>><</link>>
-    <br>
-    <<link [[Play|Farm Kennel Play]]>><<set $farm_kennel to 1>><</link>>
-    <br>
-    <<link [[Leave|Farm Work]]>><<endevent>><</link>>
-    <br>
-    
+	You are in the kennel.
+	<<if $farm.beasts.dogs gte 20>>
+		The <<beastsplural>> await your words, their tails wagging.
+	<<elseif $farm.beasts.dogs gte 5>>
+		The <<beastsplural>> await your words.
+	<<elseif $farm.beasts.dogs gte -5>>
+		The <<beastsplural>> ignore you.
+	<<elseif $farm.beasts.dogs gte -20>>
+		A <<beasttype>> growls at you.
+	<<else>>
+		The <<beastsplural>> watch you with unrestrained lust.
+	<</if>>
+	<<if $farm.kennel gte 1>>Training equipment lines one wall.<</if>>
+	<br><br>
+
+	<<if $farm.kennel gte 1>>
+		<<link [[Train (1:00)|Farm Kennel Train]]>><<set $farm_kennel to 1>><<pass 60>><</link>>
+		<br>
+	<</if>>
+	<<link [[Give treats|Farm Kennel Treats]]>><</link>>
+	<br>
+	<<link [[Play|Farm Kennel Play]]>><<set $farm_kennel to 1>><</link>>
+	<br>
+	<<link [[Leave|Farm Work]]>><<endevent>><</link>>
+	<br>
+
 <</if>>
 
 :: Widgets Kennel [widget]
 <<widget "kennel_intro">>
 <<if $farm.beasts.dogs gte 5>>
-    They seem content with your presence.
+	They seem content with your presence.
 <<elseif $farm.beasts.dogs gte -5>>
-    They tolerate your presence, and most look away after recognising you.
+	They tolerate your presence, and most look away after recognising you.
 <<elseif $farm.beasts.dogs gte -20>>
-    <span class="pink">You feel unwelcome.</span>
+	<span class="pink">You feel unwelcome.</span>
 <<else>>
-    You push away one as <<bhe>> tries to hump your leg. <span class="red">They have little respect for you.</span>
+	You push away one as <<bhe>> tries to hump your leg. <span class="red">They have little respect for you.</span>
 <</if>>
 <</widget>>
 
 <<widget "kennel_treats">>
 <<if _args[0]>>
-    <<set $kennel_treats += _args[0]>>
-    <<if $kennel_treats lt 0>>
-        <<set $kennel_treats to 0>>
-    <</if>>
+	<<set $kennel_treats += _args[0]>>
+	<<if $kennel_treats lt 0>>
+		<<set $kennel_treats to 0>>
+	<</if>>
 <</if>>
 <</widget>>
 
 <<widget "kennel_treat_options">>
 <<if $kennel_treats gte 20>>
-    <<link [[Feed all (20)|Farm Kennel Treats All]]>><<farm_dogs 3>><<kennel_treats -20>><</link>><<ggrespect>>
-    <br>
+	<<link [[Feed all (20)|Farm Kennel Treats All]]>><<farm_dogs 3>><<kennel_treats -20>><</link>><<ggrespect>>
+	<br>
 <</if>>
 <<if $kennel_treats gte 10>>
-    <<link [[Feed half (10)|Farm Kennel Treats Half]]>><<farm_dogs 2>><<kennel_treats -10>><</link>><<grespect>>
-    <br>
+	<<link [[Feed half (10)|Farm Kennel Treats Half]]>><<farm_dogs 2>><<kennel_treats -10>><</link>><<grespect>>
+	<br>
 <</if>>
 <<if $kennel_treats gte 5>>
-    <<link [[Feed some (5)|Farm Kennel Treats Some]]>><<farm_dogs 1>><<kennel_treats -5>><</link>><<grespect>>
-    <br>
+	<<link [[Feed some (5)|Farm Kennel Treats Some]]>><<farm_dogs 1>><<kennel_treats -5>><</link>><<grespect>>
+	<br>
 <</if>>
 <<if $kennel_treats gte 1>>
-    <<link [[Feed one|Farm Kennel Treats One]]>><<kennel_treats -1>><</link>>
-    <br>
+	<<link [[Feed one|Farm Kennel Treats One]]>><<kennel_treats -1>><</link>>
+	<br>
 <<else>>
-    You're out of treats.
-    <br>
+	You're out of treats.
+	<br>
 <</if>>
 <<link [[Leave|Farm Work]]>><<endevent>><</link>>
 <br>
@@ -125,22 +125,22 @@
 <<link [[Race (1:00)|Farm Kennel Play Race]]>><<athletics 6>><<tiredness 6>><<pass 60>><</link>><<gathletics>>
 <br>
 <<if $farm.beasts.dogs gte -5>>
-    <<if $deviancy gte 35>>
-        <<link [[Private playtime (1:00)|Farm Kennel Play Lewd]]>><<pass 60>><</link>><<deviant3>>
-        <br>
-    <</if>>
+	<<if $deviancy gte 35>>
+		<<link [[Private playtime (1:00)|Farm Kennel Play Lewd]]>><<pass 60>><</link>><<deviant3>>
+		<br>
+	<</if>>
 <</if>>
 <<if $farm.beasts.dogs gte 5>>
-    <<if $deviancy gte 75>>
-        <<link [[Play a special game (1:00)|Farm Kennel Play Gang]]>><<pass 60>><</link>><<deviant5>>
-        <br>
-    <</if>>
+	<<if $deviancy gte 75>>
+		<<link [[Play a special game (1:00)|Farm Kennel Play Gang]]>><<pass 60>><</link>><<deviant5>>
+		<br>
+	<</if>>
 <</if>>
 <<if $farm.beasts.dogs gte 20>>
-    <<if $deviancy gte 75>>
-        <<link [[Join them as a member of the kennel (1:00)|Farm Kennel Play Member]]>><<pass 60>><</link>><<deviant5>><<grespect>>
-        <br>
-    <</if>>
+	<<if $deviancy gte 75>>
+		<<link [[Join them as a member of the kennel (1:00)|Farm Kennel Play Member]]>><<pass 60>><</link>><<deviant5>><<grespect>>
+		<br>
+	<</if>>
 <</if>>
 <</widget>>
 
@@ -152,42 +152,42 @@
 You open the locked cupboard in an adjoining room, and find the bag of treats.
 
 <<if !$kennel_treats>>
-    It's empty. You can buy more treats from the pet shop in town.
-    <br><br>
+	It's empty. You can buy more treats from the pet shop in town.
+	<br><br>
 
-    <<link [[Next|Farm Kennel]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Kennel]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<set $farm_kennel to 1>>
-    You carry it to the <<beastsplural>>.
-
-    <<if $farm.beasts.dogs gte 20>>
-        They gather around with an eager vigour. You don't need treats to hold their attention.
-        <br><br>
-
-        <<kennel_treat_options>>
-    <<elseif $farm.beasts.dogs gte 5>>
-        They gather around with an eager vigour. The smell of treats has reached their noses.
-        <br><br>
-
-        <<kennel_treat_options>>
-    <<elseif $farm.beasts.dogs gte -5>>
-        They gather around you.
-        <br><br>
-
-        <<kennel_treat_options>>
-    <<elseif $farm.beasts.dogs gte -20>>
-        They might not respect you, but their desire for food outweighs that for now. They tolerate you.
-        <br><br>
-
-        <<kennel_treat_options>>
-    <<else>>
-        They rush at you, with no regard for your intentions or instructions. They want their treats.
-        <br><br>
-
-        <<link [[Next|Farm Kennel Fight]]>><<set $molestationstart to 1>><</link>>
-        <br>
-    <</if>>
+	<<set $farm_kennel to 1>>
+	You carry it to the <<beastsplural>>.
+
+	<<if $farm.beasts.dogs gte 20>>
+		They gather around with an eager vigour. You don't need treats to hold their attention.
+		<br><br>
+
+		<<kennel_treat_options>>
+	<<elseif $farm.beasts.dogs gte 5>>
+		They gather around with an eager vigour. The smell of treats has reached their noses.
+		<br><br>
+
+		<<kennel_treat_options>>
+	<<elseif $farm.beasts.dogs gte -5>>
+		They gather around you.
+		<br><br>
+
+		<<kennel_treat_options>>
+	<<elseif $farm.beasts.dogs gte -20>>
+		They might not respect you, but their desire for food outweighs that for now. They tolerate you.
+		<br><br>
+
+		<<kennel_treat_options>>
+	<<else>>
+		They rush at you, with no regard for your intentions or instructions. They want their treats.
+		<br><br>
+
+		<<link [[Next|Farm Kennel Fight]]>><<set $molestationstart to 1>><</link>>
+		<br>
+	<</if>>
 <</if>>
 
 
@@ -196,62 +196,62 @@ You open the locked cupboard in an adjoining room, and find the bag of treats.
 
 <<if $farm.beasts.dogs gte 20>>
 
-    The <<beastsplural>> sit upright and await their treats. Not a single one acts out. They all wait with their mouths open. You feed them one by one. They devour their treats in moments, then lick your hand as you pet them.
-    <br><br>
+	The <<beastsplural>> sit upright and await their treats. Not a single one acts out. They all wait with their mouths open. You feed them one by one. They devour their treats in moments, then lick your hand as you pet them.
+	<br><br>
 
-    They remain seated, watching you obediently.
-    <br><br>
+	They remain seated, watching you obediently.
+	<br><br>
 
-    <<link [[Hug|Farm Kennel Treats Hug]]>><<farm_dogs 1>><</link>><<grespect>>
-    <br>
-    <<if $deviancy gte 15>>
-        <<link [[Seduce|Farm Kennel Treats Seduce]]>><</link>><<deviant2>>
-    <</if>>
-    <br>
-    <<if $deviancy gte 35 and $lactating gte 1 and $milk_amount gte 30 and $breastfeedingdisable is "f">>
-        <<link [[Breastfeed|Farm Kennel Treats Breastfeed]]>><<farm_dogs 3>><</link>><<deviant3>><<ggrespect>>
-        <br>
-    <</if>>
-    <br>
+	<<link [[Hug|Farm Kennel Treats Hug]]>><<farm_dogs 1>><</link>><<grespect>>
+	<br>
+	<<if $deviancy gte 15>>
+		<<link [[Seduce|Farm Kennel Treats Seduce]]>><</link>><<deviant2>>
+	<</if>>
+	<br>
+	<<if $deviancy gte 35 and $lactating gte 1 and $milk_amount gte 30 and $breastfeedingdisable is "f">>
+		<<link [[Breastfeed|Farm Kennel Treats Breastfeed]]>><<farm_dogs 3>><</link>><<deviant3>><<ggrespect>>
+		<br>
+	<</if>>
+	<br>
 
 <<elseif $farm.beasts.dogs gte 5>>
-    The <<beastsplural>> gather around you. Not a single one acts out. They wait their turn as you hand out treats, then devour them in moments.
-    <<if $monster is 1>>
-        Some thank you as you hand them a treat.
-    <<else>>
-        Some growl softly as you feed them.
-    <</if>>
-    <br><br>
+	The <<beastsplural>> gather around you. Not a single one acts out. They wait their turn as you hand out treats, then devour them in moments.
+	<<if $monster is 1>>
+		Some thank you as you hand them a treat.
+	<<else>>
+		Some growl softly as you feed them.
+	<</if>>
+	<br><br>
 
-    They lie with wagging tails as you leave the kennel.
-    <br><br>
+	They lie with wagging tails as you leave the kennel.
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 
 <<elseif $farm.beasts.dogs gte -5>>
-    The <<beastsplural>> relax around you. They're eager for the treats, but respect you enough to wait their turn. They devour them in moments.
-    <br><br>
+	The <<beastsplural>> relax around you. They're eager for the treats, but respect you enough to wait their turn. They devour them in moments.
+	<br><br>
 
-    You walk away from the kennel, leaving them to lick their lips.
-    <br><br>
+	You walk away from the kennel, leaving them to lick their lips.
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    You have plenty of treats. You toss them freely to the <<beastsplural>>. They devour them in moments, then bark for more, their eyes shining with hunger.
-    <<if $monster is 1>>
-        They demand more treats.
-    <<else>>
-        Two release a guttural growl as they march closer.
-    <</if>>
-    <br><br>
-
-    You back away, and manage to escape before the situation escalates.
-    <br><br>
-
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	You have plenty of treats. You toss them freely to the <<beastsplural>>. They devour them in moments, then bark for more, their eyes shining with hunger.
+	<<if $monster is 1>>
+		They demand more treats.
+	<<else>>
+		Two release a guttural growl as they march closer.
+	<</if>>
+	<br><br>
+
+	You back away, and manage to escape before the situation escalates.
+	<br><br>
+
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Farm Kennel Treats Seduce
@@ -269,9 +269,9 @@ You drop to the ground in front of a <<beasttype>>. <<bHe 0>> looks eager.
 	<<consensual>>
 	<<set $consensual to 1>>
 	<<neutral 1>>
-	
+
 	<<beastCombatInit>>
-	
+
 <</if>>
 
 The other <<beastsplural>> watch.
@@ -311,7 +311,7 @@ The other <<beastsplural>> watch.
 	<<endcombat>>
 
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 
 <<elseif $enemyhealth lte 0>>
 
@@ -325,7 +325,7 @@ The other <<beastsplural>> watch.
 	<<endcombat>>
 
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 
 <<else>>
 
@@ -339,7 +339,7 @@ The other <<beastsplural>> watch.
 	<<endcombat>>
 
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 
 <</if>>
 
@@ -392,16 +392,16 @@ The <<beastsplural>> put on their best behaviour, hoping to increase their odds.
 
 You take out one treat.
 <<if $farm.beasts.dogs lte -5>>
-    The <<beastsplural>> glare in defiance. They see only one treat, and they do not approve.
-    <br><br>
+	The <<beastsplural>> glare in defiance. They see only one treat, and they do not approve.
+	<br><br>
 
-    You hurl the treat across the kennel. The <<beastsplural>> lose interest in you at once, and run at the treat in a mad dash. You make your exit.
-    <br><br>
+	You hurl the treat across the kennel. The <<beastsplural>> lose interest in you at once, and run at the treat in a mad dash. You make your exit.
+	<br><br>
 <<else>>
-    The <<beastsplural>> look disappointed, but not angry. They lay on the ground around you.
-    <br><br>
-    You toss the treat across the kennel. An older <<beasttype>> walks over, and breaks it into pieces to share out.
-    <br><br>
+	The <<beastsplural>> look disappointed, but not angry. They lay on the ground around you.
+	<br><br>
+	You toss the treat across the kennel. An older <<beasttype>> walks over, and breaks it into pieces to share out.
+	<br><br>
 <</if>>
 
 <<link [[Next|Farm Work]]>><<endevent>><</link>>
@@ -417,8 +417,8 @@ You take out one treat.
 	<<molested>>
 
 	<<beastCombatInit>>
-    <<set $enemyanger += 200>>
-    <<set $enemytrust -= 50>>
+	<<set $enemyanger += 200>>
+	<<set $enemytrust -= 50>>
 <</if>>
 
 The other <<beastsplural>> watch.
@@ -459,12 +459,12 @@ The other <<beastsplural>> watch.
 
 	<<clotheson>>
 	<<endcombat>>
-    <<if !$kennel_treats>>
-        <<link [[Next|Farm Work]]>><</link>>
-    <<else>>
-        <<beastNEWinit 1 dog>>
-        <<kennel_treat_options>>
-    <</if>>
+	<<if !$kennel_treats>>
+		<<link [[Next|Farm Work]]>><</link>>
+	<<else>>
+		<<beastNEWinit 1 dog>>
+		<<kennel_treat_options>>
+	<</if>>
 <<elseif $enemyhealth lte 0>>
 
 	The <<beasttype>> backs away from you, cowed. The others don't try anything.<<ggrespect>><<farm_dogs 1>>
@@ -472,12 +472,12 @@ The other <<beastsplural>> watch.
 
 	<<clotheson>>
 	<<endcombat>>
-    <<if !$kennel_treats>>
-        <<link [[Next|Farm Work]]>><</link>>
-    <<else>>
-        <<beastNEWinit 1 dog>>
-        <<kennel_treat_options>>
-    <</if>>
+	<<if !$kennel_treats>>
+		<<link [[Next|Farm Work]]>><</link>>
+	<<else>>
+		<<beastNEWinit 1 dog>>
+		<<kennel_treat_options>>
+	<</if>>
 <<else>>
 
 	<<kennel_treats -100>>The <<beastsplural>> lose interest in you as you collapse. They tear apart the bag of treats, and feast.<<llrespect>><<farm_dogs -3>>
@@ -490,7 +490,7 @@ The other <<beastsplural>> watch.
 	<<endcombat>>
 
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 
 <</if>>
 
@@ -500,45 +500,45 @@ The other <<beastsplural>> watch.
 You decide to make things fun for the <<beastsplural>>.
 
 <<if $farm.beasts.dogs gte 20>>
-    They gather around you, their tails wagging. They will obey without question.
-    <br><br>
+	They gather around you, their tails wagging. They will obey without question.
+	<br><br>
 
-    How do you want to play with them?
-    <br><br>
+	How do you want to play with them?
+	<br><br>
 
-    <<kennel_play_options>>
+	<<kennel_play_options>>
 <<elseif $farm.beasts.dogs gte 5>>
-    They gather around you with vigour, their tails wagging.
-    <br><br>
+	They gather around you with vigour, their tails wagging.
+	<br><br>
 
-    How do you want to play with them?
-    <br><br>
+	How do you want to play with them?
+	<br><br>
 
-    <<kennel_play_options>>
+	<<kennel_play_options>>
 <<elseif $farm.beasts.dogs gte -5>>
-    They gather around you. They don't care for you.
-    <br><br>
+	They gather around you. They don't care for you.
+	<br><br>
 
-    How do you want to play with them?
-    <br><br>
+	How do you want to play with them?
+	<br><br>
 
-    <<kennel_play_options>>
+	<<kennel_play_options>>
 <<elseif $farm.beasts.dogs gte -20 or random(1, 2) is 2>>
-    They gather around you. They don't trust you much.
-    <br><br>
+	They gather around you. They don't trust you much.
+	<br><br>
 
-    How do you want to play with them?
-    <br><br>
+	How do you want to play with them?
+	<br><br>
 
-    <<kennel_play_options>>
+	<<kennel_play_options>>
 <<else>>
-    Unfortunately, they have a different sort of fun in mind. They rush you down.
-    <br><br>
+	Unfortunately, they have a different sort of fun in mind. They rush you down.
+	<br><br>
 
-    <<endevent>>
-    <<beastNEWinit 6 dog>>
-    <<link [[Next|Farm Kennel Gang Rape]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	<<endevent>>
+	<<beastNEWinit 6 dog>>
+	<<link [[Next|Farm Kennel Gang Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <</if>>
 
 :: Farm Kennel Gang Rape
@@ -617,7 +617,7 @@ You decide to make things fun for the <<beastsplural>>.
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 <</if>>
 
 :: Farm Kennel Play Fetch
@@ -627,20 +627,20 @@ You take a ball from a cupboard, and throw it across the kennel.
 <br><br>
 
 <<if $farm.beasts.dogs gte 5>>
-    The <<beastsplural>> run and chase the ball, until one manages to get a solid grip. They bring it back to you, and wait for you throw it again.
-    <br><br>
+	The <<beastsplural>> run and chase the ball, until one manages to get a solid grip. They bring it back to you, and wait for you throw it again.
+	<br><br>
 
-    It's hard work keeping up with their energy, but you feel better for it.<<physique 6>>
-    <br><br>
+	It's hard work keeping up with their energy, but you feel better for it.<<physique 6>>
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    The <<beastsplural>> run and chase the ball, but are more interested in fighting amongst themselves than bringing it back to you. They continue until they tire themselves out.
-    <br><br>
+	The <<beastsplural>> run and chase the ball, but are more interested in fighting amongst themselves than bringing it back to you. They continue until they tire themselves out.
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Farm Kennel Play Race
@@ -649,15 +649,15 @@ You take a ball from a cupboard, and throw it across the kennel.
 You let the <<beastsplural>> outside, and race them around the field.
 <br><br>
 
-<<if $athletics gte 800>>
-    You manage to keep up with them, which they seem to appreciate.<<grespect>><<farm_dogs 1>>
-    <br><br>
-<<elseif $athletics gte 400>>
-    You can't quite keep up with them, but you're able to follow behind. They seem happy for the exercise regardless, and are tired out by the time you return them to the kennel.
-    <br><br>
+<<if currentSkillValue('athletics') gte 800>>
+	You manage to keep up with them, which they seem to appreciate.<<grespect>><<farm_dogs 1>>
+	<br><br>
+<<elseif currentSkillValue('athletics') gte 400>>
+	You can't quite keep up with them, but you're able to follow behind. They seem happy for the exercise regardless, and are tired out by the time you return them to the kennel.
+	<br><br>
 <<else>>
-    They outpace you at once, and you soon give up trying to follow. They seem happy for the exercise regardless, and are tired out by the time you return them to the kennel.
-    <br><br>
+	They outpace you at once, and you soon give up trying to follow. They seem happy for the exercise regardless, and are tired out by the time you return them to the kennel.
+	<br><br>
 <</if>>
 
 <<link [[Next|Farm Work]]>><<endevent>><</link>>
@@ -721,7 +721,7 @@ You attach a collar and leash to a <<beasttype>>, and lead it into an adjoining
 	<<endcombat>>
 
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 
 <<elseif $enemyhealth lte 0>>
 
@@ -735,7 +735,7 @@ You attach a collar and leash to a <<beasttype>>, and lead it into an adjoining
 	<<endcombat>>
 
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 
 <<else>>
 
@@ -749,7 +749,7 @@ You attach a collar and leash to a <<beasttype>>, and lead it into an adjoining
 	<<endcombat>>
 
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 
 <</if>>
 
@@ -766,7 +766,7 @@ The <<beastsplural>> wait obediently, until you give a seductive wiggle. The mos
 
 :: Farm Kennel Play Gang Sex
 <<if $sexstart is 1>>
-    <<set $sexstart to 0>>
+	<<set $sexstart to 0>>
 	<<consensual>>
 	<<set $consensual to 1>>
 	<<neutral 1>>
@@ -830,7 +830,7 @@ The <<beastsplural>> wait obediently, until you give a seductive wiggle. The mos
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Farm Work]]>><</link>>
-    <br>
+	<br>
 <</if>>
 
 :: Farm Kennel Play Member
@@ -853,9 +853,9 @@ You grow hungry, and crawl over to the feeding trench. The food doesn't look app
 <br><br>
 
 <<if $wolfgirl gte 6>>
-    You bite into the food. It tastes good. You eat your fill, then lie back with a full stomach. Others join you, and you're soon lying in the centre of a huge pile, surrounded by flicking tails.<<ltrauma>><<trauma -4>>
+	You bite into the food. It tastes good. You eat your fill, then lie back with a full stomach. Others join you, and you're soon lying in the centre of a huge pile, surrounded by flicking tails.<<ltrauma>><<trauma -4>>
 <<else>>
-    You try a little. It tastes horrible. You try to keep eating, the others have no trouble after all, but soon give up. You lay down before you get a sore stomach. Some of the others cuddle up to you.
+	You try a little. It tastes horrible. You try to keep eating, the others have no trouble after all, but soon give up. You lay down before you get a sore stomach. Some of the others cuddle up to you.
 <</if>>
 <br><br>
 
@@ -870,18 +870,18 @@ You wake up after a while. Seems you dozed off. The other <<beastsplural>> are l
 <br><br>
 
 <<if $wolfgirl gte 6>>
-    You eagerly lick behind one of the <<beastsplural>>'s ears in return. You flick your tongue in straight lines from the ear down to the back. It comes naturally.
-    <br><br>
+	You eagerly lick behind one of the <<beastsplural>>'s ears in return. You flick your tongue in straight lines from the ear down to the back. It comes naturally.
+	<br><br>
 
-    <span class="lewd">You feel a warm wetness on your <<genitals 1>></span>, and freeze in surprise. The <<beasttype>> responsible moves on soon enough.
-    <br><br>
+	<span class="lewd">You feel a warm wetness on your <<genitals 1>></span>, and freeze in surprise. The <<beasttype>> responsible moves on soon enough.
+	<br><br>
 
-    Sharing this moment with the <<beastsplural>> gives you an odd sense of peace.<<lawareness>><<awareness -6>><<ltrauma>><<lstress>><<trauma -6>><<stress -6>>
-    <br><br>
+	Sharing this moment with the <<beastsplural>> gives you an odd sense of peace.<<lawareness>><<awareness -6>><<ltrauma>><<lstress>><<trauma -6>><<stress -6>>
+	<br><br>
 
 <<else>>
-    You hesitate, then lick behind the <<beasttype>>'s ear in return. It tastes bad, like hair. Some gets stuck on your tongue as well. The <<beasttype>> seems to appreciate the effort though.
-    <br><br>
+	You hesitate, then lick behind the <<beasttype>>'s ear in return. It tastes bad, like hair. Some gets stuck on your tongue as well. The <<beasttype>> seems to appreciate the effort though.
+	<br><br>
 <</if>>
 
 You rise to your feet. Time to return to the farm.
@@ -897,26 +897,26 @@ You rise to your feet. Time to return to the farm.
 You round up the <<beastsplural>> for training.
 
 <<if $farm.beasts.dogs gte 20>>
-    They obey, eager for your approval.
-    <br><br>
+	They obey, eager for your approval.
+	<br><br>
 <<elseif $farm.beasts.dogs gte 5>>
-    They obey without complaint.
-    <br><br>
+	They obey without complaint.
+	<br><br>
 <<elseif $farm.beasts.dogs gte -5>>
-    They complain a little, but obey.
-    <br><br>
+	They complain a little, but obey.
+	<br><br>
 <<elseif $farm.beasts.dogs gte -20>>
-    They look wary of you.
-    <br><br>
+	They look wary of you.
+	<br><br>
 <<else>>
-    They growl at you.
-    <<if $monster is 1>>
-        "Intruder!" one barks.
-        <br>
-        "Plaything!" offers another. The rest agree. 
-    <</if>>
-    Their lack of respect is clear.
-    <br><br>
+	They growl at you.
+	<<if $monster is 1>>
+		"Intruder!" one barks.
+		<br>
+		"Plaything!" offers another. The rest agree.
+	<</if>>
+	Their lack of respect is clear.
+	<br><br>
 <</if>>
 
 What kind of training do you attempt?
@@ -934,92 +934,92 @@ What kind of training do you attempt?
 
 <<if $farm.beasts.dogs gte 20>>
 
-    You don't need to yell during training. The <<beastsplural>> follow every command without issue. They jump when you tell them to jump, roll when you tell them to roll, and attack what you tell them to attack.
-    <br><br>
+	You don't need to yell during training. The <<beastsplural>> follow every command without issue. They jump when you tell them to jump, roll when you tell them to roll, and attack what you tell them to attack.
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 
 
 <<elseif $farm.beasts.dogs gte 5>>
 
-    You yell orders at the <<beastsplural>>. They obey without hesitation. You're not sure yelling was even necessary. They seem eager to train.
-    <br><br>
+	You yell orders at the <<beastsplural>>. They obey without hesitation. You're not sure yelling was even necessary. They seem eager to train.
+	<br><br>
 
-    <<if $rng gte 80>>
-        You're just about to wrap things up when a <<beasttype>> runs up to you. <<bHe 0>>
-        <<if $monster is 1>>
-            looks up at you. "Can master stroke my head?" <<bhe 0>> pleads.
-        <<else>>
-            looks up at you, tail wagging.
-        <</if>>
-        <br><br>
+	<<if $rng gte 80>>
+		You're just about to wrap things up when a <<beasttype>> runs up to you. <<bHe 0>>
+		<<if $monster is 1>>
+			looks up at you. "Can master stroke my head?" <<bhe 0>> pleads.
+		<<else>>
+			looks up at you, tail wagging.
+		<</if>>
+		<br><br>
 
-        <<link [[Pat|Farm Kennel Train Pat]]>><<trauma -6>><<stress -6>><</link>><<ltrauma>><<lstress>>
-        <br>
-        <<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        The training goes well. You wrap things up.<<grespect>><<farm_dogs 1>>
-        <br><br>
+		<<link [[Pat|Farm Kennel Train Pat]]>><<trauma -6>><<stress -6>><</link>><<ltrauma>><<lstress>>
+		<br>
+		<<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		The training goes well. You wrap things up.<<grespect>><<farm_dogs 1>>
+		<br><br>
 
-        <<link [[Next|Farm Work]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+		<<link [[Next|Farm Work]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 
 
 <<elseif $farm.beasts.dogs gte -5>>
-    You yell at the <<beastsplural>>, demanding they follow orders. They obey without much enthusiasm.
-    <br><br>
-
-    <<if $rng gte 51>>
-        The training goes well, but at the end one <<beasttype>> limps up to you, and holds out <<bhis 0>> <<if $monster is 1>>foot<<else>>paw<</if>>.
-        <br><br>
-
-        <<link [[Tend to the paw|Farm Kennel Train Paw]]>><<stress 6>><<trauma -6>><</link>><<gstress>><<ltrauma>>
-        <br>
-        <<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        The training felt productive.<<grespect>><<farm_dogs 1>>
-        <br><br>
-
-        <<link [[Next|Farm Work]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+	You yell at the <<beastsplural>>, demanding they follow orders. They obey without much enthusiasm.
+	<br><br>
+
+	<<if $rng gte 51>>
+		The training goes well, but at the end one <<beasttype>> limps up to you, and holds out <<bhis 0>> <<if $monster is 1>>foot<<else>>paw<</if>>.
+		<br><br>
+
+		<<link [[Tend to the paw|Farm Kennel Train Paw]]>><<stress 6>><<trauma -6>><</link>><<gstress>><<ltrauma>>
+		<br>
+		<<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		The training felt productive.<<grespect>><<farm_dogs 1>>
+		<br><br>
+
+		<<link [[Next|Farm Work]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <<elseif $farm.beasts.dogs gte -20>>
-    You yell at the <<beastsplural>>, demanding they follow orders. They ignore most of your commands, with only some of them obeying some of the time.
-    <br><br>
-
-    <<if $rng gte 51>>
-        It's slow going, but you think you're getting through to some.<<grespect>><<farm_dogs 1>>
-    <<else>>
-        You hope the next training session goes better.
-    <</if>>
-    <br><br>
-
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	You yell at the <<beastsplural>>, demanding they follow orders. They ignore most of your commands, with only some of them obeying some of the time.
+	<br><br>
+
+	<<if $rng gte 51>>
+		It's slow going, but you think you're getting through to some.<<grespect>><<farm_dogs 1>>
+	<<else>>
+		You hope the next training session goes better.
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    You yell at the <<beastsplural>>, demanding they follow orders. <span class="red">They ignore you.</span>
-    <br><br>
-
-    <<if $rng gte 40>>
-        You end the training with a sigh, and feel disappointed as you leave the kennel.
-        <br><br>
-        <<link [[Next|Farm Work]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        You end the training with a sigh, and head for the exit. <span class="red">A <<beasttype>> steps in your way, and growls.</span> Others approach from behind.
-        <br><br>
-
-        <<link [[Force your way through|Farm Kennel Gang Rape]]>><<endevent>><<beastNEWinit 3 dog>><<set $molestationstart to 1>><</link>>
-        <br>
-        <<link [[Plead|Farm Kennel Train Strict Plead]]>><</link>>
-        <br>
-        <<link [[Submit|Farm Kennel Train Strict Submit]]>><<sub 1>><</link>>
-        <br>
-    <</if>>
+	You yell at the <<beastsplural>>, demanding they follow orders. <span class="red">They ignore you.</span>
+	<br><br>
+
+	<<if $rng gte 40>>
+		You end the training with a sigh, and feel disappointed as you leave the kennel.
+		<br><br>
+		<<link [[Next|Farm Work]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		You end the training with a sigh, and head for the exit. <span class="red">A <<beasttype>> steps in your way, and growls.</span> Others approach from behind.
+		<br><br>
+
+		<<link [[Force your way through|Farm Kennel Gang Rape]]>><<endevent>><<beastNEWinit 3 dog>><<set $molestationstart to 1>><</link>>
+		<br>
+		<<link [[Plead|Farm Kennel Train Strict Plead]]>><</link>>
+		<br>
+		<<link [[Submit|Farm Kennel Train Strict Submit]]>><<sub 1>><</link>>
+		<br>
+	<</if>>
 <</if>>
 
 :: Farm Kennel Train Pat
@@ -1052,28 +1052,28 @@ The grateful <<beasttype>> returns to the others as you wrap things up.
 <<effects>>
 
 <<if $submissive gte 1150>>
-    "Please let me through," you try. The <<beastsplural>> remain firm. There's something they want from you.
-    <br><br>
-    <<endevent>>
-    <<beastNEWinit 3 dog>>
-    <<link [[Next|Farm Kennel Gang Rape]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	"Please let me through," you try. The <<beastsplural>> remain firm. There's something they want from you.
+	<br><br>
+	<<endevent>>
+	<<beastNEWinit 3 dog>>
+	<<link [[Next|Farm Kennel Gang Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <<elseif $submissive lte 850>>
-    "Lie down," you say, your voice firm. "Right now."
-    <br><br>
-    The <<beastsplural>> hesitate, then the one blocking your path does as instructed. <<bHe 0>> watches you with lust-filled eyes as you leave the kennel.
-    <br><br>
+	"Lie down," you say, your voice firm. "Right now."
+	<br><br>
+	The <<beastsplural>> hesitate, then the one blocking your path does as instructed. <<bHe 0>> watches you with lust-filled eyes as you leave the kennel.
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    "Let me through," you say. "That's a command."
-    <br><br>
-    The <<beastsplural>> hesitate, then the one blocking your path does as instructed. <<bHe 0>> watches you with lust-filled eyes as you leave the kennel.
-    <br><br>
+	"Let me through," you say. "That's a command."
+	<br><br>
+	The <<beastsplural>> hesitate, then the one blocking your path does as instructed. <<bHe 0>> watches you with lust-filled eyes as you leave the kennel.
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>   
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <</if>>
 <br><br>
 
@@ -1096,48 +1096,48 @@ You set up a simple parkour. The goal for the <<beastsplural>> is to finish with
 
 <<if $farm.beasts.dogs gte 5>>
 
-    They follow your orders with vigour, vying for your attention by putting in extra effort.
-    <br><br>
-
-    <<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
-    <br>
-    <<if $deviancy gte 35>>
-        <<link [[Reward the most impressive|Farm Kennel Train Mild One]]>><<handskill 6>><</link>><<deviant3>><<ghandskill>>
-        <br>
-    <</if>>
-    <<if $deviancy gte 75>>
-        <<link [[Reward them all|Farm Kennel Train Mild All]]>><<farm_dogs 3>><</link>><<deviant5>><<ggrespect>>
-        <br>
-    <</if>>
-    
+	They follow your orders with vigour, vying for your attention by putting in extra effort.
+	<br><br>
+
+	<<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
+	<br>
+	<<if $deviancy gte 35>>
+		<<link [[Reward the most impressive|Farm Kennel Train Mild One]]>><<handskill 6>><</link>><<deviant3>><<ghandskill>>
+		<br>
+	<</if>>
+	<<if $deviancy gte 75>>
+		<<link [[Reward them all|Farm Kennel Train Mild All]]>><<farm_dogs 3>><</link>><<deviant5>><<ggrespect>>
+		<br>
+	<</if>>
+
 
 <<elseif $farm.beasts.dogs gte -5>>
 
-    They follow your orders without enthusiasm, but the training goes well.<<grespect>><<farm_dogs 1>>
-    <br><br>
+	They follow your orders without enthusiasm, but the training goes well.<<grespect>><<farm_dogs 1>>
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 
 <<elseif $farm.beasts.dogs gte -20>>
 
-    However, it's soon clear they have their own ideas. They don't outright ignore you, but many ignore the obstacles. You yell firm instructions, which helps a bit. It might be best to ignore the remaining troublemakers.
-    <br><br>
+	However, it's soon clear they have their own ideas. They don't outright ignore you, but many ignore the obstacles. You yell firm instructions, which helps a bit. It might be best to ignore the remaining troublemakers.
+	<br><br>
 
-    <<link [[Discipline them|Farm Kennel Train Mild Discipline]]>><</link>>
-    <br>
-    <<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Discipline them|Farm Kennel Train Mild Discipline]]>><</link>>
+	<br>
+	<<link [[Wrap things up|Farm Work]]>><<endevent>><</link>>
+	<br>
 
 
 <<else>>
-    However, it's soon clear that they have different ideas. They walk past the obstacles, and ignore the hoops.
-    <br><br>
+	However, it's soon clear that they have different ideas. They walk past the obstacles, and ignore the hoops.
+	<br><br>
 
-    <<link [[Give up|Farm Work]]>><<endevent>><</link>>
-    <br>
-    <<link [[Yell|Farm Kennel Train Mild Yell]]>><</link>><<tendingdifficulty 1 1000>>
-    <br>
+	<<link [[Give up|Farm Work]]>><<endevent>><</link>>
+	<br>
+	<<link [[Yell|Farm Kennel Train Mild Yell]]>><</link>><<tendingdifficulty 1 1000>>
+	<br>
 <</if>>
 
 :: Farm Kennel Train Mild Discipline
@@ -1146,22 +1146,22 @@ You set up a simple parkour. The goal for the <<beastsplural>> is to finish with
 You single out a <<beasttype>>, though you don't expect <<bhim 0>> to respond well.
 
 <<if $rng gte 20>>
-    <<if $monster is 1>>
-        <<bHe 0>> glares at you,
-    <<else>>
-        <<bHe 0>> barks back,
-    <</if>>
-    then bites your ankle before fleeing to hide amongst the rest.<<gpain>><<pain 4>>
-    <br><br>
-
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<if $monster is 1>>
+		<<bHe 0>> glares at you,
+	<<else>>
+		<<bHe 0>> barks back,
+	<</if>>
+	then bites your ankle before fleeing to hide amongst the rest.<<gpain>><<pain 4>>
+	<br><br>
+
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    Your harsh words get through, a little.<<grespect>><<farm_dogs 1>>
-    <br><br>
+	Your harsh words get through, a little.<<grespect>><<farm_dogs 1>>
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 
@@ -1171,18 +1171,18 @@ You single out a <<beasttype>>, though you don't expect <<bhim 0>> to respond we
 You yell at the <<beastsplural>>, demanding they obey you.
 
 <<if $tendingSuccess>>
-    They growl back, <span class="green">then back down.</span> Some attempt some of the obstacles, at least.<<ggrespect>><<farm_dogs 3>>
-    <br><br>
+	They growl back, <span class="green">then back down.</span> Some attempt some of the obstacles, at least.<<ggrespect>><<farm_dogs 3>>
+	<br><br>
 
-    <<link [[Next|Farm Work]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Farm Work]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <span class="red">It does nothing but agitate them.</span> They advance on you, determined to put you in your place.
-    <br><br>
-    <<endevent>>
-    <<beastNEWinit 3 dog>>
-    <<link [[Next|Farm Kennel Gang Rape]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	<span class="red">It does nothing but agitate them.</span> They advance on you, determined to put you in your place.
+	<br><br>
+	<<endevent>>
+	<<beastNEWinit 3 dog>>
+	<<link [[Next|Farm Kennel Gang Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <</if>>
 
 
@@ -1194,23 +1194,23 @@ The <<beastsplural>> did their best, but you choose one in particular to reward.
 <br><br>
 
 <<if $NPCList[0].penis isnot "none">>
-    <<bHe 0>>'s already erect in anticipation, eager for <<bhis 0>> reward. You give <<bhis 0>> belly a good rub first, your hand creeping down until you slide <<bhis 0>> cock into your palm.
-    <<deviancy3>>
-
-    You stroke <<bhis 0>> penis until it pulses, and releases spurts of hot fluid over the ground.
-    <<if $monster is 1>>
-        "Th-thank you master," <<bhe 0>> pants.
-    <</if>>
-    <br><br>
+	<<bHe 0>>'s already erect in anticipation, eager for <<bhis 0>> reward. You give <<bhis 0>> belly a good rub first, your hand creeping down until you slide <<bhis 0>> cock into your palm.
+	<<deviancy3>>
+
+	You stroke <<bhis 0>> penis until it pulses, and releases spurts of hot fluid over the ground.
+	<<if $monster is 1>>
+		"Th-thank you master," <<bhe 0>> pants.
+	<</if>>
+	<br><br>
 <<else>>
-    <<bHe 0>>'s eager for <<bhis 0>> reward. You give <<bhis 0>> belly a good rub first, your hand creeping down until you slide a finger into <<bhis 0>> warm pussy.
-    <<deviancy3>>
-    
-    You slide your finger in and out, until <<bhis 0>> body shudders in orgasm.
-    <<if $monster is 1>>
-        "Th-thank you master," <<bhe 0>> pants.
-    <</if>>
-    <br><br>
+	<<bHe 0>>'s eager for <<bhis 0>> reward. You give <<bhis 0>> belly a good rub first, your hand creeping down until you slide a finger into <<bhis 0>> warm pussy.
+	<<deviancy3>>
+
+	You slide your finger in and out, until <<bhis 0>> body shudders in orgasm.
+	<<if $monster is 1>>
+		"Th-thank you master," <<bhe 0>> pants.
+	<</if>>
+	<br><br>
 <</if>>
 
 Satisfied, the <<beasttype>> follows you back to the kennel.
@@ -1237,20 +1237,20 @@ You remove your clothing, and drop to the ground. Despite their eager vigour, th
 You give the <<beastsplural>> an easy set of tasks, and let those who'd rather ignore you do so.
 
 <<if $farm.beasts.dogs gte 20>>
-    They all seem quite eager to pay attention however, and have no trouble following orders.<<grespect>><<farm_dogs 1>>
-    <br><br>
+	They all seem quite eager to pay attention however, and have no trouble following orders.<<grespect>><<farm_dogs 1>>
+	<br><br>
 <<elseif $farm.beasts.dogs gte 5>>
-    A few wander off, but most seem eager to pay attention.
-    <br><br>
+	A few wander off, but most seem eager to pay attention.
+	<br><br>
 <<elseif $farm.beasts.dogs gte -5>>
-    Some follow your instructions, sometimes.
-    <br><br>
+	Some follow your instructions, sometimes.
+	<br><br>
 <<elseif $farm.beasts.dogs gte -20>>
-    This turns out to be most of them, though a few are happy to follow your commands sometimes.
-    <br><br>
+	This turns out to be most of them, though a few are happy to follow your commands sometimes.
+	<br><br>
 <<else>>
-    This turns out to be all of them, and you get little done.<<lrespect>><<farm_dogs -1>>
-    <br><br>
+	This turns out to be all of them, and you get little done.<<lrespect>><<farm_dogs -1>>
+	<br><br>
 <</if>>
 
 <<link [[Next|Farm Work]]>><<endevent>><</link>>
diff --git a/game/overworld-plains/loc-farm/main.twee b/game/overworld-plains/loc-farm/main.twee
index 1d5b65cca341859d861d258096887452250202f5..e4d51d3431e248461a6bca98a84ccda6a91279e5 100644
--- a/game/overworld-plains/loc-farm/main.twee
+++ b/game/overworld-plains/loc-farm/main.twee
@@ -137,9 +137,9 @@ The interior is rustic and cosy. The <<nnpc_gendery "Alex">> insists on not disc
 	<<He>> hands you a mug. You turn around to present your bound arms. You hear <<him>> laugh. "Why didn't you say something?" <<He>> sets the mug down. You feel your arms come loose.
 	<br><br>
 
-	"Now then," he says after you've taken your first sip. "<span class="green">I'm Alex.</span> Anything else, or did you just need a little help?"
+	"Now then," <<he>> says after you've taken your first sip. "<span class="green">I'm Alex.</span> Anything else, or did you just need a little help?"
 <<else>>
-	"Now then," he says after you've taken your first sip. "<span class="green">I'm Alex.</span> What can I do for you? You interested in our eggs?"
+	"Now then," <<he>> says after you've taken your first sip. "<span class="green">I'm Alex.</span> What can I do for you? You interested in our eggs?"
 <</if>>
 <br><br>
 
@@ -1036,7 +1036,7 @@ The <<person3>><<person>> grasps Alex from behind.
 	<<set $farm_fight.weapon to "screwdriver">>
 	<<set $farm_fight.screws -= 1>>
 <<case "science">>
-	<<if $science gte random(1, 700)>>
+	<<if currentSkillValue('science') gte random(1, 700)>>
 		You search the chainsaw, and find a screwable cap. You open it. The interior is empty. <span class="green">The chainsaw needs fuel.</span>
 		<br><br>
 		<<set $farm_fight.chainsaw to 1>>
@@ -1550,7 +1550,7 @@ I need someone to handle the fields, at least. I don't," <<he>> finishes <<his>>
 
 :: Farm Shed
 <<set $outside to 0>><<effects>>
-You are inside the shed with the shower. 
+You are inside the shed with the shower.
 <br>
 <<link [[Take shower (0:10)|Farm Shower]]>><<pass 10>><</link>>
 <br>
@@ -1614,7 +1614,7 @@ Your penis is locked inside the cage. Shaving around it will be a bit more trick
 	<br>
 <</if>>
 <<if $worn.genitals.name isnot "chastity belt">>
-	<<link [[Dye pubic hair|Farm Dye]]>><</link>><br> 
+	<<link [[Dye pubic hair|Farm Dye]]>><</link>><br>
 <</if>>
 <<link [[Don't shave anything|Farm Shed]]>><<clotheson>><<dontHideRevert>><</link>>
 <</if>>
@@ -1664,12 +1664,13 @@ You spread your legs, and start carefully trimming your pubes. After a few minut
 <br><br>
 <<link [[Next|Farm Shed]]>><<clotheson>><<dontHideRevert>><</link>>
 
-:: Farm Dye 
+:: Farm Dye
 <<effects>>
 
 <<set _ownedColours = $makeup.owned.hairdye.filter(x => x.count > 0)>>
 <<if _ownedColours.length == 0>>
-	You don't own any hair dyes. Maybe you should visit a cosmetics shop to buy some.<br>
+	You don't own any hair dyes. Maybe you should visit a cosmetics shop to buy some.
+	<br>
 <<else>>
 	What colour will it be?<br>
 	<<set _choice = _ownedColours[0].colour>>
@@ -1971,7 +1972,7 @@ Alex tries to respond, but can't form the words. <<He>> closes the shed door beh
 
 	<<if $arousal gte $arousalmax>>
 		Your body shakes. <<orgasm>>
-		Rather than surprised, Alex is emboldened by your orgasm. "You're such a pervert," <<he>> says, pulling your body into <<his>>.
+		Rather than surprised, Alex is emboldened by your orgasm. "You're such a pervert," <<he>> says, pulling your body into <<hers>>.
 		<br><br>
 
 		<<if $promiscuity gte 15>>
@@ -2458,7 +2459,7 @@ You shove Alex to the side, pushing <<him>> onto <<his>> back. <<He>> laughs, an
 <</if>>
 <<promiscuity1>>
 <<if $NPCName[$NPCNameList.indexOf("Alex")].dom lte -30>>
-"Then you won't mind if I claim myself as yours," 
+"Then you won't mind if I claim myself as yours,"
 <<else>>
 "Then you won't mind if I claim you as mine,"
 <</if>>
@@ -2480,7 +2481,7 @@ Alex says, leaning closer and closing <<his>> eyes.
 Your lips meet. Alex's body is tense and <<his>> pulse races, but <<he>> relaxes as you kiss again and again. <<Hes>> flushed by the time you pull away.<<takeKissVirginity "Alex" "loveInterest">>
 <br><br>
 <<if $NPCName[$NPCNameList.indexOf("Alex")].dom lte -30>>
-"I'm your <<if $pronoun is "f">>wo<</if>>man," 
+"I'm your <<if $pronoun is "f">>wo<</if>>man,"
 <<else>>
 "You're my <<if $player.gender_appearance is "f">>wo<</if>>man,"
 <</if>>
diff --git a/game/overworld-plains/loc-farm/meadow.twee b/game/overworld-plains/loc-farm/meadow.twee
index 8d6cd0e0c1ca7191c72e40c43c8c2f04c34a193d..114e62be86096ca278f9bab495a34189aa1201fd 100644
--- a/game/overworld-plains/loc-farm/meadow.twee
+++ b/game/overworld-plains/loc-farm/meadow.twee
@@ -907,7 +907,7 @@ You release the <<fox_text>>.
 
 <<if $fox is "male">>
 	<<if $cbchance gte random(1, 100)>>
-		but reach beneath him, and place your fingers against his labia. He yelps in surprise.
+		but you reach beneath him, and place your fingers against his labia. He yelps in surprise.
 		<br><br>
 
 		"This is what you get for crossing me," you say. You push a finger against his entrance, then thrust it inside.
@@ -919,7 +919,7 @@ You release the <<fox_text>>.
 		With a moan, his whole body shudders in orgasm.
 		<br><br>
 	<<else>>
-		but reach beneath him, and wrap your fingers around his penis. He yelps in surprise.
+		but you reach beneath him, and wrap your fingers around his penis. He yelps in surprise.
 		<br><br>
 
 		"This is what you get for crossing me," you say. You take his cock in your palm, and begin to knead it. It's soon erect.
@@ -934,7 +934,7 @@ You release the <<fox_text>>.
 	<</if>>
 <<elseif $fox is "female">>
 	<<if $dgchance gte random(1, 100)>>
-		but reach beneath her, and place your hand on her penis. She yelps in surprise.
+		but you reach beneath her, and place your hand on her penis. She yelps in surprise.
 		<br><br>
 
 		"This is what you get for crossing me," you say. You take her cock in your palm, and begin to knead. It's soon erect.
@@ -946,7 +946,7 @@ You release the <<fox_text>>.
 		With a gasp, she ejaculates all over the forest floor.
 		<br><br>
 	<<else>>
-		but reach beneath her, and place your fingers against her labia. She yelps in surprise.
+		but you reach beneath her, and place your fingers against her labia. She yelps in surprise.
 		<br><br>
 
 		"This is what you get for crossing me," you say. You push a finger against her entrance, then thrust it inside.
diff --git a/game/overworld-plains/loc-farm/road.twee b/game/overworld-plains/loc-farm/road.twee
index c8a82c627e2131cbfcff98e56dd99e9b08e1b545..cdf72e67b485df08ec62698f3cdc1c4a0d2bcd62 100644
--- a/game/overworld-plains/loc-farm/road.twee
+++ b/game/overworld-plains/loc-farm/road.twee
@@ -457,7 +457,7 @@ The <<person1>><<persons>> control of the wheel becomes unsteady as <<he>> appro
 You bounce your <<bottom>> against the gear stick as you fondle the pair. You bounce a little too hard, and the stick shifts downward.
 <<promiscuity4>>
 
-The engine roars and the car speeds up. Frantic, both the <<person1>><<person>> and <<person2>><<person>> grope for the stick, but their rough fondling finds your <<genitals>> instead.<<ggarousal>><<arousal 2000>>
+The engine roars and the car speeds up. Frantic, both the <<fullGroup>> grope for the stick, but their rough fondling finds your <<genitals>> instead.<<ggarousal>><<arousal 2000>>
 <br><br>
 <<if $arousal gte $arousalmax>>
 	<<orgasm>> The pair withdraw their hands as you lean forward, gripping their thighs for support. Your movement shifts the gear stick again, and the car returns to a more reasonable pace.
@@ -1160,10 +1160,10 @@ You're jolted awake by a rumble. You're in a back of a van. You struggle to your
 You see the interior of a barn. The <<person>> isn't alone. Three others stand with <<him>>, examining you.
 <br><br>
 
-<<person2>>"You weren't lying," a <<person>> says. "Good stock. Would make a fine breeder."
+<<person2>>"You weren't lying," a <<person>> says. "Good stock.<<if $speechpregnancydisable is "f">> Would make a fine breeder.<</if>>"
 <br><br>
 
-<<person3>>"Breeder?" a <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> advances on you, a metal chain and collar in <<his>> hand.
+<<person3>><<if $speechpregnancydisable is "f">>"Breeder?"<<else>>"Personally,"<</if>> a <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> advances on you, a metal chain and collar in <<his>> hand.
 <br><br>
 
 <<link [[Protest|Street Van Protest]]>><<def 1>><<stress 6>><<trauma -6>><</link>><<gstress>><<ltrauma>>
@@ -1500,7 +1500,7 @@ You dismount the <<beasttype>>, and kneel beneath <<bhim>>.
 		"D-don't stop," the <<beasttype>> says. "I'm almost there.""
 		<br><br>
 	<</if>>
-	<<link [[Keep going|Farm Ride Hand 2]]>><<farm_horses 1>><</link>><<skill_difficulty handskill "Hand Skill" 1 1000>><<grespect>>
+	<<link [[Keep going|Farm Ride Hand 2]]>><<farm_horses 1>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1000>><<grespect>>
 	<br>
 	<<link [[Stop|Farm Ride Hand Stop]]>><<farm_horses -3>><</link>><<llrespect>>
 	<br>
@@ -1815,7 +1815,7 @@ You spur your <<beasttype>> to a gallop. Hooves thunder behind as Remy's goons t
 
 	<<link [[Punch the closest rider|Farm Ride Punch]]>><</link>><<physiquedifficulty 1 16000>>
 	<br>
-	<<link [[Grab the lasso|Farm Ride Grab]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 1000>>
+	<<link [[Grab the lasso|Farm Ride Grab]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1000>>
 	<br>
 	<<link [[Reassure your steed|Farm Ride Reassure]]>><</link>><<tendingdifficulty 1 1000>>
 	<br>
@@ -1835,7 +1835,7 @@ You rein in the <<beasttype>>, and turn to face the approaching riders. They don
 
 <<link [[Punch the closest rider|Farm Ride Punch]]>><</link>><<physiquedifficulty 1 16000>>
 <br>
-<<link [[Grab the lasso|Farm Ride Grab]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 1000>>
+<<link [[Grab the lasso|Farm Ride Grab]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1000>>
 <br>
 <<link [[Reassure your steed|Farm Ride Reassure]]>><</link>><<tendingdifficulty 1 1000>>
 <br>
@@ -1847,7 +1847,7 @@ You rein in the <<beasttype>>, and turn to face the approaching riders. They don
 	You fist connects with the <<person3>><<person>>'s face, <span class="green">knocking <<him>> from the saddle.</span> <<His>> colleague laughs, and readies the lasso for another attempt.
 	<br><br>
 
-	<<link [[Grab the lasso|Farm Ride Grab 2]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 1000>>
+	<<link [[Grab the lasso|Farm Ride Grab 2]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1000>>
 	<br>
 	<<link [[Reassure your steed|Farm Ride Reassure 2]]>><</link>><<tendingdifficulty 1 1000>>
 	<br>
@@ -1916,7 +1916,7 @@ You rein in the <<beasttype>>, and turn to face the approaching riders. They don
 
 	<<link [[Punch the closest rider|Farm Ride Punch 2]]>><</link>><<physiquedifficulty 1 16000>>
 	<br>
-	<<link [[Grab the lasso|Farm Ride Grab 2]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 1000>>
+	<<link [[Grab the lasso|Farm Ride Grab 2]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1000>>
 	<br>
 <<else>>
 	<<person1>>
diff --git a/game/overworld-plains/loc-farm/upgrades.twee b/game/overworld-plains/loc-farm/upgrades.twee
index 9cd5a2b8ed43ffe0fda838cb823749ec647a5431..ea63879c806df610ab35f3d96187fccf15393c37 100644
--- a/game/overworld-plains/loc-farm/upgrades.twee
+++ b/game/overworld-plains/loc-farm/upgrades.twee
@@ -57,7 +57,7 @@ You unfurl the paper. The details have been crossed out, but it looks like plans
 			You don't have enough money to build the greenhouse.
 			<br>
 		<</if>>
-		
+
 		<<link [[Back|Farm Upgrades]]>><<endevent>><</link>>
 		<br>
 	<<else>>
diff --git a/game/overworld-plains/loc-farm/widgets.twee b/game/overworld-plains/loc-farm/widgets.twee
index 4a0a6df9449a3a44af48d3becdc8bfe014041dfc..0fbc7f8236c25dafebf0a7eff556d94b1f13b689 100644
--- a/game/overworld-plains/loc-farm/widgets.twee
+++ b/game/overworld-plains/loc-farm/widgets.twee
@@ -176,8 +176,8 @@
 	<br>
 
 <<else>>
-	<<generate1>><<generate2>><<generate3>><<person1>>
-	A car pulls up beside you. A <<person>>, <<person2>><<person>> and <<person3>><<person>> step out.
+	<<generate1>><<generate2>><<generate3>>
+	A car pulls up beside you. A <<fullGroup>> step out.
 	<br><br>
 
 	"All alone?" the <<person1>><<person>> mocks as <<he>> steps behind you. The other two close in. "Nice. You'd best play along. There's no one out here to save you."<<gstress>><<stress 6>>
@@ -1393,7 +1393,7 @@
 			<</if>>
 		<<case 2>>
 			<<generate1>><<generate2>><<generate3>>
-			A few builders, a <<person1>><<person>>, <<person2>><<person>>, and <<person3>><<person>>, sit
+			A few builders, a <<fullGroup>>, sit
 			<<if $weather is "snow">>
 				on the cottage porch, taking shelter from the snow during their break.
 			<<elseif $weather is "rain">>
@@ -1575,11 +1575,11 @@
 		<<if $farm.aggro gte 10 and ($farm.wall is undefined or $farm.wall lt 3)>>
 			<<generate1>><<generate2>><<person1>>
 			<<if $farm.wall gte 3>>
-				You hear a series of sharp, metallic thuds. You investigate the sound, and find a <<person>> and <<person2>><<person>> attacking the fence with axes.
+				You hear a series of sharp, metallic thuds. You investigate the sound, and find a <<fullGroup>> attacking the fence with axes.
 			<<elseif $farm.wall gte 1>>
-				You hear a series of thuds and cracks. You investigate the sound, and find a <<person>> and <<person2>><<person>> attacking the wall with axes.
+				You hear a series of thuds and cracks. You investigate the sound, and find a <<fullGroup>> attacking the wall with axes.
 			<<else>>
-				You hear a series of thuds, and the creaking of wood. You investigate the sound, and find a <<person>> and <<person2>><<person>> attacking the fence with axes.
+				You hear a series of thuds, and the creaking of wood. You investigate the sound, and find a <<fullGroup>> attacking the fence with axes.
 			<</if>>
 			<br><br>
 
@@ -1730,7 +1730,7 @@
 		"Watch out!" Says Alex from above. You look up, just in time to see a hay bale bearing down on you.
 		<br><br>
 
-		<<if $physique gte 12000>>
+		<<if currentSkillValue('physique') gte 12000>>
 			You raise your arms to catch it, <span class="green">and ease it to the ground.</span>
 			<br><br>
 			"Nice catch," Alex says, dropping to the earth beside you. <<He>> hefts the bale onto <<his>> shoulder. "Gotta get them in storage to keep the weather off." <<He>> walks away.
@@ -1738,7 +1738,7 @@
 
 			<<link [[Next|Farm Work]]>><<endevent>><</link>>
 			<br>
-		<<elseif $danceskill gte 800>>
+		<<elseif currentSkillValue('danceskill') gte 800>>
 			You step aside, <span class="green">and the bale lands beside you.</span>
 			<br><br>
 			"Nice dodge," Alex says, dropping to the earth. <<He>> hefts the bale onto <<his>> shoulder. "Gotta get them in storage to keep the weather off." <<He>> walks away.
@@ -1863,14 +1863,14 @@
 	<<link [[Scold|Farm Knotted Scold]]>><</link>><<tendingdifficulty 100 1500>>
 	<br>
 	<<if $deviancy gte 75>>
-		<<link [[Flaunt|Farm Knotted Deviant]]>><<stress 12>><<trauma 12>><<famebestiality 10 vid>><<farm_yield 10>><<npcincr Alex love -3>><<npcincr Alex dom 5>><<npcincr Alex lust 5>><</link>><<deviant5>><<lllove>><<gggdom>><<gglust>><<gggfarm>>
+		<<link [[Flaunt|Farm Knotted Deviant]]>><<stress 12>><<trauma 12>><<famebestiality 10 "vid">><<farm_yield 10>><<npcincr Alex love -3>><<npcincr Alex dom 5>><<npcincr Alex lust 5>><</link>><<deviant5>><<lllove>><<gggdom>><<gglust>><<gggfarm>>
 		<br>
 	<<else>>
-		<<link [[Let it happen|Farm Knotted Seen]]>><<stress 12>><<trauma 12>><<famebestiality 10 vid>><<farm_yield 10>><<npcincr Alex love -3>><<npcincr Alex dom 5>><<npcincr Alex lust 5>><</link>><<ggtrauma>><<ggstress>><<lllove>><<gggdom>><<gglust>><<gggfarm>>
+		<<link [[Let it happen|Farm Knotted Seen]]>><<stress 12>><<trauma 12>><<famebestiality 10 "vid">><<farm_yield 10>><<npcincr Alex love -3>><<npcincr Alex dom 5>><<npcincr Alex lust 5>><</link>><<ggtrauma>><<ggstress>><<lllove>><<gggdom>><<gglust>><<gggfarm>>
 		<br>
 	<</if>>
 <<else>>
-	<<link [[Next|Farm Knotted Seen]]>><<set $phase to 5>><<stress 12>><<trauma 12>><<famebestiality 10 vid>><<farm_yield 10>><<npcincr Alex love -3>><<npcincr Alex dom 5>><<npcincr Alex lust 5>><</link>>
+	<<link [[Next|Farm Knotted Seen]]>><<set $phase to 5>><<stress 12>><<trauma 12>><<famebestiality 10 "vid">><<farm_yield 10>><<npcincr Alex love -3>><<npcincr Alex dom 5>><<npcincr Alex lust 5>><</link>>
 	<br>
 <</if>>
 <<set $phase += 1>>
@@ -1958,7 +1958,7 @@
 			<</if>>
 		<<else>>
 			<<generate1>><<generate2>><<generate3>><<person1>>
-			"Hey <<girl>>," says a voice. You look up, and see a <<person>> leering at you across the fence. "What's a cute<<if pregnancyBellyVisible()>> pregnant<</if>> <<girl>> like you doing working the fields?"
+			"Hey <<girl>>," says a voice. You look up, and see a <<person>> leering at you across the fence. "What's a cute<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">> pregnant<</if>> <<girl>> like you doing working the fields?"
 			<br><br>
 
 			<<if currentSkillValue('skulduggery') gte random(500, 700)>>
@@ -1994,7 +1994,7 @@
 			across the fence.
 		<</if>>
 
-		"What's a cute<<if pregnancyBellyVisible()>> pregnant<</if>> <<girl>> like you doing working the fields?"
+		"What's a cute<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">> pregnant<</if>> <<girl>> like you doing working the fields?"
 		<br><br>
 
 		<<link [[Ignore|Farm Tending Ignore]]>><<set $phase to 0>><</link>>
@@ -2327,7 +2327,7 @@
 			<br>
 		<</if>>
 	<<elseif $farm_fight.chainsaw is undefined>>
-		<<link [[Work out how to switch the chainsaw on|Farm Fight]]>><<set $farm_fight.action to "science">><</link>><<skill_difficulty science "Science" 1 700>>
+		<<link [[Work out how to switch the chainsaw on|Farm Fight]]>><<set $farm_fight.action to "science">><</link>><<skill_difficulty "$science" "Science" 1 700>>
 		<br>
 	<</if>>
 <</if>>
@@ -2372,28 +2372,28 @@
 
 <<widget "farm_sleep_options">>
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Farm Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Farm Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Farm Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Farm Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
-<<link [[Sleep for 8 hours|Farm Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Farm Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Farm Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Farm Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Farm Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Farm Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Farm Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Farm Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Farm Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Farm Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Farm Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Farm Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Farm Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Farm Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hour|Farm Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hour|Farm Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Farm Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Farm Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 <<if $bus is "farm_alex_room">>
 	<<link [[Climb out of bed|Farm Alex Bedroom]]>>
@@ -2414,7 +2414,7 @@
 
 <<widget "farm_tell_alex">>
 <<set _alex to $NPCName[$NPCNameList.indexOf("Alex")]>>
-<<if random(1, 14) is 14 and $famemodel gte 30>>
+<<if random(1, 14) is 14 and $fame.model gte 30>>
 	You talk about your modelling gig.
 	<<if $rng gte 60 and $alex_countdown is undefined and $farm_stage gte 7>>
 		"You model? I bet." <<He>> blushes. "You're quite the looker."
@@ -2423,8 +2423,8 @@
 	<<else>>
 		"Don't let it get to your head," <<he>> teases. "You bet I'm giving a shout, if I catch you on TV."
 	<</if>>
-<<elseif random(1, 14) is 13 and $famescrap gte 30>>
-	You tell <<him>> that you know how to defend yourself. 
+<<elseif random(1, 14) is 13 and $fame.scrap gte 30>>
+	You tell <<him>> that you know how to defend yourself.
 	<<if $loveInterest.primary is "Alex" or $loveInterest.secondary is "Alex">>
 		"I knew my <<girl>>'s a tough one," <<he>> grins. "I'm your support, no matter what."
 	<<elseif $bodysize lte 0>>
@@ -2432,7 +2432,7 @@
 	<<else>>
 		<<He>> nods in approval. "It's a good skill anyone should have," <<he>> says. "Perverts need to fuck off."
 	<</if>>
-<<elseif random(1, 14) is 12 and $famegood gte 30>>
+<<elseif random(1, 14) is 12 and $fame.good gte 30>>
 	You tell <<him>> that you go out of your way to help others. Some call you an angel.
 	<<if _alex.love lte -10>>
 		"Something just doesn't add up," <<he>> says, sounding annoyed. "Sorry, I didn't mean to be rude. But you could be a little nicer to me."
@@ -2445,14 +2445,14 @@
 	<<else>>
 		"I don't know about that," <<he>> says, pretending to roll <<his>> eyes. "I'm joking. I could tell you had a good heart ever since we first met."
 	<</if>>
-<<elseif random(1, 14) is 11 and $famebusiness gte 30>>
+<<elseif random(1, 14) is 11 and $fame.business gte 30>>
 	You tell <<him>> that you're an entrepeneur.
 	<<if $farm_stage gte 7>>
 		"You put in a good effort," <<he>> grins, gesturing to the fields. "Making you co-owner was one of the best decisions I've made."
 	<<else>>
 		<<He>> nods and smiles. "I like what you've done so far. Keep at it."
 	<</if>>
-<<elseif random(1, 14) is 10 and $famesocialite gte 30>>
+<<elseif random(1, 14) is 10 and $fame.socialite gte 30>>
 	You tell <<him>> that you schmooze in town. "It's nice that a townie elite can still get <<pher>> hands dirty with a country<<nnpc_gendery "Alex">> like me," <<he>> says teasingly.
 <<elseif random(1, 14) is 9 and $adultshopclerk>>
 	You tell <<him>> that you also work as an adult shop clerk. "Do you get an employee discount? I could use more-" <<He>> cuts <<himself>> off. "Nevermind."
@@ -2464,16 +2464,16 @@
 	You tell <<him>> that you also work as a chef at the town's cafe. "Sounds like a good hustle," <<he>> smiles. "We should have a cook-off sometime."
 <<elseif random(1, 14) is 5 and $dockwork is 1>>
 	You tell <<him>> that you're also a dock worker. "Be careful with your spine," <<he>> warns. "Trust me. I'd know from experience."
-<<elseif random(1, 14) is 4 and $stripclubbartendingintro is 1>> 
+<<elseif random(1, 14) is 4 and $stripclubbartendingintro is 1>>
 	You tell <<him>> that you moonlight as a bartender. "You fix up drinks? Why didn't you say something sooner?" <<His>> face lights up, and <<he>> proceeds to rave about liquor.
 <<elseif random(1, 14) is 3 and $stripclubdancingintro is 1 or $dance_job_intro is 1>>
 	You tell <<him>> that you're also a dancer. <<He>> laughs for a good while. "I think I'm pretty good at it myself. Drew up quite the crowd." You don't think <<he>> meant the same kind of dancing you do.
-<<elseif random(1, 14) is 2 and $brotheljob is 1 and $fameprostitution gte 30>>
+<<elseif random(1, 14) is 2 and $brotheljob is 1 and $fame.prostitution gte 30>>
 	"I heard the rumours about you in the brothel. I'm surprised you still show up here. With the amount of bank you must be making." <<He>> eyes you up and down, then looks away, laughing.
 	<<if $uncomfortable.lewd is true>>
 		<<stress 6>><<gstress>>
 	<</if>>
-<<elseif random(1, 14) is 1 and $famesex gte 400>>
+<<elseif random(1, 14) is 1 and $fame.sex gte 400>>
 	"Rumours say you've racked up quite the body count," <<he>> smiles in awe.
 	<<if $alex_countdown is undefined and $farm_stage gte 7>>
 		"You're a <<if $player.gender_appearance is "f">>wo<</if>>man after my own heart, y'know that?"
@@ -2481,7 +2481,7 @@
 		"Takes some serious hustle. I respect it."
 	<</if>>
 <<else>>
-	You shrug and gaze <<if $hour is 5>>out the window.<<else>>up at the sky.<</if>> <<He>> does likewise. 
+	You shrug and gaze <<if $hour is 5>>out the window.<<else>>up at the sky.<</if>> <<He>> does likewise.
 <</if>>
 <</widget>>
 
@@ -2529,6 +2529,7 @@
 	<<link [[Refuse|Farm Cottage Bailey Refuse]]>><<def 1>><</link>>
 	<br>
 <<else>>
+	<<set $baileypaychain to 0>>
 	<<if $submissive gte 1150>>
 		"I-I don't have the money," you tell Bailey. "Please don't hurt Alex."
 	<<elseif $submissive lte 850>>
@@ -2729,7 +2730,7 @@ Weekly wage: <<printmoney $farm.tower_guard_wage>>
 		<br><br>
 
 		<<generate2>><<generate3>>
-		<<link [[Ride faster|Farm Ride Aggro Faster]]>><</link>><<skill_difficulty thighskill "Thigh Skill" 400 1400>>
+		<<link [[Ride faster|Farm Ride Aggro Faster]]>><</link>><<skill_difficulty "$thighskill" "Thigh Skill" 400 1400>>
 		<br>
 		<<link [[Confront|Farm Ride Aggro Confront]]>><</link>>
 		<br>
@@ -2737,7 +2738,7 @@ Weekly wage: <<printmoney $farm.tower_guard_wage>>
 		You hear hooves approach from behind. Two of Remy's goons ride after you. They're catching up.
 		<br><br>
 		<<generate2>><<generate3>>
-		<<link [[Ride faster|Farm Ride Faster]]>><</link>><<skill_difficulty thighskill "Thigh Skill" 1 1000>>
+		<<link [[Ride faster|Farm Ride Faster]]>><</link>><<skill_difficulty "$thighskill" "Thigh Skill" 1 1000>>
 		<br>
 		<<link [[Confront|Farm Ride Confront]]>><</link>>
 		<br>
@@ -2776,7 +2777,7 @@ Weekly wage: <<printmoney $farm.tower_guard_wage>>
 			<<link [[Handjob|Farm Ride Hand]]>><</link>><<deviant3>>
 			<br>
 		<</if>>
-		<<link [[Force it to continue|Farm Ride Force]]>><</link>><<skill_difficulty thighskill "Thigh Skill" 1 1400>>
+		<<link [[Force it to continue|Farm Ride Force]]>><</link>><<skill_difficulty "$thighskill" "Thigh Skill" 1 1400>>
 		<br>
 		<<link [[Continue on foot|Farm Ride Foot]]>><</link>>
 		<br>
@@ -2803,7 +2804,7 @@ Weekly wage: <<printmoney $farm.tower_guard_wage>>
 
 	<<link [[Give it a break (0:10)|Farm Ride Break]]>><<pass 10>><</link>>
 	<br>
-	<<link [[Push it|Farm Ride Push]]>><</link>><<skill_difficulty thighskill "Thigh Skill" 1 1000>>
+	<<link [[Push it|Farm Ride Push]]>><</link>><<skill_difficulty "$thighskill" "Thigh Skill" 1 1000>>
 	<br>
 <<else>>
 	A car honks as it drives by, agitating your <<beasttype>>. <<bHe>> veers away from the road, almost falling into a ditch.
@@ -2811,7 +2812,7 @@ Weekly wage: <<printmoney $farm.tower_guard_wage>>
 
 	<<link [[Soothe|Farm Ride Soothe]]>><</link>><<tendingdifficulty 1 1200>>
 	<br>
-	<<link [[Take charge|Farm Ride Charge]]>><<def 1>><</link>><<skill_difficulty thighskill "Thigh Skill" 1 1200>>
+	<<link [[Take charge|Farm Ride Charge]]>><<def 1>><</link>><<skill_difficulty "$thighskill" "Thigh Skill" 1 1200>>
 	<br>
 	<<link [[Ignore|Farm Ride Ignore]]>><<farm_horses -1>><</link>><<lrespect>>
 	<br>
diff --git a/game/overworld-plains/loc-farm/work.twee b/game/overworld-plains/loc-farm/work.twee
index 42ba0f4a7f8bf8e76e9bb488c4e8c8da7a5ce308..214c94587dc5d7b80fac3171b6d9b66935aedf03 100644
--- a/game/overworld-plains/loc-farm/work.twee
+++ b/game/overworld-plains/loc-farm/work.twee
@@ -288,7 +288,7 @@ You are on Alex's farm. A rustic farmhouse overlooks a yard and chicken coop. Ot
 	<<link [[Be dismissive|Farm Stage 10 Dismiss]]>><<set $farm_stage to 10>><<set $farm.clearing to 100>><<add_plot farm earth 3 large>><<npcincr Alex love -1>><<npcincr Alex love -3>><</link>><<llove>><<lldom>>
 	<br>
 <<elseif $farm_stage is 10 and $farm.clearing lte 0>>
-	You observe the eighth  field. It was a tangled mess not long ago.
+	You observe the eighth field. It was a tangled mess not long ago.
 	<br><br>
 
 	<<npc Alex>><<person1>>
@@ -687,7 +687,7 @@ Following the slime's command, you find a spot where you think your clothes will
 
 :: Farm Slime Strip Defy
 <<effects>>
-<<if $corruption_slime gte ($willpower / 10)>>
+<<if $corruption_slime gte (currentSkillValue('willpower') / 10)>>
 	You try to ignore the slime but and feel a jolt of pain as it punishes you for defiance. However, <span class="red">you fail</span> to resist its influence.<<ggwillpower>><<willpower 3>>
 	<br><br>
 	Following the slime's command, you find a spot where you think your clothes will be safe and strip before heading to work.
@@ -1190,7 +1190,7 @@ You help Alex carry feed across the yard, spilling it over the fence and into th
 :: Farm Pigs Feed
 <<effects>>
 
-<<if $physique gte 16000>>
+<<if currentSkillValue('physique') gte 16000>>
 	You pour feed into a couple of buckets, and traipse across the field. The buckets are heavy, <span class="green">but no trouble for someone of your strength.</span><<set $farm_work.pigs_fed += 1>><<physique 2>>
 	<br><br>
 <<else>>
@@ -1909,9 +1909,9 @@ you have a bucket full of <<beasttype>> milk.
 <<pass 3>>
 <<if $monster is 1>>
 	You lead a <<beasttype>> into the barn. <<bHe>> starts to kneel, but you interrupt. Instead, <<bhe>> watches with a puzzled expression as you
-	
+
 	<!-- Milk Chest -->
-	<<if $pronoun is "f" or $NPCList[0].vagina isnot "none">> 
+	<<if $pronoun is "f" or $NPCList[0].vagina isnot "none">>
 		lean down to <<bhis>> chest.
 		<br><br>
 
@@ -1928,7 +1928,7 @@ you have a bucket full of <<beasttype>> milk.
 	<</if>>
 
 	<!-- Milk Penis -->
-	<<if $NPCList[0].penis isnot "none">> 
+	<<if $NPCList[0].penis isnot "none">>
 		<<bHis>> cock is already erect in anticipation. You take it into your mouth. <<if $player.virginity.oral is true>><span class="red">It tastes strange.</span><</if>>
 		<<takeVirginity $NPCList[0].fullDescription "oral">><<oralstat>><<oralejacstat>><<ejacstat>><<set $player.bodyliquid.mouth.semen += 1>>
 		<br><br>
@@ -2022,7 +2022,7 @@ You sneak up to the shed, and push the door open.
 	<</if>>
 
 	<<His>> face, arms and legs are much darker than parts protected from <<his>> days in the sun.<<garousal>><<arousal 600>>
-	
+
 	<br><br>
 
 	A draft blows through the gap in the door. Alex opens <<his>> eyes, but you're already gone. <<He>> shuts the door, none the wiser.
@@ -2341,7 +2341,7 @@ You approach Alex with the milkshake. <<He>> waves at you with a bottle beside <
 <br><br>
 
 "Not what I had in mind," <<he>> chuckles in amusement, and stashes the bottle away. "Not looking forward to the crash later either. But I'll accept the generous offer. Cheers."
-Alex takes it off your hands, and after twenty minutes of sipping and chatting, tips <<his>> hat off to you as you part ways. 
+Alex takes it off your hands, and after twenty minutes of sipping and chatting, tips <<his>> hat off to you as you part ways.
 <br><br>
 
 <<link [[Next|Farm Work]]>><</link>>
@@ -2350,16 +2350,16 @@ Alex takes it off your hands, and after twenty minutes of sipping and chatting,
 <<effects>>
 <<npc Alex>><<person1>>
 
-You sit beside Alex, then procure the milkshake. "Fancy a drink?" you ask simultaneously. <<He>> pulled out a bottle to offer you at the same time. 
+You sit beside Alex, then procure the milkshake. "Fancy a drink?" you ask simultaneously. <<He>> pulled out a bottle to offer you at the same time.
 <br><br>
 
 <<if $worn.head.name is "naked">>
 	You take <<his>> hat off, and pull the brim over your face.<<headwear 17>>
-<</if>> 
+<</if>>
 "They say you shouldn't drink alone," you add, with your best impression of Alex's voice.
 <br><br>
 
-<<He>> erupts in uncontrollable laughter, and you spend the next twenty minutes laughing with <<him>>. Towards the end, you share the creamy treat together. 
+<<He>> erupts in uncontrollable laughter, and you spend the next twenty minutes laughing with <<him>>. Towards the end, you share the creamy treat together.
 "Thanks for the sugar," <<he>> wheezes, wiping a tear. After catching your breath, you part ways.
 <br><br>
 
@@ -2375,7 +2375,7 @@ You relax on the hammock next to the stables.
 	You see Alex approach, waving at you.
 	"Hey, partner," <<nnpc_he "Alex">> smiles and leans across your lap. "Just thought I'd swing by."
 	<br><br>
-	
+
 	You recline with <<nnpc_him "Alex">>, swayed by the occasional breeze. <<nnpc_He "Alex">> reluctantly gets up at one point with a sigh.
 	"I should get back to work. But I couldn't resist being with you."
 <<elseif $daystate is "night">>
diff --git a/game/overworld-plains/loc-livestock/field.twee b/game/overworld-plains/loc-livestock/field.twee
index 20304c4eb2ededfd4b5e297b99295a4e66ce63c5..eafb8accbdff67c1214a9ec38c229725cbc1279d 100644
--- a/game/overworld-plains/loc-livestock/field.twee
+++ b/game/overworld-plains/loc-livestock/field.twee
@@ -949,7 +949,6 @@ It's hard to look away from her glistening genitals.
 <<effects>>
 
 You rub the centaur's belly. She shivers. "Oh," she exclaims above. "That's nice." You rub down her body, until her cock is in reach. You lean forward and touch it. <<deviancy2>>
-<br><br>
 
 She shouts in shock, and almost stumbles over. The others laugh. You surprised her, but she recovers fast. "Don't touch a lady's penis without permission!" She exclaims, turning to look at you once more. She's blushing.
 <br><br>
@@ -974,7 +973,6 @@ She shouts in shock, and almost stumbles over. The others laugh. You surprised h
 <<effects>>
 
 You rub the centaur's belly. She shivers. "Oh," she exclaims above. "That's nice." You rub down her body, until her pussy is in reach. You lean forward and touch it. <<deviancy2>>
-<br><br>
 
 She shouts in shock, and almost stumbles over. The others laugh. You surprised her, but she recovers fast. "Don't touch a lady's pussy without permission!" She exclaims, turning to look at you once more. She's blushing.
 <br><br>
@@ -1488,7 +1486,6 @@ It's hard to look away from his glistening pussy.
 <<effects>>
 
 You rub the centaur's belly. He shivers. "Oh," he exclaims above. "That's nice." You rub down his body, until his cock is in reach. You lean forward and touch it. <<deviancy2>>
-<br><br>
 
 He shouts in shock, and almost stumbles over. The others laugh. You surprised him, but he recovers fast. "Don't touch a gentleman's penis without permission!" He exclaims, turning to look at you once more. He's blushing.
 <br><br>
@@ -1513,7 +1510,6 @@ He shouts in shock, and almost stumbles over. The others laugh. You surprised hi
 <<effects>>
 
 You rub the centaur's belly. He shivers. "Oh," he exclaims above. "That's nice." You rub down his body, until his pussy is in reach. You lean forward and touch it. <<deviancy2>>
-<br><br>
 
 He shouts in shock, and almost stumbles over. The others laugh. You surprised him, but he recovers fast. "Don't touch a gentleman's pussy without permission!" He exclaims, turning to look at you once more. He's blushing.
 <br><br>
@@ -2031,7 +2027,6 @@ Its hard to look away from its glistening pussy.
 <<effects>>
 
 You rub the horse's belly. It shivers in pleasure. You rub down his body until his cock is in reach. You lean forward and touch it. <<deviancy2>>
-<br><br>
 
 It neighs in shock, and almost stumbles over. You surprised it, but it recovers fast, moving closer as if inviting more.
 <br><br>
@@ -2056,7 +2051,6 @@ It neighs in shock, and almost stumbles over. You surprised it, but it recovers
 <<effects>>
 
 You rub the horse's belly. It shivers in pleasure. You rub down its body until its pussy is in reach. You lean forward and touch it. <<deviancy2>>
-<br><br>
 
 It neighs in shock, and almost stumbles over. You surprised it, but it recovers fast, moving closer as if inviting more.
 <br><br>
@@ -2850,9 +2844,9 @@ You slap Remy's face, too quick for <<him>> to dodge. One of the farmhands jabs
 
 One of the farmhands steps forward,
 
-<<if $danceskill gte 1000>>
+<<if currentSkillValue('danceskill') gte 1000>>
 	and tries to poke you with the end of the rod. You dodge it, and the next. It takes several attacking in unison to catch you. The shock makes you jump.
-<<elseif $danceskill gte 600>>
+<<elseif currentSkillValue('danceskill') gte 600>>
 	and tries to poke you with the end of the rod. You dodge it, right into another. The shock makes you jump.
 <<else>>
 	and pokes you with the end of the rod. The shock makes you jump.
diff --git a/game/overworld-plains/loc-livestock/intro.twee b/game/overworld-plains/loc-livestock/intro.twee
index 42585fba607b6db271106730c16030a7bdeab6af..22df9ef57d3977241484f4503b915d43c065d8d9 100644
--- a/game/overworld-plains/loc-livestock/intro.twee
+++ b/game/overworld-plains/loc-livestock/intro.twee
@@ -59,14 +59,14 @@ Your handler gives the leash a rough tug, and you're led inside.
 
 		Rows of caged cattle line the edge, eating cereal from troughs. It's only as you're pulled closer that you realise they aren't cows, but people with cow ears and tails. They eat from their troughs all the same, their feeding broken only by the occasional moo.
 		<br><br>
-		
+
 		<<if $livestock_obey lte 10>>
 			You expect to be placed in a cell right along with them. Instead, you're pulled forward, past the cages and through another set of doors.
 			<br><br>
-			
+
 			"Don't you worry, you'll be back home in no time," your handler chuckles. "But the boss has got something special for you first."<<stress 6>><<gstress>>
 			<br><br>
-			
+
 			<<link [[Next|Livestock Return Kennel]]>><<endevent>><</link>>
 			<br>
 		<<else>>
@@ -78,14 +78,14 @@ Your handler gives the leash a rough tug, and you're led inside.
 		<</if>>
 	<<else>>
 
-		Rows of caged cows line each edge. 
+		Rows of caged cows line each edge.
 		<<if $livestock_obey lte 10>>
 			You expect to be placed in a cell right along with them. Instead, you're pulled forward, past the cages and through another set of doors.
 			<br><br>
-			
+
 			"Don't you worry, you'll be back home in no time," your handler chuckles. "But the boss has got something special for you first."<<stress 6>><<gstress>>
 			<br><br>
-			
+
 			<<link [[Next|Livestock Return Kennel]]>><<endevent>><</link>>
 			<br>
 		<<else>>
@@ -213,8 +213,85 @@ Over time, though, you grow accustomed to the sting, and even a bit bored as it
 	<<neckwear 8>>
 <</if>>
 <br><br>
+
+<<saveNPC 1 "remy_farmhand_1">>
+<<saveNPC 2 "remy_farmhand_2">>
+<<endevent>>
+
+<<if random(1) and $horsedisable is "f">>
+	<<set _phase to 2>>
+	<<beastNEWinit 1 horse>>
+<<else>>
+	<<set _phase to 1>>
+	<<beastNEWinit 1 dog>>
+<</if>>
+
 <!-- Modified for Monster People -->
-<<if ($monsterchance gte random(1, 100) and ($hallucinations gte 1 or $monsterhallucinations is "f") or $bestialitydisable is "f") and $horsedisable is "f">>
+<<if _phase is 2 and ($monster is 1 or $bestialitydisable is "f")>>
+	<<clearNPC "remy_farmhand_1">><<clearNPC "remy_farmhand_2">>
+	The doors open once more, and you hear the clomp of hooves alongside other footsteps. Remy walks into view,
+	<<if $monster is 1>>
+		holding a tall <<if $NPCList[0].pronoun is "f">>wo<</if>>man by a bridle tied around <<bhis>> face. A moment later you realise <<bhes>> only a <<if $NPCList[0].pronoun is "f">>wo<</if>>man above the waist. <span class="lewd">The rest of <<bhis>> body is that of a horse.</span>
+	<<else>>
+		holding a horse by a bridle tied around <<bhis>> face.
+	<</if>>
+	<br><br>
+
+	"Unlike you," Remy says, stroking the <<beasttypes>> hair. "This <<if $NPCList[0].pronoun is "m">>boy<<else>>girl<</if>> has been good. So your punishment is <<if $NPCList[0].pronoun is "m">>his<<else>>her<</if>> reward."
+	<<if $NPCList[0].penis isnot "none">>
+		More farmhands crouch on either side of you, ensuring that your legs are clamped firm<<if $monster is 1>>, but your eyes are transfixed on the centaur, and <<bhers>> on you. Unkempt and wild <<print $NPCList[0].hair>> hair tumbles around <<bhis>> head and over <<bhis>> <<if $NPCList[0].pronoun is "m">>toned chest<<else>>large breasts<</if>>, almost reaching <<bhis>> legs<</if>>.
+		<br><br>
+
+		Remy pulls <<bhim>> behind you and out of sight once more. You glimpse the <<beasttypes>> <span class="lewd">enormous penis</span> as <<bhe>> walks by, primed and erect.
+		<br><br>
+
+		The farmhands finish setting up a wooden support just as the <<beasttypes>> front legs appear either side of you. <<bHe>> rears up, resting them on the support. <span class="purple">You feel <<bhis>> penis rest against your skin.</span>
+	<<else>>
+		Two of the farmhands release your legs and neck, then spin you around<<if $monster is 1>>, but your eyes are transfixed on the centaur, and <<bhers>> on you. Unkempt and wild <<print $NPCList[0].hair>> hair tumbles around <<bhis>> head and over <<bhis>> <<if $NPCList[0].pronoun is "m">>toned chest<<else>>large breasts<</if>>, almost reaching <<bhis>> legs<</if>>.
+		<<unbind>>
+		<br><br>
+
+		Remy pulls <<bhim>> in front of you. You glimpse the <<beasttypes>> <span class="lewd">glistening pussy</span> as <<bhe>> walks by, wet and ready.
+		<br><br>
+
+		The farmhands finish setting up a wooden support just as the <<beasttypes>> body eclipses your view. <<bHe>> rears up, resting <<bhis>> legs on the support. <span class="purple"><<bHis>> pussy hovers above you.</span>
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Livestock Return Horse Molestation]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<<elseif _phase is 1 and ($monster is 1 or $bestialitydisable is "f")>>
+	<<clearNPC "remy_farmhand_1">><<clearNPC "remy_farmhand_2">>
+
+	The doors open once more, and you hear
+	<<if $monster is 1>>
+		a patter of bare feet alongside other footsteps. Remy walks into view, holding a naked <<if $NPCList[0].pronoun is "m">>boy<<else>>girl<</if>> by a lead. Dog ears tuft from <<bhis>> hair, and a tail wags behind <<bhim>>. <<bHe>> crawls on all-fours, and looks up at Remy with a happy expression.
+	<<else>>
+		several other footsteps. Remy walks into view, holding a dog by a lead.
+	<</if>>
+	<br><br>
+
+	"Unlike you," Remy says, stroking the <<beasttypes>> head. "This <<if $NPCList[0].pronoun is "m">>boy<<else>>girl<</if>> has been good. So your punishment is <<if $NPCList[0].pronoun is "m">>his<<else>>her<</if>> reward." Remy tugs the lead as other farmhands gather around you. Two of them release your legs and neck. You spin around just as the <<beasttype>> climbs on top of you.
+	<<unbind>>
+	<br><br>
+
+	<<link [[Next|Livestock Return Dog Molestation]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<<else>>
+	<<endevent>><<npc Remy>>
+	<<loadNPC 1 "remy_farmhand_1">><<loadNPC 2 "remy_farmhand_2">>
+	<<clearNPC "remy_farmhand_1">><<clearNPC "remy_farmhand_2">>
+
+	You hear a whip crack behind you. It cracks again, this time inches from your face. "This hurts me, truly, but punish you I must." The <<person2>><<person>> and <<person3>><<person>> look ready to enjoy the show.<<person1>>
+	<br><br>
+
+	<<link [[Beg|Livestock Return Whip Beg]]>><<transform cow 1>><<sub 1>><</link>>
+	<br>
+	<<link [[Brace yourself (0:05)|Livestock Return Whip Brace]]>><<pass 5>><</link>>
+	<br>
+<</if>>
+
+/* <<if ($monsterchance gte random(1, 100) and ($hallucinations gte 1 or $monsterhallucinations is "f") or $bestialitydisable is "f") and $horsedisable is "f">>
 	<<if $malechance lt random(1, 100)>>
 		<<if $dgchance gte 1>>
 			The doors open once more, and you hear the clomp of hooves alongside other footsteps. Remy walks into view, holding a tall woman by a bridle tied around her face. A moment later you realise she's only a woman above the waist. <span class="lewd">The rest of her body is that of a horse.</span>
@@ -324,8 +401,136 @@ Over time, though, you grow accustomed to the sting, and even a bit bored as it
 	<br>
 	<<link [[Brace yourself (0:05)|Livestock Return Whip Brace]]>><<pass 5>><</link>>
 	<br>
+<</if>> */
+
+:: Livestock Return Horse Molestation
+
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<beastCombatInit>>
+	<<set $NPCList[0].stance to "top">>
+	<<if $NPCList[0].penis isnot "none">>
+		<<set $position to "wall">>
+		<<set $walltype to "horse_pillory">>
+	<<else>>
+		<<set $position to "missionary">>
+		<<set $position_lock to 1>>
+	<</if>>
+	<<prop haybale>>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br><br>
+<<beast $enemyno>>
+<br><br>
+
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Livestock Return Horse Molestation Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Livestock Return Horse Molestation Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Livestock Return Horse Molestation]]>><</link>></span><<nexttext>>
 <</if>>
 
+:: Livestock Return Horse Molestation Finish
+<<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+
+	The audience hoots with laughter as the <<beasttype>> backs away from you.
+	<<if $NPCList[0].penis isnot "none">>
+		Semen still trails from <<bhis>> enormous phallus, pooling on the floor beneath <<bhim>>.
+	<</if>>
+	A farmhand takes <<bhim>> by the bridle and pulls <<bhim>> from the room.
+<<else>>
+	<<if $monster is 1>>
+		The centaur backs away from you. "I-I'm just not in the mood," <<bhe>> stutters, trying to save face. 
+	<<else>>
+		The horse backs away from you with a panicked neigh.
+	<</if>>
+	The farmhands enjoyed the show regardless. One of them takes the <<beasttype>> by the bridle and leads <<bhim>> from the room.
+<</if>>
+<br><br>
+
+Other farmhands release the bindings around your face and neck as Remy grasps your collar. <<tearful>> you're pulled to your feet. You're led through the doors yourself.
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+
+<<link [[Next|Livestock Return Cell]]>><</link>>
+<br>
+
+:: Livestock Return Dog Molestation
+
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<beastCombatInit>>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br><br>
+<<beast $enemyno>>
+<br><br>
+
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Livestock Return Dog Molestation Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Livestock Return Dog Molestation Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Livestock Return Dog Molestation]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Livestock Return Dog Molestation Finish
+<<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+
+	<<if $monster is 1>>
+		The <<beasttype>> collapses on top of you. It takes a couple of farmhands to pull <<bhim>> off. They lead <<bhim>> from the room.
+	<<else>>
+		One of the farmhands helps the dog off the hay bale, and leads it from the room.
+	<</if>>
+<<else>>
+	The <<beasttype>> whimpers and tumbles off the hay bale. The farmhands find it amusing. One of them leads <<bhim>> from the room.
+<</if>>
+<br><br>
+
+Other farmhands release the bindings around your face and neck as Remy grasps your collar. <<tearful>> you're pulled to your feet. You're led through the doors yourself.
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+
+<<link [[Next|Livestock Return Cell]]>><</link>>
+<br>
+
 :: Livestock Return Female Centaur Rape
 <<if $molestationstart is 1>>
 <<set $molestationstart to 0>>
@@ -1357,16 +1562,16 @@ Behind you, one of the <<beastsplural>> gives you a cursory sniff before mountin
 		<br>
 		<<tearful>> you brace yourself.
 		<br><br>
-		
+
 		<<clotheson>>
 		<<endcombat>>
 		<<npc Remy>><<person1>>
-		
-		<<He>> snatches your leash and yanks you to your feet, not bothering to unhook your collar. It's pulled taught against your throat, making you cough and gag as Remy brings your face close to <<his>>.
+
+		<<He>> snatches your leash and yanks you to your feet, not bothering to unhook your collar. It's pulled taut against your throat, making you cough and gag as Remy brings your face close to <<hers>>.
 		<br>
 		"That was just a taste of what I can do to stubborn beasts like you," <<he>> growls. "You're going to be a nice and happy cow. Or else."
 		<br><br>
-		
+
 		<<link [[Nod|Livestock Return Kennel End]]>><<set $phase to 0>><<sub 1>><<transform cow 1>><<livestock_obey 1>><<npcincr Remy love 1>><<npcincr Remy dom 1>><</link>><<gobey>>
 		<br>
 		<<link [[Spit|Livestock Return Kennel End]]>><<set $phase to 1>><<def 1>><<livestock_obey -5>><<npcincr Remy love -1>><<npcincr Remy dom -1>><</link>><<llobey>>
@@ -1376,16 +1581,16 @@ Behind you, one of the <<beastsplural>> gives you a cursory sniff before mountin
 		<br>
 		<<tearful>> you brace yourself.
 		<br><br>
-		
+
 		<<clotheson>>
 		<<endcombat>>
 		<<npc Remy>><<person1>>
-		
-		Remy crouches beside you, unhooking your collar and bringing your face close to <<his>>.
+
+		Remy crouches beside you, unhooking your collar and bringing your face close to <<hers>>.
 		<br>
 		"I'm sorry you made me do that to you, but you needed a lesson in obedience," <<he>> coos. "You're going to be a nice and happy cow, now, right?"
 		<br><br>
-		
+
 		<<link [[Nod|Livestock Return Kennel End]]>><<set $phase to 0>><<sub 1>><<transform cow 1>><<livestock_obey 1>><<npcincr Remy love 1>><<npcincr Remy dom 1>><</link>><<gobey>>
 		<br>
 		<<link [[Spit|Livestock Return Kennel End]]>><<set $phase to 1>><<def 1>><<livestock_obey -5>><<npcincr Remy love -1>><<npcincr Remy dom -1>><</link>><<llobey>>
@@ -1397,13 +1602,13 @@ Behind you, one of the <<beastsplural>> gives you a cursory sniff before mountin
 <<set $outside to 0>><<set $location to "farm">><<effects>>
 
 <<if $phase is 1>>
-	You tremble for a moment, gathering your strength before spitting as hard as you can in Remy's face as a desperate act of defiance. It's only a small amount, and Remy doesn't even flinch. 
+	You tremble for a moment, gathering your strength before spitting as hard as you can in Remy's face as a desperate act of defiance. It's only a small amount, and Remy doesn't even flinch.
 	<br><br>
 	Remy only smiles in response, pulling a handkerchief from their pocket and wiping <<his>> face.
 	<br>
 	"You're just an animal," <<he>> whispers. "A filthy, stubborn animal. Sooner or later, you'll learn your place."
 	<br><br>
-	
+
 	<<He>> motions for <<his>> farmhands.
 <<else>>
 	You nod, body still trembling. Remy smiles, and proceeds to pat you on the head before motioning for <<his>> farmhands.
diff --git a/game/overworld-plains/loc-livestock/jobs.twee b/game/overworld-plains/loc-livestock/jobs.twee
index 4b0383b4bbcfd321b8b4aeba24958292e24c4ee1..53a48d1a035d9c51f920c1a780ee28a8ac2862df 100644
--- a/game/overworld-plains/loc-livestock/jobs.twee
+++ b/game/overworld-plains/loc-livestock/jobs.twee
@@ -426,22 +426,22 @@ Remy sits on the plough and leans back. <<He>> unclips <<his>> whip.
 	<<set $edenwhip to 1>>
 <</if>>
 
-<<if $physique gte 16000>>
+<<if currentSkillValue('physique') gte 16000>>
 	You force yourself forward, pulling the plough behind you. It's a small satisfaction that Remy is surprised by the speed, and falls back into <<his>> chair.
 	<br><br>
 
 	You march across the field with slow but determined steps. Remy doesn't use the whip, seeming content with your performance.
-<<elseif $physique gte 12000>>
+<<elseif currentSkillValue('physique') gte 12000>>
 	You force yourself forward, straining to pull the plough behind you. It feels like an immovable weight, but then it gives. Remy's whip cracks at your side.
 	<br><br>
 
 	It's easier now that you have momentum, but progress is slow, and you feel like your muscles will give out at any moment. Remy doesn't use the whip again, seeming content with your performance.
-<<elseif $physique gte 8000>>
+<<elseif currentSkillValue('physique') gte 8000>>
 	You force yourself forward, straining to pull the plough behind you. You can't move it far before your strength gives out. You'd collapse if you weren't tied to the metal. Remy's whip cracks at your side.
 	<br><br>
 
 	You recover enough to pull again, but can only move it in short bursts. Remy berates you and cracks the whip, but the lash never touches you. <<He>> seems content with your effort.
-<<elseif $physique gte 4000>>
+<<elseif currentSkillValue('physique') gte 4000>>
 	You try to pull the plough behind you. It takes everything you have, but you manage to move it. An inch. Remy's whip cracks at your side.
 	<br><br>
 
@@ -612,7 +612,7 @@ You arrive in front of the gates. "It's not over for this poor thing," <<person3
 <<He>> passes it to you. "Might need help healing after that." You glimpse beneath the sheet. It's full of shiny, juicy apples. Your mouth waters and your stomach growls.
 <br><br>
 
-<<person2>>The <<person>> looks shocked. "Remy's not gonna be happy," <<he>> says. "<<person1>><<Hes>> the only one allowed to give those out."
+<<person2>>The <<person>> looks shocked. "Remy's not gonna be happy," <<he>> says. <<person1>>"<<Hes>> the only one allowed to give those out."
 <br>
 "Remy's not gonna find out. Like <<hes>> not gonna find out you said <<he>> lost <<his>> touch."
 <br><br>
@@ -651,7 +651,7 @@ Harper steps closer. <<He>> pulls a stethoscope from behind <<his>> coat, and pr
 <br><br>
 
 <<if $analdisable is "f" and $worn.genitals.anal_shield isnot 1>>
-	<<He>> allows stethoscope to fall, and licks <<his>> free forefinger, before reaching behind your <<bottom>>. You feel the finger press against your anus. It slides in without difficulty.
+	<<He>> allows the stethoscope to fall, and licks <<his>> free forefinger, before reaching behind your <<bottom>>. You feel the finger press against your anus. It slides in without difficulty.
 	<br><br>
 	<<He>> prods around inside you as <<his>> other hand
 	<<if $worn.genitals.type.includes("hidden")>>
@@ -776,7 +776,7 @@ Harper pours the liquid into your mouth. It's even sweeter than it smells, and s
 		<br><br>
 	<</if>>
 
-	<<He>> points at your <<genitals 1>>, semi-concealed behind your $worn.genitals.name. "A virile <<if $player.gender_appearance is "m">>bull<<else>>cow<</if>> like this would be foolish to leave unshackled at the best of times. With my treatment, it would be dangerous."
+	<<He>> points at your <<genitals 1>>, semi-concealed behind your $worn.genitals.name. "A <<if $player.gender_appearance is "m">>virile bull<<else>>fertile cow<</if>> like this would be foolish to leave unshackled at the best of times. With my treatment, it would be dangerous."
 	<br><br>
 
 	<<He>> runs <<his>> fingers over the front of the device. <<if $player.penisExist>>"<<pShes>> already erect and straining against the metal."<<else>>"<<pShes>> already wet and dripping through the metal."<</if>>
@@ -787,7 +787,7 @@ Harper pours the liquid into your mouth. It's even sweeter than it smells, and s
 		<br><br>
 	<</if>>
 
-	<<He>> points at your <<if $player.penisExist>><<penis>>. "<<pShes>> already erect and ready to breed.<<else>><<pussy>>. "<<pShes>> already wet and ready to breed.<</if>>" The audience lean forward in their seats, staring at your <<genitals 1>> with a lewd thirst in their eyes.
+	<<He>> points at your <<if $player.penisExist>><<penis>>. "<<pShes>> already erect and ready to <<if $pregnancyspeechdisable is "f">>breed<<else>>mate<</if>>.<<else>><<pussy>>. "<<pShes>> already wet and ready to <<if $pregnancyspeechdisable is "f">>breed<<else>>mate<</if>>.<</if>>" The audience lean forward in their seats, staring at your <<genitals 1>> with a lewd thirst in their eyes.
 	<br><br>
 <</if>>
 
@@ -943,7 +943,7 @@ The audience crowd around, glad the show isn't over.
 :: Livestock Job Harper 2 Rape End
 <<effects>>
 
-"That's not what we agreed to" says Remy from the door.
+"That's not what we agreed to," says Remy from the door.
 <br>
 "I-I," the doctor stutters. "There was an accident. I apologise. I trust my next visit is still scheduled?"
 <br>
@@ -1228,7 +1228,7 @@ Remy watches from a distance. Usually watching you.
 "That's all I need," Niki says at last. "We're ready for the proper shoots."
 <br><br>
 
-"Excellent," Remy responds, walking over and picking up your leash. "This good <<girl>> is gonna be bred by a pig."
+"Excellent," Remy responds, walking over and picking up your leash. "This good <<girl>> is gonna be <<bred>> by a pig."
 <<gstress>><<stress 6>>
 <br><br>
 
@@ -1275,7 +1275,7 @@ Remy storms over and grasps your leash. <<endevent>><<npc Remy>><<person1>>"Refu
 Niki interrupts. "It's alright. I got what I needed. We're ready for the proper shoots."
 <br><br>
 
-"You hear that," Remy says in a low voice. "You're gonna get bred by a pig. Maybe that will teach you to behave."
+"You hear that," Remy says in a low voice. "You're gonna get <<bred>> by a pig. Maybe that will teach you to behave."
 <<gstress>><<stress 6>>
 <br><br>
 
@@ -1335,7 +1335,7 @@ Niki interrupts. "It's alright. I got what I needed. We're ready for the proper
 
 <<if $enemyarousal gte $enemyarousalmax>>
 
-<<beastejaculation>><<famebestiality 30 vid>>
+<<beastejaculation>><<famebestiality 30 "vid">>
 
 	"Done," Niki says, pulling back from the camera.
 	<br><br>
@@ -1350,7 +1350,7 @@ Niki interrupts. "It's alright. I got what I needed. We're ready for the proper
 	<<link [[Next|Livestock Job End]]>><<endevent>><</link>>
 
 <<else>>
-	<<famescrap 30 vid>>
+	<<famescrap 30 "vid">>
 	The <<beasttype>> squeals and backs away from you. The farmhands try to calm <<bhim>>, but they have no luck.
 	<br><br>
 
diff --git a/game/overworld-plains/loc-livestock/main.twee b/game/overworld-plains/loc-livestock/main.twee
index ba3633fb6690e0fb8bba04c6ec40b423c4784bd0..16b9d9f21371baa412d278946162f3728bd736e8 100644
--- a/game/overworld-plains/loc-livestock/main.twee
+++ b/game/overworld-plains/loc-livestock/main.twee
@@ -68,7 +68,7 @@ You are in your cell in the barn. There's a bucket of what looks like clean wate
 		<<link [[Make noise (0:10)|Livestock Noise]]>><<pass 10>><<stress -12>><<trauma -6>><<set $livestock_noise to true>><</link>><<llstress>><<ltrauma>><<lobey>>
 		<br>
 	<</if>>
-	<<link [[Sleep until dawn|Livestock Sleep]]>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><<set $phase to 0>><</link>><<ltiredness>>
+	<<link [[Sleep until dawn|Livestock Sleep]]>><<incrementautosave>><<set $phase to 0>><</link>><<ltiredness>>
 	<br><br>
 	<<link [[Settings|Livestock Settings]]>><</link>>
 	<br>
@@ -99,7 +99,8 @@ You ignore the voice. Remy picks up the hat and returns it to the person, who th
 <<endevent>>
 <<npc Eden>><<person1>>
 <<set $edenshoutrescue to 1>>
-"Eden!" You scream, startling Remy and those nearby. "Help me!" A figure pushes past the farmhands, heading your way. One tries to stop <<him>>, but is shoved aside.<br><br>
+"Eden!" You scream, startling Remy and those nearby. "Help me!" A figure pushes past the farmhands, heading your way. One tries to stop <<him>>, but is shoved aside.
+<br><br>
 
 You grab the hat and run to Eden. Most of the farmhands are occupied by cattle, but Remy chases after you, groping for the whip at <<nnpc_his "Remy">> side.
 <br><br>
@@ -213,7 +214,8 @@ It isn't long before the door to the barn opens, and the lights flicker on. Remy
 	<</if>>
 	<<gggpain>><<pain 50>>
 	<br><br>
-	Unable to take any more, you fall to the floor. The farmhands force you onto your feet, allowing for one last strike.<<gpain>>
+	Unable to take any more, you fall to the floor. The farmhands force you onto your feet, allowing for one last strike.
+	<<gpain>>
 	<br><br>
 	Remy folds <<his>> whip and approaches you. Taking your chin in <<his>> hand, you're forced to look into <<his>> shining, green eyes. "I warned you," Remy scolds. "I don't think you'll be making any more noise, right?"
 	<<if $submissive gte 1150>>
@@ -253,7 +255,7 @@ You flinch as <<his>> cold hands touch your <<breasts>>. <<He>> kneads and cares
 	"These udders are the pride of the farm," <<he>> says with a satisfied squeeze. "If only the other cattle could compete." <<He>> pulls a pot of pink gel from <<his>> pocket, and pours it between <<his>> hands. Once good and wet, <<he>> presses the tips of <<his>> fingers against your chest, and rubs. A lewd warmth spreads wherever the gel touches, leaving your skin sensitive to further touching.
 	<<garousal>><<arousal 600>><<ginsecurity "breasts_big">><<insecurity "breasts_big" 2>>
 	<br><br>
-	<<if pregnancyBellyVisible()>>
+	<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 		Taking a look and rubbing your belly, <<he>> continues, "Maybe I should put more effort in getting my other cattle pregnant like yourself."
 		<br><br>
 	<</if>>
@@ -675,7 +677,7 @@ Perhaps the farmers will treat you better if you play along. You allow the vibra
 <<orgasm>>
 <br><br>
 
-You've barely recovered form the orgasm when the vibrations become more intense. You remember the gel Remy rubbed into you, and how unnatural that warmth felt. You feel it against now as the gel works into your core, preparing your body to cum again and again.
+You've barely recovered from the orgasm when the vibrations become more intense. You remember the gel Remy rubbed into you, and how unnatural that warmth felt. You feel it against now as the gel works into your core, preparing your body to cum again and again.
 <br><br>
 
 <<link [[Next|Livestock None Give 2]]>><</link>>
@@ -704,7 +706,7 @@ The next comes faster still, almost blurring with the previous.
 
 <<effects>>
 
-Your body is wracked time and again, until the orgasm just doesn't stop. Your body is kept in a state of constant climax, the toys tormenting your body vibrating without pause without pause.
+Your body is wracked time and again, until the orgasm just doesn't stop. Your body is kept in a state of constant climax, the toys tormenting your body vibrating without pause.
 
 <<if $cow gte 6>>
 	<<if $worn.face.type.includes("gag")>>
diff --git a/game/overworld-plains/loc-livestock/widgets.twee b/game/overworld-plains/loc-livestock/widgets.twee
index 79a701a525eb880940e024c14040bf5d5dc5caeb..6385149f86a9cb8dfefe9a9348d92b6766d0a566 100644
--- a/game/overworld-plains/loc-livestock/widgets.twee
+++ b/game/overworld-plains/loc-livestock/widgets.twee
@@ -197,7 +197,7 @@ You overhear two farmhands talking behind the fence.
 	<br><br>
 <</addinlineevent>>
 
-<<if pregnancyBellyVisible()>>
+<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 	<<addinlineevent "livestock_overhear 10">>
 		"That pregnant <<girl>> is cute," a <<person>> says.
 		<br>
diff --git a/game/overworld-plains/loc-moor/abduction.twee b/game/overworld-plains/loc-moor/abduction.twee
index d7b76a7f9efb9073ff51141d910f3f25bc0d732d..19cca519f0260dbe009c69f177c2d9d83bcf2705 100644
--- a/game/overworld-plains/loc-moor/abduction.twee
+++ b/game/overworld-plains/loc-moor/abduction.twee
@@ -78,7 +78,7 @@ You don't have a lot of time to shout before it's too late.
 	<br><br>
 <</if>>
 <<if $daystate is "night">>
-	<<link [[Rest till morning|Farm Abduction wake 4]]>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><<endevent>><</link>>
+	<<link [[Rest till morning|Farm Abduction wake 4]]>><<incrementautosave>><<endevent>><</link>>
 	<br>
 <</if>>
 <!--Might be best to change this later-->
@@ -187,7 +187,7 @@ You are alone in a tent, tied to a chain buried in the earth. You hear snoring o
 	<<else>>
 		It's too much for you. You pass out.
 		<br><br>
-			
+
 		<<passout>>
 		<<link [[Next|Moor Abduction Remy Wake]]>><<end_moor_captive>><<pass 60>><</link>>
 		<br>
@@ -264,7 +264,7 @@ You're marched across the moor, enduring the ogling stares of your captors.
 		<<else>>
 			It's too much for you. Your vision fades.
 			<br><br>
-			
+
 			<<passout>>
 			<<link [[Next|Moor Abduction Remy Wake]]>><<end_moor_captive>><<pass 60>><</link>>
 			<br>
@@ -426,10 +426,10 @@ You're pushed through the gates. The entourage disperses, some carrying the cage
 You're dragged away from the entrance by a <<person1>><<person>>, and into a small barn. A <<person2>><<person>> and <<person3>><<person>> are already inside. They weren't part of the group that brought you here. They examine you.
 <br><br>
 
-<<person2>>"You weren't lying," the <<person>> says. "Good stock. Would make a fine breeder."
+<<person2>>"You weren't lying," the <<person>> says. "Good stock.<<if $speechpregnancydisable is "f">> Would make a fine breeder.<</if>>"
 <br><br>
 
-<<person3>>"Breeder?" the <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> advances on you, a metal chain and collar in <<his>> hand.
+<<person3>><<if $speechpregnancydisable is "f">>"Breeder?"<<else>>"Personally,"<</if>> the <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> advances on you, a metal chain and collar in <<his>> hand.
 <br><br>
 
 <<link [[Protest|Street Van Protest]]>><<def 1>><<stress 6>><<trauma -6>><</link>><<gstress>><<ltrauma>>
@@ -446,10 +446,10 @@ You're dragged away from the entrance by a <<person1>><<person>>, and into a sma
 You awaken on a wooden floor, a cold heavy weight around your neck. Three figures loom over you.
 <<leash 21>>
 <br><br>
-<<person2>>"You weren't lying," a <<person>> says. "Good stock. Would make a fine breeder."
+<<person2>>"You weren't lying," a <<person>> says. "Good stock.<<if $speechpregnancydisable is "f">> Would make a fine breeder.<</if>>"
 <br><br>
 
-<<person3>>"Breeder?" a <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> grasps the leash attached to your collar, and forces you to your feet. You're in a small barn. The <<person>> tugs you behind <<him>>.
+<<person3>><<if $speechpregnancydisable is "f">>"Breeder?"<<else>>"Personally,"<</if>> a <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> grasps the leash attached to your collar, and forces you to your feet. You're in a small barn. The <<person>> tugs you behind <<him>>.
 <br><br>
 
 <<link [[Next|Livestock Intro]]>><<endevent>><</link>>
@@ -1372,7 +1372,7 @@ before circling around for another pass.
 
 <<endevent>>
 <<generate1>><<generate2>>
-A <<person1>><<person>> and <<person2>><<person>> jab their weapons at the threat.
+A <<fullGroup>> jab their weapons at the threat.
 <<endevent>>
 <<npc "Great Hawk">>
 The <<beasttype>> grasps both hilts. <<bHis>> talons snap them in half.
diff --git a/game/overworld-plains/loc-moor/events.twee b/game/overworld-plains/loc-moor/events.twee
index a3101e582b4b769d2f0f4736496b3321f119c0c0..7db1eba5e47761dc3c46ea858f409a928d3f816e 100644
--- a/game/overworld-plains/loc-moor/events.twee
+++ b/game/overworld-plains/loc-moor/events.twee
@@ -435,8 +435,8 @@ in quicksand!
 		<<if random(1, 2) is 2>>
 			You call for help.
 			<br><br>
-			<<generate1>><<generate2>><<person1>>
-			<span class="green">"We're coming!"</span> shouts a voice in response. A moment later a <<person>> and <<person2>><<person>> appear over a ridge. At once, the <<person1>><<person>> lies on <<his>> belly, and crawls across the sand. <<He>> doesn't sink.
+			<<generate1>><<generate2>>
+			<span class="green">"We're coming!"</span> shouts a voice in response. A moment later a <<fullGroup>> appear over a ridge. At once, the <<person1>><<person>> lies on <<his>> belly, and crawls across the sand. <<He>> doesn't sink.
 			<br><br>
 			<<He>> grasps your shoulders. "I've got you," <<he>> says. "Kick your legs." You do so and, slowly, rise from the earth. <<He>> pulls you onto your back, and together you shuffle back to solid ground.
 			<br><br>
@@ -515,8 +515,8 @@ in quicksand!
 		<span class="red">Nothing changes.</span>
 		<<if $quicksand lt 5>>
 			You worry you might have sunk deeper.<<ggstress>><<stress 12>>
-			<br><br>
 		<</if>>
+		<br><br>
 
 		<<if $hallucinations gte 2 and $controlled is 0>>
 			<<if random(1, 2) is 2>>
@@ -581,7 +581,7 @@ The <<person2>><<person>> helps you to your feet,
 <</if>>
 <br><br>
 
-The <<person1>><<person>> and <<person2>><<person>> share a look, but don't press the matter. They bid you farewell.
+The <<fullGroup>> share a look, but don't press the matter. They bid you farewell.
 <br><br>
 
 <<link [[Next|Moor]]>><<endevent>><<set $eventskip to 1>><</link>>
@@ -825,8 +825,8 @@ You grasp the rough wall, and start to climb. You're halfway up when an outcrop
 	<<if random(1, 2) is 2>>
 		You call for help.
 		<br><br>
-		<<generate1>><<generate2>><<person1>>
-		<span class="green">"We're coming!"</span> shouts a voice in response. A moment later a <<person>> and <<person2>><<person>> peer over the top. You hear them talk, then a shuffle, before a rope curls down the hole.
+		<<generate1>><<generate2>>
+		<span class="green">"We're coming!"</span> shouts a voice in response. A moment later a <<fullGroup>> peer over the top. You hear them talk, then a shuffle, before a rope curls down the hole.
 		<br><br>
 		"Hold on tight," shouts the <<person1>><<person>>. You do so. The pair grasp the rope, and pull. They manage to get you up and over the crest. You lie back and pant.
 		<br><br>
@@ -1241,8 +1241,8 @@ You keep walking. The vehicle closes in, until heavy wheels rumble by.
 
 <<if $rng gte 51>>
 	<<generate1>><<generate2>><<person1>>
-	It slows beside you, and a <<person>> leans out. 
-	<<if pregnancyBellyVisible()>>
+	It slows beside you, and a <<person>> leans out.
+	<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 		"It's dangerous out here alone, especially for a pregnant <<girl>> like yourself,"
 	<<else>>
 		"It's dangerous out here alone,"
@@ -1728,7 +1728,7 @@ A heat travels down your spine, resting in your loins. You're filled with a desp
 <<masturbationactions>>
 <<link [[Continue|Moor Flower Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Moor Flower Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -1816,7 +1816,7 @@ A heat travels down your spine, resting in your loins. You're filled with a desp
 <br>
 <<if ($anususe is "mpenisflowerpenetrate" or $vaginause is "mpenisflowerpenetrate" or $mouth is "mpenisflowersuck")>>
 	<span class="red">You can't stop.</span>
-<<elseif $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<elseif $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Moor Phallus Plant Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -2035,7 +2035,7 @@ You turn and walk the way you came, until you find an alternative path. This one
 You continue your journey.
 <<beastNEWinit 3 cat>>
 <<if $rng gte 51 and ($bestialitydisable is "f" or $monster is 1)>>
-	
+
 	It's just a feeling, after all.
 	<br><br>
 	You hear a patter of feet behind you. You turn, and face a pair of yellow eyes. You hear more feet. You're surrounded.
@@ -2083,7 +2083,7 @@ You continue your journey.
 <<elseif $rng gte 51>>
 	You hear a patter of feet behind you. You turn, and face a pair of yellow eyes. You hear more feet. You run in a mad dash, and manage to escape, though worse for wear.<<beastescape>>
 	<br><br>
-	
+
 	<<link [[Next|Moor]]>><<set $eventskip to 1>><<endevent>><</link>>
 	<br>
 <<else>>
@@ -2624,7 +2624,7 @@ You grip the chain connecting your ankles, and pull.
 <<effects>>
 
 
-You examine the lock. It looks old, and delicate with rust. 
+You examine the lock. It looks old, and delicate with rust.
 <br><br>
 
 <<skulduggerycheck>>
@@ -2670,6 +2670,11 @@ You examine the lock. It looks old, and delicate with rust.
 	<<else>>
 		<<set $enemyarousalmax to 800>>
 	<</if>>
+	<<if $phase is 2>>
+		<<set $position to "missionary">>
+		<<set $NPCList[0].lefthand to "arms">><<set $NPCList[0].righthand to "arms">>
+		<<disablearms>><<set $leftarm to "grappled">><<set $rightarm to "grappled">>
+	<</if>>
 	<<set _randomtentacles to random(8, 12)>>
 	<<makeAbomination _randomtentacles 8 "vine" "vine" true>>
 <</if>>
@@ -2700,15 +2705,9 @@ You examine the lock. It looks old, and delicate with rust.
 		<span class="blue">The creature from before leaps onto <<his>> shoulder.</span> "You're a good wingman, little buddy." <<He>> grins. "Scored me a fuck with a cute <<girl>>." <<He>> scratches it on the back, and it chitters.
 		<<trauma 3>><<gtrauma>>
 	<<else>>
-		<<He>> picks <<himself>> up off the ground and dusts off one of <<his>> vines. "If you're ever in the area, hit me up! I'd love to do this again!" 
+		<<He>> picks <<himself>> up off the ground and dusts off one of <<his>> vines. "If you're ever in the area, hit me up! I'd love to do this again!"
 	<</if>>
 	<<He>> walks off, <<his>> vines shambling behind <<him>>.
-	<br><br>
-
-	<<tearful>> you gather yourself.
-	<<clotheson>>
-	<<endcombat>>
-	<<link [[Next|Moor]]>><<set $eventskip to 1>><</link>>
 <<elseif $enemyhealth lte 0>>
 	The <<person>> backpedals from you, looking at you warily. "Yeesh, a bit uncalled for, wouldn't you say? <<if $phase is 1>>After I saved you and all? Someone's ungrateful.<<else>>I just wanted us to feel good.<</if>>" <<His>> vines all retract away from you.
 	<br><br>
@@ -2716,16 +2715,21 @@ You examine the lock. It looks old, and delicate with rust.
 	<<if $phase is 1 and $rng gte 76>>
 		<span class="blue">The creature from before leaps onto <<his>> shoulder and chitters.</span> "Yeah, I'm fine, little buddy," the <<person>> says. "Maybe it'll work on someone else."
 	<<else>>
-		<<He>> rubs one of <<his>> vines, frowning. "Well, if you're ever in the area, hit me up. Maybe we can pick up where we left off, if you're in a better mood!" 
+		<<He>> rubs one of <<his>> vines, frowning. "Well, if you're ever in the area, hit me up. Maybe we can pick up where we left off, if you're in a better mood!"
 	<</if>>
 	<<He>> walks off, <<his>> vines trailing weakly behind <<him>>.
-	<br><br>
+<</if>>
+<br><br>
 
-	<<tearful>> you gather yourself.
-	<<clotheson>>
-	<<endcombat>>
-	<<link [[Next|Moor]]>><<set $eventskip to 1>><</link>>
+<<tearful>> you gather yourself.
+<<clotheson>>
+<<endcombat>>
+<<if $plantMoney>>
+	You pick up the coins from the ground. You make <<printmoney $plantMoney>>.
+	<<set $money += $plantMoney>><<unset $plantMoney>>
+	<br><br>
 <</if>>
+<<link [[Next|Moor]]>><<set $eventskip to 1>><</link>>
 
 :: Moor Plant Refuse
 <<set $location to "moor">><<set $outside to 1>><<effects>>
@@ -2756,3 +2760,32 @@ You shake your head.
 
 	<<link [[Next|Moor]]>><<endevent>><<set $eventskip to 1>><</link>>
 <</if>>
+
+:: Moor Plant Money
+<<effects>>
+<<if $phase is 0>>
+	<<if currentSkillValue('skulduggery') gte 700>>Not wanting to risk it, you<<else>>You<</if>> leave the money and walk away.
+	<br><br>
+
+	<<link [[Next|Moor]]>><<endevent>><<set $eventskip to 1>><</link>>
+<<else>>
+	<<generatePlant1>><<person1>>
+	You reach for the <<printmoney $plantMoney>>. As you do,
+	<<if currentSkillValue('skulduggery') gte 700>>
+		the hand grabs yours.
+		<<takeHandholdingVirginity $NPCList[0].fullDescription "rape">>
+		<br><br>
+
+		The vines
+	<<else>>
+		<span class="purple">a hand unearths itself directly under the money and grabs yours.</span>
+		<<takeHandholdingVirginity $NPCList[0].fullDescription "rape">>
+		<br><br>
+
+		Vines
+	<</if>>
+	unearth themselves and coil to life, as a <<person>> unburrows <<himself>> from the ground. "Knew someone'd fall for the shiny eventually," <<he>> whispers. <<He>> pulls you to the ground and flips on top of you.
+	<br><br>
+
+	<<link [[Next|Moor Plant Sex]]>><<set $molestationstart to 1>><<set $phase to 2>><</link>>
+<</if>>
\ No newline at end of file
diff --git a/game/overworld-plains/loc-moor/widgets.twee b/game/overworld-plains/loc-moor/widgets.twee
index 58b2ab0aa24cfa3f3e912cf3495cc2b4e5cf7833..40a61987a1babff51ec9ab3eb4185bcb9549a57e 100644
--- a/game/overworld-plains/loc-moor/widgets.twee
+++ b/game/overworld-plains/loc-moor/widgets.twee
@@ -13,7 +13,7 @@
 		Tufts of small yellow flowers grow among the heather.
 		<br><br>
 
-		<<if $tending gte 400>>
+		<<if currentSkillValue('tending') gte 400>>
 			Broccoli. They're fully grown, and inedible. Their gentle sway puts you at ease.<<lstress>><<stress -6>>
 			<br><br>
 			<<if !$plants_known.includes("broccoli")>>
@@ -30,7 +30,7 @@
 		Tufts of small white flowers grow among the heather.
 
 
-		<<if $tending gte 300>>
+		<<if currentSkillValue('tending') gte 300>>
 			Wild carrots.
 			<br><br>
 
@@ -183,7 +183,7 @@
 	<<if $rng is 2>>
 		You spot a black shape, half-buried in mud. It's an artillery shell. It looks old.
 
-		<<if $history gte 500>>
+		<<if currentSkillValue('history') gte 500>>
 			<span class="green">It can't still be active,</span> and it might be worth something to a collector.
 			<<set $antiquemoney += 100>><<museumAntiqueStatus "antiqueshell" "found">>
 			<br><br>
@@ -199,7 +199,7 @@
 		Green shoots erupt from the earth in clusters.
 		<br><br>
 
-		<<if $tending gte 400>>
+		<<if currentSkillValue('tending') gte 400>>
 			<<link [[Pick onions (0:30)|Moor Onions]]>><<pass 30>><</link>><<tendingdifficulty 400 700>>
 			<br>
 		<<else>>
@@ -310,7 +310,7 @@
 			"Good thing I was in the area," the <<person>> says. "Wouldn't want you falling victim to these little things. So..." <<He>> leans forward, licking <<his>> lips. "Don't I deserve a reward for saving you?"
 			<br><br>
 
-			<<if $deviancy gte 35>>
+			<<if $deviancy gte 35 or $backgroundTraits.includes("plantlover")>>
 				<<link [[Reward|Moor Plant Sex]]>><<set $sexstart to 1>><</link>><<deviant3>>
 			<<else>>
 				<span class="blue">You are not deviant enough to "reward" <<him>></span>.
@@ -471,7 +471,7 @@
 		Green shoots sprout from a bank.
 		<br><br>
 
-		<<if $tending gte 500>>
+		<<if currentSkillValue('tending') gte 500>>
 			<<link [[Pick garlic (0:30)|Moor Garlic]]>><<pass 30>><</link>><<tendingdifficulty 500 800>>
 			<br>
 		<<else>>
@@ -483,7 +483,7 @@
 		<br>
 	<</if>>
 <<elseif $danger gte (9900 - ($allure * $forestmod))>>
-	<<set $rng to random(1, 7)>>
+	<<set $rng to random(1, 8)>>
 	<<switch $rng>>
 	<<case 1>>
 		The ground lurches, staggering you. A crack opens beneath, widening with staggering speed.
@@ -552,8 +552,6 @@
 		<<link [[Next|Moor]]>><<set $eventskip to 1>><</link>>
 		<br>
 	<<case 6>>
-		<<moor_hunt_start>>
-	<<case 7>>
 		<<if $worn.feet.type.includes("shackle")>>
 			The boggy ground is hard to navigate with your feet restricted.<<gtiredness>><<tiredness 1>>
 			<br><br>
@@ -582,6 +580,34 @@
 			<<link [[Pick the lock|Moor Shackle Pick]]>><</link>><<skulduggerydifficulty>>
 			<br>
 		<</if>>
+	<<case 7>>
+		<<set $plantMoney to 10*random(20,100)>>
+		<<if $weather is "clear">>
+			A glint of light
+		<<else>>
+			Something shiny
+		<</if>>
+		catches your eye. You see <<printmoney $plantMoney>> in coins lying in a bush.
+		<br><br>
+
+		<<if $plantdisable is "f" and $tentacledisable is "f" and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>>
+			<<if currentSkillValue('skulduggery') gte 700>>
+				You look closer at the coins. They're lying in dirt, but you can barely make out a hand buried under the dirt, loosely holding the money. There are vines and <<plant_details>> poking out of the dirt further away.
+				<br><br>
+			<</if>>
+			<<link [[Take the money|Moor Plant Money]]>><<set $phase to 1>><</link>>
+			<br>
+			<<link [[Leave|Moor Plant Money]]>><<set $phase to 0>><</link>>
+		<<else>>
+			You step off the path and pocket the money. As you stand back up, the ground lurches, opening a fissure right where you used to be standing a few seconds ago.
+			<<ggstress>><<stress 12>>
+			<br><br>
+
+			<<set $money += $plantMoney>><<unset $plantMoney>>
+			<<link [[Next|Moor]]>><<set $eventskip to 1>><</link>>
+		<</if>>
+	<<case 8>>
+		<<moor_hunt_start>>
 	<</switch>>
 <<else>>
 	<<set $rng to random(1, 6)>>
@@ -612,7 +638,7 @@
 
 	<<case 3>>
 		An engraved pillar of stone rests atop a small hillock.
-		<<if $history gte 1000>>
+		<<if currentSkillValue('history') gte 1000>>
 			<span class="green">You've read about these.</span> They're ancient shrines. Travellers would pray for good luck.
 			<br><br>
 
diff --git a/game/overworld-town/loc-adultshop/adultshop.twee b/game/overworld-town/loc-adultshop/adultshop.twee
index b3420f9b5739bd39313eaa7bebd87568ef95f26a..cffb9eef3915f2a8fa49e9f5c76317880e340eb0 100644
--- a/game/overworld-town/loc-adultshop/adultshop.twee
+++ b/game/overworld-town/loc-adultshop/adultshop.twee
@@ -1,7 +1,7 @@
 :: Adult Shop
 
 /* Variables */
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<set $adultshopstate to "closed">>
 <<getadultshopstate>>
@@ -42,7 +42,7 @@ You are in an adult shop. A wide array of strap-ons, lingerie, fetish wear, and
 	<<pass 1 hour>>
 	<<trauma 6>><<set $stress -= 2000>>
 <<elseif $hour is 21>>
-	It's closing time. Sirris is herding everyone outside. 
+	It's closing time. Sirris is herding everyone outside.
 	<<if $exposed gte 1>>
 		Panic swells within you as you realise how exposed you'll be should Sirris find you in this state of dress.
 	<</if>>
@@ -64,8 +64,8 @@ You are in an adult shop. A wide array of strap-ons, lingerie, fetish wear, and
 					"discount on jumbo buttplugs,",
 					"we're always happy to help,",
 					"try our flavoured condoms,",
-					"number one adult shop,",
-					"number one adult shop,",
+					"number one adult shop in town,",
+					"number one adult shop in town,",
 					"here for our customers,",
 					"always nice to see you,",
 					"always nice to see you,",
@@ -126,7 +126,7 @@ You are in an adult shop. A wide array of strap-ons, lingerie, fetish wear, and
 						"don't hit each other with props,",
 						"we're always happy to help,",
 						"please respect the other patrons,",
-						"number one adult shop,",
+						"number one adult shop in town,",
 						"here for our customers,",
 						"always nice to see you,"]>>
 						<<set _sydneysays.push("recites","says flatly","intones")>>
@@ -139,7 +139,7 @@ You are in an adult shop. A wide array of strap-ons, lingerie, fetish wear, and
 						"we're always happy to help",
 						"used items are non-returnable,",
 						"this is not a brothel,",
-						"number one adult shop,",
+						"number one adult shop in town,",
 						"here for our customers,",
 						"always nice to see you,",
 						"don't creep on other patrons,",
@@ -205,7 +205,7 @@ You are in an adult shop. A wide array of strap-ons, lingerie, fetish wear, and
 			The shop is closed. You stand alone in the near darkness, lit only by a dim glow emanating from a novelty penis lamp.
 			<<if ($hour lt 16 or $hour gt $closinghour) and $adultshoptheft isnot 1>>
 					<br><br>
-					/*  */
+					/* */
 					<<if $images is 1>> <img id="icon" src="img/misc/icon/clothes/traits/sticky_fingers.png">  <</if>><<link [[Examine the cash register|Adult Shop Register]]>><</link>>
 				<</if>>
 			<br><br>
@@ -231,9 +231,9 @@ You are in an adult shop. A wide array of strap-ons, lingerie, fetish wear, and
 		<br>
 	<</if>>
 	<img id="icon" src="img/misc/icon/adultclothing.png"> <<link [[Browse clothing|Adult Shop Store]]>><<pass 1>><</link>>
-	<<if $adultshopstate isnot "closed">>
-	<br>
-	<img id="icon" src="img/misc/icon/clothes/strap-on.png"> <<link [[Browse toys|Adult Shop Menu]]>><<pass 1>><</link>>
+	<<if $adultshopstate isnot "closed" or $debug is 1>>
+		<br>
+		<img id="icon" src="img/misc/icon/clothes/strap-on.png"> <<link [[Browse toys|Adult Shop Menu]]>><<pass 1>><</link>>
 	<</if>>
 	<br><br>
 	<<exiticon>><<link [[Exit (0:01)|Elk Street]]>><<pass 1>><<clearadultshopvariables>><</link>>
@@ -288,7 +288,7 @@ Sirris claps <<nnpc_his Sirris>> hands together. "Wonderful," <<nnpc_he Sirris>>
 
 :: Adult Shop Approach Sydney
 <<npc "Sydney">>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 You approach Sydney.
 <<sydneyGreeting>>
 <br>
@@ -299,7 +299,7 @@ You approach Sydney.
 
 :: Adult Shop Approach Sydney Ask
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
 	Sydney grins. "Can't stay away?" <<he>> asks. "I know the feeling. The patrons are a handful. I could use the company, and the help. The work is mostly stacking shelves and servicing customers behind the counter." <<He>> pauses. "But not like that."
@@ -321,7 +321,7 @@ You approach Sydney.
 
 :: Adult Shop Approach Sydney Accept
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
 	"Wonderful!" Sydney says, clapping <<his>> hands together. "You can start whenever you like."
diff --git a/game/overworld-town/loc-adultshop/events.twee b/game/overworld-town/loc-adultshop/events.twee
index 43c2c965f51b4cbf42aab777bffbddf04cf3b52e..d69e36a3000686bc14fc7e131e01ace35b2198ad 100644
--- a/game/overworld-town/loc-adultshop/events.twee
+++ b/game/overworld-town/loc-adultshop/events.twee
@@ -2,7 +2,7 @@
 
 <<widget "sydneyEvent1AnalBeads">>
 	<<npc "Sydney">><<person1>>
-	<<sydneyStatusCheck>>
+	<<run statusCheck("Sydney")>>
 
 	<<if _sydneyStatus.includes("corrupt")>>
 		Something whips your <<bottom>>.
@@ -130,7 +130,7 @@
 
 <<widget "sydneyEvent2CuffedSydney">>
 	<<npc Sydney>><<person1>>
-	<<NPCStatusCheck "Sydney">>
+	<<run statusCheck("Sydney")>>
 
 	You hear a distressed voice from one of the back rooms.
 	<<if $sydneyromance is 1>>
@@ -176,7 +176,7 @@
 <</widget>>
 
 <<widget "sydneyEvent4Backrooms">>
-	<<npc Sydney>><<set $adultshopclerkworking to 1>><<set $sydneyDaily.adultshop to true>><<effects>><<NPCStatusCheck "Sydney">>
+	<<npc Sydney>><<set $adultshopclerkworking to 1>><<set $sydneyDaily.adultshop to true>><<effects>><<run statusCheck("Sydney")>>
 	Sydney approaches you.
 	<br>
 	<<if _sydneyStatus.includes("corrupt")>>
@@ -204,7 +204,7 @@
 	<</if>>
 
 :: Sydney Backroom Refuse Work
-<<set $location to "adult_shop">><<set $outside to 0>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $location to "adult_shop">><<set $outside to 0>><<effects>><<run statusCheck("Sydney")>>
 
 <<if $submissive gte 1500>>
 	"I-I don't think I can help right now. Sorry." You kiss <<his>> cheek.
@@ -229,9 +229,9 @@ The rest of the shift is uneventful. You earn <<adultShopWage>><<moneyGain _wage
 
 
 :: Sydney Backroom Invitation Enter
-<<set $outside to 0>><<set $location to "adult_shop">><<set $sydneyDaily.adultshop to true>><<effects>><<npc Sydney>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<set $sydneyDaily.adultshop to true>><<effects>><<npc Sydney>><<run statusCheck("Sydney")>>
 
-You enter the store. Sydney looks up from stocking shelves, beaming when <<he>> sees you. 
+You enter the store. Sydney looks up from stocking shelves, beaming when <<he>> sees you.
 <br>
 <<if _sydneyStatus.includes("corrupt")>>
 	"Hey, I need your help with replenishing stock," <<he>> playfully tugs on your arm. "Shouldn't take much time, let's go."
@@ -248,7 +248,7 @@ Sirris winks at you, watching the exchange with a glint in <<nnpc_his Sirris>> e
 
 
 :: Sydney Backroom Enter Refuse
-<<set $location to "adult_shop">><<set $outside to 0>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $location to "adult_shop">><<set $outside to 0>><<effects>><<run statusCheck("Sydney")>>
 
 <<if $submissive gte 1500>>
 	"I-I don't think I can help right now. Sorry." You kiss <<his>> cheek.
@@ -270,7 +270,7 @@ Sirris winks at you, watching the exchange with a glint in <<nnpc_his Sirris>> e
 
 
 :: Sydney Backroom Intro
-<<set $location to "adult_shop">><<set $outside to 0>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $location to "adult_shop">><<set $outside to 0>><<effects>><<run statusCheck("Sydney")>>
 
 <<if $submissive gte 1500>>
 	"O-okay," you say. "Can you show me where it is?"
@@ -291,7 +291,7 @@ Boxes of various sizes occupy most of the room, as well as storage equipment her
 <<link [[Vault Sydney|Sydney Backroom Lifted]]>><</link>>
 
 :: Sydney Backroom Lifted
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 You mount Sydney's shoulders, and <<he>> lifts you to the top shelf. You grab the box. It's quite heavy.
 <br><br>
@@ -322,7 +322,7 @@ You mount Sydney's shoulders, and <<he>> lifts you to the top shelf. You grab th
 <</if>>
 
 :: Sydney Backroom Lifted Success
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<if _sydneyStatus.includes("corrupt")>>
 	Sydney takes the box with a wink, tucking it under <<his>> arm.
@@ -362,7 +362,7 @@ You mount Sydney's shoulders, and <<he>> lifts you to the top shelf. You grab th
 <br>
 
 :: Sydney Backroom Lifted Fall
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 Sydney sits up with a groan.
 <<if _sydneyStatus.includes("corrupt")>>
@@ -453,7 +453,7 @@ Sydney sits up with a groan.
 <</if>>
 
 :: Sydney Backroom Lifted Up
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 You ignore Sydney's <<if _sydneyStatus.includes("corrupt")>>goading<<else>>gawking<</if>>. You get up and pull <<him>> to <<his>> feet.
 <br><br>
@@ -469,7 +469,7 @@ You ignore Sydney's <<if _sydneyStatus.includes("corrupt")>>goading<<else>>gawki
 <br>
 
 :: Sydney Backroom Lifted Encourage
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<if $submissive gte 1150>>
 	You nudge Sydney's head upright with your thigh.
@@ -514,7 +514,7 @@ You ignore Sydney's <<if _sydneyStatus.includes("corrupt")>>goading<<else>>gawki
 
 
 :: Sydney Backroom Lifting
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<if $submissive gte 1150>>
 	You get down on hands and knees. "I... I think I can lift you instead. May I?"
@@ -585,7 +585,7 @@ rise from the ground.
 <</if>>
 
 :: Sydney Backroom Lifting Success
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<if _sydneyStatus.includes("corrupt")>>
 	Sydney tucks the box under <<his>> arm.
@@ -616,7 +616,7 @@ rise from the ground.
 <br>
 
 :: Sydney Backroom Lifting Fall
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 Sydney comes to <<his>> senses.
 <<if $sydneyromance is 1>>
@@ -690,7 +690,7 @@ Sydney comes to <<his>> senses.
 <</if>>
 
 :: Sydney Backroom Lifting Shove
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 You push up with all your might, throwing Sydney off your head. <<He>> yelps as <<hes>> launched backwards, <<his>> fall cushioned by a bed of toys.
 <br><br>
@@ -702,7 +702,7 @@ You push up with all your might, throwing Sydney off your head. <<He>> yelps as
 <br>
 
 :: Sydney Backroom Lifting Roll
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 You flip onto your back, without disturbing Sydney's position. <<He>> jerks away on instinct.
 <<if $submissive gte 1150>>
@@ -770,7 +770,7 @@ You flip onto your back, without disturbing Sydney's position. <<He>> jerks away
 <</if>>
 
 :: Sydney Backroom Lifting Lick
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<if $pronoun is "f">>
 	You run your tongue along Sydney's thigh, skimming <<his>> <<sydneyGenitals>>.
@@ -778,7 +778,6 @@ You flip onto your back, without disturbing Sydney's position. <<He>> jerks away
 	You bite down on <<his>> belt and pull, <span class="lewd">revealing <<his>> <<sydneyGenitals>>.</span> You flick your tongue against <<if _sydneyChastity>><<his>> thigh<<else>>the tip<</if>>.
 <</if>>
 <<He>> shivers in pleasure, nearly toppling off you, but you
-<br><br>
 
 <<if $submissive gte 1150>>
 	curl your knees to steady <<him>>.
@@ -816,7 +815,7 @@ You flip onto your back, without disturbing Sydney's position. <<He>> jerks away
 <br>
 
 :: Sydney Backroom Lifting Still
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<if _sydneyStatus.includes("corrupt")>>
 	You mumble into Sydney's crotch. <<He>> scoffs.
@@ -873,7 +872,7 @@ You flip onto your back, without disturbing Sydney's position. <<He>> jerks away
 <</if>>
 
 :: Sydney Backroom Lifting No Sex
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 You wrench your head away from Sydney's crotch. <<He>> pouts and crosses <<his>> arms. "Spoilsport."
 <br><br>
@@ -894,7 +893,7 @@ You wrench your head away from Sydney's crotch. <<He>> pouts and crosses <<his>>
 <br>
 
 :: Sydney Backroom Lift Sex
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
@@ -1000,7 +999,7 @@ You wrench your head away from Sydney's crotch. <<He>> pouts and crosses <<his>>
 <</if>>
 
 :: Sydney Backroom Lift Sex Finish
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -1058,7 +1057,7 @@ You wrench your head away from Sydney's crotch. <<He>> pouts and crosses <<his>>
 <br>
 
 :: Sydney Backroom Lift End
-<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "adult_shop">><<effects>><<run statusCheck("Sydney")>>
 
 You help Sydney gather up the scattered merchandise and return to the store proper.
 <br><br>
@@ -1103,7 +1102,7 @@ You try to turn around but a <<person2>><<person>> rests a hand on your shoulder
 <<link [[Refuse|Sirris Shop Assistant Creeps Refuse]]>><</link>>
 <br>
 <<if $promiscuity gte 75 and $submissve gte 1150>>
-    <<link [[Agree|Sirris Shop Assistant Creeps Agree]]>><</link>>
+	<<link [[Agree|Sirris Shop Assistant Creeps Agree]]>><</link>>
 <</if>>
 
 
@@ -1208,7 +1207,7 @@ The <<person2>><<person>> snatches a handful of your hair and drags you into an
 You give a solemn nod.
 <</if>>
 <br><br>
-<<if $famerape gte 600 or $famesex gte 600>>
+<<if $fame.rape gte 600 or $fame.sex gte 600>>
 	<<person1>>
 	"I knew a <<slut>> like you would be into this. Everyone says you're like a bitch in heat. Now down on your knees for us, hot stuff!"
 	<<person1>><<He>> chuckles, licking <<his>> lips while cracking <<his>> flog against <<his>> palm in anticipation.
@@ -1229,7 +1228,7 @@ You give a solemn nod.
 <<set $location to "adult_shop">><<set $outside to 0>><<effects>>
 
 The list is long, yet you methodically work through it, collecting items from the stock room to restock shelves, and retrieving customer orders.
-<<if $danceskill gte 600>>
+<<if currentSkillValue('danceskill') gte 600>>
 	You dodge and weave through customers as they attempt to pinch, prod, and grope at you while carrying about your duties.
 <<else>>
 	<span class="red">Your attempts to dodge the groping and pinching masses prove futile.</span> You struggle to avoid the worst of them.<<stress 4>><<pain 2>><<arousal 400>><<gstress>><<gpain>><<garousal>>
@@ -1292,7 +1291,7 @@ You earn <<adultShopWage>><<moneyGain _wage>>.
 	<<set $enemytrust += 100>>
 	<<set $enemyanger +=50>>
 	<<set $NPCList[0].health to 40>>
-	<<set $enemyhealth to  $NPCList[0].health>>
+	<<set $enemyhealth to $NPCList[0].health>>
 	You follow Whitney out behind a dumpster.
 	<br><br>
 <</if>>
@@ -1331,7 +1330,7 @@ You earn <<adultShopWage>><<moneyGain _wage>>.
 <<elseif $enemyhealth lte 0>>
 	Whitney recoils in pain. "What the fuck did you do that for? I thought we were having fun. Bitch." <<He>> storms off.
 <<else>>
-	<<He>> backs away, disappointment obvious on his face. "Fucking tease. See you later, slut."
+	<<He>> backs away, disappointment obvious on <<his>> face. "Fucking tease. See you later, slut."
 <</if>>
 <br><br>
 
@@ -1454,7 +1453,7 @@ You earn <<adultShopWage>><<moneyGain _wage>>.<<npcincr Sirris love 5>><<glove "
 	<<else>>
 		You sigh with a smile. "I don't think I could stop you if I wanted to."
 	<</if>>
-    <br><br>
+	<br><br>
 
 	<<set $sydneyAnalRosary to true>>
 	Sydney's grin widens. "I'm not kidding. I'm really gonna do it."
@@ -1485,7 +1484,7 @@ You earn <<adultShopWage>><<moneyGain _wage>>.<<npcincr Sirris love 5>><<glove "
 <<link [[Next|Adult Shop]]>><<endevent>><</link>>
 
 :: Adult Shop Sydney Beads Sex
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
 	<<set $sexstart to 0>>
@@ -1651,7 +1650,7 @@ Glancing over <<his>> shoulder, <<he>> grasps the back of your head and brings y
 
 :: Temple Sydney Rosary
 <<set $outside to 0>><<set $location to "temple">><<temple_effects>><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $phase is 2>>
 	You stroll through the temple grounds with Sydney,
@@ -1762,7 +1761,7 @@ Glancing over <<his>> shoulder, <<he>> grasps the back of your head and brings y
 
 :: Adult Shop Sydney Cuffs
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $phase is 1>>
 	You enter the back room to find Sydney in a compromising position.
@@ -1809,25 +1808,25 @@ Glancing over <<his>> shoulder, <<he>> grasps the back of your head and brings y
 	You decide Sydney can handle whatever <<hes>> gotten <<himself>> into on <<his>> own. Sure enough, <<he>> soon emerges from the back room, looking no worse for wear.
 	<br><br>
 
-    <<if $sydneyromance is 1>>
-        <<if _sydneyStatus.includes("corrupt")>>
-            <<He>> tosses you a pair of pink fuzzy handcuffs. <<He>> looks upset. "You can be really dense, you know that?" <<He>> shoves past you, leaving you bewildered.
-        <<else>>
-            <<He>> approaches with a pout. "Where were you? I've been..." <<He>> cuts off, <<his>> face turning red. "I've been, um, hard at work. That's all."
-        <</if>>
-    <<else>>
-        <<He>> rubs <<his>> wrists. "Sorry, I..." <<He>> barks an awkward cough. "Just testing the products. Everything's in order."
-    <</if>>
-    <br><br>
+	<<if $sydneyromance is 1>>
+		<<if _sydneyStatus.includes("corrupt")>>
+			<<He>> tosses you a pair of pink fuzzy handcuffs. <<He>> looks upset. "You can be really dense, you know that?" <<He>> shoves past you, leaving you bewildered.
+		<<else>>
+			<<He>> approaches with a pout. "Where were you? I've been..." <<He>> cuts off, <<his>> face turning red. "I've been, um, hard at work. That's all."
+		<</if>>
+	<<else>>
+		<<He>> rubs <<his>> wrists. "Sorry, I..." <<He>> barks an awkward cough. "Just testing the products. Everything's in order."
+	<</if>>
+	<br><br>
 	The rest of the shift passes without incident.
-    You earn <<adultShopWage>><<moneyGain _wage>>.<<npcincr Sirris love 1>><<glove "Sirris">>
-    <br><br>
-    <<link [[Return|Adult Shop]]>><<endevent>><</link>>
+	You earn <<adultShopWage>><<moneyGain _wage>>.<<npcincr Sirris love 1>><<glove "Sirris">>
+	<br><br>
+	<<link [[Return|Adult Shop]]>><<endevent>><</link>>
 <</if>>
 
 :: Adult Shop Sydney Cuffs Free
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $phase is 1>>
 	You pick the key off the ground and unlock Sydney's cuffs. <<He>> looks surprised<<if $awarelevel gte 1>>, and a little disappointed<</if>>.
@@ -1886,7 +1885,7 @@ Glancing over <<his>> shoulder, <<he>> grasps the back of your head and brings y
 
 :: Adult Shop Sydney Cuffs Tease
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 You tap your chin in mock thought.
 <<if $submissive gte 1150>>
@@ -1946,7 +1945,7 @@ Sydney tries to explain the situation, but <<his>> stammering fades into the dis
 <br>
 
 :: Adult Shop Sydney Cuffed Sex
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
 	<<set $sexstart to 0>>
@@ -1975,7 +1974,7 @@ Sydney tries to explain the situation, but <<his>> stammering fades into the dis
 
 	You creep up to Sydney like a hunt<<if $player.gender_appearance is "m">>er<<else>>ress<</if>> sizing up <<pher>> prey.
 	<<if _sydneyStatus.includes("corrupt")>>
-		<<He>> laughs and ensares your waist between <<his>> legs, pulling your body against <<his>>.
+		<<He>> laughs and ensnares your waist between <<his>> legs, pulling your body against <<hers>>.
 	<<else>>
 		<<He>> feigns a struggle, giggling as <<he>> tries to push you away before "submitting" to you.
 	<</if>>
@@ -2002,7 +2001,7 @@ Sydney tries to explain the situation, but <<his>> stammering fades into the dis
 
 :: Adult Shop Sydney Cuffed Finish
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -2092,7 +2091,7 @@ Sydney tries to explain the situation, but <<his>> stammering fades into the dis
 <br>
 
 :: Adult Shop Sydney Uncuffed Sex
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
 	<<set $sexstart to 0>>
@@ -2133,7 +2132,7 @@ Sydney tries to explain the situation, but <<his>> stammering fades into the dis
 
 :: Adult Shop Sydney Uncuffed Finish
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -2188,7 +2187,7 @@ Sydney tries to explain the situation, but <<his>> stammering fades into the dis
 
 :: Adult Shop Sydney Bartering
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 You approach Sydney and the <<person>>. As you get close, you realise they're not arguing over prices.
 <br><br>
@@ -2213,7 +2212,7 @@ You approach Sydney and the <<person>>. As you get close, you realise they're no
 		<br>
 		Sydney pauses. "Are you sure your <<print _text_output>> can-"
 		<br>
-		The <<person>> <<print either("jabs Sydney in the chest with a dildo","points a dildo at Sydney with an accusatory glare")>>. "You stay out of my personal life, kid."
+		The <<person>> <<print either("jabs Sydney in the chest with a dildo","points a dildo at Sydney with an accusatory glare")>>. "You stay out of my personal life, brat."
 	<<elseif $NPCList[0].vagina isnot "none">>
 		"You calling my cunt weak?" the <<person2>><<person>> snaps over <<his>> shoulder.
 		<br>
@@ -2241,6 +2240,7 @@ You approach Sydney and the <<person>>. As you get close, you realise they're no
 	Sydney is left gawking.
 	<br><br>
 
+	<<person1>>
 	"It's impossible," <<he>> mutters. "No one could fit that in there. Could they?" <<He>> looks to you, distressed.
 	<br><br>
 
@@ -2252,7 +2252,7 @@ You approach Sydney and the <<person>>. As you get close, you realise they're no
 
 :: Adult Shop Sydney Bartering 2
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $phase is 3>>
 	You step up to Sydney's side. The <<person>> shoots you an annoyed glance.
@@ -2273,9 +2273,9 @@ You approach Sydney and the <<person>>. As you get close, you realise they're no
 	<<else>>
 		"I hope this customer isn't giving you trouble," you say.
 		<br>
-		The <<person>> scoffs. "<<person1>><<He>> started harassing me first."
+		The <<person>> scoffs. <<person1>>"<<He>> started harassing me first."
 		<br>
-		Sydney laughs. "<<person2>><<Him>>? Giving me trouble? <<He>> doesn't have the nerve."
+		Sydney laughs. <<person2>>"<<Him>>? Giving me trouble? <<He>> doesn't have the nerve."
 	<</if>>
 	<br><br>
 
@@ -2325,7 +2325,7 @@ You approach Sydney and the <<person>>. As you get close, you realise they're no
 		"Maybe <<he>> was exaggerating," you say. "I wouldn't put too much thought into it."
 		<br><br>
 
-		Sydney stares ahead, pensive, then smiles and nods. "You're right. 
+		Sydney stares ahead, pensive, then smiles and nods. "You're right.
 	<<elseif $submissive lte 850>>
 		You shrug dismissively. "Nah, forget about it. <<He>> was just trying to show off."
 		<br><br>
@@ -2503,7 +2503,7 @@ You bolt out the door after <<nnpc_him Whitney>>. <<nnpc_He "Whitney">> knocks o
 <<set $location to "adult_shop">><<set $outside to 0>><<effects>>
 
 <<npc Sydney>><<person1>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 You return to Sydney at the counter.
 <br><br>
 <<if $phase is 0>>
@@ -2552,9 +2552,9 @@ You corner <<him>> in an alleyway.
 A <<person>> approaches the counter with a handful of dildos. "Hey <<girl>>. I haven't used one of these things before. I need a demonstration."
 <br><br>
 <<if $promiscuity gte 34 and $awareness gte 200>>
-    Offer lesson
-    <<link [[Offer to show them|Adult Shop Dildo Lesson Seduction]]>><<set $seductiondifficulty to 8000>><</link>><<seductiondifficulty>>
-    <br>
+	Offer lesson
+	<<link [[Offer to show them|Adult Shop Dildo Lesson Seduction]]>><<set $seductiondifficulty to 8000>><</link>><<seductiondifficulty>>
+	<br>
 <</if>>
 deflect
 
@@ -2578,11 +2578,11 @@ deflect
 
 You lean closer to the <<person>>.
 <<if $submissive lt 500>>
-    "Hmph, come on dummy. I'll show you everything," you jeer, nodding towards the back room.
+	"Hmph, come on dummy. I'll show you everything," you jeer, nodding towards the back room.
 <<elseif $submissive gte 1500>>
-    "Let me show you. I'll be your good little helper," you coo into <<his>> ear.
+	"Let me show you. I'll be your good little helper," you coo into <<his>> ear.
 <<else>>
-    "Do you need a... private demonstration? There's a backroom where we can play," you whisper.
+	"Do you need a... private demonstration? There's a backroom where we can play," you whisper.
 <</if>>
 <<promiscuity2>>
 <<if $seductionrating gte $seductionrequired>>
@@ -2591,18 +2591,18 @@ You lean closer to the <<person>>.
 	<<link [[Next|Adult Shop Dildo Lesson Sex]]>><<giveNPCsextoy 0 "dildo">><<set $sexstart to 1>><</link>>
 	<br>
 <<else>>
-    <<if random(0,2) is 0>>
-	    "I-It was nice meeting you," <<he>> says. <<He>> walks away, leaving the items on the counter.
-        <<gstress>><<stress 3>>
-    <<else>>
-        "What? I just need cleaning instructions.<<print either(" Freak!\" <<He>> storms out of the store.","\" Aghast, <<he>> hurries from the store.","\" Wide-eyed, <<he>> drops the items and backs out of the store.")>>
-        <<gstress>><<gtrauma>><<lcontrol>><<control -5>><<stress 5>><<trauma 5>>
+	<<if random(0,2) is 0>>
+		"I-It was nice meeting you," <<he>> says. <<He>> walks away, leaving the items on the counter.
+		<<gstress>><<stress 3>>
+	<<else>>
+		"What? I just need cleaning instructions.<<print either(" Freak!\" <<He>> storms out of the store.","\" Aghast, <<he>> hurries from the store.","\" Wide-eyed, <<he>> drops the items and backs out of the store.")>>
+		<<gstress>><<gtrauma>><<lcontrol>><<control -5>><<stress 5>><<trauma 5>>
 	<</if>>
-    <br><br>
-    The rest of the shift passes without incident. You earn <<adultShopWage>><<moneyGain _wage>>.
-    <br><br>
-    <<endevent>>
-    <<link [[Return|Adult Shop]]>><</link>>
+	<br><br>
+	The rest of the shift passes without incident. You earn <<adultShopWage>><<moneyGain _wage>>.
+	<br><br>
+	<<endevent>>
+	<<link [[Return|Adult Shop]]>><</link>>
 <</if>>
 
 
@@ -2827,7 +2827,7 @@ A voice from outside grabs <<his>> attention. "I'm sorry. I need to take this."
 
 
 :: Adult Shop Passout Bondage Sydney
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
 <<npc Sydney 2>>
 
@@ -2848,7 +2848,7 @@ Sydney trots up to the <<person>>, hand outstretched. You watch <<person2>><<him
 
 
 :: Adult Shop Passout Bondage Help
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
 
 You bound towards Sydney, straining against your bondage. <<He>> yelps and jumps back.
@@ -2861,7 +2861,7 @@ You bound towards Sydney, straining against your bondage. <<He>> yelps and jumps
 <</if>>
 <br><br>
 
-The <<person1>><<person>> laughs nervously. "B-bad <<girl>>. Leave the nice young <<person2>><<if $pronoun is "m">>fellow<<else>>lady<</if>> alone."
+The <<person1>><<person>> laughs nervously. "B-bad <<girl>>. Leave the nice <<person2>><<if $pronoun is "m">>fellow<<else>>lady<</if>> alone."
 <br><br>
 
 <<if $sydneyromance is 1>>
@@ -2896,7 +2896,7 @@ The <<person1>><<person>> laughs nervously. "B-bad <<girl>>. Leave the nice youn
 
 
 :: Adult Shop Passout Bondage Saved
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
 
 <<if _sydneyStatus.includes("corrupt")>>
@@ -2977,7 +2977,7 @@ After some time, you decide to head back to the shop. <<He>> seems reluctant to
 
 <<if $alarm is 1>>
 	<<set $rescued += 1>>
-	Sirris runs out after hearing all the noise. "What's all this? Get off <<pher>>!" <<nnpc_He Sirris>> shouts at the <<person>>. The <<personsimple>> climbs to <<his>> feet and runs, casting you an angry glare.
+	Sirris runs out after hearing all the noise. "What's all this? Get off <<phim>>!" <<nnpc_He Sirris>> shouts at the <<person>>. The <<personsimple>> climbs to <<his>> feet and runs, casting you an angry glare.
 	<br>
 	<<endcombat>>
 	<<clotheson>>
@@ -3005,7 +3005,7 @@ After some time, you decide to head back to the shop. <<He>> seems reluctant to
 	<<endcombat>>
 	<<npc Sirris>><<person1>>
 
-	<<if  $NPCName[$NPCNameList.indexOf("Sirris")].love lte 20>>
+	<<if $NPCName[$NPCNameList.indexOf("Sirris")].love lte 20>>
 		Sirris runs out after hearing all the noise. "What's all this?" <<he>> demands. <<He>> shakes <<his>> head when <<he>> sees you. "I'm sorry, but you'll have to clean this up. You can expect the damage to come out of your pay."
 		<br><br>
 		<<tearful>> you spend the remainder of your shift cleaning up the scattered merchandise.<<gstress>><<gtrauma>>
@@ -3067,7 +3067,7 @@ After some time, you decide to head back to the shop. <<He>> seems reluctant to
 <</if>>
 
 :: Adult Shop Customer Dildo Flirt Sydney
-<<sydneyStatusCheck>>
+<<run statusCheck("Sydney")>>
 <<generateAdultShopCustomer 1>><<npc Sydney 2>><<person1>>
 <<set _toy to randomSexToy("all")>>
 As you enter the shop, Sydney waves at you from behind the counter. A <<person>> browses the merchandise but stops when <<he>> sees you. In an attempt to keep it casual, <<he>> walks over.
diff --git a/game/overworld-town/loc-adultshop/gift-strap-ons.twee b/game/overworld-town/loc-adultshop/gift-strap-ons.twee
index 00e8dc1b6a5dca637f5ef34515fa67d740b1c41e..a7e28cd7e2e78da2c2dc65c3687ce89185743b24 100644
--- a/game/overworld-town/loc-adultshop/gift-strap-ons.twee
+++ b/game/overworld-town/loc-adultshop/gift-strap-ons.twee
@@ -7,29 +7,29 @@ You place the _toy on Alex's desk. <<He>> swivels in <<his>> chair to face you,
 
 Setting the phone down, <<he>> grabs the _toy and gives it a good look.
 <<if $NPCName[$NPCNameList.indexOf("Alex")].dom gte 30>>
-    <<He>> whistles. "Nice choice." <<He>> pauses, flashing you a smirk. "For a newbie, anyway."
-    <br><br>
+	<<He>> whistles. "Nice choice." <<He>> pauses, flashing you a smirk. "For a newbie, anyway."
+	<br><br>
 
-    <<He>> gets up from <<his>> desk, smacking your <<bottom>> with the _toy as <<he>> passes. "Hope you know what you're getting into," <<he>> whispers. "You're in for a wild ride, cow<<girl>>."
-    <br><br>
+	<<He>> gets up from <<his>> desk, smacking your <<bottom>> with the _toy as <<he>> passes. "Hope you know what you're getting into," <<he>> whispers. "You're in for a wild ride, cow<<girl>>."
+	<br><br>
 
-    <<He>> places it in a drawer near <<his>> bed before returning back to work, whistling a tune.
+	<<He>> places it in a drawer near <<his>> bed before returning back to work, whistling a tune.
 <<elseif $NPCName[$NPCNameList.indexOf("Alex")].dom lte -30>>
-    <<He>> scratches <<his>> head sheepishly. "You've got some wild ideas." <<He>> stares at the _toy thoughtfully, and lets out a quiet chuckle.
-    <br><br>
+	<<He>> scratches <<his>> head sheepishly. "You've got some wild ideas." <<He>> stares at the _toy thoughtfully, and lets out a quiet chuckle.
+	<br><br>
 
-    <<He>> rises from the desk with a sigh. "Hell, if you think it's a good idea, you're probably right."
-    <br><br>
+	<<He>> rises from the desk with a sigh. "Hell, if you think it's a good idea, you're probably right."
+	<br><br>
 
-    <<He>> places it in a drawer near <<his>> bed before returning to work, blushing.
+	<<He>> places it in a drawer near <<his>> bed before returning to work, blushing.
 <<else>>
-    "You've got some wild ideas, y'know." <<He>> licks <<his>> lips. "I like 'em."
-    <br><br>
+	"You've got some wild ideas, y'know." <<He>> licks <<his>> lips. "I like 'em."
+	<br><br>
 
-    <<He>> rises from <<his>> desk, bopping you on the head with the _toy as <<he>> passes. "Hope you know how to ride, cow<<girl>>."
-    <br><br>
+	<<He>> rises from <<his>> desk, bopping you on the head with the _toy as <<he>> passes. "Hope you know how to ride, cow<<girl>>."
+	<br><br>
 
-    <<He>> places it in a drawer near <<his>> bed before returning to work, grinning.
+	<<He>> places it in a drawer near <<his>> bed before returning to work, grinning.
 <</if>>
 <br><br>
 
@@ -91,9 +91,8 @@ Setting the phone down, <<he>> grabs the _toy and gives it a good look.
 
 :: Gift Strap-on Sydney Counter
 <<set $outside to 0>><<effects>>
-<<giftSexToys "Sydney">>
 
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set _sextoy to "strap-on">>
 You place the _sextoy on the counter.
 <<if _sydneyStatus.includes("corrupt")>>
@@ -169,7 +168,7 @@ You place the _sextoy on the counter.
 
 		"Sorry, but I'd be a bit... encumbered." <<He>> taps <<his>> knuckles against <<his>> chastity belt. "It's an interesting idea, though."
 	<<elseif _sydneyStatus.includes("Lust")>>
-		<<He>> stares at it thoughtfully. Finally, he murmurs, "I... I guess it won't hurt to try something new."
+		<<He>> stares at it thoughtfully. Finally, <<he>> murmurs, "I... I guess it won't hurt to try something new."
 		<br><br>
 
 		<<He>> takes the _sextoy and shoves it to the bottom of <<his>> school bag. <<He>> looks conflicted, but flashes you an uneasy smile all the same.
@@ -184,13 +183,13 @@ You place the _sextoy on the counter.
 <br><br>
 <<sydneySchedule>>
 <<set _giftPassage to (_sydney_location is "shop" ? "Adult Shop" : "Library Rental Counter")>>
-<<link [[Next|_giftPassage]]>><</link>>
+<<link [[Next|_giftPassage]]>><<endevent>><</link>>
 
 
 :: Gift Strap-on Sydney Temple
 <<set $outside to 0>><<effects>>
 <<giftSexToys "Sydney">>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set _sextoy to "strap-on">>
 
 You furtively hold the _sextoy beneath the pew, tapping it against Sydney's leg.
@@ -270,7 +269,7 @@ You furtively hold the _sextoy beneath the pew, tapping it against Sydney's leg.
 
 		"Sorry, but I'd be a bit... encumbered." <<He>> taps <<his>> knuckles against <<his>> chastity belt. "It's an interesting idea, though."
 	<<elseif _sydneyStatus.includes("Lust")>>
-		<<He>> stares at it thoughtfully. Finally, he murmurs, "I... I guess it won't hurt to try something new."
+		<<He>> stares at it thoughtfully. Finally, <<he>> murmurs, "I... I guess it won't hurt to try something new."
 		<br><br>
 
 		<<He>> bunches <<his>> robe up around the _sextoy, struggling to conceal it. <<He>> looks conflicted, but flashes you an uneasy smile all the same.
@@ -290,11 +289,11 @@ You furtively hold the _sextoy beneath the pew, tapping it against Sydney's leg.
 <<effects>>
 
 <<if $submissive gte 1150>>
-    Your hands tremble as you hold out a package wrapped with a ribbon for Kylar. <<His>> face lights up as <<he>> gingerly takes it.
+	Your hands tremble as you hold out a package wrapped with a ribbon for Kylar. <<His>> face lights up as <<he>> gingerly takes it.
 <<elseif $submissive lte 850>>
-    You swap out Kylar's sketchpad for a package wrapped with a ribbon. <<He>> tries to reach for it, but then notices the package. <<His>> face lights up.
+	You swap out Kylar's sketchpad for a package wrapped with a ribbon. <<He>> tries to reach for it, but then notices the package. <<His>> face lights up.
 <<else>>
-    You pass a package wrapped with a ribbon next to Kylar's sketchpad. <<He>> drops <<his>> pencil, and gingerly takes it. <<He>> seems elated.
+	You pass a package wrapped with a ribbon next to Kylar's sketchpad. <<He>> drops <<his>> pencil, and gingerly takes it. <<He>> seems elated.
 <</if>>
 <br><br>
 
diff --git a/game/overworld-town/loc-adultshop/intro.twee b/game/overworld-town/loc-adultshop/intro.twee
index 024e74f7685b5dd454da8211b9698201071ce517..2d708a165d7c4cfa2434fae6fd3b5c5a820cd502 100644
--- a/game/overworld-town/loc-adultshop/intro.twee
+++ b/game/overworld-town/loc-adultshop/intro.twee
@@ -1,7 +1,7 @@
 :: Dilapidated Shop
 <<set $outside to 0>><<set $location to "adult_shop">><<effects>>
 <<getadultshopstate>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $adultshopstate is "sydney" and $weekday is 6>>
 	<<if $adultshopintro isnot 1>>
 		<<set $adultshopintro to 1>>
@@ -10,7 +10,7 @@
 			You pass by a run-down shop. The windows are boarded over, but the door stands open. Someone steps out, carrying an empty crate. It's Sirris. <<npc Sirris>><<person1>> <<He>> looks surprised to see you.
 			<br><br>
 			"I haven't seen you since the start of the school year. I was beginning to think you transferred. In any case, welcome to my shop-to-be," <<he>> says, placing the crate at <<his>> feet and reaching inside. "It was a hobby at first, but a friend suggested there'd be a market for them."
-			<br><br>"		
+			<br><br>"
 		<<else>>
 			<<npc Sirris>>
 			<<person1>>
@@ -54,7 +54,7 @@
 				"Good to see you," <<he>> says. "Here to help?"
 			<<else>>
 				<<He>> smiles bashfully. "Here to help?"
-			<</if>>		
+			<</if>>
 		<</if>>
 		<br><br>
 		<i>The adult shop will open with or without your help, but your help will speed the process. Once finished, you'll have access to the shop's stock, but so will the townsfolk.</i>
@@ -67,9 +67,9 @@
 		<br>
 		<<link [[Leave|Elk Street]]>><<endevent>><</link>>
 		<br>
-	<</if>>		
+	<</if>>
 <<else>>
-	You pass by a rundown shop. The windows are boarded over. Peeking through a gap in the boards, you see the floor littered with pornographic magazines and VHS tapes.
+	You pass by a run-down shop. The windows are boarded over. Peeking through a gap in the boards, you see the floor littered with pornographic magazines and VHS tapes.
 	<br><br>
 
 	<<link [[Leave|Elk Street]]>><</link>>
@@ -115,7 +115,7 @@
 	<<person2>>
 	Sydney steps from the shop.
 <</if>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<He>> smiles at you. "Hey," <<he>> says. "It's nice to see you. I'm just helping out here."
 <br>
 "I've asked your classmate if <<pshe>>'s interested in helping us."
@@ -147,7 +147,7 @@
 
 :: Dilapidated Help
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $adultshopprogress gte 15>>
 	You help Sydney stock the shelves while Sirris works in the back. You see sparks fly past a crack in the door.
 	<br><br>
@@ -168,7 +168,7 @@
 			<<link [[Suggest opening it|Dilapidated Suggest]]>><</link>>
 			<br>
 			<<link [[Let Sydney by|Dilapidated Let]]>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			Sydney waits a few moments before retrieving the delivery. <<He>> carries it in both hands as <<he>> walks by you, heading for the back room.
 			<br><br>
@@ -181,7 +181,7 @@
 		<<if _sydneyStatus.includes("corrupt")>>
 			<<Hes>> fascinated by the range of commodities for sale, particularly the BDSM items. The whips, riding crops, bindings. "Implements of torture in the wrong hands," <<he>> claims. "I've seen similar at the temple."
 			<br><br>
-		
+
 			<<link [[Try on a collar and tease Sydney|Dilapidated Collar Corrupt]]>><<npcincr Sydney purity -2>><<npcincr Sydney lust 5>><</link>><<set _lustincrdisplay to 1>><<lspurity>><<glust>>
 			<br>
 			<<link [[Keep working|Dilapidated Collar Refuse]]>><</link>>
@@ -189,7 +189,7 @@
 		<<elseif _sydneyStatus.includes("pure")>>
 			<<He>> treats the items as if they were live cobras, hesitating before touching any, and getting rid of them as soon as <<he>> can. Whips, riding crops, pornographic magazines, dildos and vibrators all slap haphazardly onto their shelves.
 			<br><br>
-			
+
 			<<link [[Try on a collar and tease Sydney|Dilapidated Collar]]>><<npcincr Sydney purity -2>><<npcincr Sydney lust 5>><</link>><<set _lustincrdisplay to 1>><<lspurity>><<glust>>
 			<br>
 			<<link [[Keep working|Dilapidated Collar Refuse]]>><</link>>
@@ -197,7 +197,7 @@
 		<<else>>
 			<<He>> doesn't look at the objects as <<he>> puts them in their place. Whips, riding crops, pornographic magazines, dildos and vibrators all pass through <<his>> attention with a forced lack of consideration.
 			<br><br>
-			
+
 			<<link [[Try on a collar and tease Sydney|Dilapidated Collar]]>><<npcincr Sydney purity -2>><<npcincr Sydney lust 5>><</link>><<set _lustincrdisplay to 1>><<lspurity>><<glust>>
 			<br>
 			<<link [[Keep working|Dilapidated Collar Refuse]]>><</link>>
@@ -223,29 +223,29 @@
 		<<elseif _sydneyStatus.includes("pure")>>
 			Sydney grimaces at the sound.
 			<br><br>
-			
+
 			<<link [[Suggest Sydney answer it|Dilapidated Door Suggest]]>><</link>>
 			<br>
 			<<link [[Answer it yourself|Dilapidated Door Answer]]>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			Sydney doesn't look eager to answer it.
 			<br><br>
-			
+
 			<<link [[Suggest Sydney answer it|Dilapidated Door Suggest]]>><</link>>
 			<br>
 			<<link [[Answer it yourself|Dilapidated Door Answer]]>><</link>>
 			<br>
 		<</if>>
 	<<else>>
-		
+
 		You hear voices at the front of the shop. A crowd of gawkers, peering through the window, curious as to what's inside.
 		<br><br>
-		
+
 		<<if _sydneyStatus.includes("corrupt")>>
 			Sydney claps <<his>> hand together. "We should advertise the shop," <<he>> says. "I have just the thing." <<He>> reaches into one of the crates, and produces a ball gag and length of rope. With suspicious speed, <<he>> affixes the gag round <<his>> head, and holds out the rope. "Follow my lead."
 			<br><br>
-			
+
 			<<link [[Follow Sydney's lead|Dilapidated Gag]]>><<famebusiness 5>><<npcincr Sydney purity -5>><<npcincr Sydney lust 10>><</link>><<llspurity>><<gglust>>
 			<br>
 			<<link [[Refuse|Dilapidated Gag Refuse]]>><</link>>
@@ -253,17 +253,17 @@
 		<<elseif _sydneyStatus.includes("pure")>>
 			Sydney launches <<himself>> behind a shelf, afraid of being seen.
 			<br><br>
-			
+
 			<<link [[Reassure|Dilapidated Gawker Reassure]]>><<npcincr Sydney love 1>><<npcincr Sydney purity 2>><</link>><<glove>><<gpurity>>
 			<br>
 			<<link [[Ignore|Dilapidated Gawker Ignore]]>><</link>>
 			<br>
 			<<link [[Tease|Dilapidated Gawker Tease]]>><<npcincr Sydney purity -2>><</link>><<exhibitionist1>><<lspurity>>
-			<br>			
+			<br>
 		<<else>>
 			Sydney ducks behind a shelf, as if afraid of being seen.
 			<br><br>
-			
+
 			<<link [[Reassure|Dilapidated Gawker Reassure]]>><<npcincr Sydney love 1>><<npcincr Sydney purity 2>><</link>><<glove>><<gpurity>>
 			<br>
 			<<link [[Ignore|Dilapidated Gawker Ignore]]>><</link>>
@@ -280,7 +280,7 @@
 		<<generate3>><<person3>>
 		A van pulls up outside, and a <<person>> climbs out, carrying a small crate. Sirris' head appears around the door. "Could you get that, Sydney?" <<person1>><<he>> says. "My hands are full."
 		<br><br>
-		
+
 		The <<person3>><<person>> wears a knowing smile as <<he>> hands the crate to Sydney.
 		<<if _sydneyStatus.includes("corrupt")>>
 			Sydney returns the smile with a feigned innocence. <<person2>><<Hes>> almost hopping as <<he>> re-enters the shop.
@@ -294,17 +294,17 @@
 			<br><br>
 			<<He>> rushes past you, eager to reach the back room.
 			<br><br>
-			
+
 			<<link [[Suggest opening it|Dilapidated Suggest]]>><</link>>
 			<br>
 			<<link [[Let Sydney by|Dilapidated Let]]>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			<<person2>>Sydney can't make eye contact, but manages a quiet thank you before rushing back inside.
 			<br><br>
 			<<He>> walks past you, towards the back room.
 			<br><br>
-			
+
 			<<link [[Suggest opening it|Dilapidated Suggest]]>><</link>>
 			<br>
 			<<link [[Let Sydney by|Dilapidated Let]]>><</link>>
@@ -313,12 +313,12 @@
 	<<else>>
 		You both wear bulky aprons over your clothes to catch any spilled paint. The room's hot enough already, and Sydney is visibly uncomfortable.
 		<br><br>
-		
+
 		<<if _sydneyStatus.includes("corrupt")>>
 			<<if $sydneyromance gte 1>>
 				"It's too hot," Sydney says, pulling off the apron. "I'm gonna wear nothing beneath." <<He>> starts stripping <<his>> other clothes.
 				<br><br>
-				
+
 				<<if $exhibitionism gte 15>>
 					<<link [[Follow suit|Dilapidated Paint Suit Romance]]>><<npcincr Sydney lust 10>><</link>><<exhibitionist2>><<gglust>>
 					<br>
@@ -326,11 +326,11 @@
 				<<link [[Watch|Dilapidated Paint Watch Romance]]>><<npcincr Sydney lust 5>><<arousal 600>><</link>><<glust>><<garousal>>
 				<br>
 				<<link [[Look away|Dilapidated Paint Look]]>><</link>>
-				<br>			
+				<br>
 			<<else>>
 				"It's too hot," Sydney says, pulling off the apron. "I'm gonna wear nothing beneath." <<He>> starts stripping <<his>> other clothes.
 				<br><br>
-				
+
 				<<if $exhibitionism gte 15>>
 					<<link [[Follow suit|Dilapidated Paint Suit]]>><<npcincr Sydney lust 10>><</link>><<exhibitionist2>><<gglust>>
 					<br>
@@ -343,19 +343,19 @@
 		<<elseif _sydneyStatus.includes("pure")>>
 			"Sorry about the heat," Sirris says, appearing at the door to the back room. "Something's wrong with the heating. Will have it fixed before long."
 			<br><br>
-			
+
 			It's sweaty work, but you make good progress.
 			<br><br>
-			
+
 			<<link [[Next|Dilapidated End]]>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			"Sorry about the heat," Sirris says, appearing at the door to the back room. "Something's wrong with the heating. Will have it fixed before long."
 			<br><br>
-			
+
 			It's sweaty work. Sydney loosens <<his>> clothes a little to take the edge off.
 			<br><br>
-			
+
 			<<link [[Next|Dilapidated End]]>><</link>>
 			<br>
 		<</if>>
@@ -491,7 +491,7 @@ You continue working. You make good progress alongside Sydney.
 <<effects>>
 
 <<if $submissive gte 1150>>
-	"It's okay," you say. "I don't think they can see us." You wave at the gawkers. They don't respond.
+	"It's okay," you say. "I don't think they can see us."
 <<elseif $submissive lte 850>>
 	"It's okay," you laugh. "They can't even see us back here."
 <<else>>
@@ -658,7 +658,7 @@ You step behind Sydney, and grasp the hem of the apron. <<He>> wiggles <<his>> b
 <<effects>>
 
 <<if $submissive gte 1150>>
-	"I-I'd rather watch," you say. "S-sorry".
+	"I-I'd rather watch," you say. "S-sorry."
 <<elseif $submissive lte 850>>
 	"Nah," you say. "I wanna watch you struggle."
 <<else>>
@@ -794,7 +794,7 @@ Sydney pauses a moment, then nods. "That makes sense," <<he>> says. <<He>> lifts
 <<effects>>
 
 <<person1>>
-You hear Sirris clap <<his>> hands as <<he>> receives the crate. Sydney returns to the shop floor, <<person2>><<his>> face flush with embarassment.
+You hear Sirris clap <<his>> hands as <<he>> receives the crate. Sydney returns to the shop floor, <<person2>><<his>> face flush with embarrassment.
 <br><br>
 
 <<link [[Next|Dilapidated End]]>><</link>>
@@ -803,16 +803,21 @@ You hear Sirris clap <<his>> hands as <<he>> receives the crate. Sydney returns
 
 :: Dilapidated End
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $adultshopprogress gte 22>>
 	<<person1>>
-	
+
 	Sirris steps behind the counter, and observes the shop while running <<his>> hands over the counter. The shelves are stocked with the toys and accoutrements. Sirris examines them with pride.
 	<br><br>
-	
+
 	"Thank you so much," Sirris says. "Both of you. <span class="gold">We're ready for the grand opening tomorrow.</span> I hope you drop by. <span class="gold">We'll have lots of goodies for sale!"</span>
 	<br><br>
-	
+
+	<<if $adultshopcontribution gte 12>>
+		<<He>> hands you <<moneyGain 100>>, more than the usual.
+	<<else>>
+		<<He>> hands you <<moneyGain 20>>.
+	<</if>>
 	"You've been such a help," <<he>> continues, ushering you both towards the exit. "If you're looking for work, I could use more help running things."
 	<br>
 	<<person1>>
@@ -845,10 +850,10 @@ You hear Sirris clap <<his>> hands as <<he>> receives the crate. Sydney returns
 		<</if>>
 	<</if>>
 
-	
+
 <<else>>
 	<<person2>>
-	"That'll do us nicely for today," Sirris says, emerging from the back of the shop. You walk outside with Sydney, and Sirris locks the door behind you.
+	"That'll do us nicely for today," Sirris says, emerging from the back of the shop. You walk outside with Sydney, and Sirris locks the door behind you. <<He>> hands you <<moneyGain 20>>.
 	<br><br>
 	<<if _sydneyStatus.includes("corrupt")>>
 		<<if $sydneyromance gte 1>>
@@ -858,9 +863,9 @@ You hear Sirris clap <<his>> hands as <<he>> receives the crate. Sydney returns
 		<</if>>
 	<<else>>
 		<<if $sydneyromance gte 1>>
-			Sydney hugs you with one arm. "It'll be fun to work here together," <<he>> whispers into your ear. <<His>> breath makes you shiver.
+			Sydney gives you a quick hug. "I'm expected back at the temple. You're welcome to join me."
 		<<else>>
-			Sydney leans closer. "It'll be fun to work here," <<he>> says. "Don't you think? I wonder if we'll see any parishioners."
+			Sydney gives you an embarrassed smile, then walks away.
 		<</if>>
 	<</if>>
 	<br><br>
@@ -875,7 +880,7 @@ You hear Sirris clap <<his>> hands as <<he>> receives the crate. Sydney returns
 :: Dilapidated Temple
 <<effects>>
 <<person2>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 You walk down Elk Street with Sydney, then Nightingale Street, passing the hospital.
 <<if _sydneyStatus.includes("corrupt")>>
 	<<if $sydneyromance gte 1>>
@@ -910,7 +915,7 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 
 :: Dilapidated Toy
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set $rng to random(1, 3)>>
 <<switch $rng>>
 	<<case 1>>
@@ -923,11 +928,11 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 				<<link [[Get on the desk|Dilapidated Dildo]]>><<npcincr Sydney love 1>><<npcincr Sydney lust 10>><<arousal 2000>><<set $sydney_toy to "dildo">><</link>><<promiscuous1>><<glove>><<gglust>><<ggarousal>><<gsydneytoy "dildo">>
 				<br>
 				<<link [[Refuse|Dilapidated Dildo Refuse]]>><</link>>
-				<br>		
+				<br>
 			<<else>>
 				<<He>> looks at you with surprise, as if <<he>> forgot you were there. "There's no shame in being curious," <<he>> says. "That's what <<sydneymum>> always says."
 				<br><br>
-				
+
 				<<link [[Encourage|Dilapidated Dildo Encourage]]>><<npcincr Sydney purity -2>><<npcincr Sydney lust 1>><</link>><<set _lustincrdisplay to 1>><<lspurity>><<glust>>
 				<br>
 				<<link [[Keep working|Dilapidated Dildo Work]]>><</link>>
@@ -936,15 +941,15 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 		<<elseif _sydneyStatus.includes("pure")>>
 			Sydney shuts <<his>> eyes as <<he>> reaches inside, and pulls out a large dildo. Still unable to see, <<he>> tries to put it on a shelf, but leaves too much hanging off the edge, and drops it.
 			<br><br>
-			
+
 			<<link [[Tease|Dilapidated Dildo Tease]]>><<npcincr Sydney purity -2>><</link>><<lspurity>>
 			<br>
 			<<link [[Pretend you didn't see anything|Dilapidated Pretend]]>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			Sydney reaches inside, and pulls out a large dildo. <<He>> looks at it curiously for a moment, then realisation strikes <<his>> face, and <<he>> drops it.
 			<br><br>
-			
+
 			<<link [[Tease|Dilapidated Dildo Tease]]>><<npcincr Sydney purity -2>><</link>><<lspurity>>
 			<br>
 			<<link [[Pretend you didn't see anything|Dilapidated Pretend]]>><</link>>
@@ -957,7 +962,7 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 			<<if $sydneyromance is 1 and ($worn.upper.set isnot $worn.lower.set or $worn.lower.skirt is 1)>>
 				<<He>> looks at you with a devious smile. "Put your hands against the wall and stick out your butt," <<he>> says. "Pretty please."
 				<br><br>
-				
+
 				<<link [[Put your hands against the wall|Dilapidated Beads]]>><<npcincr Sydney love 1>><<npcincr Sydney lust 10>><<set $sydney_toy to "length of anal beads">><</link>><<promiscuous1>><<glove>><<gglust>><<gsydneytoy "length of anal beads">>
 				<br>
 				<<link [[Refuse|Dilapidated Beads Refuse]]>><</link>>
@@ -965,7 +970,7 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 			<<else>>
 				<<He>> holds the beads up to your face. "We need to make sure they taste okay," <<he>> says. "People are going to use them that way, after all."
 				<br><br>
-				
+
 				<<link [[Lick|Dilapidated Beads Lick]]>><<arousal 1200>><<npcincr Sydney purity -2>><<npcincr Sydney lust 1>><</link>><<ggarousal>><<set _lustincrdisplay to 1>><<lspurity>><<glust>>
 				<br>
 				<<link [[Refuse|Dilapidated Beads Lick Refuse]]>><</link>>
@@ -974,15 +979,15 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 		<<elseif _sydneyStatus.includes("pure")>>
 			Sydney grimaces as <<he>> reaches inside, and pulls out a length of anal beads. <<He>> recoils as soon as <<he>> realises what it is, and lets it fall back inside.
 			<br><br>
-			
+
 			<<link [[Tease|Dilapidated Beads Tease]]>><<npcincr Sydney purity -2>><</link>><<lspurity>>
 			<br>
 			<<link [[Pretend you didn't see anything|Dilapidated Pretend]]>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			Sydney reaches inside, and pulls out a length of anal beads. <<He>> puts it back in the crate in a hurry.
 			<br><br>
-			
+
 			<<link [[Tease|Dilapidated Beads Tease]]>><<npcincr Sydney purity -2>><</link>><<lspurity>>
 			<br>
 			<<link [[Pretend you didn't see anything|Dilapidated Pretend]]>><</link>>
@@ -995,7 +1000,7 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 			<<if $sydneyromance is 1>>
 				<<He>> folds <<his>> arms as <<he>> regards you. "You've been insolent today," <<he>> says, theatrically tapping the crop against <<his>> arm. "Get on all fours."
 				<br><br>
-				
+
 				<<link [[Get on all fours|Dilapidated Crop Fours]]>><<npcincr Sydney love 1>><<npcincr Sydney lust 10>><<set $sydney_toy to "riding crop">><</link>><<promiscuous1>><<glove>><<gglust>><<gsydneytoy "riding crop">>
 				<br>
 				<<link [[Refuse|Dilapidated Crop Refuse]]>><</link>>
@@ -1003,7 +1008,7 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 			<<else>>
 				"If only we had a plump bottom to test this one," <<he>> laughs. "I have an idea." <<He>> hands you the riding crop, turns around and bends over. "It would be irresponsible to sell untested products. Go on, give it your all."
 				<br><br>
-				
+
 				<<link [[Whack as hard as you can|Dilapidated Crop Whack Hard]]>><<npcincr Sydney purity -5>><<npcincr Sydney lust 10>><</link>><<llspurity>><<gglust>>
 				<br>
 				<<link [[Whack softly|Dilapidated Crop Whack Soft]]>><<npcincr Sydney purity -2>><<npcincr Sydney lust 5>><<npcincr Sydney love 1>><</link>><<set _lustincrdisplay to 1>><<lspurity>><<glust>><<glove>>
@@ -1014,15 +1019,15 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 		<<elseif _sydneyStatus.includes("pure")>>
 			Sydney reaches inside, and pulls out a riding crop. "The temple might be okay with this one," <<he>> says.
 			<br><br>
-			
+
 			<<link [[Tease|Dilapidated Crop Tease]]>><<npcincr Sydney purity -2>><</link>><<lspurity>>
 			<br>
 			<<link [[Pretend you didn't see anything|Dilapidated Pretend]]>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			Sydney reaches inside, and pulls out a riding crop. <<He>> shakes <<his>> head. "People are strange," <<he>> says. <<He>> turns the crop over in <<his>> hands.
 			<br><br>
-			
+
 			<<link [[Tease|Dilapidated Crop Tease]]>><<npcincr Sydney purity -2>><</link>><<lspurity>>
 			<br>
 			<<link [[Pretend you didn't see anything|Dilapidated Pretend]]>><</link>>
@@ -1036,7 +1041,7 @@ You walk down Elk Street with Sydney, then Nightingale Street, passing the hospi
 
 You pull back your arm, and deliver a hard smack to Sydney's ass.
 
-<<if $physique gte 15000>>
+<<if currentSkillValue('physique') gte 15000>>
 	Sydney jolts and cries out in pain.
 	<br>
 	"Is everything okay in there?" asks Sirris from the back room.
@@ -1044,9 +1049,9 @@ You pull back your arm, and deliver a hard smack to Sydney's ass.
 	"Y-yes!" Sydney replies, standing upright. "Everything is well."
 	<br><br>
 	"You're strong," Sydney says in a lower voice. "But I deserve worse than that. I'm such a sinner."
-<<elseif $physique gte 10000>>
+<<elseif currentSkillValue('physique') gte 10000>>
 	Sydney jolts and yelps in pain. "Aha, that's it," <<he>> says. "I'm such a sinner. It's what I deserve." <<He>> stands upright, and rubs <<his>> rear.
-<<elseif $physique gte 5000>>
+<<elseif currentSkillValue('physique') gte 5000>>
 	Sydney jolts. "Aha," <<he>> gasps. "That's it. I'm such a sinner. It's what I deserve." <<He>> stands upright.
 <<else>>
 	Sydney jolts. "That the best you can do?" <<he>> asks, standing upright. "I'm such a sinner. I deserve worse."
@@ -1111,7 +1116,7 @@ You approach the shop window. People walk by, but they haven't noticed you in th
 <br><br>
 
 <<if $exhibitionism gte 15>>
-	<<link [[Approach the Window|Dilapidated Crop Fours Window]]>><<npcincr Sydney lust 5>><<npcincr Sydney purity -2>><</link>><<exhibitionist2>><<set _lustincrdisplay to 1>><<lspurity>><<gglust>>
+	<<link [[Approach the window|Dilapidated Crop Fours Window]]>><<npcincr Sydney lust 5>><<npcincr Sydney purity -2>><</link>><<exhibitionist2>><<set _lustincrdisplay to 1>><<lspurity>><<gglust>>
 	<br>
 <</if>>
 <<link [[Stop|Dilapidated Crop Fours End]]>><</link>>
@@ -1151,7 +1156,7 @@ You come to a stop. "That'll do," Sydney says, climbing from your back. <<He>> t
 <<if $submissive gte 1150>>
 	"Give me one more," you say, turning around and bending over. "For good measure."
 	<br><br>
-	Sydney smiles, and gives you a final whack with the riding crop. It's harder than before, and ellicits a small yelp.
+	Sydney smiles, and gives you a final whack with the riding crop. It's harder than before, and elicits a small yelp.
 	<br><br>
 <<elseif $submissive lte 850>>
 	"I feel fine," you say, taking the riding crop from <<his>> hand while wrapping your other arm around <<his>> waist. You give <<his>> ass a quick retaliatory swat. "Maybe next time I'll be on your back."
@@ -1231,11 +1236,11 @@ You give Sydney a gentle shove. It barely moves <<him>>, but <<he>> yelps in sur
 <<if $submissive gte 1150>>
 	"Nothing," you say, leaning against the counter and sticking out your <<bottom>>. "I just wanted to annoy you. Don't you think I deserve to be punished?"
 	<br>
-	"Punished? It was only-" 
+	"Punished? It was only-"
 <<elseif $submissive lte 850>>
 	"What was that for?" you repeat in a mocking tone while leaning on the counter and sticking out your <<bottom>>.
 	<br>
-	"Did I do something to upset-" 
+	"Did I do something to upset-"
 <<else>>
 	"Did that bother you?" you say, leaning against the counter and sticking out your <<bottom>>. "Perhaps you should get revenge."
 	<br>
@@ -1329,10 +1334,10 @@ You put your hands against the wall, and stick out your <<bottom>>. "These are i
 <<if $worn.genitals.anal_shield is 1>>
 	His fingers brush against your $worn.genitals.name. "No use trying to remove it. I know how tough these things are. Still, it would be a shame to have you in such a position and not take advantage."
 	<br><br>
-	
+
 	<<He>> crouches behind you. You feel <<his>> breath on your skin a moment before <<he>> plants a kiss. <<He>> plants another. "Hold still," <<he>> says. "Until I'm done."
 	<br><br>
-	
+
 	You hear movement from the back of the shop. Sydney rises and covers you in a flash, watching the door with a wary expression. "I'll keep this for later," <<he>> says, squirreling the beads away before returning to work.
 	<br><br>
 	<<link [[Next|Dilapidated End]]>><</link>>
@@ -1340,7 +1345,7 @@ You put your hands against the wall, and stick out your <<bottom>>. "These are i
 <<else>>
 	Sydney crouches behind you. You glance back, and see <<him>> lubing the beads with <<his>> saliva.
 	<br><br>
-	
+
 	<<link [[Allow|Dilapidated Beads 2]]>><<npcincr Sydney purity -2>><<npcincr Sydney lust 5>><<arousal 4000>><</link>><<gggarousal>><<set _lustincrdisplay to 1>><<lspurity>><<glust>>
 	<br>
 	<<link [[Cover your bottom|Dilapidated Beads Refuse 2]]>><</link>>
@@ -1350,7 +1355,7 @@ You put your hands against the wall, and stick out your <<bottom>>. "These are i
 :: Dilapidated Beads 2
 <<effects>>
 
-Sydney pushes the tip into your <<bottom>>. 
+Sydney pushes the tip into your <<bottom>>.
 <<if $leftarm isnot "bound" or $rightarm isnot "bound">>
 	You cover your mouth with your hand.
 <<else>>
@@ -1582,7 +1587,7 @@ You hear footsteps from the back of the shop. Sydney drops the dildo back in the
 
 :: Adult Shop Closed
 <<set $outside to 0>><<effects>><<set $lock to 200>>
-    You pass by an adult shop. It's currently closed.
+	You pass by an adult shop. It's currently closed.
 
 	<<if currentSkillValue('skulduggery') gte $lock>>
 	<span class="green">The lock looks easy to pick.</span>
diff --git a/game/overworld-town/loc-adultshop/opening.twee b/game/overworld-town/loc-adultshop/opening.twee
index 0a8ae4d0ef55aeef5be441f67003f82145976f7a..5182101789cc0c9852fe8e4f928a05e6cb21eb17 100644
--- a/game/overworld-town/loc-adultshop/opening.twee
+++ b/game/overworld-town/loc-adultshop/opening.twee
@@ -1,9 +1,9 @@
 :: Adult Shop Opening Walk
 <<effects>>
-<<set $location to "adult_shop">><<NPCStatusCheck "Sydney">>
+<<set $location to "adult_shop">><<run statusCheck("Sydney")>>
 
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
-	Sydney's excitement pours out during the walk to Elk Street. Excitement and pride. 
+	Sydney's excitement pours out during the walk to Elk Street. Excitement and pride.
 	<<if $sydneySeen.includes("parent")>>
 		<<His>> <<sydneymum>> has dreamt of this for a long time, it seems. It's hard to get a word in.
 	<<else>>
@@ -18,9 +18,9 @@
 	<br><br>
 <</if>>
 
-<<npc Sirris 2>><<person2>>
+<<npc Sirris 2>>
 <<generate3>><<generate4>><<generate5>><<npc Niki 6>>
-You see a crowd up ahead, surrounding a shop with a purple-lit interior. "Please form an orderly queue," shouts a voice above the din. It's Sirris, raised above the crowd just inside the entrance. <<He>> must be stood on something.
+You see a crowd up ahead, surrounding a shop with a purple-lit interior. "Please form an orderly queue," shouts a voice above the din. It's Sirris, raised above the crowd just inside the entrance. <<person2>><<He>> must be stood on something.
 <br><br>
 
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
@@ -37,17 +37,17 @@ You see a crowd up ahead, surrounding a shop with a purple-lit interior. "Please
 
 :: Adult Shop Opening
 <<effects>>
-<<npc Sydney>><<npc Sirris 2>><<person2>>
-<<NPCStatusCheck "Sydney">>
+<<npc Sydney>><<npc Sirris 2>>
+<<run statusCheck("Sydney")>>
 <<generate3>><<generate4>><<generate5>><<npc Niki 6>>
-You see a crowd up ahead, surrounding a shop with a purple-lit interior. "Please form an orderly queue," shouts a voice above the din. It's Sirris, stood raised above the crowd just inside the entrance. <<He>> must be stood on something.
+You see a crowd up ahead, surrounding a shop with a purple-lit interior. "Please form an orderly queue," shouts a voice above the din. It's Sirris, stood raised above the crowd just inside the entrance. <<person2>><<He>> must be stood on something.
 <br><br>
 <<person1>>
 Sydney pushes through the crowd, heading right for you.
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
 	"I'm so glad you could make it!" <<he>> says, grasping your arm. "Seems <<sydneymum>> has plans for us, but refused to tell me before you arrived."
 <<elseif _sydneyStatus.includes("pure") or _sydneyStatus.includes("pureLust")>>
-	"I think <<sydneymum>> will be happy to see you," <<he>> says. "<<person2>><<He>> has plans for us, but refused to tell me before you arrived."
+	"I think <<sydneymum>> will be happy to see you," <<he>> says. <<person2>>"<<He>> has plans for us, but refused to tell me before you arrived."
 <<else>>
 	"I'm glad you could make it," <<he>> says, <<his>> tone level. "Seems <<sydneymum>> has plans for us, but refused to tell me before you arrived."
 <</if>>
@@ -60,7 +60,7 @@ Sirris spots you, and waves at you over the heads of the crowd.
 
 :: Adult Shop Opening 2
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<person2>>
 The crowd organises into something approaching a queue. You can see into the shop now. It's packed with bodies. Sirris pushes <<his>> way towards you.
@@ -123,14 +123,14 @@ Sirris faces you. "How about you?"
 
 :: Adult Shop Opening Refuse
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<person2>>
 "That's fine," Sirris says, failing to hide <<his>> disappointment. "I hope you enjoy yourself regardless! Sydney, follow me to your uniform."
 <br><br>
 <<person1>>
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
-	"It would be more fun with you," Sydney shrugs. "But I won't complain about getting a whole bed to myself." <<He>> follows Sirris into the shop, pushing past the many patrons. 
+	"It would be more fun with you," Sydney shrugs. "But I won't complain about getting a whole bed to myself." <<He>> follows Sirris into the shop, pushing past the many patrons.
 <<elseif _sydneyStatus.includes("pure") or _sydneyStatus.includes("pureLust")>>
 	"We'll stay together if you like," Sydney says. "Maybe make sure this queue doens't deteriorate."
 <<else>>
@@ -144,7 +144,7 @@ Sirris faces you. "How about you?"
 
 :: Adult Shop Opening Refuse 2
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<pass 50>>
 <<person1>>
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
@@ -156,7 +156,7 @@ Sirris faces you. "How about you?"
 	<<else>>
 		<<He>> isn't keen on going inside. "The temple is unsure of this sort of thing for a reason," <<he>> says.
 	<</if>>
-	<<He>> manages to protect the cohesion of the queue until the last customers enter. 
+	<<He>> manages to protect the cohesion of the queue until the last customers enter.
 <<else>>
 	You push your way into the shop. It's usually quite spacious, but each row of shelves is packed with people examining the merchandise. Sydney soon emerges, wearing a cowprint onesie. Less coquettish than the most of the clothes for sale. Several patrons try flirting with <<him>>, but <<he>> refuses to interact.
 <</if>>
@@ -182,7 +182,7 @@ You hear a shout above the patrons' murmuring. "Thank you all for coming." It's
 
 :: Adult Shop Opening Refuse 3
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<person1>>
 The event is over, but the shop remains open.
 
@@ -201,7 +201,7 @@ The event is over, but the shop remains open.
 /*pure opening*/
 :: Adult Shop Opening Pure
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<person2>>
 
 Sirris pushes through the throng, and you follow behind. <<He>> takes you behind the counter, and into the back room.
@@ -229,7 +229,7 @@ It's a workshop, you think. Arcane gizmos cover the surfaces, and jumbles of spa
 	<<if $exhibitionism gte 15>>
 		<<link [[Wear the babydoll|Adult Shop Opening Pure Babydoll]]>><<set $phase to 0>><</link>><<exhibitionist2>>
 	<<else>>
-		<span class="blue">You're not exhibitionistic enough to wear the babydoll. It's quite sheer, and you're not wearing underwear!</span>
+		<span class="blue">You're not exhibitionistic enough to wear the babydoll. It's very sheer, and people will see your $worn.under_lower.name!</span>
 		<br>
 	<</if>>
 <</if>>
@@ -243,7 +243,7 @@ It's a workshop, you think. Arcane gizmos cover the surfaces, and jumbles of spa
 You undress, and step into the onesie. It's snug. It'll be a bit odd to wear in public, but these are unusual circumstances.
 <br><br>
 
-You emerge from the back room. People don't pay you much attention at first, though Sydney does. <<He>> smothers a smirk. You don't look that silly, surely!
+You emerge from the back room. People don't pay you much attention at first, though Sydney does. <<person1>><<He>> smothers a smirk. You don't look that silly, surely!
 <br><br>
 
 Patrons notice as you as you walk to the bed. You lie atop it.
@@ -308,7 +308,7 @@ You walk over to the bed, positioned in the middle of the main floor, and lie at
 		"What are you offering?" you ask.
 	<</if>>
 	<<promiscuity4>>
-	
+
 	The <<person3>><<person>> reaches into <<his>> wallet, but is interrupted by an observant Sirris. "None of that funny business here," <<person2>><<he>> says. "Out you go."
 	<br><br>
 	The <<person3>><<person>> grumbles, but does as told.
@@ -349,7 +349,7 @@ You lie on the bed and watch the patrons and staff. Looks like Sirris is doing g
 You finally see where Sydney gets it from. In this moment, you truly see an older Sydney in Sirris. You let yourself smile at the thought.
 <br><br>
 
-Sydney enters the shop, and walks your way. The queue has emptied into the shop. There's still a crowd outside, but they seem to be people who have already explored the shop's interior. 
+Sydney enters the shop, and walks your way. The queue has emptied into the shop. There's still a crowd outside, but they seem to be people who have already explored the shop's interior.
 <br><br>
 
 <<person1>>
@@ -408,7 +408,7 @@ You lunge forward, reaching for Sydney's waist.
 	<br><br>
 	"Oh no you don't," <<he>> says. "Don't take my humility for weakness. Others have learned how big a mistake that is." <<His>> stance softens. "I'm sorry. You made me jump, that's all."
 	<br><br>
-	
+
 	<<link [[Next|Adult Shop Opening End]]>><</link>>
 	<br>
 <</if>>
@@ -472,7 +472,7 @@ You lie on the bed together for a few minutes. Sydney draws a lot of attention,
 /*neutral opening*/
 :: Adult Shop Opening Neutral
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<person2>>
 
 Sirris pushes through the throng. Sydney and you follow close behind. <<He>> takes you behind the counter, and into the back room.
@@ -504,7 +504,7 @@ It's a workshop, you think. Arcane gizmos cover the surfaces, and jumbles of spa
 	<<if $exhibitionism gte 15>>
 		<<link [[Wear the babydoll|Adult Shop Opening Neutral Babydoll]]>><<set $phase to 0>><</link>><<exhibitionist2>>
 	<<else>>
-		<span class="blue">You're not exhibitionistic enough to wear the babydoll. It's quite sheer.</span>
+		<span class="blue">You're not exhibitionistic enough to wear the babydoll. It's very sheer, and people will see your $worn.under_lower.name!</span>
 		<br>
 	<</if>>
 <</if>>
@@ -512,7 +512,7 @@ It's a workshop, you think. Arcane gizmos cover the surfaces, and jumbles of spa
 
 :: Adult Shop Opening Neutral Onesie
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<undressmid "adult shop opening">>
 <<upperwear 89>>
@@ -532,7 +532,7 @@ Together, you exit the back room, and walk out into the shop proper.
 
 :: Adult Shop Opening Neutral Onesie 2
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 People don't notice you at first. Few can even see you through the crowd. You attract some looks as your make your way to the bed. It's sat in the middle of the floor, surrounded by open space.
 <br><br>
@@ -553,7 +553,7 @@ Sydney climbs onto the bed, and crawls to the other side. You climb on after <<h
 
 :: Adult Shop Opening Neutral Pictures
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $submissive gte 1150>>
 	"Y-you can take pictures if you like," you say.
@@ -578,7 +578,7 @@ Sydney instinctively reaches for <<his>> crucifix, but it's hidden in <<his>> on
 
 :: Adult Shop Opening Neutral Refuse
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 You shake your head.
 <<if $submissisve gte 1150>>
@@ -603,7 +603,7 @@ There's a murmur of disappointment, but Sydney seems relieved. That is until <<p
 
 :: Adult Shop Opening Neutral Babydoll
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<undressmid "adult shop opening">>
 <<upperwear 17>>
@@ -628,7 +628,7 @@ Sydney shakes <<his>> head. "If you say so. We'll make a funny-looking pair."
 
 :: Adult Shop Opening Neutral Babydoll 2
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 You draw attention at once. Mostly you in your babydoll, but Sydney gets a fair few looks as well. You make your way over to the bed in the middle of the room, drawing more eyes as you push through the crowd.
 <br><br>
@@ -646,7 +646,7 @@ You climb onto the bed, and crawl to the other side. Sydney follows you on. "So
 
 :: Adult Shop Opening Neutral 2
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 The last of the queue outside filters in. There's still a crowd outside, but made up of people who have finished within. Some are comparing purchases. Sirris walks by, and smiles at the sight of you.
 <br><br>
@@ -677,7 +677,7 @@ The last of the queue outside filters in. There's still a crowd outside, but mad
 <<if $sydneyromance is 1>>
 	Sydney turns <<his>> head, but doesn't say anything. <<He>> just gazes at you.
 	<br><br>
-	
+
 	<<link [[Kiss|Adult Shop Opening Neutral Kiss]]>><<npcincr Sydney love 5>><</link>><<gglove>><<kissvirginitywarning>>
 	<br>
 	<<link [[Just smile|Adult Shop Opening Neutral Smile]]>><</link>>
@@ -712,7 +712,7 @@ You smile, and Sydney smiles back. "This is a silly situation," <<he>> says. "Bu
 /*corrupt opening*/
 :: Adult Shop Opening Corrupt
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<person2>>
 
 Sirris pushes through the throng. Sydney and you follow close behind. <<He>> takes you behind the counter, and into the back room.
@@ -744,7 +744,7 @@ It's a workshop, you think. Arcane gizmos cover the surfaces, and jumbles of spa
 	<<if $exhibitionism gte 15>>
 		<<link [[Wear the babydoll|Adult Shop Opening Corrupt Babydoll]]>><<set $phase to 0>><</link>><<exhibitionist2>>
 	<<else>>
-		<span class="blue">You're not exhibitionistic enough to wear the babydoll. It's quite sheer.</span>
+		<span class="blue">You're not exhibitionistic enough to wear the babydoll. It's very sheer, and people will see your $worn.under_lower.name!</span>
 		<br>
 	<</if>>
 <</if>>
@@ -941,7 +941,7 @@ Sirris claps <<person2>><<his>> hands when <<he>> sees you. "You both look wonde
 <<elseif $niki_seen is "farm">>
 	<span class="red">It's Niki,</span> the photographer from Remy's farm. <<He>> looks alarmed to see you. "This is Niki," Sirris continues. "A photographer who works nearby." <<gtrauma>><<trauma 6>>
 	<br><br>
-	
+
 	Your thoughts take you back to the farm.
 	<br><br>
 
@@ -1038,7 +1038,7 @@ Sydney wraps an arm around your shoulder, while <<his>> other hand supports <<hi
 /*end*/
 :: Adult Shop Opening End
 <<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<famemodel 100>>
 <<person2>>
 You hear a shout above the din. "Thank you all for coming," It's Sirris, stood on a platform once more. Customers crowd around the windows outside. "I'd like to give a special thanks to our model<<if !_sydneyStatus.includes("pure")>>s<</if>> here. Could I have a round of applause?" A few whistles punctuate the claps.
@@ -1047,7 +1047,7 @@ You hear a shout above the din. "Thank you all for coming," It's Sirris, stood o
 "I hope you enjoyed yourselves," Sirris continues. "We're open six days a week, and shut at <<ampm 21 00>>. I hope to see you again!" <<He>> steps down from the platform.
 <br><br>
 
-
+<<person1>>
 "I think the grand opening is over," Sydney says. "But the shop is still open.
 
 <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
diff --git a/game/overworld-town/loc-adultshop/sex-shop-menu.twee b/game/overworld-town/loc-adultshop/sex-shop-menu.twee
index 0dc76128a22b9496d07cfe86b122c20fd45b9d90..fa2145cccebf19a5d18c5b7d164fd7820760eab2 100644
--- a/game/overworld-town/loc-adultshop/sex-shop-menu.twee
+++ b/game/overworld-town/loc-adultshop/sex-shop-menu.twee
@@ -16,7 +16,10 @@ You are inside the adult shop
 </div>
 <<run window.sexShopGridInit()>>
 <br><br>
-<<if $debug is 1>><<link [[Reload|Adult Shop Menu]]>><</link>><br><</if>>
+<<if $debug is 1>>
+	<<link [[Reload|Adult Shop Menu]]>><</link>>
+	<br>
+<</if>>
 <<link [[Leave|Adult Shop]]>><</link>>
 
 :: Sextoys Inventory
@@ -37,6 +40,9 @@ You are inside the adult shop
 <<run window.patchStraponsWearStatus()>>
 <<run window.sexToysInventoryInit()>>
 
-<<if $debug is 1>><<link [[Reload|Sextoys Inventory]]>><</link>><br><</if>>
+<<if $debug is 1>>
+	<<link [[Reload|Sextoys Inventory]]>><</link>>
+	<br>
+<</if>>
 
 <<link [[Leave|$sextoyInvReturnLink]]>><<unset $sextoyInvReturnLink>><</link>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-adultshop/shop.twee b/game/overworld-town/loc-adultshop/shop.twee
index 51d31b05e9c4d99a4f43135b906d9c60c4a5725b..1cbb0cc17dfb3b5752df60340012d74f5cd8c9e0 100644
--- a/game/overworld-town/loc-adultshop/shop.twee
+++ b/game/overworld-town/loc-adultshop/shop.twee
@@ -171,13 +171,13 @@
 <<effects>>
 <<ShowUnderEquip "over">>
 <<ShowUnderEquip "normal">>
-<<if $skulduggery lt 90>>
+<<if currentSkillValue('skulduggery') lt 90>>
 	Sirris watches the entrance out of the corner of <<nnpc_his "Sirris">> eye. There's no other way out, so you put everything back before leaving.
 	<<clothingReset>>
 <<else>>
 	<<set $rng to random(0,100)>>
-	<<if $crime gte 50000 or ($crime gte 40000 and $rng * 20 gte $skulduggery) or ($crime gte 25000 and $rng * 10 gte $skulduggery)
-	or ($crime gte 10000 and $rng * 5 gte $skulduggery)>>
+	<<if $crime gte 50000 or ($crime gte 40000 and $rng * 20 gte currentSkillValue('skulduggery')) or ($crime gte 25000 and $rng * 10 gte $skulduggery)
+	or ($crime gte 10000 and $rng * 5 gte currentSkillValue('skulduggery'))>>
 		<<generate1>><<person1>>
 		Sirris watches the entrance out of the corner of <<nnpc_his "Sirris">> eye, and as you try to stroll past, <<he>> stops you.
 		<br><br>
@@ -344,7 +344,7 @@ You decide to run and hide.
 <<set $outside to 0>><<effects>><<set $lock to 250>>
 A standard cash register sits on a counter. It's locked tight.
 <br><br>
-<<if $skulduggery gte $lock>>
+<<if currentSkillValue('skulduggery') gte $lock>>
 	<span class="green">The lock looks easy to pick.</span>
 	<br><br>
 	<<lockpickicon>><<link [[Pick it (0:10)|Adult Shop Register Sneak]]>><<pass 10>><<crimeup 1>><</link>><<crime>>
@@ -365,7 +365,7 @@ A standard cash register sits on a counter. It's locked tight.
 You deftly open the cash register and count out the money inside.
 There's <<printmoney $tip>>.
 <br><br>
-<<if $skulduggery lt 300>>
+<<if currentSkillValue('skulduggery') lt 300>>
 	<<skulduggeryskilluse>>
 <<else>>
 	<span class="blue">There's nothing more you can learn from locks this simple.</span>
diff --git a/game/overworld-town/loc-adultshop/widgets.twee b/game/overworld-town/loc-adultshop/widgets.twee
index 3efc04308b106575e7bb47dc13e2309f7de27b3a..49d7a5d715539dc93e92ebe46e2708a9323ef07b 100644
--- a/game/overworld-town/loc-adultshop/widgets.twee
+++ b/game/overworld-town/loc-adultshop/widgets.twee
@@ -3,7 +3,7 @@
 <<widget "adultShopEvents">>
 	<<endevent>><<generateAdultShopCustomer 1>>
 
-	<<set _reactTone to either("scoffs","exclaims","laments quitely","facepalms","glares and rolls <<his>> eyes")>>
+	<<set _reactTone to either("scoffs","exclaims","laments quietly","facepalms","glares and rolls <<his>> eyes")>>
 	<<set _reactSpeech to ["That's not appropriate."]>>
 	<<set _reactPerson to "Sirris">>
 	<<set _reactTitle to "The science teacher">>
@@ -18,7 +18,7 @@
 			"W-wha... Please be mindful."
 		]>>
 		<<set _reactTone to either("scoffs","exclaims","mutters while covering <<nnpc_his \"Sydney\">> eyes","retreats behind the counter")>>
-		<<sydneyStatusCheck>>
+		<<run statusCheck("Sydney")>>
 		<<if _sydneyStatus.includes("corrupt")>>
 			<<set _reactPerson to "Sydney">>
 				<<set _reactSpeech to [
@@ -38,7 +38,7 @@
 		<</if>>
 		<<set _reactTitle to "the " + $NPCName[$NPCNameList.indexOf("Sydney")].title + ($NPCName[$NPCNameList.indexOf("Sydney")].gender is "m" ? " boy" : " girl")>>
 		<<set _reactTitle to "Sydney">>
-   		<<set _reactPerson to "Sydney">>
+		<<set _reactPerson to "Sydney">>
 	<<else>>
 		<<set _reactSpeech.push(
 			"Naughty! What ever will I do with you?",
@@ -128,7 +128,7 @@
 			<<if _wraithEvent is true>>
 				You hear a breathless voice whisper in your ear.
 				<br>
-				"<span class="wraith"><<print either("Wracked with your charm. Circled like prey","We are not dead. We have ever lived.","The fire in the sky is extinguished","What once was is now away. All longing and pain","Fall to my arms, hold their mesmeric sway","I'm a prayer for your loneliness","In the pool of dreams, the water darkens")>>.</span>"
+				"<span class="wraith"><<print either("Wracked with your charm. Circled like prey","We are not dead. We have ever lived.","The fire in the sky is extinguished","What once was is now away. All longing and pain","Fall to my arms, hold their mesmeric sway","I'm a prayer for your loneliness","In the pool of dreams, the water darkens","<<pcPetname \"Wraith\">> mine")>>.</span>"
 				<br>
 				Startled, you knock over a display of <<print either("lubricants","ball gags","strokers","dildos")>>. Spinning about, there's no one behind you.
 				<<stress 12>><<ggstress>><<trauma 4>><<gtrauma>>
@@ -157,12 +157,12 @@
 	<<if _reactPerson is "Sirris">>
 		<<switch random(0,8)>>
 		<<case 0>>
-			<<set $_topic to either("running your own business","pegging","various lubricant brands","butt plugs","hygiene","body paint","dildos","strokers","various condom types","vibrators","condoms vs. diaphrams")>>
+			<<set $_topic to either("running your own business","pegging","various lubricant brands","butt plugs","hygiene","body paint","dildos","strokers","various condom types","vibrators","condoms vs. diaphragms")>>
 			<<if random(1) is 0>>
 			_reactPerson discusses the merits of $_topic with a <<person1>><<person>>.
 			<<else>>
 			<<generateAdultShopCustomer 2 "partner">>
-			_reactPerson discusses the merits of $_topic with a <<person1>><<person>> and a <<person2>><<person>>.
+			_reactPerson discusses the merits of $_topic with a <<fullGroup>>.
 			<</if>>
 		<<case 1 2 3>>
 			_reactPerson works the till.
@@ -170,11 +170,11 @@
 			_reactPerson is showing customers various <<print either("dildos","strap-ons","butt plugs","lubricants","ball gags","latex outfits","chastity devices")>>.
 		<<case 6>>
 			<<generateAdultShopCustomer 2 "partner">>
-			_reactPerson discusses couples <<print either("strap-ons","roleplay","costumes","dildos","bondage wear")>> with a <<person1>><<person>> and a <<person2>><<person>>.
+			_reactPerson discusses couples <<print either("strap-ons","roleplay","costumes","dildos","bondage wear")>> with a <<fullGroup>>.
 		<<case 7>>
 			_reactPerson signs for a package.
 		<<case 8>>
-			_reactPerson pours through documents.
+			_reactPerson pores through documents.
 		<</switch>>
 	<<else>>
 		<<switch random(0,7)>>
@@ -187,7 +187,7 @@
 		<<case 4>>
 			_reactPerson is coming out of the stock room, pushing a dolly of stock.
 		<<case 5>>
-			_reactPerson pours over a clipboard.
+			_reactPerson pores over a clipboard.
 		<<case 6>>
 			<<if !_sydneyStatus.includes("corrupt")>>
 				_reactPerson dodges a handsy customer and retreats behind the counter.
@@ -307,17 +307,17 @@
 <</widget>>
 
 <<widget "giveNPCsextoy">>
-    /* args[0] = NPC index */
-    /* args[1] = Toy name. Possible toys: ("dildo","length of anal beads","riding crop","flog") */
+	/* args[0] = NPC index */
+	/* args[1] = Toy name. Possible toys: ("dildo","length of anal beads","riding crop","flog") */
 	/* args[2] = Hand. Left blank it will select a random hand */
 
-    <<if _args[0] isnot undefined and _args[1]>>
-        <<set $_npc to _args[0]>>
-        <<set $_toy to _args[1]>>
+	<<if _args[0] isnot undefined and _args[1]>>
+		<<set $_npc to _args[0]>>
+		<<set $_toy to _args[1]>>
 
 		<<if _args[2] isnot undefined>>
 			<<set $NPCList[$_npc][_args[2]+"tool"] to $_toy>>
-            <<set $NPCList[$_npc][_args[2]+"hand"] to "dildo_reveal">>
+			<<set $NPCList[$_npc][_args[2]+"hand"] to "dildo_reveal">>
 		<<else>>
 			<<if random(0,1) is 0>>
 				<<set $NPCList[$_npc].lefttool to $_toy>>
@@ -339,7 +339,7 @@
 		<<set $_youcanhelp to "You can help Sydney here on Fridays after 4pm.">>
 		<br>
 		<<if $adultshopprogress gte 22>>
-			$_theshop's official opening is on Friday from 4pm.
+			$_theshop's official opening is tomorrow.
 		<<elseif $adultshopprogress gte 18>>
 			$_theshop is nearing completion. $_youcanhelp
 		<<elseif $adultshopprogress gte 14>>
@@ -356,7 +356,6 @@
 <</widget>>
 
 <<widget "adultshopclerkevents">>
-	<<generateAdultShopCustomer 1>>
 	<<cleareventpool>>
 	<<adultShopWage>>
 
@@ -381,7 +380,7 @@
 	<</addinlineevent>>
 
 	<<addinlineevent "vipnope" 0.1>>
-		A <<person1>><<person>> steps through the doors in expensive-looking business attire. As you make eye contact, <<he>> spins on <<his>> heels to stroll out the door while whistling a tune.
+		A <<generateAdultShopCustomer 1>><<person1>><<person>> steps through the doors in expensive-looking business attire. As you make eye contact, <<he>> spins on <<his>> heels to stroll out the door while whistling a tune.
 		<br><br>
 		You earn <<moneyGain _wage>>.<<npcincr Sirris love 1>><<glove "Sirris">>
 		<br><br>
@@ -551,28 +550,15 @@
 		<<addevent "sydneyEvent3HumblePeddlerofHonestWares" 1>>
 		<<addevent "sydneyEvent4Backrooms" 1>>
 
-		<<addinlineevent "whitneydildothief" 1>>
-			<<endevent>>
-			As you step into the store you hear Sydney yelling. "Hey, put that down and get out of here!"
-			<br><br>
-			You turn to see Whitney flash you a rakish grin as <<nnpc_he Whitney>> shoves past with a hand full of dildos.
-			<br><br>
-			<<link [[Approach Sydney|Adult Shop Dildo Thief Approach Sydney]]>><<set $phase to 0>><</link>>
-			<<if $submissive lte 850 or $debug is 1>>
-				<br>
-				<<link [[Chase Whitney|Adult Shop Dildo Thief Chase 1]]>><</link>>
-			<</if>>
-		<</addinlineevent>>
-
 		<<addinlineevent "sydneyCustomerDildoFlirt" 1>>
 			<<generateAdultShopCustomer 1>><<person1>>
-			<<sydneyStatusCheck>>
+			<<run statusCheck("Sydney")>>
 			<<npc "Sydney" 2>>
 			<<set _toy to randomSexToy("dildos and whips")>><<set $shoptoy to _toy>>
 
 			A <<person>> enters the shop and after a few minutes makes a selection. On <<his>> way to the checkout <<he>> comes to a stop, <<his>> eyes falling on you.
 			<br><br>
-			"Hey, I'm thinking of buying this but I don't know," <<He>> sets the _toy on the counter. "It'd be kind of boring by myself. How about you help me try it out, see if it suits my needs?"
+			"Hey, I'm thinking of buying this but I don't know." <<He>> sets the _toy on the counter. "It'd be kind of boring by myself. How about you help me try it out, see if it suits my needs?"
 			<br><br>
 			<<person2>>
 			<<if _sydneyStatus.includes("pure")>>
@@ -691,37 +677,11 @@
 
 	<<if $angel gte 4 or $player.virginity.penile is true and $player.virginity.vaginal is true or $player.temple_virginity is true>>
 		<<addinlineevent "defilethepure" 0.5>>
-			<<set _sheila to "little gal">>
-			<<switch $bodysize>>
-				<<case 0>>
-					<<if $player.gender_appearance is "m">>
-						<<set _sheila to "little boy">>
-					<<else>>
-						<<set _sheila to "little girl">>
-					<</if>>
-				<<case 1>>
-					<<if $player.gender_appearance is "m">>
-						<<set _sheila to "little guy">>
-					<<else>>
-						<<set _sheila to "little gal">>
-					<</if>>
-				<<case 2>>
-					<<if $player.gender_appearance is "m">>
-						<<set _sheila to "lad">>
-					<<else>>
-						<<set _sheila to "lass">>
-					<</if>>
-				<<case 3>>
-					<<if $player.gender_appearance is "m">>
-						<<set _sheila to "big guy">>
-					<<else>>
-						<<set _sheila to "big gal">>
-					<</if>>
-			<</switch>>
+			<<set _sheila to ["<<girl>>","<<girl>>","<<lass>>"].pluck()>>
 			<<generateAdultShopCustomer 1>><<person1>>
 			<<set _toy to randomSexToy("dildos and whips")>>
 			<<giveNPCsextoy 0 _toy>>
-			A  <<person>> enters the shop. <<He>> glances in your direction, then stops and has a double take. You can practically see <<him>> salivate as <<he>> ogles you. <<gstress>><<stress 2>>
+			A <<person>> enters the shop. <<He>> glances in your direction, then stops and has a double take. You can practically see <<him>> salivate as <<he>> ogles you. <<gstress>><<stress 2>>
 			<br><br>
 			<<He>> picks up a _toy as <<he>> approaches the counter.
 			"What's a pure _sheila like you doing in a place like this?"
diff --git a/game/overworld-town/loc-alley/events.twee b/game/overworld-town/loc-alley/events.twee
index 11606c8100cabc9d0cc3332b590e015309095c0b..e5b2759c5e5f5510097b3b07eff64c97bf3e9449 100644
--- a/game/overworld-town/loc-alley/events.twee
+++ b/game/overworld-town/loc-alley/events.twee
@@ -651,7 +651,7 @@ You are on the rooftop of a commercial building. You can access the shopping cen
 At the sound of their approach, the <<beasttype>> ceases its adventure and bounds away.
 <br><br>
 <<endcombat>>
-<<generatey1>><<generatey2>>Before you can recover, you are discovered by a <<person1>><<person>> and a <<person2>><<person>>.
+<<generatey1>><<generatey2>>Before you can recover, you are discovered by a <<fullGroup>>.
 <br><br>
 <<set $danger to random(1, 10000)>><<set $dangerstreet to 0>>
 <<if $danger gte (9900 - ($allure * 3))>>
@@ -662,7 +662,7 @@ At the sound of their approach, the <<beasttype>> ceases its adventure and bound
 	<<link [[Next|Residential Pair]]>><<set $molestationstart to 1>><</link>>
 	<br>
 <<else>>
-	Seeing you in distress, the <<person1>><<person>> and <<person2>><<person>> help you to your feet.
+	Seeing you in distress, the <<fullGroup>> help you to your feet.
 	<br><br>
 	<<set $rescued += 1>>
 	<<clothesontowel>>
diff --git a/game/overworld-town/loc-alley/park.twee b/game/overworld-town/loc-alley/park.twee
index 1a3f0a2d24068b320af23d2c4bb6078b1c8e6f5a..e6609a569279b2a625097f58c540db9b71c8bc08 100644
--- a/game/overworld-town/loc-alley/park.twee
+++ b/game/overworld-town/loc-alley/park.twee
@@ -13,11 +13,11 @@ You are in the park.
 		Many people are out, walking their dogs or jogging. You hear children in the playground.
 	<</if>>
 <<elseif $daystate is "dusk">>
-	There are many people around. Teenagers hang out in the playground.
+	There are many people around. Students hang out in the playground.
 <<elseif $daystate is "night">>
-	<<if $famepark gte 60>>
+	<<if $park_fame gte 60>>
 		<span class="pink">Creepy figures lurk in the shadows.</span> <i>News of your lewd running has spread. Don't run while exposed for several days if you want it to cool off.</i>
-	<<elseif $famepark gte 20>>
+	<<elseif $park_fame gte 20>>
 		<span class="pink">You think you're being watched.</span> <i>News of your lewd running has spread. Don't run while exposed for a few days if you want it to cool off.</i>
 	<<else>>
 		There is no one around.
@@ -41,7 +41,7 @@ Tulips grow in great patches near the riverbank.
 <<if $stress gte $stressmax and !$possessed>>
 	<<passoutpark>>
 <<else>>
-	<<run getRobinLocation()>>
+	<<run statusCheck("Robin")>>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if ($halloween_kylar is 1 or $NPCName[$NPCNameList.indexOf("Kylar")].love gte 60) and $halloween_kylar_proposed isnot 1 and $daystate is "night" and $NPCName[$NPCNameList.indexOf("Kylar")].init is 1 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($halloween is 1 and $monthday is 31 and $hour gte 21 or $month is "november" and $monthday is 1 and $hour lte 6) and !$possessed>>
 		<<halloweenkylar>>
@@ -57,13 +57,30 @@ Tulips grow in great patches near the riverbank.
 			"I don't believe it!" <<he>> squeals as <<he>> buries <<himself>> in your chest. "I-I thought you were gone forever! We need to talk about this at home. When you're ready."
 			<br><br>
 
-			You're led back to their stand. A small picture of the two of you sits on top. Robin puts it away.
+			You're led back to <<his>> stand. A small picture of the two of you sits on top. <<He>> puts it away.
 			<br>
 			<<He>> fixes you a cup of hot chocolate and sends you on your way.
 			<br>
 			"Don't forget to see me later," <<he>> says with a worried expression. "I'm always here for you if you need to talk."
 			<br><br>
 
+			<<link [[Next|Park]]>><<set $eventskip to 1>><<endevent>><</link>>
+			<br>
+		<<elseif $robinReunionScene is "dungeonRobin">>
+			<<unset $robinReunionScene>>
+			You see Robin stood behind <<his>> hot chocolate stand. <<His>> mouth goes agape as <<he>> sees you, and <<he>> sprints towards you.
+			<br><br>
+
+			"You made it out!" <<he>> squeals as <<he>> buries <<himself>> in your chest. "When you were recaptured, I didn't know what I was going to do."
+			<br><br>
+
+			You're led back to <<his>> stand. A small picture of the two of you sits on top. <<He>> puts it away.
+			<br>
+			<<He>> fixes you a cup of hot chocolate and sends you on your way.
+			<br>
+			"Don't forget to see me later," <<he>> says with a worried expression. "I'm always here for you, never forget that."
+			<br><br>
+
 			<<link [[Next|Park]]>><<set $eventskip to 1>><<endevent>><</link>>
 			<br>
 		<<elseif $robinReunionScene is "asylum">>
@@ -73,12 +90,12 @@ Tulips grow in great patches near the riverbank.
 			<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
 				<<He>> stares at you in disbelief.
 				<br><br>
-				
+
 				"Hi," <<he>> says quietly as you draw close. "I thought the doctors took you away. I would've tried to get you something had I known you were c-coming back," Robin's voice quivers.
 			<<else>>
 				<<He>> excitedly beckons you over when <<he>> sees you.
 				<br><br>
-				
+
 				"Hey, you're out!" <<he>> says as you draw close. "I thought you were staying at the doctor's for a while. I would've prepared something had I known you were coming back," Robin explains.
 			<</if>>
 			<br><br>
@@ -93,7 +110,7 @@ Tulips grow in great patches near the riverbank.
 			<</if>>
 			<br>
 			The two of you make small talk for a bit. Eventually, Robin says <<he>> needs to get back to <<his>> stand.
-			
+
 			<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
 				<<He>> slowly shuffles away, <<his>> gaze glued to the floor.
 			<<else>>
@@ -106,7 +123,7 @@ Tulips grow in great patches near the riverbank.
 		<<else>>
 			You spot Robin at <<his>> hot chocolate stand. <<His>> eyes pass over you momentarily, but <<he>> doesn't stare. It's as if <<he>> doesn't even recognise you.
 			<br><br>
-			
+
 			<<link [[Next|Park]]>><<set $eventskip to 1>><<endevent>><</link>>
 			<br>
 		<</if>>
@@ -128,12 +145,12 @@ Tulips grow in great patches near the riverbank.
 		<br>
 		<<if $exposed lte 0>>
 			<<if $scienceproject is "ongoing" and $sciencelichenknown is 1 and $sciencelichenpark is 0>>
-				<<link [[Examine lichen for science project|Park Lichen]]>><</link>>
+				<<ind>><<link [[Examine lichen for science project|Park Lichen]]>><</link>>
 				<br>
 			<</if>>
 			<<if !$plants_known.includes("tulip")>>
 				<<if $sciencetrait gte 1>>
-					<<link [[Search for seeds (0:30)|Park Tulip]]>><<set $plants_known.push("tulip")>><<pass 30>><<tending 6>><</link>><<gtending>>
+					<<ind>><<link [[Search for seeds (0:30)|Park Tulip]]>><<set $plants_known.push("tulip")>><<pass 30>><<tending 6>><</link>><<gtending>>
 					<br>
 				<<else>>
 					<span class="blue">A higher science skill would let you harvest tulip seeds.</span>
diff --git a/game/overworld-town/loc-alley/residential.twee b/game/overworld-town/loc-alley/residential.twee
index d17c7f61e1d3797a76acad2a649613c1bafd47dd..f08510d07f24f9f5e5f38d30142d024567231e4c 100644
--- a/game/overworld-town/loc-alley/residential.twee
+++ b/game/overworld-town/loc-alley/residential.twee
@@ -153,7 +153,7 @@ Purring seductively, you drop to the ground and assume a mating posture.
 	The <<beasttypes>> eyes light up, eager to follow your lead. <<bHe>> purrs back. "Thank you for choosing me," <<bhe>> says.
 	<<bHe>> climbs on top of you and humps as <<bhe>> struggles to find purchase. You grab <<bhis>> arm, pulling <<bhim>> away from your body. You have <<bhim>> roll onto <<bhis>> back before rubbing <<bhis>> belly.
 <<else>>
-	 Eager, it leaps on top of you and humps as it struggles to find purchase. You grab it by the scruff and pull it away from your body, lay it on its back, and rub its belly.
+	Eager, it leaps on top of you and humps as it struggles to find purchase. You grab it by the scruff and pull it away from your body, lay it on its back, and rub its belly.
 <</if>>
 <<bHe>> meows in frustration as <<bhe>> struggles free, and leaps onto a nearby wall before disappearing behind it.
 <<deviancy1>>
@@ -267,7 +267,7 @@ The <<beasttype>> hisses and flees into the dark. <<if $monster is 1>>"No fun."<
 
 <<else>>
 
-The <<beasttype>> growls, but relents in <<bhis>> attempt to breed. <<if $monster is 1>>Should have known better," <<bhe>> mutters to <<bhimself>>.<</if>> <<bHe>> bounds away into the dark.
+The <<beasttype>> growls, but relents in <<bhis>> attempt to <<if $pregnancyspeechdisable is "f">>breed<<else>>mate<</if>>. <<if $monster is 1>>"Should have known better," <<bhe>> mutters to <<bhimself>>.<</if>> <<bHe>> bounds away into the dark.
 <br><br>
 
 <<tearful>> you gather yourself.
diff --git a/game/overworld-town/loc-alley/widgets.twee b/game/overworld-town/loc-alley/widgets.twee
index ee8725d02d2089b23bf1a351f302669672f6ca55..d484df22b7f647bca7efe656aa3e3b96607cfc49 100644
--- a/game/overworld-town/loc-alley/widgets.twee
+++ b/game/overworld-town/loc-alley/widgets.twee
@@ -155,7 +155,7 @@ You reach into the box. It's empty. There's a loose grate beneath it.
 <<widget "residentialex2">>
 <<beastNEWinit 1 dog>>
 <<if $monster is 1 or $bestialitydisable is "f">>
-	You continue on, your heart pounding in your chest. You hear voices up ahead, so you move into a blind alley and duck behind a dumpster. The voices get louder, it sounds like a pair of teenagers. They stop at the end of the alley, trapping you. As you look around for an escape route you notice a stray <<beasttype>> looking at you from under a discarded newspaper.
+	You continue on, your heart pounding in your chest. You hear voices up ahead, so you move into a blind alley and duck behind a dumpster. The voices get louder, you recognize them from school. They stop at the end of the alley, trapping you. As you look around for an escape route you notice a stray <<beasttype>> looking at you from under a discarded newspaper.
 	<br><br>
 
 	<<bHe>> walks over to you, tail wagging, and begins barking. You hope it doesn't attract attention to you.
@@ -172,7 +172,7 @@ You reach into the box. It's empty. There's a loose grate beneath it.
 	<</if>>
 	<br><br>
 <<else>>
-	You continue on, your heart pounding in your chest. You hear voices up ahead, so you move into a blind alley and duck behind a dumpster. The voices get louder, it sounds like a pair of teenagers. They stop at the end of the alley, trapping you. As you look around for an escape route you notice a stray <<beasttype>> looking at you from under a discarded newspaper.
+	You continue on, your heart pounding in your chest. You hear voices up ahead, so you move into a blind alley and duck behind a dumpster. The voices get louder, you recognize them from school. They stop at the end of the alley, trapping you. As you look around for an escape route you notice a stray <<beasttype>> looking at you from under a discarded newspaper.
 	<br><br>
 
 	<<bHe>> growls, <span class="red">alerting the pair.</span> You hear them approach.
diff --git a/game/overworld-town/loc-arcade/main.twee b/game/overworld-town/loc-arcade/main.twee
index b170f84907f5db575846b9dd2cce66193be394e0..07eaf4021acc97e15675d854d96fc9b095370b38 100644
--- a/game/overworld-town/loc-arcade/main.twee
+++ b/game/overworld-town/loc-arcade/main.twee
@@ -92,7 +92,7 @@ The games and gambling machines lie silent.
 <<if $leftarm is "bound" and $rightarm is "bound">>
 	Playing arcade games with both hands tied behind your back turns out to be <<print either("tricky.","exactly as hard as you'd imagine.","hard. Unsurprisingly.")>>
 	<<print either("You lose almost instantly.","In just seconds, your grizzled survivor is zombie food.","In just seconds, your brave soldier is alien food.","In barely a minute, your brave crew are shark meat.")>>
-	<<if $rng lte 34>><<generatey1>><<person1>>A few kids nearby witness your crushing defeat. One starts to mimic you, <<print either("gurning","pulling a stupid-face","gazing stupidly")>> over <<his>> shoulder at the screen
+	<<if $rng lte 34>><<generatey1>><<person1>>A few students nearby witness your crushing defeat. One starts to mimic you, <<print either("gurning","pulling a stupid-face","gazing stupidly")>> over <<his>> shoulder at the screen
 		while <<print either("trying to reach","flapping at","slapping at")>> the controllers with <<his>> hands behind <<his>> back.
 		<br>
 		<<His>> cronies find this hilarious.
@@ -467,7 +467,7 @@ The claw rests above your chest, then plunges down toward your $worn.upper.name.
 			<<link [[Next|Arcade Crane 2]]>><<set $phase += 1>><</link>>
 		<<else>>
 			<<endevent>><<generate1>><<person1>>
-			"What you kids up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
+			"What you up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
 			<br><br>
 			The <<person>> walks into view. <<He>> gapes at the sight of you. Snapping to attention, <<he>> crouches beside the machine. A hatch opens after a few moments of <<his>> fiddling. <<He>> reaches in, and unties the cables that bind you.
 			<br><br>
@@ -477,7 +477,7 @@ The claw rests above your chest, then plunges down toward your $worn.upper.name.
 				<<towelup>>
 				<</if>>
 			<br><br>
-			"I can't believe how cruel some kids can be," <<he>> says, shaking <<his>> head. "You go careful now."
+			"I can't believe how cruel some people can be," <<he>> says, shaking <<his>> head. "You go careful now."
 			<br><br>
 
 			<<endevent>>
@@ -536,7 +536,7 @@ The claw rests above your thighs, then plunges down toward your $worn.lower.name
 			<<link [[Next|Arcade Crane 2]]>><<set $phase += 1>><</link>>
 		<<else>>
 			<<endevent>><<generate1>><<person1>>
-			"What you kids up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
+			"What you up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
 			<br><br>
 			The <<person>> walks into view. <<He>> gapes at the sight of you. Snapping to attention, <<he>> crouches beside the machine. A hatch opens after a few moments of <<his>> fiddling. <<He>> reaches in, and unties the cables that bind you.
 			<br><br>
@@ -546,7 +546,7 @@ The claw rests above your thighs, then plunges down toward your $worn.lower.name
 				<<towelup>>
 				<</if>>
 			<br><br>
-			"I can't believe how cruel some kids can be," <<he>> says, shaking <<his>> head. "You go careful now."
+			"I can't believe how cruel some people can be," <<he>> says, shaking <<his>> head. "You go careful now."
 			<br><br>
 
 			<<endevent>>
@@ -594,7 +594,7 @@ The claw rests above your thighs, then plunges down toward your $worn.under_uppe
 			<<link [[Next|Arcade Crane 2]]>><<set $phase += 1>><</link>>
 		<<else>>
 			<<endevent>><<generate1>><<person1>>
-			"What you kids up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
+			"What you up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
 			<br><br>
 			The <<person>> walks into view. <<He>> gapes at the sight of you. Snapping to attention, <<he>> crouches beside the machine. A hatch opens after a few moments of <<his>> fiddling. <<He>> reaches in, and unties the cables that bind you.
 			<br><br>
@@ -604,7 +604,7 @@ The claw rests above your thighs, then plunges down toward your $worn.under_uppe
 				<<towelup>>
 				<</if>>
 			<br><br>
-			"I can't believe how cruel some kids can be," <<he>> says, shaking <<his>> head. "You go careful now."
+			"I can't believe how cruel some people can be," <<he>> says, shaking <<his>> head. "You go careful now."
 			<br><br>
 
 			<<endevent>>
@@ -663,7 +663,7 @@ The claw rests above your thighs, then plunges down toward your $worn.under_lowe
 			<<link [[Next|Arcade Crane 2]]>><<set $phase += 1>><</link>>
 		<<else>>
 			<<endevent>><<generate1>><<person1>>
-			"What you kids up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
+			"What you up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
 			<br><br>
 			The <<person>> walks into view. <<He>> gapes at the sight of you. Snapping to attention, <<he>> crouches beside the machine. A hatch opens after a few moments of <<his>> fiddling. <<He>> reaches in, and unties the cables that bind you.
 			<br><br>
@@ -673,7 +673,7 @@ The claw rests above your thighs, then plunges down toward your $worn.under_lowe
 				<<towelup>>
 				<</if>>
 			<br><br>
-			"I can't believe how cruel some kids can be," <<he>> says, shaking <<his>> head. "You go careful now."
+			"I can't believe how cruel some people can be," <<he>> says, shaking <<his>> head. "You go careful now."
 			<br><br>
 
 			<<endevent>>
@@ -694,10 +694,10 @@ The claw rests above your thighs, then plunges down toward your $worn.under_lowe
 
 <<else>>
 	You lie helpless as the <<person>> and <<his>> friends pull phones from pockets and take pictures. You continue to test your bindings, but it's no use.
-	<<fameexhibitionism 20 pic>>
+	<<fameexhibitionism 20 "pic">>
 	<br><br>
 	<<endevent>><<generate1>><<person1>>
-	"What you kids up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
+	"What you up to over there?" a <<person>> shouts from somewhere out of view. The crowd turn and flee.
 	<br><br>
 	The <<person>> walks into view. <<He>> gapes at the sight of you. Snapping to attention, <<he>> crouches beside the machine. A hatch opens after a few moments of <<his>> fiddling. <<He>> reaches in, and unties the cables that bind you.
 	<br><br>
@@ -705,7 +705,7 @@ The claw rests above your thighs, then plunges down toward your $worn.under_lowe
 	<<towelup>>
 	<br><br>
 
-	"I can't believe how cruel some kids can be," <<he>> says, shaking <<his>> head. "You go careful now."
+	"I can't believe how cruel some people can be," <<he>> says, shaking <<his>> head. "You go careful now."
 	<br><br>
 
 	<<endevent>>
@@ -952,7 +952,7 @@ You emerge victorious. The tentacles recoil back into the screen. A new high sco
 You wake up to the sound of a running car engine. You're in what looks to be the back of a van. You see the Tenyclus cabinet on its side against the wall.
 <br><br>
 
-Your arms and legs are bound. Before you're able to do anything, the van backdoors open. A <<person1>><<person>> and a <<person2>><<person>> enter the back of the van, dressed all in black.
+Your arms and legs are bound. Before you're able to do anything, the van backdoors open. A <<fullGroup>> enter the back of the van, dressed all in black.
 They begin to remove your clothes, before grabbing you by the shoulder and pulling you closer.
 <br><br>
 
@@ -1010,7 +1010,7 @@ They begin to remove your clothes, before grabbing you by the shoulder and pulli
 When you open your eyes, you're back in your room at the orphanage. Your head is still spinning. How did you get here?
 <br><br>
 
-You vaguely remember a large building that resembles a factory, and the color pink. So much pink. Your thoughts begin to drift, and soon enough, the memory is gone. Something else is gone, too. <<awareness -200>><<lllawareness>>
+You vaguely remember a large building that resembles a factory, and the colour pink. So much pink. Your thoughts begin to drift, and soon enough, the memory is gone. Something else is gone, too. <<awareness -200>><<lllawareness>>
 <br><br>
 
 <<link [[Next|Bedroom]]>><<endevent>><<set $eventskip to 1>><</link>>
diff --git a/game/overworld-town/loc-arcade/widgets.twee b/game/overworld-town/loc-arcade/widgets.twee
index ba6158d62da1d8e766fbc4063b011cac481bbea8..de956dcde9896c77c5b9c4f0bc89e4446d6516ec 100644
--- a/game/overworld-town/loc-arcade/widgets.twee
+++ b/game/overworld-town/loc-arcade/widgets.twee
@@ -9,38 +9,106 @@
 <</widget>>
 
 <<widget "tenyclusPlay">>
-<<if $tenyclusRounds is undefined or $tenyclusRounds is 0>>
-	<<set $tenyclusRounds to 10>><<set $tenyclusLives to 3>>
-<</if>>
-<<if $tenyclusPlayCount is 3>>
-	<<pass 15>>
-<</if>>
-<<switch random(1, 22)>>
-	<<case 1>> You're able to achieve a new high score. <<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
-	<<case 2>> That was a close one! You almost lost a life. <<control 5>><<stress 3>><<gcontrol>><<gstress>><<set $tenyclusRounds -=1>>
-	<<case 3>> One alien narrowly misses your shot. <<stress 6>><<gstress>><<set $tenyclusRounds -=2>>
-	<<case 4>> An alien shoots at you! You dodge the shot, by just an inch. <<control -3>><<stress 3>><<lcontrol>><<gstress>><<set $tenyclusRounds -=2>>
-	<<case 5>> You shoot at a pair of aliens. Direct hits! <<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
-	<<case 6>> There's a large amount of aliens to deal with, but you manage to clear the wave. <<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
-	<<case 7>> You feel like the game is getting increasingly more difficult as you play. <<control -3>><<stress 3>><<lcontrol>><<gstress>><<set $tenyclusRounds -=1>>
-	<<case 8>> You feel like the game is getting easier as you play. <<stress -3>><<lstress>><<set $tenyclusRounds -=2>>
-	<<case 9>> You start to feel uneasy. <<stress 6>><<gstress>><<set $tenyclusRounds -=1>>
-	<<case 10>> You feel like someone is watching you. <<stress 6>><<gstress>><<set $tenyclusRounds -=1>>
-	<<case 11>> You feel like something is watching you. <<stress 6>><<gstress>><<set $tenyclusRounds -=1>>
-	<<case 12>> You feel words creeping into your mind. <<control -3>><<arousal 50>><<lcontrol>><<garousal>><<set $tenyclusRounds -=1>>
-	<<case 13>> You feel compelled to do something. You aren't sure what. <<control -6>><<lcontrol>><<set $tenyclusRounds -=1>>
-	<<case 14>> You have a headache. <<stress 3>><<trauma 3>><<gstress>><<gtrauma>><<set $tenyclusRounds -=1>>
-	<<case 15>> You wish you could play this forever. <<set $tenyclusRounds -=2>>
-	<<case 16>> You can't stop playing. It's so addicting! <<control -10>><<stress -6>><<trauma -6>><<lcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
-	<<case 17>> Your eyes are glued to the screen. <<control -3>><<stress -6>><<lcontrol>><<lstress>><<set $tenyclusRounds -=2>>
-	<<case 18>> You just can't stop winning. <<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
-	<<case 19>> You find the tentacle-like creatures oddly arousing. <<arousal 25>><<garousal>><<set $tenyclusRounds -=1>>
-	<<case 20>> <<if $tenyclusLives is 3>>You're hit! You lose a life. <<stress 6>><<set $tenyclusLives -=1>><<gstress>><<elseif $tenyclusLives is 2>>An alien catches you. You lose another life, and kick the machine in frustration. <<pain 5>><<stress 6>><<set $tenyclusLives -=1>><<gpain>><<gstress>><<else>>The aliens have you. You lose your last life. <<control -10>><<stress 6>><<trauma 6>><<set $tenyclusLives -=1>><<lcontrol>><<gstress>><<gtrauma>><</if>>
-	<<case 21>> <<if $tenyclusLives is 3>>You're hit! You lose a life. <<stress 6>><<set $tenyclusLives -=1>><<gstress>><<elseif $tenyclusLives is 2>>An alien catches you. You lose another life, and kick the machine in frustration. <<pain 5>><<stress 6>><<set $tenyclusLives -=1>><<gpain>><<gstress>><<else>>The aliens have you. You lose your last life. <<control -10>><<stress 6>><<trauma 6>><<set $tenyclusLives -=1>><<lcontrol>><<gstress>><<gtrauma>><</if>>
-	<<case 22>> <<if $tenyclusLives is 3>>You're hit! You lose a life. <<stress 6>><<set $tenyclusLives -=1>><<gstress>><<elseif $tenyclusLives is 2>>An alien catches you. You lose another life, and kick the machine in frustration. <<pain 5>><<stress 6>><<set $tenyclusLives -=1>><<gpain>><<gstress>><<else>>The aliens have you. You lose your last life. <<control -10>><<stress 6>><<trauma 6>><<set $tenyclusLives -=1>><<lcontrol>><<gstress>><<gtrauma>><</if>>
+	<<if $tenyclusRounds is undefined or $tenyclusRounds is 0>>
+		<<set $tenyclusRounds to 10>><<set $tenyclusLives to 3>>
+	<</if>>
+	<<if $tenyclusPlayCount is 3>>
+		<<pass 15>>
+	<</if>>
+	<<switch random(1, 22)>>
+	<<case 1>>
+		You're able to achieve a new high score.
+		<<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
+	<<case 2>>
+		That was a close one! You almost lost a life.
+		<<control 5>><<stress 3>><<gcontrol>><<gstress>><<set $tenyclusRounds -=1>>
+	<<case 3>>
+		One alien narrowly misses your shot.
+		<<stress 6>><<gstress>><<set $tenyclusRounds -=2>>
+	<<case 4>>
+		An alien shoots at you! You dodge the shot, by just an inch.
+		<<control -3>><<stress 3>><<lcontrol>><<gstress>><<set $tenyclusRounds -=2>>
+	<<case 5>>
+		You shoot at a pair of aliens. Direct hits!
+		<<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
+	<<case 6>>
+		There's a large amount of aliens to deal with, but you manage to clear the wave.
+		<<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
+	<<case 7>>
+		You feel like the game is getting increasingly more difficult as you play.
+		<<control -3>><<stress 3>><<lcontrol>><<gstress>><<set $tenyclusRounds -=1>>
+	<<case 8>>
+		You feel like the game is getting easier as you play.
+		<<stress -3>><<lstress>><<set $tenyclusRounds -=2>>
+	<<case 9>>
+		You start to feel uneasy.
+		<<stress 6>><<gstress>><<set $tenyclusRounds -=1>>
+	<<case 10>>
+		You feel like someone is watching you.
+		<<stress 6>><<gstress>><<set $tenyclusRounds -=1>>
+	<<case 11>>
+		You feel like something is watching you.
+		<<stress 6>><<gstress>><<set $tenyclusRounds -=1>>
+	<<case 12>>
+		You feel words creeping into your mind.
+		<<control -3>><<arousal 50>><<lcontrol>><<garousal>><<set $tenyclusRounds -=1>>
+	<<case 13>>
+		You feel compelled to do something. You aren't sure what.
+		<<control -6>><<lcontrol>><<set $tenyclusRounds -=1>>
+	<<case 14>>
+		You have a headache.
+		<<stress 3>><<trauma 3>><<gstress>><<gtrauma>><<set $tenyclusRounds -=1>>
+	<<case 15>>
+		You wish you could play this forever.
+		<<set $tenyclusRounds -=2>>
+	<<case 16>>
+		You can't stop playing. It's so addicting!
+		<<control -10>><<stress -6>><<trauma -6>><<lcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
+	<<case 17>>
+		Your eyes are glued to the screen.
+		<<control -3>><<stress -6>><<lcontrol>><<lstress>><<set $tenyclusRounds -=2>>
+	<<case 18>>
+		You just can't stop winning.
+		<<control 5>><<stress -3>><<trauma -3>><<gcontrol>><<lstress>><<ltrauma>><<set $tenyclusRounds -=2>>
+	<<case 19>>
+		You find the tentacle-like creatures oddly arousing.
+		<<arousal 25>><<garousal>><<set $tenyclusRounds -=1>>
+	<<case 20>>
+		<<if $tenyclusLives is 3>>
+			You're hit! You lose a life.
+			<<stress 6>><<set $tenyclusLives -=1>><<gstress>>
+		<<elseif $tenyclusLives is 2>>
+			An alien catches you. You lose another life, and kick the machine in frustration.
+			<<pain 5>><<stress 6>><<set $tenyclusLives -=1>><<gpain>><<gstress>>
+		<<else>>
+			The aliens have you. You lose your last life.
+			<<control -10>><<stress 6>><<trauma 6>><<set $tenyclusLives -=1>><<lcontrol>><<gstress>><<gtrauma>>
+		<</if>>
+	<<case 21>>
+		<<if $tenyclusLives is 3>>
+			You're hit! You lose a life.
+			<<stress 6>><<set $tenyclusLives -=1>><<gstress>>
+		<<elseif $tenyclusLives is 2>>
+			An alien catches you. You lose another life, and kick the machine in frustration.
+			<<pain 5>><<stress 6>><<set $tenyclusLives -=1>><<gpain>><<gstress>>
+		<<else>>
+			The aliens have you. You lose your last life.
+			<<control -10>><<stress 6>><<trauma 6>><<set $tenyclusLives -=1>><<lcontrol>><<gstress>><<gtrauma>>
+		<</if>>
+	<<case 22>>
+		<<if $tenyclusLives is 3>>
+			You're hit! You lose a life.
+			<<stress 6>><<set $tenyclusLives -=1>><<gstress>>
+		<<elseif $tenyclusLives is 2>>
+			An alien catches you. You lose another life, and kick the machine in frustration.
+			<<pain 5>><<stress 6>><<set $tenyclusLives -=1>><<gpain>><<gstress>>
+		<<else>>
+			The aliens have you. You lose your last life.
+			<<control -10>><<stress 6>><<trauma 6>><<set $tenyclusLives -=1>><<lcontrol>><<gstress>><<gtrauma>>
+		<</if>>
 	<<default>>
-<</switch>>
-<br><br>
+	<</switch>>
+	<br><br>
 <</widget>>
 
 <<widget "arcadeEndLink">>
diff --git a/game/overworld-town/loc-beach/events.twee b/game/overworld-town/loc-beach/events.twee
index dbaeec888ddb8a9480b278bae2648bb0e7c85f25..4783b60e382bb10a59da407b1191fd0370ce7e12 100644
--- a/game/overworld-town/loc-beach/events.twee
+++ b/game/overworld-town/loc-beach/events.twee
@@ -125,7 +125,6 @@ You sit on the towel beside <<him>> and lean close. You tell <<him>> <<he>> is a
 	<<He>> blushes with increasing intensity as you continue.
 	<</if>>
 <<promiscuity1>>
-<br><br>
 
 <<link [[Stop|Beach Day Encounter]]>><<set $phase to 3>><</link>>
 <br>
@@ -822,7 +821,7 @@ Having come this far, you submit to the collar being placed round your neck. You
 	You are led deeper into the dunes. You walk for several minutes, conscious of just how exposed and vulnerable you are. Your captors make no attempt to hide how much they enjoy being in a position of power over you, and constantly leer at your body, knowing there's nothing you can do to stop them.
 	<br><br>
 	<<if $rng gte 51 and ($monster is 1 or $bestialitydisable is "f")>>
-		<!-- Jimmy: Looks terrible, but is the safest way to ensure event history is orderly. 
+		<!-- Jimmy: Looks terrible, but is the safest way to ensure event history is orderly.
 					A likely plan will be to have a wrapper/macro for this type of shuffle. (TODO) -->
 		<<saveNPC 0 "beach_abduction_dog_1">>
 		<<saveNPC 1 "beach_abduction_dog_2">>
@@ -840,7 +839,7 @@ Having come this far, you submit to the collar being placed round your neck. You
 		<br><br>
 		<<person2>> The <<person>> speaks in a high-pitched voice, "Who's a good <<beasttype>>! You are! We brought you a bitch, because you're such a good <<beasttype>>!"
 		<<if $monster is 1>>
-			The <<beasttype>> pants heavily in response, <<bhis>> face red from blushing. <<bHis>> intentions are clear. <<bHe>>s craving a mate.
+			The <<beasttype>> pants heavily in response, <<bhis>> face red from blushing. <<bHis>> intentions are clear. <<bHes>> craving a mate.
 		<</if>>
 		<br><br>
 		<<link [[Try to run|Beach Abduction Dog]]>><<set $molestationstart to 1>><<set $phase to 0>><</link>>
@@ -848,7 +847,7 @@ Having come this far, you submit to the collar being placed round your neck. You
 		<<link [[Allow yourself to be led over|Beach Abduction Dog]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
 		<br>
 	<<else>>
-		<<generatey3>><<generatey4>><<generatey5>><<generatey6>>You come to a relatively flat area, surrounded by dunes on all sides, shielding it from view. Four teenagers sit smoking in the centre. Your feelings of humiliation reach a new height as the new pairs of eyes see you in your shameful situation. Their initial shock quickly subsides, leaving a bare and primal lust.
+		<<generatey3>><<generatey4>><<generatey5>><<generatey6>>You come to a relatively flat area, surrounded by dunes on all sides, shielding it from view. Four students sit smoking in the centre. Your feelings of humiliation reach a new height as the new pairs of eyes see you in your shameful situation. Their initial shock quickly subsides, leaving a bare and primal lust.
 		<br><br>
 		The <<person2>><<person>> leads you into the middle of the group, their eyes feasting on every inch of your body. "We found this piece of trash near the beach. Can't believe anyone would just leave it laying around, no respect at all," the <<person1>><<person>> <<if $worn.genitals.type.includes("chastity")>>attempts to break<<else>>starts fondling<<set $worn.genitals.integrity -= 50>><</if>> your <<genitals>> in front of everyone, causing your breath to catch in your chest. The rest of the group take the cue. Arms reach out from all around you, each wanting their share.
 		<br><br>
@@ -885,7 +884,7 @@ Having come this far, you submit to the collar being placed round your neck. You
 <<else>>
 	<<if $orgasmdown gte 1 and $phase is 1>><<set $phase to 0>>
 		"I can't believe it," the <<person2>><<person>> shouts with joy, "You're actually cumming from being raped by <<if $monster is 1>>a <<beasttype>><<else>>an animal<</if>>. This is fantastic." You feel utterly humiliated.
-		<<trauma 6>><<famebestiality 10>><<famebestiality 10>>
+		<<trauma 6>><<famebestiality 20>>
 	<<else>>
 		The <<person2>><<person>> and <<person3>><<person>> are enjoying the show.
 	<</if>>
@@ -937,7 +936,7 @@ Having come this far, you submit to the collar being placed round your neck. You
 	<br><br>
 <</if>>
 
-The <<person2>><<person>> and <<person3>><<person>> applaud. "Bred like the bitch you are," the <<person>> exclaims as <<he>> unties your bonds. The <<person2>><<person>> throws you the fabric they promised. "You can keep the collar. It suits you." Laughing, they leave you lying disgraced on the sand. <<tearful>> you struggle to your feet.
+The <<person2>><<person>> and <<person3>><<person>> applaud. "<<if $pregnancyspeechdisable is "f">>Bred<<else>>Fucked<</if>> like the bitch you are," the <<person>> exclaims as <<he>> unties your bonds. The <<person2>><<person>> throws you the fabric they promised. "You can keep the collar. It suits you." Laughing, they leave you lying disgraced on the sand. <<tearful>> you struggle to your feet.
 <br><br>
 
 <<unbind>>
diff --git a/game/overworld-town/loc-beach/main.twee b/game/overworld-town/loc-beach/main.twee
index 6902f458ae66d85925bd87c18ad65d1614e6b967..bbb54cf4d14761402cb499e8c0d524c6f2d56dab 100644
--- a/game/overworld-town/loc-beach/main.twee
+++ b/game/overworld-town/loc-beach/main.twee
@@ -4,7 +4,7 @@
 You are on the beach.
 <<if $daystate is "day">>
 	<<if $weather is "clear">>
-		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of teenagers are playing volleyball.
+		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of students are playing volleyball.
 	<<elseif $weather is "overcast">>
 		The clouds have driven away most would-be visitors, but there are still people strolling along the water's edge.
 	<<elseif $weather is "rain">>
@@ -14,7 +14,7 @@ You are on the beach.
 	<</if>>
 <<elseif $daystate is "dawn">>
 	<<if $weather is "clear">>
-		It is a popular destination for joggers, some have dogs with them. A few families are setting up windbreakers. A group of teenagers are playing volleyball.
+		It is a popular destination for joggers, some have dogs with them. A few families are setting up windbreakers. A group of students are playing volleyball.
 	<<elseif $weather is "overcast">>
 		It is a popular destination for joggers, some have dogs with them. Fog blocks your view of the ocean.
 	<<elseif $weather is "rain">>
@@ -24,7 +24,7 @@ You are on the beach.
 	<</if>>
 <<elseif $daystate is "dusk">>
 	<<if $weather is "clear">>
-		Families are leaving as the sun sets. A group of teenagers are playing volleyball.
+		Families are leaving as the sun sets. A group of students are playing volleyball.
 	<<elseif $weather is "overcast">>
 		It is mostly deserted, but some people are strolling along the water's edge.
 	<<elseif $weather is "rain">>
@@ -34,7 +34,7 @@ You are on the beach.
 	<</if>>
 <<elseif $daystate is "night">>
 	<<if $weather is "clear">>
-		It appears deserted, save for a group of teenagers who are drinking around a fire.
+		It appears deserted, save for a group of students who are drinking around a fire.
 	<<elseif $weather is "overcast">>
 		It appears deserted.
 	<<elseif $weather is "rain">>
@@ -54,7 +54,7 @@ You could go for a swim, but make sure to dress appropriately.
 <<if $stress gte $stressmax>>
 	<<passoutbeach>>
 <<else>>
-	<<run getRobinLocation()>>
+	<<run statusCheck("Robin")>>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if $danger gte (9900 - $allure) and $eventskip is 0>>
 		<<eventsbeach>>
@@ -68,13 +68,30 @@ You could go for a swim, but make sure to dress appropriately.
 			"I don't believe it!" <<he>> squeals as <<he>> buries <<himself>> in your chest. "I-I thought you were gone forever! We need to talk about this at home. When you're ready."
 			<br><br>
 
-			You're led back to their stand. A small picture of the two of you sits on top. Robin puts it away.
+			You're led back to <<his>> stand. A small picture of the two of you sits on top. <<He>> puts it away.
 			<br>
 			<<He>> fixes you a glass of lemonade and sends you on your way.
 			<br>
 			"Don't forget to see me later," <<he>> says with a worried expression. "I'm always here for you if you need to talk."
 			<br><br>
 
+			<<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>>
+			<br>
+		<<elseif $robinReunionScene is "dungeonRobin">>
+			<<unset $robinReunionScene>>
+			You see Robin stood behind <<his>> lemonade stand. <<His>> mouth goes agape as <<he>> sees you, and <<he>> sprints towards you.
+			<br><br>
+
+			"You made it out!" <<he>> squeals as <<he>> buries <<himself>> in your chest. "When you were recaptured, I didn't know what I was going to do."
+			<br><br>
+
+			You're led back to <<his>> stand. A small picture of the two of you sits on top. <<He>> puts it away.
+			<br>
+			<<He>> fixes you a glass of lemonade and sends you on your way.
+			<br>
+			"Don't forget to see me later," <<he>> says with a worried expression. "I'm always here for you, never forget that."
+			<br><br>
+
 			<<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>>
 			<br>
 		<<elseif $robinReunionScene is "asylum">>
@@ -84,12 +101,12 @@ You could go for a swim, but make sure to dress appropriately.
 			<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
 				<<He>> stares at you in disbelief.
 				<br><br>
-				
+
 				"Hi," <<he>> says quietly as you draw close. "I thought the doctors took you away. I would've tried to get you something had I known you were c-coming back," Robin's voice quivers.
 			<<else>>
 				<<He>> excitedly beckons you over when <<he>> sees you.
 				<br><br>
-				
+
 				"Hey, you're out!" <<he>> says as you draw close. "I thought you were staying at the doctor's for a while. I would've prepared something had I known you were coming back," Robin explains.
 			<</if>>
 			<br><br>
@@ -104,7 +121,7 @@ You could go for a swim, but make sure to dress appropriately.
 			<</if>>
 			<br>
 			The two of you make small talk for a bit. Eventually, Robin says <<he>> needs to get back to <<his>> stand.
-			
+
 			<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
 				<<He>> slowly shuffles away, <<his>> gaze glued to the floor.
 			<<else>>
@@ -117,11 +134,11 @@ You could go for a swim, but make sure to dress appropriately.
 		<<else>>
 			You spot Robin at <<his>> lemonade stand. <<His>> eyes pass over you momentarily, but <<he>> doesn't stare. It's as if <<he>> doesn't even recognise you.
 			<br><br>
-			
+
 			<<link [[Next|Beach]]>><<set $eventskip to 1>><<endevent>><</link>>
 			<br>
 		<</if>>
-	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].init is 0 and $season isnot "winter" and ($weekday is 7 or $weekday is 1) and between($hour, 9, 16) and $exposed lte 0>>
+	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].init is 0 and _robin_location is "beach" and $exposed lte 0>>
 		<<set $robindebt to 0>><<set $robindebtlimit to 5>>
 		<<npc Robin>><<person1>>You see someone familiar working at a stand on the beach. <<He>> notices you at the same time. "Hey!" It's Robin. <<Hes>> another resident at the orphanage. <<Hes>> always looked up to you, despite being about the same age. <<He>> motions you over while cleaning a glass pitcher. <<He>> puts it down and hugs you when you approach.
 		<br><br>
@@ -202,7 +219,7 @@ You could go for a swim, but make sure to dress appropriately.
 :: Beach Party
 
 <<location "beach">><<effects>>
-You approach the teenagers. Several are dancing near a fire on a makeshift stage while others are drinking and chattering.
+You approach the students. Several are dancing near a fire on a makeshift stage while others are drinking and chattering.
 <br><br>
 <<link [[Socialise (0:10)|Beach Party Chat]]>><<pass 10>><<stress -2>><<status 1>><<set $phase to 0>><</link>><<gcool>><<lstress>>
 <br>
@@ -223,7 +240,7 @@ You approach a group playing volleyball. A <<person1>><<person>> sits on the san
 :: Beach Volleyball Play
 
 <<location "beach">><<effects>>
-The teenagers are happy to have a sixth player, particularly the <<person1>><<person>>.
+The students are happy to have a sixth player, particularly the <<person1>><<person>>.
 <br><br>
 <<physique 3>>
 <<set $eventcheck to random(1, 10000)>>
@@ -341,7 +358,7 @@ The teenagers are happy to have a sixth player, particularly the <<person1>><<pe
 		Dour as you are, people constantly talk over you, as if unaware of your presence.
 	<</if>>
 	<<if $daystate isnot "night">>
-		The sun rises on the horizon and the remaining teenagers head home.
+		The sun rises on the horizon and the remaining students head home.
 		<br><br>
 
 		<<link [[Next|Beach]]>><<endevent>><</link>>
@@ -870,7 +887,6 @@ You run across the sand and splash through waves. The sun feels warm and gentle
 
 You walk closer to the <<person>>. "I could get dressed," you say, leaning against <<his>> arm. "Or we could have some fun."
 <<promiscuity2>>
-<br><br>
 
 <<if $seductionrating gte $seductionrequired>>
 
@@ -982,7 +998,7 @@ The <<person>> tries to keep <<his>> camera steady, barely managing to control <
 		<br><br>
 
 		<<if $player.vaginaExist>>
-		You bend your neck to look behind you, and staring straight into the camera you suggest "Why don't you take some closeups?". You grab your <<bottom>> with both hands. Then, still gazing into the camera, you spread your <<pussy>>.
+		You bend your neck to look behind you, and staring straight into the camera you suggest "Why don't you take some closeups?" You grab your <<bottom>> with both hands. Then, still gazing into the camera, you spread your <<pussy>>.
 		<br>
 		<<if $player.bodyliquid.vagina.semen gte 2>>
 		Semen drips from your <<pussy>> onto the sand. The sight proves too much for the <<person>> and <<he>> drops <<his>> camera in the sand. Shaking excitedly, <<he>> quickly picks it up, and eagerly moves closer.
@@ -1089,7 +1105,7 @@ It is getting cold though, so you decide to get dressed for now.
 
 :: Beach Exposed
 <<location "beach">><<effects>>
-<<fameexhibitionism 20 pic>>
+<<fameexhibitionism 20 "pic">>
 <<flaunting>> you emerge from the water, <<lewdness>> freely displayed. You're soon the centre of attention, surrounded by whistles, cheers and compliments. Some break into applause while others scramble for their cameras.
 
 <<if $uncomfortable.nude is false>>
diff --git a/game/overworld-town/loc-beach/phallus-project.twee b/game/overworld-town/loc-beach/phallus-project.twee
index ff9fea415f642c7f769a41885042daff10e93c83..b7a7c1196645667004dd9f391cde3d0ee7a28e54 100644
--- a/game/overworld-town/loc-beach/phallus-project.twee
+++ b/game/overworld-town/loc-beach/phallus-project.twee
@@ -15,7 +15,7 @@
 		<br>
 	<</if>>
 <<elseif $rng gte 61>>
-	<<generatep2>><<person1>>You see a <<person>> and <<person2>><<person>> holding hands.
+	<<generatep2>>You see a <<fullGroup>> holding hands.
 	<br><br>
 	<<if $NPCList[0].penis isnot "none">>
 		<<link [[Ask to measure penis|Beach Phallus Pair]]>><</link>><<promiscuous3>>
diff --git a/game/overworld-town/loc-beach/widgets.twee b/game/overworld-town/loc-beach/widgets.twee
index 89cfe8fb19508a15eace3bca3b9a5aca7ce4b1f6..d8d9dfbe79c94045f00174e9a457e31808709642 100644
--- a/game/overworld-town/loc-beach/widgets.twee
+++ b/game/overworld-town/loc-beach/widgets.twee
@@ -113,7 +113,7 @@ A gust of wind blows in from the ocean, pleasantly caressing your skin.
 			<span class="pink">
 				You notice a phone pointing at you, and realise they were probably recording.
 			</span>
-			<<fameexhibitionism 5 vid>>
+			<<fameexhibitionism 5 "vid">>
 			<<set _trauma_gain += 2>>
 			<<set _arousal_gain += 100>>
 		<<else>>
diff --git a/game/overworld-town/loc-brothel/main.twee b/game/overworld-town/loc-brothel/main.twee
index 6fba3e8f4bb67ab22204321c6b1b70d8f0071ec4..009804c663c2f56ae6c7ba4e10afb0f9cb577d5d 100644
--- a/game/overworld-town/loc-brothel/main.twee
+++ b/game/overworld-town/loc-brothel/main.twee
@@ -22,7 +22,7 @@ You are in the brothel. Several stages dot the crowded room. The staff look flus
 
 <<elseif $NPCName[$NPCNameList.indexOf("Leighton")].init is 1 and $leightonbrothel is undefined and $brotheljob is 1 and $weekday gte 6 and $pillory_tenant.special.name isnot "Leighton">><<set $leightonbrothel to 1>>
 	<<npc Leighton>><<person1>>
-	"You look like one of my students," says an amused voice from your right. It's Leighton. 
+	"You look like one of my students," says an amused voice from your right. It's Leighton.
 	<<if pregnancyBellyVisible()>>
 		"I was wondering how you got that baby bump," <<he>> continues, "Should have known it was from you working at a place like this."
 	<</if>>
@@ -50,7 +50,7 @@ You are in the brothel. Several stages dot the crowded room. The staff look flus
 	<<orgasmLocation "brothel">>
 <</if>>
 
-<<if $brotheljob is 1 and $fameprostitution gte 30 and not $brothelshowdata.intro>>
+<<if $brotheljob is 1 and $fame.prostitution gte 30 and not $brothelshowdata.intro>>
 	<<generate1>><<person1>>The <<person>> guarding the door rests a hand on your shoulder. <span class="gold">"Boss wants to see you."</span><<endevent>>
 	<br><br>
 <</if>>
@@ -199,7 +199,7 @@ Briar's goon keeps a close eye on you as you peek out the front exit. The street
 :: Brothel Intro
 <<set $outside to 0>><<set $location to "brothel">><<effects>>
 
-You enter the building, not sure what to expect. <<generate1>><<person1>>A <<person>> stands at the end of an antechamber, guarding another set of doors. <<He>> smiles when <<he>> sees you. "You look lost, little <<girl>>. What brings you here?"
+You enter the building, not sure what to expect. <<generate1>><<person1>>A <<person>> stands at the end of an antechamber, guarding another set of doors. <<He>> smiles when <<he>> sees you. "You look lost, <<girl>>. What brings you here?"
 <br><br>
 
 "I was told to come here," you reply sheepishly.
@@ -240,7 +240,7 @@ You enter a large crowded room. The smell of sweat is palpable. Several stages d
 I'd like to offer you work looking after our guests. You saw how it works on the way up." <<He>> pauses before continuing. "Oh right, you probably want details. You can dress however you want, but you'll get more attention if you dress appropriately. Use a stage to show yourself off. You might make some change there, but your real aim should be to get hired for some private time. We provide rooms for that purpose."
 <br><br>
 
-"You'll be expected to take care of yourself. If someone tries to rape you just deal with it and don't bother me. I'm not your <<if $pronoun is "m">>daddy<<else>>mummy<</if>>."
+"You'll be expected to take care of yourself. If someone tries to rape you just deal with it and don't bother me. I'm not your <<mummy>>."
 <br><br>
 
 "We take a 40% cut of anything you earn, and don't you dare think you can cheat us either. You'll have access to a dressing room, naturally. I think I've covered everything. So, interested?"
@@ -364,7 +364,7 @@ I'd like to offer you work looking after our guests. You saw how it works on the
 
 	<<link [[Next|Brothel]]>><<endevent>><</link>>
 
-<<elseif $brotheljob is 1 and $fameprostitution gte 30 and not $brothelshowdata.intro>>
+<<elseif $brotheljob is 1 and $fame.prostitution gte 30 and not $brothelshowdata.intro>>
 	<<set $brothelshowdata.intro to true>><<set $brothelshowdata.type to "none">>
 	Briar leans beside the window, staring out. "Glad you could join me," <<he>> says, not turning to look. "People have been asking for you. Seems you've made a name for yourself." <<He>> turns and sizes you up. "I'd like to hold a little show on <span class="gold">Fridays</span>. Get the punters in. How'd you like to be the star?"
 	<br><br>
@@ -910,7 +910,7 @@ You're sat down on a bench, and hear the engine start. The hood is pulled off yo
 	<br><br>
 	"So you're the waif that's been causing me problems. I'm Briar, owner of the finest establishment in town." <<He>> leans back on the bench.
 <</if>>
-"I hear you've been selling yourself in the pub. This is a problem. You see, I own all of the whores on this side of town. And what has your little ass been up to? Whoring, of course. That means I own you. And yet, I haven't received a penny. That changes now."
+"I hear you've been selling yourself in the pub. This is a problem. You see, I own all of the whores on this side of town. And what has your cheap ass been up to? Whoring, of course. That means I own you. And yet, I haven't received a penny. That changes now."
 <br><br>
 The van halts and the <<person2>><<person>> and <<person3>><<person>> haul you out. They lead you to a staircase beside a building, descending underground. If you want to escape, now's your only chance. There are three of them however.<<person1>>
 <br><br>
@@ -945,7 +945,7 @@ You are led down a dim corridor. You can hear music playing somewhere above. The
 	<<set $enemytrust -= 100>>
 	<<set $enemyanger += 200>>
 	<<npcidlegenitals>>
-	At the first sign of resistance, Briar laughs. "Oh little <<girl>>, you're not going anywhere."
+	At the first sign of resistance, Briar laughs. "Oh, foolish <<girl>>, you're not going anywhere."
 	<br><br>
 <</if>>
 <<effects>>
@@ -968,20 +968,20 @@ You are led down a dim corridor. You can hear music playing somewhere above. The
 <<set $outside to 0>><<set $location to "brothel">><<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-	"Don't let the <<girl>> escape!" shouts Briar to <<npc Briar>><<his>> goons once <<he>> stops shuddering, but you're already gone. <<tearful>> you flee down the road.
+	"Don't let the <<girl>> escape!" shouts Briar to <<person1>><<his>> goons once <<he>> stops shuddering, but you're already gone. <<tearful>> you flee down the road.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
 	<<harvestquick>>
 <<elseif $enemyhealth lte 0>>
-	You knock the <<person2>><<person>> aside, giving you the chance you need. <<tearful>> you run through the gap created and flee down the road. <<npc Briar>>You hear Briar shout at <<his>> subordinates.
+	You knock the <<person2>><<person>> aside, giving you the chance you need. <<tearful>> you run through the gap created and flee down the road. You hear Briar shout at <<person1>><<his>> subordinates.
 	<<ltrauma>><<lstress>><<trauma -6>><<stress -12>>
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
 	<<harvestquick>>
 <<else>>
-	Briar laughs again. "Aww, is the little <<girl>> hurt?" You're far too injured to resist any longer. The <<person2>><<person>> and <<person3>><<person>> drag you down the staircase.
+	Briar laughs again. "Aww, is the <<girl>> hurt?" You're far too injured to resist any longer. The <<person2>><<person>> and <<person3>><<person>> drag you down the staircase.
 	<br><br>
 	<<link [[Next|Brothel Punishment 2]]>><</link>>
 	<br>
@@ -993,7 +993,7 @@ You are led down a dim corridor. You can hear music playing somewhere above. The
 
 <<if $punishmenthole lte 0>>
 
-<<endevent>><<npc Briar>><<person1>>The cell door opens and Briar steps in, holding a knife. <<He>> severs the rope holding you to the ceiling and you fall to the ground. "Now we're even," <<he>> says as <<he>> cuts more rope. "If you want to sell that cute little body of yours in the future, you do so under my roof." <<He>> finishes cutting and steps back. "Is that understood? Good." <<He>> steps aside and a <<generate2>><<person2>><<person>> enters the cell. <<He>> drags you out the way you came in and slams the door behind you. They left your arms bound.
+<<endevent>><<npc Briar>><<person1>>The cell door opens and Briar steps in, holding a knife. <<He>> severs the rope holding you to the ceiling and you fall to the ground. "Now we're even," <<he>> says as <<he>> cuts more rope. "If you want to sell that body of yours in the future, you do so under my roof." <<He>> finishes cutting and steps back. "Is that understood? Good." <<He>> steps aside and a <<generate2>><<person2>><<person>> enters the cell. <<He>> drags you out the way you came in and slams the door behind you. They left your arms bound.
 <br><br>
 
 	<<if $brothelknown isnot 1>>
@@ -1268,7 +1268,7 @@ You see Briar talking to someone near the largest stage. You agreed to perform t
 You examine the sex machine. A large phallus protrudes from the main body, beside a number of lights and dials. It's almost shaped like a gun. You can imagine what it was used for, <span class="gold">but Briar would know more.</span>
 <br><br>
 
-<<link [[Look closer|Brothel Machine Investigate 2]]>><</link>><<skill_difficulty science "Science" 400 1000>>
+<<link [[Look closer|Brothel Machine Investigate 2]]>><</link>><<skill_difficulty "$science" "Science" 400 1000>>
 <br>
 <<link [[Leave|Brothel Stage]]>><</link>>
 <br>
@@ -1277,7 +1277,7 @@ You examine the sex machine. A large phallus protrudes from the main body, besid
 :: Brothel Machine Investigate 2
 <<effects>>
 
-<<if $science gte random(400, 1000)>>
+<<if currentSkillValue('science') gte random(400, 1000)>>
 	You open a hatch on the side of the machine, and peer inside. There's an empty glass tank behind a tangle of wires.
 	<br><br>
 
@@ -1356,7 +1356,7 @@ You kick the <<person>> away from you. You hear <<him>> grumble, but <<he>> leav
 The door swings open. Briar walks in. "I hope you've had fun," <<he>> says. <<He>> pulls the lever and the grip around your waist lessens. You wiggle into the room and drop to the floor.
 <br><br>
 
-"You can show yourself out. Remember, your little ass belongs to me."
+"You can show yourself out. Remember, your ass, and your assets, belongs to me."
 <br><br>
 <<unbind>>
 <<clotheson>>
@@ -1697,7 +1697,7 @@ Two police officers lead you towards the main part of the brothel. They stop nea
 <<if $crime lte 900>>
 	One opens the door.
 	<br><br>
-	"You seem like a decent kid." he says. "No need for you to get caught up in this. Get out of here."
+	"You seem like a decent fellow," he says. "No need for you to get caught up in this. Get out of here."
 	<<set _bribe to 0>>
 <<elseif $crime lte 2000>><<set _bribe to 800>>
 	One puts a hand on the door handle.
diff --git a/game/overworld-town/loc-brothel/shows.twee b/game/overworld-town/loc-brothel/shows.twee
index 069c9ab653bfb9135b4208764f6849b2816d39e8..22208a47e348c8d59627bc042d9c06069e9ceb8b 100644
--- a/game/overworld-town/loc-brothel/shows.twee
+++ b/game/overworld-town/loc-brothel/shows.twee
@@ -120,7 +120,7 @@
 	<<endevent>><<generate1>><<generate2>><<person1>>
 	Briar turns to you. "We're all set and ready. Just waiting for the star. Remember, the audience want to see penetration." You walk onto the stage, and stand beside the waiting table. There are fewer in the audience than usual. Briar mentioned this being a private show. A single white light turns on above you, plunging the audience into darkness.
 	<br><br>
-	"Ladies and gentlemen!" Briar's voice rings throughout the room. "Today we witness a young student test <<pher>> science project. <<pShe>> hasn't realised just how successful it is." A <<person>> and <<person2>><<person>>, dressed in black bodysuits, wheel the sex machine onto the stage behind you. The phallus is dripping with lube.
+	"Ladies and gentlemen!" Briar's voice rings throughout the room. "Today we witness a proud student test <<pher>> science project. <<pShe>> hasn't realised just how successful it is." A <<fullGroup>>, dressed in black bodysuits, wheel the sex machine onto the stage behind you. The phallus is dripping with lube.
 	<br><br>
 
 	<<link [[Next|Brothel Show Machine Intro]]>><</link>>
@@ -138,7 +138,7 @@
 	You take <<bhim>> by the reins, and walk onto the bright stage. There's a table in the middle, covered with pink cushions. You can't see the audience in the dark, but you can hear their astonished and eager murmurings. It sounds packed.
 	<br><br>
 
-	"Ladies and gentlemen!" Briar announces to the audience. "Today we have a special treat. A young rider, fresh from winning a coveted trophy. It's only fitting that <<pshe>> reward the beast that gave <<phim>> victory."
+	"Ladies and gentlemen!" Briar announces to the audience. "Today we have a special treat. A proud rider, fresh from winning a coveted trophy. It's only fitting that <<pshe>> reward the beast that gave <<phim>> victory."
 	<br><br>
 
 	<<link [[Next|Brothel Show Horse Intro]]>><</link>>
@@ -173,7 +173,7 @@
 <<elseif $phase is 1>>
 	You adopt a frightened face and look at out at the audience. "I must have taken a wrong turn. I don't know where I am!"
 	<br><br>
-	One of Briar's actors, a <<person1>><<person>>, walks up to you. "Hey little <<girl>>, you lost?" <<he>> asks. <<He>> prowls around you, leering at your body.
+	One of Briar's actors, a <<person1>><<person>>, walks up to you. "Hey <<girl>>, you lost?" <<he>> asks. <<He>> prowls around you, leering at your body.
 	<br><br>
 	"Rape <<phim>>," someone in the audience shouts.
 	<br><br>
@@ -451,7 +451,7 @@ The <<beasttype>> trots behind the stage as Briar storms onto it.<<endevent>><<n
 <br><br>
 
 <<elseif $enemyarousal gte $enemyarousalmax>>
-<<famebestiality 20 vid>>
+<<famebestiality 20 "vid">>
 <<beastejaculation>>
 
 Someone behind the stage tugs on the leash and the <<beasttype>> walks off. <<tearful>> you climb to your feet, bow, and follow.
@@ -611,7 +611,7 @@ You return to the dressing room, still shivering.
 
 You turn to the machine. "Oh gosh," you say as Briar's employees stand aside. "I'm sure to win the science fair with my new invention. Just one final test." You pretend to press a button on the side, and Briar activates the machine remotely. It shudders into life.
 <br><br>
-You let out a mock scream as a pair of silicon tentacles emerge, wrapping around your arms and pushing you onto the table.
+You let out a mock scream as a pair of silicone tentacles emerge, wrapping around your arms and pushing you onto the table.
 
 <<if $exposed lt 2>>
 The machine can't strip you, so Briar's employees rush forward to help.
@@ -687,7 +687,7 @@ A red light glows from the front as it scans you. It moves its phallus in front
 <<if $anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1>>
 	The audience applaud again as the machine powers down.
 	<br><br>
-	Briar walks onto the stage. "Another round for our star!" You climb off the table, and bow. The applause redoubles, but remains polite. The <<person1>><<person>> and <<person2>><<person>> usher you off the stage, and hand over your clothing.
+	Briar walks onto the stage. "Another round for our star!" You climb off the table, and bow. The applause redoubles, but remains polite. The <<fullGroup>> usher you off the stage, and hand over your clothing.
 	<br><br>
 
 	<<clotheson>>
@@ -699,7 +699,7 @@ A red light glows from the front as it scans you. It moves its phallus in front
 	You've earned <<moneyGain 1500>>
 	<br><br>
 <<else>>
-	Sparks fly from the machine, and it falls inert. The audience break into discussion as Briar walks onto the stage. "There's been a technical fault-" The <<person1>><<person>> and <<person2>><<person>> usher you off the stage, and hand over your clothing.
+	Sparks fly from the machine, and it falls inert. The audience break into discussion as Briar walks onto the stage. "There's been a technical fault-" The <<fullGroup>> usher you off the stage, and hand over your clothing.
 	<br><br>
 
 	<<clotheson>>
@@ -823,7 +823,7 @@ The $farm.steed steed mounts you, and the audiences' excitement reaches a fevere
 <<effects>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
-	<<famebestiality 30 pic>>
+	<<famebestiality 30 "pic">>
 	<<beastejaculation>>
 
 	The crowd erupts once again. The <<beasttype>> steps away from you, satisfied but agitated by the sudden noise. You hold <<bhis>> reins as you turn to face the crowd, still wet with lewd fluids, and bow.
@@ -850,7 +850,7 @@ The $farm.steed steed mounts you, and the audiences' excitement reaches a fevere
 	<<clotheson>>
 	<<endcombat>>
 	<<npc Briar>><<person1>>
-	"Not what I was expecting," Briar says. "But the audience liked it, so I won't complain.  <<He>> hands you the <<moneyGain 2000>> <<he>> promised.<<glove>><<npcincr Briar love 1>>
+	"Not what I was expecting," Briar says. "But the audience liked it, so I won't complain. <<He>> hands you the <<moneyGain 2000>> <<he>> promised.<<glove>><<npcincr Briar love 1>>
 	<br><br>
 
 
diff --git a/game/overworld-town/loc-bus/main.twee b/game/overworld-town/loc-bus/main.twee
index 7159c985500588f7ddf4e34ef32b614246c7556b..d70a387f6054a52cbf5e5ba8bcebd4f43cd10fd2 100644
--- a/game/overworld-town/loc-bus/main.twee
+++ b/game/overworld-town/loc-bus/main.twee
@@ -83,16 +83,15 @@ You take a seat and look out the window.
 	<<set $danger to random(1, 10000)>>
 	<<if $danger gte (9900 - $allure)>><<set $dangerbus to random(1, 2)>>
 		<<if $wraith and $wraith.hunt and ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6) and $dangerbus is 1>>
-		You gaze out the window at the scenery, all bathed in red moonlight. You notice an unusually pale person stop and look at you through the window.
-		<br><br>
-		Less than a minute passes, and you see it again on the other side of the road. Then at the next stop. You blink, and it's gone.
-		<br><br>
-		You look over your shoulder. It's sitting in the back of the bus.
-		<br><br>
-		The bus arrives at your destination, and you scramble from your seat. <<stress 12>><<ggstress>>
-		<br><br>
-		<<set $wraith.hunt++>>
-		<<destination5>>
+			You gaze out the window at the scenery, all bathed in red moonlight. You notice an unusually pale person stop and look at you through the window.
+			<br><br>
+			Less than a minute passes, and you see it again on the other side of the road. Then at the next stop. You blink, and it's gone.
+			<br><br>
+			You look over your shoulder. It's sitting in the back of the bus.
+			<br><br>
+			The bus arrives at your destination, and you scramble from your seat. <<stress 12>><<ggstress>>
+			<<set $wraith.hunt++>>
+			<<destination5>>
 		<<elseif $dangerbus is 1>>
 			<<generate1>>A <<person1>><<person>> sits down next to you and rests a hand on your leg.
 			<br><br>
@@ -150,7 +149,6 @@ You take a seat and look out the window.
 					<</if>>
 				<<else>>
 					Your bus arrives at your destination.
-					<br><br>
 					<<destination5>>
 				<</if>>
 			<<elseif $weekday isnot 1 and $weekday isnot 7 and $hour is 15 and $schoolday is 1>>
@@ -193,7 +191,6 @@ You take a seat and look out the window.
 					<</if>>
 				<<else>>
 					Your bus arrives at your destination.
-					<br><br>
 					<<destination5>>
 				<</if>>
 			<<else>>
@@ -207,7 +204,6 @@ You take a seat and look out the window.
 				<<else>>
 					The bus arrives at your destination. As you walk down the aisle a <<person1>><<person>> grabs your arm. "Don't leave yet, we need some company," <<he>> says as you struggle free. <<catcall>> They laugh as you leave the bus.
 					<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-					<br><br>
 					<<endevent>>
 					<<destination5>>
 				<</if>>
@@ -215,7 +211,6 @@ You take a seat and look out the window.
 		<</if>>
 	<<else>>
 		Your bus arrives at your destination.
-		<br><br>
 		<<destination5>>
 	<</if>>
 <</if>>
@@ -339,7 +334,6 @@ She waves from the window as the bus continues on.
 You stand up and shuffle past the <<person>>, who doesn't stop you.
 <br><br>
 The bus soon arrives at your destination.
-<br><br>
 <<endevent>>
 <<destination5>>
 
@@ -347,7 +341,6 @@ The bus soon arrives at your destination.
 
 <<set $outside to 0>><<effects>>
 You remain seated. The <<persons>> hand moves to your inner thigh. <<He>> creeps closer to your crotch over the next couple of minutes, but stops when the bus arrives at <<his>> destination. It arrives at yours soon after.
-<br><br>
 <<endevent>>
 <<destination5>>
 
@@ -442,7 +435,6 @@ After several minutes the bus stop and the <<person2>><<person>> pokes the <<per
 	<<clotheson>>
 	<<endcombat>>
 	The bus soon arrives at your destination.
-	<br><br>
 	<<destination5>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -451,7 +443,6 @@ After several minutes the bus stop and the <<person2>><<person>> pokes the <<per
 	<<clotheson>>
 	<<endcombat>>
 	The bus soon arrives at your destination.
-	<br><br>
 	<<destination5>>
 <<elseif $alarm is 1 and $rescue is 1>>
 	"Stop the tomfoolery back there, or I'll come sort you out," says the <<generate4>><<person4>><<person>> driving the bus. The trio relent in their attack.
@@ -459,7 +450,6 @@ After several minutes the bus stop and the <<person2>><<person>> pokes the <<per
 	<<clotheson>>
 	<<endcombat>>
 	The bus soon arrives at your destination.
-	<br><br>
 	<<destination5>>
 <<elseif $timer lte 0>>
 	The bus pulls to a stop. "We need to get off here," says the <<person2>><<person>>.
@@ -485,7 +475,6 @@ After several minutes the bus stop and the <<person2>><<person>> pokes the <<per
 		<<clotheson>>
 		<<endcombat>>
 		The bus soon arrives at your destination.
-		<br><br>
 		<<destination5>>
 	<</if>>
 <<else>>
@@ -545,7 +534,6 @@ Keeping low, you shuffle into the aisle and poke a <<generatey1>><<person1>><<pe
 	<<towelup>>
 	<<endevent>>
 	The bus soon arrives at your destination.
-	<br><br>
 	<<destination5>>
 <</if>>
 
@@ -564,7 +552,6 @@ Keeping low, you shuffle into the aisle and poke a <<generatey1>><<person1>><<pe
 <<towelup>>
 <<endevent>>
 The bus soon arrives at your destination.
-<br><br>
 <<destination5>>
 
 :: Bus School Strip Refuse
diff --git a/game/overworld-town/loc-cafe/chef.twee b/game/overworld-town/loc-cafe/chef.twee
index 3a91e2ebab17b140da490796324b849468132d73..ca27c890804f08afa909a66985ae2509d4815732 100644
--- a/game/overworld-town/loc-cafe/chef.twee
+++ b/game/overworld-town/loc-cafe/chef.twee
@@ -244,7 +244,7 @@ You reach beneath the table, and haul out a <<person>>.
 	<<link [[Take back the bun|Chef Thief Take]]>><</link>>
 	<br>
 	<<if $money gte 5000>>
-		<<link [[Buy them the bun (£50)|Chef Thief Buy]]>><<famegood 2>><<set $money -= 5000>><<trauma -6>><<famegood 2>><</link>><<ltrauma>>
+		<<link [[Buy them the bun (£50)|Chef Thief Buy]]>><<famegood 4>><<set $money -= 5000>><<trauma -6>><</link>><<ltrauma>>
 		<br>
 	<</if>>
 
@@ -257,7 +257,7 @@ You reach beneath the table, and haul out a <<person>>.
 	<<link [[Take back the bun|Chef Thief Take]]>><<hope -1>><</link>><<lhope>>
 	<br>
 	<<if $money gte 5000>>
-		<<link [[Buy them the bun (£50)|Chef Thief Buy]]>><<famegood 2>><<hope 1>><<set $money -= 5000>><<trauma -6>><<famegood 2>><</link>><<ghope>><<ltrauma>>
+		<<link [[Buy them the bun (£50)|Chef Thief Buy]]>><<famegood 4>><<hope 1>><<set $money -= 5000>><<trauma -6>><</link>><<ghope>><<ltrauma>>
 		<br>
 	<</if>>
 
@@ -424,7 +424,7 @@ You make sure you're alone in the kitchen, and place a bowl in front of you.
 	<<link [[Continue|Chef Work Masturbation]]>><</link>><<nexttext>>
 	<br><br>
 <</if>>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Chef Work Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -625,7 +625,7 @@ The <<person2>><<person>> nods. "One moment," <<he>> says, leaving the room.
 The <<person1>><<person>> pushes a chair in front of it, and the <<person2>><<person>> gestures for you to take a seat.
 <br><br>
 
-You sit still as the <<person>> and <<person2>><<person>> carefully apply makeup and trim your hair.
+You sit still as the <<fullGroup>> carefully apply makeup and trim your hair.
 It takes a while. "Sam wants you looking your best," the <<person2>><<person>> says. "A lot of people will be there."
 <br><br>
 
@@ -640,7 +640,7 @@ It takes a while. "Sam wants you looking your best," the <<person2>><<person>> s
 <<if $player.gender_appearance is "m">>
 	The <<person>> laughs. "I meant the other one," <<he>> says. "But as you like. You're the star."
 <<else>>
-	I bet it'll look cute on you," the <<person>> says.
+	"I bet it'll look cute on you," the <<person>> says.
 <</if>>
 <br><br>
 
@@ -649,7 +649,7 @@ It takes a while. "Sam wants you looking your best," the <<person2>><<person>> s
 You get dressed in a large cupboard. The <<person1>><<person>> claps when <<he>> sees you. They've set up a tall mirror, and pushed a chair in front of it.
 <br><br>
 
-You sit still as the <<person>> and <<person2>><<person>> carefully apply makeup and trim your hair. It takes a while.
+You sit still as the <<fullGroup>> carefully apply makeup and trim your hair. It takes a while.
 "Sam wants you looking your best," the <<person2>><<person>> says. "A lot of people will be there."
 <br><br>
 
@@ -664,7 +664,7 @@ You sit still as the <<person>> and <<person2>><<person>> carefully apply makeup
 <<if $player.gender_appearance is "f">>
 	The <<person>> laughs. "I meant the other one," <<he>> says. "But as you like. You're the star."
 <<else>>
-	I bet it'll look cute on you," the <<person>> says.
+	"I bet it'll look cute on you," the <<person>> says.
 <</if>>
 <br><br>
 
@@ -674,7 +674,7 @@ You sit still as the <<person>> and <<person2>><<person>> carefully apply makeup
 You get dressed in a large cupboard. The <<person1>><<person>> claps when <<he>> sees you. They've set up a tall mirror, and pushed a chair in front of it.
 <br><br>
 
-You sit still as the <<person>> and <<person2>><<person>> carefully apply makeup and trim your hair.
+You sit still as the <<fullGroup>> carefully apply makeup and trim your hair.
 It takes a while. "Sam wants you looking your best," the <<person2>><<person>> says. "A lot of people will be there."
 <br><br>
 
@@ -921,7 +921,7 @@ The mayor laughs. "Nonsense," <<he>> says. "The speech will go ahead."
 Quinn grasps your arm again, and pulls you beside <<him>>. Niki appears from the crowd, camera in hand.
 <br><br>
 
-<<link [[Smile for the camera|Chef Opening Smile]]>><<npcincr Quinn love 1>><<famebusiness 50 pic>><</link>>
+<<link [[Smile for the camera|Chef Opening Smile]]>><<npcincr Quinn love 1>><<famebusiness 50 "pic">><</link>>
 <br>
 <<link [[Pull a funny face|Chef Opening Funny]]>><<npcincr Quinn love 1>><</link>>
 <br>
@@ -1039,13 +1039,13 @@ You walk up to the podium. A murmuring fills the room as you do. People hold up
 Everyone watches you, waiting.
 <br><br>
 
-<<link [[Tell them the truth about your cream|Chef Opening Truth]]>><<set $chef_speech to "truth">><<stress 12>><<trauma -6>><<famesex 100 pic>><<set $chef_sus += 30>><</link>><<gggsuspicion>><<ggstress>><<ltrauma>>
+<<link [[Tell them the truth about your cream|Chef Opening Truth]]>><<set $chef_speech to "truth">><<stress 12>><<trauma -6>><<famesex 100 "pic">><<set $chef_sus += 30>><</link>><<gggsuspicion>><<ggstress>><<ltrauma>>
 <br>
 <<link [[Tell them of Bailey's tyranny|Chef Opening Bailey]]>><<set $chef_speech to "bailey">><<hope 10>><</link>><<ggghope>>
 <br>
 <<link [[Praise Sam|Chef Opening Sam]]>><<set $chef_speech to "sam">><<npcincr Sam love 6>><</link>><<ggglove>>
 <br>
-<<link [[Praise yourself|Chef Opening Self]]>><<set $chef_speech to "yourself">><<famebusiness 100 pic>><<trauma -24>><</link>><<llltrauma>>
+<<link [[Praise yourself|Chef Opening Self]]>><<set $chef_speech to "yourself">><<famebusiness 100 "pic">><<trauma -24>><</link>><<llltrauma>>
 <br>
 <<link [[Don't say anything|Chef Opening Refuse]]>><<set $chef_speech to "refuse">><<stress -6>><</link>><<lstress>>
 <br>
diff --git a/game/overworld-town/loc-cafe/main.twee b/game/overworld-town/loc-cafe/main.twee
index dc7e50e6345eb1f5d0903c32142cf9dd11813cf1..e9fe42e8b622be6c586b5ea5c09252e38b70eabb 100644
--- a/game/overworld-town/loc-cafe/main.twee
+++ b/game/overworld-town/loc-cafe/main.twee
@@ -43,7 +43,7 @@ You are in the Ocean Breeze Cafe.
 	Sam approaches you.
 	"I was at a party," <<he>> says.
 	"And I may have had one too many. Anyway, the topic of our buns came up.
-	People were very curious about how they're made. When I told them I didn't know, that a young chef was responsible, they became even hungrier.
+	People were very curious about how they're made. When I told them I didn't know, that a new chef was responsible, they became even hungrier.
 	I think a myth is building around you."
 	<br><br>
 	"Anyway," <<he>> continues.
@@ -151,7 +151,7 @@ You are in the Ocean Breeze Cafe.
 <<if $openinghours is 1 and $exposed lt 1 and $cafeeaten isnot 1>>
 
 	<<if $money gte 200>>
-		<<if $images is 1>><</if>><<link [[Buy coffee (0:02 £2)|Cafe Coffee]]>>
+		<<coffeeicon>><<link [[Buy coffee (0:02 £2)|Cafe Coffee]]>>
 			<<set $cafeeaten to 1>><<set $money -= 200>><<stress -3>><<tiredness -4>><<pass 2>>
 		<</link>><<lstress>><<ltiredness>>
 		<br>
@@ -379,7 +379,7 @@ Please be patient with them; they don't mean nothing by it! We're always underst
 <<elseif $rng gte 61>>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if $danger gte (9900 - $allure)>>
-		<<generate1>><<generate2>>You serve a young pair, a <<person1>><<person>> and a <<person2>><<person>>.
+		<<generate1>><<generate2>>You serve a young pair, a <<fullGroup>>.
 		<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
 			<<if $worn.under_lower.type.includes("naked")>>
 				As you turn to leave, the <<person1>><<person>> lifts the hem of your $worn.lower.name, revealing your bare <<bottom>> to the cafe.
@@ -425,7 +425,7 @@ Please be patient with them; they don't mean nothing by it! We're always underst
 			<</if>>
 		<</if>>
 	<<else>>
-		<<generate1>><<generate2>>You serve a young pair, a <<person1>><<person>> and a <<person2>><<person>>.
+		<<generate1>><<generate2>>You serve a young pair, a <<fullGroup>>.
 		You think you catch the <<person1>><<person>> checking you out, but they don't say anything.
 		<br><br>
 
@@ -488,7 +488,7 @@ Please be patient with them; they don't mean nothing by it! We're always underst
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 
 	<<generate1>><<person1>> A <<person>> enters the cafe and sits alone in the corner.
-	<<if $danger gte (9900 - $allure)>>	
+	<<if $danger gte (9900 - $allure)>>
 		<<He>> keeps stealing glances at you, and when you go to take <<his>> order <<he>> asks only for a glass of water.
 		As you turn to leave <<he>> grabs your wrist.
 		"You don't happen to be on the menu, do you?" <<He>> smiles.
@@ -619,7 +619,7 @@ Please be patient with them; they don't mean nothing by it! We're always underst
 		<<endevent>>
 		<<generate1>><<generate2>>
 		Sam asks you to take some trash to the dumpster beside the cafe.
-		Stood beside the dumpster, however, are a <<person1>><<person>> and a <<person2>><<person>>. They have a dangerous look about them.
+		Stood beside the dumpster, however, are a <<fullGroup>>. They have a dangerous look about them.
 		<br><br>
 
 		<<link [[Continue regardless|Ocean Breeze Dumpster]]>><<stress 6>><</link>><<gstress>>
@@ -836,7 +836,7 @@ The rest of the shift passes uneventfully. You earn <<moneyGain 5>>.
 		"Here's your pay, whore." <<He>> drops some cash on you as <<he>> leaves. <<tearful>> you hurry back inside before you're missed.
 		<br><br>
 		<<tipreceive>>
-	
+
 	<<elseif $enemyhealth lte 0>>
 		You manage to knock the <<person>> backwards, giving you time to escape. <<tearful>> you flee back into the cafe.
 		<br><br>
@@ -1372,7 +1372,7 @@ It arrives promptly; Wafting the delicious smell of fresh coffee up your nose.
 					<<cafecoffeesip>>
 				<</if>>
 				<br><br>
-				<<if $skulduggery gte 100 + random(0, 50)>>
+				<<if currentSkillValue('skulduggery') gte 100 + random(0, 50)>>
 					A few passers-by let their eyes linger on the window a little longer than normal, clearly unsure if they are seeing what they think they are.
 				<<else>>
 					A few passers-by let their eyes linger on the window a little longer than normal, before smirking as they walk away. You got caught way too easily.
@@ -1390,7 +1390,7 @@ It arrives promptly; Wafting the delicious smell of fresh coffee up your nose.
 					<<cafecoffeesip>>
 				<</if>>
 				<br><br>
-				<<if $skulduggery gte 200 + random(0, 50)>>
+				<<if currentSkillValue('skulduggery') gte 200 + random(0, 50)>>
 					Passers-by make excuses to stop and look in your direction.
 				<<else>>
 					Some of the passers-by make excuses to stop and look in your direction, before smirking as they walk away. You got caught way too easily.
@@ -1409,7 +1409,7 @@ It arrives promptly; Wafting the delicious smell of fresh coffee up your nose.
 					<<cafecoffeesip>>
 				<</if>>
 				<br><br>
-				<<if $skulduggery gte 300 + random(0, 50)>>
+				<<if currentSkillValue('skulduggery') gte 300 + random(0, 50)>>
 					Some of the passers-by gather in small groups at a time, whispering to each other while attempting to stay discreet about their voyeurism.
 				<<else>>
 					Some of the passers-by gather in a small group, whispering to each other before pointing and laughing. You've been caught.
@@ -1422,7 +1422,7 @@ It arrives promptly; Wafting the delicious smell of fresh coffee up your nose.
 				view of your bare <<undies>> while you take another sip of your coffee.
 				<<cafecoffeesip>>
 				<br><br>
-				<<if $skulduggery gte 400 + random(0, 50)>>
+				<<if currentSkillValue('skulduggery') gte 400 + random(0, 50)>>
 					Some of the strangers gawk at what they're seeing, struggling to hide their voyeurism.
 					A few of them jab the others in the rib to try and keep them from spoiling the fun.
 				<<else>>
@@ -1661,11 +1661,14 @@ You feel a little more refreshed with the caffeine in your system.
 		/* show our options depending on our possession of panties */
 		<<if $worn.under_lower.exposed>>
 			<<if $exhibitionism gte 75>>
-				<<link [[Part your legs and wink at them|Cafe Exhibitionism Legs Part Pantiless Wink]]>><</link>><<exhibitionist5>><br>
+				<<link [[Part your legs and wink at them|Cafe Exhibitionism Legs Part Pantiless Wink]]>><</link>><<exhibitionist5>>
+				<br>
 			<</if>>
 			<<if $exhibitionism gte 55>>
-				<<link [[Pretend not to notice as you part your legs|Cafe Exhibitionism Legs Part Pantiless]]>><</link>><<exhibitionist4>><br>
-				<<link [[Ignore the pervert and finish your food|Ocean Breeze]]>><<endevent>><</link>><br>
+				<<link [[Pretend not to notice as you part your legs|Cafe Exhibitionism Legs Part Pantiless]]>><</link>><<exhibitionist4>>
+				<br>
+				<<link [[Ignore the pervert and finish your food|Ocean Breeze]]>><<endevent>><</link>>
+				<br>
 			<</if>>
 			<<if $exhibitionism lte 54>>
 				You close your legs carefully so <<he>> doesn't see any more than <<he>> already has.
@@ -1676,8 +1679,10 @@ You feel a little more refreshed with the caffeine in your system.
 				<<link [[Finish your food|Ocean Breeze]]>><<endevent>><</link>>
 			<</if>>
 		<<else>>
-			<<link [[Pretend not to notice as you part your legs|Cafe Exhibitionism Legs Part]]>><</link>><<exhibitionist2>><br>
-			<<link [[Ignore the pervert and finish your food|Ocean Breeze]]>><<endevent>><</link>><br>
+			<<link [[Pretend not to notice as you part your legs|Cafe Exhibitionism Legs Part]]>><</link>><<exhibitionist2>>
+			<br>
+			<<link [[Ignore the pervert and finish your food|Ocean Breeze]]>><<endevent>><</link>>
+			<br>
 		<</if>>
 	<<else>>
 		/* we don't, so shut your legs you dirty normie */
@@ -1697,11 +1702,11 @@ You pretend to occupy yourself with your pancakes as you gently part your legs a
 
 /* are we stealthy enough to pretend not to be putting on a show? */
 <<set $rng to random(0, 50)>>
-<<if $skulduggery gte (300 + $rng)>>
+<<if currentSkillValue('skulduggery') gte (300 + $rng)>>
 	<<CafeExhibitionimsmLegsPartSuccessS1>>
 
 /* are we good enough to at least not provoke mockery at our poor attempts at stealth exhibitionism? */
-<<elseif $skulduggery gte 100>>
+<<elseif currentSkillValue('skulduggery') gte 100>>
 	Knowing you're exposing yourself sends a gentle shiver down your spine but you make sure not to give any indication of your building arousal.
 	Noticing <<his>> increased interest you decide to tease a little.
 	<<seatedflashcrotchunderskirt>> giving <<him>> a clear view of your $worn.under_lower.name covered crotch.
@@ -1740,7 +1745,7 @@ Revelling in the thrill of letting a stranger have such compromising photos of y
 Eventually you decide the <<person>> has had enough photos for now and let your legs come to a natural close.
 A mildly disappointed but clearly aroused <<person>> pockets their phone while you ponder where exactly those lewd photos of you might eventually end up.
 <<set $rng to random(1, 5)>>
-<<fameexhibitionism $rng pic>>
+<<fameexhibitionism $rng "pic">>
 <<CafeExhibitionimsmLegsPartSuccessS2>>
 
 :: Cafe Exhibitionism Legs Part No Photo
@@ -1790,7 +1795,7 @@ You pretend to occupy yourself with your pancakes as you gently part your legs a
 
 /* are we stealthy enough to pretend not to be putting on a show? */
 <<set $rng to random(0, 50)>>
-<<if $skulduggery gte (350 + $rng)>>
+<<if currentSkillValue('skulduggery') gte (350 + $rng)>>
 	Knowing you're exposing yourself sends a gentle shiver down your spine but you make sure not to give any indication of your building arousal.
 	Noticing <<his>> increased interest you decide to tease a little more. <<seatedflashcrotchunderskirt>>, giving <<him>> a clear view of your bare <<genitals>>.
 	<br><br>
@@ -1807,7 +1812,7 @@ You pretend to occupy yourself with your pancakes as you gently part your legs a
 	<</if>>
 
 /* are we good enough to at least not provoke mockery at our poor attempts at stealth exhibitionism? */
-<<elseif $skulduggery gte 100>>
+<<elseif currentSkillValue('skulduggery') gte 100>>
 	Knowing you're exposing yourself sends a gentle shiver down your spine but you make sure not to give any indication of your building arousal.
 	Noticing <<his>> increased interest you decide to tease a little. <<seatedflashcrotchunderskirt>> giving <<him>> a clear view of your bare <<genitals>>.
 	The <<person>> takes a sip of <<his>> drink and smirks a little to <<himself>>, it seems you weren't quite as subtle as you thought.
@@ -1847,7 +1852,7 @@ Eventually you decide the <<person>> has had enough photos for now and let your
 A mildly disappointed but clearly quite aroused <<person>> pockets their phone while you ponder
 where exactly those lewd photos of you and your exposed <<genitals>> might eventually end up.
 <<set $rng to random(1, 10)>>
-<<fameexhibitionism $rng pic>>
+<<fameexhibitionism $rng "pic">>
 <br><br>
 <<CafeExhibitionismLegsPartNormalTerminate>>
 
@@ -1874,7 +1879,7 @@ The mildly disappointed but clearly quite aroused <<person>> stares at you as yo
 <<CafeExhibitionismLegsPartNormalTerminate>>
 
 :: Cafe Exhibitionism Skirt Flashing Act [widget]
-<<widget "flashcrotchunderskirt">>	
+<<widget "flashcrotchunderskirt">>
 	<<print either(
 		"You stretch your leg, raising it up into the air and wiggling your foot a little to prolong your exposure",
 		"You part your knees a little as you stretch, bringing your feet a little closer together to widen the gap",
@@ -2048,7 +2053,7 @@ You ignore the <<person>> and finish licking the plate clean. You lean back, sat
 		<br>
 		<<if $trauma gte ($traumamax / 5) * 4>>
 			In an empty, even monotone, you describe your experiences in exacting, clinical detail. Between your quiet monotone, your gentle rocking,
-			and the infinite void behind your stare, your words clearly unsettle the <<person>> and the <<person2>><<person>>.
+			and the infinite void behind your stare, your words clearly unsettle the <<fullGroup>>.
 			They watch after you as you leave.
 			<br>
 			"Wow. Damaged goods much?"
@@ -2057,7 +2062,7 @@ You ignore the <<person>> and finish licking the plate clean. You lean back, sat
 			<<set $tip += 400>>
 		<<elseif $submissive gte 1150>>
 			You tell them about your abuse and degradation in the kind of gratuitous detail that you hope will satisfy their morbid curiosity.
-			<<if $english gte 400>>
+			<<if currentSkillValue('english') gte 400>>
 				You are open, eloquent and explicit. They clearly get off on it.
 				<<set $tip += 1000>>
 			<<else>>
@@ -2094,12 +2099,12 @@ You ignore the <<person>> and finish licking the plate clean. You lean back, sat
 	<<elseif $phase is 2>>
 		You shake your head.
 		<br>
-		<<if $famerape gte 800>>
+		<<if $fame.rape gte 800>>
 			A nearby customer laughs. "Right!
 			<<if $player.gender_appearance isnot $player.gender>>
-				'<<pShe>>' is notorious!
+				'<<pShes>> notorious!
 			<<else>>
-				<<Shes>> notorious!
+				<<Hes>> notorious!
 			<</if>>
 			Half the town's played around with that little fucktoy."
 			<br>
@@ -2122,7 +2127,7 @@ You ignore the <<person>> and finish licking the plate clean. You lean back, sat
 		<br>
 		<<if $submissive gte 1150>>
 			You make up a story of abuse and degradation that you hope will satisfy their morbid curiosity.
-			<<if $english gte 400>>
+			<<if currentSkillValue('english') gte 400>>
 				You are eloquent and convincing. They get off on it.
 				<<set $tip += 500>>
 			<<else>>
diff --git a/game/overworld-town/loc-compound/main.twee b/game/overworld-town/loc-compound/main.twee
index 8f624994907a14f500933804f4ed8702deec891f..6cfc05e1d4378495fcadad359dbf3bb19efcbc10 100644
--- a/game/overworld-town/loc-compound/main.twee
+++ b/game/overworld-town/loc-compound/main.twee
@@ -771,18 +771,18 @@ Finding your way out is much easier than getting here.
 <<set $outside to 0>><<set $location to "compound">><<effects>>
 <<if $compoundflirt is 1>>
 	"You have me all tied up and exposed," you say. "Isn't there something else you'd rather do to me?"<<promiscuity1>>
-	
+
 	<<He>> blushes, unsure how to respond. "D-don't joke around like that. You're in big trouble." You control your breathing and focus.
 	<br><br>
 <<elseif $compoundflirt is 2>>
 	"Some people would pay good money for the treatment you're giving me," you say. "I should thank you properly."<<promiscuity2>>
-	
+
 	<<He>> shifts uncomfortably. "Don't think you can sweet talk me. It won't work."
 	<br><br>
 <<elseif $compoundflirt is 3>>
 	"The real torture here," you say. "Is being denied your touch."
 	<<promiscuity3>>
-	
+
 	<<He>> moves <<his>> hand away from the dials and rubs <<his>> temple. "Just stop it will you?"
 	<br><br>
 <<elseif $compoundflirt is 4>>
@@ -873,7 +873,7 @@ The inside is dominated by a large lift. You see no way to operate it, but a lap
 <br><br>
 <<if $seductionrating gte $seductionrequired>>
 
-	<span class="green">"SCANNING."</span> A red light beside the door flickers. "TEST SUBJECT IDENTIFIED. BREEDING PROCEDURE INITIATED." Another hatch opens, larger than the others. A phallic object emerges from the dark.
+	<span class="green">"SCANNING."</span> A red light beside the door flickers. "TEST SUBJECT IDENTIFIED. <<if $pregnancyspeechdisable is "f">>BREEDING <</if>>PROCEDURE INITIATED." Another hatch opens, larger than the others. A phallic object emerges from the dark.
 	<br><br>
 
 	<<link [[Next|Elk Compound Machine Rape]]>><<set $molestationstart to 1>><</link>>
@@ -884,7 +884,7 @@ The inside is dominated by a large lift. You see no way to operate it, but a lap
 	<span class="red">INTRUDER REFUSING TO COOPERATE.</span> A jolt runs through the metal arms, shocking you.<<gpain>><<pain 4>>
 	<br><br>
 	<<generateSecurity 1>><<generateSecurity 2>>
-	A <<person1>><<person>> and <<person2>><<person>> rush in, batons ready. They relax when they see you.
+	A <<fullGroup>> rush in, batons ready. They relax when they see you.
 	<br><br>
 
 	"This junk was worth bringing up," the <<person1>><<person>> says, strapping the baton to <<his>> side.
@@ -947,7 +947,7 @@ The inside is dominated by a large lift. You see no way to operate it, but a lap
 <<effects>>
 
 <<if $anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1>>
-	"BREEDING SUCCESSFUL," the voice intones. The arms and phallus retract, and the hatches close.
+	"<<if $pregnancyspeechdisable is "f">>BREEDING <</if>>SUCCESSFUL," the voice intones. The arms and phallus retract, and the hatches close.
 	<br><br>
 <<else>>
 	"ERROR," the voice intones. The arms and phallus retract, and the hatches close.
@@ -967,7 +967,7 @@ The inside is dominated by a large lift. You see no way to operate it, but a lap
 <<effects>>
 
 <<generateSecurity 1>><<generateSecurity 2>>
-You pull against the metal grip, but it's too tight. The doors open. A <<person1>><<person>> and <<person2>><<person>> rush in, batons ready. They relax when they see you.
+You pull against the metal grip, but it's too tight. The doors open. A <<fullGroup>> rush in, batons ready. They relax when they see you.
 <br><br>
 
 "This junk was worth bringing up," the <<person1>><<person>> says, strapping the baton to <<his>> side.
@@ -1171,7 +1171,7 @@ The carriage slows as it arrives on a new platform, surrounded by stone brickwor
 
 
 <<generateSecurity 1>><<generateSecurity 2>>
-You walk towards the carriage entrance. The blue door shudders open, and you take cover. A <<person1>><<person>> and <<person2>><<person>> jog through, wearing white uniforms and holding large guns. They haven't noticed you.
+You walk towards the carriage entrance. The blue door shudders open, and you take cover. A <<fullGroup>> jog through, wearing white uniforms and holding large guns. They haven't noticed you.
 <br><br>
 
 <<link [[Next|Elk Compound Station 2]]>><</link>>
diff --git a/game/overworld-town/loc-dance-studio/job.twee b/game/overworld-town/loc-dance-studio/job.twee
index 1700f561ad23b47fe06276e310a77ee1d42b744a..b64b82df68e466baf6a1b9b2e74819a279bf8b1a 100644
--- a/game/overworld-town/loc-dance-studio/job.twee
+++ b/game/overworld-town/loc-dance-studio/job.twee
@@ -1,3 +1,17 @@
+:: Dancing Lesson Job Intro
+<<effects>>
+
+<<generate1>><<person1>>
+You try to pay the receptionist, but <<he>> interrupts. "Charlie wanted to see you," <<he>> says. "Go right in. No need to pay."
+<br><br>
+<<endevent>>
+<<npc Charlie>><<person1>>
+Charlie stands in front of the class, explaining the importance of proper warm up exercises. <<He>> glances at you and smiles. "I'll be right back," <<he>> tells the class. "Keep practising!"
+<br><br>
+
+<<link [[Next|Dancing Job Intro]]>><<set $dance_job_intro to 1>><</link>>
+<br>
+
 :: Dancing Job Intro
 <<effects>>
 
@@ -568,7 +582,7 @@ You climb up the stage, drawing attention from the guests. More filter in from t
 
 
 <<if $danceevent is "finish">>
-	<<link [[Next|Dance Job Party Stop]]>><<clotheson>><<endevent>><</link>>
+	<<link [[Next|Dance Job Party Stop]]>><<endevent>><</link>>
 <<elseif $danceevent is "dancepull">>
 	<<link [[Next|Dance Job Party Arousal]]>><</link>>
 <<elseif $danceevent is 0>>
@@ -577,9 +591,9 @@ You climb up the stage, drawing attention from the guests. More filter in from t
 	<<elseif $exposed gte 1 and $exhibitionism lte 34 and $forceddance isnot 1 and !$worn.under_lower.type.includes("dance")>>
 		<<link [[Flee|Dance Job Party Change]]>><<clotheson>><<endevent>><</link>>
 	<<elseif $timer lte 1>>
-		<<link [[Next|Dance Job Party Timeout]]>><<clotheson>><<endevent>><</link>>
+		<<link [[Next|Dance Job Party Timeout]]>><<endevent>><</link>>
 	<<else>>
-		<<link [[Stop|Dance Job Party Stop]]>><</link>>
+		<<link [[Stop|Dance Job Party Stop]]>><<endevent>><</link>>
 	<</if>>
 <</if>>
 
@@ -591,10 +605,33 @@ The other party-goers interrupt <<him>>, and after a brief scrap, boot <<him>> f
 <br><br>
 
 "Sorry about that," a <<person2>><<person>> says. "Take a breather."
+<<endevent>>
 <br><br>
 
-<<link [[Next|Dance Job Party Intermission]]>><<clotheson>><<endevent>><</link>>
-<br>
+<<if $exposed gte 2 and $exhibitionism gte 75>>
+	<<if $carried.upper.name isnot "naked" or $carried.lower.name isnot "naked" or $carried.under_upper.name isnot "naked" or $carried.under_lower.name isnot "naked">>
+		<<link [[Get dressed and climb down|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+		<br>
+		<<link [[Just climb down|Dance Job Party Intermission]]>><<set $phase to 2>><</link>><<if !$dance_job_exhib>><<exhibitionist5>><<gginterest>><</if>>
+		<br>
+	<<else>>
+		<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><</link>>
+		<br>
+	<</if>>
+<<elseif $exposed gte 1 and $exhibitionism gte 35>>
+	<<if $carried.upper.name isnot "naked" or $carried.lower.name isnot "naked" or $carried.under_upper.name isnot "naked" or $carried.under_lower.name isnot "naked">>
+		<<link [[Get dressed and climb down|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+		<br>
+		<<link [[Just climb down|Dance Job Party Intermission]]>><<set $phase to 1>><</link>><<if !$dance_job_exhib>><<exhibitionist3>><<ginterest>><</if>>
+		<br>
+	<<else>>
+		<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><</link>>
+		<br>
+	<</if>>
+<<else>>
+	<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+	<br>
+<</if>>
 
 
 
@@ -604,7 +641,7 @@ The other party-goers interrupt <<him>>, and after a brief scrap, boot <<him>> f
 
 You bolt through the room, and run up the stairs, taking cover in the bathroom.<<gginterest>><<dance_job_interest 10>>
 <br><br>
-
+<<endevent>>
 <<if $exposed gte 1>>
 	You search, but can't find anything to cover with. A knock at the door makes you jump.
 	<br><br>
@@ -648,7 +685,23 @@ You bolt through the room, and run up the stairs, taking cover in the bathroom.<
 :: Dance Job Party Change 2
 <<effects>>
 
+<<if $carried.upper.name isnot "naked">>
+	<<set _upperStripped to true>>
+<</if>>
+<<if $carried.lower.name isnot "naked">>
+	<<set _lowerStripped to true>>
+<</if>>
+
+<<silently>><<clotheson>><</silently>>
 <<underupperwear 8>>
+
+<<if _upperStripped>>
+	<<upperstrip>>
+<</if>>
+<<if _lowerStripped>>
+	<<lowerstrip>>
+<</if>>
+
 You put on the bunny leotard. "Oh," says the <<personsimple>>. "Don't forget these." <<He>> pushes a pair of bunny ears through the gap.
 <br><br>
 
@@ -731,24 +784,78 @@ You throw open the window, and peer outside. It backs onto an alley running betw
 You climb down from the "stage". The audience seem disappointed.<<linterest>><<dance_job_interest -5>>
 <br><br>
 
-<<link [[Next|Dance Job Party Intermission]]>><</link>>
-<br>
+<<if $exposed gte 2 and $exhibitionism gte 75>>
+	<<if $carried.upper.name isnot "naked" or $carried.lower.name isnot "naked" or $carried.under_upper.name isnot "naked" or $carried.under_lower.name isnot "naked">>
+		<<link [[Get dressed and climb down|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+		<br>
+		<<link [[Just climb down|Dance Job Party Intermission]]>><<set $phase to 2>><</link>><<if !$dance_job_exhib>><<exhibitionist5>><<gginterest>><</if>>
+		<br>
+	<<else>>
+		<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><</link>>
+		<br>
+	<</if>>
+<<elseif $exposed gte 1 and $exhibitionism gte 35>>
+	<<if $carried.upper.name isnot "naked" or $carried.lower.name isnot "naked" or $carried.under_upper.name isnot "naked" or $carried.under_lower.name isnot "naked">>
+		<<link [[Get dressed and climb down|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+		<br>
+		<<link [[Just climb down|Dance Job Party Intermission]]>><<set $phase to 1>><</link>><<if !$dance_job_exhib>><<exhibitionist3>><<ginterest>><</if>>
+		<br>
+	<<else>>
+		<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><</link>>
+		<br>
+	<</if>>
+<<else>>
+	<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+	<br>
+<</if>>
 
 
 :: Dance Job Party Timeout
 <<effects>>
 
-"That's enough for now," shouts a voice. "Let's give our <<girl>> here a break." You climb down from the table.<<ginterest>><<dance_job_interest 5>>
+"That's enough for now," shouts a voice. "Let's give our <<girl>> here a break."<<ginterest>><<dance_job_interest 5>>
 <br><br>
 
-<<link [[Next|Dance Job Party Intermission]]>><</link>>
-<br>
+<<if $exposed gte 2 and $exhibitionism gte 75>>
+	<<if $carried.upper.name isnot "naked" or $carried.lower.name isnot "naked" or $carried.under_upper.name isnot "naked" or $carried.under_lower.name isnot "naked">>
+		<<link [[Get dressed and climb down|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+		<br>
+		<<link [[Just climb down|Dance Job Party Intermission]]>><<set $phase to 2>><</link>><<if !$dance_job_exhib>><<exhibitionist5>><<gginterest>><</if>>
+		<br>
+	<<else>>
+		<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><</link>>
+		<br>
+	<</if>>
+<<elseif $exposed gte 1 and $exhibitionism gte 35>>
+	<<if $carried.upper.name isnot "naked" or $carried.lower.name isnot "naked" or $carried.under_upper.name isnot "naked" or $carried.under_lower.name isnot "naked">>
+		<<link [[Get dressed and climb down|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+		<br>
+		<<link [[Just climb down|Dance Job Party Intermission]]>><<set $phase to 1>><</link>><<if !$dance_job_exhib>><<exhibitionist3>><<ginterest>><</if>>
+		<br>
+	<<else>>
+		<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><</link>>
+		<br>
+	<</if>>
+<<else>>
+	<<link [[Next|Dance Job Party Intermission]]>><<set $phase to 0>><<clotheson>><</link>>
+	<br>
+<</if>>
 
 
 :: Dance Job Party Intermission
 <<effects>>
 <<pass 30>>
 
+<<if $phase is 2 and !$dance_job_exhib>>
+	<<set $dance_job_exhib to true>><<dance_job_interest 10>>
+	Even as the music fades out, you find yourself the centre of attention as you step down from the table.
+	<<exhibitionism5>>
+<<elseif $phase is 1 and !$dance_job_exhib>>
+	<<set $dance_job_exhib to true>><<dance_job_interest 5>>
+	Though most of the party's attention is elsewhere, a few guests leer as you step down from the table.
+	<<exhibitionism3>>
+<</if>>
+
 <<dance_job_text>>
 
 <<if $time gte $dance_job_time>>
@@ -761,6 +868,8 @@ You climb down from the "stage". The audience seem disappointed.<<linterest>><<d
 	<</if>>
 	<br><br>
 
+	<<silently>><<clotheson>><</silently>>
+
 	<<if $exposed gte 1>>
 		You say your goodbyes, and leave the building. <<He>> passes you some towels on the way out. "Can't have you catching a cold."
 		<<towelup>>
@@ -836,7 +945,7 @@ You climb down from the "stage". The audience seem disappointed.<<linterest>><<d
 <<effects>>
 
 Some of the party-goers look wealthier than others. You try to ingratiate yourself with them.
-<<if $english gte random(1, 1000)>>
+<<if currentSkillValue('english') gte random(1, 1000)>>
 	<span class="green">You pique their interest,</span> and soon become the centre of attention.<<ginterest>><<famesocial 5>><<dance_job_interest 5>>
 	<br><br>
 <<else>>
@@ -993,7 +1102,24 @@ You stand and search for an isolated chair to sit in. You hear the <<person>> sc
 
 :: Dance Job Party Leotard
 <<effects>>
+
+<<if $carried.upper.name isnot "naked">>
+	<<set _upperStripped to true>>
+<</if>>
+<<if $carried.lower.name isnot "naked">>
+	<<set _lowerStripped to true>>
+<</if>>
+
+<<silently>><<clotheson>><</silently>>
 <<underupperwear 8>>
+
+<<if _upperStripped>>
+	<<upperstrip>>
+<</if>>
+<<if _lowerStripped>>
+	<<lowerstrip>>
+<</if>>
+
 You pull on the leotard, fitting the top snug around your chest. People pretend they're not watching you dress.
 <br><br>
 
@@ -1003,7 +1129,25 @@ You pull on the leotard, fitting the top snug around your chest. People pretend
 
 :: Dance Job Party Wear
 <<effects>>
-<<underupperwear 8>><<headwear 3>>
+
+<<if $carried.upper.name isnot "naked">>
+	<<set _upperStripped to true>>
+<</if>>
+<<if $carried.lower.name isnot "naked">>
+	<<set _lowerStripped to true>>
+<</if>>
+
+<<silently>><<clotheson>><</silently>>
+<<underupperwear 8>>
+<<headwear 3>>
+
+<<if _upperStripped>>
+	<<upperstrip>>
+<</if>>
+<<if _lowerStripped>>
+	<<lowerstrip>>
+<</if>>
+
 You pull on the leotard, and place the ears on your head. People pretend they're not watching you dress.
 <br><br>
 
@@ -1047,6 +1191,8 @@ Someone turns up the music, and a crowd gathers around the table masquerading as
 
 You leave the party empty-handed.
 
+<<silently>><<clotheson>><</silently>>
+
 <<if $exposed gte 1>>
 	The <<person>> hands you some towels on the way out.
 	<<towelup>>
@@ -1066,6 +1212,8 @@ You leave the party empty-handed.
 Someone laughs. The <<person>> looks shocked by your boldness. <<He>> stammers an apology, then searches for <<his>> <<wallet>> and hands you the money. You make <<moneyGain 300>>.
 <br><br>
 
+<<silently>><<clotheson>><</silently>>
+
 You leave the party.
 <<if $exposed gte 1>>
 	<<He>> hands you some towels on the way out.
@@ -1596,19 +1744,32 @@ You try to endear yourself to the guests,
 You chat with servants carrying trays of wine and canapés. They seem happy for it, and even give some insight into the manor's layout.
 <br><br>
 <<generate1>><<person1>>
-<<if $rng gte 81>>
+
+<<cleareventpool>>
+
+<<addinlineevent "dance_chat_0">>
 	"Stay out of the basement," a <<person>> says, before making a hurried exit.
-<<elseif $rng gte 61>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_chat_1">>
 	"Strange folks come and go at night," a <<person>> says. "Master says not to speak with them."
-<<elseif $rng gte 41>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_chat_2">>
 	"Some of the security can be trusted," a <<person>> says. "Lot of use in knowing which."<<set $dance_job_stage_explore += 150>><<if $statdisable is "f">> | <span class="green"> - Exploration difficulty</span><</if>>
-<<elseif $rng gte 21>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_chat_3">>
 	"The guests can get grabby once they've had a few," a <<person>> says. "Be careful."
-<<else>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_chat_4">>
 	"Be careful if someone offers you a drink," a <<person>> warns.
-<</if>>
-<br><br>
+<</addinlineevent>>
+
+<<runeventpool>>
 
+<br><br>
 <<link [[Next|Dance Job Stage Intermission End]]>><<endevent>><</link>>
 <br>
 
@@ -1653,11 +1814,14 @@ A small door leads deeper into the manor. Servants often pass through it. A bead
 <</if>>
 
 :: Dance Job Stage Explore 2
+
 <<effects>>
 
 The manor's halls are luxurious and extravagant.
 
-<<if $rng gte 100>>
+<<cleareventpool>>
+
+<<addinlineevent "dance_explore_passage">>
 	<span class="teal">You hear chanting,</span> barely audible against the muffled sound of the party.
 	<br><br>
 
@@ -1668,7 +1832,9 @@ The manor's halls are luxurious and extravagant.
 	<br>
 	<<link [[Turn away|Dance Job Stage Explore End]]>><<stress -6>><</link>><<lstress>>
 	<br>
-<<elseif $rng gte 81>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_explore_jewelry">>
 	<<generate1>><<person1>>
 	You enter a long room filled with display cases, showing off jewelry and antiques. A <<person>> leans against the wall on the far side. <<He>> appears to be dozing.
 	<br><br>
@@ -1680,8 +1846,9 @@ The manor's halls are luxurious and extravagant.
 	<<set $skulduggerydifficulty to 600>>
 	<<link [[Steal antique|Dance Job Stage Explore Antique]]>><<set $skulduggerydifficulty to 600>><</link>><<skulduggerydifficulty>><<crime>>
 	<br>
+<</addinlineevent>>
 
-<<elseif $rng gte 61>>
+<<addinlineevent "dance_explore_tapestry">>
 	You pass paintings and tapestries. Valuable, but too big to steal.
 	<br><br>
 	<<set $skulduggerydifficulty to 1300>>
@@ -1689,7 +1856,9 @@ The manor's halls are luxurious and extravagant.
 	<br>
 	<<link [[Return to the party|Dance Job Stage Explore End]]>><<stress -6>><</link>><<lstress>>
 	<br>
-<<elseif $rng gte 41>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_explore_safe">>
 	You climb a thick staircase, and emerge in front of several lavish, identical corridors. They look like rows of bedrooms. One of the doors is ajar. You peek inside.
 	<br><br>
 
@@ -1700,7 +1869,9 @@ The manor's halls are luxurious and extravagant.
 	<br>
 	<<link [[Return to party|Dance Job Stage Explore End]]>><</link>>
 	<br>
-<<elseif $rng gte 21>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_explore_kitchen">>
 	You enter the kitchen. Steam wafts along the ceiling, and several cooks rush to-and-fro.
 	<br><br>
 	<<generate1>><<person1>>
@@ -1712,19 +1883,22 @@ The manor's halls are luxurious and extravagant.
 	<br>
 	<<link [[Chop carrots (0:05)|Dance Job Stage Explore Carrots]]>><<pass 5>><</link>>
 	<br>
-<<else>>
+<</addinlineevent>>
+
+<<addinlineevent "dance_explore_pool">>
 	You climb a spiralling marble staircase, and emerge in front of a swimming pool.
 	<br><br>
-	<<generate1>><<generatep2>><<person1>>
-	A <<person>> and <<person2>><<person>> are skinny dipping. They're too busy kissing to notice you.
+	<<generate1>><<generatep2>>
+	A <<fullGroup>> are skinny dipping. They're too busy kissing to notice you.
 	<br><br>
 
 	<<link [[Search their belongings for valuables|Dance Job Stage Explore Pool]]>><</link>><<crime>><<skulduggerydifficulty 1 800>>
 	<br>
 	<<link [[Leave|Dance Job Stage Explore End]]>><<endevent>><</link>>
 	<br>
+<</addinlineevent>>
 
-<</if>>
+<<runeventpool>>
 
 :: Dance Job Stage Explore Jewelry
 <<effects>>
@@ -2131,7 +2305,7 @@ You press your ear against the safe, and listen close as you turn the dial.
 
 <<else>>
 
-	You almost have it, when a <<generate1>><<generate2>><<person1>><<person>> and <<person2>><<person>> step inside. Both wear masks.
+	You almost have it, when a <<generate1>><<generate2>><<fullGroup>> step inside. Both wear masks.
 	<br><br>
 
 	"Looks like we have a dirty thief," the <<person1>><<person>> says, closing the door behind <<him>>. They close in, standing between you and the exit, both pairs of eyes on you.
@@ -2280,7 +2454,7 @@ A <<generate2>><<person2>><<person>> arrives to rescue you. "They want you on st
 You return to the party.
 <br><br>
 
-<<link [[Next|Dance Job Stage Intermission End]]>><</link>>
+<<link [[Next|Dance Job Stage Intermission End]]>><<endevent>><</link>>
 <br>
 
 
@@ -2495,7 +2669,7 @@ As you touch it, <span class="pink">a brass contraption closes around your waist
 <<endevent>>
 <<beastNEWinit 1 horse>>
 <<if $horsedisable is "f" and ($monster is 1 or $bestialitydisable is "f") and random(1, 2) is 2>>
-	"Is it worth it?" asks once of the masked guests, peering at your through one of the panes. "Taking a horse for so little money." You feel fur press against your <<bottom>>.
+	"Is it worth it?" asks once of the masked guests, peering at you through one of the panes. "Taking a horse for so little money." You feel fur press against your <<bottom>>.
 	<br><br>
 
 	<<link [[Next|Dance Job Stage Cabin Horse]]>><<set $molestationstart to 1>><</link>>
diff --git a/game/overworld-town/loc-dance-studio/main.twee b/game/overworld-town/loc-dance-studio/main.twee
index 9a577cc1a3b62716b4d0dd8119bbe6b049b9227a..558220d2b8798e066daa243f4b247f6c3bc3a219 100644
--- a/game/overworld-town/loc-dance-studio/main.twee
+++ b/game/overworld-town/loc-dance-studio/main.twee
@@ -45,8 +45,13 @@ You are in the dance studio. Here you can pay for lessons to improve your dancin
 		<</if>>
 		<<if $exposed lt 1>>
 			<<if $money gte 1200>>
-				<<link [[Take a dance lesson (£12 1:00)|Dancing Lesson]]>><<set $phase to 0>><<set $money -= 1200>><<set $dancestage to 0>><</link>><<gtiredness>> | <span class="green">+ + Dancing Skill</span>
-				<br>
+				<<if $danceskill gte 800 and $dance_job_intro is undefined and $dancestudiointro gte 1>>
+					<<link [[Take a dance lesson (£12 1:00)|Dancing Lesson Job Intro]]>><</link>><<gtiredness>> | <span class="green">+ + Dancing Skill</span>
+					<br>
+				<<else>>
+					<<link [[Take a dance lesson (£12 1:00)|Dancing Lesson]]>><<set $phase to 0>><<set $money -= 1200>><<set $dancestage to 0>><</link>><<gtiredness>> | <span class="green">+ + Dancing Skill</span>
+					<br>
+				<</if>>
 			<<else>>
 				<span class="blue">You can't afford a dance lesson.</span>
 				<br>
@@ -172,18 +177,7 @@ Your heart beats faster as you walk away from the dance studio, and away from re
 <<effects>>
 <<if $dancestudiointro is 1 and $phase is 0>><<pass 20>><</if>>
 <<set $outside to 0>><<set $location to "dance_studio">><<effects>>
-<<if $danceskill gte 800 and $dance_job_intro is undefined and $dancestudiointro gte 1>>
-	<<generate1>><<person1>>
-	You try to pay the receptionist, but <<he>> interrupts. "Charlie wanted to see you," <<he>> says. "Go right in. No need to pay."
-	<br><br>
-	<<endevent>>
-	<<npc Charlie>><<person1>>
-	Charlie stands in front of the class, explaining the importance of proper warm up exercises. <<He>> glances at you and smiles. "I'll be right back," <<he>> tells the class. "Keep practising!"
-	<br><br>
-
-	<<link [[Next|Dancing Job Intro]]>><<set $dance_job_intro to 1>><</link>>
-	<br>
-<<elseif $dancestudiointro isnot 1>>
+<<if $dancestudiointro isnot 1>>
 	<<set $dancestudiointro to 1>>
 	<<npc Charlie>><<person1>>You pay the receptionist who ushers you through the door to the left. You enter into a large room with wood panel floors and mirrors lining the walls. A dozen people are already inside. It's easy to pick out the instructor. Hands on hips, <<he>> stands addressing the class, explaining the importance of proper warm up exercises.
 	<br><br>
@@ -261,9 +255,9 @@ Your heart beats faster as you walk away from the dance studio, and away from re
 	<<if $rng lte 20>>
 		<<set $dancelesson to "barre">>
 		You stretch and work your muscles using a barre.
-		<<if $danceskill lte 200>>
+		<<if currentSkillValue('danceskill') lte 200>>
 			It's hard work to stay balanced. You can see in the mirror that you look a bit silly, especially compared to the more experienced students.
-		<<elseif $danceskill lte 800>>
+		<<elseif currentSkillValue('danceskill') lte 800>>
 			You're pretty good at staying balanced. You are able to practise more advanced techniques.
 		<<else>>
 			You are able to use it as a surrogate partner, supporting your weight as you practise airborne techniques. Some of the other students look on with envy.
@@ -272,22 +266,22 @@ Your heart beats faster as you walk away from the dance studio, and away from re
 	<<elseif $rng lte 40>>
 		<<set $dancelesson to "duo">><<generate2>><<person2>>
 		You partner up with a <<person>>.
-		<<if $danceskill lte 200>>
+		<<if currentSkillValue('danceskill') lte 200>>
 			<<He>> has more experience than you, so you let <<him>> take the lead.
-		<<elseif $danceskill lte 800>>
+		<<elseif currentSkillValue('danceskill') lte 800>>
 			You practise techniques requiring a partner, taking turns supporting one another.
-		<<elseif $danceskill lte 1000>>
+		<<elseif currentSkillValue('danceskill') lte 1000>>
 			Being so experienced, you take the lead, careful not to push <<him>> too hard.
 		<</if>>
 		<br><br>
 	<<elseif $rng lte 60>>
 		<<set $dancelesson to "airbarre">>
 		You stretch and work your muscles using an air barre.
-		<<if $danceskill lte 200>>
+		<<if currentSkillValue('danceskill') lte 200>>
 			More experienced students use it to develop strength and poise. You just have fun swinging around.
-		<<elseif $danceskill lte 800>>
+		<<elseif currentSkillValue('danceskill') lte 800>>
 			You work on developing your poise.
-		<<elseif $danceskill lte 1000>>
+		<<elseif currentSkillValue('danceskill') lte 1000>>
 			Held aloft, you are able to fully demonstrate your grace and skill.
 		<</if>>
 		<br><br>
@@ -305,11 +299,11 @@ Your heart beats faster as you walk away from the dance studio, and away from re
 	<<elseif $rng lte 80>>
 		<<set $dancelesson to "instructor">>
 		Charlie gives you some personal attention.
-		<<if $danceskill lte 200>>
+		<<if currentSkillValue('danceskill') lte 200>>
 			<<He>> helps you with the basics.
-		<<elseif $danceskill lte 800>>
+		<<elseif currentSkillValue('danceskill') lte 800>>
 			<<He>> demonstrates some new steps for you to try.
-		<<elseif $danceskill lte 1000>>
+		<<elseif currentSkillValue('danceskill') lte 1000>>
 			<<He>> helps you iron out some flaws in your posture.
 		<</if>>
 		<br><br>
@@ -367,14 +361,14 @@ Your heart beats faster as you walk away from the dance studio, and away from re
 				<<gtrauma>><<gstress>><<garousal>>
 				<</if>>
 			<</if>>
-		<<elseif $danceskill gte 600>>
+		<<elseif currentSkillValue('danceskill') gte 600>>
 			You skilfully shift your weight and ride the momentum back into an upright position. That was close!
 		<<else>>
 
 			<<if $uncomfortable.underwear is false>>
-			You try to struggle back upright, but with no success. Worse, you start to slip despite the barre coiled tightly around your body. You fall onto your back with a thud. As you regain your bearings, you see your <<bottoms>> suspended in the air above you. You take your time and wear a confident smile as you retrieve them, despite the whispers and giggling all around you. You wouldn't mind showing off even more.
+				You try to struggle back upright, but with no success. Worse, you start to slip despite the barre coiled tightly around your body. You fall onto your back with a thud. As you regain your bearings, you see your <<bottoms>> suspended in the air above you. You take your time and wear a confident smile as you retrieve them, despite the whispers and giggling all around you. You wouldn't mind showing off even more.
 			<<else>>
-			You try to struggle back upright, but with no success. Worse, you start to slip despite the barre coiled tightly around your body. You fall onto your back with a thud. As you regain your bearings, you see your <<bottoms>> suspended in the air above you. Flustered at your <<undies>> being exposed in the middle of class like this, you hasten to recover your <<bottoms>> as soon as you can, conscious of the whispers and giggling all around you.
+				You try to struggle back upright, but with no success. Worse, you start to slip despite the barre coiled tightly around your body. You fall onto your back with a thud. As you regain your bearings, you see your <<bottoms>> suspended in the air above you. Flustered at your <<undies>> being exposed in the middle of class like this, you hasten to recover your <<bottoms>> as soon as you can, conscious of the whispers and giggling all around you.
 			<<gtrauma>><<gstress>><<garousal>>
 			<</if>>
 
@@ -410,7 +404,7 @@ Your heart beats faster as you walk away from the dance studio, and away from re
 			<br>
 			<<link [[Help other students|Dancing Lesson No Instructor]]>><<set $phase to 1>><</link>>
 			<br>
-			<<if $trauma gte 1 and $danceskill gte 200>>
+			<<if $trauma gte 1 and currentSkillValue('danceskill') gte 200>>
 				<<link [[Showboat your skills in front of less experienced students|Dancing Lesson No Instructor]]>><<set $phase to 2>><</link>><<lstress>>
 				<br>
 			<</if>>
@@ -550,10 +544,15 @@ Charlie immediately recognises that something is wrong. <<He>> pulls you aside a
 <<stateman>>
 <br><br>
 <<actionsman>>
-<<if $timer gte 1>>
-	<span id="next"><<link [[Next|Dance Studio Strip]]>><</link>></span><<nexttext>>
-<<else>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Dance Studio Strip Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
 	<span id="next"><<link [[Next|Dance Studio Strip Finish]]>><</link>></span><<nexttext>>
+<<elseif $timer lt 1>>
+	<span id="next"><<link [[Next|Dance Studio Strip Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Dance Studio Strip]]>><</link>></span><<nexttext>>
 <</if>>
 
 :: Dancing Lesson No Instructor
@@ -580,11 +579,28 @@ Charlie immediately recognises that something is wrong. <<He>> pulls you aside a
 
 :: Dance Studio Strip Finish
 
-<span class="green">You hear Charlie's voice growing louder above the jeers of the <<group>>.</span> "There's more where this came from," the <<person2>><<person>> says as they cease their attack.
-<br><br>
-<<clotheson>>
-<<endcombat>>
-<<link [[Next|Dancing Lesson]]>><</link>>
+
+<<if $enemyhealth lte 0>>
+	<span class="green">You hear Charlie's voice growing louder above the jeers of the <<group>>.</span> "There's more where this came from," the <<person2>><<person>> says as they cease their attack.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Dancing Lesson]]>><</link>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	<span class="green">You hear Charlie's voice growing louder above the jeers of the <<group>>.</span> "There's more where this came from," the <<person2>><<person>> says as they cease their attack.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Dancing Lesson]]>><</link>>
+<<else>>
+	<span class="green">You hear Charlie's voice growing louder above the jeers of the <<group>>.</span> "There's more where this came from," the <<person2>><<person>> says as they cease their attack.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Dancing Lesson]]>><</link>>
+<</if>>
+
 
 :: Heel Lesson Inquiry
 <<set $outside to 0>><<set $location to "dance_studio">><<effects>>
diff --git a/game/overworld-town/loc-danube-homes/meal.twee b/game/overworld-town/loc-danube-homes/meal.twee
index e2b5968119147dbf4118e6a082e819512d0ca4ae..f09e72d10701aea0f9c6954f33eeaced66342e95 100644
--- a/game/overworld-town/loc-danube-homes/meal.twee
+++ b/game/overworld-town/loc-danube-homes/meal.twee
@@ -1,56 +1,200 @@
 :: Danube Meal
 
 <<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
-<<upperruined>><<lowerruined>><<underruined>><<set $leftarm to "bound">><<set $rightarm to "bound">>
-<<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>>You awaken in darkness, yet you hear muffled voices all around you. You can barely move; your arms and legs have been hogtied behind your back. There's something lodged in your mouth, gagging you. You think you smell roast vegetables.
+<<ruined>><<bind>><<facewear 22>>
+<<set _robin to statusCheck("Robin")>>
+<<set $withRobin to ($phase is 1)>>
+You awaken in darkness, yet you hear muffled voices all around you. You can barely move; your wrists and ankles have been hogtied behind your back.
+There's something lodged in your mouth, gagging you. You think you smell roast vegetables, and the air is humid.
 <br><br>
-You hear what sounds like metal clanging on metal, and you are blinded by a sudden light. Polite applause erupts around you before your eyes adjust. Once they do, you find that you're lying exposed and helpless on a platter in the middle of a table, surrounded by <<people>> in fancy dinner wear. You hear the clink of cutlery on glass and the applause tapers off.
+
+You hear what sounds like metal clanging on metal, and you are blinded by a sudden light. Polite applause erupts around you before your eyes adjust.
+Once they do, you find that you're lying exposed and helpless on a platter in the middle of a table,
+surrounded by <<people>> in fancy dinner wear and lavish masquerade masks.
+<br><br>
+
+<<if $withRobin>>
+	<<npc Robin 1>><<person1>>
+	Turning your head to the side, you see Robin in the same predicament, fully naked and bound in the middle of a huge silver platter.
+	<<He>> remains unconscious for a moment, until someone taps <<him>> awake.
+	Robin's eyes widen at the sight of so many people watching, causing <<him>> to cry out into <<his>> gag.
+	<br><br>
+<</if>>
+
+You hear the clink of cutlery on glass. The applause tapers off. A voice behind you speaks.
+"I hope everyone's enjoyed their evening so far. As you can see, we have something quite special for pudding."
 <br><br>
-<<person1>>A voice behind you speaks. "I hope everyone's enjoyed their evening so far. As you can see, we have something quite special for pudding." <<He>> claps <<his>> hands and you hear doors opening, followed by footsteps. Two pairs of arms grab you by the shoulders and hoist you up, positioning you on your shins and giving you a better view of the room. You see the speaker stood at one end of the table, glass in hand, a proud smile on <<his>> face. <<He>> nods at the pair who lifted you, a <<person2>><<person>> and <<person3>><<person>> each wearing servant's garb.
+
+<<generate2>><<generate3>>
+<<person2>><<He>> claps <<his>> hands and you hear doors opening, followed by footsteps.
+Two pairs of arms grab you by the shoulders and hoist you up onto your knees, giving you a better view of the room. Next, they force your knees apart,
+<<if $worn.genitals.type.includes("chastity")>>
+	leaving your <<print $worn.genitals.name>> on full display.
+<<elseif $player.penisExist>>
+	leaving your <<penis>> on full display<<if $player.penissize gte 2>>, hanging crudely below you<</if>>.
+	<<if $player.vaginaExist>>
+		Thankfully, your <<pussy>> hasn't been noticed, although it drips fluids down your thighs.
+	<</if>>
+<<elseif $player.vaginaExist>>
+	leaving your <<pussy>> on full display, dripping fluids down your thighs.
+<</if>>
+With your arms bound behind your back,
+<<if $player.breastsize gte 1>>
+	your <<breasts>> are pushed out in front of you, and
+<</if>>
+you can't do anything as the nobles feast their eyes on your body.
+<<if $exhibitionism gte 75>>
+	<<arousal 500>><<garousal>>
+<</if>>
+<br><br>
+
+<<if $withRobin>>
+	You can see Robin nearby, having been lifted onto <<his>> knees and struggling against <<his>> restraints.
+	<<if _robin.breastsize gte 1>>
+		<<His>> struggles only succeed in drawing attention to <<his>> exposed _robin.breastsdesc, much to the delight of your captors.
+	<<else>>
+		<<His>> struggles prove futile, only serving to further entertain your captors.
+	<</if>>
+	<br><br>
+<</if>>
+
+The speaker, who appears to be the host of this extravagant dinner party, stands at one end of the table, glass in hand, and a proud smile on <<person2>><<his>> face.
+<<He>> nods at the people who lifted you, a pair dressed in exquisite servant's garb.
 <br><br>
-Without warning, both start pouring a cold white liquid on your chest with large wooden ladles. The sensation makes you gasp, eliciting mischievous whispers from some of the guests. It runs over your <<nipples>>, making them feel even more raw and sensitive, and doesn't stop there. When it reaches your <<genitals>> the speaker licks <<his>> lips. They aren't going to eat you, surely!
+
+<<if $player.penisExist and $player.vaginaExist>>
+	"I've prepared something particularly interesting for you tonight."
+	One of the servants takes your
+	<<if $player.ballsExist and $ballssize gte 0>>
+		<<ballsize>> testicles in <<his>> hand and lifts them out of the way,
+	<<else>>
+		<<penis>> in <<his>> hand and lifts it out of the way,
+	<</if>>
+	exposing your pussy to the room and drawing out a round of excited gasps from the dinner guests.
+	<br><br>
+
+	<<if $withRobin and _robin.penis isnot "none" and _robin.vagina isnot "none">>
+		The chatter rises in volume as you see Robin being manhandled the same way, forced to show off <<person1>><<his>> own _robin.penisdesc and dripping <<pussy>>.
+		<br><br>
+	<</if>>
+	The host seems delighted by the success of <<person2>><<his>> spectacle.
+	<br><br>
+<<elseif $withRobin and _robin.penis isnot "none" and _robin.vagina isnot "none">>
+	"I've prepared something particularly interesting for you tonight."
+	One of the servants takes Robin's _robin.penisdesc in <<his>> hand and lifts it out of the way,
+	exposing Robin's pussy to the room and eliciting a round of excited gasps from the dinner guests.
+	The host seems delighted by the success of <<person2>><<his>> spectacle.
+	<br><br>
+<</if>>
+
+Without warning, the servants start pouring a cold white liquid on your chest with large wooden ladles.
+The sensation makes you gasp, eliciting mischievous whispers from some of the guests.
+It runs over your <<nipples>>, making them feel even more raw and sensitive, and doesn't stop there.
+When it reaches your genitals, the host licks <<his>> lips. They aren't going to eat you, surely!
 <br><br>
+
 <<link [[Next|Danube Meal2]]>><</link>>
 
 :: Danube Meal2
-
 <<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+<<set _robin to statusCheck("Robin")>>
+
 More servants enter, carrying baskets full of strawberries.
+<<if $player.penisExist>>
+	<<set _yourclit to "the head of your <<penis>>">>
+	<<if $player.vaginaExist>>
+		<<set _yourclit += ", and another to your clit">>
+	<</if>>
+<<else>>
+	<<set _yourclit to "your clit">>
+<</if>>
 <<if $worn.genitals.type.includes("chastity")>>
 	The host caresses your $worn.genitals.name. "It has protection, but that won't matter." One of the servants tapes a pink plastic object to the device.
 <<else>>
-	One of the servants tapes a pink plastic object to your <<genitals>>.
+	One of the servants tapes a pink plastic object to _yourclit.
+<</if>>
+<<if $withRobin>>
+	Nearby, another servant tapes more of the same item to Robin's genitals. The colour on <<person1>><<his>> face fades as you can see panic overwhelm <<him>>.
 <</if>>
-A moment later the device fires into activity. The vibrations are powerful, saturating you to the core. You involuntarily jerk at the abrupt sensation and a muffled yelp escapes your gag.
-<<arousal 4000>><<garousal>><<stress 1>><<gstress>><<trauma 1>><<gtrauma>>
 <br><br>
-<<if $arousal gte $arousalmax>><<orgasm>><<danubemeal>><</if>>
-The guests take turns dipping their strawberries in the cream covering your body, which is steadily resupplied by the servants. The pool around your knees grows, but they're only interested in scooping the cream directly from your body. They have a particular interest in your <<nipples>>, and frequently tease them with fruit.
-<<arousal 4000>><<garousal>><<stress 1>><<gstress>><<trauma 1>><<gtrauma>>
+
+A moment later the device fires into activity. The vibrations are powerful, saturating you to the core.
+<<if $withRobin>>
+	The sound of Robin screaming distracts you from your torment as <<he>> violently spasms in climax.
+	A servant rushes over to catch Robin's fluid onto the basket of strawberries.
+<</if>>
+You involuntarily jerk at the abrupt sensation and a muffled yelp escapes your gag.
+<<arousal 4000>><<ggarousal>><<stress 1>><<gstress>><<trauma 1>><<gtrauma>>
+<br><br>
+
+<<if $arousal gte $arousalmax>>
+	<<orgasm>>
+	<<danubemeal>>
+<</if>>
+<<set _body to ($withRobin ? "bodies" : "body")>>
+The guests take turns dipping their strawberries in the cream covering your _body, which is steadily resupplied by the servants.
+The pool around your knees grows, but they're only interested in scooping the cream directly from your _body.
+They have a particular interest in your <<nipples>>, and frequently tease them with fruit.
+<<arousal 4000>><<ggarousal>><<stress 1>><<gstress>><<trauma 1>><<gtrauma>>
 <br><br>
-<<if $arousal gte $arousalmax>><<orgasm>><<danubemeal>><</if>>
-This continues for a time, until another clinking interruption by the host. "I hope you found that enjoyable, it's not every day we can acquire something quite so delectably..." <<person1>>The servants push you face down into the cream before covering you with a lid, reducing the rest of the speech to an inaudible muffle. You feel yourself being lifted and carried, the sound of the host's voice growing fainter.
+
+<<if $arousal gte $arousalmax>>
+	<<orgasm>>
+	<<danubemeal>>
+<</if>>
+This continues for a time, until another clinking interruption by the host.
+"I hope you found that enjoyable, it's not every day we can acquire something quite so delectably..."
+<<if $withRobin>>
+	<br><br>
+
+	Before the host can finish, the crowd grows wild from their lust.
+	They swarm Robin's platter and undo <<person1>><<his>> bindings, forcing <<him>> on <<his>> back.
+	Cream splatters everywhere. The host looks amused and halts the servants from interfering.
+	The guests lick every part of Robin's body, lapping up as much cream as they can.
+	Soon, Robin's gag is undone.
+	<br><br>
+
+	<<if _robin.trauma gte 70>>
+		Robin barely gives any reaction to their assault, <<his>> eyes wide and empty.
+	<<elseif _robin.dom gte 50>>
+		"D-don't look! It'll be okay!" Robin turns to you, shouting.
+	<<else>>
+		"Stop! Please stop!" Robin cries.
+	<</if>>
+	<br><br>
+
+	<<robinPunishment "dinner">>
+<</if>>
+<<unset $withRobin>>
+
+The servants push you face down into the cream before covering you with a lid, reducing the rest of the speech to an inaudible muffle.
+You feel yourself being lifted and carried, the sound of the host's voice growing fainter.
 <br><br>
-You hear a door opening, and then you fly through the air before landing on hard pavement. A rain of leftover food falls on top of you, and you hear a door close. Did they just dump you out with the trash? Fortunately, the impact loosened your bonds and you manage to struggle your legs free. Your arms remain bound however.
+
+You hear a door opening, and then you fly through the air before landing on hard pavement.
+A rain of leftover food falls on top of you, and you hear a door close. Did they just dump you out with the trash?
+Fortunately, the impact loosened your bonds and you manage to struggle your legs free. Your arms remain bound however.
 <br><br>
+
 <<endevent>>
 <<beastNEWinit 3 dog>>
-You have yet to recover your bearings when a growl sends a chill down your back. You realise why they would just dump food onto the ground like this. Three stray <<beastsplural>> advance on you, hunger in their eyes.
+You have yet to recover your bearings when a growl sends a chill down your back. You realise why they would just dump food onto the ground like this.
+Three stray <<beastsplural>> advance on you, hunger in their eyes.
 <!-- Modified for Beast People -->
 <br><br>
-<<if $monster is 1 or $bestialitydisable is "f">>
+
+<<if ($monster is 1 or $bestialitydisable is "f")>>
 	<<link [[Next|Danube Meal Dogs]]>><<set $molestationstart to 1>><</link>>
 	<br>
 <<else>>
 	You flee, dropping cream and strawberries as you go. You manage to escape them, but not without injury. <<beastescape>>
 	<br><br>
+
 	<<set $stress -= 1000>>
 	<<endevent>>
 	<<residentialquick>>
 <</if>>
 
-
-
 :: Widgets Danube Meal [widget]
 
 <<widget "danubemeal">>
@@ -58,22 +202,27 @@ You have yet to recover your bearings when a growl sends a chill down your back.
 		<<set $orgasmdown to 0>>
 		<<if $orgasmcurrent lte 0>>
 		<<elseif $orgasmcurrent lte 1>>
-			The guests laugh and applaud at the sight of you writhing in climax. One of the servants quickly moves a basket of strawberries in front of your <<genitals>>.
+			The guests laugh and applaud at the sight of you writhing in climax.
+			One of the servants quickly moves a basket of strawberries in front of your <<genitals>>.
 			<<if $orgasmcount lte 12>>
-				<<person2>><<He>> spins the basket, making sure the whole batch gets a hearty helping of your sexual fluids. The guests crowd around the basket. "Leave some for me!"
+				<<person3>><<He>> spins the basket, making sure the whole batch gets a hearty helping of your sexual fluids.
+				The guests crowd around the basket. "Leave some for me!"
 				<br><br>
 				"Hey, no shoving!"
 				<br><br>
-				<<person1>>"Patience, my friends," says the host, stroking your chin. "There's plenty to go around, hmm?"
+				"Patience, my friends," says the host, stroking your chin. "There's plenty to go around, hmm?"
 			<<elseif $orgasmcount lte 23>>
-				<<person2>><<He>> spins the basket, making sure the whole batch gets a helping of your sexual fluids.
+				<<person3>><<He>> spins the basket, making sure the whole batch gets a helping of your sexual fluids.
 				The guests seem disappointed in the amount you produce. "I thought there'd be more."
 				<br><br>
-				<<person1>>"Patience, my friends," says the host, stroking your chin. "There's plenty to go around, hmm?"
+				"Patience, my friends," says the host, stroking your chin. "There's plenty to go around, hmm?"
 			<<elseif $orgasmcount gte 24>>
-				<<person2>><<He>> waits expectantly. When no fluids emerge from you, <<he>> looks up at the host with a worried look on <<his>> face. The guests seem disappointed, and some angry. "Is that it?" "It's broken! Where did you get it anyway?"
+				<<person3>><<He>> waits expectantly. When no fluids emerge from you, <<he>> looks up at the host with a worried look on <<his>> face.
+				The guests seem disappointed, and some angry. "Is that it?" "It's broken! Where did you get it anyway?"
 				<br><br>
-				The host raises <<his>> arms in exasperation. "I am dreadfully sorry. I promise you the supplier won't hear the end of this, mark my words." It seems to placate the guests to some extent. You wonder if they'll remove the instrument from your body, but they do not.
+				The host raises <<person2>><<his>> arms in exasperation.
+				"I am dreadfully sorry. I promise you the supplier won't hear the end of this, mark my words."
+				It seems to placate the guests to some extent. You wonder if they'll remove the instrument from your body, but they do not.
 			<</if>>
 		<<elseif $orgasmcurrent gte 2>>
 			<<if $orgasmcount lte 23>>
diff --git a/game/overworld-town/loc-danube-homes/work.twee b/game/overworld-town/loc-danube-homes/work.twee
index de96bde26ce2228bf5b5421d9e6438f840886ba0..8fc34796affbd18bde17ab67f61fc6e909fb4255 100644
--- a/game/overworld-town/loc-danube-homes/work.twee
+++ b/game/overworld-town/loc-danube-homes/work.twee
@@ -1,92 +1,78 @@
 :: Danube House Knock
 <<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "danube">>
 
-	You walk up to one of the mansions and knock on the door.
-	<br><br>
-
-	<<if $rng gte 91 and $breastfeedingdisable is "f" and $malechance lt 100>>
-
-		<<generatef1>><<person1>>A <<person>> answers the door. <<Hes>> wearing nothing but a shirt and panties. "Can I help you?" <<he>> asks.
-		<br><br>
-
-		<<link [[Ask for work|Danube House Work]]>><<set $phase to 7>><</link>>
-		<br>
-		<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
-		<br>
-
-	<<elseif $rng gte 61>>
-
-		There's no response.
-		<br><br>
-
-		<<link [[Break in|Danube House Lock]]>><</link>>
-		<br>
-		<<link [[Go to the next house (0:02)|Danube House Knock]]>><<pass 2>><</link>>
-		<br>
-		<<link [[Stop|Danube Street]]>><</link>>
-		<br>
-
-	<<elseif $rng gte 51>>
+You walk up to one of the mansions and knock on the door.
+<br><br>
+<<if $rng lte 30>> /* Default case*/
 
-		<<generatey1>><<generate2>><<person2>>A <<person>> answers the door. "Can I help you?" <<he>> asks.
-		<br><br>
+	There's no response.
+	<br><br>
 
-		<<link [[Ask for work|Danube House Work]]>><<set $phase to 6>><</link>>
-		<br>
-		<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
-		<br>
+	<<link [[Break in|Danube House Lock]]>><</link>>
+	<br>
+	<<link [[Go to the next house (0:02)|Danube House Knock]]>><<pass 2>><</link>>
+	<br>
+	<<link [[Stop|Danube Street]]>><</link>>
+	<br>
 
-	<<elseif $rng gte 41>>
+<<else>>
+	<<cleareventpool>>
 
+	<<set $phase to 0>>
+	<<addinlineevent "Danube Party Pre-Intro">>
 		<<generate1>><<generate2>><<person2>>A <<person>> answers the door. "You aren't who we were expecting," <<he>> says.
-		<br><br>
-
-		<<link [[Ask for work|Danube House Work]]>><<set $phase to 1>><</link>>
-		<br>
-		<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
-		<br>
-
-	<<elseif $rng gte 31>>
-
+		<<set $phase to 1>>
+	<</addinlineevent>>
+	<<addinlineevent "Danube Attic Pre-Intro">>
 		<<generate1>><<person1>>A <<person>> answers the door. "I do not like being disturbed. Speak." <<he>> says.
-		<br><br>
-
-		<<link [[Ask for work|Danube House Work]]>><<set $phase to 2>><</link>>
-		<br>
-		<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
-		<br>
-
-	<<elseif $rng gte 21>>
-
-		<<generate1>><<person1>>A <<person>> answers the door. <<He>> examines you head to feet before speaking. "Such a fine young thing," <<he>> says. "Is there anything I can do for you?"
-		<br><br>
-
-		<<link [[Ask for work|Danube House Work]]>><<set $phase to 3>><</link>>
-		<br>
-		<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
-		<br>
-
-	<<elseif $rng gte 11>>
-
+		<<set $phase to 2>>
+	<</addinlineevent>>
+	<<addinlineevent "Danube Tea Pre-Intro">>
+		<<generate1>><<person1>>A <<person>> answers the door. <<He>> examines you head to feet before speaking. "Such a fine thing," <<he>> says. "Is there anything I can do for you?"
+		<<set $phase to 3>>
+	<</addinlineevent>>
+	<<addinlineevent "Danube Garden Pre-Intro">>
 		<<generate1>><<generate2>><<person1>>A <<person>> answers the door. "My <<person2>><<master>> does not like being disturbed," <<he>> says. "Out with it."
-		<br><br>
-
-		<<link [[Ask for work|Danube House Work]]>><<set $phase to 4>><</link>>
-		<br>
-		<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
-		<br>
-
-	<<else>>
-
+		<<set $phase to 4>>
+	<</addinlineevent>>
+	<<addinlineevent "Danube Doll Pre-Intro">>
 		<<generatey1>><<person1>>A <<person>> answers the door. <<He>> opens it slightly and peeks through the gap. <<He>> doesn't say anything.
-		<br><br>
+		<<set $phase to 5>>
+	<</addinlineevent>>
+	<<addinlineevent "Danube Tutor Pre-Intro">>
+		<<generatey1>><<generate2>><<person2>>A <<person>> answers the door. "Can I help you?" <<he>> asks.
+		<<set $phase to 6>>
+	<</addinlineevent>>
+	<<if $breastfeedingdisable is "f" and $malechance lt 100>>
+		<<addinlineevent "Danube Breast Pre-Intro">>
+			<<generatef1>><<person1>>A <<person>> answers the door. <<Hes>> wearing nothing but a shirt and panties. "Can I help you?" <<he>> asks.
+			<<set $phase to 7>>
+		<</addinlineevent>>
+	<</if>>
+	<<addinlineevent "Danube Catperson Pre-Intro">>
+		<<generate1>><<person1>>A <<person>> answers the door.
+		<<if $fame.bestiality gte 400>>
+			<<His>> eyes light up when <<he>> sees you. "Oh, I know you. You've a talent for animal care, haven't you?"
+		<<else>>
+			"Oh, hello. What can I do for you?" <<he>> asks.
+		<</if>>
+		<<set $phase to 8>>
+	<</addinlineevent>>
 
-		<<link [[Ask for work|Danube House Work]]>><<set $phase to 5>><</link>>
-		<br>
-		<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
-		<br>
+	<<runeventpool>>
 
+	<br><br>
+	<<if $phase is 0>>
+		<<errorp "Eventpool selection failed! Please export your save on this screen and report this bug.">>
+	<<elseif $phase is 8>>
+		<<link [[Ask for work|Danube Catperson Intro]]>><</link>>
+	<<else>>
+		<<link [[Ask for work|Danube House Work]]>><</link>>
 	<</if>>
+	<br>
+	<<link [[Say you've got the wrong address and leave|Danube Street]]>><<endevent>><</link>>
+	<br>
+<</if>>
 
 :: Danube House Work
 <<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
@@ -241,7 +227,7 @@
 		<<else>>
 			"I'm interested in a tutor, but I'm afraid my <<person1>><<daughter>> is in school at the moment." <<person2>><<He>> pauses and looks you over. "Shouldn't you be in school yourself?" <<gstress>><<stress 2>>
 			<br><br>
-			
+
 			<<link [[Try another house|Danube House Knock]]>><<endevent>><</link>>
 			<br>
 			<<link [[Stop|Danube Street]]>><<endevent>><</link>>
@@ -298,7 +284,6 @@ You sit down next to <<him>>, and blush more deeply as she gently guides your he
 You shift to access her chest better, and move your lips over her nipple. Sweet, creamy milk leaks out as soon as your tongue touches <<his>> bud.
 You suckle. It tastes sweet and warm. A calmness falls over you. <<His>> free hand creeps up your thigh.
 <<promiscuity3>>
-<br><br>
 After a while, the milk stops flowing. You look up.
 <br><br>
 "You can do the other one too, if you want." <<He>> says. "But you don't have to. I'll still pay you."
@@ -401,7 +386,6 @@ A <<person1>><<person>> gasps and drops their glass, the sound of its shattering
 Soon everyone in the room is watching you, murmuring amongst themselves.
 You offer another glass to the <<person>>, who doesn't take <<his>> eyes off your <<lewdness>> as <<he>> takes from the tray.
 <<exhibitionism4>><<fameexhibitionism 30>>
-<br><br>
 
 <<link [[Next|Danube Apron2]]>><</link>>
 <br>
@@ -900,13 +884,12 @@ The <<person>> takes a seat and gestures for you to do the same.
 	<br><br>
 	You feel more relaxed.
 	<<lstress>><<stress -1>>
-<<elseif $fame gte 2000 and $rng % 2>>
+<<elseif fameTotal() gte 2000 and $rng % 2>>
 	<<He>> stops abruptly.
 	"You look familiar," <<he>> says. "Do I know you from somewhere?"
 	<br><br>
-	You tense. Half the town knows you from somewhere.
+	You tense. Half the town knows you from somewhere. You feign an innocent shrug.
 	<<gstress>><<stress 2>>
-	You feign an innocent shrug.
 	<br><br>
 	"Oh it doesn't matter," <<he>> says, returning to <<his>> story.
 	<br><br>
@@ -1407,7 +1390,7 @@ You continue your work. Now wary, you stay far from the denser foliage. After an
 	<<else>>
 		"You were right, <<person3>><<Master>>. Look, the <<bitch>> is getting off on it!"
 		<br>
-		<<if $famebestiality gte 400>>
+		<<if $fame.bestiality gte 400>>
 			"Indeed," <<he>> says. "I recognised <<phim>>. <<pShes>> a well known 'animal-lover'."
 		<<else>>
 			"Well even I didn't expect <<phim>> to enjoy it this much."
@@ -1429,7 +1412,7 @@ You continue your work. Now wary, you stay far from the denser foliage. After an
 		"That's brave," the <<person2>><<person>> says. "Putting it in there. With all those teeth."
 	<</if>>
 <<elseif ($vaginastate is "penetrated" or $anusstate is "penetrated")>>
-	<<if $phase % 2>>"That's right, Brutus," the <<person2>><<person>> says, "Breed your bitch."<<else>>"Harder Brutus! Make <<phim>> yelp."<</if>>
+	<<if $phase % 2>>"That's right, Brutus," the <<person2>><<person>> says, "<<if $pregnancyspeechdisable is "f">>Breed<<else>>Fuck<</if>> your bitch."<<else>>"Harder Brutus! Make <<phim>> yelp."<</if>>
 <<elseif $penisstate is "penetrated">>
 	<<if $phase % 2>>"That's right, Brutus," the <<person2>><<person>> says, "Ride your stud."<<else>>"Good girl! Make <<phim>> yelp."<</if>>
 <<elseif $penisstate is "otheranus">>
@@ -1956,3 +1939,524 @@ You work for an hour teaching the <<person1>><<person>> about _subject
 <br><br>
 <<link [[Leave|Danube Street]]>><<pass 60>><<endevent>><</link>>
 <br>
+
+:: Danube Catperson Intro
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+The <<person>> smiles. "Your timing is perfect! Please, come in." <<He>> gestures you into the house. Inside is a mess. It smells funny.
+<br><br>
+
+<<He>> whistles,
+
+<<saveNPC 0 "danube_cat_owner">>
+<<endevent>>
+<<beastNEWinit 3 cat>>
+<<saveNPC 0 "danube_cat_0">><<saveNPC 1 "danube_cat_1">><<saveNPC 2 "danube_cat_2">>
+
+prompting the arrival of three <<beastsplural>>.
+
+<<endevent>>
+<<loadNPC 0 "danube_cat_owner">>
+
+"These are my babies," <<person1>><<he>> purrs. "I need to fetch them some things. I'll give £35 to watch the little rascals while I'm out." <<He>> nuzzles one on the nose. "Maybe more, if they like you!"
+<br><br>
+
+<<link [[Accept (1:30)|Danube Catperson Accept]]>><</link>>
+<br>
+<<link [[Refuse|Danube Catperson Refuse]]>><</link>>
+<br>
+
+:: Danube Catperson Refuse
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+You refuse the <<persons>> offer and leave <<him>> to console <<his>> pets.
+<br><br>
+
+<<clearNPC "danube_cat_owner">>
+<<clearNPC "danube_cat_0">>
+<<clearNPC "danube_cat_1">>
+<<clearNPC "danube_cat_2">>
+
+<<link [[Next|Danube Street]]>><<endevent>><</link>>
+<br>
+
+:: Danube Catperson Accept
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+"Marvelous! I'll be quick as I can." <<He>> pauses halfway through the door. "Don't worry about feeding them. They're needy things, but they just had their <<if $daystate is "dawn">>breakfast<<elseif $daystate is "day">>lunch<<else>>dinner<</if>>."
+<br><br>
+
+With those words, <<hes>> gone.
+<br><br>
+
+<<endevent>>
+<<loadNPC 0 "danube_cat_0">><<loadNPC 1 "danube_cat_1">><<person1>>
+
+<<if $monster is 1 or $bestialitydisable is "f">>
+	<<link [[Next|Danube Catperson Accept 2]]>><<set $danubecathappiness to 0>><</link>>
+	<br>
+<<else>>
+	<<link [[Next|Danube Catperson Safe]]>><</link>>
+	<br>
+<</if>>
+
+:: Danube Catperson Safe
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+The job is uneventful. The <<beastsplural>> are skittish, and spend the whole hour and a half hiding from you.
+
+<<endevent>>
+<<loadNPC 0 "danube_cat_owner">><<person1>>
+
+You're relieved when the <<person>> returns, if only to end your boredom.
+<br><br>
+
+"Where are you, my darlings?" <<he>> calls out. There's no response. "Odd. They're usually quite social."
+<br><br>
+
+<<He>> sets <<moneyGain 35>> aside, before shuffling past in search of <<his>> pets. You take the money leave.
+
+<<clearNPC "danube_cat_owner">>
+<<clearNPC "danube_cat_0">>
+<<clearNPC "danube_cat_1">>
+<<clearNPC "danube_cat_2">>
+
+<<link [[Next|Danube Street]]>><<endevent>><</link>>
+<br>
+
+:: Danube Catperson Accept 2
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+The job starts slow. They're skittish with you around, but you're content to leave them be.
+<br><br>
+
+About half an hour in, you hear a shrill cry from the kitchen.
+You rush in to find <<print ($NPCList[0].pronoun isnot $NPCList[1].pronoun and $monster ? "a" : "two")>> <<beastsplural>> poking into the pantry.
+<br><br>
+
+<<if $monster is 1>>
+	"You, <<girl>>," the larger <<beasttype 0>> growls. <<bHe 0>> holds out a bag of food. "Open it."
+<<else>>
+	The larger <<beasttype 0>> paws at a bag of food, growling.
+<</if>>
+<br><br>
+
+You were told not to feed them, but they look hungry.
+<br><br>
+
+<<if $deviancy gte 35>>
+	<<link [[Satisfy a different appetite|Danube Catperson Feed]]>><<set $phase to 3>><</link>><<deviant3>>
+	<br>
+<</if>>
+<<link [[Tell them no|Danube Catperson Feed]]>><<set $phase to 2>><</link>><<difficulty 65>>
+<br>
+<<link [[Feed them|Danube Catperson Feed]]>><<set $phase to 1>><</link>><<dancedifficulty 1 300>>
+<br>
+
+:: Danube Catperson Feed
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+<<switch $phase>>
+	<<case 1>>
+		<<if $submissive gte 1150>>
+			"Okay then," you say. "If that's what you want."
+		<<elseif $submissive lte 850>>
+			"Whatever it takes to get you to shut up," you grunt.
+		<<else>>
+			"Alright," you say. "Let's get you guys fed."
+		<</if>>
+		You tear into the bag. Before you can pour it, the impatient <<beasttype>> pounces!
+		<br><br>
+
+		You see it coming,
+		<<if $danceSuccess>>
+			<span class="green">and dodge out of the way.</span> <<bHe>> misses you and crashes into the other <<person2>><<beasttype>>. You take the opportunity to fill the bowls.<<stress -6>><<lstress>>
+			<br><br>
+
+			The sound of food falling into place cuts off a fight between the <<beastsplural>>. They scurry for their food, though not without a hiss or two.
+			<br><br>
+
+			Finished with their meal, the <<beastsplural>> go back to lounging. You do the same.
+		<<else>>
+			<span class="red">but <<bhes>> too fast.</span> <<bHe>> slams into you. The bag slips from your grasp, spilling food everywhere.<<pain 15>><<stress 5>><<ggpain>><<gstress>>
+			<br><br>
+
+			The <<beastsplural>> help themselves to the mess.
+			<<if $submissive gte 1150>>
+				"S-sorry for being slow," you mumble.
+			<<elseif $submissive lte 850>>
+				"Pricks," you grumble, sending a middle finger <<bhis>> way.
+			<<else>>
+				"Impatient little buggers," you grumble.
+			<</if>>
+			<br><br>
+
+			You clean up as best you can while the <<beastsplural>> gorge themselves. You hope the owner won't be upset.
+		<</if>>
+		<br><br>
+
+		<<link [[Next|Danube Catperson Sofa]]>><<endevent>><<pass 60>><</link>>
+		<br>
+	<<case 2>>
+		You tell the two no. They stare for a few seconds,
+		<<if random(1, 100) gte 36>>
+			<span class="green">before slinking out of the pantry.</span>
+			<<if $monster is 1>>
+				"Master would have," the <<person2>><<beasttype>> mutters as <<bhe>> passes.
+			<</if>>
+			<br><br>
+
+			With the <<beastsplural>> placated, you return to the sofa.
+			<br><br>
+
+			<<link [[Next|Danube Catperson Sofa]]>><<endevent>><<pass 60>><</link>>
+			<br>
+		<<else>>
+			<span class="red">then hiss.</span>
+			<<if $monster is 1>>
+				"You don't tell us no," the <<beasttype>> says.
+			<</if>>
+			<<bHe>> pounces onto you, knocking you to the ground.
+			<br><br>
+
+			<<link [[Next|Danube Catperson Feed Sex]]>><<set $molestationstart to 1>><</link>>
+		<</if>>
+	<<case 3>>
+		You drop to the floor and adopt a suggestive pose.
+		<br><br>
+
+		"I'm not supposed to feed you," you coo. "But a treat won't hurt."
+		<<deviancy3>>
+
+		The <<beastsplural>> slowly approach, purring.
+		<br><br>
+
+		<<link [[Next|Danube Catperson Feed Sex]]>><<set $sexstart to 1>><</link>>
+	<<default>>
+		You look at the two and, unsure what to do, go back to what you were doing before. The two don't stop their chants, but you hold through your indifference and eventually, they stop and peace returns.
+		<br><br>
+
+		<<link [[Next|Danube Catperson Sofa]]>><<endevent>><<pass 60>><</link>>
+		<br>
+<</switch>>
+<br>
+
+:: Danube Catperson Sofa
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+<<loadNPC 0 "danube_cat_2">>
+
+You flop down on the sofa. An hour passes. As you await the owner's return, a <<beasttype>> creeps into your peripheral.
+<br><br>
+
+You don't pay <<bhim>> any mind, until <<bhe>> creeps closer. With a hiss, <<bhe>> unsheathes <<bhis>> claws.<<stress 5>><<gstress>>
+<br><br>
+
+<<if $deviancy gte 15>>
+	<<link [[Seduce|Danube Catperson Claws Sex]]>><<set $sexstart to 1>><</link>><<deviant2>>
+	<br>
+<</if>>
+<<link [[Soothe|Danube Catperson Claws]]>><<set $phase to 2>><</link>><<tendingdifficulty 1 300>>
+<br>
+<<link [[Avoid|Danube Catperson Claws]]>><<set $phase to 1>><</link>><<dancedifficulty 1 300>>
+<br>
+
+:: Danube Catperson Claws
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+<<if $phase is 1>>
+	You leap up,
+	<<if $danceSuccess>>
+		<span class="green">quick enough to avoid the <<beasttype>>.</span><<stress -6>><<lstress>>
+		<br><br>
+
+		<<bHe>> curls up and settles into the vacant spot on the sofa, unbothered by <<bhis>> failed assault. You find another seat.
+	<<else>>
+		<span class="red">but you're not quick enough.</span> <<bHis>> claws sink into your skin.<<pain 3>><<stress 6>><<gpain>><<gstress>>
+		<br><br>
+
+		Seeming proud of <<bhimself>>, the <<beasttype>>
+		<<if $monster is 1>>
+			laughs <<bhis>> way out of the room.
+		<<else>>
+			scurries away.
+		<</if>>
+		You settle back into your seat, nursing your wound.
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Danube Catperson Payment]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	You stretch your hand out to the <<beasttype>>. You stop short before making contact.
+	<<bHe>> gives your fingers a cautious sniff, then
+	<<if $tendingSuccess>>
+		<span class="green">licks you.</span><<stress -6>><<lstress>>
+	<<else>>
+		<span class="red">bites you.</span><<pain 15>><<stress 6>><<ggpain>><<gstress>>
+	<</if>>
+	<br><br>
+
+	Satisfied, the <<beasttype>> prances off.
+	<br><br>
+
+	<<link [[Next|Danube Catperson Payment]]>><<endevent>><</link>>
+<</if>>
+
+:: Danube Catperson Feed Sex
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<beastCombatInit>>
+
+	<<beastTrainGenerate>>
+<<elseif $sexstart is 1>>
+	<<set $sexstart to 0>>
+	<<consensual>>
+	<<set $consensual to 1>>
+	<<neutral 1>>
+	<<beastCombatInit>>
+
+	<<beastTrainGenerate>>
+	<<if $NPCList[0].penis isnot "none">>
+		You remain on your knees as the <<beasttype 0>> mounts you.
+		<<set $position to "doggy">><<set $NPCList[0].stance to "top">>
+	<<else>>
+		The <<beasttype 0>> flips you onto your back, and mounts you.
+		<<set $position to "missionary">><<set $NPCList[0].stance to "top">>
+	<</if>>
+<</if>>
+<br>
+<<effects>>
+<<effectsman>>
+<br>
+<<beast $enemyno>>
+<br><br>
+<<stateman>>
+<br><br>
+<<actionsman>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Danube Catperson Feed Sex End]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Danube Catperson Feed Sex End]]>><</link>></span><<nexttext>>
+<<elseif $finish is 1>>
+	<span id="next"><<link [[Next|Danube Catperson Feed Sex End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Danube Catperson Feed Sex]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Danube Catperson Feed Sex End
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+<<if $enemyhealth lte 0>>
+	<<beastwound>>
+	<<if $combatTrain.length gt 0>>
+		The <<beasttype>> recoils in pain and fear, but the other is eager for a go.
+		<<combatTrainAdvance>>
+		<<set $danubecathappiness -= 1>>
+		<br><br>
+		<<link [[Next|Danube Catperson Feed Sex]]>><</link>>
+		<br>
+	<<else>>
+		The <<beasttype>> recoils in pain and fear.
+		<<combatTrainAdvance>>
+		<<set $danubecathappiness -= 1>>
+		<br><br>
+
+		<<link [[Next|Danube Catperson Feed Sex End]]>><<set $finish to 1>><</link>>
+		<br>
+	<</if>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+	<<if $combatTrain.length gt 0>>
+		Satisfied, the <<beasttype>> moves
+		<<combatTrainAdvance>>
+		and the other takes <<bhis>> turn.
+		<<set $danubecathappiness += 1>>
+		<br><br>
+
+		<<link [[Next|Danube Catperson Feed Sex]]>><</link>>
+		<br>
+	<<else>>
+		Satisfied, the <<beasttype>> moves away from you.
+		<<combatTrainAdvance>>
+		<<set $danubecathappiness += 1>>
+		<br><br>
+
+		<<link [[Next|Danube Catperson Feed Sex End]]>><<set $finish to 1>><</link>>
+		<br>
+	<</if>>
+<<else>>
+	<<set _consensual to $consensual>>
+
+	<<if $enemywounded is 0 and $enemyejaculated gte 2>>
+		The <<beasttype>> kicks <<bhis>> <<if $monster isnot 1>>hind<</if>> leg at you as they prowl out of the kitchen. You're left spent and shivering on the tile.
+		<br><br>
+
+		<<tearful>> you struggle to your feet.
+	<<elseif $enemywounded is 1 and $enemyejaculated is 1>>
+		The <<beasttype>> takes cover behind the other. <<bHe>> hisses, and the pair retreat, leaving you spent.
+		<br><br>
+
+		<<tearful>> you struggle to your feet.
+	<<elseif $enemywounded gte 2 and $enemyejaculated is 0>>
+		The <<beastsplural>> retreat with a hiss, scrambling over each other in their haste to escape.
+		<br><br>
+
+		<<tearful>> you scurry out of the kitchen.
+	<<else>>
+		The <<beasttype>> looks annoyed. <<bHe>> prowls towards you, but receives a swat from the other. A fight breaks out.
+		<br><br>
+
+		<<tearful>> you slink out of the kitchen while they're distracted.
+	<</if>>
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<if _consensual is 1>>
+		<<link [[Next|Danube Catperson Sofa]]>><<pass 60>><</link>>
+		<br>
+	<<else>>
+		<<link [[Next|Danube Catperson Flee]]>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Danube Catperson Claws Sex
+
+<<if $sexstart is 1>>
+	<<set $sexstart to 0>>
+	<<consensual>>
+	<<set $consensual to 1>>
+	<<neutral 1>>
+	<<beastCombatInit>>
+
+	You run your hands up and down your chest. The <<beasttypes>> claws retract. Sensing your intent, <<bhe>> leaps onto the couch and mounts you.
+	<<deviancy2>>
+	<<if $NPCList[0].penis isnot "none">>
+		<<set $position to "doggy">><<set $NPCList[0].stance to "top">>
+	<<else>>
+		<<set $position to "missionary">><<set $NPCList[0].stance to "top">>
+	<</if>>
+<</if>>
+<br>
+<<effects>>
+<<effectsman>>
+<br>
+<<beast $enemyno>>
+<br><br>
+<<stateman>>
+<br><br>
+<<actionsman>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Danube Catperson Claws Sex End]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Danube Catperson Claws Sex End]]>><</link>></span><<nexttext>>
+<<elseif $finish is 1>>
+	<span id="next"><<link [[Next|Danube Catperson Claws Sex End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Danube Catperson Claws Sex]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Danube Catperson Claws Sex End
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+
+	Satisfied, the <<beasttype>> curls up in your lap.
+	<<set $danubecathappiness += 1>>
+	<br><br>
+
+	<<tearful>> you settle back into your seat.
+<<elseif $enemyhealth lte 0>>
+	The <<beasttype>> retreats with a hiss.
+	<br><br>
+
+	<<tearful>> you slump back down on the sofa.
+	<<set $danubecathappiness -= 1>>
+<<else>>
+	The <<beasttype>> growls, but curls up on the sofa without a fight.
+	<br><br>
+
+	<<tearful>> you find yourself another seat.
+<</if>>
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+
+<<link [[Next|Danube Catperson Payment]]>><</link>>
+<br>
+
+:: Danube Catperson Flee
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+
+You run for the door, but your fingers stop shy of the handle. You need the money.
+<br><br>
+
+<<link [[Stay|Danube Catperson Sofa]]>><<pass 60>><</link>>
+<br>
+<<link [[Leave|Danube Catperson Flee 2]]>><</link>>
+<br>
+
+:: Danube Catperson Flee 2
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+<<loadNPC 0 "danube_cat_owner">><<person1>>
+
+The <<person>> can deal with the mess <<himself>>. You throw the door open and rush outside.
+<br><br>
+
+<<clearNPC "danube_cat_owner">>
+<<clearNPC "danube_cat_0">>
+<<clearNPC "danube_cat_1">>
+<<clearNPC "danube_cat_2">>
+
+<<link [[Leave|Danube Street]]>><<unset $danubecathappiness>><<endevent>><</link>>
+<br>
+
+:: Danube Catperson Payment
+<<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "danube">>
+<<loadNPC 0 "danube_cat_owner">><<person1>>
+
+<<if $danubecathappiness isnot 0>>
+	<<set _catPay to (35 + ($danubecathappiness * 10))>>
+<</if>>
+
+You hear a voice from the door. "I'm back!" It's the <<person>>. <<His>> pets surround <<him>>,
+<<if $danubecathappiness gte 1>>
+	purring with delight.
+	<br><br>
+
+	"Did you make a new friend?" <<he>> coos. "You think <<pshe>> deserves a little reward, hm?"
+	<br><br>
+
+	<<He>> hands you <<moneyGain _catPay>>. "A little extra," <<he>> says as <<he>> ushers you outside. "Do come back sometime. They're so fond of you!"
+<<elseif $danubecathappiness lte -1>>
+	howling and hissing.
+	<br><br>
+
+	The <<person>> fixes you with a glare. You're thrown outside before you can get a word in.
+	<br><br>
+
+	<<He>> drops <<moneyGain _catPay>> at your feet before slamming the door shut. You can make out muffled blubbering on the other side. You take the money and hurry away.
+<<else>>
+	mewling impatiently.
+	<br><br>
+
+	"Settle down, darlings. <<Mummy>>'s home," <<he>> coos, kneeling down to tend to the purring mass.
+	<br><br>
+
+	<<He>> sets <<moneyGain 35>> aside without so much as looking at you. You take the money and leave.
+<</if>>
+<br><br>
+
+<<clearNPC "danube_cat_owner">>
+<<clearNPC "danube_cat_0">>
+<<clearNPC "danube_cat_1">>
+<<clearNPC "danube_cat_2">>
+
+<<link [[Leave|Danube Street]]>><<unset $danubecathappiness>><<endevent>><</link>>
+<br>
diff --git a/game/overworld-town/loc-docks/main.twee b/game/overworld-town/loc-docks/main.twee
index a0b64ae436460c5ee467d5b7df3a4a4cd30101fc..56c0c352795d9adf5a85bb8b3419705513374e79 100644
--- a/game/overworld-town/loc-docks/main.twee
+++ b/game/overworld-town/loc-docks/main.twee
@@ -117,11 +117,11 @@ The door is open. A <<generate2>><<person2>><<person>> looks up from <<his>> des
 
 <<He>> runs <<his>> eyes up and down your body.
 
-<<if $physique gte 15000>>
-	"You're a strapping young <<lass>>, aren't you. It's a physical job, but you won't have any problems."
-<<elseif $physique gte 10000>>
+<<if currentSkillValue('physique') gte 15000>>
+	"You're a strapping <<lass>>, aren't you. It's a physical job, but you won't have any problems."
+<<elseif currentSkillValue('physique') gte 10000>>
 	"You look good and fit. It's a physical job, but you should be fine."
-<<elseif $physique gte 5000>>
+<<elseif currentSkillValue('physique') gte 5000>>
 	"This is a physically demanding job. You look like you can handle yourself, but go careful."
 <<else>>
 	<<He>> sighs. "This is a physically demanding job, and, well." <<He>> pauses. "You're not the strongest <<girl>> I've seen, let me put it that way. I won't stop you, but you might be in for a rough time."
@@ -470,7 +470,7 @@ You arrive back at the docks. A manager greets you. <<generate2>><<person2>>"You
 
 <<if $phase is 0>>
 You compare the numbers,
-	<<if $maths gte random(1, 1000)>>
+	<<if currentSkillValue('maths') gte random(1, 1000)>>
 		<span class="green">and find that some valuable cargo disappeared at some point between arrival and departure.</span> What's more, someone tried to cover it up. You inform a manager, who seems impressed at your deduction.
 		<<dockstatus 1>><<gcool>>
 		<br><br>
@@ -511,7 +511,7 @@ You keep an eye out for anything valuable. There's a lot, but you need something
 	<<if !_dock_location>>
 		<<skul_dock_contents electronics>>
 	<</if>>
-	<<if !_dock_location and $tending gte 400>>
+	<<if !_dock_location and currentSkillValue('tending') gte 400>>
 		<<skul_dock_contents fertiliser>>
 	<</if>>
 
@@ -566,13 +566,13 @@ It's the last crate they load into the cargo container. The <<person1>><<person>
 
 <<if _dock_location is "SW">>
 	The container looks like it's going to remain in the unloading area overnight.
-	<<if $skulduggery gte 400>>
+	<<if currentSkillValue('skulduggery') gte 400>>
 		<span class="teal">The contents must be valuable.</span> You make a mental note of its location.
 	<</if>>
 	<br><br>
 <<elseif _dock_location>>
 	A crane lifts the container, and carries it towards the <<skul_dock_location _dock_location>>. It will remain there overnight.
-	<<if $skulduggery gte 400>>
+	<<if currentSkillValue('skulduggery') gte 400>>
 		<span class="teal">The contents must be valuable.</span> You make a mental note of its location.
 	<</if>>
 	<br><br>
@@ -593,7 +593,7 @@ You ignore the strange vehicle and continue working.
 
 <<if $phase is 0>>
 You look more closely,
-	<<if $history gte random(1, 1000)>>
+	<<if currentSkillValue('history') gte random(1, 1000)>>
 		<span class="green">and recognise the shape.</span> You <<generate1>><<person1>>inform a manager, who calls the captain in time. The ship steers around it.
 		<br><br>
 
@@ -1657,7 +1657,7 @@ The owner glares at you as you leave with your laughing colleagues.
 :: Docks Pub Crawl Calm
 <<set $outside to 0>><<set $location to "pub">><<dockeffects>><<effects>>
 
-<<if $physique gte 12000>>
+<<if currentSkillValue('physique') gte 12000>>
 	You stand in the middle of one of the fights and manage to hold a sailor and docker away from each other. A couple of the more level heads on both sides watch you and, inspired by your act, intervene themselves. They manage to calm things enough that security can form a line between the dockers and sailors.
 <<else>>
 	You try separate one of the fights, but just get knocked aside. A couple of the more level heads on both sides watch you and, inspired by your act, intervene themselves. They manage to calm things enough that security can form a line between the dockers and sailors.
@@ -1792,7 +1792,7 @@ You and your colleagues enjoy your free drinks and leave in an elevated mood.
 
 <<elseif $phase2 is 1>>
 
-	<<if $science gte random(1, 1000)>>
+	<<if currentSkillValue('science') gte random(1, 1000)>>
 		<<set $dockquizhome += 1>>
 
 		You write down the answers, fold the paper and hand it to the pub owner. The sailors do likewise.
@@ -1804,10 +1804,10 @@ You and your colleagues enjoy your free drinks and leave in an elevated mood.
 
 	<<else>>
 
-		<<if $science lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
+		<<if currentSkillValue('science') lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
 		<br><br>
 
-		The owner reads your paper. "The dockers score zero." You grumble with your colleagues. <<if $science gte 700>>You were sure you got it right.<</if>>
+		The owner reads your paper. "The dockers score zero." You grumble with your colleagues. <<if currentSkillValue('science') gte 700>>You were sure you got it right.<</if>>
 		<br><br>
 
 	<</if>>
@@ -1864,7 +1864,7 @@ The owner reads the sailor's answers.
 
 <<elseif $phase2 is 1>>
 
-	<<if $maths gte random(1, 1000)>>
+	<<if currentSkillValue('maths') gte random(1, 1000)>>
 		<<set $dockquizhome += 1>>
 
 		You write down the answers, fold the paper and hand it to the pub owner. The sailors do likewise.
@@ -1876,10 +1876,10 @@ The owner reads the sailor's answers.
 
 	<<else>>
 
-		<<if $maths lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
+		<<if currentSkillValue('maths') lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
 		<br><br>
 
-		The owner reads your paper. "The dockers score zero." You grumble with your colleagues. <<if $maths gte 700>>You were sure you got it right.<</if>>
+		The owner reads your paper. "The dockers score zero." You grumble with your colleagues. <<if currentSkillValue('maths') gte 700>>You were sure you got it right.<</if>>
 		<br><br>
 
 	<</if>>
@@ -1945,10 +1945,10 @@ The owner reads the sailor's answers.
 
 	<<else>>
 
-		<<if $english lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
+		<<if currentSkillValue('english') lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
 		<br><br>
 
-		The owner reads your paper. "The dockers score zero." You grumble with your colleagues. <<if $english gte 700>>You were sure you got it right.<</if>>
+		The owner reads your paper. "The dockers score zero." You grumble with your colleagues. <<if currentSkillValue('english') gte 700>>You were sure you got it right.<</if>>
 		<br><br>
 
 	<</if>>
@@ -2003,7 +2003,7 @@ The owner reads the sailor's answers.
 
 <<elseif $phase2 is 1>>
 
-	<<if $history gte random(1, 1000)>>
+	<<if currentSkillValue('history') gte random(1, 1000)>>
 		<<set $dockquizhome += 1>>
 
 		You write down the answers, fold the paper and hand it to the pub owner. The sailors do likewise.
@@ -2015,7 +2015,7 @@ The owner reads the sailor's answers.
 
 	<<else>>
 
-		<<if $history lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
+		<<if currentSkillValue('history') lte 300>>You're not confident, but you write down the answers, fold the paper and hand it to the pub owner.<<else>>You write down the answers, fold the paper and hand it to the pub owner.<</if>> The sailors do likewise.
 		<br><br>
 
 		The owner reads your paper. "The dockers score zero." You grumble with your colleagues. <<if $historytrait gte 4>>You were sure you got it right.<</if>>
diff --git a/game/overworld-town/loc-docks/skulduggery.twee b/game/overworld-town/loc-docks/skulduggery.twee
index 53cb4a5e02f13590fa86d451079185066bea325b..22ec5b55ab1cf055534a0679ce79bea39ed287c7 100644
--- a/game/overworld-town/loc-docks/skulduggery.twee
+++ b/game/overworld-town/loc-docks/skulduggery.twee
@@ -1,10 +1,9 @@
 :: Docks Sneak Start
-<<effects>><<set $lock to 400>>
 
+<<effects>><<set $lock to 400>>
 <<generateSecurity 1>><<person1>>
 You see a security guard at the gate, resting <<his>> feet on <<his>> desk and playing with <<his>> phone.
 <br><br>
-
 Despite <<his>> distraction, <<he>> would spot you if you approached. There's a smaller gate to the side, but it's padlocked shut.
 <<if currentSkillValue('skulduggery') gte $lock>>
 	<span class="green">The lock looks easy to pick.</span>
@@ -16,24 +15,21 @@ Despite <<his>> distraction, <<he>> would spot you if you approached. There's a
 	<<skulduggeryrequired>>
 	<br><br>
 <</if>>
-
 <<link [[Leave|Docks]]>><<endevent>><<set $bus to "mer">><</link>>
 <br>
 
 
-
 :: Docks Sneak Pick
-<<effects>>
 
+<<effects>>
 You successfully pick the lock, and sneak into restricted area of the docks.
 <br><br>
-
 <<link [[Next|Docks Sneak]]>><</link>>
 <br>
 
 
-
 :: Docks Sneak
+
 <<effects>>
 <<skul_dock_init>>
 You are on the docks.
@@ -66,7 +62,8 @@ You are on the docks.
 	<</if>>
 	<br><br>
 
-	<<link [[Next|Docks]]>><<set $bus to "mer">><</link>><br>
+	<<link [[Next|Docks]]>><<set $bus to "mer">><</link>>
+	<br>
 <<elseif $eventskip is 0>>
 	<<events_skul_dock>>
 <<else>>
@@ -186,7 +183,7 @@ The containers are virtually identical. One by one, you pick the padlocks and en
 	<<link [[Take them|Docks Electronics]]>><<crimeup 300>><<set $blackmoney += 300>><</link>><<crime>>
 	<br>
 <<elseif $skul_dock[$bus].contents is "fertiliser">>
-	<<if $tending gte 400>>
+	<<if currentSkillValue('tending') gte 400>>
 		<<if $skul_dock[$bus].state is "known">>
 			You know that one of these hold something you can actually carry. You break into another. The interior is loaded with fertiliser bags. While you know you can't carry much, you do know that having some on hand may be useful to you.
 			<br><br>
@@ -324,7 +321,7 @@ You grab a bag of fertiliser, and leave the container.
 	<br><br>
 
 	<<He>> disappears into the night. You turn back to the catsuit.
-	<br><br>	
+	<br><br>
 <<else>>
 	You hear a click, <span class="red">and the end of a pistol emerges from the dark.</span> A <<personsimple>> with <<if $pronoun is "m">>short<<else>>shoulder-length<</if>> hair follows. "Well well," <<he>> says. "Not who I was expecting." <<He>> lowers <<his>> gun, and examines you from head to toe. <<covered>>
 	<br><br>
@@ -1062,8 +1059,8 @@ More phones emerge from pockets as they continue to make degrading comments.
 
 <<endcombat>>
 
-<<generate1>><<generate2>><<person1>>
-A <<person>> and <<person2>><<person>> grasp your arms, and haul you to your feet.
+<<generate1>><<generate2>>
+A <<fullGroup>> grasp your arms, and haul you to your feet.
 <<if $exposed gte 1>>
 	<<covered>>
 <</if>>
@@ -1128,7 +1125,7 @@ You find another way through the maze of cargo containers.
 <<effects>>
 
 
-You see the pair up ahead, a <<person1>><<person>> and <<person2>><<person>>. You keep low and dart between containers when they look away.
+You see the pair up ahead, a <<fullGroup>>. You keep low and dart between containers when they look away.
 <br><br>
 
 
@@ -1311,7 +1308,7 @@ You brace as the machine grasps your wrists, and forces you to the ground. "SUBJ
 
 <<generate1>><<generate2>><<person1>>
 
-You don't need to wait long. A <<person>> and <<person2>><<person>> round the corner, and smirk when they see you.
+You don't need to wait long. A <<fullGroup>> round the corner, and smirk when they see you.
 
 <<if $exposed gte 1>>
 	You feel their eyes on your <<nudity>>.
@@ -1383,8 +1380,8 @@ They push you towards the entrance.
 
 	<<if $anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1>>
 		<<machine_end>>
-		<<generate1>><<generate2>><<person1>>
-		You hear laughter. A <<person>> and <<person2>><<person>> in security uniforms stand to the side. You're not sure how long they were watching, but they don't seem in a hurry to intervene. They hold their phones, <span class="red">cameras pointed right at you.</span>
+		<<generate1>><<generate2>>
+		You hear laughter. A <<fullGroup>> in security uniforms stand to the side. You're not sure how long they were watching, but they don't seem in a hurry to intervene. They hold their phones, <span class="red">cameras pointed right at you.</span>
 		<br><br>
 		<<famesex 20>>
 
@@ -1397,9 +1394,9 @@ They push you towards the entrance.
 
 	<<else>>
 		<<machine_end>>
-		<<generate1>><<generate2>><<person1>>
+		<<generate1>><<generate2>>
 
-		A <<person1>><<person>> and <<person2>><<person>> in security uniforms arrive. The <<person1>><<person>> smirks, and crouches beside the hatch. <<He>> reaches in, you hear a click, and the machine falls inert.
+		A <<fullGroup>> in security uniforms arrive. The <<person1>><<person>> smirks, and crouches beside the hatch. <<He>> reaches in, you hear a click, and the machine falls inert.
 		<br><br>
 
 		The <<person2>><<person>> is on you before you have a chance to recover, grasping your arms and pulling you to your feet.
diff --git a/game/overworld-town/loc-docks/widgets.twee b/game/overworld-town/loc-docks/widgets.twee
index 31b5f2956fc3943357163f42bb40054f40ccce6a..49ca3cc465ba10dc1237892d77e552b980110d53 100644
--- a/game/overworld-town/loc-docks/widgets.twee
+++ b/game/overworld-town/loc-docks/widgets.twee
@@ -143,7 +143,7 @@ A <<generate1>><<person1>><<person>> approaches you, smiling. "Rope accident?" <
 		<br><br>
 		<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 		<<if $danger gte (9900 - $allure)>>
-			You're halfway there when the <<person>> cuts out the engine. <<He>> and the <<person1>><<person>> stare at you. "A little <<girl>>, all alone at sea," <<he>> says. "Hows about you let us have some fun, and we won't need to hurt you." The <<person>> brandishes a length of rope.
+			You're halfway there when the <<person>> cuts out the engine. <<He>> and the <<person1>><<person>> stare at you. "A fresh <<girl>>, all alone at sea," <<he>> says. "Hows about you let us have some fun, and we won't need to hurt you." The <<person>> brandishes a length of rope.
 			<br><br>
 			<<link [[Nod|Docks Rape]]>><<set $molestationstart to 1>><</link>>
 			<br>
@@ -199,9 +199,9 @@ A <<generate1>><<person1>><<person>> approaches you, smiling. "Rope accident?" <
 	<<elseif $rng gte 51>>
 		You're tasked with recording cargo information onto a computer. While working through the notes you notice an inconsistency.
 		<br><br>
-		<<link [[Examine the inconsistency|Docks Examine]]>><<set $phase to 0>><<stress 6>><</link>><<skill_difficulty maths "Maths" 1 1000>><<gstress>>
+		<<link [[Examine the inconsistency|Docks Examine]]>><<set $phase to 0>><<stress 6>><</link>><<skill_difficulty "$maths" "Maths" 1 1000>><<gstress>>
 		<br>
-		<<if $skulduggery gte 400>>
+		<<if currentSkillValue('skulduggery') gte 400>>
 			<<set $skulduggerydifficulty to 500>>
 			<<link [[Note the location of valuable goods|Docks Examine Valuables]]>><<set $phase to 2>><</link>><<skulduggerydifficulty>>
 			<br>
@@ -227,7 +227,7 @@ A <<generate1>><<person1>><<person>> approaches you, smiling. "Rope accident?" <
 	<<elseif $rng gte 31>>
 		You're tasked with moving some crates so they can be loaded onto vehicles. <<generate1>><<person1>>"You'll need a forklift," the supervisor says. "Let me find the keys."
 		<br><br>
-		<<if $physique gte 15000>>
+		<<if currentSkillValue('physique') gte 15000>>
 			The crates don't look too heavy. By the time <<he>> returns you've already finished. "You're stronger than you look," <<he>> chuckles.
 			<<gcool>><<dockstatus 1>>
 			<br><br>
@@ -241,7 +241,7 @@ A <<generate1>><<person1>><<person>> approaches you, smiling. "Rope accident?" <
 
 		You're tasked with untying a moored ship from the pier. The ropes are thick and heavy, and you don't have long before another ship needs the space.
 		<br><br>
-		<<if $physique gte 5000 and $feetuse isnot "bound">>
+		<<if currentSkillValue('physique') gte 5000 and $feetuse isnot "bound">>
 			You make it in time.
 			<br><br>
 		<<else>>
@@ -317,11 +317,11 @@ A <<generate1>><<person1>><<person>> approaches you, smiling. "Rope accident?" <
 		<</if>>
 	<<else>>
 		You lift crates from a moored ship, and drop them off on the dock. They're small compared to the rest of the cargo, but heavy.
-		<<if $physique gte 15000 and $leftarm isnot "bound" and $rightarm isnot "bound">>
+		<<if currentSkillValue('physique') gte 15000 and $leftarm isnot "bound" and $rightarm isnot "bound">>
 			You have no trouble. You keep going while the other dockers stop to rest.
 			<<gcool>><<dockstatus 1>>
 			<br><br>
-		<<elseif $physique gte 5000 and $leftarm isnot "bound" and $rightarm isnot "bound">>
+		<<elseif currentSkillValue('physique') gte 5000 and $leftarm isnot "bound" and $rightarm isnot "bound">>
 			You manage to keep up with the other dockers.
 			<br><br>
 		<<else>>
@@ -379,7 +379,7 @@ is science.
 
 <<link [[Let your colleagues answer|Docks Pub Crawl Science]]>><<set $phase2 to 0>><</link>>
 <br>
-<<link [[Answer yourself|Docks Pub Crawl Science]]>><<set $phase2 to 1>><</link>><<skill_difficulty science "Science" 1 1000>>
+<<link [[Answer yourself|Docks Pub Crawl Science]]>><<set $phase2 to 1>><</link>><<skill_difficulty "$science" "Science" 1 1000>>
 <br>
 <<link [[Give the wrong answers|Docks Pub Crawl Science]]>><<set $phase2 to 2>><</link>>
 <br>
@@ -391,7 +391,7 @@ is arithmetic. One of your colleagues gets their fingers ready for counting.
 
 <<link [[Let your colleagues answer|Docks Pub Crawl Maths]]>><<set $phase2 to 0>><</link>>
 <br>
-<<link [[Answer yourself|Docks Pub Crawl Maths]]>><<set $phase2 to 1>><</link>><<skill_difficulty maths "Maths" 1 1000>>
+<<link [[Answer yourself|Docks Pub Crawl Maths]]>><<set $phase2 to 1>><</link>><<skill_difficulty "$maths" "Maths" 1 1000>>
 <br>
 <<link [[Give the wrong answers|Docks Pub Crawl Maths]]>><<set $phase2 to 2>><</link>>
 <br>
@@ -415,7 +415,7 @@ is local history.
 
 <<link [[Let your colleagues answer|Docks Pub Crawl History]]>><<set $phase2 to 0>><</link>>
 <br>
-<<link [[Answer yourself|Docks Pub Crawl History]]>><<set $phase2 to 1>><</link>><<skill_difficulty history "History" 1 1000>>
+<<link [[Answer yourself|Docks Pub Crawl History]]>><<set $phase2 to 1>><</link>><<skill_difficulty "$history" "History" 1 1000>>
 <br>
 <<link [[Give the wrong answers|Docks Pub Crawl History]]>><<set $phase2 to 2>><</link>>
 <br>
@@ -427,7 +427,7 @@ is lovemaking, which prompts a bawdy cheer. Your colleagues insist this will be
 
 <<link [[Let your colleagues answer|Docks Pub Crawl Love]]>><<set $phase2 to 0>><</link>>
 <br>
-<<link [[Answer yourself|Docks Pub Crawl Love]]>><<set $phase2 to 1>><<dockstatus 1>><</link>><<skill_difficulty promiscuity "Promiscuity" 1 100>><<gcool>>
+<<link [[Answer yourself|Docks Pub Crawl Love]]>><<set $phase2 to 1>><<dockstatus 1>><</link>><<skill_difficulty "$promiscuity" "Promiscuity" 1 100>><<gcool>>
 <br>
 <<link [[Give the wrong answers|Docks Pub Crawl Love]]>><<set $phase2 to 2>><<dockstatus 1>><</link>><<gcool>>
 <br>
@@ -538,35 +538,45 @@ is lovemaking, which prompts a bawdy cheer. Your colleagues insist this will be
 
 <<widget "skul_dock_nav">>
 <<if $bus is "W">>
-	<<link [[Sneak to the anchored ship (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "NW">><</link>><<skul_dock_state NW>><br>
+	<<link [[Sneak to the anchored ship (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "NW">><</link>><<skul_dock_state NW>>
+	<br>
 <</if>>
 <<if $bus is "N">>
-	<<link [[Sneak off the ship (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "NW">><</link>><<skul_dock_state NW>><br>
+	<<link [[Sneak off the ship (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "NW">><</link>><<skul_dock_state NW>>
+	<br>
 <</if>>
 <<if $bus is "NW">>
-	<<link [[Sneak aboard the anchored ship (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "N">><</link>><<skul_dock_state N>><br>
+	<<link [[Sneak aboard the anchored ship (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "N">><</link>><<skul_dock_state N>>
+	<br>
 <</if>>
 <<if $bus is "E">>
-	<<link [[Sneak to the warehouse (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "NE">><</link>><<skul_dock_state NE>><br>
+	<<link [[Sneak to the warehouse (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "NE">><</link>><<skul_dock_state NE>>
+	<br>
 <</if>>
 <<if $bus is "SW" or $bus is "NW">>
-	<<link [[Sneak to the cranes (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "W">><</link>><<skul_dock_state W>><br>
+	<<link [[Sneak to the cranes (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "W">><</link>><<skul_dock_state W>>
+	<br>
 <</if>>
 <<if $bus is "E">>
-	<<link [[Sneak to the tallest stacks of cargo containers (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "M">><</link>><<skul_dock_state M>><br>
+	<<link [[Sneak to the tallest stacks of cargo containers (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "M">><</link>><<skul_dock_state M>>
+	<br>
 <</if>>
 <<if $bus is "SE" or $bus is "M" or $bus is "NE">>
-	<<link [[Sneak to the office (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "E">><</link>><<skul_dock_state E>><br>
+	<<link [[Sneak to the office (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "E">><</link>><<skul_dock_state E>>
+	<br>
 <</if>>
 <<if $bus is "W" or $bus is "S">>
-	<<link [[Sneak to the lorry unloading area (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "SW">><</link>><<skul_dock_state SW>><br>
+	<<link [[Sneak to the lorry unloading area (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "SW">><</link>><<skul_dock_state SW>>
+	<br>
 <</if>>
 <<if $bus is "SE" or $bus is "SW">>
-	<<link [[Sneak to the gate (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "S">><</link>><<skul_dock_state S>><br>
+	<<link [[Sneak to the gate (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "S">><</link>><<skul_dock_state S>>
+	<br>
 	<br>
 <</if>>
 <<if $bus is "S" or $bus is "E">>
-	<<link [[Sneak to the car park (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "SE">><</link>><<skul_dock_state SE>><br>
+	<<link [[Sneak to the car park (0:05)|Docks Sneak]]>><<pass 5>><<set $bus to "SE">><</link>><<skul_dock_state SE>>
+	<br>
 <</if>>
 <<if $bus is "S">>
 	<<link [[Leave|Docks]]>><<set $bus to "mer">><</link>>
diff --git a/game/overworld-town/loc-domus-homes/nude.twee b/game/overworld-town/loc-domus-homes/nude.twee
index 83ef901bbe720409933af9d6e21dbc83a10cf20f..2e3cf95fa7578dbf8d0d86d03a20342a90abfd08 100644
--- a/game/overworld-town/loc-domus-homes/nude.twee
+++ b/game/overworld-town/loc-domus-homes/nude.twee
@@ -34,18 +34,18 @@ You walk up to one of the homes and knock.
 	<<generatey1>><<person1>>A <<person>> answers the door. <<He>> looks shocked, then grins. "I know you from school," <<he>> says.
 		<<if $player.gender is "h" and !$worn.genitals.type.includes("hidden")>>
 			<<if $schoolrep.herm gte 3>>
-				 "I guess the rumours about you are true. You must be really embarrassed, huh?"
+				"I guess the rumours about you are true. You must be really embarrassed, huh?"
 			<<else>>
-				 "I never guessed you were..." <<He>> trails off and shakes <<his>> head. "You must be really embarrassed, huh?"
+				"I never guessed you were..." <<He>> trails off and shakes <<his>> head. "You must be really embarrassed, huh?"
 			<</if>>
 			<<schoolrep herm 1>>
 		<<elseif ($schoolrep.crossdress gte 1 or $backgroundTraits.includes("crossdresser")) and !$worn.genitals.type.includes("hidden")>>
 			<<if $schoolrep.crossdress gte 3>><!-- Crossdresser trait checked above to predict that the PC normally crossdresses at school if they have no rep -->
-				 "I guess the rumours about you are true. You must be really embarrassed, huh?"
+				"I guess the rumours about you are true. You must be really embarrassed, huh?"
 			<<elseif $schoolrep.crossdress gte 1>>
-				 "Someone said you were a crossdresser, but I never thought it was true. You must be really embarrassed, huh?"
+				"Someone said you were a crossdresser, but I never thought it was true. You must be really embarrassed, huh?"
 			<<else>>
-				 "I never guessed you were a crossdresser. You must be really embarrassed, huh?"
+				"I never guessed you were a crossdresser. You must be really embarrassed, huh?"
 			<</if>>
 			<<schoolrep crossdress 1>>
 		<</if>>
diff --git a/game/overworld-town/loc-domus-homes/skulduggery.twee b/game/overworld-town/loc-domus-homes/skulduggery.twee
index 243701e94c98c231c7fcb90f7b305933ae9a3b88..609d099426d888b296a36545cb3829c317fe84e5 100644
--- a/game/overworld-town/loc-domus-homes/skulduggery.twee
+++ b/game/overworld-town/loc-domus-homes/skulduggery.twee
@@ -86,7 +86,7 @@ You sneak around the house and look for anything of value.
 	<br>
 <<elseif $rng gte 51>>
 	While searching a room for valuables you find a drawer containing a number of phones. Most are used but all are fairly new.
-	<<if $skulduggery gte 500>>
+	<<if currentSkillValue('skulduggery') gte 500>>
 		Your knowledge of the skulduggerous lets you quickly determine that these are stolen phones.
 		Stealing them again should not be a crime. It's not like they can report someone stealing their stolen goods.
 		<br><br>
@@ -108,7 +108,7 @@ You sneak around the house and look for anything of value.
 	<br>
 <<elseif $rng gte 31>>
 	You're searching the lounge for valuables when you notice that one step sounds hollow.
-	<<if $skulduggery gte 500>>Suspecting a hidden stash,<<else>>Confused,<</if>> you look under the rug and find a trap door.
+	<<if currentSkillValue('skulduggery') gte 500>>Suspecting a hidden stash,<<else>>Confused,<</if>> you look under the rug and find a trap door.
 	Lifting it up and peering down, it seems there is a set of steps leading down to an underground room.
 	<br>
 	You cannot make out anything in the darkness.
@@ -396,7 +396,7 @@ The <<beasttypes>> ears twitch, but other than that <<bhe>> makes no move as you
 <<set $outside to 0>><<set $location to "town">><<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<beastejaculation>>
-	<<person2>>The beast barks happily and walks over to the window, where it sits. "It's nice to see a bitch get bred like that," says the <<person>>. <<He>> walks over to you before you can recover and grabs your neck. <<He>> drags you to the front door and hefts you onto the porch. "If I see you again you'll get far worse." The door slams shut.
+	<<person2>>The beast barks happily and walks over to the window, where it sits. "It's nice to see a bitch get <<bred>> like that," says the <<person>>. <<He>> walks over to you before you can recover and grabs your neck. <<He>> drags you to the front door and hefts you onto the porch. "If I see you again you'll get far worse." The door slams shut.
 	<<tearful>> you rise to your feet.
 	<br><br>
 	<<clotheson>>
diff --git a/game/overworld-town/loc-domus-homes/work.twee b/game/overworld-town/loc-domus-homes/work.twee
index db87077788a0c135975eeeb4a94d52ffbd92f7ed..fadea779c0edf6d314bdab6fa06d607a263099ee 100644
--- a/game/overworld-town/loc-domus-homes/work.twee
+++ b/game/overworld-town/loc-domus-homes/work.twee
@@ -114,7 +114,7 @@ You walk up to one of the homes and knock on the door.
 	Before you can respond, a <<person2>><<person>> calls out, <<his>> head buried in a newspaper. "Who is it?"
 	<br><br>
 
-	<<if $fameprostitution gte 600 and $rng%2>>
+	<<if $fame.prostitution gte 600 and $rng%2>>
 		"It's that whore from Bailey's place," the <<person1>><<person>> says.
 		<br><br>
 		<<if $rng % 4>>
@@ -125,7 +125,7 @@ You walk up to one of the homes and knock on the door.
 		<br><br>
 
 		"Shut up," <<he>> rolls <<his>> eyes, before turning back to you. "Yeah?"
-	<<elseif $fameexhibitionism gte 600 and $rng%2>>
+	<<elseif $fame.exhibitionism gte 600 and $rng%2>>
 		"It's that flasher <<girl>> from the orphanage," the <<person1>><<person>> says.
 	<<else>>
 		"Just some <<girl>>," the <<person1>><<person>> says.
@@ -264,7 +264,7 @@ You walk up to one of the homes and knock on the door.
 :: Domus Model Intro
 <<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "domus">>
 <<if $rng gte 1>>
-	"You sounded older on the phone," <<he>> says. 
+	"You sounded older on the phone," <<he>> says.
 	"But whatever. It's all as we agreed. £30 for two hours life-modelling. Nude of course. You can leave your clothes in the bathroom there.
 	<<if $exhibitionism lte 35>>
 		The artists are waiting in the studio through that door."
@@ -282,7 +282,7 @@ You walk up to one of the homes and knock on the door.
 		The artists are waiting in the studio through that door. You're already late so don't hang about."
 	<</if>>
 	<br><br>
-	
+
 	<<He>> walks through the door. Beyond you see people sat with easels in a circle around a small stage.
 	<br><br>
 
@@ -667,7 +667,6 @@ You try to help the <<person>> with <<his>> homework, but <<he>> isn't intereste
 
 You put your hand on top of <<hers>> and lean closer. "Don't worry," you whisper. "I'll take care of it." You lean even closer, and gently nip <<his>> ear before returning to your sitting position. <<He>> sits silently for the rest of the hour, blushing visibly.
 <<promiscuity1>>
-<br><br>
 
 You've earned <<moneyGain 5>>.
 <br><br>
@@ -1197,9 +1196,9 @@ You enter a lavish antechamber as a <<person1>><<person>> descends a staircase.
 <<set $outside to 0>><<set $location to "town">><<effects>><<set $bus to "domus">>
 
 <<if $worn.under_lower.type.includes("naked")>>
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
-	<<fameexhibitionism 5 pic>>
+	<<fameexhibitionism 5 "pic">>
 <</if>>
 <<set $submissive -= 1>>
 <<if $submissive lte 850>>
@@ -1254,7 +1253,6 @@ You've made <<moneyGain 25>>.
 
 You turn your back to the <<beasttype>>, bend over, and wiggle your <<bottom>>. <<bHe>> strains against the chain with renewed and frenzied vigour.
 <<deviancy1>>
-<br><br>
 <<if $monster is 1>>
 	"Fight! Play!" <<bHe>> yells.
 <</if>>
@@ -1286,7 +1284,7 @@ You turn your back to the <<beasttype>>, bend over, and wiggle your <<bottom>>.
 :: Domus House Ignore
 <<set $outside to 0>><<set $location to "town">><<effects>>
 
-You ignore the <<beasttype>> and turn back to the door. <<bHe>> slowly clams down.
+You ignore the <<beasttype>> and turn back to the door. <<bHe>> slowly calms down.
 <br><br>
 
 <<link [[Break in|Domus House Lock]]>><</link>>
@@ -1318,12 +1316,12 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 <<if $player.virginity.anal is true or $player.virginity.oral is true or ($player.virginity.penile is true and $player.penisExist) or ($player.virginity.vaginal is true and $player.vaginaExist) or ($rng % 12 gte 6)>> /* Mild events - will ALWAYS run for ANY type of virgin, will run 50% for others (6 times in 12)*/
 	<<pass 2 hour>>
 	<<if $player.penisExist and $player.vaginaExist>>
-		<<if $fameexhibitionism gte 600>>
+		<<if $fame.exhibitionism gte 600>>
 			One <<personsimple>> laughs as you take the stage. "You paid <<phim>> to strip?! I don't think I've ever seen <<phim>> in clothes."
 			<br><br>
 
 			"Good thing too," another adds. "Keeping that cute cock and pussy to <<pherself>> would be a tragedy."
-		<<elseif $fameexhibitionism gte 40>>
+		<<elseif $fame.exhibitionism gte 40>>
 			One <<personsimple>> double-takes as you take the stage. "I'm impressed. <<pShes>> kind of famous for this."
 			<br><br>
 
@@ -1332,16 +1330,16 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 			There's a murmur of excitement as they take in your genitals. One <<personsimple>> applauds. "You really know how to find interesting ones."
 		<</if>>
 	<<else>>
-		<<if $famemodel gte 600>>
+		<<if $fame.model gte 600>>
 			One <<personsimple>> double-takes as you take the stage. "I must be dreaming. Never thought I'd see a famous model like <<phim>> here."
 			<br><br>
-		<<elseif $fameexhibitionism gte 600>>
+		<<elseif $fame.exhibitionism gte 600>>
 			One <<personsimple>> laughs as you take the stage. "You paid <<phim>> to strip?! I don't think I've ever seen <<phim>> in clothes."
 			<br><br>
-		<<elseif $famemodel gte 400>>
+		<<elseif $fame.model gte 400>>
 			One <<personsimple>> double-takes as you take the stage. "I'm impressed. <<pShes>> kind of famous, not just your average model wannabe."
 			<br><br>
-		<<elseif $fameexhibitionism gte 400>>
+		<<elseif $fame.exhibitionism gte 400>>
 			One <<personsimple>> double-takes as you take the stage. "I'm impressed. <<pShes>> kind of famous for this."
 		<</if>>
 	<</if>>
@@ -1357,7 +1355,9 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 		Like they're drawing a bowl of fruit.
 		<<larousal>><<arousal -2>>
 		<br>
-		The paintings produced are quite beautiful and artistic.<<lstress>><<stress -1>><<fameexhibitionism 5 pic>><<famemodel 5 art>><br>
+		The paintings produced are quite beautiful and artistic.
+		<<lstress>><<stress -1>><<fameexhibitionism 5 "pic">><<famemodel 5 art>>
+		<br>
 	<<elseif $rng gte 33>>
 		The poses they ask for start off normal but slowly move toward the lewd: more poses with spread legs and bending over.
 		<<if $exhibitionism lte 34>>
@@ -1370,7 +1370,7 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 		<<promiscuity2>>
 
 		The paintings produced are varied but mostly focus on your <<if pregnancyBellyVisible()>>belly, <</if>><<breasts>> and <<genitals>>.
-		<<fameexhibitionism 10 pic>><<famemodel 2 art>>
+		<<fameexhibitionism 10 "pic">><<famemodel 2 art>>
 	<<else>>
 		While they maintain the pretence that this is life-art, it's quite clear they just enjoy getting a
 		<<if $player.gender is "h">>
@@ -1396,8 +1396,9 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 			dick and ass,
 		<</if>>
 		though one imaginative 'artist' depicts you being gang-banged by a variety of people, animals and mythical beasts.
-		<<garousal>><<arousal 200>><<fameexhibitionism 10 pic>>
-	<</if>><br>
+		<<garousal>><<arousal 200>><<fameexhibitionism 10 "pic">>
+	<</if>>
+	<br>
 
 <<elseif $rng % 12 gte 1>> /*lewd - if we get here, lewd will trigger 5 times in 6. It will fall to bad ~1 in 6*/
 	<<pass 2 hour>>
@@ -1468,12 +1469,17 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 			<<Hes>> trying to make you come in front of all these people!
 			<<arousal 5000>>
 			<<if $arousal gte $arousalmax>>
-				You try to hold back, but finally you can't. So humiliating.<br>
+				You try to hold back, but finally you can't. So humiliating.
+				<br>
 				<<orgasm>>
 
-				Some stop and watch. Others paint furiously.<<gstress>><<stress 2>>
+				Some stop and watch. Others paint furiously.
+				<<gstress>><<stress 2>>
 			<<else>>
-				<br>Eventually <<he>> gives up. That felt good.<<lstress>><<stress -2>><br><br>
+				<br>
+				Eventually <<he>> gives up. That felt good.
+				<<lstress>><<stress -2>>
+				<br><br>
 			<</if>>
 		<</if>>
 		<<famemodel 2 art>>
@@ -1508,10 +1514,10 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 		your helpless ass. The group meticulously paint the scene.
 		<br><br>
 
-		<<if $english gte 500>>
+		<<if currentSkillValue('english') gte 500>>
 			"That face!" the <<person1>><<person>> shouts. "Artists, capture that moment. That expression. That's real."
 			<<famemodel 2 art>>
-		<<elseif $english gte 250>>
+		<<elseif currentSkillValue('english') gte 250>>
 			"Paint, artists. Paint." The <<person1>><<person>> says. "<<print either("Take in the whole scene.","Paint what you see.","Immortalise this moment.")>>"
 			<<famemodel 1 art>>
 		<<else>>
@@ -1539,8 +1545,10 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 		"Whatever the reason," <<he>> says. "This town has a unique attraction to the darkest, most primal aspects of sexuality.
 		Power, rape and abuse - sadly - pervade. Today, we will explore this in art.
 		<br>
-		"Despite <<pher>> youthful appearance our model is an experienced professional here to demonstrate the use of all these tools. To help <<phim>>, my assistant," <<he>> indicates a <<person2>><<person>> who has appeared beside you on stage. "Will assist. So brushes to the ready, and let's paint."<br>
-		The <<person>> looks at you quizzically. You're not sure why.<br><br>
+		"Despite <<pher>> youthful appearance our model is an experienced professional here to demonstrate the use of all these tools. To help <<phim>>, my assistant," <<he>> indicates a <<person2>><<person>> who has appeared beside you on stage. "Will assist. So brushes to the ready, and let's paint."
+		<br>
+		The <<person>> looks at you quizzically. You're not sure why.
+		<br><br>
 
 		Over the next hour, the <<person>> theatrically whips and beats you, making a lot of noise but inflicting almost no pain.
 		<<if pregnancyBellyVisible()>>
@@ -1554,8 +1562,9 @@ The bathroom is <<print either("small","tiny","very clean")>>.
 		your helpless ass. The group meticulously paint the scene.
 		<br><br>
 
-		<<if $english gte 500>>
-			"Nice acting," the <<person1>><<person>> says. "But I think <span class="red">it's time for something more authentic.</span>"<br>
+		<<if currentSkillValue('english') gte 500>>
+			"Nice acting," the <<person1>><<person>> says. "But I think <span class="red">it's time for something more authentic.</span>"
+			<br>
 			<<He>> nods to the <<person2>><<person>>. "Do it."
 			<<famemodel 2 art>>
 		<<else>>
@@ -1655,9 +1664,11 @@ You've made <<moneyGain 30>>.
 	A number of artists sit at their easels watching. They're waiting for things to get started.
 <</if>>
 <<if $pain gte 40 and (random(0,9)%3 is 0)>>
-	<br>"Remember: we studied techniques for painting tears. Use them."
+	<br>
+	"Remember: we studied techniques for painting tears. Use them."
 <<elseif $mouthstate is "penetrated" and random(0,1)>>
-	<br>"Light and shadow, people. Make sure you get the bulging in the throat."
+	<br>
+	"Light and shadow, people. Make sure you get the bulging in the throat."
 <</if>>
 
 <<effects>>
@@ -1728,7 +1739,8 @@ You've made <<moneyGain 30>>.
 	A number of artists paint and sketch your sexual assault.
 <<else>>
 	The class watch with renewed interest.
-<</if>><br><br>
+<</if>>
+<br><br>
 
 <<effects>>
 <<effectsman>><<man>>
@@ -1753,7 +1765,8 @@ You've made <<moneyGain 30>>.
 <<if $enemyarousal gte $enemyarousalmax>>
 
 	<<ejaculation>>
-	The art group continue to paint excitedly.<br><br>
+	The art group continue to paint excitedly.
+	<br><br>
 
 	<<endcombat>>
 	<<set $phase to 0>>
@@ -1761,10 +1774,14 @@ You've made <<moneyGain 30>>.
 	<<link [[Next|Domus Model Pillory Wait]]>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
-	The assistant grunts in pain and moves away, soon returning with a large paintbrush. A moment later you feel it shoved deep into your asshole.<<gpain>><<pain 5>><br>
-	Your instinctive attempt to gasp while ball-gagged provokes some laughter around the room.<<gstress>><<stress 1>><br>
-	"A bitch needs a tail, right?"<br><br>
-	The art group continue to paint excitedly.<br><br>
+	The assistant grunts in pain and moves away, soon returning with a large paintbrush. A moment later you feel it shoved deep into your asshole.<<gpain>><<pain 5>>
+	<br>
+	Your instinctive attempt to gasp while ball-gagged provokes some laughter around the room.<<gstress>><<stress 1>>
+	<br>
+	"A bitch needs a tail, right?"
+	<br><br>
+	The art group continue to paint excitedly.
+	<br><br>
 
 	<<endcombat>>
 	<<set $phase to 1>>
@@ -1795,7 +1812,11 @@ You've made <<moneyGain 30>>.
 <<else>>
 	The assistant helps steady the <<beasttype>>, while the class watch with renewed interest.
 <</if>>
-<<if (random(0,9)%3 ==0)>><br>The assistant <<print either("slaps your face.","grabs your nipple and slowly twists.","whips your inner thighs with a strap.")>><<gpain>><<pain 2>><</if>>
+<<if (random(0,9)%3 ==0)>>
+	<br>
+	The assistant <<print either("slaps your face.","grabs your nipple and slowly twists.","whips your inner thighs with a strap.")>>
+	<<gpain>><<pain 2>>
+<</if>>
 
 <<effects>>
 <<effectsman>>
@@ -1821,16 +1842,19 @@ You've made <<moneyGain 30>>.
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<beastejaculation>>
-	The <<beasttype>> lovingly licks your back and neck as the art group continue to paint excitedly.<br><br>
+	The <<beasttype>> lovingly licks your back and neck as the art group continue to paint excitedly.
+	<br><br>
 	<<endcombat>>
 	<<set $phase to 0>>
 
 	<<link [[Next|Domus Model Pillory Wait]]>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
-	The <<beasttype>> yelps and runs away. A few laugh or cheer, others sound disappointed.<br>
+	The <<beasttype>> yelps and runs away. A few laugh or cheer, others sound disappointed.
+	<br>
 	<<endcombat>>
-	The art group continue to paint excitedly.<br><br>
+	The art group continue to paint excitedly.
+	<br><br>
 	<<set $phase to 1>>
 	<<link [[Next|Domus Model Pillory Wait]]>><</link>>
 	<br>
@@ -1848,21 +1872,29 @@ Locked in the pillory,
 	<<else>>
 		used and abused,
 	<</if>>
-	you are unable to even cover up as the class eagerly paint you.<br>
+	you are unable to even cover up as the class eagerly paint you.
+	<br>
 <<else>>
-	you glare between them expecting further attack. None come. They all seem quite happy painting you.<br>
+	you glare between them expecting further attack. None come. They all seem quite happy painting you.
+	<br>
 <</if>>
 Gagged, you can't even complain. You have no choice but to wait. Every now and then, the <<person1>><<person>>
-holds another painting of your abuse out in front of you.<<gstress>><<stress 1>>
+holds another painting of your abuse out in front of you.
+<<gstress>><<stress 1>>
 <br><br>
 The <<person1>><<person>> eventually wraps up the session. The <<person2>><<person>> <<print either("gives your butt a gentle slap","gives your nipples a quick squeeze","pulls your hair back and kisses you gently on the forehead")>>
-and then releases you from the pillory and busies <<himself>> tidying up the stage. The art class pack up.<br><br>
+and then releases you from the pillory and busies <<himself>> tidying up the stage. The art class packs up.
+<br><br>
 
-The <<person1>><<person>> helps untie your gag while leading you from the room.<br>
+The <<person1>><<person>> helps untie your gag while leading you from the room.
+<br>
 "What a show!" <<he>> gushes once you reach the privacy of hallway. "You were brilliant. I think most of them believed it was real. I mean, it's a such cliche -
 the 'modelling-gig gone bad' - but you and your partner were really convincing. I almost believed it - even after we spent all that
-time on the phone arranging it. Such chemistry! Such acting! Remarkable... You'll find a little extra in your pay."<br><br>
-<<He>> waves to the bathroom. "Take your time. You were great today. Wow."<<lstress>><<stress -2>><br><br>
+time on the phone arranging it. Such chemistry! Such acting! Remarkable... You'll find a little extra in your pay."
+<br><br>
+<<He>> waves to the bathroom. "Take your time. You were great today. Wow."
+<<lstress>><<stress -2>>
+<br><br>
 <<link [[Enter bathroom|Domus Model Rape End]]>><<set $worn.face.type.push("broken")>><<faceruined>><<endevent>><<unbind>><</link>>
 
 
@@ -2145,7 +2177,7 @@ You present the order slip to the <<person>> behind the counter.
 <<set $rng to random(0,100)>><<generates2>>
 <<set $NPCList[1].virginity to setup.NPCVirginityTypesVirgin>>
 
-<<if ($famesex + $famerape + $fameprostitution) gte 400>>
+<<if fameSum("sex","rape","prostitution") gte 400>>
 	Just inside the door the <<person1>><<person>> pulls you aside.
 	<br>
 	"Listen," <<he>> says in almost a whisper.
@@ -2154,7 +2186,7 @@ You present the order slip to the <<person>> behind the counter.
 
 	<<He>> glances nervously at an internal door.
 	<br>
-	"See my <<person2>><<daughter>> is a good-looking kid, and horny as hell, but...
+	"See my <<person2>><<daughter>> is a good-looking <<personsimple>>>>, and horny as hell, but...
 	<<if $pronoun is $player.gender_appearance>>
 		<<hes>> gay, I think. And confused? Conflicted? I don't know, but
 	<<else>>
@@ -2175,7 +2207,7 @@ You present the order slip to the <<person>> behind the counter.
 <<else>>
 	<<generateBEAST 3 dog>>
 	The <<person1>><<person>> takes you through to a living room where a shy-looking <<person2>><<person>> sits uncomfortably stroking a
-	<<beasttype 2>>.<!-- sic! beasttype/bhim/... take 0-based indices  -->
+	<<beasttype 2>>.<!-- sic! beasttype/bhim/... take 0-based indices -->
 	<br>
 	"I brought you someone to talk to. Looks about your age."
 	<br>
@@ -2185,7 +2217,7 @@ You present the order slip to the <<person>> behind the counter.
 		<<pass 60>>
 		Blushes. Looks down.
 		<br>
-		"Talk. What's that thing you young people are all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
+		"Talk. What's that thing you're all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
 		<br>
 		The <<person>> continues to stare at a patch of carpet.
 		<br>
@@ -2238,7 +2270,7 @@ You present the order slip to the <<person>> behind the counter.
 		<<pass 60>>
 		Blushes. Looks down.
 		<br>
-		"Talk. What's that thing you young people are all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
+		"Talk. What's that thing you're all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
 		<br>
 		The <<person>> continues to stroke the <<beasttype 2>> while staring at a patch of carpet.
 		<br>
@@ -2295,7 +2327,7 @@ You present the order slip to the <<person>> behind the counter.
 		<<pass 60>>
 		Blushes. Looks down.
 		<br>
-		"Talk. What's that thing you young people are all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
+		"Talk. What's that thing you're all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
 		<br>
 		The <<person>> continues to stare at a patch of carpet.
 		<br>
@@ -2372,7 +2404,7 @@ Using your seductive powers, you stroke <<his>> neck and kiss <<him>>, while rub
 	<<person1>>
 	<<if $cool gte 160>>
 		"You... you're, like, the coolest <<girl>> in school,"
-	<<elseif $famesex gte 400>>
+	<<elseif $fame.sex gte 400>>
 		"I heard about you. I... I always hoped one day it'd be my turn,"
 	<<elseif $beauty gte ($beautymax / 7) * 4>>
 		"But you're so hot,"
@@ -2465,11 +2497,11 @@ Using your seductive powers, you stroke <<his>> neck and kiss <<him>>, while rub
 	<br>
 <<elseif $phase is 1>>
 	<<generate1>><<set $NPCList[0] to clone($shyNPC)>>
-	<<generate2>><<set $NPCList[1] to clone($parentNPC)>><<person2>>
+	<<generate2>><<set $NPCList[1] to clone($parentNPC)>>
 	A hand clamps around your neck.
 	<br><br>
 
-	"No, kid," the <<person>> says firmly. "Don't get upset. You have to learn to read between the lines. When they seduce you, and get you all hot and bothered,
+	"No, <<person1>><<personsimple>>," the <<person2>><<person>> says firmly. "Don't get upset. You have to learn to read between the lines. When they seduce you, and get you all hot and bothered,
 	and then suddenly say 'stop' it just means they want someone who'll take control. Be a bit forceful. Come on now. Let's do this together."
 	<br><br>
 
@@ -2560,7 +2592,7 @@ Using your seductive powers, you stroke <<his>> neck and kiss <<him>>, while rub
 	The <<person>> looks disappointed.
 	<br><br>
 
-	"Talk. What's that thing you kids are all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
+	"Talk. What's that thing you're all into nowadays. That... y'know? It was on that internet thing. It was on the news that time."
 	<br>
 	The <<person2>><<person>> continues to stare at a patch of carpet.
 	<br>
diff --git a/game/overworld-town/loc-farmers-centre/main.twee b/game/overworld-town/loc-farmers-centre/main.twee
index 8a1fba671ed94abe7ee1c9c9930c00fff3a1ecba..79fd9f26c9688beff11304104f082f5c3fe3c6a3 100644
--- a/game/overworld-town/loc-farmers-centre/main.twee
+++ b/game/overworld-town/loc-farmers-centre/main.twee
@@ -219,15 +219,15 @@ The gate shudders open, and a lorry rumbles out, on its way to collect your prod
 <<if $farmersProduce is undefined>>
 <<elseif Object.keys($farmersProduce.selling).length gt 0>>
 	<<set _baseSaleQuantity to 250>>
-	<<if between($famebusiness, 1900, 2000)>>
+	<<if between($fame.business, 1900, 2000)>>
 		<<set _baseSaleQuantity to _baseSaleQuantity * 6>>
-	<<elseif between($famebusiness, 1500, 1900)>>
+	<<elseif between($fame.business, 1500, 1900)>>
 		<<set _baseSaleQuantity to _baseSaleQuantity * 5>>
-	<<elseif between($famebusiness, 1000, 1500)>>
+	<<elseif between($fame.business, 1000, 1500)>>
 		<<set _baseSaleQuantity to _baseSaleQuantity * 4>>
-	<<elseif between($famebusiness, 500, 1000)>>
+	<<elseif between($fame.business, 500, 1000)>>
 		<<set _baseSaleQuantity to _baseSaleQuantity * 3>>
-	<<elseif between($famebusiness, 200, 500)>>
+	<<elseif between($fame.business, 200, 500)>>
 		<<set _baseSaleQuantity to _baseSaleQuantity * 2>>
 	<</if>>
 	<<set _itemsSold to 0>>
diff --git a/game/overworld-town/loc-home/christmas.twee b/game/overworld-town/loc-home/christmas.twee
index 0220d0160ba7ef33f0d172a46dffca78a9ce5a92..483839d46acc9b830add3703326c8fb49e2d8cbe 100644
--- a/game/overworld-town/loc-home/christmas.twee
+++ b/game/overworld-town/loc-home/christmas.twee
@@ -92,7 +92,7 @@ You find a piece of tape stuck to your nose.
 
 :: Widgets Orphanage Christmas [widget]
 <<widget "christmas_robin_visit">>
-<<if $robinmissing is 1>>
+<<if $robinmissing isnot 0>>
 	Your eyes turn to your bedroom door, as if expecting a visitor. But no one's there.
 	<br><br>
 
@@ -293,7 +293,7 @@ Robin thanks the <<person>>, and examines the package. <<person1>><<He>> smiles
 	<<if $NPCName[$NPCNameList.indexOf("Robin")].cdstart is undefined>>
 		<<set $NPCName[$NPCNameList.indexOf("Robin")].cdstart to "christmas">>
 	<</if>>
-		
+
 <<else>>
 	Excited, <<he>> tears off the wrapping paper. <<His>> smile broadens when <<he>> sees the clothes inside. <<He>> clutches the fabric to <<his>> chest, and smiles at you.<<ltrauma>><<trauma -6>>
 	<br><br>
diff --git a/game/overworld-town/loc-home/event-widgets.twee b/game/overworld-town/loc-home/event-widgets.twee
index fd892348d36734e94f99d7cd97af5e016ff32d9a..956270321cd5baa32a90b838f8893ae2dc1473d9 100644
--- a/game/overworld-town/loc-home/event-widgets.twee
+++ b/game/overworld-town/loc-home/event-widgets.twee
@@ -282,7 +282,7 @@
 		<br>
 
 	<<case 9>>
-		<<generatey1>><<generatey2>>You walk past two other residents, a <<person1>><<person>> and a <<person2>><<person>>. The <<person1>><<person>> looks away and blushes when <<he>> sees you. The <<person2>><<person>> looks at <<person1>><<him>> and laughs.
+		<<generatey1>><<generatey2>>You walk past two other residents, a <<fullGroup>>. The <<person1>><<person>> looks away and blushes when <<he>> sees you. The <<person2>><<person>> looks at <<person1>><<him>> and laughs.
 		<br><br>
 
 		<<link [[Investigate|Home Pair]]>><</link>>
@@ -300,7 +300,7 @@
 
 	<<case 11>>
 		<<set $rng to random(1, 100)>>
-		<<generatey1>><<generatey2>>You overhear two residents, a <<person1>><<person>> and a <<person2>><<person>>, whispering about something.
+		<<generatey1>><<generatey2>>You overhear two residents, a <<fullGroup>>, whispering about something.
 		<<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $rng gte 50>>
 			You hear them mention Robin.
 			<br><br>
@@ -392,7 +392,7 @@
 		<br>
 
 	<<case 4>>
-		<<generateyv1>><<person1>><<generateyv2>>You walk past a <<person>> and <<person2>><<person>>. The <<person1>><<person>> has <<his>> face buried in <<his>> hands, while <<his>> friend tries to comfort <<him>>.<<gtrauma>><<trauma 6>>
+		<<generateyv1>><<generateyv2>>You walk past a <<fullGroup>>. The <<person1>><<person>> has <<his>> face buried in <<his>> hands, while <<his>> friend tries to comfort <<him>>.<<gtrauma>><<trauma 6>>
 		<br><br>
 
 		<<link [[Next|Orphanage]]>><<endevent>><</link>>
@@ -440,8 +440,8 @@
 					"Don't worry about where I got it."
 				<</if>>
 			<<case 4>>
-				<<if $fameprostitution gte 100>>
-					"I followed your example. If people are after my body I should make them pay for it."
+				<<if $fame.prostitution gte 100>>
+					"I followed your example. If people are after my body, I should make them pay for it."
 				<<else>>
 					"Don't worry. I have more coming."
 				<</if>>
@@ -452,7 +452,7 @@
 			<<case 7>>
 				"Stay strong."
 			<<case 8>>
-				<<if $famegood gte 100>>
+				<<if $fame.good gte 100>>
 					"I hope one day I can be as caring as you."
 				<<else>>
 					"I like to share."
@@ -574,7 +574,7 @@
 
 <<widget "homeeventkylar">>
 
-<span class="teal">You overhear a <<generateyv1>><<generateyv2>><<person1>><<person>> and <<person2>><<person>> swapping stories of the would-be molesters they've smited with their pepper sprays.</span><<greb>><<reb 1>>
+<span class="teal">You overhear a <<generateyv1>><<generateyv2>><<fullGroup>> swapping stories of the would-be molesters they've smited with their pepper sprays.</span><<greb>><<reb 1>>
 <br><br>
 
 <<link [[Next|Orphanage]]>><<endevent>><</link>>
@@ -585,7 +585,7 @@
 <<widget "homeeventriver">>
 
 <<generateyv1>><<generateyv2>>
-<span class="teal">A <<person1>><<person>> and <<person2>><<person>> walk past, carrying bags. You catch a glimpse of flour inside one. They head up the stairs towards the loft. They seem in good spirits.</span><<gghope>><<hope 3>>
+<span class="teal">A <<fullGroup>> walk past, carrying bags. You catch a glimpse of flour inside one. They head up the stairs towards the loft. They seem in good spirits.</span><<gghope>><<hope 3>>
 <br><br>
 
 <<link [[Next|Orphanage]]>><<endevent>><</link>>
diff --git a/game/overworld-town/loc-home/events.twee b/game/overworld-town/loc-home/events.twee
index 93fba8b4178487b86787294431696d18bbac36e2..14257bdb05073e4b93bcaf8d29ecdbab56016d80 100644
--- a/game/overworld-town/loc-home/events.twee
+++ b/game/overworld-town/loc-home/events.twee
@@ -923,7 +923,7 @@ The <<person2>><<person>> gives you a weak punch to the back. "Stupid!" <<he>> s
 :: Home Rumor Eavesdrop Robin
 <<effects>><<set $rng to random(1, 100)>>
 You listen in on the conversation.
-<<if $robinmissing is 1>>
+<<if $robinmissing isnot 0>>
 	They're thinking of making a group to search for Robin. You notice the <<person2>><<person>> holding what looks like a missing poster. <<hope -3>><<llhope>>
 <<elseif $robin_injured gte 1>>
 	The <<person1>><<person>> wants to bring Robin to the hospital. The <<person2>><<person>> thinks Bailey won't allow it. <<hope -1>><<lhope>>
diff --git a/game/overworld-town/loc-home/garden.twee b/game/overworld-town/loc-home/garden.twee
index e86afb2d584c40a616a16d1975afe6b0bc52f7c8..f3041e1dbde4bcd7459556ca70f113ea59b5a274 100644
--- a/game/overworld-town/loc-home/garden.twee
+++ b/game/overworld-town/loc-home/garden.twee
@@ -268,11 +268,11 @@ You look over your shoulder to make sure you aren't being watched, then hoist yo
 
 
 <<if $event_trigger is 1>>
-	<<run getRobinLocation()>>
-	<<if $rng gte 51 and _robin_location is "orphanage" and $NPCName[$NPCNameList.indexOf("Robin")].trauma lt 80 and $robin_tending isnot 1>>
+	<<set _robin to statusCheck("Robin")>>
+	<<if $rng gte 51 and _robin_location is "orphanage" and _robin.trauma lt 80 and $robin_tending isnot 1>>
 		<<set $robin_tending to 1>>
 		<<npc Robin>><<person1>>
-		<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
+		<<if _robin.trauma gte 40>>
 			You hear a gentle patter of footsteps disturbing the grass. It's Robin.
 			<br><br>
 
@@ -349,10 +349,10 @@ You find some seeding daisies growing within a tuft of wild grass near the back
 <<if $submissive gte 1150>>
 	"H-hello?" you say. "I'm sorry if I offended you. Please give me my clothes."
 <<elseif $submissive lte 850>>
-	"I know you're there." you say. "Show yourself."
+	"I know you're there," you say. "Show yourself."
 	<br><br>
 <<else>>
-	"This isn't funny." you say. "Give my clothes back."
+	"This isn't funny," you say. "Give my clothes back."
 <</if>>
 
 <br><br>
@@ -395,7 +395,7 @@ You feel exposed and humiliated as you look at the clothes held in <<his>> hand,
 	Realising how entranced <<he>> is by your body, you snatch the clothing from <<him>> and march behind a bush to get dressed. You hope <<he>> doesn't tell anyone about this, but you know better.
 	<br><br>
 <<else>>
-	"I did what you asked." you say, hoping the ordeal is near over.
+	"I did what you asked," you say, hoping the ordeal is near over.
 	<br><br>
 	<<He>> looks at you thoughtfully for a moment, then throws the clothing at you. You run behind a bush to get dressed. You hope <<he>> doesn't tell anyone about this, but you know better.
 	<br><br>
@@ -473,7 +473,7 @@ You grab hold of a low branch and begin climbing the tree. You feel more exposed
 
 :: Bask Climb Exhibitionism
 <<set $outside to 1>><<set $location to "home">><<effects>>
-<<fameexhibitionism 10 pic>>
+<<fameexhibitionism 10 "pic">>
 
 You cling to the branch holding your clothes with your hands and knees and crawl across. The <<person>> returns, and points <<his>> camera straight at you. Now you're clear of the main bulk of leaves, they get a clear shot of your <<bottom>>. "Damn <<girl>>, what I'd do to you if I had you in here."
 <br><br>
@@ -645,7 +645,6 @@ You wait, <<lewdness>> displayed but hidden beneath the bush, for the orphans to
 
 You squeeze <<his>> hips between your thighs for a moment and lean closer. "You're it," you whisper into <<his>> ear. "And right where I want you." <<His>> face has turned red by the time you're back on your feet.
 <<promiscuity1>>
-<br><br>
 
 <<link [[Next|Garden]]>><<endevent>><</link>>
 <br>
@@ -653,13 +652,14 @@ You squeeze <<his>> hips between your thighs for a moment and lean closer. "You'
 
 :: Garden Robin Help
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<for $_plot range $plots["garden"]>>
 	<<set $_plot.water to 1>>
 <</for>>
 
 You hand Robin your watering can, and <<he>> gets to work while you find another. Together, you water the flowers around the garden.
-<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
+<<if _robin.trauma gte 40>>
 	Robin is quiet, but <<he>> seems happier as <<he>> works.
 <<else>>
 	Robin hums as <<he>> works.
@@ -677,8 +677,8 @@ Job well done, Robin sits on the grass and watches the flowers sway in the breez
 
 :: Garden Robin Sit
 <<effects>>
-
-<<if $robinromance is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 40>>
+<<set _robin to statusCheck('Robin')>>
+<<if $robinromance is 1 and _robin.dom gte 40>>
 	You sit beside Robin. <<He>> rests <<his>> hand on yours, and gives it a little squeeze.
 <<else>>
 	You sit beside Robin, and together watch as bees float between the glistening petals.
@@ -856,7 +856,7 @@ You call for help as the shoots tighten around you.
 	<<link [[Next|Garden Stem Rape]]>><<set $molestationstart to 1>><</link>>
 	<br>
 <<else>>
-	<<run getRobinLocation()>>
+	<<run statusCheck("Robin")>>
 	<<if $rng gte 51 and _robin_location is "orphanage" and $NPCName[$NPCNameList.indexOf("Robin")].trauma lt 80 and $robin_tending isnot 1>>
 		<<npc Robin>><<person1>>
 		"I'm coming!" shouts a voice in response. It's Robin. <<He>> emerges from the orphanage, and gasps when <<he>> sees you. "You're all tangled. Here." <<He>> drops to <<his>> knees and loosens the entangling shoots. <<Hes>> careful not to damage any.
diff --git a/game/overworld-town/loc-home/main.twee b/game/overworld-town/loc-home/main.twee
index 42a9c9af4c250b734a6bbf11d5093732ec292069..d8998888374728c8c421f33afb093ae5a3b2fa35 100644
--- a/game/overworld-town/loc-home/main.twee
+++ b/game/overworld-town/loc-home/main.twee
@@ -3,9 +3,84 @@
 <<bedclotheson "bed">>
 <<set $outside to 0>><<set $location to "home">><<home_effects>><<effects>><<getTarget true>>
 You are in your bedroom.
+
+<<set _furniture to $furniture.bedroom>>
+<<if _furniture.wallpaper>>
+	<<switch _furniture.wallpaper.name>>
+		<<case "vines">>
+			Lewd green vines writhe on the walls.
+			<<if $backgroundTraits.includes("plantlover")>>
+				Thoughts of sweet nectar wrack your mind.
+			<</if>>
+		<<case "tentacles">>
+			Purple tentacles slither on the walls.
+			<<if $demon gte 6>>
+				Thoughts of pleasure cross your mind.
+			<</if>>
+		<<case "plainwhite">>
+			Plain white wallpapers cover the walls.
+		<<case "wavywhite">>
+			The white wallpapers gradient to black in a wavy pattern. Is there a lewd subtext?
+		<<case "hearts">>
+			Pink hearts cover the walls.
+		<<case "cowgirls">>
+			Cowgirls dance on the walls.
+		<<case "trees">>
+			Green trees bring you a feeling of being in a forest.
+		<<case "crosses">>
+			Golden crosses cover the walls.
+		<<default>> /* Custom */
+			Images of _furniture.wallpaper.name cover the walls.
+			<<if ['dol', 'degrees of lewdity'].some(e => _furniture.wallpaper.name === e)>>
+				Somehow, they look familiar.
+			<</if>>
+	<</switch>>
+<<else>>
+	Bleak walls protect you from the outside.
+<</if>>
+
+<<set _deco to Furniture.get('decoration')>>
+<<if _deco>>
+	<br>
+	<<switch _deco.name>>
+		<<case "bearplushie">>
+			<<furnitureicon _deco.iconFile>>The _deco.name is sitting in a corner.
+		<<default>>
+			<<furnitureicon _deco.iconFile>>The _deco.name is hanging on a wall.
+	<</switch>>
+<</if>>
+
+<<set _windowsill to Furniture.get('windowsill')>>
+<<if _windowsill>>
+	<br>
+	<<switch _windowsill.name>> /* can be expanded further */
+		<<case "ominous jar">> /* unused */
+			<<furnitureicon _windowsill.iconFile>>_windowsill.nameCap stands on the windowsill menacingly.
+		<<default>>
+			<<furnitureicon _windowsill.iconFile>> Your _windowsill.name sits on the windowsill.
+	<</switch>>
+<</if>>
+
+<<if _furniture.poster>>
+	<br>
+	<<switch _furniture.poster.name>>
+		<<case "cowgirl">>
+			A cowgirl poster hangs on a wall.
+		<<case "cat">>
+			A poster of a cat hangs on a wall. The text below reads, "Hang in there!"
+		<<case "puppy">>
+			A puppy poster hangs on a wall.
+		<<default>> /* Custom */
+			A poster of _furniture.poster.name hangs on a wall.
+			<<if ['dol', 'degrees of lewdity'].some(e => _furniture.wallpaper.name === e)>>
+				You feel an odd sense of familiarity.
+			<</if>>
+	<</switch>>
+<</if>>
+
 <br><br>
-<<if $robinbed is 1 and !$possessed>>
-	<<set $robinbed to 0>>
+<<if $robinbed is "yours" and !$possessed>>
+	<<unset $robinbed>>
 	<<npc Robin>><<person1>>Robin yawns and heads to <<his>> own room.<<endevent>>
 	<br><br>
 <</if>>
@@ -21,13 +96,17 @@ You are in your bedroom.
 <</if>>
 <<if $study is 1>>
 	<<unset $study>>
-	<<if $phase is 1>><<scienceskill>>
+	<<if $phase is 1>>
+		<<scienceskill>>
 		You settle down on your bed with a science textbook and read through the material.
-	<<elseif $phase is 2>><<mathsskill>>
+	<<elseif $phase is 2>>
+		<<mathsskill>>
 		You settle down on your bed with a maths textbook and read through the material.
-	<<elseif $phase is 3>><<englishskill>>
+	<<elseif $phase is 3>>
+		<<englishskill>>
 		You settle down on your bed with an English textbook and read through the material.
-	<<elseif $phase is 4>><<historyskill>>
+	<<elseif $phase is 4>>
+		<<historyskill>>
 		You settle down on your bed with a history textbook and read through the material.
 	<</if>>
 	<<endevent>>
@@ -47,7 +126,7 @@ You are in your bedroom.
 		<<link [[Undo your bindings (0:10)|Bedroom]]>><<set $unbind to 1>><<pass 10>><<unbind>><</link>>
 		<br><br>
 	<</if>>
-	<<if $robinpaid is 1 and $robinnote isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].lust gte 10 and $NPCName[$NPCNameList.indexOf("Robin")].love gte 60 and $NPCName[$NPCNameList.indexOf("Robin")].trauma lt 10>>
+	<<if $robinpaid is 1 and $robinmissing is 0 and $robinnote isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].lust gte 10 and $NPCName[$NPCNameList.indexOf("Robin")].love gte 60 and $NPCName[$NPCNameList.indexOf("Robin")].trauma lt 10>>
 		<span class="gold">There's a note by the window.</span>
 		<br>
 		<<link [[Read it|Robin Note]]>><<set $robinnote to 1>><</link>>
@@ -64,9 +143,9 @@ You are in your bedroom.
 			/*indev radio testing*/
 			A radio is on:
 			<br>
-		
+
 			<<radio_placehere>>
-		
+
 			<span class="green">More debugging:</span>
 			<br>
 			<<link [[Add test news|Bedroom]]>><<radio_addnews "meteor_fall" "2">><</link>> radio_addnews "meteor_fall" "2"
@@ -91,20 +170,26 @@ You are in your bedroom.
 		<br><br>
 	<</if>>
 	Your bed takes up most of the room.
+	<<set _bed to Furniture.get('bed')>>
 	<<if $nextPassageCheck is "Bed">>
 		<br>
-		<<if $robinbed is 1>>
-			<span class="nextLink"><<bedicon>><<link [[Robin.|Bed]]>><</link>></span>
+		<<if $robinbed is "yours">>
+			<span class="nextLink"><<furnitureicon _bed.iconFile>><<link [[Robin.|Bed]]>><</link>></span>
 		<<else>>
-			<span class="nextLink"><<bedicon>><<link [[Kylar.|Bed]]>><</link>></span>
+			<span class="nextLink"><<furnitureicon _bed.iconFile>><<link [[Kylar.|Bed]]>><</link>></span>
 		<</if>>
 		<br>
 		<<listsleepoutfits>>
 	<<elseif $slimeEvent is undefined>>
 		<br>
-		<<bedicon>><<link [[Strip and get in bed|Bed]]>><<undressSleep "bed">><</link>>
+		<<furnitureicon _bed.iconFile>><<link [[Strip and get in bed|Bed]]>><<undressSleep "bed">><</link>>
 		<br>
 		<<listsleepoutfits>>
+
+		<<if _bed.type.includes("comfy")>>
+			<<furnitureicon _bed.iconFile>><<link [[Masturbate in bed|Home Masturbation]]>><<set $masturbationstart to 1>><</link>>
+			<br>
+		<</if>>
 	<<else>>
 		<br>
 		<<if $possessed>>
@@ -116,13 +201,12 @@ You are in your bedroom.
 	<</if>>
 	<<roomoptions>>
 	<br>
-	<<if $arousal gte $arousalmax / 5 and !$worn.genitals.type.includes("chastity") and $homemasturbationtest is 1>>
-		<<link [[Masturbate (0:05)|Home Masturbation]]>><<pass 5>><<set $masturbationstart to 1>><</link>>
+	<<set _wardrobe to Furniture.get('wardrobe')>>
+	<<if _wardrobe>>
+		Your clothes are kept in the wardrobe.
 	<</if>>
 	<br>
-	Your clothes are kept in the corner.
-	<br>
-	<<wardrobeicon>><<link [[Wardrobe|Wardrobe]]>><</link>>
+	<<furnitureicon _wardrobe.iconFile>><<link [[Wardrobe|Wardrobe]]>><</link>>
 	<br>
 	<<if playerHasSexToys()>>
 		<<sextoysicon>><<link [[Sex toys|Sextoys Inventory]]>><<set $sextoyInvReturnLink to $passage>><</link>>
@@ -148,8 +232,17 @@ You are in your bedroom.
 		<br>
 	<</if>>
 
-
-
+	<<set _table to Furniture.get('table')>>
+	<<set _chair to Furniture.get('chair')>>
+	<<if _table>>
+		<br>
+		Your _table.name <<if _chair>>and a pair of _chair.name are <<else>>is <</if>> situated next to a wall.
+		<br>
+		<<if $debug>>
+			<<bedroomtablechairicon>><<link [[Table (Debug)|Bedroom Table]]>><</link>>
+			<br><br>
+		<</if>>
+	<</if>>
 
 	<<if $sexStats.anus.pregnancy.seenDoctor gte 2>>
 		<<set $container.lastLocation to $location>>
@@ -243,7 +336,7 @@ You are in your bedroom.
 				<<bedroomicon>><<link [[Robin's room (0:01)|Robin's Room Entrance]]>><<pass 1>><</link>>
 				<br>
 			<</if>>
-			<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing isnot 1 and !$robinTraumaVisit>>
+			<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing is 0 and !$robinTraumaVisit>>
 				<<main_hall_icon>><<link [[Main hall (0:01)|Robin Trauma Visit]]>><<set $phase to 1>><<pass 1>><</link>>
 				<br>
 			<<else>>
@@ -265,7 +358,7 @@ You are in your bedroom.
 			<<bedroomicon>><<link [[Robin's room (0:01)|Robin's Room Entrance]]>><<pass 1>><</link>>
 			<br>
 		<</if>>
-		<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing isnot 1 and !$robinTraumaVisit>>
+		<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing is 0 and !$robinTraumaVisit>>
 			<<main_hall_icon>><<link [[Main hall (0:01)|Robin Trauma Visit]]>><<set $phase to 1>><<pass 1>><</link>>
 			<br>
 		<<else>>
@@ -286,6 +379,34 @@ You are in your bedroom.
 	<br><br>
 <</if>>
 
+:: Bedroom Robin Mist Note
+<<set _robin to statusCheck("Robin")>>
+<<bedclotheson "bed">>
+
+<<set $robinmistknown to 1>>
+When you wake up, you notice a note pushed under your door. You read it.
+<br><br>
+
+"<i>I don't know who they are or what they want, but they're making me write this letter to you.
+<br>I'm being kept in some sort of cell. It's cold and I don't know what time it is.
+<br>They told me to tell you to come to <span class="gold">the landfill on Elk Street</span>.
+<br></i>
+<<if _robin.dom gte 80>>
+	<i>Please be careful.<<if $robinromance>> I love you.<</if>></i>"
+<<else>>
+	<i>Please help. I'm scared.</i>"
+	<br><br>
+
+	The words are almost too erratic to read towards the end, with multiple errors crossed out.
+	The page also has small circles of water damage.
+<</if>>
+<br><br>
+
+<span class="red">This is Robin's handwriting.</span>
+<br><br>
+
+<<link [[Next|Bedroom]]>><</link>>
+
 :: Home Leave Undies
 
 <<set $outside to 1>><<set $location to "town">><<effects>>
@@ -366,10 +487,11 @@ You are in the bathroom.
 
 :: Sleep
 <<set _autosavehere to true>>
+<<set _robin to statusCheck("Robin")>>
 
 <<sleep>><<effects>>
 <<sleepeffects>>
-<<if $robindebtwake is 1>>
+<<if $robindebtwake is 1 and $robinbed is undefined>>
 	<<set $robindebtwake to 0>><<set $robindebtknown to 1>>
 	<<npc Robin>><<person1>>You're awoken by your door opening. You freeze in fear, until you see Robin peek through the gap. "Can I come in?" <<he>> asks.
 	<br><br>
@@ -386,18 +508,29 @@ You are in the bathroom.
 	<<endevent>>
 	<<link [[Next|Bed]]>><</link>>
 	<br>
-<<elseif $NPCName[$NPCNameList.indexOf("Robin")].lovewake is 1>>
-	<<set $NPCName[$NPCNameList.indexOf("Robin")].lovewake to 0>><<set $robinbed to 1>>
+<<elseif _robin.lovewake is 1>>
+	<<set _robin.lovewake to 0>><<set $robinbed to "yours">>
 	<<npc Robin>><<person1>>You feel a familiar presence. Robin wraps <<his>> arms around you.
+	<<if _robin.trauma gte 50>>
+		"I'm sorry," you hear <<his>> voice whisper into your ear. "I keep having nightmares..."
+		<br><br>
+
+		You hold <<him>> closer to you, and <<his>> shaking stops.
+		<<if $trauma gte ($traumamax * 0.7)>>
+			Your own shaking stop as <<he>> returns the embrace.
+		<</if>>
+	<</if>>
 	<br><br>
-	<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 80>>
+	<<if _robin.dom gte 80 and _robin.trauma lt 50>>
 		<<link [[Cuddle|Robin Bed Dominant]]>><</link>>
 		<br>
 	<<else>>
-		<<link [[Cuddle|Bed]]>><<endevent>><<trauma -6>><<stress -12>><</link>><<ltrauma>><<lstress>>
+		<<link [[Cuddle|Bed]]>><<endevent>><<trauma -6>><<stress -12>><<npcincr Robin trauma -3>><</link>><<ltrauma>><<lstress>><<lrtrauma>>
 		<br>
 	<</if>>
-	<<link [[Kiss|Bed Robin Sex]]>><<set $sexstart to 1>><</link>>
+	<<if _robin.trauma lt 50>>
+		<<link [[Kiss|Bed Robin Sex]]>><<set $sexstart to 1>><</link>>
+	<</if>>
 	<br>
 <<elseif $location is "home" and $wraith and $wraith.nightmare is 2 and ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6)>>
 	You dream of a beautiful figure, cloaked in white, standing under the red moon. It has its arms spread out to you in a welcoming gesture. You can feel its gaze boring into your mind as you step closer.
@@ -405,7 +538,7 @@ You are in the bathroom.
 	It's surrounded by trees, all bending inwards, and floating above a lake. Everything moves around you, and you find yourself hanging above a large ruin. You can't breathe.
 	<br><br>
 	You slowly open your eyes, and sluggishly stand from your bed.
-	<<if $robinbed is 1>>
+	<<if $robinbed is "yours">>
 		You make sure not to wake Robin.
 	<<elseif $kylarbed is 1>>
 		You make sure not to wake Kylar.
@@ -418,8 +551,8 @@ You are in the bathroom.
 <<elseif $baileyrapewake is 1>>
 	<<set $baileyrapewake to 0>>
 	<<generate1>><<person1>>You awaken to a shape looming over you and hands pulling off your covers. It's a <<person>>. "Don't struggle," <<he>> says.
-	<<if $robinbed is 1 or $kylarbed is 1>>
-		"We wouldn't want to wake up your friend." <<if $robinbed is 1>>Robin<<else>>Kylar<</if>> lays beside you, still asleep.
+	<<if $robinbed is "yours" or $kylarbed is 1>>
+		"We wouldn't want to wake up your friend." <<if $robinbed is "yours">>Robin<<else>>Kylar<</if>> lays beside you, still asleep.
 	<</if>>
 	"You looked so cute, cosy and safe sleeping. I couldn't help myself."
 	<br><br>
@@ -434,7 +567,7 @@ You are in the bathroom.
 	<br>
 	A sprinkling of hoar frost
 	<br>
-	Falls down by the window, 
+	Falls down by the window,
 	<br>
 	Now to rise or to toss?
 	<br><br>
@@ -444,74 +577,7 @@ You are in the bathroom.
 	<<link [[Toss and go back to sleep|Sleep]]>><<endevent>><</link>>
 	<br>
 <<elseif $location is "home" and $slimeWake is 1>>
-	<<set $slimeWake to 0>>
-	<<set _newLocations to ["Residential alleyways", "Commercial alleyways", "Park", "Industrial alleyways"]>>
-	<<set _newLocation to _newLocations[random(0,3)]>>
-	<<set $eventskip to 1>><<set $slimeSleepEvent to 3>>
-	<<if $hour lt 24 and $hour gt 12>>
-		<<set $slimeSleepEvent += 1>>
-	<</if>>
-	You wake up in a confused and disoriented state. The last thing you recall is getting into bed like normal. However, you're clearly not in it anymore. You have a feeling that the slime in your ear is involved in some way.
-	<br><br>
-	<<set _coveredIn to "">>
-	<<if random(0,100) gt 80>>
-		<<set _coveredIn to "slime">>
-		<<if $player.penisExist and $player.virginity.penile isnot true and !$worn.genitals.type.includes("chastity")>>
-			<<set $player.bodyliquid.penis.goo += random(1,3)>>
-		<</if>>
-		<<if $player.vaginaExist and $player.virginity.vaginal isnot true and !$worn.genitals.type.includes("chastity")>>
-			<<set $player.bodyliquid.vagina.goo += random(1,3)>>
-		<</if>>
-		<<if $player.virginity.anal isnot true and $worn.genitals.anal_shield isnot 1 and $analdisable is "f">>
-			<<set $player.bodyliquid.anus.goo += random(1,3)>>
-		<</if>>
-		<<if $player.virginity.oral isnot true>>
-			<<set $player.bodyliquid.mouth.goo += random(1,3)>>
-		<</if>>
-		<<set $player.bodyliquid.hair.goo += random(1,3)>>
-		<<set $player.bodyliquid.face.goo += random(1,3)>>
-		<<set $player.bodyliquid.neck.goo += random(1,3)>>
-		<<set $player.bodyliquid.chest.goo += random(1,3)>>
-		<<set $player.bodyliquid.leftarm.goo += random(1,3)>>
-		<<set $player.bodyliquid.rightarm.goo += random(1,3)>>
-		<<set $player.bodyliquid.thigh.goo += random(1,3)>>
-		<<set $player.bodyliquid.feet.goo += random(1,3)>>
-	<</if>>
-	<<if random(0,100) gt 80>>
-		<<if _coveredIn is "slime">>
-			<<set _coveredIn += " and semen">>
-		<<else>>
-			<<set _coveredIn to "semen">>
-		<</if>>
-		<<if $player.penisExist and $player.virginity.penile isnot true and !$worn.genitals.type.includes("chastity")>>
-			<<set $player.bodyliquid.penis.semen += random(1,3)>>
-		<</if>>
-		<<if $player.vaginaExist and $player.virginity.vaginal isnot true and !$worn.genitals.type.includes("chastity")>>
-			<<set $player.bodyliquid.vagina.semen += random(1,3)>>
-		<</if>>
-		<<if $player.virginity.anal isnot true and $worn.genitals.anal_shield isnot 1 and $analdisable is "f">>
-			<<set $player.bodyliquid.anus.semen += random(1,3)>>
-		<</if>>
-		<<if $player.virginity.oral isnot true>>
-			<<set $player.bodyliquid.mouth.semen += random(1,3)>>
-		<</if>>
-		<<set $player.bodyliquid.hair.semen += random(1,3)>>
-		<<set $player.bodyliquid.face.semen += random(1,3)>>
-		<<set $player.bodyliquid.neck.semen += random(1,3)>>
-		<<set $player.bodyliquid.chest.semen += random(1,3)>>
-		<<set $player.bodyliquid.leftarm.semen += random(1,3)>>
-		<<set $player.bodyliquid.rightarm.semen += random(1,3)>>
-		<<set $player.bodyliquid.thigh.semen += random(1,3)>>
-		<<set $player.bodyliquid.feet.semen += random(1,3)>>
-	<</if>>
-	<<if _coveredIn isnot "">>
-		<<set $slimeSleepEvent += 2>>
-		On top of this predicament, you find yourself covered in <<print _coveredIn>>. If this was the slime's doing, it clearly had its fun with your body while you slept.
-		<br><br>
-	<</if>>
-	Having a look round your surroundings, you think that you've somehow been relocated to the <<print _newLocation.toLocaleLowerCase()>>.
-	<br><br>
-	<<link [[Next|_newLocation]]>><</link>>
+	<<slime_wake_home>>
 <<else>>
 	<<if $nightmares is 1 and $controlled is 0>>
 		<<if _sleepinterrupt>>
@@ -579,12 +645,12 @@ You are in the bathroom.
 			<</if>>
 		<</if>>
 	<</if>>
-	<<if $robinbed is 1>>
-		<<set $robinbed to 0>>
+	<<if $robinbed is "yours">>
+		<<unset $robinbed>>
 		<<npc Robin>><<person1>>
 		<<wakingEffects $sleepHoursTotal>>
 		<<if _wakingEffect is "dryheaving">>
-			"Are you okay? Let me help," Robin says, easing you back up. <<He>> checks to see if you're fine before taking <<his>> leave. 
+			"Are you okay? Let me help," Robin says, easing you back up. <<He>> checks to see if you're fine before taking <<his>> leave.
 		<<elseif _orgasm is true>>
 			<<if $exposed gte 2>>
 				Robin cuddles you. "I'll leave you to get-" <<he>> pauses, noticing the moisture on their body and yours. Blushing, <<he>> gathers tissues for both of you.
@@ -607,7 +673,7 @@ You are in the bathroom.
 		<br><br>
 	<<elseif $kylarbed is 1>>
 		<<npc Kylar>><<person1>>
-		<<if $rng gte 81 and $robinmissing isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+		<<if $rng gte 81 and $robinmissing is 0 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
 			You awaken to the sound of your door creaking open. You hear somebody gasp, before they hurriedly shut the door.
 			<br><br>
 
@@ -660,12 +726,15 @@ You are in the bathroom.
 		<<wardrobeSelection true>>
 		<<radiooutfits>>
 		<br><br>
-		<<if $renttime lte 0>><<set $bus to "home">>
+		<<if $renttime lte 0>>
+			<<set $bus to "home">>
 			<<link [[Get out of bed|Bedroom Bailey]]>><</link>>
 			<br><br>
+		<<elseif $robinmissing is "landfill" and !$robinmistknown>>
+			<<link [[Get out of bed|Bedroom Robin Mist Note]]>><</link>>
+			<br><br>
 		<<else>>
 			<<link [[Get out of bed|Bedroom]]>><</link>>
-			<br><br>
 		<</if>>
 	<</if>>
 <</if>>
@@ -673,6 +742,164 @@ You are in the bathroom.
 	<<set $phase to 0>>
 <</if>>
 
+:: Robin Sleep
+<<set _autosavehere to true>>
+<<run statusCheck("Robin")>>
+<<sleep>><<effects>>
+<<sleepeffects>>
+<<set $wear_outfit to "clotheson">>
+
+<<if $baileyrapewake>>
+	<<set $baileyrapewake to 0>>
+	<<generate1>><<person1>>You awaken to a shape looming over you and hands pulling off your covers. It's a <<person>>. "Don't struggle," <<he>> says.
+	"We wouldn't want to wake up your friend." Robin lays beside you, still asleep.
+	"You looked so cute, cosy and safe sleeping. I couldn't help myself."
+	<br><br>
+
+	<span class="red">Bailey leans against the door frame, counting money.</span>
+	<br><br>
+
+	<<link [[Next|Sleep Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<<elseif $location is "home" and $wraith and $wraith.nightmare is 2 and ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6)>>
+	You dream of a beautiful figure, cloaked in white, standing under the red moon. It has its arms spread out to you in a welcoming gesture. You can feel its gaze boring into your mind as you step closer.
+	<br><br>
+	It's surrounded by trees, all bending inwards, and floating above a lake. Everything moves around you, and you find yourself hanging above a large ruin. You can't breathe.
+	<br><br>
+	You slowly open your eyes, and sluggishly stand from the bed. You make sure not to wake Robin. Your ears are ringing. You make your way towards your room.
+	<br><br>
+	<<storeon "bed" "wardrobe">><<wraithPossess "home">>
+	<span class="nextLink"><<link [[Walk.|Bedroom]]>><</link>></span>
+	<br>
+<<elseif $location is "home" and $slimeWake is 1>>
+	<<slime_wake_home>>
+<<else>>
+	<<if $nightmares is 1 and $controlled is 0>>
+		<<if _sleepinterrupt is 1>>
+			<<if $motherwake is 1>>
+				You try to go back to sleep, but Bailey knocks again, reminding you to get up.
+			<<else>>
+				<<wakingEffects $sleepHoursTotal>>
+				<<if _wakingEffect isnot undefined>>
+					You dreamt of
+				<<else>>
+					You dream you are
+				<</if>>
+				being hunted by something <<if $wraith and $wraith.state is "haunt" and $rng lte 25>>pale<<else>>dark<</if>> and terrible. The nightmares are interrupted by a hammering on your door. It's Bailey, waking you for school.
+			<</if>>
+			<br><br>
+			<<set $motherwake to 1>>
+		<<else>>
+			<<wakingEffects $sleepHoursTotal>>
+			<<if _wakingEffect isnot undefined>>
+				You dreamt of
+			<<else>>
+				You dream you are
+			<</if>>
+			being hunted by something <<if $wraith and $wraith.state is "haunt" and $rng lte 25>>pale<<else>>dark<</if>> and terrible. You quickly forget the specifics, but the sense of dread lingers.
+			<br><br>
+		<</if>>
+	<<else>>
+		<<if _sleepinterrupt is 1>>
+			<<if $motherwake is 1>>
+				You try to go back to sleep, but Bailey knocks again, reminding you to get up.
+			<<else>>
+				<<wakingEffects $sleepHoursTotal>>
+				<<if _wakingEffect isnot undefined>>
+					After you slept
+				<<else>>
+					You sleep
+				<</if>>
+				soundly, but are awoken early by a hammering on your door. It's Bailey, waking you for school.
+			<</if>>
+			<br><br>
+			<<set $motherwake to 1>>
+		<<else>>
+			<<if !_wakingEffect>>
+				<<wakingEffects $sleepHoursTotal>>
+			<</if>>
+			<<if ["dryheaving","nausea"].includes(_wakingEffect)>>
+				You slept soundly, but now feel a little rough. <<stress 5>><<gstress>>
+				<br><br>
+			<<elseif $specialClothesEffects.bimboTotal gte random(100,1000) or $arousal gte ($arousalmax / 10) * 9>>
+				Your sleep is plagued by dirty dreams.
+				<<arousal `$specialClothesEffects.bimboTotal / 10 * $sleepHoursTotal`>>
+				<<arousal `100 * $sleepHoursTotal`>>
+				<<if $arousal gte $arousalmax>>
+					They push you over the edge.
+					<<orgasm>><<set _orgasm to true>>
+				<<else>>
+					<br><br>
+				<</if>>
+			<<elseif _mildNausea>>
+				You sleep soundly.
+				<br><br>
+			<<else>>
+				You sleep soundly.
+				<br><br>
+			<</if>>
+		<</if>>
+	<</if>>
+	<<unset $robinbed>>
+	<<npc Robin>><<person1>>
+	<<wakingEffects $sleepHoursTotal>>
+	<<if $renttime gte 1>> <!-- If Rent is not due -->
+		<<if _robin_location is "orphanage" or _robin_location is "sleep">>
+			<<if $hour lte 21>>
+				<<set _robinSleepyChance to ($time - 360) * 4/3>> <!-- 0% at 6, 80% at 7, and 100% starting at 7:15 -->
+				<<set _robinAwakeChance to ($time - 420) * 5/3>> <!-- 0% at 7, then increases to 100% by 8 -->
+				<<if _wakingEffect is "dryheaving">>
+					"Are you okay? Let me help," Robin says, easing you back up. <<He>> checks to see if you're fine before getting up <<himself>>.
+					<<set $phase to 1>>
+				<<elseif _orgasm is true and !$rng lte _robinAwakeChance>>
+					<<set $phase to 1>>
+					<<if $exposed gte 2>>
+						Robin cuddles you. "You should go-" <<he>> pauses, noticing the moisture on their body and yours. Blushing, <<he>> gathers tissues for both of you.
+						<<if $rng gte 71>>
+							"I-It's okay," <<he>> says.
+						<<elseif $rng gte 31>>
+							"This might be my fault," <<he>> says.
+						<<else>>
+							"I-I might need a bath," <<he>> says.
+						<</if>>
+					<<else>>
+						Robin cuddles you. "You should go ba-" <<he>> pauses, noticing the moist patch around your crotch. Blushing, <<he>> passes you a tissue.
+						"I-It's okay," <<he>> says.
+					<</if>>
+				<<else>>
+					<<if $rng lte _robinAwakeChance>>
+						"About time you woke up, sleepyhead." Robin smiles at you from the edge of the bed.
+						<<set $phase to 2>>
+					<<elseif $rng lte _robinSleepyChance>>
+						Robin cuddles you. "You should go back and get dressed," <<he>> says.
+						<<set $phase to 1>>
+					<<else>>
+						Robin cuddles you in <<his>> sleep.
+						<<set $phase to 0>>
+					<</if>>
+				<</if>>
+				<br><br>
+			<</if>>
+		<<else>>
+			You find a note on the wall next to you. "Hope you slept okay! I had to go do stuff!"
+			<br><br>
+
+			<<set $phase to 3>>
+		<</if>>
+	<</if>>
+	<<if $hour is 6>><<run setRobinLocationOverride("orphanage", 6)>><</if>>
+	<<endevent "phaseless">>
+	<<if $renttime lte 0>>
+		<<set $bus to "home">>
+		<<set $inRobinsRoom to true>>
+		<<link [[Next|Bedroom Bailey]]>><<set $wardrobe_location to "wardrobe">><</link>>
+		<br><br>
+	<<else>>
+		<<link [[Next|Robin Room Wake]]>><<set $wardrobe_location to "wardrobe">><</link>>
+		<br><br>
+	<</if>>
+<</if>>
+
 :: Bath Scream
 
 <<effects>><<set $location to "home">><<set $outside to 0>>
@@ -907,7 +1134,7 @@ As you remove the plug to drain the water, you feel something probe your <<genit
 	You wash until you're squeaky clean.<<wash>>
 	<br><br>
 
-	As you remove the plug to drain the water, you hear voices from the hallway. They stop outside the door, before flinging it open. A <<person1>><<person>>, <<person2>><<person>>, and <<person3>><<person>> barge in.
+	As you remove the plug to drain the water, you hear voices from the hallway. They stop outside the door, before flinging it open. A <<fullGroup>> barge in.
 	<br><br>
 	<<set $rng to random(1, 100)>>
 	<<if $rng gte 51>>
@@ -1069,10 +1296,10 @@ You've pushed yourself too much.
 
 <<effects>>
 <<wearoutfit>>
-<<if $robinbed is 1>>
+<<if $robinbed is "yours">>
 	You snuggle under the covers with Robin.
 <<else>>
-	<<if $location is "home" and $corruption_slime gte ($willpower / 20) and random(0,100) lt 3 and ($daystate is "night" and ($hour gte 20 or $hour lte 1)) and $slimeSleepEvent is 0 and $slimeEvent is undefined>>
+	<<if $location is "home" and $corruption_slime gte (currentSkillValue('willpower') / 20) and random(0,100) lt 3 and ($daystate is "night" and ($hour gte 20 or $hour lte 1)) and $slimeSleepEvent is 0 and $slimeEvent is undefined>>
 		<<set $slimeSleepEvent to 4>>
 		<<slimeNoSleep>>
 		<<set _skip to true>>
@@ -1087,29 +1314,29 @@ You've pushed yourself too much.
 
 <<if _skip isnot true>>
 	<<if $sleeptrouble is 1 and $controlled is 0>>
-		<<link [[Sleep for 10 hours|Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+		<<link [[Sleep for 10 hours|Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 		<br>
-		<<link [[Sleep for 9 hours|Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+		<<link [[Sleep for 9 hours|Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 		<br>
 	<</if>>
 
-	<<link [[Sleep for 8 hours|Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+	<<link [[Sleep for 8 hours|Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 7 hours|Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+	<<link [[Sleep for 7 hours|Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 6 hours|Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+	<<link [[Sleep for 6 hours|Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 5 hours|Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+	<<link [[Sleep for 5 hours|Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 4 hours|Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+	<<link [[Sleep for 4 hours|Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 3 hours|Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+	<<link [[Sleep for 3 hours|Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 2 hours|Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+	<<link [[Sleep for 2 hours|Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 1 hour|Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+	<<link [[Sleep for 1 hour|Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 	<br>
-	<<link [[Just sleep|Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+	<<link [[Just sleep|Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 	<br><br>
 
 	<<link [[Climb out of bed|Bedroom]]>><<storeon "bed">><<set $wardrobe_location to "wardrobe">><<loadTempHairStyle>><<endevent>><</link>>
@@ -1118,9 +1345,53 @@ You've pushed yourself too much.
 	<<unset _skip>>
 <</if>>
 
+:: Robin Bed
+<<effects>>
+<<wearoutfit>>
+<<npc Robin>>
+
+You snuggle under the covers with Robin. You can feel the heat from <<his>> <<print ($robinromance is 1 and $NPCName[$NPCNameList.indexOf("Robin")].trauma lte 20 ? "naked " : "")>>body warming the bed.
+<<set $robinbed to "theirs">>
+
+<<if $wraith and $wraith.state isnot "" and $wraithPrison and ($moonstate is "evening" and $hour gte 11 or $moonstate is "morning" and $hour lt 6)>>
+	You feel anxious, and your eyes dart over to the mirror.
+<</if>>
+<<endevent>>
+<br><br>
+
+<<if _skip isnot true>>
+	<<if $sleeptrouble is 1 and $controlled is 0>>
+		<<link [[Sleep for 10 hours|Robin Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+		<br>
+		<<link [[Sleep for 9 hours|Robin Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+		<br>
+	<</if>>
+
+	<<link [[Sleep for 8 hours|Robin Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 7 hours|Robin Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 6 hours|Robin Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 5 hours|Robin Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 4 hours|Robin Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 3 hours|Robin Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 2 hours|Robin Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 1 hour|Robin Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+	<br>
+	<<link [[Just sleep|Robin Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
+	<br><br>
+<<else>>
+	<<unset _skip>>
+<</if>>
+
 :: Orphanage
 <<set $outside to 0>><<set $location to "home">><<home_effects>><<effects>>
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<set _robin to statusCheck("Robin")>>
 
 You are in the main hall of the orphanage.
 
@@ -1184,22 +1455,43 @@ You are in the main hall of the orphanage.
 	<<if $renttime lte 0>>
 		"Pay your dues next time so we won't have to go through this again. Speaking of which..." <<He>> holds out <<his>> hand.
 		<<endevent>>
-		<<rentdue>>
+		<<if $robinfirstrentfight and ($baileypaychain lt 2 or $baileyOverdue gte 1)>>
+			<<rentduerobin 0>>
+		<<else>>
+			<<rentdue 0>>
+		<</if>>
 	<<else>>
 		"Pay your dues next time so we won't have to go through this again," <<he>> says before pinching your cheek painfully.<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
 		<br><br>
-		
+
 		Bailey walks back into <<his>> office. You rub your cheek as you trudge to your bedroom.
 		<br>
-		<<if $robinReunionScene is "dungeon">>
+		<<if $robinReunionScene is "dungeon" or $robinReunionScene is "dungeonRobin">>
 			<span class="blue"><i>Robin's probably worried sick about you. You should check on <<nnpc_him "Robin">> when you get the chance.</i></span>
 			<br>
 		<</if>>
 		<br>
-		
+
 		<<link [[Next|Bedroom]]>><<endevent>><</link>>
 		<br>
 	<</if>>
+<<elseif $robinmissing is "pillory" and !$robinPillory.known and $hour gte 7 and $hour lte 15>>
+	<<generatec1>><<person1>>
+	<<npc Robin 2>>
+
+	One of the younger orphans spots you enter the main hall as they pass by. "You're friends with Robin, right? <<person2>><<Hes>> been gone for a while," <<person1>><<he>> says.
+	"Where could <<person2>><<he>> have gone?"
+	<br><br>
+
+	<<person1>><<He>> bombards you with questions. Another orphan soon approaches you, and does the same.
+
+	"Is <<person2>><<he>> going to be okay? Where did <<he>> go?"
+	<br><br>
+
+	<<link [[Answer truthfully|Robin Pillory Truth]]>><</link>>
+	<br>
+	<<link [[Evade the question|Robin Pillory Evade]]>><</link>>
+
 <<elseif $home_gone gte 168 and $daystate isnot "night">>
 	<<generatey1>><<person1>>
 	You notice something on the wall. It's a missing person's poster with a picture of you on it. It hasn't been taken down, which means Bailey must be looking for you as well.
@@ -1230,10 +1522,15 @@ You are in the main hall of the orphanage.
 	<<link [[Next|Orphanage]]>><</link>>
 	<br>
 
-<<elseif $renttime lte 0>><<set $bus to "home">>
+<<elseif $renttime lte 0>>
+	<<set $bus to "home">>
 	A hand rests on your shoulder from behind. <span class="red">It's Bailey.</span>
 	<br><br>
-	<<rentdue>>
+	<<if $robinfirstrentfight and ($baileypaychain lt 2 or $baileyOverdue gte 1)>>
+		<<rentduerobin 0>>
+	<<else>>
+		<<rentdue 0>>
+	<</if>>
 <<elseif $christmas is 1 and $monthday is 25 and $christmas_gift is "clothes" and !$christmas_event_2 and $daystate isnot "night">>
 	<<set $christmas_event_2 to 1>>
 	<<pass 30>>
@@ -1252,7 +1549,7 @@ You are in the main hall of the orphanage.
 
 	<<link [[Next|Orphanage]]>><<endevent>><</link>>
 	<br>
-<<elseif $christmas is 1 and $monthday is 25 and $robinmissing isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $christmas_robin_gift_received is undefined and $hour gte 7>>
+<<elseif $christmas is 1 and $monthday is 25 and $robinmissing is 0 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $christmas_robin_gift_received is undefined and $hour gte 7>>
 	<<set $christmas_robin_gift_received to true>>
 	You spot a present laid under the tree with your name on it. It's from Robin.
 	<br><br>
@@ -1261,7 +1558,7 @@ You are in the main hall of the orphanage.
 
 	<<link [[Next|Orphanage]]>><</link>>
 	<br>
-<<elseif $christmas is 1 and $monthday is 25 and $robinmissing isnot 1 and $christmas_gift_robin_wrapped is 1 and $christmas_gift_robin_given is undefined and $daystate isnot "night">>
+<<elseif $christmas is 1 and $monthday is 25 and $robinmissing is 0 and $christmas_gift_robin_wrapped is 1 and $christmas_gift_robin_given is undefined and $daystate isnot "night">>
 	<<set $christmas_gift_robin_given to true>>
 	<<christmas_robin>>
 <<elseif $home_event is 1 and $hour gte 6 and $hour lte 21>>
@@ -1285,7 +1582,7 @@ and !$fromRobinRoom and _robin.cdquest is 2 and _robin.trauma lte 20 and !$robin
 		<<ind>><<link [[Find hacker (0:10)|Orphanage Hacker]]>><<pass 10>><</link>>
 		<br><br>
 	<</if>>
-	<<if $halloween is 1 and $robinmissing isnot 1 and $hour gte 16 and $hour lt 19 and $monthday is 31 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+	<<if $halloween is 1 and $robinmissing is 0 and $hour gte 16 and $hour lt 19 and $monthday is 31 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
 		<<if $halloween_robin_costume is "witch">>
 			You see Robin, dressed as a witch and surrounded by excited orphans.
 		<<elseif $halloween_robin_costume is "vampire">>
@@ -1305,7 +1602,7 @@ and !$fromRobinRoom and _robin.cdquest is 2 and _robin.trauma lte 20 and !$robin
 	<br><br>
 	<<officeicon>><<link [[Bailey's office (0:01)|Bailey's Office]]>><<pass 1>><</link>>
 	<br>
-	<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing isnot 1 and !$robinTraumaVisit>>
+	<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing is 0 and !$robinTraumaVisit>>
 		<<bedroomicon>><<link [[Bedroom (0:01)|Robin Trauma Visit]]>><<set $phase to 0>><<pass 1>><</link>>
 		<br>
 	<<elseif $kylar.timer.home gte 100 and $kylar.home is undefined>>
@@ -1408,7 +1705,7 @@ You celebrate Christmas with the other residents.
 	<<elseif $rng gte 71>>
 		A <<generatey1>><<person1>><<person>> passes a gift to a <<generatey2>><<person2>><<person>>. <<He>> looks delighted, but is patient enough to resist unwrapping it on the spot.
 	<<elseif $rng gte 61>>
-		<<if $robinmissing isnot 1>>
+		<<if $robinmissing is 0>>
 			Robin passes out small bags of snacks. A <<generatey1>><<person1>><<person>> keeps watch for Bailey.
 		<<else>>
 			A <<generate1>><<person1>><<person>> stares out the window. <<Hes>> worried about Robin.
@@ -1719,7 +2016,8 @@ The warmth feels wonderful on your bare skin.
 :: Bath Slime
 <<effects>>
 
-<<if $molestationstart is 1>><<set $molestationstart to 0>>
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
 	<<molested>>
 	<<controlloss>>
 	<<set $combat to 1>>
@@ -1736,11 +2034,15 @@ The warmth feels wonderful on your bare skin.
 	<<set $timer to 20>>
 <</if>>
 
-<<swarmeffects>><<if $tentacledisable is "f">><<effectstentacles>><</if>>
+<<swarmeffects>>
+<<if $tentacledisable is "f">>
+	<<effectstentacles>>
+<</if>>
 
-<<swarm>><<if $tentacledisable is "f">><<tentacles>><</if>>
-<<if $tentacledisable is "f">><<statetentacles>><</if>>
+<<swarm>>
 <<if $tentacledisable is "f">>
+	<<tentacles>>
+	<<statetentacles>>
 	<<actionsOmni>>
 <<else>>
 	<<swarmactions>>
@@ -1890,13 +2192,38 @@ Attitudes
 <br>
 
 :: Bedroom Bailey
-<<bedclotheson "bed">>
+<<effects>><<run statusCheck("Robin")>>
+<!-- Bailey catches you by surprise, no time to get dressed -->
 
-<<effects>>
+<<if $inRobinsRoom>>
+	Robin's bedroom door bursts open without warning. <span class="red">It's Bailey.</span>
+	<br><br>
 
-Your bedroom door bursts open without warning. <span class="red">It's Bailey.</span>
+	"You thought you could hide in Robin's room?" Bailey sneers.
+<<else>>
+	Your bedroom door bursts open without warning. <span class="red">It's Bailey.</span>
+<</if>>
+
+<<if $exposed gte 1>>
+	<<nnpc_He "Bailey">> looks over you briefly. "Put your clothes on," <<nnpc_he "Bailey">> says. <<nnpc_He "Bailey">> snaps <<nnpc_his "Bailey">> fingers. "Now."
+	You hastily throw on the clothes you had on before. <<bedclotheson "bed">>
+<</if>>
 <br><br>
-<<rentdue>>
+
+<<if $robinfirstrentfight>> <!-- the first robin fight has already happened -->
+	<<if !["sleep", "orphanage"].includes(_robin_location)>>
+		<<rentduerobin 0>>
+	<<else>>
+		<<rentduerobin 1>>
+	<</if>>
+<<else>>
+	<<if ["sleep", "orphanage"].includes(_robin_location) and $inRobinsRoom>>
+		<<rentdue 1>> <!-- Robin is in the room with the PC -->
+	<<else>>
+		<<rentdue 0>>
+	<</if>>
+<</if>>
+<<unset $inRobinsRoom>>
 
 :: Mirror
 <<effects>>
@@ -1978,7 +2305,7 @@ You reach out and pet the <<beasttype>>. <<bHe>> stretches into your hand and ya
 	<<neutral 1>>
 	<<molested>>
 	<<maninit>>
-	<<if $robinbed is 1 or $kylarbed is 1>>
+	<<if $robinbed isnot undefined or $kylarbed is 1>>
 		<<enable_rescue>>
 	<</if>>
 <</if>>
@@ -2023,7 +2350,7 @@ You reach out and pet the <<beasttype>>. <<bHe>> stretches into your hand and ya
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Bed]]>><</link>>
-<<elseif $robinbed is 1>>
+<<elseif $robinbed isnot undefined>>
 	Robin's eyes flutter open in response to your cry. Robin sees the <<person>> pawing at you, and kicks <<him>> in the face. <<He>> falls off the bed. "Fucking brat," <<he>> says, then turns to Bailey. "I want my money back."
 	<br><br>
 	Bailey gives <<him>> a level stare. "You got what you paid for. Not my fault you couldn't handle them."
@@ -2036,7 +2363,11 @@ You reach out and pet the <<beasttype>>. <<bHe>> stretches into your hand and ya
 	<br><br>
 	<<npcincr Robin dom 1>>
 	<<endevent>>
-	<<link [[Next|Bed]]>><</link>>
+	<<if $robinbed is "theirs">>
+		<<link [[Next|Robin Bed]]>><</link>>
+	<<else>>
+		<<link [[Next|Bed]]>><</link>>
+	<</if>>
 <<else>>
 	<<set $kylarDaily.sleepRape to true>>
 	Kylar's eyes snap open the moment you cry out. <<nnpc_He "Kylar">> lunges out of the bed, tackling the <<person>> to the floor. <<nnpc_He "Kylar">> pulls out a knife from
@@ -2110,9 +2441,9 @@ You reach out and pet the <<beasttype>>. <<bHe>> stretches into your hand and ya
 	"What?"
 	<br>
 	"I said
-	<<if $fameexhibitionism gte 600>>
+	<<if $fame.exhibitionism gte 600>>
 		strip. It's what you're famous for. Get on with it."
-	<<elseif $fameexhibitionism gte 200>>
+	<<elseif $fame.exhibitionism gte 200>>
 		strip. You've done it before. In much more public places. Get on with it."
 	<<elseif $exhibitionism lt 35>>
 		strip." The hacker's face softens. "Look, I don't 'get off' on this. I need to be sure."
@@ -2152,7 +2483,8 @@ You take off your clothes. <<if $exhibitionism gte 55>>Disappointingly, they<<el
 "What?"
 <br>
 They study your face for a long moment.
-<<if $hairlength gte 200>><<pass 5>>
+<<if $hairlength gte 200>>
+	<<pass 5>>
 	<br>
 	"Okay. Look, if- Wait! Nice try."
 	<br>
@@ -2266,7 +2598,8 @@ Your penis is locked inside the cage. Shaving around it will be a bit more trick
 	<br>
 <</if>>
 <<if $worn.genitals.name isnot "chastity belt">>
-	<<link [[Dye pubic hair->Dye pubic hair]]>><</link>><br>
+	<<link [[Dye pubic hair->Dye pubic hair]]>><</link>>
+	<br>
 <</if>>
 <<link [[Don't shave anything->Bathroom]]>><<clotheson>><<dontHideRevert>><</link>>
 <</if>>
@@ -2321,9 +2654,11 @@ You spread your legs and start carefully trimming your pubes. After a few minute
 
 <<set _ownedColours = $makeup.owned.hairdye.filter(x => x.count > 0)>>
 <<if _ownedColours.length == 0>>
-	You don't own any hair dyes. Maybe you should visit a cosmetics shop to buy some.<br>
+	You don't own any hair dyes. Maybe you should visit a cosmetics shop to buy some.
+	<br>
 <<else>>
-	What colour will it be?<br>
+	What colour will it be?
+	<br>
 	<<set _choice = _ownedColours[0].colour>>
 	<<for _i, _item range _ownedColours>>
 		<label><span class="grey-shadow"><span @class="'hair-' + _item.colour.replace(/ /g, '-')"><span class="colour-hair"><span style="color:#FD6064;"><<haircolourtext _item.colour>></span></span></span></span>&nbsp;<<print '<<radiobutton "_choice" "'+_item.colour+'" ' + (_choice is _item.colour ? "checked" : "") + '>>'>></label>
@@ -2339,8 +2674,10 @@ You spread your legs and start carefully trimming your pubes. After a few minute
 :: Dye pubic hair Finish
 <<effects>>
 
-You treat your most sensitive parts with petroleum jelly and then prepare the hair dye.<br>
-Using a small brush you carefully apply chemicals to your pubes and wait for them to soak in.<br>
+You treat your most sensitive parts with petroleum jelly and then prepare the hair dye.
+<br>
+Using a small brush you carefully apply chemicals to your pubes and wait for them to soak in.
+<br>
 <<arousal 100>>
 <br>
 After several minutes you rinse your private area with water and behold your <<genitals 2>> with <<haircolourtext $makeup.pbcolour>> pubic hair.
@@ -2546,7 +2883,7 @@ You climb onto your knees and remain there while bowing your head. The pair laug
 :: Sold Glare
 
 <<effects>>
-You glare at the <<person1>><<person>> and <<person2>><<person>> in turn, and don't look away when they look back. The pair laugh.
+You glare at the <<fullGroup>> in turn, and don't look away when they look back. The pair laugh.
 <br><br>
 "I think <<pshes>> got some thoughts of <<pher>> own," the <<person1>><<person>> says as <<he>> reaches forward and rips the gag from your mouth.
 <br><br>
diff --git a/game/overworld-town/loc-home/rent.twee b/game/overworld-town/loc-home/rent.twee
index 2a11d12420434a8b097d4b8ec1662b5b4abfdfe1..cdb3bac1ac025580664ff3de7b4cde4489efb1c6 100644
--- a/game/overworld-town/loc-home/rent.twee
+++ b/game/overworld-town/loc-home/rent.twee
@@ -1,60 +1,163 @@
 :: Widgets Rent [widget]
 <<widget "rentdue">>
+	<<npc Bailey>><<person1>>
+	<<set $_robinWasInRoom to _args[0]>>
+
+	"Time to pay up," <<he>> says.
+	<<if $baileydefeatedchain gte 3 or ($robinpaid is 1 and $robinromance gte 1 and $bus is "home" and $robinfirstrentfight isnot 1 and $baileyOverdue gte 14)>>
+		<<generateRole 1 0 "thug">><<generateRole 2 0 "thug">>
+		A rough-looking <<person2>><<person>> and <<person3>><<person>> stand next to <<person1>><<him>>.
+		The <<person2>><<person>> cracks <<his>> knuckles, and the <<person3>><<person>> grins darkly.
+	<<elseif $baileydefeatedchain gte 1>>
+		<<generateRole 1 0 "thug">>
+		A rough-looking <<person2>><<person>> stands next to <<person1>><<him>>.
+		<<person2>><<He>> cracks <<his>> knuckles.
+	<</if>>
+
+	<<if $_robinWasInRoom is 1>>
+		<br><br>
 
-<<npc Bailey>><<person1>>"Time to pay up," <<he>> says.
+		You look around, but Robin is nowhere to be found.
+		<br><br>
 
-<<if $baileydefeatedchain gte 3>>
-	<<generateRole 1 0 "thug">><<generateRole 2 0 "thug">>
-	A rough-looking <<person2>><<person>> and <<person3>><<person>> stand with <<person1>><<him>>. The <<person2>><<person>> cracks <<his>> knuckles, and the <<person3>><<person>> grins darkly.<<person1>>
-<<elseif $baileydefeatedchain gte 1>>
-	<<generateRole 1 0 "thug">>
-	A rough-looking <<person2>><<person>> stands with <<person1>><<him>>. <<person2>><<He>> cracks <<his>> knuckles.<<person1>>
+		"Don't bother, <<nnpc_hes "Robin">> being kept for safe keeping," Bailey sneers at you.
+	<</if>>
+
+	<<if $baileyOfficeSeduced is 1>>
+		<<unset $baileyOfficeSeduced>>
+		<<set $_rentSeduce to true>>
+	<</if>>
 	<br><br>
-<</if>>
 
-<<if $baileyOfficeSeduced is 1>>
-	<<unset $baileyOfficeSeduced>>
-	<<set _rentSeduceAlt to true>>
-<</if>>
+	<<if $money gte $rentmoney>>
+		<<link [[Pay|Rent Pay]]>><<set $phase to $_robinWasInRoom>><</link>>
+		<br>
+		<<link [[Refuse|Rent Refuse]]>><<def 1>><</link>>
+		<br>
+		<<if $baileyseduced isnot 1>>
+			<<if $promiscuity gte 15>>
+				<<link [[Seduce|Rent Seduce]]>><<set $phase to ($_rentSeduce ? 1 : 0)>><<trauma 3>><</link>><<promiscuous2>><<gtrauma>>
+				<br>
+			<<elseif $uncomfortable.prostituting is false>>
+				<<link [[Seduce|Rent Seduce]]>><<set $phase to ($_rentSeduce ? 1 : 0)>><<trauma 12>><<set $desperateaction to 1>><</link>><<promiscuous2>><<ggtrauma>>
+				<br>
+			<</if>>
+		<</if>>
+	<<else>>
+		<<person1>>
+		<<if $submissive lte 850>>
+			You stare at <<him>> in defiance. "I don't have your money. And wouldn't give it to you if I did."
+		<<elseif $submissive gte 1150>>
+			You hang your head, unable to pay and afraid of what's to come.
+		<<else>>
+			"I don't have it," you say, afraid of what's to come.
+		<</if>>
+		<br><br>
 
-<br><br>
+		<<rentnopay true>>
+	<</if>>
+	<<set $renttime to 7>><<set $rentday to $weekday>>
+<</widget>>
 
-<<if $money gte $rentmoney>>
+<<widget "rentduerobin">>
+	<<set $_robinInRoom to _args[0]>>
+	<<npc Bailey>><<person1>>
 
-	<<link [[Pay|Rent Pay]]>><</link>>
-	<br>
-	<<link [[Refuse|Rent Refuse]]>><<def 1>><</link>>
-	<br>
-	<<if $baileyseduced isnot 1>>
-		<<if $promiscuity gte 15>>
-			<<link [[Seduce|Rent Seduce]]>><<if _rentSeduceAlt>><<set $phase to 1>><</if>><<trauma 3>><</link>><<promiscuous2>><<gtrauma>>
-			<br>
-		<<elseif $uncomfortable.prostituting is false>>
-			<<link [[Seduce|Rent Seduce]]>><<if _rentSeduceAlt>><<set $phase to 1>><</if>><<trauma 12>><<set $desperateaction to 1>><</link>><<promiscuous2>><<ggtrauma>>
-			<br>
+	"Time to pay up," <<he>> says.
+	<<if $baileydefeatedchain gte 3>>
+		<<generateRole 1 0 "thug">><<generateRole 2 0 "thug">><<generateRole 3 0 "thug">>
+		A rough-looking <<person2>><<person>> and <<person3>><<person>> stand next to <<person1>><<him>>.
+		<<if $_robinInRoom>>
+			Behind them, a third <<person4>><<person>> walks in with a length of rope and rushes Robin. Robin tries to resist, but it's no use.
+		<<else>>
+			Behind them, a third <<person4>><<person>> stands, bringing Robin in with <<him>>. Robin has restraints on <<nnpc_his "Robin">> hands.
+		<</if>>
+		The <<person2>><<person>> cracks <<his>> knuckles, and the <<person3>><<person>> grins darkly.
+	<<elseif $baileydefeatedchain gte 1>>
+		<<generateRole 1 0 "thug">><<generateRole 2 0 "thug">>
+		A rough-looking <<person2>><<person>> and <<person3>><<person>> stand next to <<person1>><<him>>.
+		<<if $_robinInRoom>>
+			The <<person3>><<person>> walks in with a length of rope and rushes Robin. Robin tries to resist, but it's no use.
+			The <<person2>><<person>> cracks <<his>> knuckles.
+		<<else>>
+			The <<person2>><<person>> cracks <<his>> knuckles, and the <<person3>><<person>> grins darkly, bringing Robin in with <<him>>.
+			Robin has restraints on <<nnpc_his "Robin">> hands.
+		<</if>>
+	<<else>>
+		<<generateRole 1 0 "thug">>
+		A rough-looking <<person2>><<person>> stands next to <<person1>><<him>>.
+		<<if $_robinInRoom>>
+			The <<person2>><<person>> walks in with a length of rope and rushes Robin. Robin tries to resist, but it's no use.
+		<<else>>
+			The <<person2>><<person>> brings Robin in with <<him>>. Robin has restraints on <<nnpc_his "Robin">> hands.
 		<</if>>
 	<</if>>
-<<else>>
 
-	<<if $submissive lte 850>>
-		You stare at <<him>> in defiance. "I don't have your money. And wouldn't give it to you if I did."
-	<<elseif $submissive gte 1150>>
-		You hang your head, unable to pay and afraid of what's to come.
+	<br><br>
+	<<if $baileyOfficeSeduced is 1>>
+		<<unset $baileyOfficeSeduced>>
+	<</if>>
+	<<if $money gte $rentmoney>>
+		<<if $inRobinsRoom>>
+			<<link [[Pay|Rent Pay Robin]]>><<set $inRobinsRoom to true>><</link>>
+		<<else>>
+			<<link [[Pay|Rent Pay Robin]]>><</link>>
+		<</if>>
+		<br>
+		<<link [[Refuse|Rent Refuse Robin]]>><<def 1>><</link>>
+		<br>
 	<<else>>
-		"I don't have it," you say, afraid of what's to come.
+		<<set $baileypaychain to 0>>
+		<<if $submissive lte 850>>
+			You stare at <<him>> in defiance. "I don't have your money. And wouldn't give it to you if I did. Leave Robin out of this."
+		<<elseif $submissive gte 1150>>
+			You hang your head, unable to pay and afraid of what's to come. "I'm sorry, Robin."
+			<br><br>
+
+			"I-it's not your fault," Robin interjects.
+		<<else>>
+			"I don't have it," you say, afraid of what's to come for the both of you.
+			<br><br>
+
+			Robin looks terrified.
+		<</if>>
+		<br><br>
+
+		"That's okay," <<he>> says, smiling. "I've already made arrangements. I don't know what they intend for you two, and frankly I don't care."
+		<<He>> produces a hood and length of rope. "Hold still."
+		<br><br>
+
+		<<link [[Submit|Rent Intro]]>><<endevent>><<set $phase to 1>><</link>>
+		<br>
+		<<if $bus is "hospital">>
+			<<link [[Fight|Rent Hospital Fight Robin]]>><<set $fightstart to 1>><</link>>
+			<br>
+		<<else>>
+			<<link [[Fight|Rent Robin Fight]]>><<set $fightstart to 1>><</link>>
+			<br>
+		<</if>>
 	<</if>>
-	<br><br>
+	<<set $renttime to 7>><<set $rentday to $weekday>>
+<</widget>>
 
-	<<if $baileydefeatedchain gte 3 and $robinpaid is 1 and $bus is "home" and $debug is 1 and $robinRentTest is 1>>
-		Bailey is silent for a few seconds, before shrugging. "That's okay," <<he>> says. "I've learned my lesson. Trying to get value out of you is a fruitless endeavour."
+<<widget "rentnopay">>
+	<<set $baileypaychain to 0>>
+	<<set $_seduceAllowed to _args[0]>>
+	<<if $robinpaid is 1 and $robinromance is 1 and $bus is "home" and $robinfirstrentfight isnot 1 and ($baileydefeatedchain gte 3 or $baileyOverdue gte 14)>>
+		<<set $robinfirstrentfight to 1>>
+		Bailey is silent for a few seconds, before shrugging. "That's okay," <<he>> says.
+		"I've learned my lesson. Trying to get value out of you directly is fruitless."
 		<br><br>
 
-		On an unseen signal, the thugs advance on you. The <<person3>><<person>> reaches for you and you duck under <<his>> reach, but the <<person2>><<person>> grabs your arm. The <<person3>><<person>> grabs your other arm, and they hold you there.
+		On an unseen signal, the thugs advance on you.
+		The <<person3>><<person>> reaches for you. You duck under <<his>> arm, but the <<person2>><<person>> grabs yours.
+		The <<person3>><<person>> grabs your other arm, and they hold you there.
 		<br><br>
 
-		<<link [[Next|Rent Robin Fight]]>><<set $fightstart to 1>><<set $combatPhase to "talk">><<set $robinRentEvent to 1>><<set $timer to 6>><</link>>
+		<<link [[Next|Rent First Robin Fight]]>><<set $fightstart to 1>><<set $combatPhase to "talk">><<set $robinRentEvent to 1>><<set $timer to 5>><</link>>
 	<<else>>
-		"That's okay," <<he>> says, smiling. "I've already made arrangements. I don't know what they intend for you, and frankly I don't care." <<He>> produces a hood and length of rope. "Hold still."
+		"That's okay," <<he>> says, smiling. "I've already made arrangements. I don't know what they intend for you, and frankly I don't care."
+		<<He>> produces a hood and length of rope. "Hold still."
 		<br><br>
 
 		<<link [[Submit|Rent Intro]]>><<endevent>><</link>>
@@ -66,7 +169,7 @@
 			<<link [[Fight|Rent Fight]]>><<set $fightstart to 1>><</link>>
 			<br>
 		<</if>>
-		<<if $baileyseduced isnot 1>>
+		<<if $baileyseduced isnot 1 and $_seduceAllowed>>
 			<<if $promiscuity gte 15>>
 				<<link [[Seduce|Rent Seduce]]>><<trauma 3>><</link>><<promiscuous2>><<gtrauma>>
 				<br>
@@ -76,54 +179,132 @@
 			<</if>>
 		<</if>>
 	<</if>>
-<</if>>
-
-<<set $renttime to 7>><<set $rentday to $weekday>>
-
 <</widget>>
 
 <<widget "rentmod">>
-<<set $rentmoney to Math.floor($rentmoney * $rentmod)>>
-<<if $robinpaid is 1>>
-	<<set $rentmoney *= 2>>
-<</if>>
+	<<set $rentmoney to Math.floor($rentmoney * $rentmod)>>
+	<<if $robinpaid is 1>>
+		<<set $rentmoney *= 2>>
+	<</if>>
 <</widget>>
 
 <<widget "rentpay">>
-<<set $money -= $rentmoney>>
-Bailey snatches the money from your hand and starts counting. "Good," <<nnpc_he "Bailey">> says, satisfied. "You came through.
-<<set $baileydefeatedchain to 0>>
-<<unset $bailey_encroach>>
+	<<set $money -= $rentmoney>>
+	<<set $rentmoney to [10000,30000,50000,70000,100000,150000,200000][Math.clamp($rentstage,1,6)]>> <!-- note: clamping to 1 is intentional -->
+	<<rentmod>>
 
-<<if $rentstage is 1>>
-	<<set $rentmoney to 30000>><<rentmod>>
+	Bailey snatches the money from your hand and starts counting. "Good," <<nnpc_he "Bailey">> says, satisfied. "You came through.
+	<<if $rentstage is 1>>
+		Next week I want <span class="pink"><<printmoney $rentmoney true>></span>. You didn't think it would get any easier did you?"
+	<<else>>
+		Next week I want <span class="pink"><<printmoney $rentmoney true>></span>."
+	<</if>>
+	<br><br>
 
-	Next week I want <span class="pink"><<printmoney $rentmoney true>></span>. You didn't think it would get any easier did you?"
-<<elseif $rentstage is 2>>
-	<<set $rentmoney to 50000>><<rentmod>>
+	<<set $baileydefeatedchain to 0>>
+	<<set $baileypaychain++>>
+	<<unset $bailey_encroach>>
+	<<set $rentstage += 1>>
+	<<if $robinpaid>>
+		<<npcincr Robin trauma -7>>
+	<</if>>
+	<<set $baileyOverdue to 0>>
+<</widget>>
 
-	Next week I want <span class="pink"><<printmoney $rentmoney true>></span>."
-<<elseif $rentstage is 3>>
-	<<set $rentmoney to 70000>><<rentmod>>
+<<widget "rentRobinPunishment">>
+	You journey for some time until you feel that you're walking on grass. A small breeze flows by you. Another set of footsteps approach.
 
-	Next week I want <span class="pink"><<printmoney $rentmoney true>></span>."
-<<elseif $rentstage is 4>>
-	<<set $rentmoney to 100000>><<rentmod>>
+	<<if !$robinPunishments.includes("docks")>>
+		<<generate2>><<generate3>>
+		"Oh, <<nnpc_he "Robin">>'s cute. A perfect little travel companion," an unfamiliar <<person2>><<personsimple>>'s voice says.
+		<<if $NPCName[$NPCNameList.indexOf("Robin")].pronoun is $player.gender_appearance>>
+			You're not sure who they're referring to.
+		<</if>>
 
-	Next week I want <span class="pink"><<printmoney $rentmoney true>></span>."
-<<elseif $rentstage is 5>>
-	<<set $rentmoney to 150000>><<rentmod>>
+		"Hand over the cash," Bailey demands.
+		<br><br>
 
-	Next week I want <span class="pink"><<printmoney $rentmoney true>></span>."
-<<else>>
-	<<set $rentmoney to 200000>><<rentmod>>
+		"Can't believe you're making me do this when we're about to sail," a second <<person3>><<personsimple>>'s voice says.
+		<<robinPunishment "docks">>
+	<<else>>
+		"Hand over the cash," Bailey demands.
+		<br><br>
 
-	Next week I want <span class="pink"><<printmoney $rentmoney true>></span>."
-<</if>>
+		There is no response, save for the rustling of clothes.
+		<br><br>
 
-<br><br>
+		"Just hand it over already." Bailey sounds slightly unnerved.
+		<<robinPunishment "landfill">>
+	<</if>>
+	<br><br>
 
-<<set $rentstage += 1>>
+	You hear a rustle of paper.
+	<<if _robin.dom gte 60>>
+		"Let go of me!" Robin yells. "<<pShe>> needs me, stop it!"
+		<br><br>
+
+		The sounds of Robin's protests fade off into the distance.
+	<<else>>
+		"No, no!" Robin shrieks. "Let me go!"
+		<br><br>
+
+		The sounds of Robin crying fade off into the distance.
+	<</if>>
+	You're pulled elsewhere by Bailey.
+<</widget>>
+
+<<widget "rentEdenTrade">>
+	<<npc Eden>><<person1>>
+	You aren't left hanging there for long.
+	Your hood is yanked off your head as a<<if $syndromeeden gte 1>> familiar<</if>> <<personsimple>>'s voice appears beside you.
+
+	<<if $edenCagedEscape>>
+		"I told you I'd find you again," Eden growls as <<he>> pulls you to the ground. <<He>> doesn't untie you. "This time the lesson better stick."
+		<br><br>
+
+		You're roughly led through the woods, helpless to resist, until you finally reach the cabin. "Welcome home," Eden sneers.
+		<<He>> drags you towards the sleeping area, where a metal cage awaits.
+		<br><br>
+
+		<<link [[Next (0:30)|Eden Caged Intro]]>><<pass 30>><<set $phase to 2>><</link>>
+		<br>
+	<<elseif $edenfreedom gte 2 and $edendays gte 8>>
+		"I trusted you," Eden says as <<he>> cuts your bindings. You fall to the floor in a heap.
+		"This is what happens if you don't obey me. It's for your own protection." <<He>> pulls you to your feet. "Let's go home."
+		<br><br>
+
+		<<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>>
+		<br>
+	<<elseif $edenfreedom is 1 and $edendays gte 2>>
+		"I trusted you," Eden says as <<he>> cuts your bindings. You fall to the floor in a heap.
+		"This is what happens if you don't obey me. It's for your own protection." <<He>> pulls you to your feet. "Let's go home."
+		<br><br>
+
+		<<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>>
+		<br>
+	<<elseif $edenfreedom gte 1>>
+		"I knew you'd end up like this. The town is dangerous," Eden says, cutting your bindings. <<He>> catches you as you fall. "Let's go home."
+		<br><br>
+
+		<<He>> takes you back to <<his>> cabin.
+		<br><br>
+		<<endevent>>
+		<<link [[Next (0:30)|Eden Cabin]]>><<pass 30>><</link>>
+		<br>
+	<<else>>
+		<<if $hunterintro is 1>>
+			"I knew I'd get you back."
+		<<else>>
+			"I'm not used to my prey being so helpless. Not that I'm complaining."
+		<</if>>
+		<<He>> crept up on you without making a sound.
+		<br><br>
+
+		<<endevent>>
+
+		<<link [[Next|Forest Hunter Intro]]>><</link>>
+		<br>
+	<</if>>
 <</widget>>
 
 :: Rent Pay
@@ -140,10 +321,60 @@ Bailey snatches the money from your hand and starts counting. "Good," <<nnpc_he
 		<br>
 	<</if>>
 <<else>>
+	<<if $phase is 1>>
+		<<endevent>>
+		<<npc Robin>><<person1>>
+		You see Robin run up to you from around a corner as you exit <<his>> room. "You're okay!" <<He>> tackles you into a hug.
+		"Bailey took me away last night and I thought something awful was going to happen," <<he>> says before calming down.
+		<br><br>
+
+		You return the embrace before returning to your room.
+		<br><br>
+
+	<</if>>
 	<<link [[Next|Bedroom]]>><<endevent>><</link>>
 	<br>
 <</if>>
 
+:: Rent Pay Robin
+<<effects>>
+
+<<rentpay>>
+
+<<endevent>>
+<<npc "Robin">><<person1>>
+Robin hugs you softly after Bailey leaves. "I'm so sorry," <<he>> says.
+
+<<if $bus is "hospital">>
+	<br><br>
+
+	<<set $companion to "Robinrent">>
+	<<if $crime gte 1000>>
+		<<link [[Next|Hospital Arrest]]>><<pass 10>><<endevent>><</link>>
+		<br>
+	<<else>>
+		<<link [[Next|Hospital front]]>><<pass 10>><<endevent>><</link>>
+		<br>
+	<</if>>
+<<else>>
+	<<if $inRobinsRoom>>
+		<<He>> sits down on <<his>> bed. "That was scary."
+		<br><br>
+
+		After a moment to make sure Robin is okay, you leave the room and go back to the main hall.
+		<br><br>
+
+		<<link [[Next|Orphanage]]>><<endevent>><</link>>
+	<<else>>
+		<<He>> eventually leaves your bedroom. "If you need anything, just let me know."
+		<br><br>
+
+		<<link [[Next|Bedroom]]>><<endevent>><</link>>
+	<</if>>
+	<br>
+<</if>>
+<<unset $inRobinsRoom>>
+
 :: Rent Refuse
 <<effects>>
 
@@ -156,27 +387,33 @@ Bailey snatches the money from your hand and starts counting. "Good," <<nnpc_he
 <</if>>
 <br><br>
 
-<<if $baileydefeatedchain gte 3 and $robinpaid is 1 and $bus is "home" and $debug is 1 and $robinRentTest is 1>>
-	Bailey is silent for a few seconds, before shrugging. "That's okay," <<he>> says. "I've learned my lesson. Trying to get value out of you is a fruitless endeavour."
-	<br><br>
+<<rentnopay>>
 
-	On an unseen signal, the thugs advance on you. The <<person3>><<person>> reaches for you and you duck under <<his>> reach, but the <<person2>><<person>> grabs your arm. The <<person3>><<person>> grabs your other arm, and they hold you there.
-	<br><br>
+:: Rent Refuse Robin
+<<effects>><<set $baileypaychain to 0>>
 
-	<<link [[Next|Rent Robin Fight]]>><<set $fightstart to 1>><<set $combatPhase to "talk">><<set $robinRentEvent to 1>><<set $timer to 6>><</link>>
+<<if $submissive lte 850>>
+	You stare at <<him>> in defiance. "I'm not paying you. I don't care what you do to me, but leave Robin out of this."
+<<elseif $submissive gte 1150>>
+	"N-no," you stutter, surprised by your bravery. "I-I won't let you hurt either of us..."
 <<else>>
-	"That's okay," <<he>> says, smiling. "I've already made arrangements. I don't know what they intend for you, and frankly I don't care." <<He>> produces a hood and length of rope. "Hold still."
-	<br><br>
+	"The money isn't yours," you say. "Punish me however you want but leave <<person2>><<him>> out of this."
+	<<person1>>
+<</if>>
+<br><br>
+
+"That's okay," <<he>> says, smiling. "I've already made arrangements. I don't know what they intend for you two, and frankly I don't care."
+<<He>> produces a hood and length of rope. "Hold still."
+<br><br>
 
-	<<link [[Submit|Rent Intro]]>><<endevent>><</link>>
+<<link [[Submit|Rent Intro]]>><<set $phase to 1>><<endevent "phaseless">><</link>>
+<br>
+<<if $bus is "hospital">>
+	<<link [[Fight|Rent Hospital Fight Robin]]>><<set $fightstart to 1>><</link>>
+	<br>
+<<else>>
+	<<link [[Fight|Rent Robin Fight]]>><<set $fightstart to 1>><</link>>
 	<br>
-	<<if $bus is "hospital">>
-		<<link [[Fight|Rent Hospital Fight]]>><<set $fightstart to 1>><</link>>
-		<br>
-	<<else>>
-		<<link [[Fight|Rent Fight]]>><<set $fightstart to 1>><</link>>
-		<br>
-	<</if>>
 <</if>>
 
 :: Rent Seduce
@@ -191,7 +428,6 @@ Bailey snatches the money from your hand and starts counting. "Good," <<nnpc_he
 	"Can't I pay you some other way?" you ask, licking your lips. "I'll make it worth it."
 <</if>>
 <<promiscuity2>>
-<br><br>
 
 <<if $phase is 1>>
 	Bailey smirks. <<His>> cold hand snakes over your shoulder, around the back of your head, and <<he>> begins to stroke your hair.
@@ -267,105 +503,142 @@ Bailey snatches the money from your hand and starts counting. "Good," <<nnpc_he
 :: Rent Intro
 <<effects>>
 <<set $baileydefeatedchain to 0>><<set $soldCount += 1>>
+<<set _robin to statusCheck("Robin")>>
 <<unset $bailey_encroach>>
-<<npc Bailey>><<person1>>With your head covered by a hood and your arms bound behind your back you are led down a flight of stairs and along a tunnel. You trip a couple of times, prompting Bailey to drag you back to your feet and slap your face in anger.
-<<pass 20>>
+<<npc Bailey 1>>
+
+<<set _robinIsPresent to ($phase is 1)>>
+<<set _andRobin to (_robinIsPresent ? "and Robin" : "")>>
+
+With your head covered by a hood and your arms bound behind your back, you _andRobin are led down a flight of stairs and along a tunnel.
+You trip a couple of times, prompting Bailey to drag you back to your feet and slap your face in anger.
 <br><br>
 
-<<if $rentsale is 3>><<set $rentsale to 0>>
-	After journeying for some time you hear another set of footsteps.
-	<<generate2>><<person2>>"Hand <<phim>> over," says a <<personsimple>>'s voice.
+<<if _robinIsPresent>>
+	"Please, stop hurting <<phim>>!" Robin begs. Bailey ignores <<nnpc_him "Robin">>.
 	<br><br>
+<</if>>
+<<pass 20>>
 
-	"Money first," responds Bailey. "Will I get <<phim>> back?"
-	<br><br>
+<<if $rentsale is 3>>
+	<<set $rentsale to 0>><<generate2>><<person2>>
+	After journeying for some time you hear another set of footsteps.
+	<<if _robinIsPresent>>
+		"Hand them over," says a <<personsimple>>'s voice.
+		<br><br>
 
-	"You won't want <<phim>> when we're done."
-	<br><br>
+		"Money first," responds Bailey. "Will I get them back?"
+		<br><br>
 
-	You hear a rustle of paper before being dragged further along the tunnel.
-	<br><br>
+		"You won't want them when we're done."
+		<br><br>
+	<<else>>
+		"Hand <<phim>> over," says a <<personsimple>>'s voice.
+		<br><br>
 
-	<<link [[Next|Underground Intro]]>><<set $baileySold to true>><</link>>
-	<br>
-<<elseif $rentsale is 2>><<set $rentsale += 1>>
-	<<leash 21>><<generate2>><<generate3>><<person2>>
-	You journey for some time, until you hear the sound of engines up ahead. The sound echoes, becoming closer, until you hear it all around you. "Good stock," says an unfamiliar voice. "Would make a fine breeder."
-	<br>
+		"Money first," responds Bailey. "Will I get <<phim>> back?"
+		<br><br>
 
-	"The money," Bailey responds, impatient.
-	<br>
-	"Ah. Here." There's a rustle to one side, then someone tugs on your leash, pulling you forward.
-	<br>
-	"A pleasure," Bailey says, already walking away.
-	<br><br>
+		"You won't want <<phim>> when we're done."
+		<br><br>
+	<</if>>
 
-	"Watch the step," says the unfamiliar voice. Whatever you've stepped onto is rumbling. "Sit." You fumble around your knees, and find what feels like a bench. You sit, then hear the slam of doors, and a few moment later you lurch as the floor moves beneath you. You're in a vehicle.
+	You hear a rustle of paper before being dragged further along the tunnel.
 	<br><br>
-
-	<<link [[Next|Street Van Bailey]]>><<set $baileySold to true>><</link>>
+	<<if _robinIsPresent>>
+		<<link [[Next|Underground Intro]]>><<set $baileySold to true>><<set $phase to 1>><<endevent "phaseless">><</link>>
+	<<else>>
+		<<link [[Next|Underground Intro]]>><<set $baileySold to true>><</link>>
+	<</if>>
 	<br>
-<<elseif $rentsale is 1>><<set $rentsale += 1>>
-	After journeying for some time you emerge outside. You hear wind rustling through leaves. Bailey lifts you and hooks your bindings on something behind you, leaving you suspended in the air. "Don't go anywhere, you'll be picked up shortly," <<he>> says. You hear <<him>> walk away, leaving you alone.
-	<br><br>
-	<<endevent>>
-	<<npc Eden>><<person1>>
-	You aren't left hanging there for long. Your hood is yanked off your head as a<<if $syndromeeden gte 1>> familiar<</if>> <<personsimple>>'s voice appears beside you.
-
-	<<if $edenCagedEscape>>
-		"I told you I'd find you again," Eden growls as <<he>> pulls you to the ground. <<He>> doesn't untie you. "This time the lesson better stick."
+<<elseif $rentsale is 2>>
+	<<set $rentsale += 1>>
+	<<leash 21>>
+	<<if _robinIsPresent>>
+		You journey for some time until you feel solid concrete beneath your feet. Another set of footsteps approach.
+		You think you hear the rustle of an officer's belt.
 		<br><br>
 
-		You're roughly led through the woods, helpless to resist, until you finally reach the cabin. "Welcome home," Eden sneers. <<He>> drags you towards the sleeping area, where a metal cage awaits.
+		"Hand the suspect over," a voice commands.
 		<br><br>
 
-		<<link [[Next (0:30)|Eden Caged Intro]]>><<pass 30>><<set $phase to 2>><</link>>
-		<br>
-	<<elseif $edenfreedom gte 2 and $edendays gte 8>>
-		"I trusted you," Eden says as <<he>> cuts your bindings. You fall to the floor in a heap. "This is what happens if you don't obey me. It's for your own protection." <<He>> pulls you to your feet. "Let's go home."
+		"Cash first. No time behind bars." Bailey's anger is very apparent. "I want <<nnpc_him "Robin">> back in one piece."
 		<br><br>
 
-		<<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>>
-		<br>
-	<<elseif $edenfreedom is 1 and $edendays gte 2>>
-		"I trusted you," Eden says as <<he>> cuts your bindings. You fall to the floor in a heap. "This is what happens if you don't obey me. It's for your own protection." <<He>> pulls you to your feet. "Let's go home."
+		"Very well. We have other plans for this one anyway." You hear what sounds like the rustling of cash.
 		<br><br>
 
-		<<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>>
-		<br>
-	<<elseif $edenfreedom gte 1>>
-		"I knew you'd end up like this. The town is dangerous," Eden says, cutting your bindings. <<He>> catches you as you fall. "Let's go home."
+		Robin begins to cry. "I-I didn't do anything! Please, don't!" <<nnpc_His "Robin">> voice trails off. Bailey tugs you elsewhere.
+		<<robinPunishment "pillory">>
 		<br><br>
 
-		<<He>> takes you back to <<his>> cabin.
-		<br><br>
-		<<endevent>>
-		<<link [[Next (0:30)|Eden Cabin]]>><<pass 30>><</link>>
-		<br>
+		You continue for a while longer,
 	<<else>>
-		<<if $hunterintro is 1>>
-			"I knew I'd get you back."
-		<<else>>
-			"I'm not used to my prey being so helpless. Not that I'm complaining."
-		<</if>>
-		<<He>> crept up on you without making a sound.
-		<br><br>
+		You journey for some time,
+	<</if>>
+	until you hear the sound of engines up ahead. The sound echoes, becoming closer, until you hear it all around you.
+	"Good stock," says an unfamiliar voice. "Would make a fine breeder."
+	<br>
+	"The money," Bailey responds, impatient.
+	<br>
+	"Ah. Here." There's a rustle to one side, then someone tugs on your leash, pulling you forward.
+	<br>
+	"A pleasure," Bailey says, already walking away.
+	<br><br>
+
+	"Watch the step," says the unfamiliar voice. Whatever you've stepped onto is rumbling. "Sit."
+	You fumble around your knees, and find what feels like a bench.
+	You sit, then hear the slam of doors, and a few moment later you lurch as the floor moves beneath you. You're in a vehicle.
+	<br><br>
 
+	<<link [[Next|Street Van Bailey]]>><<set $baileySold to true>><</link>>
+	<br>
+<<elseif $rentsale is 1>>
+	<<set $rentsale += 1>>
+	<<if _robinIsPresent>>
+		<<rentRobinPunishment>>
 		<<endevent>>
+		<<npc Bailey 1>><<person1>>
+		<br><br>
 
-		<<link [[Next|Forest Hunter Intro]]>><</link>>
-		<br>
+		Your journey with Bailey continues.
+	<<else>>
+		After journeying for some time you emerge outside.
 	<</if>>
+	You hear wind rustling through leaves.
+	Bailey lifts you and hooks your bindings on something behind you, leaving you suspended in the air.
+	"Don't go anywhere, you'll be picked up shortly," <<he>> says. You hear <<him>> walk away, leaving you alone.
+	<br><br>
+
+	<<endevent>>
+	<<rentEdenTrade>>
 <<else>>
 	<<set $rentsale to 1>>
-
-	After journeying for some time you hear another set of footsteps. <<generate2>><<person2>>"This is the merchandise?" says a <<personsimple>>'s voice.
+	<<generate2>><<person2>>
+	After journeying for some time you hear another set of footsteps. "This is the merchandise?" says a <<personsimple>>'s voice.
+	<br><br>
+	<<if _robinIsPresent>>
+		"No, I'm just taking my <<print (_robin.pronoun is $player.gender_appearance ? (_robin.pronoun is "m" ? "boys" : "girls") : "kids")>> for a walk,"
+	<<else>>
+		"No, I'm just taking my <<girl>> for a walk,"
+	<</if>>
+	says Bailey, <<person1>><<his>> temper barely concealed beneath the sarcasm.
+	"Just give me the cash. And I want them back in one piece, you're not paying enough..."
 	<br><br>
 
-	"No, I'm just taking my <<girl>> for a walk," says Bailey, <<nnpc_his "Bailey">> temper barely concealed beneath the sarcasm. "Just give me the cash. And I want it back in one piece, you're not paying enough..." <<nnpc_He "Bailey">> presses something against your mouth and your consciousness fades.
+	<<if _robinIsPresent>>
+		<<if _robin.dom lte 50>>
+			"Please, let us go! We didn't do anything-"
+		<<else>>
+			"Wait! Let <<phim>> go! Please don't hurt my <<girlfriend>>-"
+		<</if>>
+		Robin's voice suddenly becomes muffled, and to your alarm, you hear <<nnpc_him "Robin">> fall to the ground soon after.
+		<br><br>
+	<</if>>
+	A moment later, you feel someone press something against your mouth, and your consciousness fades. <<arousal 6000>><<gggarousal>>
 	<br><br>
-	<<arousal 6000>>
-	<<link [[Next|Danube Meal]]>><<endevent>><</link>>
+
+	<<link [[Next|Danube Meal]]>><<endevent>><<set $phase to (_robinIsPresent ? 1 : 0)>><</link>>
 	<br>
 <</if>>
 
@@ -386,9 +659,10 @@ Bailey snatches the money from your hand and starts counting. "Good," <<nnpc_he
 <<effects>>
 <<effectsman>><<man>>
 
-<<if $phase is 1>><<set $phase to 2>>
-Orphans arrive to watch the fight, drawn by the noise.
-<br><br>
+<<if $phase is 1>>
+	<<set $phase to 2>>
+	Orphans arrive to watch the fight, drawn by the noise.
+	<br><br>
 <</if>>
 
 <<stateman>>
@@ -405,13 +679,189 @@ Orphans arrive to watch the fight, drawn by the noise.
 	<span id="next"><<link [[Next|Rent Fight]]>><</link>></span><<nexttext>>
 <</if>>
 
+:: Rent Robin Fight
+<<set _robin to statusCheck("Robin")>>
+<<if $fightstart is 1>>
+	<<if $baileydefeatedchain gte 3>>
+		<<set $enemyno to 3>>
+		<<set $enemynomax to 3>>
+	<<elseif $baileydefeatedchain gte 1>>
+		<<set $enemyno to 2>>
+		<<set $enemynomax to 2>>
+	<<else>>
+		<<set $enemyno to 1>>
+		<<set $enemynomax to 1>>
+	<</if>>
+	<<set $fightstart to 0>>
+
+	<<neutral 1>>
+
+	<<maninit>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+	"Keep the other one under control, one of you," Bailey says. The <<personselect $enemynomax>><<person>> nods and grabs at Robin,
+	while Bailey returns <<person1>><<his>> gaze to you.
+	<<set $phase to 1>>
+
+	<<if _robin.dom gte 80>>
+		<<set $timer to 4>>
+	<<elseif _robin.dom gte 60>>
+		<<set $timer to 3>>
+	<<elseif _robin.dom gte 40>>
+		<<set $timer to 2>>
+	<<else>>
+		<<set $timer to 1>>
+	<</if>>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<if $phase is 1>>
+	<<set $phase to 2>>
+	<br><br>
+	Orphans arrive to watch the fight, drawn by the noise.
+	<br><br>
+<</if>>
+
+<<personselect $enemynomax>>
+<<if $timer gt 1>>
+	<span class="green">
+	<<if $rng gte 81>>
+		Robin struggles in <<nnpc_his "Robin">> restraints.
+	<<elseif $rng gte 61>>
+		Robin tells you not to give up.
+	<<elseif $rng gte 41>>
+		Robin is kicking at the <<person>>'s heels.
+	<<elseif $rng gte 21>>
+		Robin tells you not to worry about <<nnpc_him "Robin">>.
+	<<else>>
+		Robin bites the <<person>>'s hand holding <<nnpc_him "Robin">>.
+	<</if>></span>
+<<elseif $timer is 1>>
+	The <<person>> manages to wrap <<his>> arm around Robin's throat. <span class="red">Robin cries out in pain.</span>
+<<else>>
+	<span class="red">
+	<<if $rng gte 81>>
+		The <<person>> has Robin in a stranglehold.
+	<<elseif $rng gte 61>>
+		You can hear Robin choking.
+	<<elseif $rng gte 41>>
+		The <<person>> spits at Robin's eye while strangling <<nnpc_him "Robin">>.
+	<<elseif $rng gte 21>>
+		Robin tries to surrender, but the <<person>> doesn't lighten up.
+	<<else>>
+		The <<person>> punches Robin while choking <<nnpc_him "Robin">>.
+	<</if>>
+	</span>
+	<<npcincr Robin trauma 2>><<grtrauma true>>
+<</if>>
+<br><br>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Rent Robin Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Rent Robin Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Rent Robin Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Rent Robin Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Rent Robin Fight Finish
+<<effects>>
+<<set _robin to statusCheck("Robin")>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>><<set $baileydefeatedlewd += 1>><<set $baileydefeatedchain += 1>><<earnFeat "Bailey's Trouble Maker">>
+
+	<<person1>>One of the watching orphans giggles. Bailey spins to find the culprit, but another laughs behind <<him>>.
+	Soon the whole room is filled with laughter. <<He>> looks back at you. "You'll pay for this," <<he>> says, before storming from the room.
+	<br><br>
+
+	<<if $baileydefeatedchain gte 2>>
+		The <<person2>><<person>> slinks out after <<person1>><<him>>.
+		<br><br>
+	<</if>>
+	You walk over to Robin and undo <<nnpc_his "Robin">> bindings. <<nnpc_he "Robin">> pulls you into a hug, "Thank you, my hero!"
+	<br><br>
+
+	<<if _robin.lust gte 60>>
+		With a peck on your lips, Robin walks away.
+	<<else>>
+		With a peck on your cheek, Robin walks away.
+	<</if>>
+	<br><br>
+
+	The orphans cheer your defeat of the tyrant. <<He>> will be back, but for now you're in the clear.
+	<<greb>><<ghope>><<reb 1>><<hope 1>><<ltrauma>><<lstress>><<trauma -6>><<stress -12>>
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<link [[Next|Bedroom]]>><</link>>
+<<elseif $enemyhealth lte 0>>
+	<<set $baileydefeated += 1>><<set $baileydefeatedchain += 1>>
+
+	<<person1>><<He>> backs off for a moment, surprised by your aggression and nursing a bruise.
+	<<He>> notices the crowd formed around the hall. "You'll pay for this. Mark my words." <<He>> storms out.
+	<br><br>
+
+	<<if $baileydefeatedchain gte 2>>
+		The <<person2>><<person>> slinks out after <<person1>><<him>>.
+		<br><br>
+	<</if>>
+	You walk over to Robin and undo <<nnpc_his "Robin">> bindings. <<nnpc_he "Robin">> pulls you into a hug, "Thank you, my hero!"
+	<br><br>
+
+	<<if _robin.lust gte 60>>
+		With a peck on your lips, Robin walks away.
+	<<else>>
+		With a peck on your cheek, Robin walks away.
+	<</if>>
+	<br><br>
+
+	Bailey's departure lifts a weight from the watching orphans, who cheer your defeat of the tyrant. <<He>> will be back, but for now you're in the clear.
+	<<greb>><<ghope>><<reb 1>><<hope 1>><<ltrauma>><<lstress>><<trauma -6>><<stress -12>>
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<link [[Next|Bedroom]]>><</link>>
+
+<<else>>
+	<<set $baileydefeatedchain to 0>>
+	<<unset $bailey_encroach>>
+
+
+	You fall to the ground, too hurt to move.
+	Robin struggles, until Bailey hits <<nnpc_him "Robin">> hard on the head. <<nnpc_He "Robin">> collapses beside you.
+	<<lreb>><<reb -1>>
+	<br><br>
+
+	<<set $upperoff to 0>>
+	<<set $loweroff to 0>>
+	<<set $underloweroff to 0>>
+	<<set $underupperoff to 0>>
+	<<endcombat>>
+
+	<<link [[Next|Rent Intro]]>><<endevent>><<set $phase to 1>><</link>>
+<</if>>
+
 :: Rent Fight Finish
 <<effects>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>><<set $baileydefeatedlewd += 1>><<set $baileydefeatedchain += 1>><<earnFeat "Bailey's Trouble Maker">>
 
-	<<person1>>One of the watching orphans giggles. Bailey spins to find the culprit, but another laughs behind <<him>>. Soon the whole room is filled with laughter. <<He>> looks back at you. "You'll pay for this," <<he>> says, before storming from the room.
+	<<person1>>One of the watching orphans giggles. Bailey spins to find the culprit, but another laughs behind <<him>>.
+	Soon the whole room is filled with laughter. <<He>> looks back at you. "You'll pay for this," <<he>> says, before storming from the room.
 	<br><br>
 
 	<<if $baileydefeatedchain gte 2>>
@@ -430,7 +880,8 @@ Orphans arrive to watch the fight, drawn by the noise.
 <<elseif $enemyhealth lte 0>>
 	<<set $baileydefeated += 1>><<set $baileydefeatedchain += 1>>
 
-	<<person1>><<He>> backs off for a moment, surprised by your aggression and nursing a bruise. <<He>> notices the crowd formed around the hall. "You'll pay for this. Mark my words." <<He>> storms out.
+	<<person1>><<He>> backs off for a moment, surprised by your aggression and nursing a bruise.
+	<<He>> notices the crowd formed around the hall. "You'll pay for this. Mark my words." <<He>> storms out.
 	<br><br>
 
 	<<if $baileydefeatedchain gte 2>>
@@ -448,8 +899,8 @@ Orphans arrive to watch the fight, drawn by the noise.
 	<<link [[Next|Bedroom]]>><</link>>
 
 <<else>>
-<<set $baileydefeatedchain to 0>>
-<<unset $bailey_encroach>>
+	<<set $baileydefeatedchain to 0>>
+	<<unset $bailey_encroach>>
 
 
 	You fall to the ground, too hurt to move.
@@ -465,10 +916,11 @@ Orphans arrive to watch the fight, drawn by the noise.
 	<<link [[Next|Rent Intro]]>><</link>>
 <</if>>
 
-:: Rent Robin Fight
+:: Rent First Robin Fight
 <<if $fightstart is 1>>
 	<<set $fightstart to 0>>
 	<<set $enemyno to 1>>
+	<<set $head to "grappled">>
 	<<set $leftarm to "grappled">><<set $rightarm to "grappled">><<set $NPCList[0].lefthand to "arms">><<set $NPCList[0].righthand to "arms">>
 	<<neutral 1>>
 
@@ -483,19 +935,17 @@ Orphans arrive to watch the fight, drawn by the noise.
 <<person1>>
 <<if $combatPhase is "talk">>
 	<<switch $timer>>
-		<<case 5>>
-			Bailey stares at you.
 		<<case 4>>
-			Bailey turns and walks away.
+			Bailey stares at you.
 		<<case 3>>
-			Bailey walks down the hall and turns a corner, out of sight.
+			Bailey turns and walks away.
 		<<case 2>>
-			You hear Bailey opening a door.
+			Bailey walks down the hall and turns a corner, out of sight.
 		<<case 1>>
 			You hear Bailey say something, <span class="purple">followed by a <<nnpc_gendery "Robin">> screaming</span>.
 		<<default>>
 			Bailey walks back from the hallway, <span class="red">dragging Robin by <<nnpc_his "Robin">> hair</span>.
-			<<set $combatPhase to "Robin">><<set $timer to 4>><<set $baileySpoke to 0>>
+			<<set $combatPhase to "Robin">><<set $timer to 2>><<set $baileySpoke to 0>>
 	<</switch>>
 	<br>
 	<span class="red">The <<person2>><<person>> and <<person3>><<person>> hold you firm.</span>
@@ -529,7 +979,7 @@ Orphans arrive to watch the fight, drawn by the noise.
 					"You see?" Bailey says, looking at Robin. "<<pShe>> didn't pay the price, so you will."
 				<</if>>
 		<</switch>>
-		<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 1 or $NPCName[$NPCNameList.indexOf("Robin")].dom lte 30>>
+		<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20 or $NPCName[$NPCNameList.indexOf("Robin")].dom lte 30>>
 			<<print either("Robin stares at you with teary eyes.","Robin sniffles.","Robin feebly struggles in Bailey's grip.","Robin reaches for you.")>>
 		<<else>>
 			<<print either("Robin holds a brave face.","Robin grits <<nnpc_his \"Robin\">> teeth.","Robin struggles in Bailey's grip.","Robin almost wrenches <<nnpc_himself \"Robin\">> from Bailey's grasp.")>>
@@ -555,13 +1005,11 @@ Orphans arrive to watch the fight, drawn by the noise.
 		Robin desperately shakes <<nnpc_his "Robin">> head.
 		<<set $combatPhase to "still">><<set $timer to 2>>
 	<<elseif $timer is 1>>
-		Bailey pretends to check <<his>> watch. "I'm a busy <<personsimple>>. If you won't pay up, I'm leaving."
+		Bailey pretends to check <<his>> watch. "I'm a busy <<personsimple>>. If you won't <i>pay up</i>, I'm leaving."
 		<br>
 		<span class="red">The <<person2>><<person>> and <<person3>><<person>> hold you firm.</span>
 	<<else>>
 		"I'm done here," Bailey scoffs. "If you didn't want to pay for <<nnpc_him "Robin">>, you shouldn't have wasted my time in the first place."
-		<br><br>
-		<span class="red">Bailey walks out of the orphanage, still dragging Robin behind <<him>>. The thugs hold you firm.</span>
 		<<set $finish to 1>><<set _fin to 1>>
 	<</if>>
 <<elseif $combatPhase is "still">>
@@ -576,49 +1024,116 @@ Orphans arrive to watch the fight, drawn by the noise.
 		<span class="red">The <<person2>><<person>> and <<person3>><<person>> hold you firm.</span> The <<person2>><<persons>> grip tightens.
 	<<else>>
 		Bailey scowls. "I'm done here. If you didn't want to pay for <<nnpc_him "Robin">>, you shouldn't have wasted my time in the first place."
-		<br><br>
-		<span class="red">Bailey walks out of the orphanage, still dragging Robin behind <<him>>. The thugs hold you firm.</span>
 		<<set $finish to 1>><<set _fin to 1>>
 	<</if>>
 <</if>>
 <br><br>
 <<if _fin isnot 1>>
-	<span class="orange">TIMER IS $timer</span> | <span class="orange">COMBAT PHASE IS "$combatPhase"</span>
-	<br><br>
 	<<actionsman>>
 <</if>>
 
 <<if $combatPhase is "pay" and $speechpay is 1>>
-	<span id="next"><<link [[PAYMENT|Rent Robin Fight Finish]]>><<set $phase to "pay">><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Rent First Robin Fight Finish]]>><<endevent>><<set $phase to "pay">><</link>></span><<nexttext>>
 <<elseif $combatPhase is "still" and _defiance is undefined>>
-	<span id="next"><<link [[STILL|Rent Robin Fight Finish]]>><<set $phase to "still">><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Rent First Robin Fight Finish]]>><<endevent>><<set $phase to "still">><</link>></span><<nexttext>>
 <<elseif $finish is 1>>
-	<span id="next"><<link [[FINISH|Rent Robin Fight Finish]]>><<set $phase to "finish">><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Rent First Robin Fight Finish]]>><<endevent>><<set $phase to "finish">><</link>></span><<nexttext>>
 <<else>>
-	<span id="next"><<link [[Next|Rent Robin Fight]]>><</link>></span><<nexttext>>
-	<br>
-	<<link [[Let Robin get sold|Rent Robin Fight Finish]]>><<set $finish to 1>><</link>><<gstress>>
+	<span id="next"><<link [[Next|Rent First Robin Fight]]>><</link>></span><<nexttext>>
 <</if>>
-<br><br><br><br>
 <<turnend>>
 
-:: Rent Robin Fight Finish
-<!-- Unfinished and unpolished. -->
-<!-- TODO: clean up this passage, add events that account for traumatized + romanced Robin / trauma variants to Robin romance events -->
+:: Rent First Robin Fight Finish
 <<effects>>
+<<unset $robinRentEvent>>
+<<set _robin to statusCheck("Robin")>>
+<<npc Robin 1>><<person1>>
+
 <<if $phase is "pay">>
+	Bailey lets go of Robin, who runs up to and embraces you. <<He>> sobs softly.
+	<br><br>
 	<<rentpay>>
-	Robin hugs you, sobbing softly.
+
+	Bailey walks off, and Robin continues clinging to you.
+	<<if _robin.trauma gte 40>>
+		"I th-thought..." <<he>> chokes up and holds you tighter.
+	<<else>>
+		"I thought I was going to lose you," <<he>> says after a long moment.
+	<</if>>
 	<br><br>
-	<<link [[Next|Orphanage]]>><<endcombat>><<clotheson>><</link>>
+
+	You gently hold <<his>> hand, and give <<him>> a comforting kiss on the forehead.
+	<<takeHandholdingVirginity "Robin">>
+	<br><br>
+
+	Robin manages to calm down, the tears ebbing away.
+	<<if _robin.dom gte 30>>
+		"I need to become stronger..." <<he>> whispers under <<his>> breath, shaking <<his>> head.
+	<</if>>
+	"Thank you. For everything," <<he>> says. <<He>> eventually releases <<his>> embrace and goes back towards <<his>> room.
+	<br><br>
+
+	<<robinRentUnsafeMessage>>
+
+	<<endcombat>><<clotheson>>
+
+	<<link [[Next|Orphanage]]>><</link>>
 <<elseif $phase is "still">>
-	The thugs drag you away. Bailey comes by eventually.
+	The thugs drag you away. You hear Robin crying for you. <<His>> cries eventually fade away as you leave the orphanage. You are met face to face with Bailey.
+	<br><br>
+
+	<<npc Bailey 2>><<person2>>
+	"Now was that so hard?" Bailey sneers as <<he>> covers your head and binds your arms. "You saved your little friend. This time."
 	<br><br>
-	<<link [[Next|Rent Intro]]>><<endcombat>><<clotheson>><</link>>
+
+	<<robinRentUnsafeMessage>>
+
+	<<endcombat>><<clotheson>>
+
+	<<link [[Next|Rent Intro]]>><</link>>
 <<else>>
-	Bailey drags Robin away. You struggle against the thugs' grip, but they don't let go until Robin and Bailey are far out of sight.
-	<br>
-	Robin doesn't actually get punished because this is a debug passage, but in the real thing, something terrible would happen. Maybe the docks, maybe something new.
+	<<robinPunishment "mansion">>
+	Bailey drags Robin away. You struggle against the thugs' grip, but can't break free.
+	<br><br>
+
+	Eventually Bailey returns, and sneers at you. "Since I'm so generous, this will be a warning. Get me my money, or <<he>>'ll pay the price."
 	<br><br>
-	<<link [[Next|Orphanage]]>><<endcombat>><<clotheson>><</link>>
+
+	<<robinRentUnsafeMessage>>
+
+	<<endcombat>><<clotheson>>
+
+	<<link [[Next|Orphanage]]>><</link>>
+<</if>>
+
+:: Rent First Robin SV
+/* fake passage for the Scene Viewer */
+<br>
+
+You are in the main hall of the orphanage.
+<<if $christmas is 1 and $monthday is 25 and $daystate isnot "night">>
+	The room is alive with festive merriment.
+<<else>>
+	<<if $daystate is "day">>
+	A couple of orphans on cleaning duty sweep the floor.
+	<<elseif $daystate is "dusk">>
+	You hear hushed voices.
+	<<elseif $daystate is "dawn">>
+		<<if $schoolday is 1>>
+		The orphans are heading off to school.
+		<<else>>
+		The orphans are leaving to find work.
+		<</if>>
+	<<elseif $daystate is "night">>
+	The orphans must be asleep.
+	<</if>>
+<</if>>
+<br><br>
+
+A hand rests on your shoulder from behind. <span class="red">It's Bailey.</span>
+<br><br>
+<<if $robinfirstrentfight and ($baileypaychain lt 2 or $baileyOverdue gte 1)>>
+	<<rentduerobin 0>>
+<<else>>
+	<<rentdue 0>>
 <</if>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-home/widgets.twee b/game/overworld-town/loc-home/widgets.twee
index dfb6464c74527cd43ab69cd7d0581c4421e01fd1..d9e73482b3a545de3f1d0c030abdbed5df21edeb 100644
--- a/game/overworld-town/loc-home/widgets.twee
+++ b/game/overworld-town/loc-home/widgets.twee
@@ -22,7 +22,7 @@
 		<</if>>
 	<</if>>
 <<else>>
-	<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing isnot 1 and !$robinTraumaVisit>>
+	<<if $hour gte 18 and $hour lte 20 and $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40 and $robinmissing is 0 and !$robinTraumaVisit>>
 		<<doubledoorsicon>><<link [[Leave orphanage (0:01)|Robin Trauma Visit]]>><<set $phase to 2>><<pass 1>><</link>>
 	<<else>>
 		<<doubledoorsicon>><<link [[Leave orphanage (0:01)|Domus Street]]>><<pass 1>><</link>>
@@ -37,3 +37,74 @@
 	<<set $home_gone to 0>>
 <</if>>
 <</widget>>
+
+<<widget "slime_wake_home">>
+	<<set $slimeWake to 0>>
+	<<set _newLocations to ["Residential alleyways", "Commercial alleyways", "Park", "Industrial alleyways"]>>
+	<<set _newLocation to _newLocations[random(0,3)]>>
+	<<set $eventskip to 1>><<set $slimeSleepEvent to 3>>
+	<<if $hour lt 24 and $hour gt 12>>
+		<<set $slimeSleepEvent += 1>>
+	<</if>>
+	You wake up in a confused and disoriented state. The last thing you recall is getting into bed <<if $robinbed is "theirs">>with Robin<<else>>like normal<</if>>. However, you're clearly not in it anymore. You have a feeling that the slime in your ear is involved in some way.
+	<br><br>
+	<<set _coveredIn to "">>
+	<<if random(0,100) gt 80>>
+		<<set _coveredIn to "slime">>
+		<<if $player.penisExist and $player.virginity.penile isnot true and !$worn.genitals.type.includes("chastity")>>
+			<<set $player.bodyliquid.penis.goo += random(1,3)>>
+		<</if>>
+		<<if $player.vaginaExist and $player.virginity.vaginal isnot true and !$worn.genitals.type.includes("chastity")>>
+			<<set $player.bodyliquid.vagina.goo += random(1,3)>>
+		<</if>>
+		<<if $player.virginity.anal isnot true and $worn.genitals.anal_shield isnot 1 and $analdisable is "f">>
+			<<set $player.bodyliquid.anus.goo += random(1,3)>>
+		<</if>>
+		<<if $player.virginity.oral isnot true>>
+			<<set $player.bodyliquid.mouth.goo += random(1,3)>>
+		<</if>>
+		<<set $player.bodyliquid.hair.goo += random(1,3)>>
+		<<set $player.bodyliquid.face.goo += random(1,3)>>
+		<<set $player.bodyliquid.neck.goo += random(1,3)>>
+		<<set $player.bodyliquid.chest.goo += random(1,3)>>
+		<<set $player.bodyliquid.leftarm.goo += random(1,3)>>
+		<<set $player.bodyliquid.rightarm.goo += random(1,3)>>
+		<<set $player.bodyliquid.thigh.goo += random(1,3)>>
+		<<set $player.bodyliquid.feet.goo += random(1,3)>>
+	<</if>>
+	<<if random(0,100) gt 80>>
+		<<if _coveredIn is "slime">>
+			<<set _coveredIn += " and semen">>
+		<<else>>
+			<<set _coveredIn to "semen">>
+		<</if>>
+		<<if $player.penisExist and $player.virginity.penile isnot true and !$worn.genitals.type.includes("chastity")>>
+			<<set $player.bodyliquid.penis.semen += random(1,3)>>
+		<</if>>
+		<<if $player.vaginaExist and $player.virginity.vaginal isnot true and !$worn.genitals.type.includes("chastity")>>
+			<<set $player.bodyliquid.vagina.semen += random(1,3)>>
+		<</if>>
+		<<if $player.virginity.anal isnot true and $worn.genitals.anal_shield isnot 1 and $analdisable is "f">>
+			<<set $player.bodyliquid.anus.semen += random(1,3)>>
+		<</if>>
+		<<if $player.virginity.oral isnot true>>
+			<<set $player.bodyliquid.mouth.semen += random(1,3)>>
+		<</if>>
+		<<set $player.bodyliquid.hair.semen += random(1,3)>>
+		<<set $player.bodyliquid.face.semen += random(1,3)>>
+		<<set $player.bodyliquid.neck.semen += random(1,3)>>
+		<<set $player.bodyliquid.chest.semen += random(1,3)>>
+		<<set $player.bodyliquid.leftarm.semen += random(1,3)>>
+		<<set $player.bodyliquid.rightarm.semen += random(1,3)>>
+		<<set $player.bodyliquid.thigh.semen += random(1,3)>>
+		<<set $player.bodyliquid.feet.semen += random(1,3)>>
+	<</if>>
+	<<if _coveredIn isnot "">>
+		<<set $slimeSleepEvent += 2>>
+		On top of this predicament, you find yourself covered in <<print _coveredIn>>. If this was the slime's doing, it clearly had its fun with your body while you slept.
+		<br><br>
+	<</if>>
+	Having a look round your surroundings, you think that you've somehow been relocated to the <<print _newLocation.toLocaleLowerCase()>>.
+	<br><br>
+	<<link [[Next|_newLocation]]>><</link>>
+<</widget>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-hospital/appointments.twee b/game/overworld-town/loc-hospital/appointments.twee
index 4e64a0c4221f6497deae8a96e094a552e78abc0e..72d1f1cfec740ada9f6629376159ec0325f3cba0 100644
--- a/game/overworld-town/loc-hospital/appointments.twee
+++ b/game/overworld-town/loc-hospital/appointments.twee
@@ -26,7 +26,7 @@ You knock on the door, and hear <<if $hospitalintro is 0>>a <<personsimple>><<el
 
 		You wonder what <<he>> means by "invasive". <<He>> interrupts your musing.
 	<</if>>
-	
+
 	"<span class="gold">I'd like to prescribe some medication. I'll have it sent to your home</span>." <<He>> starts filling out a form, but doesn't stop speaking. "There's something else I'd like to try. Please, sit back and relax."
 	<br><br>
 
@@ -165,7 +165,7 @@ You knock on the door, and hear <<if $hospitalintro is 0>>a <<personsimple>><<el
 		<<link [[Refuse|Doctor Harper's Office Camera2]]>><<npcincr Harper dom -5>><<stress 6>><<set $phase to 0>><</link>><<gstress>>
 		<br>
 	<<elseif $hypnosis gte 3>>
-		
+
 		<span class="green">You slip deeper into the trance and return to the familiar state of tranquillity.</span> You hear Harper's voice drifting toward you. "That's very good." <<He>> walks briskly over to the window. <<He>> opens it, and a <<generate2>><<person2>><<person>> climbs through, carrying a large camera and tripod. <<generate3>><<generate4>><<generate5>><<generate6>><<He>> is closely followed by four others, a <<person3>><<person>>, a <<person4>><<person>>, a <<person5>><<person>> and a <<person6>><<person>>.
 		<br><br>
 
@@ -189,7 +189,7 @@ You knock on the door, and hear <<if $hospitalintro is 0>>a <<personsimple>><<el
 	<<link [[Next|Hospital Foyer]]>><<endevent>><</link>>
 <<elseif $phase is 1>>
 	You remove your clothing, the flicker of resistance unable to break through the haze. "Very good." Harper says. The softness in <<his>> voice is still present, but there is now also a distinct quavering. "Just keep focusing on your breath." <<He>> starts circling you with the camera, which produces a clicking sound whenever <<he>> momentarily stops.
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 	<br><br>
 
 	This continues for several minutes. <<He>> places the camera back in the drawer. "Put your clothes back on," <<he>> says, as <<he>> sits back down and sighs. You dress yourself with robotic motions while Harper watches. After, <<he>> drops <<his>> pen on the ground and brings you back to reality.
@@ -217,7 +217,7 @@ You knock on the door, and hear <<if $hospitalintro is 0>>a <<personsimple>><<el
 	<br><br>
 
 	For the next several minutes you obey Harper's instructions. You turn, bend over, and strike numerous poses for the lens of the camera, leaving no inch of your skin unexplored.
-	<<fameexhibitionism 50 vid>>
+	<<fameexhibitionism 50 "vid">>
 	<br><br>
 
 	<<person2>>The <<person>> exchanges a look with Harper, then the green light flickers out. <<He>> begins dismantling the apparatus while Harper <<person1>>retrieves <<his>> own camera and starts snapping pictures.
@@ -246,7 +246,7 @@ You knock on the door, and hear <<if $hospitalintro is 0>>a <<personsimple>><<el
 		You take off your clothes. As you do so, a green light winks into existence on the front of the camera. Once completely nude, Harper speaks. "Very good. Next, I want you to twirl on the spot..."
 		<br><br>
 
-		For the next several minutes you obey Harper's instructions. You turn, bend over, and strike numerous poses for the lens of the camera, leaving no inch of your skin unexplored. The audience watches intently, looking increasingly flustered. The <<person3>><<person>> gets <<his>> phone out and starts filming.<<fameexhibitionism 50 vid>>
+		For the next several minutes you obey Harper's instructions. You turn, bend over, and strike numerous poses for the lens of the camera, leaving no inch of your skin unexplored. The audience watches intently, looking increasingly flustered. The <<person3>><<person>> gets <<his>> phone out and starts filming.<<fameexhibitionism 50 "vid">>
 		<br><br>
 
 		<<person2>>The <<person>> exchanges a look with Harper, then the green light flickers out. <<He>> begins dismantling the apparatus while Harper <<person1>>retrieves <<his>> own camera and starts snapping pictures.
@@ -263,7 +263,7 @@ You knock on the door, and hear <<if $hospitalintro is 0>>a <<personsimple>><<el
 		You take off your clothes. As you do so, a green light winks into existence on the front of the camera. Once completely nude, Harper speaks. "Very good. Next, I want you to twirl on the spot..."
 		<br><br>
 
-		For the next several minutes you obey Harper's instructions. You turn, bend over, and strike numerous poses for the lens of the camera, leaving no inch of your skin unexplored. The audience watches intently, looking increasingly flustered. The <<person3>><<person>> gets <<his>> phone out and starts filming.<<fameexhibitionism 50 vid>>
+		For the next several minutes you obey Harper's instructions. You turn, bend over, and strike numerous poses for the lens of the camera, leaving no inch of your skin unexplored. The audience watches intently, looking increasingly flustered. The <<person3>><<person>> gets <<his>> phone out and starts filming.<<fameexhibitionism 50 "vid">>
 		<br><br>
 
 		<<person2>>The <<person>> exchanges a look with Harper, then the green light flickers out. <<He>> begins dismantling the apparatus while Harper <<person1>>retrieves <<his>> own camera and starts snapping pictures.
@@ -358,7 +358,7 @@ The group soon leaves via the window. <<person1>> Harper closes it then turns to
 		<br><br>
 		Harper resumes the exam.
 	<</if>>
-	Almost as soon as <<he>> touches you, you feel a distinct warmth spread through your groin. You try to resist, but you don't have any control over it. 
+	Almost as soon as <<he>> touches you, you feel a distinct warmth spread through your groin. You try to resist, but you don't have any control over it.
 	<<if $player.penisExist and $worn.genitals.type.includes("naked")>>
 		Your penis soon stands conspicuously erect. Harper continues as if nothing is amiss.
 	<<elseif $player.penisExist>>
@@ -369,14 +369,14 @@ The group soon leaves via the window. <<person1>> Harper closes it then turns to
 
 	<br><br>
 
-	"There's no need to be ashamed. This is a perfectly natural and normal response," <<he>> says in a dry tone. 
+	"There's no need to be ashamed. This is a perfectly natural and normal response," <<he>> says in a dry tone.
 	<<He>> continues <<his>> systematic investigation of your <<genitals 1>>.
 	<<arousal 2000>>
 	<br><br>
 
 	<<if $arousal gte $arousalmax>><<arousal -8000>><<set $stress -= 200>>
-		The warmth within you continues to build, but Harper shows no sign of letting up. You feel yourself pass the point of no return, and you whimper softly. 
-		"Please, no." Harper is looking at you puzzled when it hits you. The orgasm emerges and your back immediately arcs. 
+		The warmth within you continues to build, but Harper shows no sign of letting up. You feel yourself pass the point of no return, and you whimper softly.
+		"Please, no." Harper is looking at you puzzled when it hits you. The orgasm emerges and your back immediately arcs.
 		Uncontrollable moans escape your lips and you grip the side of the bed to stop your arms flailing.
 		<<orgasmstat>><<set $orgasmcount += 1>>
 		<br><br>
@@ -438,7 +438,7 @@ The group soon leaves via the window. <<person1>> Harper closes it then turns to
 		<br><br>
 		<<person1>>Harper resumes the exam.
 	<</if>>
-	Almost as soon as <<he>> touches you, you feel a distinct warmth spread through your groin. You try to resist, but you don't have any control over it. 
+	Almost as soon as <<he>> touches you, you feel a distinct warmth spread through your groin. You try to resist, but you don't have any control over it.
 	<<if $player.penisExist and $worn.genitals.type.includes("naked")>>
 		Your penis soon stands conspicuously erect. Harper continues as if nothing is amiss.
 	<<elseif $player.penisExist>>
diff --git a/game/overworld-town/loc-hospital/main.twee b/game/overworld-town/loc-hospital/main.twee
index 53b48a7e0cd1443ea04ab032e43b65a5c614f985..4a0892fa3d47cb7ee0a5faaf4ba192fe1b8977c9 100644
--- a/game/overworld-town/loc-hospital/main.twee
+++ b/game/overworld-town/loc-hospital/main.twee
@@ -25,6 +25,11 @@ You feel yourself being lifted onto a stretcher before passing out again.
 <<set $outside to 1>><<set $location to "hospital">><<effects>>
 
 You are in front of the hospital. It is open at all hours.
+<<if $companion is "Robinrent">>
+	Robin hugs you tightly. "Thanks for saving me," <<nnpc_he "Robin">> says. "I think I'm going to go home. I need a rest."
+	Robin then waves you goodbye and starts walking towards home.
+	<<unset $companion>>
+<</if>>
 <br><br>
 
 <<if $stress gte $stressmax>>
@@ -225,7 +230,7 @@ Through the door and to the left there is a precipitous drop. You peer down and
 <<else>>
 	You awaken in a bed at the civic hospital.
 
-	<<npc Harper>><<person1>>Doctor Harper enters at that moment, carrying <<his>> usual clipboard. <<He>> assures you that there is no immediate concern, but <<he>> would like to you examine you further.
+	<<npc Harper>><<person1>>Doctor Harper enters at that moment, carrying <<his>> usual clipboard. <<He>> assures you that there is no immediate concern, but <<he>> would like to examine you further.
 	<br><br>
 <</if>>
 
@@ -381,7 +386,7 @@ You've pushed yourself too much.
 		It's dark out. Maybe you should wait until morning.
 		<br><br>
 
-		<<link [[Wait|Hospital Wait]]>><<pass 10>><<endevent>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>><<ltiredness>>
+		<<link [[Wait|Hospital Wait]]>><<pass 10>><<endevent>><<incrementautosave>><</link>><<ltiredness>>
 		<br>
 		<<if $renttime lte 0>>
 			<<link [[Leave now|Hospital Rent]]>><<pass 10>><<endevent>><</link>>
@@ -434,7 +439,7 @@ You've pushed yourself too much.
 		It's dark out. Maybe you should wait until morning.
 		<br><br>
 
-		<<link [[Wait|Hospital Wait]]>><<pass 10>><<endevent>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>><<ltiredness>>
+		<<link [[Wait|Hospital Wait]]>><<pass 10>><<endevent>><<incrementautosave>><</link>><<ltiredness>>
 		<br>
 
 		<<if $renttime lte 0>>
@@ -526,10 +531,15 @@ You've pushed yourself too much.
 
 <<set $bus to "hospital">>
 
-As you walk down an empty corridor a door beside you opens and a pair of arms drag you through. <span class="red">It's Bailey.</span> The heavy doors slam shut. You're at the top of a staircase leading down into darkness.
+As you walk down an empty corridor a door beside you opens and a pair of arms drag you through. <span class="red">It's Bailey.</span>
+The heavy doors slam shut. You're at the top of a staircase leading down into darkness.
 <br><br>
 
-<<rentdue>>
+<<if $robinfirstrentfight and ($baileypaychain lt 2 or $baileyOverdue gte 1)>>
+	<<rentduerobin 0>>
+<<else>>
+	<<rentdue 0>>
+<</if>>
 
 :: Rent Hospital Fight
 <<if $fightstart is 1>>
@@ -561,6 +571,92 @@ As you walk down an empty corridor a door beside you opens and a pair of arms dr
 	<span id="next"><<link [[Next|Rent Hospital Fight]]>><</link>></span><<nexttext>>
 <</if>>
 
+:: Rent Hospital Fight Robin
+<<set _robin to statusCheck("Robin")>>
+<<if $fightstart is 1>>
+	<<if $baileydefeatedchain gte 3>>
+		<<set $enemyno to 3>>
+		<<set $enemynomax to 3>>
+	<<elseif $baileydefeatedchain gte 1>>
+		<<set $enemyno to 2>>
+		<<set $enemynomax to 2>>
+	<<else>>
+		<<set $enemyno to 1>>
+		<<set $enemynomax to 1>>
+	<</if>>
+	<<set $fightstart to 0>>
+
+	<<neutral 1>>
+
+	<<maninit>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+	"Keep the other one under control, one of you," Bailey says.
+	The <<personselect $enemynomax>><<person>> nods and grabs at Robin, while Bailey returns <<person1>><<his>> gaze to you.
+	<br><br>
+
+	<<set $phase to 1>>
+	<<if _robin.dom gte 80>>
+		<<set $timer to 4>>
+	<<elseif _robin.dom gte 60>>
+		<<set $timer to 3>>
+	<<elseif _robin.dom gte 40>>
+		<<set $timer to 2>>
+	<<else>>
+		<<set $timer to 1>>
+	<</if>>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<personselect $enemynomax>>
+<<if $timer gt 1>>
+	<span class="green">
+	<<if $rng gte 81>>
+		Robin struggles in <<nnpc_his "Robin">> restraints.
+	<<elseif $rng gte 61>>
+		Robin tells you not to give up.
+	<<elseif $rng gte 41>>
+		Robin is kicking at the <<person>>'s heels.
+	<<elseif $rng gte 21>>
+		Robin tells you not to worry about <<nnpc_him "Robin">>.
+	<<else>>
+		Robin bites the <<person>>'s hand holding <<nnpc_him "Robin">>.
+	<</if>></span>
+<<elseif $timer is 1>>
+	The <<person>> manages to wrap <<his>> arm around Robin's throat. <span class="red">Robin cries out in pain.</span>
+<<else>>
+	<span class="red">
+	<<if $rng gte 81>>
+		The <<person>> has Robin in a stranglehold.
+	<<elseif $rng gte 61>>
+		You can hear Robin choking.
+	<<elseif $rng gte 41>>
+		The <<person>> spits at Robin's eye while strangling <<nnpc_him "Robin">>.
+	<<elseif $rng gte 21>>
+		Robin tries to surrender, but the <<person>> doesn't lighten up.
+	<<else>>
+		The <<person>> punches Robin while choking <<nnpc_him "Robin">>.
+	<</if>>
+	</span>
+	<<npcincr Robin trauma 2>><<grtrauma true>>
+<</if>>
+<br><br>
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Rent Hospital Robin Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Rent Hospital Robin Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Rent Hospital Robin Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Rent Hospital Fight Robin]]>><</link>></span><<nexttext>>
+<</if>>
+
 :: Rent Hospital Fight Finish
 <<effects>>
 
@@ -615,6 +711,65 @@ As you walk down an empty corridor a door beside you opens and a pair of arms dr
 	<<link [[Next|Rent Intro]]>><</link>>
 <</if>>
 
+:: Rent Hospital Robin Fight Finish
+<<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>><<set $baileydefeatedlewd += 1>><<set $baileydefeatedchain += 1>><<earnFeat "Bailey's Trouble Maker">>
+
+	<<He>> grips the bannister as the orgasm wracks <<his>> body. It's all the chance you need to grab Robin and escape back into the hospital proper.
+	That won't be the last of it, but for now you're in the clear.
+	<<ltrauma>><<lstress>><<trauma -6>><<stress -12>>
+	<<set $companion to "Robinrent">>
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<if $crime gte 1000>>
+		<<link [[Next|Hospital Arrest]]>><<pass 10>><<endevent>><</link>>
+		<br>
+	<<else>>
+		<<link [[Next->Hospital front]]>><<pass 10>><<endevent>><</link>>
+		<br>
+	<</if>>
+<<elseif $enemyhealth lte 0>>
+	<<set $baileydefeated += 1>><<set $baileydefeatedchain += 1>>
+
+	<<He>> trips and tumbles down the stairs, shouting profanities as <<he>> falls. You waste no time grabbing Robin and escaping back into the hospital proper.
+	That won't be the last of it, but for now you're in the clear.
+	<<ltrauma>><<lstress>><<trauma -6>><<stress -12>>
+	<<set $companion to "Robinrent">>
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<if $crime gte 1000>>
+		<<link [[Next|Hospital Arrest]]>><<pass 10>><<endevent>><</link>>
+		<br>
+	<<else>>
+		<<link [[Next->Hospital front]]>><<pass 10>><<endevent>><</link>>
+		<br>
+	<</if>>
+<<else>>
+	<<set $baileydefeatedchain to 0>>
+	<<unset $bailey_encroach>>
+
+	You fall to the ground, too hurt to move.
+	You hear Robin struggling until Bailey hits <<nnpc_him "Robin">> hard on the head and <<nnpc_he "Robin">> falls to the ground as well.
+	<br><br>
+
+	<<set $upperoff to 0>>
+	<<set $loweroff to 0>>
+	<<set $underloweroff to 0>>
+	<<set $underupperoff to 0>>
+	<<endcombat>>
+
+
+	<<link [[Next|Rent Intro]]>><<set $phase to 1>><</link>>
+<</if>>
+
 :: Hospital Journey Home
 <<set $outside to 0>><<set $location to "hospital">><<effects>>
 
@@ -783,7 +938,7 @@ You remove your clothing and stand waiting, feeling more than a little exposed.
 <<He>> presses a mask against your face, and you feel your consciousness start to slip. <<He>> pulls a camera from <<his>> pocket as you pass out.
 <br><br>
 
-<<fameexhibitionism 10 pic>>
+<<fameexhibitionism 10 "pic">>
 
 <<link [[Next|Hospital Breast Done]]>><</link>>
 <br>
@@ -937,7 +1092,7 @@ You remove your clothing and stand waiting, feeling more than a little exposed.
 <<He>> presses a mask against your face, and you feel your consciousness start to slip. <<He>> pulls a camera from <<his>> pocket as you pass out.
 <br><br>
 
-<<fameexhibitionism 10 pic>>
+<<fameexhibitionism 10 "pic">>
 
 <<link [[Next|Hospital Breast Done]]>><</link>>
 <br>
@@ -1029,7 +1184,7 @@ You remove your clothing and stand waiting, feeling more than a little exposed.
 <<He>> presses a mask against your face, and you feel your consciousness start to slip. <<He>> pulls a camera from <<his>> pocket as you pass out.
 <br><br>
 
-<<fameexhibitionism 10 pic>>
+<<fameexhibitionism 10 "pic">>
 
 <<link [[Next|Hospital Penis Done]]>><</link>>
 <br>
@@ -1157,7 +1312,7 @@ You remove your clothing and stand waiting, feeling more than a little exposed.
 <<He>> presses a mask against your face, and you feel your consciousness start to slip. <<He>> pulls a camera from <<his>> pocket as you pass out.
 <br><br>
 
-<<fameexhibitionism 10 pic>>
+<<fameexhibitionism 10 "pic">>
 
 <<link [[Next|Hospital Penis Done]]>><</link>>
 <br>
@@ -1191,7 +1346,7 @@ The receptionist taps something into <<his>> computer and instructs you to take
 <<set $outside to 0>><<set $location to "hospital">><<effects>>
 
 <<strip>>
-Harper accepts the payment. "Please undress," <<he>> says as <<he>> stands to leave the room. "Everything. The presence of clothing interferes with the delicate apparatus." 
+Harper accepts the payment. "Please undress," <<he>> says as <<he>> stands to leave the room. "Everything. The presence of clothing interferes with the delicate apparatus."
 You remove your clothing and stand waiting, feeling more than a little exposed.
 <<if $worn.genitals.type.includes("chastity")>>You can't remove your $worn.genitals.name, you hope it won't be a problem.<</if>>
 <<He>> soon returns, carrying a medical gown.
@@ -1204,7 +1359,7 @@ You remove your clothing and stand waiting, feeling more than a little exposed.
 <<He>> presses a mask against your face, and you feel your consciousness start to slip. <<He>> pulls a camera from <<his>> pocket as you pass out.
 <br><br>
 
-<<fameexhibitionism 10 pic>>
+<<fameexhibitionism 10 "pic">>
 
 <<link [[Next|Hospital Tattoo Removal Done]]>><</link>>
 
@@ -1283,7 +1438,7 @@ You feel yourself being lifted onto a stretcher. You're holding onto something.
 <<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>>
 	<<if $templePromised is "Sydney">>
 		You've gained the <span class="blue">Rite of Promise: Sydney</span> trait.
-		<br><br>		
+		<br><br>
 	<<else>>
 		You've gained the <span class="blue">Chastity Vow</span> trait.
 		<br><br>
@@ -1313,7 +1468,7 @@ The nurse explains that you have suffered a severe stress response, but you are
 	<<He>> smiles at you. "Hello, I'm Doctor Harper." <<He>> takes a seat by your bedside and pulls <<his>> blond fringe away from <<his>> eyes. <<He>> looks young, can't be older than 25.
 	<br><br>
 <<else>>
-	<<npc "Harper" 1>><<person1>><<npc "Sydney" 2>><<person2>>Doctor Harper enters at that moment, carrying <<person1>><<his>> usual clipboard. <<He>> assures you that there is no immediate concern, but <<he>> would like to you examine you further.
+	<<npc "Harper" 1>><<person1>><<npc "Sydney" 2>><<person2>>Doctor Harper enters at that moment, carrying <<person1>><<his>> usual clipboard. <<He>> assures you that there is no immediate concern, but <<he>> would like to examine you further.
 	<br><br>
 <</if>>
 
diff --git a/game/overworld-town/loc-hospital/pharmacy.twee b/game/overworld-town/loc-hospital/pharmacy.twee
index 62fa113544e3caac597135a8a5d98461401d5405..afe6716771098b490a629f488eeda92127f09041 100644
--- a/game/overworld-town/loc-hospital/pharmacy.twee
+++ b/game/overworld-town/loc-hospital/pharmacy.twee
@@ -13,12 +13,12 @@
 
 	You are inside the hospital pharmacy.
 	<<if !$pharmTriedSeduction>>
-		The young nurse at the till glances at you, then returns to <<his>> book.
+		The nurse at the till glances at you, then returns to <<his>> book.
 	<<elseif $pharmSexFinished>>
 		A <<person>> sits by the till and reads a book.
 	<<else>>
 		<br>
-		"Hey, you're back," nurse notices you, then goes back to <<his>> book.
+		"Hey, you're back," the nurse notices you, then goes back to <<his>> book.
 	<</if>>
 	<br>
 	Looking at the items on the shelves, you notice a few objects of interest.
@@ -74,23 +74,23 @@ An assortment of colourful contact lenses is displayed behind the glass. You can
 	<br>
 	You already own lenses of the following colours:
 	<span style="display: inline-block;">
-	<<for _i, _colour range $makeup.owned.eyelenses>>
-		<span @class="'eye-' + _colour.replace(/ /g, '-')"><span class="left-iris" style="color:#6E4E11;">_colour</span></span>
-		<<if _i < $makeup.owned.eyelenses.length - 1 or $makeup.owned.custom_eyelenses.length > 0>>, <</if>>
-	<</for>>
-	<<set _unique_temp_custom_eyelenses to 0>>
-	<<script>>if (V.makeup.owned.custom_eyelenses.length > 0)T.unique_temp_custom_eyelenses = [...new Set(V.makeup.owned.custom_eyelenses)];<</script>>
-	<<for _i = 0; _i < _unique_temp_custom_eyelenses.length; _i++>>
-		<<set _colour to window.colorNameTranslate(_unique_temp_custom_eyelenses[_i], "spaced name")>>
-		<<for _e = 0; _e < $custom_eyecolours.length; _e++>>
-			<<if $custom_eyecolours[_e].name == _colour>>
-				<<set _background_colour to clone($custom_eyecolours[_e].canvasfilter.blend)>>
-				<span class="eye-custom"><span @style="'color:'+_background_colour">_colour</span></span>
-				<<break>>
-			<</if>>
-		<</for>>
-		<<if _i < _unique_temp_custom_eyelenses.length - 1>>, <</if>>
-	<</for>>.
+	<<set _lenses to []>>
+	<<run $makeup.owned.eyelenses.forEach(colour => {
+		const colourClass = colour.replace(/ /g, '-')
+		_lenses.push(`<span @class="'eye-${colourClass}'"><span class="left-iris" style="color:#6E4E11;">${colour}</span></span>`);
+	})>>
+	<<if ($makeup.owned.custom_eyelenses.length gt 0)>>
+		<<set _uniqueCustomLenses to [...new Set($makeup.owned.custom_eyelenses)]>> /* Filter out non-unique lenses */
+		<<run _uniqueCustomLenses.forEach(lens => {
+			const colour = window.colorNameTranslate(lens, "spaced name");
+			const colourClass = $custom_eyecolours.find(c => c.name is colour)?.canvasfilter.blend;
+			if (colourClass){
+				_lenses.push(`<span class="eye-custom"><span @style="'color:${colourClass}'">${colour}</span></span>`);
+			}
+		})>>
+	<</if>>
+
+	<<print _lenses.join(", ")>>. /* Print the list */
 	</span>
 <</if>>
 <br><br>
@@ -109,13 +109,17 @@ An assortment of colourful contact lenses is displayed behind the glass. You can
 	<br><br>
 
 	<<if $money gte 20000>>
-		<<link [[Buy and send home|Pharmacy Lenses]]>><<set $money -= 20000>><<set $makeup.owned.eyelenses.push(_lensChoice)>><</link>><br>
-		<<link [[Buy and wear|Pharmacy]]>><<set $money -= 20000>><<set $makeup.owned.eyelenses.push(_lensChoice)>><<set $makeup.eyelenses = {"left":_lensChoice, "right":_lensChoice}>><</link>><br>
+		<<link [[Buy and send home|Pharmacy Lenses]]>><<set $money -= 20000>><<set $makeup.owned.eyelenses.push(_lensChoice)>><</link>>
+		<br>
+		<<link [[Buy and wear|Pharmacy]]>><<set $money -= 20000>><<set $makeup.owned.eyelenses.push(_lensChoice)>><<set $makeup.eyelenses = {"left":_lensChoice, "right":_lensChoice}>><</link>>
+		<br>
 	<<else>>
-		<span class="purple">You can't afford the purchase.</span><br>
+		<span class="purple">You can't afford the purchase.</span>
+		<br>
 	<</if>>
 <</if>>
-<<link [[Ask for custom-coloured contact ones|Pharmacy Ask Custom Lenses]]>><</link>><br>
+<<link [[Ask for custom-coloured contact ones|Pharmacy Ask Custom Lenses]]>><</link>>
+<br>
 <<link [[Go back|Pharmacy]]>><</link>>
 
 :: Pharmacy Ask Custom Lenses
@@ -131,14 +135,18 @@ An assortment of colourful contact lenses is displayed behind the glass. You can
 	<</if>>
 	<br><br>
 	<<if $money gte 50000>>
-		<<link [[Choose your custom colour|Pharmacy Select Custom Lenses]]>><<set $pharmacy_order_colours to 1>><</link>><br>
+		<<link [[Choose your custom colour|Pharmacy Select Custom Lenses]]>><<set $pharmacy_order_colours to 1>><</link>>
+		<br>
 	<<else>>
-		<span class="purple">You can't afford the purchase.</span><br>
+		<span class="purple">You can't afford the purchase.</span>
+		<br>
 	<</if>>
 	<<if $money gte 95000>>
-		<<link [[Choose a different colour for each eye|Pharmacy Select Custom Lenses]]>><<set $pharmacy_order_colours to 2>><</link>><br>
+		<<link [[Choose a different colour for each eye|Pharmacy Select Custom Lenses]]>><<set $pharmacy_order_colours to 2>><</link>>
+		<br>
 	<<elseif $money gte 50000>>
-		<span style="color:#566a9b; cursor:pointer">Choose a different colour for each eye</span> <span class="purple">You can't afford to purchase.</span><br>
+		<span style="color:#566a9b; cursor:pointer">Choose a different colour for each eye</span> <span class="purple">You can't afford to purchase.</span>
+		<br>
 	<</if>>
 	<<link [[Go back|Pharmacy Lenses]]>><</link>>
 <</if>>
@@ -147,7 +155,7 @@ An assortment of colourful contact lenses is displayed behind the glass. You can
 "Here," <<he>> says, handing you a tablet. "You can use the colour palette to help you. Pick any colour you like and I'll place the order for you."
 <br><br><br>
 <div id="picker"></div>
-<<set _color_lenses_temp>> <!-- used inside colorWheelContactLenses() --> 
+<<set _color_lenses_temp>> <!-- used inside colorWheelContactLenses() -->
 <<run colorWheelContactLenses()>>
 <br><br>
 <<link [[Order it|Pharmacy Order Custom Lenses]]>>
@@ -177,7 +185,10 @@ An assortment of colourful contact lenses is displayed behind the glass. You can
 	"How can I h-", <<he>> stops. "Oh, you're the one who ordered the contact lenses, hold on a second sweetheart I'll check if we received them already". You watch as <<he>> disappears in a back room.
 <</if>>
 <br><br>
-<<if $left_before_nurse_returned < 2>><<link [[Wait (0:15)|Pharmacy Ask If Lenses Delivered 2]]>><<set $left_before_nurse_returned to 0>><<pass 15>><</link>><br><</if>>
+<<if $left_before_nurse_returned < 2>>
+	<<link [[Wait (0:15)|Pharmacy Ask If Lenses Delivered 2]]>><<set $left_before_nurse_returned to 0>><<pass 15>><</link>>
+	<br>
+<</if>>
 <<link [[Leave|Pharmacy]]>><<set $left_before_nurse_returned to $left_before_nurse_returned + 1>><</link>>
 
 :: Pharmacy Ask If Lenses Delivered 2
@@ -207,11 +218,14 @@ An assortment of colourful contact lenses is displayed behind the glass. You can
 <<if _received > 0>>
 	<<run window.initCustomLenses()>>	/* push custom eyelenses inside setup.colours.eyes */
 	<<if _received != _tmp_length>>
-		She returns a little while later, noticably panting. "We receive the <<if _received > 1>><<print _received>><</if>> contact lenses you ordered, but for the other <<print (_tmp_length - _received == 1) ? 'one' : _tmp_length - _received>> you'll have to try again tomorrow", <<he>> says while handing you the package.
+		<<She>> returns a little while later, noticeably panting. "We receive the <<if _received > 1>><<print _received>><</if>> contact lenses you ordered, but for the other <<print (_tmp_length - _received == 1) ? 'one' : _tmp_length - _received>> you'll have to try again tomorrow", <<he>> says while handing you the package.
 	<<else>>
-		You see the nurse coming back from the room, with a small package in the hands, "Here it is," <<he>> says handing it to you.<br>"If anything's wrong you just come back here sweety and we'll sort a solution out."
+		You see the nurse coming back from the room, with a small package in the hands, "Here it is," <<he>> says handing it to you.
+		<br>
+		"If anything's wrong you just come back here sweetie and we'll sort a solution out."
 	<</if>>
-	<br><br><span class="gold">You pick up the package containing your contact lenses.</span>
+	<br><br>
+	<span class="gold">You pick up the package containing your contact lenses.</span>
 <<else>>
 	A few moments later <<he>> returns, "It hasn't arrived yet, sorry honey. Try again tomorrow I'm sure it'll have arrived by then"
 <</if>>
@@ -391,7 +405,7 @@ The nurse looks at the item you're holding,
 	<br>
 	<<He>> pushes you against the wall, drops down on <<his>> knees and hastens to remove your <<if $worn.lower.name != "naked">>$worn.lower.name<<else>>$worn.under_lower.name<</if>>.
 	<br><br>
-	
+
 	<<set $sexstart to 1>>
 	<<link [[Next|Pharmacy Encounter Sex]]>><</link>>
 <<else>>
@@ -406,7 +420,8 @@ The nurse looks at the item you're holding,
 	<br><br>
 
 	<<if $money gte $price * 100>>
-		<<link [["Pay £" + $price|Pharmacy Seduction End]]>><<set $phase to "pay">><</link>><br>
+		<<link [["Pay £" + $price|Pharmacy Seduction End]]>><<set $phase to "pay">><</link>>
+		<br>
 	<<else>>
 		<span class="purple">You cannot afford them.</span>
 	<</if>>
@@ -420,7 +435,7 @@ The nurse looks at the item you're holding,
 		<br>
 		"Hey," <<he>> says. "I didn't mean to upset you."
 		<br><br>
-		
+
 		<<link [[Next|Hospital Foyer]]>><<endevent>><</link>>
 
 	<<case "pay">>
@@ -483,7 +498,7 @@ The nurse looks at the item you're holding,
 			You hear a snicker as your <<penis>> flops out, but <<he>> doesn't say anything and keeps going.
 		<<else>>
 			<br><br>
-			
+
 			<<He>> stopped short the moment your <<penis>> flopped out.
 			<br>
 			"Oh, and that's it? You sounded like you have something special in your pants," <<he>> says.
@@ -541,7 +556,7 @@ The nurse looks at the item you're holding,
 		<br>
 		"Please come back for more," <<he>> winks.
 		<br><br>
-		
+
 		<<endcombat>>
 		<<if $money gte (_price * 100)>>
 			<<link [["Buy penis " + $choice + " pills for £" + _price|Pharmacy]]>>
@@ -556,7 +571,7 @@ The nurse looks at the item you're holding,
 		<br>
 		"I can sell you growth blocker pills at a discount instead," <<he>> smiles.
 		<br><br>
-		
+
 		<<endcombat>>
 		<<if $money gte 10000>>
 			<<link [[Buy blocker pills for £100|Pharmacy]]>>
@@ -612,7 +627,8 @@ The nurse looks at the item you're holding,
 				<<link [["Pay £" + $price + " for penis " + $choice + " pills"|Pharmacy]]>>
 					<<set $eventskip to 1>>
 					<<set $money -= $price * 100>><<set $sexStats.pills["pills"]["penis " + $choice].owned += 14>><<boughtOnce>>
-				<</link>><br>
+				<</link>>
+				<br>
 			<<else>>
 				<span class="purple">You cannot afford them.</span>
 			<</if>>
diff --git a/game/overworld-town/loc-landfill/events.twee b/game/overworld-town/loc-landfill/events.twee
index 8c743f4f4880d183574e1c8751ec3b85ba730023..0c46a081fd8b31d51dd5f21af854bef494094314 100644
--- a/game/overworld-town/loc-landfill/events.twee
+++ b/game/overworld-town/loc-landfill/events.twee
@@ -513,7 +513,7 @@ Somehow you know going along with the urges will feel good, and disobeying will
 :: Trash Slime Submit willingly
 <<set $location to "landfill">><<set $outside to 1>><<effects>>
 
-You drop to your knees in front of the <<person>>. "Fuck me." you say. The slime stops interfering.
+You drop to your knees in front of the <<person>>. "Fuck me," you say. The slime stops interfering.
 <br>
 <<promiscuity4>>
 
diff --git a/game/overworld-town/loc-landfill/main.twee b/game/overworld-town/loc-landfill/main.twee
index 79fed41fc81e112d720a7f97631bb076d0eb5fdf..467ed32da37b4acf5f1a62e7b425f87452b31a57 100644
--- a/game/overworld-town/loc-landfill/main.twee
+++ b/game/overworld-town/loc-landfill/main.twee
@@ -16,24 +16,33 @@ You awaken on your back, surrounded by mountains of rubbish. You're in a landfil
 <<set $location to "landfill">><<set $outside to 1>><<effects>>
 
 You are in the landfill on Elk Street.
-	<<if $trash gte 100>>
+<<if $trash gte 100>>
 	You're in the depths of the complex. A colossal compactor sits in a clearing, fed by several conveyor belts.
-	<<elseif $trash gte 50>>
+<<elseif $trash gte 50>>
 	Mountains of rubbish pile all around.
-	<<elseif $trash gte 30>>
+<<elseif $trash gte 30>>
 	Some of the piles of rubbish tower over you.
-	<<elseif $trash gte 10>>
+<<elseif $trash gte 10>>
 	The piles of rubbish get taller the further you move from the street.
-	<<else>>
+<<else>>
 	You're at the front gate. You can see Elk Street on the other side. A sign reads: "These premises and all objects within are private property."
-	<</if>>
+<</if>>
 
+<<if $robinmissing is "landfill" and $robinmistknown>>
+	<<print either(
+		"You call out Robin's name. There's no response.",
+		"You scan the area for Robin, to no avail.",
+		"You try to climb a nearby trash pile for a better view, but you can't see Robin.",
+		"Your voice echoes throughout the landfill as you call for Robin."
+	)>>
+<</if>>
 <br><br>
+
 <<set $danger to random(1, 10000)>>
 <<if $stress gte $stressmax>>
-<<passouttrash>>
+	<<passouttrash>>
 <<elseif $arousal gte $arousalmax>>
-The warmth growing within you passes the point of no return. Your knees buckle. <<orgasm>>
+	The warmth growing within you passes the point of no return. Your knees buckle. <<orgasm>>
 
 	<<if $rng gte 51 and $parasitedisable is "f" and ($parasite.left_ear.name is undefined or $parasite.right_ear.name is undefined) and $slimedisable is "f" and $hallucinations gte 1>>
 		Attracted by your orgasm, something stirs within the detritus. It oozes out from deep within one of the mountains, and squirms across the concrete. You see it just before it reaches you, a living slime. It leaps on your back, and squirms up your neck. You try to reach for it, but it's too fast.
@@ -57,14 +66,14 @@ The warmth growing within you passes the point of no return. Your knees buckle.
 		<<link [[Next|Trash Slime]]>><</link>>
 		<br>
 	<<else>>
-	To have cum in such a place!<<llcontrol>><<gtrauma>><<trauma 6>><<control -25>>
-	<br><br>
+		To have cum in such a place!<<llcontrol>><<gtrauma>><<trauma 6>><<control -25>>
+		<br><br>
 
-	<<link [[Next|Trash]]>><<set $eventskip to 1>><</link>>
-	<br>
+		<<link [[Next|Trash]]>><<set $eventskip to 1>><</link>>
+		<br>
 	<</if>>
 <<elseif $danger gte (9900 - $allure) and $eventskip is 0>>
-<<eventstrash>>
+	<<eventstrash>>
 <<else>>
 
 	<<link [[Search for valuables (1:00)|Trash Search]]>><<pass 60>><</link>><<crime>>
@@ -76,23 +85,25 @@ The warmth growing within you passes the point of no return. Your knees buckle.
 			<br>
 		<<else>>
 			<<if $trash_key is 1>>
-			<<link [[Use the key (0:10)|Trash Leave]]>><<pass 10>><<set $trash_unlocked to 1>><</link>>
-			<br>
+				<<link [[Use the key (0:10)|Trash Leave]]>><<pass 10>><<set $trash_unlocked to 1>><</link>>
+				<br>
 			<<else>>
-			<<link [[Try the gate (0:05)|Trash Gate Leave]]>><<pass 5>><</link>>
-			<br>
+				<<link [[Try the gate (0:05)|Trash Gate Leave]]>><<pass 5>><</link>>
+				<br>
 			<</if>>
 		<</if>>
 	<</if>>
 	<<if $trash gte 1>>
-	<<link [[Go towards the sound of traffic (0:10)|Trash]]>><<pass 10>><<set $trash -= 10>><</link>>
-	<br>
+		<<link [[Go towards the sound of traffic (0:10)|Trash]]>><<pass 10>><<set $trash -= 10>><</link>>
+		<br>
 	<</if>>
 	<<if $trash lte 99>>
-	<<link [[Go towards the sound of heavy machinery (0:10)|Trash]]>><<pass 10>><<set $trash += 10>><</link>>
-	<br>
+		<<link [[Go towards the sound of heavy machinery (0:10)|Trash]]>><<pass 10>><<set $trash += 10>><</link>>
+		<br>
+	<<elseif $trash gte 100 and $robinmissing is "landfill" and $robinmistknown>>
+		<<link [[Go towards the sound of heavy machinery (0:10)|Robin Mist Intro]]>><<pass 10>><</link>>
+		<br>
 	<</if>>
-
 <</if>>
 <<set $eventskip to 0>>
 
@@ -101,24 +112,33 @@ The warmth growing within you passes the point of no return. Your knees buckle.
 
 The gate is barred by a heavy-duty padlock.
 <br><br>
-<<set $lock to 800>>
-<<if $trash_key is 1>>
-	<span class="green">It looks like a perfect fit for the key you found.</span>
-	<br><br>
 
-	<<link [[Use the key (0:05)|Trash Enter]]>><<set $trash_unlocked to 1>><<pass 5>><</link>>
-	<br>
-<<elseif currentSkillValue('skulduggery') gte $lock>>
-	<span class="green">The lock looks easy to pick.</span>
+<<if $robinmissing is "landfill" and $robinmistknown>>
+	On closer inspection the padlock is unlocked. Someone must want you to be here.
 	<br><br>
 
-	<<link [[Pick lock (0:05)|Trash Lock Enter]]>><<pass 5>><<crimeup 1>><</link>><<crime>>
+	<<link [[Enter|Trash]]>><<set $trash to 0>><</link>>
 	<br>
 <<else>>
-	<span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>>
-	<br><br>
-	<span class="blue"><i>There must be a key, but you haven't any idea where you could find one.</i></span>
-	<br><br>
+	<<set $lock to 800>>
+	<<if $trash_key is 1>>
+		<span class="green">It looks like a perfect fit for the key you found.</span>
+		<br><br>
+
+		<<link [[Use the key (0:05)|Trash Enter]]>><<set $trash_unlocked to 1>><<pass 5>><</link>>
+		<br>
+	<<elseif currentSkillValue('skulduggery') gte $lock>>
+		<span class="green">The lock looks easy to pick.</span>
+		<br><br>
+
+		<<link [[Pick lock (0:05)|Trash Lock Enter]]>><<pass 5>><<crimeup 1>><</link>><<crime>>
+		<br>
+	<<else>>
+		<span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>>
+		<br><br>
+		<span class="blue"><i>There must be a key, but you haven't any idea where you could find one.</i></span>
+		<br><br>
+	<</if>>
 <</if>>
 
 <<link [[Leave|Elk Street]]>><</link>>
@@ -191,33 +211,32 @@ You search the piles of rubbish for anything of value.
 
 
 <<if $trash_key isnot 1 and $trash_unlocked isnot 1>>
-You find a large, iron key. You wonder if it opens anything nearby.
-<<set $trash_key to 1>>
-<br><br>
+	You find a large, iron key. You wonder if it opens anything nearby.
+	<<set $trash_key to 1>>
 
 <<elseif $trash gte 100>>
 	<<if $brothel_machine_repair is 2>>
 		You spot a pink light reflect off the base of the compactor. You investigate, and find a small canister. There's a glass window on the side, letting you see the glowing pink gel within. <span class="gold">This must be the fuel used by the brothel sex machine.</span>
 		<<set $brothel_machine_repair to 3>>
 	<<elseif $rng gte 80>>
-	You find an ancient incense burner. It's clearly an antique. You're not sure why anyone would throw it out.
-	<<set $antiquemoney += 100>><<museumAntiqueStatus "antiquetrashburner" "found">><<crimeup 100>>
+		You find an ancient incense burner. It's clearly an antique. You're not sure why anyone would throw it out.
+		<<set $antiquemoney += 100>><<museumAntiqueStatus "antiquetrashburner" "found">><<crimeup 100>>
 
 	<<elseif $rng gte 60>>
 		<<set $rng to random(1, 100)>>
 		<<if $rng gte 81>>
-		You find a discarded purse. There's <<moneyGain 100 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 100 true true>> still inside.
 		<<elseif $rng gte 61>>
-		You find a discarded purse. There's <<moneyGain 80 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 80 true true>> still inside.
 		<<elseif $rng gte 41>>
-		You find a discarded purse. There's <<moneyGain 60 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 60 true true>> still inside.
 		<<elseif $rng gte 21>>
-		You find a discarded purse. There's <<moneyGain 40 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 40 true true>> still inside.
 		<<else>>
-		You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
 		<</if>>
 	<<else>>
-	You don't find anything.
+		You don't find anything.
 	<</if>>
 <<elseif $trash gte 50>>
 	<<if $rng gte 80>>
@@ -228,18 +247,18 @@ You find a large, iron key. You wonder if it opens anything nearby.
 	<<elseif $rng gte 60>>
 		<<set $rng to random(1, 100)>>
 		<<if $rng gte 81>>
-		You find a discarded purse. There's <<moneyGain 50 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 50 true true>> still inside.
 		<<elseif $rng gte 61>>
-		You find a discarded purse. There's <<moneyGain 40 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 40 true true>> still inside.
 		<<elseif $rng gte 41>>
-		You find a discarded purse. There's <<moneyGain 30 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 30 true true>> still inside.
 		<<elseif $rng gte 21>>
-		You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
 		<<else>>
-		You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
 		<</if>>
 	<<else>>
-	You don't find anything.
+		You don't find anything.
 	<</if>>
 <<elseif $trash gte 30>>
 	<<if $rng gte 80>>
@@ -250,441 +269,929 @@ You find a large, iron key. You wonder if it opens anything nearby.
 	<<elseif $rng gte 60>>
 		<<set $rng to random(1, 100)>>
 		<<if $rng gte 81>>
-		You find a discarded purse. There's <<moneyGain 40 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 40 true true>> still inside.
 		<<elseif $rng gte 61>>
-		You find a discarded purse. There's <<moneyGain 30 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 30 true true>> still inside.
 		<<elseif $rng gte 41>>
-		You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
 		<<elseif $rng gte 21>>
-		You find a discarded purse. There's <<moneyGain 15 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 15 true true>> still inside.
 		<<else>>
-		You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
 		<</if>>
 	<<else>>
-	You don't find anything.
+		You don't find anything.
 	<</if>>
 <<elseif $trash gte 10>>
 	<<if $rng gte 80>>
-	You find a stained metal cup. You wipe the grime off, and reveal a silver shine beneath. It looks like it belongs in a museum.
-	<<set $antiquemoney += 50>><<museumAntiqueStatus "antiquetrashcup" "found">><<crimeup 20>>
+		You find a stained metal cup. You wipe the grime off, and reveal a silver shine beneath. It looks like it belongs in a museum.
+		<<set $antiquemoney += 50>><<museumAntiqueStatus "antiquetrashcup" "found">><<crimeup 20>>
 	<<elseif $rng gte 60>>
 		<<set $rng to random(1, 100)>>
 		<<if $rng gte 81>>
-		You find a discarded purse. There's <<moneyGain 30 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 30 true true>> still inside.
 		<<elseif $rng gte 61>>
-		You find a discarded purse. There's <<moneyGain 25 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 25 true true>> still inside.
 		<<elseif $rng gte 41>>
-		You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
 		<<elseif $rng gte 21>>
-		You find a discarded purse. There's <<moneyGain 15 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 15 true true>> still inside.
 		<<else>>
-		You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
 		<</if>>
 	<<else>>
-	You don't find anything.
+		You don't find anything.
 	<</if>>
 <<else>>
 	<<if $rng gte 80>>
-	You find an old, but working phone. It should be worth something at least.
-	<<crimeup 30>><<set $blackmoney += 30>>
-	<i>Perhaps greater valuables can be found deeper in the landfill.</i>
+		You find an old, but working phone. It should be worth something at least.
+		<<crimeup 30>><<set $blackmoney += 30>>
+		<i>Perhaps greater valuables can be found deeper in the landfill.</i>
 	<<elseif $rng gte 60>>
 		<<set $rng to random(1, 100)>>
 		<<if $rng gte 81>>
-		You find a discarded purse. There's <<moneyGain 25 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 25 true true>> still inside.
 		<<elseif $rng gte 61>>
-		You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 20 true true>> still inside.
 		<<elseif $rng gte 41>>
-		You find a discarded purse. There's <<moneyGain 15 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 15 true true>> still inside.
 		<<elseif $rng gte 21>>
-		You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 10 true true>> still inside.
 		<<else>>
-		You find a discarded purse. There's <<moneyGain 5 true true>> still inside.
+			You find a discarded purse. There's <<moneyGain 5 true true>> still inside.
 		<</if>>
 	<<else>>
-	You don't find anything.
+		You don't find anything.
 	<</if>>
 <</if>>
 <br><br>
 
-<<if $rng gte 80 and $milkshake gte 1 and $exposed is 0 and $malechance gte 1>>
-	You hear the sound of boys in the distance.
+<<if $rng gte 90 and $exposed is 0>>
+	<<generatey1>><<generatey2>><<generatey3>><<generatey4>><<generatey5>><<generatey6>>
+	You hear the sound of <<group>> in the distance.
 	<br><br>
-	<<link [[Investigate|Trash Boys]]>><</link>>
+	<<link [[Investigate|Trash Compare]]>><</link>>
 	<br>
-	<<link [[Ignore|Trash]]>><</link>>
+	<<link [[Ignore|Trash]]>><<endevent>><</link>>
 	<br>
 <<else>>
 	<<link [[Next|Trash]]>><</link>>
 	<br>
 <</if>>
 
-/* SugarCube.State.display("Trash") */
-:: Trash Boys
+:: Trash Compare
 <<effects>>
-	<<endevent>>
-	<<generateNPC 1 t m m>><<person1>>
-	<<generateNPC 2 t m m>><<person2>>
-	<<generateNPC 3 t m m>><<person3>>
-	<<generateNPC 4 t m m>><<person4>>
-	<<generateNPC 5 t m m>><<person5>>
-	<<generateNPC 6 t m m>><<person6>>
-	You follow the voices til you come across a group of older boys hiding in the scrap, all huddled around each other. You can't see what they're doing but you can hear them whispering to each other.
-	<br><br>
-	<<link [[Spy on them|Trash Boys Spy]]>><</link>>
-	<br>
-	<<link [[Approach them|Trash Boys Greet]]>><</link>>
+<<set $trashCompare to {girl: 0, penis: 0}>>
+<<for _i = 0; _i lt $enemyno; _i++>>
+	<<if $NPCList[_i].pronoun is "f">>
+		<<set $trashCompare.girl++>>
+	<</if>>
+	<<if $NPCList[_i].penis isnot "none">>
+		<<set $trashCompare.penis++>>
+	<</if>>
+<</for>>
+<<person1>>
+
+You follow the voices until you come across a group of older <<group>> hiding in the scrap, all huddled around each other. You can't see what they're doing, but you can hear them whispering to each other.
+<br><br>
+<<link [[Spy on them|Trash Compare Spy]]>><</link>>
+<br>
+<<link [[Approach them|Trash Compare Greet]]>><</link>>
 
-:: Trash Boys Spy
+:: Trash Compare Spy
 <<effects>>
-	You climb to a higher position in the hopes of peeking down at them and seeing what they are doing. Finding a good mound of scrap you can hide behind you peek over the top and at the boys, and nearly fall over in shock. They're comparing penises. Not wanting to be caught peeping on others you carefully sneak away.
-	<<arousal 1000>><<garousal>>
-	<br><br>
-	<<link [[Next|Trash]]>><<endevent>><</link>>
+You climb to a higher position in the hopes of peeking down at them and seeing what they are doing. Finding a good mound of scrap you can hide behind, you peek over the top and at the <<group>>, and nearly fall over in shock.
+<<if $trashCompare.girl gte 1 and $trashCompare.penis gte 1>>
+	/* At least one girl, and at least one NPC with a penis */
+	<span class="lewd">They're comparing breasts and penises.</span>
+<<elseif $trashCompare.girl gte 1>>
+	/* At least one girl */
+	<span class="lewd">They're comparing breasts.</span>
+<<elseif $trashCompare.penis gte 1>>
+	/* At least one NPC with a penis */
+	<span class="lewd">They're comparing penises.</span>
+<<else>>
+	/* Six boys with vaginas */
+	<span class="lewd">They're comparing pussies.</span>
+<</if>>
+<<arousal 1000>><<garousal>>
+<br><br>
 
-:: Trash Boys Greet
+<<link [[Approach them|Trash Compare Greet]]>><</link>>
+<br>
+<<link [[Leave|Trash Compare Leave]]>><</link>>
+
+:: Trash Compare Leave
 <<effects>>
-	You approach the boys and they turn quiet when they hear you, before fumbling with something in a panic. By the time you get to them it seems they've hidden whatever it is they were gathering around as they turn to face you. "What do you want?" the <<person1>><<person>> asks you.
-	<br><br>
-	"I heard you in the scrap and figured I'd come see what you were all doing. I didn't think I'd come across anyone here."
-	<br><br>
-	<<if $player.gender_appearance is "m">>
-		The <<person4>><<person>> whispers to the <<person1>><<person>> at the front. The <<person1>><<person>> looks at him and the others questioningly, and they give him a nervous nod. "We'll tell you" the boy says, "but only if you agree not to tell anyone about it. Oh, and you had best do as we say too. If we show you it you'll have to join in with us."
-		<br><br>
-		<<link [[Accept|Trash Boys Compare]]>><</link>>
-		<br>
-		<<link [[Refuse|Trash Boys Refuse]]>><</link>>
-	<<else>>
-		"Nothing you would be interested in, girl." The <<person3>><<person>> says, before they turn around and walk away with their friends.
-		<br><br>
-		<<endevent>>
-		<<link [[Next|Trash]]>><<endevent>><</link>>
-	<</if>>
+Not wanting to be caught peeping on the <<group>>, you carefully sneak away.
+<br><br>
+
+<<link [[Next|Trash]]>><<endevent>><</link>>
 
-:: Trash Boys Refuse
+:: Trash Compare Greet
 <<effects>>
-	Wary of their offer you decline, and take your leave. The boys watch you as you go, clearly wanting to make sure you're gone before they go back to whatever it is they were doing.
+You approach the group, and find a <<fullGroup>>. They turn quiet when they hear you, before fumbling with something in a panic. By the time you get to them it seems they've hidden whatever it is they were gathering around as they turn to face you. "What do you want?" the <<person1>><<person>> asks you.
+<br><br>
+"I heard you in the scrap and figured I'd come see what you were all doing. I didn't think I'd come across anyone here."
+<br><br>
+<<if $beauty gte 2000>>
+	The <<person4>><<person>> whispers to the <<person1>><<person>> at the front. The <<person1>><<person>> looks at <<him>> and the others questioningly, and they give <<him>> a nervous nod. "We'll tell you," the <<person1>><<person>> says, "but only if you agree not to tell anyone about it. Oh, and you had best do as we say too. If we show you it you'll have to join in with us."
 	<br><br>
-	<<link [[Next|Trash]]>><<endevent>><</link>>
+	<<link [[Accept|Trash Compare Others]]>><<set $phase to 0>><</link>>
+	<br>
+	<<link [[Refuse|Trash Compare Refuse]]>><</link>>
+<<else>>
+	"Nothing you would be interested in, ugly," the <<person3>><<person>> says, before <<he>> turns around and walks away with <<his>> friends.
+	<<trauma 6>><<gtrauma>>
+	<br><br>
+	<<link [[Next|Trash]]>><<endevent>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
+<</if>>
 
-:: Trash Boys Compare
+:: Trash Compare Refuse
 <<effects>>
-	<<widget "npcpenissizetext">>
-		<<switch _args[0]>>
-			<<case 4>>
-				huge
-			<<case 3>>
-				large
-			<<case 2>>
-				average sized
-			<<case 1>>
-				small
-			<<case 0>>
-				tiny
-			<<case -1>>
-				micro
-		<</switch>>
-	<</widget>>
+Wary of their offer, you decline, and take your leave. The <<group>> watch you as you go, clearly wanting to make sure you're gone before they go back to whatever it is they were doing.
+<br><br>
+<<link [[Next|Trash]]>><<endevent>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
 
-	Nervously they motion for you to come closer, before bringing you into the huddled circle they were in before you showed up. "OK so, here's the thing" the <<person1>><<person>> says facing you from directly opposite the circle. "Have you ever wanted to know how big other guys are? Down there I mean."
+:: Trash Compare Others
+<<set _selectCount to 0>>
+<<effects>>
+<<if $phase is 0>>
+	Nervously they motion for you to come closer, before bringing you into the huddled circle they were in before you showed up. "Okay, so here's the thing," the <<person1>><<person>> says, facing you from directly opposite the circle. "Have you ever wanted to know what others are like? Like..."
+	<<if $trashCompare.girl gte 1 and $trashCompare.penis gte 1>>
+		<<He>> taps <<his>> chest. "Up here, and..." <<He>> gestures to <<his>> crotch with <<his>> other hand. "Down here."
+	<<elseif $trashCompare.girl gte 1>>
+		<<He>> taps <<his>> chest. "Up here."
+	<<else>>
+		<<He>> gestures to <<his>> crotch. "Down here."
+	<</if>>
 	<br><br>
+
 	<<if $promiscuity lt 75>>
-		You look at him in shock. You were not expecting that.
+		You look at <<him>> in shock. You were not expecting that.
 		<<if $promiscuity lt 35>>
-			"N-no" you stammer.
+			"N-no," you stammer.
 			<br><br>
-			"Well you made a promise" the <<person1>><<person>> says. "You better not back down."
+			"Well, you made a promise," the <<person>> says. "You better not back down."
 		<<else>>
-			You avoid his eyes and begin fidgeting nervously. After a moment you manage to stammer out "kinda".
+			You avoid <<his>> eyes and begin fidgeting nervously. After a moment you manage to stammer out "kinda."
 			<br><br>
-			"Well, that's what we're doing." the <<person1>><<person>> says, puffing up his chest to feign confidence.
+			"Well, that's what we're doing," the <<person>> says, puffing up <<his>> chest to feign confidence.
 		<</if>>
 	<<else>>
-		You giggle at him. "Of course" you say, sporting a knowing smirk.
+		You giggle at <<him>>. "Of course," you say, sporting a knowing smirk.
 		<br><br>
-		"Well good then, that's what we're doing. Comparing." the <<person1>><<person>> replies, slightly flustered at your response.
+		"Well, good then, that's what we're doing. Comparing," the <<person>> replies, slightly flustered at your response.
 	<</if>>
 	<br><br>
+	"Seeing as we're all on the same page," the <<person>> says nervously, "I'll go first."
+<</if>>
 
-	The <<person2>><<person>> glances around nervously. "Seeing as we're all on the same page, I'll go first" he says, before tugging his trousers and underwear down above his knees, bringing his <<npcpenissizetext $NPCList[1].penissize>> <<EZpenis>> into view.
-	<<if $NPCList[1].penissize is 4>>
-		You gasp audibly at the sight of such a <<EZbig>> penis, letting your eyes linger on it for a little longer than you otherwise might.
-	<<elseif $NPCList[1].penissize lte 0>>
-		You try not to laugh at the sight of such a <<EZsmall>> penis on a boy taller than you.
-	<<else>>
-		You take a moment to take in the view, before the next boy decides it's his turn.
+<<personselect $phase>><<set _npc to clone($NPCList[$phase])>>
+<<set _audience to [0,1,2,3,4,5]>><<run _audience.deleteAt($phase)>>
+
+<<if $pronoun is "f">>
+	The <<person>> <<npcUndressText _npc "upper" "self">>, <<npcRevealText _npc "upper">>.
+	<<switch _npc.breastsize>>
+		<<case 0>>
+			You smirk, as the <<group>> burst into laughter. "Look at <<his>> itty bitty nipples!" The <<trashSelect>><<person>> jeers.
+			<br><br>
+			The <<personselect $phase>><<person>> covers <<his>> nipples and blushes. "I-I like them small!" <<he>> protests. You don't think <<hes>> even convincing <<himself>>, much less you and the group.
+		<<case 1 2 3>>
+			You look at them, as the <<group>> chatter. "A bit on the small side," the <<trashSelect>><<person>> chuckles.
+			<br><br>
+			The <<trashSelect>><<person>> shakes <<his>> head. "Nah, I don't mind that size. They're perfect, really." <<He>> wiggles <<his>> fingers lewdly.
+			<br><br>
+			"I don't know which one of you I don't like more," the <<personselect $phase>> mutters, drawing laughs.
+		<<case 4 5 6>>
+			You look at them, as the <<group>> chatter. "Those are like, ideal boobs," the <<trashSelect>><<person>> says. "You'd see tits like that on magazine covers."
+			<br><br>
+			"...Thank you...?" the <<personselect $phase>><<person>> stammers, not entirely sure how to take it.
+		<<case 7 8 9>>
+			Your mouth forms an 'o' as the <<group>> gasps. "Now that's what I'm talking about!" the <<trashSelect>><<person>> cheers. "Impressive stuff."
+			<br><br>
+			The <<personselect $phase>><<person>> puffs <<his>> chest slightly, happy about the attention but still nervous to be this exposed.
+		<<case 10 11 12>>
+			You gasp audibly, along with the rest of the <<group>>. "Holy shit," the <<trashSelect>><<person>> breathes. "Those are... they're just..." <<He>> gulps. "Wow. Can those things be milked?"
+			<br><br>
+			"Why?" The <<personselect $phase>><<person>> whines, clutching <<his>> _npc.breastsdesc away. "Why would you say it like that?!"
+			<<if _npc.lactation is 1>>
+				As if on cue, <span class="lewd">a thin trail of milk dribbles down from <<his>> nipple</span>. <<His>> squeals are nearly drowned out by the group's excited yelling.
+			<</if>>
+	<</switch>>
+
+	<<if _npc.penis isnot "none">>
+		<br><br>
+		<<if $phase is 5>>
+			The other <<group>> turn toward you,
+		<<else>>
+			The <<personselect `$phase+1`>><<person>> reaches for <<his>> clothes,
+		<</if>>
+		but the <<personselect $phase>><<person>> coughs. "I actually have more." Eager, the <<group>> turns back to <<him>>.
+		<br><br>
 	<</if>>
-	<br><br>
+<</if>>
+
+<<if _npc.penis isnot "none">>
+	The <<person>> <<npcUndressText _npc "lower" "self">>, <<npcRevealText _npc "lower">>.
+	<<switch _npc.penissize>>
+		<<case -1 0>>
+			/* Currently unused. Prepared for if micropenis NPCs ever become a thing */
+			You try not to laugh at the sight. The <<group>> bursts into laughter, and the <<person>> blushes. "I-it's not that small," <<he>> whispers.
+			<br><br>
+			"Oh, it is," the <<trashSelect>><<person>> chuckles. "It's pretty much just a clit!"
+		<<case 1>>
+			You supress a smirk, as the <<group>> giggles. "Don't worry," the <<trashSelect>><<person>> soothes. "It'll grow someday."
+			<br><br>
+			The <<personselect $phase>><<person>> pouts and turns away. "Maybe I like it this size," <<he>> mutters.
+		<<case 2>>
+			You look at it, as the <<group>> chatter. "Nothing special," the <<trashSelect>><<person>> yawns. "Can we move on?"
+			<br><br>
+			"H-hey!" the <<personselect $phase>><<person>> protests. "I just showed you my dick, and 'nothing special' is all you have to say? Come on!"
+		<<case 3>>
+			Your mouth forms an 'o' as the <<group>> gasps. "Now that's a cock," the <<trashSelect>><<person>> grins. "There are penises, and then there are cocks. That right there is a cock."
+			<br><br>
+			The <<personselect $phase>><<person>> puts <<his>> hands behind <<his>> head, pretending to be bored. "I'm not even fully erect. You haven't seen anything yet."
+		<<case 4>>
+			/* Currently unused. Prepared for if max-size penis student NPCs ever become a thing */
+			You gasp audibly along with the <<group>>. Nobody seems to know what to say. The <<person>> pelvic thrusts proudly.
+	<</switch>>
+
+<<elseif $pronoun is "m">>
+	/* For boys with pussies, who have no penis and no reason to show off their nipples.
+	To ensure variety despite NPC pussies having no variable traits, phase determines variation of scene */
+	The <<person>> <<npcUndressText _npc "lower" "self">>, <<npcRevealText _npc "lower">>.
+	<<switch $phase>>
+		<<case 0>>
+			The <<group>> lets out an 'ooh' at the sight. "Wasn't expecting that one," the <<trashSelect>><<person>> mutters.
+		<<case 1>>
+			The <<group>> frowns at the sight. "Bro," the <<trashSelect>><<person>> mutters. "You have such horrible... horrible taste in underwear."
+			<br><br>
+			"Hey, they're comfy!" the <<personselect $phase>><<person>> whines. "Leave me alone."
+		<<case 2>>
+			The <<group>> chatter amongst each other for a second, before the <<trashSelect>><<person>> steps forward. "Nice," <<he>> says, giving a thumbs up. "Good job."
+			<br><br>
+			"Thanks!" The <<personselect $phase>><<person>> blinks. "Wait. What did I even do good at?"
+		<<case 3>>
+			"Now show us your ass," the <<trashSelect>><<person>> says immediately.
+			<<silently>><<him>><<set _him to _text_output>><</silently>>
+			<br><br>
+			The <<personselect $phase>><<person>>, and the rest of the <<group>>, give _him weird looks, but <<he>> nonetheless turns around and sticks <<his>> bottom out. <<He>> seems confused.
+		<<case 4>>
+			<<He>> goes so far as to spread <<his>> vagina open, giving you and the <<group>> a look inside. There are a few scattered sounds of appreciation, but nobody says anything.
+		<<case 5>>
+			"You're dripping!" the <<trashSelect>><<person>> laughs. Indeed, the <<personselect $phase>><<person>> is dripping in arousal.
+			<br><br>
+			<<if $trashCompare.girl gte 1 or $homochance gte 1>>
+				"I-I mean..." <<He>> glances at the <<trashSelect>><<persons>> exposed
+				<<if $pronoun is "f">>
+					<<print $NPCList[$index].breastdesc>>.
+				<<else>>
+					<<npcGenitals>>.
+				<</if>>
+				"How am I not supposed to be horny?" The <<person>> looks a little uncomfortable, but also flattered.
+			<<else>>
+				<<He>> blushes. "Look, I just... the thought of people looking at me is... nice." The <<group>> laughs.
+			<</if>>
+	<</switch>>
+<</if>>
+<br><br>
 
-	The <<person1>><<person>> not wanting to be left behind, digs his thumbs into his waistband and tugs them down. His <<npcpenissizetext $NPCList[0].penissize>> <<EZpenis>> bounces out of his shorts as the waistband passes over it, before he proudly presents it to you all with his arms behind his back.
-	<<if $NPCList[0].penissize is 4>>
-		You gasp audibly at the sight of such a <<EZbig>> penis, letting your eyes linger on it for a little longer than you otherwise might.
-	<<elseif $NPCList[0].penissize lte 0>>
-		You try not to laugh at the sight of such a <<EZsmall>> penis on a boy taller than you.
+<<if $phase is 5>>
+	<<personselect $phase>>
+	The <<group>> turn to look at you expectantly. "Come on," the <<person>> says. "It's your turn.
+	<<if $player.gender_appearance is "f">>
+		Show us your chest."
 	<<else>>
-		You take a moment to take in the view, before the next boy decides it's his turn.
+		Show us your junk."
 	<</if>>
 	<br><br>
 
-	The <<person3>><<person>> tugs his own shorts down. His <<npcpenissizetext $NPCList[2].penissize>> <<EZpenis>> bounces out of his shorts as the waistband passes over it, after which he lets his waistband snap back to his thighs.
-	<<if $NPCList[2].penissize is 4>>
-		You gasp audibly at the sight of such a <<EZbig>> penis, letting your eyes linger on it for a little longer than you otherwise might.
-	<<elseif $NPCList[2].penissize lte 0>>
-		You try not to laugh at the sight of such a <<EZsmall>> penis on a boy taller than you.
-	<<else>>
-		You take a moment to take in the view, before the next boy decides it's his turn.
+	<<link [[Try and back out|Trash Compare Back Out]]>><</link>>
+	<br>
+	<<if $exhibitionism gte 55>>
+		<<link [[Show them|Trash Compare Show]]>><</link>><<exhibitionist4>>
+		<br>
 	<</if>>
-	<br><br>
+<<else>>
+	<<link [[Next|Trash Compare Others]]>><<set $phase++>><</link>>
+<</if>>
+
+:: Trash Compare Back Out
+<<effects>>
+"No, I'd rather not," you say to the <<group>>.
+<br><br>
+"You made a promise," the <<person1>><<person>> retorts angrily, stepping forward. "Now you can either strip of your own free will, or we can make you." <<He>> crosses <<his>> arms. "It's ok if you feel a little embarrassed, but a promise is a promise.
+<<if $player.gender_appearance is "f">>
+	So take out your tits."
+<<else>>
+	So take out your dick."
+<</if>>
+<<stress 6>><<gstress>>
+<br><br>
+<<if $exhibitionism gte 55>>
+	<<link [[Strip|Trash Compare Show]]>><</link>><<exhibitionist4>>
+<<else>>
+	<<link [[Reluctantly strip|Trash Compare Show]]>><<set $desperateaction to 2>><</link>><<exhibitionist4>>
+<</if>>
+<br>
+<<link [[Refuse|Trash Compare Forced Strip]]>><<set $molestationstart to 1>><</link>>
+<br>
+
+:: Trash Compare Show
+<<effects>>
+<<set _audience to [0,1,2,3,4,5]>>
 
-	The <<person4>><<person>> carefully unbuttons and lowers his trousers. Hesitating for a moment, he gently peels his underwear down too. His <<npcpenissizetext $NPCList[3].penissize>> <<EZpenis>> slips out of his underwear and into the cool <<print $daystate>> air.
-	<<if $NPCList[3].penissize is 4>>
-		You gasp audibly at the sight of such a <<EZbig>> penis, letting your eyes linger on it for a little longer than you otherwise might.
-	<<elseif $NPCList[3].penissize lte 0>>
-		You try not to laugh at the sight of such a <<EZsmall>> penis on a boy taller than you.
+<<if $player.gender_appearance is "f">>
+	<<if $exhibitionism gte 55>>
+		"My turn," you say with a grin, before grasping your $worn.upper.name.
 	<<else>>
-		You take a moment to take in the view, before the next boy decides it's his turn.
+		You nervously grasp your $worn.upper.name.
 	<</if>>
-	<br><br>
+	<<pullupall>> <<flaunting>> you watch for their reactions.
+	<<upperstrip>><<exposure>>
+	<<exhibitionism4>>
 
-	The <<person6>><<person>> hesitates for a second, then pulls his trousers down in one smooth, fluid motion. His <<npcpenissizetext $NPCList[5].penissize>> <<EZpenis>> slips out and into your view once his waistband passes the tip. He wasn't wearing underwear.
-	<<if $NPCList[5].penissize is 4>>
-		You gasp audibly at the sight of such a <<EZbig>> penis, letting your eyes linger on it for a little longer than you otherwise might.
-	<<elseif $NPCList[5].penissize lte 0>>
-		You try not to laugh at the sight of such a <<EZsmall>> penis on a boy taller than you.
+	<<switch $player.breastsize>>
+		<<case 0>>
+			<<set _result to "flat">>
+			The <<group>> burst into laughter. "<<pShes>> flat as a board!" the <<trashSelect>><<person>> jeers.
+			<br><br>
+			<<if $player.gender is "m" or $acceptance_breasts_tiny gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_tiny" 2>><<ginsecurity "breasts_tiny">>
+			<</if>>
+		<<case 1 2 3>>
+			The <<group>> chuckle as they examine your <<breasts>>. "A bit on the small side," the <<trashSelect>><<person>> says.
+			<br><br>
+			<<if $player.gender is "m" or $acceptance_breasts_tiny gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">>
+			<</if>>
+		<<case 4 5 6>>
+			The <<group>> chatter at the sight of your <<breasts>>. "Pretty nice," the <<trashSelect>><<person>> says, smiling. "Decent size." The others nod their agreement.
+			<br><br>
+			<<if $player.gender is "f" or $acceptance_breasts_big gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Despite <<his>> kind tone, shame rises, and blood rushes to your face.
+				<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+			<</if>>
+		<<case 7 8 9>>
+			The <<group>> lets out scattered sounds of awe. The <<trashSelect>><<person>> gives a low whistle. "Now those are tits with some heft to them."
+			<br><br>
+			<<if $player.gender is "f" or $acceptance_breasts_big gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+			<</if>>
+		<<case 10 11 12>>
+			"Holy shit," the <<trashSelect>><<person>> gasps. The rest of the <<group>> follows suit. The <<person>> grins and mimes milking a cow. "<<pShes>> massive. You could drown in those!"
+			<br><br>
+			<<if $acceptance_breasts_big gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+			<</if>>
+			<<if $trashCompare.girl gte 1 and $deviancy gte 55>>
+				<<set _result to "breastEnvy">>
+				You notice one of the girls staring at you in envy. <span class="lewd">A lewd idea strikes you.</span> You might be able to help the girl. You might even be able to make a little money from it.
+			<</if>>
+	<</switch>>
+
+<<else>>
+	<<if $exhibitionism gte 55>>
+		"My turn," you say with a grin, before grasping your $worn.lower.name.
 	<<else>>
-		You take a moment to take in the view, before the next boy decides it's his turn.
+		You nervously grasp your $worn.lower.name.
 	<</if>>
-	<br><br>
+	<<pulldownall>> <<flaunting>> you watch for their reactions.
+	<<lowerstrip>><<exposure>>
+	<<exhibitionism4>>
 
-	The <<person5>><<person>> laughs nervously and scratches an itch on his arm. With the eyes of the other boys on him he gulps nervously, then slowly lowers his trousers and underwear. A few moments later you're all staring at his <<npcpenissizetext $NPCList[4].penissize>> <<EZpenis>> while he nervously shifts his weight from foot to foot.
-	<<if $NPCList[4].penissize is 4>>
-		You gasp audibly at the sight of such a <<EZbig>> penis, letting your eyes linger on it for a little longer than you otherwise might.
-	<<elseif $NPCList[4].penissize lte 0>>
-		You try not to laugh at the sight of such a <<EZsmall>> penis on a boy taller than you.
+	<<if $worn.genitals.type.includes("chastity")>>
+		The <<group>> groan in disappointment at the sight of your chastity belt. "What the fuck is that?" the <<trashSelect>><<person>> asks, waving <<his>> arms at your $worn.genitals.name in disappointment. "How is that fair? Stupid prude."
+		<br><br>
+		<<He>> steps forward, and points at you. "I think we should rip it off, just to teach you a lesson." <<He>> stomps your way.
+		<<stress 6>><<gstress>>
+		<br><br>
+		<<Hes>> pulled back by the <<trashSelect>><<person>>, who huffs. "What? No, we're not doing that. That's dumb. I'm not being a part of that."
+	<<elseif $player.penisExist>>
+		<<switch $player.penissize>>
+			<<case -2>>
+				The <<group>> burst into uncontrollable laughter. "That's the smallest thing I've ever seen!" the <<trashSelect>><<person>> coos. "Aww, who's a little guy? Can it even get erect?"
+				<br><br>
+				<<if $acceptance_penis_tiny gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_tiny" 2>><<ginsecurity "penis_tiny">>
+				<</if>>
+			<<case -1 0>>
+				The <<group>> turn to each other, before laughing. "Anyone have a microscope?" the <<trashSelect>><<person>> jokes.
+				<br><br>
+				<<if $acceptance_penis_tiny gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_tiny" 2>><<ginsecurity "penis_tiny">>
+				<</if>>
+			<<case 1>>
+				The <<group>> look down at your <<penis>>, and a couple let out small chuckles. "A little on the small side," the <<trashSelect>><<person>> says. "It's no big deal."
+				<br><br>
+				<<if $acceptance_penis_small gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_small" 2>><<ginsecurity "penis_small">>
+				<</if>>
+			<<case 2>>
+				The <<group>> look down at your <<penis>>, muttering. "Not a bad size," the <<trashSelect>><<person>> says. "Not too big, but not too small."
+			<<case 3>>
+				The <<group>> look down at your <<penis>>, with a few letting out small gasps. "Bigger than I expected," the <<trashSelect>><<person>> says. "Not that that's a bad thing."
+				<br><br>
+				<<if $acceptance_penis_big gte 1000>>
+					You're glad they're impressed.
+				<<else>>
+					Despite <<his>> kind tone, shame rises, and blood rushes to your face.
+					<<insecurity "penis_big" 2>><<ginsecurity "penis_big">>
+				<</if>>
+			<<case 4>>
+				"Holy shit," the <<trashSelect>><<person>> whispers. "It's a fucking monster." The rest of the <<group>> gapes in shock.
+				<br><br>
+				<<if $acceptance_penis_big gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_big" 2>><<ginsecurity "penis_big">>
+				<</if>>
+				<<if $trashCompare.penis gte 1 and $deviancy gte 55>>
+					<<set _result to "penisEnvy">>
+					You notice one of the boys staring at you in envy. <span class="lewd">A lewd idea strikes you.</span> You might be able to help the boy. You might even be able to make a little money from it.
+				<</if>>
+		<</switch>>
+		<<if $player.gender is "h">>
+			<<set _result to "herm">>
+			<br><br>
+			"Hey, wait!" the <<trashSelect>><<person>> shouts. "Look! <<pShe>> has a pussy too!" There are scattered sounds of amazement as the rest of the <<group>> shuffles to get a better angle.
+		<</if>>
 	<<else>>
-		You take a moment to take in the view.
+		<<set _result to "vagina">>
+		The <<group>> gasp in surprise at your <<genitals>>. "Wow, you're a girl?" the <<trashSelect>><<person>> says. The <<trashSelect>><<person>> seems both annoyed and aroused, clearly displeased at your deception but willing to let it go since you played fair. They seem almost entranced by your <<pussy>>, unable to pull their eyes away from it.
 	<</if>>
-	<br><br>
+<</if>>
+<br><br>
 
-	The boys turn to look at you expectantly, it's your turn.
+<<if _result is "vagina" or _result is "herm">>
+	The <<trashSelect>><<person>> looks at you hopefully. "Hey, since we showed everything... could you show us your breasts too?" <<He>> rubs the back of <<his>> neck.
+	<<if _result is "vagina">>
+		"If we knew you were a girl, we'd have asked you to take your top off in the first place."
+	<<else>>
+		"If you have both sets, do you have boobs too?"
+	<</if>>
 	<br><br>
 
-	<<link [[Try and back out|Trash Boys Back Out]]>><</link>>
+	<<link [[Refuse|Trash Compare Breast Refuse]]>><</link>>
 	<br>
 	<<if $exhibitionism gte 55>>
-		<<link [[Show them yours|Trash Boys Show]]>><</link>><<exhibitionist4>>
-		<br>
+		<<link [[Show them|Trash Compare Breasts Show]]>><</link>><<exhibitionist4>>
 	<</if>>
 
-:: Trash Boys Back Out
-<<effects>>
-	"No, I'd rather not" you say to the boys.
+<<elseif _result is "flat">>
+	The <<trashSelect>><<person>> crosses <<his>> arms. "I dunno about the rest of you, but I'm suspicious of <<pher>> chest. <<pShes>> really, really flat." <<His>> eyes narrow. "As flat as a boy."
 	<br><br>
-	"You made a promise" the <<person1>><<person>> retorts angrily, stepping forward. "Now you can either strip of your own free will, or we can make you" He states flatly. "It's ok if you feel a little embarrassed, but a promise is a promise."
+
+	<<He>> takes a step forward. "Show us your pussy. Or, if I'm right... your penis."
 	<br><br>
+
+	<<link [[Refuse|Trash Compare Penis Refuse]]>><</link>>
+	<br>
 	<<if $exhibitionism gte 55>>
-		<<link [[Strip|Trash Boys Show]]>><</link>><<exhibitionist4>>
-		<br>
+		<<link [[Show them|Trash Compare Penis Show]]>><</link>><<exhibitionist4>>
 	<</if>>
-	<<link [[Refuse|Trash Boys Forced Strip]]>><<set $molestationstart to 1>><</link>>
+
+<<elseif _result is "breastEnvy">>
+	<<link [[Offer to help the envious girl for a fee|Trash Compare Breast Secret]]>><</link>>
 	<br>
+	<<link [[Wrap things up|Trash Compare Wrap It Up]]>><</link>>
 
-:: Trash Boys Show
-<<effects>>
-	<<if $uncomfortable.nude is false>>
-		"My turn" you say while grinning, before plunging your pants <<if !$worn.under_lower.exposed>>and underwear <</if>>down your thighs and past your knees in one fluid motion. You push your pelvis forward and place your hands behind your back so everyone gets a good look.
-	<<else>>
-		You nervously hook your thumbs into your waistband before hesitating, unsure if you really want to show a bunch of strangers your privates. Realising there's no way out of this but forward, you swallow your modesty and bring your trousers <<if !$worn.under_lower.exposed>>and underwear <</if>>down to your knees. With your <<genitals>> now exposed to the other boys you shift your weight nervously, your momentary bravado gone and the embarrassment from letting 6 other boys see your bare <<undies>> setting in.
-	<</if>>
+<<elseif _result is "penisEnvy">>
+	<<link [[Offer to help the envious boy for a fee|Trash Compare Penis Secret]]>><</link>>
+	<br>
+	<<link [[Wrap things up|Trash Compare Wrap It Up]]>><</link>>
+
+<<else>>
+	"Umm, I think we've all seen each other now," the <<trashSelect>><<person>> says, gathering <<his>> clothes. "Think I'll head out."
 	<br><br>
-	<<if $player.penisExist>>
-		<<if $player.penissize lte 0>>
-			The boys look down at your <<EZsmall>> <<EZpenis>> and then turn to each other, before breaking out into laughter. <<Penisremarkquote>> one of the boys says. "Don't worry, maybe it's still got some growing to do" says one of the other boys, trying not to laugh as he comforts you.
-			<<incggpenisinsecurity>>
-			<br><br>
-			You feel humiliated<<if $uncomfortable.nude is true>>, first you let a bunch of strangers look at your <<undies>> and now this<</if>>. You do your best to keep from crying as the boys settle down, but the laughter and the comments about your size hurt.
-		<<elseif $player.penissize is 4>>
-			The boys look down at your <<EZbig>> <<EZpenis>> and gasp in surprise. <<Penisremarkquote>> one of the boys says. "I wish I had a dick that big" says one of the boys.
-			<br><br>
-			You feel a surge of pride as the boys express their awe at the size of your penis.
-			<<if $deviancy gte 75>>
-				A naughty thought occurs to you. You might be able to help the boy. You might even be able to make a little money from it.
-			<</if>>
-		<<elseif $player.penissize is 3>>
-			The boys look down at your <<penis>> for a moment, and few of them gasp a little. "Wow, you're bigger than I thought you would be" one of them says. "Not that much bigger" says another, sheepishly.
-			<br><br>
-			You feel a little proud of the reactions you got, even if the other boy doesn't seem too impressed. It's kinda nice being the centre of attention like this.
-		<<elseif $player.penissize is 1>>
-			The boys look down at your <<penis>> for a moment, and a couple of them let out a small chuckle. "A little on the small side there, buddy" one of them says. "Don't worry about it, it's no big deal" says another.
-			<br><br>
-			You feel a little embarrassed by their reaction, but the other boy doesn't think it's too bad so you're not too bothered by them. It's kinda nice being the centre of attention like this though.
+
+	"Yeah, me too," the <<trashSelect>><<person>> agrees. The rest of the <<group>> nod in agreement and follow <<him>> in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person>> glances at you once last time and gives you a flirtatious wink, before joining the rest.
+	<br><br>
+	<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
+<</if>>
+
+:: Trash Compare Penis Secret
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
+"I can think of a way to help with that," you say to the envious boy. All the boys' ears perk at that, you clearly have their interest. "There's a way you can make your penis grow permanently," you state confidently. "I'll tell it to you, but it'll cost you."
+<br><br>
+
+<<set _offer to random(3001, 8999)>>
+The boys react initially like they want to be angry, but soon realise the offer is worth it.
+<<if $trashCompare.girl gte 1>>The girls decide they're interested too, and add their money to the pool.<</if>>
+Talking together they search their pockets and manage to produce a total of <<printmoney _offer>> from the change in their pockets. "It's all we have on us," the <<trashSelect>><<person>> says.
+<br><br>
+
+Grinning, you take their money and tell them about the urchin parasites they can find in the sea, and how if you let them stay on your penis they make it grow. You neglect to tell them about how it likes to pleasure them too. You can only imagine the boys attempting to try this before realising in shock what it's doing to them and that they can't get it off without showing their <<EZpenis>> to a doctor.
+<<arousal 1000>><<garousal>>
+<<set $money += _offer>>
+<br><br>
+
+Grateful and no doubt full of hopeful thoughts of huge penises swinging between their legs, the boys get dressed and make their way on out. You follow suit and get dressed yourself.
+<br><br>
+
+<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
+
+:: Trash Compare Breast Secret
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
+"I can think of a way to help with that," you say to the envious girl. All the girls' ears perk at that, you clearly have their interest. "There's a way you can make your penis grow permanently," you state confidently. "I'll tell it to you, but it'll cost you."
+<br><br>
+
+<<set _offer to random(3001, 8999)>>
+The girls react initially like they want to be angry, but soon realise the offer is worth it.
+<<if $trashCompare.girl lt 5>>The boys decide they're interested too, and add their money to the pool.<</if>>
+Talking together they search their pockets and manage to produce a total of <<printmoney _offer>> from the change in their pockets. "It's all we have on us," the <<trashSelect>><<person>> says.
+<br><br>
+
+Grinning, you take their money and tell them about the urchin parasites they can find in the sea, and how if you let them stay on your breasts they make them grow. You neglect to tell them about how it likes to pleasure them too. You can only imagine the girls attempting to try this before realising in shock what it's doing to them and that they can't get it off without showing their breasts to a doctor.
+<<arousal 1000>><<garousal>>
+<<set $money += _offer>>
+<br><br>
+
+Grateful and no doubt full of hopeful thoughts of huge tits swaying on their chests, the girls get dressed and make their way on out. You follow suit and get dressed yourself.
+<br><br>
+
+<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
+
+:: Trash Compare Wrap It Up
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
+"Umm, I think we've all seen each other now," you say, gathering your clothes.
+<br><br>
+
+"Yeah, me too," the <<trashSelect>><<person>> agrees. The rest of the <<group>> nod in agreement and follow <<him>> in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person>> glances at you once last time and gives you a flirtatious wink, before joining the rest.
+<br><br>
+
+<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
+
+:: Trash Compare Breasts Refuse
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
+You clutch your breasts defensively. "I'd rather not," you tell them.
+<br><br>
+
+The <<person>> looks disappointed, but nods in understanding. "Sorry," <<he>> says. "We were just curious." The other <<group>> nod in agreement, clearly wanting to respect your boundaries, much to your relief.
+<br><br>
+
+"Think it's time we head out," the <<trashSelect>><<person>> says. The rest of the <<group>> nod in agreement and follow <<him>> in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person>> glances at you once last time and gives you a flirtatious wink, before joining the rest.
+<br><br>
+<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
+
+:: Trash Compare Breasts Show All
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
+
+You grin, before grasping your $worn.upper.name.
+<<pullupall>> <<flaunting>> you watch for their reactions.
+<<upperstrip>><<exposure>>
+<<exhibitionism4>>
+
+<<switch $player.breastsize>>
+	<<case 0>>
+		The <<group>> burst into laughter. "<<pShes>> flat as a board!" the <<trashSelect>><<person>> jeers.
+		<br><br>
+		<<if $player.gender is "m" or $acceptance_breasts_tiny gte 1000>>
+			You're not particularly bothered.
 		<<else>>
-			The boys look down at your <<penis>> for a moment. "Not a bad size" one of them says. "Not the biggest, but not small either" another agrees.
-			<br><br>
-			You feel proud of your <<penis>>, even if it's not especially big. It's kinda nice being the centre of attention like this.
+			Shame rises, and blood rushes to your face.
+			<<insecurity "breasts_tiny" 2>><<ginsecurity "breasts_tiny">>
 		<</if>>
-
+	<<case 1 2 3>>
+		The <<group>> chuckle as they examine your <<breasts>>. "A bit on the small side," the <<trashSelect>><<person>> says.
 		<br><br>
-		<<if $player.penissize is 4 and $deviancy gte 75>>
-			<<link [[Offer to help the envious boy for a fee|Trash Boys Offer Secret]]>><</link>>
-			<br>
-			<<link [[Wrap things up|Trash Boys Wrap It Up]]>><</link>>
+		<<if $player.gender is "m" or $acceptance_breasts_tiny gte 1000>>
+			You're not particularly bothered.
 		<<else>>
-			"Umm, I think we've all seen each other now" the <<person5>><<person>> says, pulling up his trousers. "Yeah" the <<person3>><<person>> agrees. The rest of the boys nod in agreement and follow them in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person4>><<person>> lingers a little longer than the others, Struggling to button up his pants. Eventually he manages to get it buttoned, and runs to catch up to the others on their way out.
-			<br><br>
-			<<exhibitionism4>>
-			<br><br>
-			<<link [[Leave|Trash]]>><<endevent>><</link>>
+			Shame rises, and blood rushes to your face.
+			<<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">>
 		<</if>>
-	<<else>>
-		The boys gasp in surprise at your <<genitals>>. "Wow, you're a girl?" the <<person2>><<person>> says. The <<person1>><<person>> seems both annoyed and aroused, clearly displeased at your deception but willing to let it go since you played fair. The boys seem almost entranced by your <<pussy>>, unable to pull their eyes away from it.
+	<<case 4 5 6>>
+		The <<group>> chatter at the sight of your <<breasts>>. "Pretty nice," the <<trashSelect>><<person>> says, smiling. "Decent size." The others nod their agreement.
 		<br><br>
-		You feel proud of your <<pussy>> and it's ability to command the boys' attention. It's kinda nice being the centre of attention like this.
+		<<if $player.gender is "f" or $acceptance_breasts_big gte 1000>>
+			You're not particularly bothered.
+		<<else>>
+			Despite <<his>> kind tone, shame rises, and blood rushes to your face.
+			<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+		<</if>>
+	<<case 7 8 9>>
+		The <<group>> lets out scattered sounds of awe. The <<trashSelect>><<person>> gives a low whistle. "Now those are tits with some heft to them."
 		<br><br>
-		<<if random(1, 5) gte 3>>
-			"Umm," the <<person4>><<person>> stammers. "Could we erm, see your breasts too?" he asks. "We did show you everything of ours, after all."
-			<br><br>
-			<<link [[Refuse|Trash Boys Crossdressing Refuse]]>><</link>>
-			<br>
-			<<link [[Show them everything|Trash Boys Crossdressing Show All]]>><</link>>
+		<<if $player.gender is "f" or $acceptance_breasts_big gte 1000>>
+			You're not particularly bothered.
 		<<else>>
-			"Umm, I think we've all seen each other now" the <<person5>><<person>> says, pulling up his trousers. "Yeah" the <<person3>><<person>> agrees. The rest of the boys nod in agreement and follow them in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person4>><<person>> lingers a little longer than the others, fidgeting with his waistband. He manages to stammer out "bye", before he runs to catch up to the others on their way out.
-			<br><br>
-			<<exhibitionism4>>
-			<br><br>
-			<<link [[Leave|Trash]]>><<endevent>><</link>>
+			Shame rises, and blood rushes to your face.
+			<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
 		<</if>>
-	<</if>>
+	<<case 10 11 12>>
+		"Holy shit," the <<trashSelect>><<person>> gasps. The rest of the <<group>> follows suit. The <<person>> grins and mimes milking a cow. "<<pShes>> massive. You could drown in those!"
+		<br><br>
+		<<if $acceptance_breasts_big gte 1000>>
+			You're not particularly bothered.
+		<<else>>
+			Shame rises, and blood rushes to your face.
+			<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+		<</if>>
+<</switch>>
+<br><br>
 
-:: Trash Boys Offer Secret
-<<effects>>
-	"I can think of a way to help with that" you say to the envious boy. All the boys ears perk at that, you clearly have their interest. "There's a way you can make your penis grow permanently" you state confidently. "I'll tell it to you, but it'll cost you."
-	<br><br>
-	<<set _offer to random(3001, 8999)>>
-	The boys react initially like they want to be angry, but soon realise the offer is worth it. Talking together they search their pockets and manage to produce a total of <<printmoney _offer>> from the change in their pockets. "It's all we have on us" the <<person1>><<person>> says.
-	<br><br>
-	Grinning, you take their money and tell them about the urchin parasites they can find in the sea, and how if you let them stay on your penis they make it grow. You neglect to tell them about how it likes to pleasure them too. You can only imagine the boys attempting to try this before realising in shock what it's doing to them and that they can't get it off without showing their <<EZpenis>> to a doctor.
-	<<arousal 1000>><<garousal>>
-	<<set $money += _offer>>
-	<br><br>
-	Grateful and no doubt full of hopeful thoughts of huge penises swinging between their legs, the boys get dressed and make their way on out. You follow suit and get dressed yourself.
-	<br><br>
-	<<exhibitionism4>>
-	<br><br>
-	<<link [[Leave|Trash]]>><<endevent>><</link>>
+"Umm, I think we've all seen each other now," you say, gathering your clothes.
+<br><br>
 
-:: Trash Boys Wrap It Up
-<<effects>>
-	"Umm, I think we've all seen each other now" you say, pulling up your trousers. "Yeah" the <<person3>><<person>> agrees. The rest of the boys nod in agreement and follow you in getting dressed again. The <<person4>><<person>> lingers a little longer than the others, Struggling to button up his pants. Eventually he manages to get it buttoned, and runs to catch up to the others on their way out.
-	<br><br>
-	<<exhibitionism4>>
-	<br><br>
-	<<link [[Leave|Trash]]>><<endevent>><</link>>
+"Yeah, me too," the <<trashSelect>><<person>> agrees. The rest of the <<group>> nod in agreement and follow <<him>> in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person>> glances at you once last time and gives you a flirtatious wink, before joining the rest.
+<br><br>
 
-:: Trash Boys Crossdressing Refuse
-<<effects>>
-	You clutch your breasts defensively. "I'd rather not" you tell them.
-	<br><br>
-	The boy looks disappointed but nods understandingly. "Sorry" he says. "It's not often we get a girl doing this sort of thing with us." The other boys nod in agreement, clearly wanting to respect your boundaries, much to your relief. You are alone in this place with 6 boys, after all. If they really wanted to see your breasts they could make you, but it seems the boys aren't that sort.
-	<br><br>
-	<<exhibitionism4>>
-	<br><br>
-	<<link [[Leave|Trash]]>><<endevent>><</link>>
+<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
 
-:: Trash Boys Crossdressing Show All
-<<effects>>
-	Breathlessly you lift your shirt over your chest, exposing your <<breasts>> to the enthralled boys.
-	<br><br>
-	"Wow" the <<person4>><<person>> says. "They're beautiful." The other boys nods in agreement, not saying much but content to look at your now completely exposed body in awe.
-	<br><br>
-	"Thanks" you say, blushing at the compliments and the attention. You feel excited totally exposing yourself to these boys you've never met before, you can practically feel their gaze travelling across your naked body. You wish you could stay like this forever, but eventually the boys start to break from their reverie. "Um, I think we've all seen each other now" you say to the boys, causing them to snap back into reality.
-	<br><br>
-	"Yeah, sorry" the <<person5>><<person>> says, before pulling up his trousers. The rest of you follow suit putting your clothes on, with the <<person4>><<person>> lagging behind a bit. As the rest of the boys start trudging off the <<person4>><<person>> lingers a moment, as if he has something he wants to say. Eventually he manages to stammer out a "bye", before running off to catch up with his friends.
-	<br><br>
-	<<exhibitionism4>>
-	<br><br>
-	<<link [[Leave|Trash]]>><<endevent>><</link>>
+:: Trash Compare Penis Refuse
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
+You cover your crotch defensively. "I'd rather not," you tell them.
+<br><br>
 
-:: Trash Boys Forced Strip
-	<<if $molestationstart is 1>>
-		<<set $molestationstart to 0>>
-		<<set $outside to 1>><<effects>>
+The <<person>> looks disappointed, but nods in understanding. "Sorry," <<he>> says. "We were just curious." The other <<group>> nod in agreement, clearly wanting to respect your boundaries, much to your relief.
+<br><br>
+
+"Think it's time we head out," the <<trashSelect>><<person>> says. The rest of the <<group>> nod in agreement and follow <<him>> in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person>> glances at you once last time and gives you a flirtatious wink, before joining the rest.
+<br><br>
+<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
 
-		<<controlloss>>
-		<<violence 1>>
-		<<neutral 1>>
-		<<molested>>
+:: Trash Compare Penis Show All
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
 
-		<<maninit>><<npcidlegenitals>>
+"My turn," you say with a grin, before grasping your $worn.lower.name.
+<<pulldownall>> <<flaunting>> you watch for their reactions.
+<<lowerstrip>><<exposure>>
+<<exhibitionism4>>
 
-		"You're going to keep your promise" the <<person1>><<person>> says. "Whether you want to or not."
+<<if $worn.genitals.type.includes("chastity")>>
+	The <<group>> groan in disappointment at the sight of your chastity belt. "What the fuck is that?" the <<trashSelect>><<person>> asks, waving <<his>> arms at your $worn.genitals.name in disappointment. "How is that fair? Stupid prude."
+	<br><br>
+	<<He>> steps forward, and points at you. "I think we should rip it off, just to teach you a lesson." <<He>> stomps your way.
+	<<stress 6>><<gstress>>
+	<br><br>
+	<<Hes>> pulled back by the <<trashSelect>><<person>>, who huffs. "What? No, we're not doing that. That's dumb. I'm not being a part of that."
+<<elseif $player.penisExist>>
+	<<switch $player.penissize>>
+		<<case -2>>
+			The <<group>> burst into uncontrollable laughter. "That's the smallest thing I've ever seen!" the <<trashSelect>><<person>> coos. "Aww, who's a little guy? Can it even get erect?"
+			<br><br>
+			<<if $acceptance_penis_tiny gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "penis_tiny" 2>><<ginsecurity "penis_tiny">>
+			<</if>>
+		<<case -1 0>>
+			The <<group>> turn to each other, before laughing. "Anyone have a microscope?" the <<trashSelect>><<person>> jokes.
+			<br><br>
+			<<if $acceptance_penis_tiny gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "penis_tiny" 2>><<ginsecurity "penis_tiny">>
+			<</if>>
+		<<case 1>>
+			The <<group>> look down at your <<penis>>, and a couple let out small chuckles. "A little on the small side," the <<trashSelect>><<person>> says. "It's no big deal."
+			<br><br>
+			<<if $acceptance_penis_small gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "penis_small" 2>><<ginsecurity "penis_small">>
+			<</if>>
+		<<case 2>>
+			The <<group>> look down at your <<penis>>, muttering. "Not a bad size," the <<trashSelect>><<person>> says. "Not too big, but not too small."
+		<<case 3>>
+			The <<group>> look down at your <<penis>>, with a few letting out small gasps. "Bigger than I expected," the <<trashSelect>><<person>> says. "Not that that's a bad thing."
+			<br><br>
+			<<if $acceptance_penis_big gte 1000>>
+				You're glad they're impressed.
+			<<else>>
+				Despite <<his>> kind tone, shame rises, and blood rushes to your face.
+				<<insecurity "penis_big" 2>><<ginsecurity "penis_big">>
+			<</if>>
+		<<case 4>>
+			"Holy shit," the <<trashSelect>><<person>> whispers. "It's a fucking monster." The rest of the <<group>> gapes in shock.
+			<br><br>
+			<<if $acceptance_penis_big gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "penis_big" 2>><<ginsecurity "penis_big">>
+			<</if>>
+			<<if $trashCompare.penis gte 1 and $deviancy gte 55>>
+				You notice one of the boys staring at you in envy. <span class="lewd">A lewd idea strikes you.</span> You might be able to help the boy. You might even be able to make a little money from it.
+			<</if>>
+	<</switch>>
+	<<if $player.gender is "h">>
 		<br><br>
+		"Hey, wait!" the <<trashSelect>><<person>> shouts. "Look! <<pShe>> has a pussy too!" There are scattered sounds of amazement as the rest of the <<group>> shuffles to get a better angle.
 	<</if>>
+<<else>>
+	The <<group>> gasp in surprise at your <<genitals>>. "Wow, you're actually a girl?" the <<trashSelect>><<person>> says. "Sorry, with how flat you were, we thought for sure you were... well."
+<</if>>
+<br><br>
 
-	<<effects>>
-	<<effectsman>><<man>>
+"Umm, I think we've all seen each other now," you say, gathering your clothes.
+<br><br>
+
+"Yeah, me too," the <<trashSelect>><<person>> agrees. The rest of the <<group>> nod in agreement and follow <<him>> in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person>> glances at you once last time and gives you a flirtatious wink, before joining the rest.
+<br><br>
+
+<<link [[Leave|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
+
+:: Trash Compare Forced Strip
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<set $outside to 1>><<effects>>
 
-	<<stateman>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>><<npcidlegenitals>><<npcstrip>>
+	<<set $enemyanger to 50>><<set $enemytrust to -50>><<set $noBodyWriting to true>>
+
+	"You're going to keep your promise," the <<person1>><<person>> says. "Whether you want to or not."
 	<br><br>
-	<<actionsman>>
-	<<if $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked") and $worn.under_lower.type.includes("naked") and $worn.under_upper.type.includes("naked")>>
-		<span id="next"><<link [[Next|Trash Boys Combat Loss]]>><</link>></span><<nexttext>>
-	<<elseif $enemyhealth lte 0>>
-		<span id="next"><<link [[Next|Trash Boys Combat Win]]>><</link>></span><<nexttext>>
-	<<else>>
-		<span id="next"><<link [[Next|Trash Boys Forced Strip]]>><</link>></span><<nexttext>>
-	<</if>>
+<</if>>
 
-:: Trash Boys Combat Win
 <<effects>>
+<<effectsman>><<man>>
 
-You shove the boys away from you. <<tearful>> you run to safety.
+<<stateman>>
+<br><br>
+<<actionsman>>
+<<if $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked") and $worn.under_lower.type.includes("naked") and $worn.under_upper.type.includes("naked")>>
+	<span id="next"><<link [[Next|Trash Compare Combat Loss]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Trash Compare Combat Win]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Trash Compare Combat Win]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Trash Compare Forced Strip]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Trash Compare Combat Win
+<<effects>>
+
+You shove the <<group>> away from you. <<tearful>> you run to safety.
 <br><br>
 
 <<endcombat>>
 <<clotheson>>
 
-<<link [[Next|Trash]]>><</link>>
+<<link [[Next|Trash]]>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
 <br>
 
-:: Trash Boys Combat Loss
-<<effects>>
-	The boys hold your hands behind your back. "You should have kept your promise, then we wouldn't have had to do this" the <<person1>><<person>> says.
-	<br><br>
-	The boys gather around to have a good look at your naked body.
-	<<if $player.penisExist>>
-		<<if $player.penissize lte 0>>
-			The boys look down at your <<EZsmall>> <<EZpenis>> and then turn to each other, before breaking out into laughter. <<Penisremarkquote>> one of the boys says. "Don't worry, maybe it's still got some growing to do" says one of the other boys, trying not to laugh as he comforts you.
-			<<incggpenisinsecurity>>
+:: Trash Compare Combat Loss
+<<effects>><<set _audience to [0,1,2,3,4,5]>>
+The <<group>> hold your hands behind your back. "You should have kept your promise, then we wouldn't have had to do this," the <<person1>><<person>> says.
+<br><br>
+They gather around to have a good look at your naked body.
+<<if $player.gender_appearance is "f">>
+	<<switch $player.breastsize>>
+		<<case 0>>
+			<<set _result to "flat">>
+			The <<group>> burst into laughter. "<<pShes>> flat as a board!" the <<trashSelect>><<person>> jeers.
 			<br><br>
-			You feel humiliated<<if $uncomfortable.nude is true>>, first a bunch of strangers strip you naked and look at your <<undies>> and now this<</if>>. You do your best to keep from crying as the boys settle down, but the laughter and the comments about your size hurt.
-		<<elseif $player.penissize is 4>>
-			The boys look down at your <<EZbig>> <<EZpenis>> and gasp in surprise. <<Penisremarkquote>> one of the boys says. "I wish I had a dick that big" says one of the boys.
+			<<if $player.gender is "m" or $acceptance_breasts_tiny gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_tiny" 2>><<ginsecurity "breasts_tiny">>
+			<</if>>
+		<<case 1 2 3>>
+			The <<group>> chuckle as they examine your <<breasts>>. "A bit on the small side," the <<trashSelect>><<person>> says.
 			<br><br>
-			You feel a surge of pride as the boys express their awe at the size of your penis.
-		<<elseif $player.penissize is 3>>
-			The boys look down at your <<penis>> for a moment, and few of them gasp a little. "Wow, you're bigger than I thought you would be" one of them says. "Not that much bigger" says another, sheepishly.
+			<<if $player.gender is "m" or $acceptance_breasts_tiny gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">>
+			<</if>>
+		<<case 4 5 6>>
+			The <<group>> chatter at the sight of your <<breasts>>. "Pretty nice," the <<trashSelect>><<person>> says, smiling. "Decent size." The others nod their agreement.
 			<br><br>
-			You feel a little proud of the reactions you got, even if the other boy doesn't seem too impressed. It's kinda nice being the centre of attention like this.
-		<<elseif $player.penissize is 1>>
-			The boys look down at your <<penis>> for a moment, and a couple of them let out a small chuckle. "A little on the small side there, buddy" one of them says. "Don't worry about it, it's no big deal" says another.
+			<<if $player.gender is "f" or $acceptance_breasts_big gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Despite <<his>> kind tone, shame rises, and blood rushes to your face.
+				<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+			<</if>>
+		<<case 7 8 9>>
+			The <<group>> lets out scattered sounds of awe. The <<trashSelect>><<person>> gives a low whistle. "Now those are tits with some heft to them."
 			<br><br>
-			You feel a little embarrassed by their reaction, but the other boy doesn't think it's too bad so you're not too bothered by them. It's kinda nice being the centre of attention like this though.
-		<<else>>
-			The boys look down at your <<penis>> for a moment. "Not a bad size" one of them says. "Not the biggest, but not small either" another agrees.
+			<<if $player.gender is "f" or $acceptance_breasts_big gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+			<</if>>
+		<<case 10 11 12>>
+			"Holy shit," the <<trashSelect>><<person>> gasps. The rest of the <<group>> follows suit. The <<person>> grins and mimes milking a cow. "<<pShes>> massive. You could drown in those!"
 			<br><br>
-			You feel proud of your <<penis>>, even if it's not especially big. It's kinda nice being the centre of attention like this.
-		<</if>>
-		<br><br>
-		"Umm, I think we've all seen each other now" the <<person5>><<person>> says, pulling up his trousers. "Yeah" the <<person3>><<person>> agrees. The rest of the boys nod in agreement and let you go. You quickly grab your clothes and scramble to get dressed again. The <<person4>><<person>> lingers a little longer than the others, Struggling to button up his pants. Eventually he manages to get it buttoned, and runs to catch up to the others on their way out.
-	<<else>>
-		The boys gasp in surprise at your <<genitals>>. "Wow, you're a girl?" the <<person2>><<person>> says. The <<person1>><<person>> seems both annoyed and aroused, clearly displeased at your deception but willing to let it go since in the end they got what they wanted. The boys seem almost entranced by your <<pussy>>, unable to pull their eyes away from it.
+			<<if $acceptance_breasts_big gte 1000>>
+				You're not particularly bothered.
+			<<else>>
+				Shame rises, and blood rushes to your face.
+				<<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">>
+			<</if>>
+	<</switch>>
+
+<<else>>
+	<<if $worn.genitals.type.includes("chastity")>>
+		The <<group>> groan in disappointment at the sight of your chastity belt. "What the fuck is that?" the <<trashSelect>><<person>> asks, waving <<his>> arms at your $worn.genitals.name in disappointment. "How is that fair? Stupid prude."
 		<br><br>
-		You feel proud of your <<pussy>> and it's ability to command the boys' attention. It's kinda nice being the centre of attention like this.
+		<<He>> steps forward, and points at you. "I think we should rip it off, just to teach you a lesson." <<He>> stomps your way.
+		<<stress 6>><<gstress>>
 		<br><br>
-		"Umm, I think we've all seen each other now" the <<person5>><<person>> says, pulling up his trousers. "Yeah" the <<person3>><<person>> agrees. The rest of the boys nod in agreement and follow them in getting dressed again after they let you go. You follow their lead and get dressed, feeling a little awkward. The <<person4>><<person>> lingers a little longer than the others, fidgeting with his waistband. He manages to stammer out "bye", before he runs to catch up to the others on their way out.
+		<<Hes>> pulled back by the <<trashSelect>><<person>>, who huffs. "What? No, we're not doing that. That's dumb. I'm not being a part of that."
+	<<elseif $player.penisExist>>
+		<<switch $player.penissize>>
+			<<case -2>>
+				The <<group>> burst into uncontrollable laughter. "That's the smallest thing I've ever seen!" the <<trashSelect>><<person>> coos. "Aww, who's a little guy? Can it even get erect?"
+				<br><br>
+				<<if $acceptance_penis_tiny gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_tiny" 2>><<ginsecurity "penis_tiny">>
+				<</if>>
+			<<case -1 0>>
+				The <<group>> turn to each other, before laughing. "Anyone have a microscope?" the <<trashSelect>><<person>> jokes.
+				<br><br>
+				<<if $acceptance_penis_tiny gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_tiny" 2>><<ginsecurity "penis_tiny">>
+				<</if>>
+			<<case 1>>
+				The <<group>> look down at your <<penis>>, and a couple let out small chuckles. "A little on the small side," the <<trashSelect>><<person>> says. "It's no big deal."
+				<br><br>
+				<<if $acceptance_penis_small gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_small" 2>><<ginsecurity "penis_small">>
+				<</if>>
+			<<case 2>>
+				The <<group>> look down at your <<penis>>, muttering. "Not a bad size," the <<trashSelect>><<person>> says. "Not too big, but not too small."
+			<<case 3>>
+				The <<group>> look down at your <<penis>>, with a few letting out small gasps. "Bigger than I expected," the <<trashSelect>><<person>> says. "Not that that's a bad thing."
+				<br><br>
+				<<if $acceptance_penis_big gte 1000>>
+					You're glad they're impressed.
+				<<else>>
+					Despite <<his>> kind tone, shame rises, and blood rushes to your face.
+					<<insecurity "penis_big" 2>><<ginsecurity "penis_big">>
+				<</if>>
+			<<case 4>>
+				"Holy shit," the <<trashSelect>><<person>> whispers. "It's a fucking monster." The rest of the <<group>> gapes in shock.
+				<br><br>
+				<<if $acceptance_penis_big gte 1000>>
+					You're not particularly bothered.
+				<<else>>
+					Shame rises, and blood rushes to your face.
+					<<insecurity "penis_big" 2>><<ginsecurity "penis_big">>
+				<</if>>
+		<</switch>>
+		<<if $player.gender is "h">>
+			<<set _result to "herm">>
+			<br><br>
+			"Hey, wait!" the <<trashSelect>><<person>> shouts. "Look! <<pShe>> has a pussy too!" There are scattered sounds of amazement as the rest of the <<group>> shuffles to get a better angle.
+		<</if>>
+	<<else>>
+		The <<group>> gasp in surprise at your <<genitals>>. "Wow, you're a girl?" the <<trashSelect>><<person>> says. The <<trashSelect>><<person>> seems both annoyed and aroused, clearly displeased at your deception. They seem almost entranced by your <<pussy>>, unable to pull their eyes away from it.
 	<</if>>
-	<br><br>
-	<<clotheson>>
-	<<endcombat>>
-	<<link [[Leave|Trash]]>><</link>>
+<</if>>
+<br><br>
+
+"Think it's time we head out," the <<trashSelect>><<person>> says. The rest of the <<group>> nod in agreement and follow <<him>> in getting dressed again. You follow their lead and get dressed, feeling a little awkward. The <<person>> glances at you once last time and gives you a flirtatious wink, before joining the rest.
+<br><br>
+
+<<endcombat>>
+<<link [[Next|Trash]]>><<endevent>><<clotheson>><<unset $trashCompare>><<set $eventskip to 1>><</link>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-landfill/widgets.twee b/game/overworld-town/loc-landfill/widgets.twee
index bccfcdf1d3c3a4d07d12a531027f9c13be027157..25f7a59426dd54e72f67053a653b8edfb498f3df 100644
--- a/game/overworld-town/loc-landfill/widgets.twee
+++ b/game/overworld-town/loc-landfill/widgets.twee
@@ -153,4 +153,14 @@ You hear a faint buzzing. It grows in intensity as you continue, reaching an alm
 	<<link [[Next|Trash Pass Out]]>><</link>>
 	<br>
 <</if>>
+<</widget>>
+
+<<widget "trashSelect">>
+	<!-- This could potentially be adapted into a more all-encompassing widget that selects a random NPC -->
+	<<if _audience>>
+		<<personselect _audience.random()>>
+		<<run _audience.deleteAt($index)>>
+	<<else>>
+		<<personselect random(0,5)>>
+	<</if>>
 <</widget>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-market/main.twee b/game/overworld-town/loc-market/main.twee
index aeed06bde46ea4673e0e76e71fe02b1083eec58e..3f86ba917c95fdf3d63004293bb2341e6d44f86f 100644
--- a/game/overworld-town/loc-market/main.twee
+++ b/game/overworld-town/loc-market/main.twee
@@ -42,7 +42,7 @@ You enter the small office responsible for the Connudatus market. A <<generate1>
 <br><br>
 
 <<for _r to 0; _r lt 4; _r++>>
-	<<if $attractiveness + $famebusiness + currentSkillValue('tending') + ($plant_inventory.length * 100) + ($stall_rejected * 10) gte random(1, 10000)>>
+	<<if $attractiveness + $fame.business + currentSkillValue('tending') + ($plant_inventory.length * 100) + ($stall_rejected * 10) gte random(1, 10000)>>
 		<<set _stall_attention to 1>>
 	<</if>>
 <</for>>
@@ -81,28 +81,45 @@ You enter the small office responsible for the Connudatus market. A <<generate1>
 <</if>>
 
 :: Stall Bottoms Strip
-<<effects>>
 
+<<effects>>
 <<if $worn.under_lower.name is "naked">>
 	<<flaunting>> you peel your $worn.lower.name down your legs, leaving you naked below the waist. You feel the breeze against your <<genitals 1>>. There are so many people around, but no one noticed.
-	<<if $ex_stall isnot 1>><<if $exhibitionism lte 80>><<set $ex_stall to 1>><</if>><<exhibitionism4>><<else>><br><br><</if>>
+	<<if $ex_stall isnot 1>>
+		<<if $exhibitionism lte 80>>
+			<<set $ex_stall to 1>>
+		<</if>>
+		<<exhibitionism4>>
+	<<else>>
+		<br><br>
+	<</if>>
 <<else>>
 	<<flaunting>> you peel your $worn.lower.name down your legs, exposing your $worn.under_lower.name. There are so many people around, but no one noticed.
-	<<if $ex_stall isnot 1>><<if $exhibitionism lte 40>><<set $ex_stall to 1>><</if>><<exhibitionism2>><<else>><br><br><</if>>
+	<<if $ex_stall isnot 1>>
+		<<if $exhibitionism lte 40>>
+			<<set $ex_stall to 1>>
+		<</if>>
+		<<exhibitionism2>>
+	<<else>>
+		<br><br>
+	<</if>>
 <</if>>
-
 <<lowerstrip>>
-
 <<stall_actions>>
 
 :: Stall Undies Strip
-<<effects>>
 
+<<effects>>
 <<flaunting>> you peel your $worn.under_lower.name down your legs, leaving you naked below the waist. You feel the breeze against your <<genitals 1>>. There are so many people around, but no one noticed.
-<<if $ex_stall isnot 1>><<if $exhibitionism lte 80>><<set $ex_stall to 1>><</if>><<exhibitionism4>><<else>><br><br><</if>>
-
+<<if $ex_stall isnot 1>>
+	<<if $exhibitionism lte 80>>
+		<<set $ex_stall to 1>>
+	<</if>>
+	<<exhibitionism4>>
+<<else>>
+	<br><br>
+<</if>>
 <<underlowerstrip>>
-
 <<stall_actions>>
 
 :: Stall Masturbation
@@ -113,12 +130,21 @@ You enter the small office responsible for the Connudatus market. A <<generate1>
 	<<set $masturbationstat += 1>>
 	<<masturbationstart>>
 	<<set $mouth to "disabled">>
-	You crouch behind your stall. You're in a busy public place, with movement all around, yet you're hidden from view. Just about. You start touching yourself.<<if $ex_stall isnot 1>><<set $ex_stall to 1>><<if $exhibitionism lte 60>><<set $ex_stall to 1>><</if>><<exhibitionism3>><<else>><br><br><</if>>
+	You crouch behind your stall. You're in a busy public place, with movement all around, yet you're hidden from view. Just about. You start touching yourself.
+	<<if $ex_stall isnot 1>>
+		<<set $ex_stall to 1>>
+		<<if $exhibitionism lte 60>>
+			<<set $ex_stall to 1>>
+		<</if>>
+		<<exhibitionism3>>
+	<<else>>
+		<br><br>
+	<</if>>
 <</if>>
 <<masturbationeffects>>
 <<masturbationactions>>
 
-<<if $attractiveness + $famebusiness + currentSkillValue('tending') + ($stall_rejected * 10) gte random(1, 300000)>>
+<<if $attractiveness + $fame.business + currentSkillValue('tending') + ($stall_rejected * 10) gte random(1, 300000)>>
 	<<link [[Continue|Stall Masturbation Finish]]>><<set $phase to 1>><</link>><<nexttext>>
 	<br>
 <<else>>
diff --git a/game/overworld-town/loc-market/widgets.twee b/game/overworld-town/loc-market/widgets.twee
index a248059cad8f8f4ab092ccdd91967208afce20ed..5a9a42ca9924bb267260ccf38968665c855ecb11 100644
--- a/game/overworld-town/loc-market/widgets.twee
+++ b/game/overworld-town/loc-market/widgets.twee
@@ -101,19 +101,19 @@
 <!-- <<for _mobile to 0; _mobile lt 2; _mobile++>><<for _canmath to 0; _canmath lt 7; _canmath++>><center>---mobile:_mobile math:_canmath---</center> -->
 
 <!--
-_canmath                :	0		1		2		3		4		5		6
-table                   :	-		-		-		x		x		x		x
+_canmath			:	0		1		2		3		4		5		6
+table				:	-		-		-		x		x		x		x
 
-item inventory worth    :	-		-		-		-		x		x		x
-total inventory worth   :	-		-		txt		txt		x		x		x
+item inventory worth	:	-		-		-		-		x		x		x
+total inventory worth	:	-		-		txt		txt		x		x		x
 
-sold average            :	-		-		-		-		-		-		x
-per item sold           :	-		-		-		-		-		x		x
-total sold              :	-		txt		txt		txt		txt		x		x
+sold average			:	-		-		-		-		-		-		x
+per item sold			:	-		-		-		-		-		x		x
+total sold				:	-		txt		txt		txt		txt		x		x
 
-math skill min          :	F		F50		D		D50		C		B		A	A*
-colums                  :	-		-		-		2+0		3+0		3+2		3+3
-total colums            :	-		-		-		2		3		5		6
+math skill min			:	F		F50		D		D50		C		B		A	A*
+colums					:	-		-		-		2+0		3+0		3+2		3+3
+total colums			:	-		-		-		2		3		5		6
 -->
 
 <<if _canmath gte 3>>
@@ -310,7 +310,7 @@ total colums            :	-		-		-		2		3		5		6
 	<<set $stall_stats[$stall_plant] to { inventory:{amount:0, price:0, total:0}, sold:{amount:0, total:0} }>>
 <</if>>
 <<set $stall_stats[$stall_plant].sold.amount += $stall_amount>>
-<<set $stall_stats[$stall_plant].sold.total  += Math.round($stall_cost * $stall_amount)>>
+<<set $stall_stats[$stall_plant].sold.total += Math.round($stall_cost * $stall_amount)>>
 
 <<set $plants[$stall_plant].amount -= $stall_amount>>
 <<set $money += Math.round($stall_cost * $stall_amount)>>
@@ -679,15 +679,15 @@ Your attractiveness is giving you
 <</if>>
 chance to attract customers.
 Your fame for business is contributing
-<<if $famebusiness gte 1000>>
+<<if $fame.business gte 1000>>
 	<span class="green">a great deal,</span>
-<<elseif $famebusiness gte 800>>
+<<elseif $fame.business gte 800>>
 	<span class="teal">a lot,</span>
-<<elseif $famebusiness gte 600>>
+<<elseif $fame.business gte 600>>
 	<span class="lblue">a decent amount,</span>
-<<elseif $famebusiness gte 400>>
+<<elseif $fame.business gte 400>>
 	<span class="blue">somewhat,</span>
-<<elseif $famebusiness gte 200>>
+<<elseif $fame.business gte 200>>
 	<span class="purple">a bit,</span>
 <<else>>
 	<span class="pink">little,</span>
diff --git a/game/overworld-town/loc-museum/bdsm.twee b/game/overworld-town/loc-museum/bdsm.twee
index 05587d524e0b16d7e3fb25bac7e26a4987a28a87..8647256c244615947fe0c229e21a6d07c31cce7c 100644
--- a/game/overworld-town/loc-museum/bdsm.twee
+++ b/game/overworld-town/loc-museum/bdsm.twee
@@ -660,7 +660,7 @@ The audience is enraptured by the spectacle. You feel their eyes on your barely-
 :: Museum Horse Extreme 2
 <<set $outside to 0>><<set $location to "museum">><<effects>>
 
-<<if ($willpower / 10) gte (($pain - 100) + random(1, 100)) and $phase isnot 1>>
+<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100)) and $phase isnot 1>>
 <span class="green">You grit your teeth and bear it.</span> "I didn't do anything wrong!" you shout through tears. "The lord is a tyrant!"
 <<gwillpower>><<willpower 3>>
 <br><br>
@@ -707,7 +707,7 @@ Despite the pain, you feel a strong catharsis.<<trauma -12>>
 :: Museum Horse Extreme 3
 <<set $outside to 0>><<set $location to "museum">><<effects>>
 
-<<if ($willpower / 10) gte (($pain - 100) + random(1, 100)) and $phase isnot 1>>
+<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100)) and $phase isnot 1>>
 <span class="green">You grit your teeth and bear it.</span> "It hurts!" you shout through tears. "It hurts so much!"
 <<gwillpower>><<willpower 3>>
 <br><br>
diff --git a/game/overworld-town/loc-park/main.twee b/game/overworld-town/loc-park/main.twee
index 1e614a67dff7cf753b48c2c50f8a8788d517d9c5..38eed243c11777ec7f2803d49538118f67831f86 100644
--- a/game/overworld-town/loc-park/main.twee
+++ b/game/overworld-town/loc-park/main.twee
@@ -224,7 +224,7 @@ The <<beasttype>> whimpers and flees into a bush. <<tearful>> you gather yoursel
 
 <<widget "parkrun">>
 
-<<if $rng gte $famepark>>
+<<if $rng gte $park_fame>>
 	<<set $rng to random(1, 100)>>
 	<<if $rng gte 91>>
 		While running, you have to pass through some bushes.
@@ -316,7 +316,7 @@ The <<beasttype>> whimpers and flees into a bush. <<tearful>> you gather yoursel
 	<<endevent>>
 	<<link [[Next|Park]]>><<set $eventskip to 1>><</link>>
 	<<elseif $rng gte 21>>
-	You almost run straight into a group of teenagers smoking under an old shelter. You skirt around them.
+	You almost run straight into a group of students smoking under an old shelter. You skirt around them.
 	<br><br>
 
 	<<link [[Next|Park]]>><<set $eventskip to 1>><</link>>
@@ -324,7 +324,7 @@ The <<beasttype>> whimpers and flees into a bush. <<tearful>> you gather yoursel
 		<<set $rng to random(1, 100)>>
 		<<if ndef $park_run_seen_by>><<set $park_run_seen_by to []>><</if>>
 		<<if $rng gte 81 and ($NPCName[$NPCNameList.indexOf("Whitney")].init is 1) and ($NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon") and $pillory_tenant.special.name isnot "Whitney">>
-			You almost run straight into a group of teenagers smoking under an old shelter. As the central figure lights up, you recognise them. It's Whitney.
+			You almost run straight into a group of students smoking under an old shelter. As the central figure lights up, you recognise them. It's Whitney.
 			<br>
 			<<npc Whitney>><<person1>>Eyes closed, <<he>> exhales a cloud of smoke.
 			<<set $phase to 1>>
@@ -382,7 +382,7 @@ The <<beasttype>> whimpers and flees into a bush. <<tearful>> you gather yoursel
 	<br><br>
 	<<link [[Next|Park]]>><<set $eventskip to 1>><</link>>
 	<<else>>
-	You sneak behind a <<generate1>><<generate2>><<person1>><<person>> and <<person2>><<person>> sat on a bench. You're so close they could reach out and grab you.
+	You sneak behind a <<generate1>><<generate2>><<fullGroup>> sat on a bench. You're so close they could reach out and grab you.
 	<<garousal>><<arousal 600>>
 	<br><br>
 	<<endevent>>
@@ -395,16 +395,16 @@ The <<beasttype>> whimpers and flees into a bush. <<tearful>> you gather yoursel
 	<br><br>
 
 	<<if $exhibitionism gte 75>>
-	<<link [[Pose|Park Run Pose]]>><<fameexhibitionism 20 pic>><</link>><<exhibitionist5>>
+	<<link [[Pose|Park Run Pose]]>><<fameexhibitionism 20 "pic">><</link>><<exhibitionist5>>
 	<br>
 	<</if>>
-	<<link [[Run away|Park Run Away]]>><<fameexhibitionism 10 pic>><</link>>
+	<<link [[Run away|Park Run Away]]>><<fameexhibitionism 10 "pic">><</link>>
 	<br>
 	<<set $skulduggerydifficulty to 300>>
 	<<link [[Steal camera|Park Run Steal]]>><<crimeup 10>><</link>><<crime>><<skulduggerydifficulty>>
 	<br>
 	<<elseif $rng gte 61>>
-	<<generate1>><<generate2>><<person1>>A <<person>> and <<person2>><<person>> emerge from a bush up ahead. They walk toward you. <<covered>> "It's <<phim>>." the <<person1>><<person>> says. "The pervert."
+	<<generate1>><<generate2>>A <<fullGroup>> emerge from a bush up ahead. They walk toward you. <<covered>> "It's <<phim>>." the <<person1>><<person>> says. "The pervert."
 	<br><br>
 
 	"We can do whatever we want to a <<girl>> like this," the <<person2>><<person>> says. "No one will believe <<phim>>." They quicken their pace.
@@ -735,15 +735,20 @@ You sit on the toilet, and wait.
 				"Hey, what's going on-" a <<person2>><<person>> steps in, and has a similar reaction.
 			<</if>>
 			<br><br>
-			<<link [[Tease|Toilets Stall 2]]>><<set $phase to 1>><</link>><br>
-			<<link [[Masturbate|Toilets Stall 2]]>><<set $phase to 2>><</link>><<exhibitionist4>><br>
+			<<link [[Tease|Toilets Stall 2]]>><<set $phase to 1>><</link>>
+			<br>
+			<<link [[Masturbate|Toilets Stall 2]]>><<set $phase to 2>><</link>><<exhibitionist4>>
+			<br>
 			<<if $promiscuity gte 35>>
-				<<link [[Offer oral|Toilets Stall 2]]>><<set $phase to 3>><</link>><<promiscuous3>><br>
+				<<link [[Offer oral|Toilets Stall 2]]>><<set $phase to 3>><</link>><<promiscuous3>>
+				<br>
 			<</if>>
 			<<if $phase2 is 1 and $promiscuity gte 75 and ($NPCList[0].penis isnot "none" and $NPCList[1].penis isnot "none") and ($player.gender isnot "m" or $analdisable is "f")>>
-				<<link [[Offer spitroast|Toilets Stall 2]]>><<set $phase to 4>><</link>><<promiscuous5>><br>
+				<<link [[Offer spitroast|Toilets Stall 2]]>><<set $phase to 4>><</link>><<promiscuous5>>
+				<br>
 			<<elseif $promiscuity gte 75>>
-				<<link [[Offer yourself|Toilets Stall 2]]>><<set $phase to 5>><</link>><<promiscuous5>><br>
+				<<link [[Offer yourself|Toilets Stall 2]]>><<set $phase to 5>><</link>><<promiscuous5>>
+				<br>
 			<</if>>
 		<</if>>
 	<<else>>
@@ -752,15 +757,20 @@ You sit on the toilet, and wait.
 			"Who are you talking to?" a <<person2>><<person>> steps in, and quickly averts <<his>> eyes upon seeing you.
 		<</if>>
 		<br><br>
-		<<link [[Tease|Toilets Stall 2]]>><<set $phase to 1>><</link>><br>
-		<<link [[Masturbate|Toilets Stall 2]]>><<set $phase to 2>><</link>><<exhibitionist4>><br>
+		<<link [[Tease|Toilets Stall 2]]>><<set $phase to 1>><</link>>
+		<br>
+		<<link [[Masturbate|Toilets Stall 2]]>><<set $phase to 2>><</link>><<exhibitionist4>>
+		<br>
 		<<if $promiscuity gte 35>>
-			<<link [[Offer oral|Toilets Stall 2]]>><<set $phase to 3>><</link>><<promiscuous3>><br>
+			<<link [[Offer oral|Toilets Stall 2]]>><<set $phase to 3>><</link>><<promiscuous3>>
+			<br>
 		<</if>>
 		<<if $phase2 is 1 and $promiscuity gte 75 and ($NPCList[0].penis isnot "none" and $NPCList[1].penis isnot "none") and ($player.gender isnot "m" or $analdisable is "f")>>
-			<<link [[Offer spitroast|Toilets Stall 2]]>><<set $phase to 4>><</link>><<promiscuous5>><br>
+			<<link [[Offer spitroast|Toilets Stall 2]]>><<set $phase to 4>><</link>><<promiscuous5>>
+			<br>
 		<<elseif $promiscuity gte 75>>
-			<<link [[Offer yourself|Toilets Stall 2]]>><<set $phase to 5>><</link>><<promiscuous5>><br>
+			<<link [[Offer yourself|Toilets Stall 2]]>><<set $phase to 5>><</link>><<promiscuous5>>
+			<br>
 		<</if>>
 	<</if>>
 <</if>>
diff --git a/game/overworld-town/loc-park/robin.twee b/game/overworld-town/loc-park/robin.twee
index 103f178f04033573944392c3be3c46a015c9a876..327bab3085c981dec6014c6539b9bba21c115a95 100644
--- a/game/overworld-town/loc-park/robin.twee
+++ b/game/overworld-town/loc-park/robin.twee
@@ -1,6 +1,5 @@
 :: Robin Chocolate
 <<set $outside to 0>><<set $location to "park">><<effects>>
-
 <<npc Robin>><<person1>>
 <<if $robinchocolateintro isnot 1>>
 	<<set $robinchocolateintro to 1>>
@@ -9,7 +8,6 @@
 	<br><br>
 
 <<else>>
-
 	You see Robin stood behind <<his>> hot chocolate stand, wrapped up warm against the cold. <<He>> waves when <<he>> sees you.
 	<br><br>
 
@@ -17,20 +15,25 @@
 
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
 
 :: Robin Chocolate Help
-<<effects>>
 <<npc Robin>><<person1>>
+<<set _robin to statusCheck("Robin")>>
+<<effects>>
 <<if $leftarm is "bound" or $rightarm is "bound">>
 	<<He>> looks at your arms. "Oh. You can't help like that. Here." <<He>> walks behind you, and undoes your bindings with deft hands.<<unbind>>
 	<br><br>
 <</if>>
 <<if $hour gte 17>>
-	"I'd like help carrying my stuff home," Robin says. "It's getting nippy."
+	<<if _robin.trauma gte 40>>
+		"I think I want to go home," Robin says, shivering. "This is too much right now."
+	<<else>>
+		"I'd like help carrying my stuff home," Robin says. "It's getting nippy."
+	<</if>>
 	<br><br>
 	You walk with Robin back to the orphanage.
 	<br><br>
@@ -40,7 +43,11 @@
 <<else>>
 	<<He>> smiles.
 	<<if $rng gte 81 and $cow gte 6 and $livestock_intro isnot undefined>>
-		"I have everything I need. You're welcome to stay though. I would like the company."
+		<<if _robin.trauma gte 40>>
+			"I think I'm okay right now, but could you please stay with me?" Robin asks you as <<he>> fidgets.
+		<<else>>
+			"I have everything I need. You're welcome to stay though. I would like the company."
+		<</if>>
 		<br><br>
 		You keep Robin company while <<he>> runs the stand, and chat with <<him>> while there are no customers.
 		<<npcincr Robin love 1>><<glove>><<ltrauma>><<lstress>><<trauma -3>><<stress -6>>
@@ -48,7 +55,11 @@
 
 		<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60>>
 			<<generate2>><<person2>>
-			A <<person>> approaches the stand. "Welcome," Robin says. "Two pounds for a warm mug of chocolate."
+			<<if _robin.trauma gte 40>>
+				"Hi," Robin says, looking down. "T-two pounds for chocolate if that's okay."
+			<<else>>
+				A <<person>> approaches the stand. "Welcome," Robin says. "Two pounds for a warm mug of chocolate."
+			<</if>>
 			<br><br>
 			"Sure, sweetie," the <<person>> says before turning to you. They sprout a lecherous, crooked smile. "I remember you. From the farm. Why don't you come with me? I'll bring you home." They hold their hand out.
 			<br><br>
@@ -59,7 +70,11 @@
 
 		<<else>>
 			<<generate2>><<person2>>
-			A <<person>> approaches the stand. "Welcome," Robin says. "Two pounds for a warm mug of chocolate."
+			<<if _robin.trauma gte 40>>
+				"Hi," Robin says, looking down. "T-two pounds for chocolate if that's okay."
+			<<else>>
+				A <<person>> approaches the stand. "Welcome," Robin says. "Two pounds for a warm mug of chocolate."
+			<</if>>
 			<br><br>
 			"Sure, sweetie," the <<person>> says before turning to you. They sprout a lecherous, crooked smile. "I remember you. From the farm. Why don't you come with me? I'll bring you home." They hold their hand out.
 			<br><br>
@@ -71,13 +86,16 @@
 			<br><br>
 
 			<<endevent>>
-			<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+			<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 			<br>
 			<<link [[Leave|Park]]>><</link>>
 			<br>
 		<</if>>
 	<<elseif $rng gte 61>>
 		"I'd like to give out free samples. Could you take this tray around the park, and offer them to anyone who looks cold? I hope it's not too heavy."
+		<<if _robin.trauma gte 40>>
+			<<He>> pauses before handing you the tray. "Hurry back please," <<he>> adds in a quiet voice.
+		<</if>>
 		<br><br>
 		You take the tray, and walk through the park. You find no shortage of cold and thirsty hands, and make sure to mention Robin's stand.
 		<<set $robinmoney += 5>>
@@ -119,16 +137,25 @@
 			<</if>>
 			<br><br>
 			<<person1>>
-			Robin smiles when you return to <<him>>. "Business has improved a lot," <<he>> says. "Thank you."
+			Robin smiles when you return to <<him>>.
+			<<if _robin.trauma gte 40>>
+				<<He>> hugs you the moment you place the tray down. "Thank you."
+			<<else>>
+				"Business has improved a lot," <<he>> says. "Thank you."
+			<</if>>
 			<br><br>
 			<<endevent>>
-			<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+			<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 			<br>
 			<<link [[Leave|Park]]>><</link>>
 			<br>
 		<</if>>
 	<<elseif $rng gte 21>>
-		"I need to start heating another pot of milk. I don't like asking because it's heavy, but could you buy some more? You'll need to go to Harvest Street for the fresh stuff." <<He>> hands you £5 and a large bottle. "That should be enough to fill it."
+		<<if _robin.trauma gte 40>>
+			"I need some more milk. I'm sorry. I know its heavy, but could you buy some more?" <<He>> shivers even through <<his>> warm attire. "Harvest street has some." <<He>> hands you £5 and a large bottle. "That should be enough."
+		<<else>>
+			"I need to start heating another pot of milk. I don't like asking because it's heavy, but could you buy some more? You'll need to go to Harvest Street for the fresh stuff." <<He>> hands you £5 and a large bottle. "That should be enough to fill it."
+		<</if>>
 		<br><br>
 		<<if $breastfeedingdisable is "f" and $lactating is 1 and $promiscuity gte 35 and $awareness gte 100>>
 			A thought strikes as you pass the toilets. There's a closer source of fresh milk.
@@ -150,7 +177,11 @@
 			<br>
 		<</if>>
 	<<else>>
-		"I have everything I need. You're welcome to stay though. I would like the company."
+		<<if _robin.trauma gte 40>>
+			"I think I'm okay right now, but could you please stay with me?" Robin asks you as <<he>> fidgets.
+		<<else>>
+			"I have everything I need. You're welcome to stay though. I would like the company."
+		<</if>>
 		<br><br>
 		You keep Robin company while <<he>> runs the stand, and chat with <<him>> while there are no customers.
 		<<npcincr Robin love 1>><<glove>><<ltrauma>><<lstress>><<trauma -3>><<stress -6>>
@@ -159,9 +190,16 @@
 		<<if $danger gte (9900 - $allure)>>
 			<<generatey2>><<generatey3>><<generatey4>><<generatey5>>
 			<<set $robinparksnow to 1>>
-			A snowball hurtles through the air. Robin ducks just in time, then pulls you down by the arm. Another snowball soars overhead. You hear juvenile laughter.
-			<br><br>
-			"They'll get bored and leave," Robin says, sitting on the snow. "We just need to be patient."
+			A snowball hurtles through the air.
+			<<if _robin.trauma gte 40>>
+				Robin sees the snowball but freezes, only managing to flinch before <<he>>'s hit with a faceful of snow. You duck and pull <<him>> down.
+				<br><br>
+				Robin wipes the snow from <<his>> face and shivers. "Let's just w-wait," <<he>> says. "They'll leave us alone eventually."
+			<<else>>
+				Robin ducks just in time, then pulls you down by the arm. Another snowball soars overhead. You hear juvenile laughter.
+				<br><br>
+				"They'll get bored and leave," Robin says, sitting on the snow. "We just need to be patient."
+			<</if>>
 			<br><br>
 			<<link [[Wait|Robin Chocolate Wait]]>><</link>>
 			<br>
@@ -177,7 +215,7 @@
 			"Thank you for spending time with me," <<he>> says after a while.
 			<br><br>
 			<<endevent>>
-			<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+			<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 			<br>
 			<<link [[Leave|Park]]>><</link>>
 			<br>
@@ -188,11 +226,18 @@
 
 :: Robin Chocolate Set
 <<set $outside to 1>><<set $location to "park">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
-You help Robin carry <<his>> equipment to the park. "Thank you for the help," <<he>> says. "It's hard carrying it all on my own." <<He>> lights <<his>> portable stove.
+You help Robin carry <<his>> equipment to the park. "Thank you for the help," <<he>> says.
+<<if _robin.trauma gte 40>>
+	"I don't know what I'd do if I was by myself."
+<<else>>
+	"It's hard carrying it all on my own."
+<</if>>
+<<He>> lights <<his>> portable stove.
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -212,39 +257,71 @@ Robin spots you exiting the alley. "A-Are you okay?" <<he>> asks, with a worried
 You nod, pick up <<his>> dropped equipment and continue to walk to the park with Robin. The rest of the trip is uneventful.
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
 
 :: Robin Chocolate Cow
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
 
-Before your hand meets the <<persons>>, someone pulls your arm back. Robin pushes you behind <<person1>><<him>>. "I need to ask you to leave," <<He>> says, handing the <<person2>><<person>> <<his>> cup.
-<br><br>
-"Careful, <<person1>><<nnpc_gendery "Robin">>," the <<person2>><<person>> says. "Your friend is worth a lot. I'd hate to see you wind up like them."
-<br><br>
-Robin frowns. "I'm asking you to leave one last time before I call the police."
-<br><br>
-The <<person>> laughs and pours the chocolate into the snow. "Keep the money. Better keep an eye on your friend." <<He>> leaves.
-<br><br><<person1>>
-You turn to Robin, tilt your head, and give a worried moo.
-<br><br>
-"It's okay," Robin says. "Here." <<He>> mixes another mug of hot chocolate, and hands it to you.
-<br><br>
-"This should make you feel better." <<Hes>> right.<<gdom>><<npcincr Robin dom 1>><<lstress>><<stress -6>>
+Before your hand meets the <<persons>>, someone pulls your arm back. Robin pushes you behind <<person1>><<him>>.
+<<if _robin.trauma gte 40>>
+	"Y-you're not taking <<phim>>!" <<he>> says, handing the <<person2>><<person>> <<his>> cup with a shaky hand.
+	<br><br>
+
+	"Careful, <<person1>><<nnpc_gendery "Robin">>," the <<person2>><<person>> says. "Your friend is worth a lot. I'd hate to see you wind up like them."
+	<br><br>
+
+	Robin flinches, but holds <<person1>><<his>> ground. "Leave before I call the police."
+	<br><br>
+
+	The <<person>> laughs and pours the chocolate into the snow. "Keep the money. Better keep an eye on your friend." <<He>> leaves.
+	<br><br><<person1>>
+
+	You turn to Robin, tilt your head, and give a worried moo.
+	<br><br>
+
+	"Everything's okay," Robin says. "Here." <<He>> mixes another mug of hot chocolate, and hands it to you.
+	<br><br>
+
+	"This should make you feel better." <<Hes>> right.<<gdom>><<npcincr Robin dom 1>><<lstress>><<stress -6>>
+<<else>>
+	"I need to ask you to leave," <<He>> says, handing the <<person2>><<person>> <<his>> cup.
+	<br><br>
+
+	"Careful, <<person1>><<nnpc_gendery "Robin">>," the <<person2>><<person>> says. "Your friend is worth a lot. I'd hate to see you wind up like them."
+	<br><br>
+
+	Robin frowns. "I'm asking you to leave one last time before I call the police."
+	<br><br>
+
+	The <<person>> laughs and pours the chocolate into the snow. "Keep the money. Better keep an eye on your friend." <<He>> leaves.
+	<br><br><<person1>>
+
+	You turn to Robin, tilt your head, and give a worried moo.
+	<br><br>
+
+	"It's okay," Robin says. "Here." <<He>> mixes another mug of hot chocolate, and hands it to you.
+	<br><br>
+
+	"This should make you feel better." <<Hes>> right.<<gdom>><<npcincr Robin dom 1>><<lstress>><<stress -6>>
+<</if>>
 <br><br>
+
 The other customers are less creepy.
 <br><br>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
 
 :: Robin Chocolate Slap
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if $danceSuccess>>
 	You throw the tray in the air, spin, and smack the <<person>> across the face. <<He>> skids on the icy ground, and falls on <<his>> ass.<<ltrauma>><<trauma -6>>
@@ -252,10 +329,15 @@ The other customers are less creepy.
 	You whirl around, <span class="green">and catch the tray,</span> the mugs unspilled.<<lstress>><<stress -6>>
 	<br><br>
 	<<person1>>
-	Robin smiles when you return to <<him>>. "Business has improved a lot," <<he>> says. "Thank you."
+	Robin smiles when you return to <<him>>.
+	<<if _robin.trauma gte 40>>
+		<<He>> hugs you the moment you place the tray down. "Thank you."
+	<<else>>
+		"Business has improved a lot," <<he>> says. "Thank you."
+	<</if>>
 	<br><br>
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Park]]>><</link>>
 	<br>
@@ -265,12 +347,17 @@ The other customers are less creepy.
 	You try to catch the tray, <span class="red">but you're too slow.</span> It clatters to the ground, spilling hot chocolate over the snow.<<gstress>><<stress 6>>
 	<br><br>
 	<<person1>>
-	Robin smiles when you return to <<him>>. "Business has improved a lot," <<he>> says. "Thank you."
+	Robin smiles when you return to <<him>>.
+	<<if _robin.trauma gte 40>>
+		<<He>> hugs you the moment you place the tray down. "Thank you."
+	<<else>>
+		"Business has improved a lot," <<he>> says. "Thank you."
+	<</if>>
 	<br><br>
 
 	<<link [[Confess about spilling the chocolate|Robin Chocolate Confess]]>><<npcincr Robin dom 1>><</link>><<gdom>>
 	<br>
-	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Park]]>><<endevent>><</link>>
 	<br>
@@ -280,6 +367,8 @@ The other customers are less creepy.
 
 :: Robin Chocolate Confess
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
+
 
 <<if $submissive gte 1150>>
 	"I-I'm sorry," you say. "I spilled some of the hot chocolate."
@@ -290,18 +379,21 @@ The other customers are less creepy.
 <</if>>
 <br><br>
 
-"That's okay," Robin laughs. "Just be careful not to slip. The ground can get icy."
+<<if _robin.trauma gte 40>>
+	"It's fine," Robin mumbles. "As long as you're not hurt."
+<<else>>
+	"That's okay," Robin laughs. "Just be careful not to slip. The ground can get icy."
+<</if>>
 <br><br>
 
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><<endevent>><</link>>
 <br>
 
-
-
 :: Robin Chocolate Endure
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
 	<<if $worn.under_lower.type.includes("naked")>>
@@ -377,10 +469,15 @@ The other customers are less creepy.
 <</if>>
 <<set $robinmoney += 5>>
 <<person1>>
-Robin smiles when you return to <<him>>. "Business has improved a lot," <<he>> says. "Thank you."
+Robin smiles when you return to <<him>>.
+<<if _robin.trauma gte 40>>
+	<<He>> hugs you the moment you place the tray down. "Thank you."
+<<else>>
+	"Business has improved a lot," <<he>> says. "Thank you."
+<</if>>
 <br><br>
 
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<endevent>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><<endevent>><</link>>
 <br>
@@ -417,7 +514,7 @@ Robin smiles when you return to <<him>>. "Business has improved a lot," <<he>> s
 <<else>>
 	<<link [[Continue|Robin Milk Masturbation]]>><</link>><<nexttext>>
 	<br>
-	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 		<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 	<<elseif $corruptionMasturbation isnot true>>
 		<<link [[Stop|Robin Milk Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -433,11 +530,19 @@ Robin smiles when you return to <<him>>. "Business has improved a lot," <<he>> s
 <<endcombat>>
 <<clothesontowel>>
 <<npc Robin>><<person1>>
+<<set _robin to statusCheck("Robin")>>
 <<if $masturbation_fluid gte 500>>
 
 	<span class="green">The bottle filled with milk,</span> you leave the toilets.
 	<br><br>
-	Robin smiles when <<he>> sees you. "You were quick," <<he>> says. <<He>> takes the milk. "It's still warm! I didn't know you could get it so fresh." <<He>> pours it into a pot while you quietly leave <<his>> £5 on the counter.<<gglove>><<npcincr Robin love 3>>
+	Robin smiles when <<he>> sees you.
+	<<if _robin.trauma gte 40>>
+		"Thanks for coming back so quickly,"
+	<<else>>
+		"You were quick,"
+	<</if>>
+	<<he>> says. <<He>> takes the milk. "It's still warm! I didn't know you could get it so fresh." <<He>> pours it into a pot while you quietly leave <<his>> £5 on the counter.
+	<<gglove>><<npcincr Robin love 3>>
 	<br><br>
 
 <<else>>
@@ -477,7 +582,7 @@ Robin smiles when you return to <<him>>. "Business has improved a lot," <<he>> s
 <</if>>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -541,7 +646,7 @@ You arrive at Harvest Street, and enter a rustic shop. The proprietor, a <<perso
 	<br><br>
 
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Park]]>><</link>>
 	<br>
@@ -553,7 +658,7 @@ You arrive at Harvest Street, and enter a rustic shop. The proprietor, a <<perso
 	You return to Robin. <<He>> smiles when <<he>> sees you. <<He>> takes the milk and pours it into a pot.
 	<br><br>
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Park]]>><</link>>
 	<br>
@@ -580,7 +685,7 @@ Milk from the surrounding farms is processed in a factory on the corner of Harve
 	<br><br>
 
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Park]]>><</link>>
 	<br>
@@ -601,7 +706,7 @@ Milk from the surrounding farms is processed in a factory on the corner of Harve
 	<br><br>
 
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Park]]>><</link>>
 	<br>
@@ -618,7 +723,7 @@ You return to the park. Robin smiles when <<he>> sees you, and pours the milk in
 <br><br>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -632,7 +737,7 @@ You wait behind the stand until the deliquents find someone else to harass.
 
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -657,7 +762,7 @@ There are four of them, each armed with a snowball. They're about to pelt you wh
 They hold fire as a <<person2>><<person>> steps forward. "You don't know what you're in for." <<He>> says. "On the count of three." <<He>> scans the ground as <<he>> speaks. "One... Two... "
 <br><br>
 
-<<link [[Attack as fast as possible|Robin Chocolate Challenge Attack]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 800>>
+<<link [[Attack as fast as possible|Robin Chocolate Challenge Attack]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 800>>
 <br>
 <<link [[Bide your time|Robin Chocolate Challenge Bide]]>><</link>><<dancedifficulty 1 800>>
 <br>
@@ -673,7 +778,7 @@ They hold fire as a <<person2>><<person>> steps forward. "You don't know what yo
 <br><br>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -687,7 +792,7 @@ You dive behind the stand as a volley of snowballs sail overhead. More snowballs
 <br><br>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -724,7 +829,7 @@ You finish first. You hurl the snowball at your opponent. <<He>> flinches, cover
 
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -754,35 +859,36 @@ You focus on making the snowball as sturdy as possible, until the <<person2>><<p
 
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
 
 :: Robin Chocolate Take
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 You start preparing your ammunition.
 
-<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60>>
+<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60 and _robin.trauma lte 39>>
 	Robin watches, <span class="green">then joins in.</span> Together you soon have enough snowballs.<<if $statdisable is "f">> | <span class="green"> + Preparedness</span><</if>>
 	<br><br>
 	You need to draw fire away from Robin's apparatus, so you bundle them in an arm, and spring from your hiding place.
 	<br><br>
 	How do you fight?
 	<br><br>
-	<<link [[Audaciously|Robin Chocolate Audacious]]>><<set $phase to 0>><</link>><<skill_difficulty handskill "Hand Skill" 1 1200>>
+	<<link [[Audaciously|Robin Chocolate Audacious]]>><<set $phase to 0>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1200>>
 	<br>
 	<<link [[Patiently|Robin Chocolate Patient]]>><<set $phase to 0>><</link>><<dancedifficulty 1 1200>>
 	<br>
-<<elseif $NPCName[$NPCNameList.indexOf("Robin")].dom gte 20>>
+<<elseif $NPCName[$NPCNameList.indexOf("Robin")].dom gte 20 and _robin.trauma lte 39>>
 	Robin watches, <span class="green">then joins in.</span> Together you soon have enough snowballs.<<if $statdisable is "f">> | <span class="green"> + Preparedness</span><</if>>
 	<br><br>
 	You need to draw fire away from Robin's apparatus, so you bundle them in an arm, and spring from your hiding place.
 	<br><br>
 	How do you fight?
 	<br><br>
-	<<link [[Audaciously|Robin Chocolate Audacious]]>><<set $phase to 1>><</link>><<skill_difficulty handskill "Hand Skill" 1 1200>>
+	<<link [[Audaciously|Robin Chocolate Audacious]]>><<set $phase to 1>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1200>>
 	<br>
 	<<link [[Patiently|Robin Chocolate Patient]]>><<set $phase to 1>><</link>><<dancedifficulty 1 1200>>
 	<br>
@@ -791,7 +897,7 @@ You start preparing your ammunition.
 	<br><br>
 	How do you fight?
 	<br><br>
-	<<link [[Audaciously|Robin Chocolate Audacious]]>><<set $phase to 2>><</link>><<skill_difficulty handskill "Hand Skill" 1 2000>>
+	<<link [[Audaciously|Robin Chocolate Audacious]]>><<set $phase to 2>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 2000>>
 	<br>
 	<<link [[Patiently|Robin Chocolate Patient]]>><<set $phase to 2>><</link>><<dancedifficulty 1 1200>>
 	<br>
@@ -842,7 +948,7 @@ The delinquents are surprised by your sally. They're stood together in the open.
 <</if>>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -893,7 +999,7 @@ The element of surprise gone, you slip behind a hedge while your adversaries are
 <</if>>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
@@ -902,17 +1008,25 @@ The element of surprise gone, you slip behind a hedge while your adversaries are
 
 :: Robin Chocolate Kiss
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 "I know how we can pass the time," you say, crawling on top of Robin. <<He>> laughs at first, then gasps as you kiss <<his>> neck.
 <br><br>
+<<if _robin.trauma gte 40>>
+	<<He>> spends most of <<his>> time holding you close, rather than reciprocating. You eventually stop kissing and embrace <<him>> back.
+	<<npcincr Robin trauma -2>><<lrtrauma>>
+<</if>>
 <<generate2>>
 The delinquents find someone else to harass as predicated. Robin and you are too busy to care, until you hear a voice close by. "Hello?" a <<person2>><<personsimple>> says. "The hot chocolate smells good. Is anyone around?"
 <br><br>
 <<person1>>
-You let Robin stand, surprising the customer with <<his>> sudden appearance. You decide to hide until the customer departs. <<person2>><<He>> would work out what you were up to, and Robin would be terribly embarrassed.
+You let Robin stand, surprising the customer with <<his>> sudden appearance. You decide to hide until the customer departs.
+<<if _robin.trauma lte 39>>
+	<<person2>><<He>> would work out what you were up to, and Robin would be terribly embarrassed.
+<</if>>
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Park]]>><</link>>
 <br>
diff --git a/game/overworld-town/loc-park/run.twee b/game/overworld-town/loc-park/run.twee
index ceb9283ad5cb12db814c5f61cc9cf071199bf50a..3b26b65fb7107738cc301c6a513c820bca02a80e 100644
--- a/game/overworld-town/loc-park/run.twee
+++ b/game/overworld-town/loc-park/run.twee
@@ -123,7 +123,7 @@ You run through the dark and deserted park. The cool night air blows against you
 <<else>>
 	<<parkrun>>
 <</if>>
-<<set $famepark += 4>>
+<<set $park_fame += 4>>
 
 :: Park Run Harper Struggle
 <<effects>>
@@ -375,16 +375,16 @@ Your heart is pounding with the thrill as you quietly move on.
 		<<else>>
 			<<if (setup.bodyliquid.combined("vagina")) gte 4>>"That cunt has been wrecked
 			<<elseif (setup.bodyliquid.combined("anus")) gte 4>>"That ass has been ruined
-			<<elseif $famebestiality gte 600 and ($player.bodyliquid.mouth.semen + $player.bodyliquid.face.semen + $player.bodyliquid.vagina.semen + $player.bodyliquid.anus.semen ) gte 3>>"That's probably animal cum
+			<<elseif $fame.bestiality gte 600 and ($player.bodyliquid.mouth.semen + $player.bodyliquid.face.semen + $player.bodyliquid.vagina.semen + $player.bodyliquid.anus.semen ) gte 3>>"That's probably animal cum
 			<<elseif (setup.bodyliquid.combined("mouth") + setup.bodyliquid.combined("face")) gte 5>>"<<pHer>> face! Sucked off every teacher
 			<<elseif ($semenoutsidecount + $goooutsidecount) gte 6>>"Covered in cum
-			<<elseif $famerape gte 600>>"Half the town's raped <<pher>> already
-			<<elseif $famebestiality gte 600>>"<<pShe>> probably fucked five dogs already
+			<<elseif $fame.rape gte 600>>"Half the town's raped <<pher>> already
+			<<elseif $fame.bestiality gte 600>>"<<pShe>> probably fucked five dogs already
 			<<elseif (setup.bodyliquid.combined("vagina") + setup.bodyliquid.combined("anus")) gte 2>>"You can see the cum dripping out
-			<<elseif $famesex gte 400>>"Half the town has <<pher>> fuck-vids
+			<<elseif $fame.sex gte 400>>"Half the town has <<pher>> fuck-vids
 			<<else>>"Fucked at least once already tonight
 			<</if>>and this little slut is still running around begging for more!"
-			<<if $physique gte ($physiquesize / 7) * 4>>
+			<<if currentSkillValue('physique') gte ($physiquesize / 7) * 4>>
 			<br>
 			"Amazing body," someone says.<</if>>
 		<</if>>
diff --git a/game/overworld-town/loc-park/science-project.twee b/game/overworld-town/loc-park/science-project.twee
index 41a940d7dcb28d21c3e0189a1e0517ed9227ac19..cbd475d92e10148972a60831b040d9c6c48569a4 100644
--- a/game/overworld-town/loc-park/science-project.twee
+++ b/game/overworld-town/loc-park/science-project.twee
@@ -179,7 +179,6 @@ You talk with Avery over the drinks. <<He>> asks a lot of questions, but is relu
 <<set $outside to 0>><<set $location to "park">><<effects>>
 You lean in and plant a kiss on <<his>> lips. <<He>> kisses back. <<takeKissVirginity "Avery" `($dateCount.Avery gte 3?"loveInterest":"romantic")`>>
 <<promiscuity1>>
-<br><br>
 <<He>> pulls away and glances around the cafe as if concerned about who's watching. "I'll be in touch," <<he>> says, smiling.
 <br><br>
 You leave soon after <<him>>, but <<hes>> already gone.
diff --git a/game/overworld-town/loc-photography/main.twee b/game/overworld-town/loc-photography/main.twee
index cee258b42f49b6d44fdccbb1be0cbeef9d94760c..83e715cbe8dd45472fcc57d27c2f1ba8fb3e63bd 100644
--- a/game/overworld-town/loc-photography/main.twee
+++ b/game/overworld-town/loc-photography/main.twee
@@ -14,6 +14,8 @@ You approach the photography studio, a tall old building opposite the hospital.
 <<set $photo_known to 2>>
 <<set $photo to {}>>
 <<set $photo.refused to 0>>
+<<set $photo.audienceSize to 1>>
+<<set $photo.timesWithThisAudienceSize to 0>>
 <<npc Niki>><<person1>>
 
 You lift the heavy knocker, and let it fall against the door. You wait a minute, then reach to knock again. The door swings open first. A young <<nnpc_gender "Niki">> stands there, a white stick poking out of <<his>> mouth. It's Niki.
@@ -51,7 +53,7 @@ You follow Niki into the more modern interior, past a flight of stairs, and into
 cover the wall behind <<him>>, most of them suggestive, but all tasteful. <<He>> points at a chair behind you, and you take a seat.
 <br><br>
 
-"Studio's upstairs," <<he>> says, removing the white stick from <<his>> mouth and flicking it into a bin. "A photoshoot takes three hours. You get paid upfront. <span class="gold">£450</span> per shoot." <<He>> gestures at the wall behind <<him>>. "This is the sort of thing we do."
+"Studio's upstairs," <<he>> says, removing the white stick from <<his>> mouth and flicking it into a bin. "A photoshoot takes up to three hours. You get paid upfront. <span class="gold">£450</span> per shoot." <<He>> gestures at the wall behind <<him>>. "This is the sort of thing we do."
 <br><br>
 
 <<He>> pulls a lollipop from <<his>> pocket, and sticks it in <<his>> mouth. "One shoot a week. What do you think?"
@@ -106,7 +108,7 @@ Niki nods. "You know where I am if you change your mind."
 	<<set $photo.niki_event to 1>>
 	<<npc Briar>><<person1>>
 	<<if $pronoun is "m">>
-		A <<personsimple>> in a revealing blue suit brushes past you on the way in. 
+		A <<personsimple>> in a revealing blue suit brushes past you on the way in.
 	<<else>>
 		A <<personsimple>> in a revealing red gown brushes past you on the way in.
 	<</if>>
@@ -138,7 +140,7 @@ Niki nods. "You know where I am if you change your mind."
 		<span class="blue">You've already worked as a model this week.</span>
 		<br>
 	<<else>>
-		<<link [[Model (3:00)|Photo Model]]>><<set $photo.shoot to 1>><</link>><<exhibitionist1>>
+		<<link [[Model (Up to 3:00)|Photo Model]]>><<set $photo.shoot to 1>><</link>><<exhibitionist1>>
 		<br>
 	<</if>>
 	/*
@@ -168,7 +170,7 @@ Niki nods, and stares at <<his>> screen a moment longer.
 <</if>>
 
 <<if !_work_available>>
-	<<if $fame lt 3000>>
+	<<if fameTotal() lt 3000>>
 		<<He>> shakes <<his>> head. "Nothing for you," <<he>> says. <span class="purple">"Maybe if you were known better."</span>
 	<<else>>
 		<<He>> shakes <<his>> head. "Nothing," <<he>> says. "Come back next week."
@@ -378,7 +380,7 @@ Satisfied, you turn to the others. "Next."
 
 :: Photography Chef Milk
 <<set $outside to 0>><<set $location to "town">><<effects>>
-<<pass 60>><<famesex 6 pic>><<set $chef_picture to "lewd">>
+<<pass 60>><<famesex 6 "pic">><<set $chef_picture to "lewd">>
 Some seem more eager to be "milked" than others, but they all line up for the service. When finished, you have a decent supply of "cream" in the pot. Enough to fill a ladle at least.
 <br><br>
 
@@ -473,7 +475,7 @@ You end up on the floor, with the pot on your head, covered head-to-toe in stick
 <</if>>
 <br><br>
 <<endevent>>
-<<famebusiness 100 pic>>
+<<famebusiness 100 "pic">>
 <<set $chef_state to 5>>
 <<link [[Walk out onto the street|Nightingale Street]]>><<set $eventskip to 1>><</link>>
 <br>
diff --git a/game/overworld-town/loc-photography/model.twee b/game/overworld-town/loc-photography/model.twee
index a666cabed505add511a20a91ff780b9949e225e2..afa39a689edc21ac8f8022bf7121880376a70d28 100644
--- a/game/overworld-town/loc-photography/model.twee
+++ b/game/overworld-town/loc-photography/model.twee
@@ -5,76 +5,77 @@ You follow Niki up a flight of steps, into a large room dominated by a white scr
 <br><br>
 
 <<set $photo.money to 450>>
+<<set $photo.time to 0>>
 
 
 "Clothes are over there," Niki says, pointing at a screen near the corner.
 
 <<if $worn.face.type.includes("mask")>>
-    "I'd recommend removing the mask. Earning a reputation might open new opportunities for you."
+	"I'd recommend removing the mask. Earning a reputation might open new opportunities for you."
 <</if>>
 <br><br>
 
 You find two outfits behind the screen.
 <<set _rng to random(1, 9)>>
 <<if _rng is 1>>
-    There's a sundress, 
-    <<set $photo_upper_f_index to 1>>
-    <<set $photo_lower_f_index to 0>>
+	There's a sundress,
+	<<set $photo_upper_f_index to 1>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 2>>
-    There's an evening gown,
-    <<set $photo_upper_f_index to 7>>
-    <<set $photo_lower_f_index to 0>>
+	There's an evening gown,
+	<<set $photo_upper_f_index to 7>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 3>>
-    There's a ballgown,
-    <<set $photo_upper_f_index to 9>>
-    <<set $photo_lower_f_index to 0>>
+	There's a ballgown,
+	<<set $photo_upper_f_index to 9>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 4>>
-    There's a kimono,
-    <<set $photo_upper_f_index to 10>>
-    <<set $photo_lower_f_index to 0>>
+	There's a kimono,
+	<<set $photo_upper_f_index to 10>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 5>>
-    There's a mini kimono,
-    <<set $photo_upper_f_index to 11>>
-    <<set $photo_lower_f_index to 0>>
+	There's a mini kimono,
+	<<set $photo_upper_f_index to 11>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 6>>
-    There's a gingham dress,
-    <<set $photo_upper_f_index to 38>>
-    <<set $photo_lower_f_index to 0>>
+	There's a gingham dress,
+	<<set $photo_upper_f_index to 38>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 7>>
-    There's a cheongsam,
-    <<set $photo_upper_f_index to 46>>
-    <<set $photo_lower_f_index to 0>>
+	There's a cheongsam,
+	<<set $photo_upper_f_index to 46>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 8>>
-    There's a short cheongsam dress,
-    <<set $photo_upper_f_index to 47>>
-    <<set $photo_lower_f_index to 0>>
+	There's a short cheongsam dress,
+	<<set $photo_upper_f_index to 47>>
+	<<set $photo_lower_f_index to 0>>
 <<elseif _rng is 9>>
-    There's a keyhole dress,
-    <<set $photo_upper_f_index to 84>>
-    <<set $photo_lower_f_index to 0>>
+	There's a keyhole dress,
+	<<set $photo_upper_f_index to 84>>
+	<<set $photo_lower_f_index to 0>>
 <</if>>
 and a
 <<set _rng to random(1, 5)>>
 <<if _rng is 1>>
-    tuxedo.
-    <<set $photo_upper_m_index to 15>>
-    <<set $photo_lower_m_index to 16>>
+	tuxedo.
+	<<set $photo_upper_m_index to 15>>
+	<<set $photo_lower_m_index to 16>>
 <<elseif _rng is 2>>
-    black leather jacket.
-    <<set $photo_upper_m_index to 40>>
-    <<set $photo_lower_m_index to 23>>
+	black leather jacket.
+	<<set $photo_upper_m_index to 40>>
+	<<set $photo_lower_m_index to 23>>
 <<elseif _rng is 3>>
-    brown leather jacket.
-    <<set $photo_upper_m_index to 41>>
-    <<set $photo_lower_m_index to 23>>
+	brown leather jacket.
+	<<set $photo_upper_m_index to 41>>
+	<<set $photo_lower_m_index to 23>>
 <<elseif _rng is 4>>
-    dress shirt.
-    <<set $photo_upper_m_index to 37>>
-    <<set $photo_lower_m_index to 23>>
+	dress shirt.
+	<<set $photo_upper_m_index to 37>>
+	<<set $photo_lower_m_index to 23>>
 <<elseif _rng is 5>>
-    karate outfit.
-    <<set $photo_upper_m_index to 55>>
-    <<set $photo_lower_m_index to 50>>
+	karate outfit.
+	<<set $photo_upper_m_index to 55>>
+	<<set $photo_lower_m_index to 50>>
 <</if>>
 <br><br>
 
@@ -84,174 +85,202 @@ There's also a pair of lace panties, and a pair of briefs.
 <<exhibitionism1>>
 
 <<if $worn.face.type.includes("mask")>>
-    <<link [[Keep mask on and wear the feminine outfit|Photo Model 2]]>>
-        <<undressKeepFace "photo">>
-        <<set $photo_upper_index to $photo_upper_f_index>>
-        <<set $photo_lower_index to $photo_lower_f_index>>
-        <<set $photo_under_index to $photo_under_f_index>>
-        <<underlowerwear $photo_under_index>>
-        <<lowerwear $photo_lower_index>>
-        <<upperwear $photo_upper_index>>
-    <</link>>
-    <br>
-    <<link [[Keep mask on and wear the masculine outfit|Photo Model 2]]>>
-        <<undressKeepFace "photo">>
-        <<set $photo_upper_index to $photo_upper_m_index>>
-        <<set $photo_lower_index to $photo_lower_m_index>>
-        <<set $photo_under_index to $photo_under_m_index>>
-        <<underlowerwear $photo_under_index>>
-        <<lowerwear $photo_lower_index>>
-        <<upperwear $photo_upper_index>>
-    <</link>>
-    <br><br>
-
-    <<link [[Strip everything and wear the feminine outfit|Photo Model 2]]>>
-        <<undress "photo">>
-        <<set $photo_upper_index to $photo_upper_f_index>>
-        <<set $photo_lower_index to $photo_lower_f_index>>
-        <<set $photo_under_index to $photo_under_f_index>>
-        <<underlowerwear $photo_under_index>>
-        <<lowerwear $photo_lower_index>>
-        <<upperwear $photo_upper_index>>
-    <</link>>
-    <br>
-    <<link [[Strip everything and wear the masculine outfit|Photo Model 2]]>>
-        <<undress "photo">>
-        <<set $photo_upper_index to $photo_upper_m_index>>
-        <<set $photo_lower_index to $photo_lower_m_index>>
-        <<set $photo_under_index to $photo_under_m_index>>
-        <<underlowerwear $photo_under_index>>
-        <<lowerwear $photo_lower_index>>
-        <<upperwear $photo_upper_index>>
-    <</link>>
-    <br><br>
-<<else>>
-    <<link [[Wear the feminine outfit|Photo Model 2]]>>
-        <<undress "photo">>
-        <<set $photo_upper_index to $photo_upper_f_index>>
-        <<set $photo_lower_index to $photo_lower_f_index>>
-        <<set $photo_under_index to $photo_under_f_index>>
-        <<underlowerwear $photo_under_index>>
-        <<lowerwear $photo_lower_index>>
-        <<upperwear $photo_upper_index>>
-    <</link>>
-    <br>
-    <<link [[Wear the masculine outfit|Photo Model 2]]>>
-        <<undress "photo">>
-        <<set $photo_upper_index to $photo_upper_m_index>>
-        <<set $photo_lower_index to $photo_lower_m_index>>
-        <<set $photo_under_index to $photo_under_m_index>>
-        <<underlowerwear $photo_under_index>>
-        <<lowerwear $photo_lower_index>>
-        <<upperwear $photo_upper_index>>
-    <</link>>
-    <br><br>
+	<<link [[Keep mask on and wear the feminine outfit|Photo Model 2]]>>
+		<<undressKeepFace "photo">>
+		<<set $photo_upper_index to $photo_upper_f_index>>
+		<<set $photo_lower_index to $photo_lower_f_index>>
+		<<set $photo_under_index to $photo_under_f_index>>
+		<<underlowerwear $photo_under_index>>
+		<<lowerwear $photo_lower_index>>
+		<<upperwear $photo_upper_index>>
+	<</link>>
+	<br>
+	<<link [[Keep mask on and wear the masculine outfit|Photo Model 2]]>>
+		<<undressKeepFace "photo">>
+		<<set $photo_upper_index to $photo_upper_m_index>>
+		<<set $photo_lower_index to $photo_lower_m_index>>
+		<<set $photo_under_index to $photo_under_m_index>>
+		<<underlowerwear $photo_under_index>>
+		<<lowerwear $photo_lower_index>>
+		<<upperwear $photo_upper_index>>
+	<</link>>
+	<br><br>
 <</if>>
+<<link [[Strip and wear the feminine outfit|Photo Model 2]]>>
+	<<undress "photo">>
+	<<set $photo_upper_index to $photo_upper_f_index>>
+	<<set $photo_lower_index to $photo_lower_f_index>>
+	<<set $photo_under_index to $photo_under_f_index>>
+	<<underlowerwear $photo_under_index>>
+	<<lowerwear $photo_lower_index>>
+	<<upperwear $photo_upper_index>>
+<</link>>
+<br>
+<<link [[Strip and wear the masculine outfit|Photo Model 2]]>>
+	<<undress "photo">>
+	<<set $photo_upper_index to $photo_upper_m_index>>
+	<<set $photo_lower_index to $photo_lower_m_index>>
+	<<set $photo_under_index to $photo_under_m_index>>
+	<<underlowerwear $photo_under_index>>
+	<<lowerwear $photo_lower_index>>
+	<<upperwear $photo_upper_index>>
+<</link>>
+<br><br>
 
 :: Photo Model 2
 <<effects>>
 <<endevent>>
 You put on the $worn.upper.name, and emerge from behind the screen.
-<<if random(1, 2) is 2 and $famemodel gte 100>>
-    <<if $photo.fame_stage gte 11>>
-        <<set $photo.fame_stage to 12>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>>
-         <<person1>>Six <<people>> sit to one side once again, watching you. One of them, a <<person>>, licks <<his>> lips.
-    <<elseif $photo.fame_stage is 10 and $famemodel gte 600>>
-        <<set $photo.fame_stage to 11>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>>
-         <<person1>>Six <<people>> sit to one side, watching you. One of them, a <<person>>, chats with the <<person2>><<person>> beside <<person1>><<him>>, but watches you all the while.
-    <<elseif $photo.fame_stage is 9>>
-        <<set $photo.fame_stage to 10>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>><<generate4>><<generate5>>
-         <<person1>>Five <<people>> sit to one side once again, chatting. One of them, a <<person>>, watches you without breaking conversation.
-    <<elseif $photo.fame_stage is 8 and $famemodel gte 500>>
-        <<set $photo.fame_stage to 9>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>><<generate4>><<generate5>>
-         <<person1>>Five <<people>> sit to one side, chatting. One of them, a <<person>>, watches you without breaking conversation.
-    <<elseif $photo.fame_stage is 7>>
-        <<set $photo.fame_stage to 8>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>><<generate4>>
-         <<person1>>Four <<people>> sit to one side once again, watching you. One of them, a <<person>>, sips from a glass of wine.
-    <<elseif $photo.fame_stage is 6 and $famemodel gte 400>>
-        <<set $photo.fame_stage to 7>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>><<generate4>>
-         <<person1>>Four <<people>> sit to one side, watching you. One, a <<person>>, combs <<his>> hair while staring at your <<bottom>>.
-    <<elseif $photo.fame_stage is 5>>
-        <<set $photo.fame_stage to 6>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>>
-         <<person1>>Three <<people>> sit to one side once again, watching you. One, a <<person>>, openly leers.
-    <<elseif $photo.fame_stage is 4 and $famemodel gte 300>>
-        <<set $photo.fame_stage to 5>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>><<generate3>>
-        <<person1>>Three <<people>> sit to one side, watching you. The <<person>> sitting in the middle grins.
-    <<elseif $photo.fame_stage is 3>>
-        <<set $photo.fame_stage to 4>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>>
-        A <<person1>><<person>> and <<person2>><<person>> sit to one side of the studio, chatting as they watch you.<<person1>>
-    <<elseif $photo.fame_stage is 2 and $famemodel gte 200>>
-        <<set $photo.fame_stage to 3>>
-        <<set $photo.money += 50>>
-        <<generate1>><<generate2>>
-        A <<person1>><<person>> and <<person2>><<person>> sit to one side of the studio, chatting. They stop and look at you, their eyes flicking over your body.<<person1>>
-    <<elseif $photo.fame_stage is 1>>
-        <<set $photo.fame_stage to 2>>
-        <<set $photo.money += 50>>
-        <<generate1>>
-        There's a <<person1>><<person>> sat to one side of the studio. <<He>> grins at you.
-    <<else>>
-        <<set $photo.fame_stage to 1>>
-        <<set $photo.money += 50>>
-        <<generate1>>
-        You're surprised by a <<person1>><<person>> sat to one side of the studio. Niki follows your eyes. "Photoshoots are sometimes observed by others in the industry," <<nnpc_he "Niki">> says. "It's normal. You get an extra <span class="gold">£50</span> per person. There'll be more interest as you become better known."
-        <br><br>
-
-        The <<person>> grins at you.
-    <</if>>
-        <br><br>
-
-    <<link [[Continue with audience|Photo Model 3]]>><</link>>
-    <br>
-    <<link [[Refuse an audience|Photo Model Refuse]]>><<npcincr Niki love -1>><</link>><<llove>>
-    <br>
+<<if random(1, 2) is 2 and $fame.model gte 100>>
+	<!-- Audience generation -->
+	<<set _maxAudience to Math.clamp(Math.floor($fame.model / 100), 0, 6)>> <!-- 1 for 100, 6 for 600 or higher, etc -->
+	<<if $photo.audienceSize lt _maxAudience and $photo.timesWithThisAudienceSize gte 2>>
+		<<set $photo.audienceSize += 1>>
+		<<set $photo.timesWithThisAudienceSize to 0>>
+	<</if>>
+	<!-- Incrase audience size if we've had the previous audience size AT LEAST twice (and we've enough fame) -->
+	<<set $photo.timesWithThisAudienceSize += 1>> <!-- Increase the number of times we've had this audience size -->
+	<<for _audienceGenIndex to 1; _audienceGenIndex lte $photo.audienceSize; _audienceGenIndex++>>
+		<<generateNPC _audienceGenIndex>>
+	<</for>>
+	<!-- Generate the needed number of audience members, and texts for them -->
+
+	<!-- Adding new lines is as simple as inputting it into the right group below. End your line with a , for better diffs handling -->
+	<!-- Lines below will be picked from at random per audience encounter -->
+	<<set _audienceText to [
+		[
+			"" /* audience size zero, no text */
+		], [ /* Audience size 1 strings */
+			"There's a <<person1>><<person>> sat to one side of the studio. <<He>> grins at you.",
+			"A <<person1>><<person>> sits to one side of the studio. <<His>> eyes latch on to you, and <<he>> smiles in a slightly creepy manner.",
+		], [ /* Audience size 2 strings */
+			"A <<person2>><<person>> and <<person1>><<person>> sit to one side of the studio, chatting. They stop and look at you, their eyes flicking over your body.",
+			"A <<person2>><<person>> and <<person1>><<person>> sit to one side of the studio, chatting as they watch you. The <<person>> leers a little.",
+		], [ /* Audience size 3 strings */
+			"<<EnumeratedGroup>> sit to one side, watching you. The <<person1>><<person>> sitting in the middle grins.",
+			"<<EnumeratedGroup>> sit to one side, watching you. One, a <<person1>><<person>>, openly leers.",
+		], [ /* Audience size 4 strings */
+			"<<EnumeratedGroup>> sit to one side, watching you. One, a <<person1>><<person>>, combs <<his>> hair while staring at your <<bottom>>.",
+			"<<EnumeratedGroup>> sit to one side, watching you. One of them, a <<person1>><<person>>, sips from a glass of wine.",
+		], [ /* Audience size 5 strings */
+			"<<EnumeratedGroup>> sit to one side, chatting. One of them, a <<person1>><<person>>, watches you without breaking conversation.",
+			"<<EnumeratedGroup>> sit to one side, chatting. One of them, a <<person1>><<person>>, ignores <<his>> neighbors and stares at you.",
+		], [ /* Audience size 6 strings */
+			"<<EnumeratedGroup>> sit to one side, watching you. One of them, a <<person1>><<person>>, chats with the <<person2>><<person>> beside <<person1>><<him>>, but watches you all the while.",
+			"<<EnumeratedGroup>>> sit to one side, watching you. One of them, a <<person1><<person>>, licks <<his>> lips.",
+		],
+	].select($photo.audienceSize).random()>>
+
+	<<if $photo.audienceSize is 1 and $photo.timesWithThisAudienceSize is 1>>
+		<!-- First time we've seen an audience -->
+		<br><br>
+		Niki looks up from adjusting the tripod camera. "Photoshoots are sometimes observed by others in the industry," <<nnpc_he "Niki">> says. "It's normal. You get an extra <span class="gold">£50</span> per person. There'll be more interest as you become better known."
+	<</if>>
+
+
+	/*
+	<<if $photo.fame_stage gte 11>>
+		<<set $photo.fame_stage to 12>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>>
+		<<person1>>Six <<people>> sit to one side once again, watching you. One of them, a <<person>>, licks <<his>> lips.
+	<<elseif $photo.fame_stage gte 10 and $fame.model gte 600>>
+		<<set $photo.fame_stage to 11>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>>
+		<<person1>>Six <<people>> sit to one side, watching you. One of them, a <<person>>, chats with the <<person2>><<person>> beside <<person1>><<him>>, but watches you all the while.
+	<<elseif $photo.fame_stage gte 9>>
+		<<set $photo.fame_stage to 10>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>><<generate4>><<generate5>>
+		<<person1>>Five <<people>> sit to one side once again, chatting. One of them, a <<person>>, watches you without breaking conversation.
+	<<elseif $photo.fame_stage gte 8 and $fame.model gte 500>>
+		<<set $photo.fame_stage to 9>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>><<generate4>><<generate5>>
+		<<person1>>Five <<people>> sit to one side, chatting. One of them, a <<person>>, watches you without breaking conversation.
+	<<elseif $photo.fame_stage gte 7>>
+		<<set $photo.fame_stage to 8>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>><<generate4>>
+		<<person1>>Four <<people>> sit to one side once again, watching you. One of them, a <<person>>, sips from a glass of wine.
+	<<elseif $photo.fame_stage gte 6 and $fame.model gte 400>>
+		<<set $photo.fame_stage to 7>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>><<generate4>>
+		<<person1>>Four <<people>> sit to one side, watching you. One, a <<person>>, combs <<his>> hair while staring at your <<bottom>>.
+	<<elseif $photo.fame_stage gte 5>>
+		<<set $photo.fame_stage to 6>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>>
+		<<person1>>Three <<people>> sit to one side once again, watching you. One, a <<person>>, openly leers.
+	<<elseif $photo.fame_stage gte 4 and $fame.model gte 300>>
+		<<set $photo.fame_stage to 5>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>><<generate3>>
+		<<person1>>Three <<people>> sit to one side, watching you. The <<person>> sitting in the middle grins.
+	<<elseif $photo.fame_stage gte 3>>
+		<<set $photo.fame_stage to 4>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>>
+		A <<fullGroup>> sit to one side of the studio, chatting as they watch you.<<person1>>
+	<<elseif $photo.fame_stage is 2 and $fame.model gte 200>>
+		<<set $photo.fame_stage to 3>>
+		<<set $photo.money += 50>>
+		<<generate1>><<generate2>>
+		A <<fullGroup>> sit to one side of the studio, chatting. They stop and look at you, their eyes flicking over your body.<<person1>>
+	<<elseif $photo.fame_stage is 1>>
+		<<set $photo.fame_stage to 2>>
+		<<set $photo.money += 50>>
+		<<generate1>>
+		There's a <<person1>><<person>> sat to one side of the studio. <<He>> grins at you.
+	<<else>>
+		<!-- One Person, first time -->
+		<<set $photo.fame_stage to 1>>
+		<<set $photo.money += 50>>
+		<<generate1>>
+		You're surprised by a <<person1>><<person>> sat to one side of the studio. Niki follows your eyes. "Photoshoots are sometimes observed by others in the industry," <<nnpc_he "Niki">> says. "It's normal. You get an extra <span class="gold">£50</span> per person. There'll be more interest as you become better known."
+		<br><br>
+
+		The <<person>> grins at you.
+	<</if>>
+
+	*/
+
+	<br><br>
+	<<link [[Continue with audience|Photo Model 3]]>><<set $photo.money += ( 50 * $photo.audienceSize )>><</link>>
+	<br>
+	<<link [[Refuse an audience|Photo Model Refuse]]>><<npcincr Niki love -1>><</link>><<llove "Niki">>
+	<br>
 <<else>>
-    You find Niki adjusting a tripod camera. "Almost ready." <<nnpc_He "Niki">> glances at your outfit. "There." <<nnpc_He "Niki">> steps away from the tripod, and lifts another camera from a table.
-    <br><br>
+	You find Niki adjusting a tripod camera. "Almost ready." <<nnpc_He "Niki">> glances at your outfit. "There." <<nnpc_He "Niki">> steps away from the tripod, and lifts another camera from a table.
+	<br><br>
 
-    <<nnpc_He "Niki">> readies the camera, and asks you to pose.
-    <br><br>
+	<<nnpc_He "Niki">> readies the camera, and asks you to pose.
+	<br><br>
 
-    <<link [[Follow instruction|Photo Model 3]]>><<set $phase to 0>><</link>>
-    <br>
-    <<link [[Add your own flair|Photo Model 3]]>><<set $phase to 1>><</link>>
-    <br>
+	<<link [[Follow instruction|Photo Model 3]]>><<set $phase to 0>><</link>>
+	<br>
+	<<link [[Add your own flair|Photo Model 3]]>><<set $phase to 1>><</link>>
+	<br>
 <</if>>
 
 :: Photo Model Refuse
 <<effects>>
 
 <<if $submissive gte 1150>>
-    "I-I'm sorry," you say. "But I won't do this with an audience."
+	"I-I'm sorry," you say. "But I won't do this with an audience."
 <<elseif $submissive lte 850>>
-    "I don't trust this," you say. "I'm not playing along."
+	"I don't trust this," you say. "I'm not playing along."
 <<else>>
-    "I'm not comfortable with an audience," you say.
+	"I'm not comfortable with an audience," you say.
 <</if>>
 <br><br>
 
 <<if $enemyno gte 2>>
-    Niki nods, and points at the door. No one complains as they traipse out.
+	Niki nods, and points at the door. No one complains as they traipse out.
 <<else>>
-    Niki nods, and points at the door. The <<person>> complains, but doesn't argue as <<he>> traipses out.
+	Niki nods, and points at the door. The <<person>> complains, but doesn't argue as <<he>> traipses out.
 <</if>>
 <br><br>
 
@@ -261,12 +290,14 @@ You put on the $worn.upper.name, and emerge from behind the screen.
 :: Photo Model 3
 <<effects>>
 
+<<set $photo.time += 30>>
+
 <<if $phase is 0>>
-    You follow Niki's instructions to the letter.
+	You follow Niki's instructions to the letter.
 <<elseif $phase is 1>>
-    You take Niki's instructions as a guideline, and do your own thing when the urge strikes you. Niki seems neither impressed nor bothered.
+	You take Niki's instructions as a guideline, and do your own thing when the urge strikes you. Niki seems neither impressed nor bothered.
 <<else>>
-    Niki gives you instructions.
+	Niki gives you instructions.
 <</if>>
 <<nnpc_He "Niki">> circles you as you hold each pose, sometimes crouching, snapping pictures from different angles.
 <br><br>
@@ -279,47 +310,49 @@ Many of the shots seem awfully focused on your <<bottom>>.
 <<link [[Complain|Photo Model 4]]>><<def 1>><<set $phase to 1>><</link>>
 <br>
 <<if $exhibitionism gte 15>>
-    <<link [[Flaunt|Photo Model 4]]>><<set $phase to 2>><</link>><<exhibitionist2>>
+	<<link [[Flaunt|Photo Model 4]]>><<set $phase to 2>><</link>><<exhibitionist2>>
 <</if>>
 <br>
 
 :: Photo Model 4
 <<effects>>
 
+<<set $photo.time += 30>>
+
 <<if $phase is 0>>
-    You endure it. This is just something you'll have to put up with. Niki continues snapping away.
-    <br><br>
+	You endure it. This is just something you'll have to put up with. Niki continues snapping away.
+	<br><br>
 <<elseif $phase is 1>>
-    <<if $submissive gte 1150>>
-        "P-please," you say. "Not so lewd."
-    <<elseif $submissive lte 850>>
-        "I'm modelling these clothes," you say. "Not my ass."
-    <<else>>
-        "I'm not comfortable with shots like that," you say.
-    <</if>>
-    <br><br>
-    Niki doesn't respond, but doesn't take a close up picture of your <<bottom>> again.
-    <br><br>
+	<<if $submissive gte 1150>>
+		"P-please," you say. "Not so lewd."
+	<<elseif $submissive lte 850>>
+		"I'm modelling these clothes," you say. "Not my ass."
+	<<else>>
+		"I'm not comfortable with shots like that," you say.
+	<</if>>
+	<br><br>
+	Niki doesn't respond, but doesn't take a close up picture of your <<bottom>> again.
+	<br><br>
 <<elseif $phase is 2>>
-    You stick your <<bottom>> out. Niki takes it in stride, and snaps away.
-    <<exhibitionism2>>
+	You stick your <<bottom>> out. Niki takes it in stride, and snaps away.
+	<<exhibitionism2>>
 <</if>>
 
 
 
 <<if $photo.evidence gte 1 and $photo.refused gte 1 and $enemyno gte 1>>
-    
-    "Almost done," <<he>> says. "Need something from my office. I'll be right back." <<nnpc_He "Niki">> leaves the room, taking the smaller camera with <<nnpc_him "Niki">>, but leaving the tripod.
-    <br><br>
-    
-    <<link [[Next|Photo Model Blackmail]]>><<pass 180>><<tiredness 18>><</link>>
-    <br>
+
+	"Almost done," <<he>> says. "Need something from my office. I'll be right back." <<nnpc_He "Niki">> leaves the room, taking the smaller camera with <<nnpc_him "Niki">>, but leaving the tripod.
+	<br><br>
+
+	<<link [[Next|Photo Model Blackmail]]>><</link>>
+	<br>
 <<else>>
-    It's tiring work. Niki brings out a stool at one point, but holding the strange poses as you "sit" on it provides little relief.
-    <br><br>
+	It's tiring work. Niki brings out a stool at one point, but holding the strange poses as you "sit" on it provides little relief.
+	<br><br>
 
-    <<link [[Next|Photo Model 5]]>><<pass 180>><<tiredness 18>><</link>>
-    <br>
+	<<link [[Next|Photo Model 5]]>><</link>>
+	<br>
 <</if>>
 
 :: Photo Model Blackmail
@@ -337,28 +370,28 @@ With Niki gone, the <<person>> walks to the tripod camera, and fishes <<his>> ph
 <<effects>>
 
 <<if $phase is 1>>
-    <<if $submissive gte 1150>>
-        "I-I don't think you're supposed to touch that," you say.
-    <<elseif $submissive lte 850>>
-        "Get your mitts off," you say.
-    <<else>>
-        "You're not meant to touch that," you say.
-    <</if>>
-    <br><br>
-    "Can't blame a <<personsimple>> for being curious," <<he>> replies. 
+	<<if $submissive gte 1150>>
+		"I-I don't think you're supposed to touch that," you say.
+	<<elseif $submissive lte 850>>
+		"Get your mitts off," you say.
+	<<else>>
+		"You're not meant to touch that," you say.
+	<</if>>
+	<br><br>
+	"Can't blame a <<personsimple>> for being curious," <<he>> replies.
 <<else>>
-    You remain silent as the <<person>> continues. "What do we have here," <<he>> says.
+	You remain silent as the <<person>> continues. "What do we have here," <<he>> says.
 <</if>>
 <<if $photo.evidence is 2>>
-    A grin lights up <<his>> face. <span class="pink">"There's a clip here, of this slut getting gangbanged!"</span>
+	A grin lights up <<his>> face. <span class="pink">"There's a clip here, of this slut getting gangbanged!"</span>
 <<elseif $photo.evidence is 1>>
-    A grin lights up <<his>> face. <span class="purple">"There's an interesting clip here. The screen falls while you're getting changed!"</span>
+	A grin lights up <<his>> face. <span class="purple">"There's an interesting clip here. The screen falls while you're getting changed!"</span>
 <</if>>
 <br><br>
 <<if $enemyno gte 3>>
-    The rest of the audience joins <<him>>, crowding to peer over <<his>> shoulder.
+	The rest of the audience joins <<him>>, crowding to peer over <<his>> shoulder.
 <<elseif $enemyno is 2>>
-    The other member of the audience, a <<person2>><<person>>, rushes over. "Let me see."
+	The other member of the audience, a <<person2>><<person>>, rushes over. "Let me see."
 <</if>>
 <br><br>
 
@@ -366,17 +399,17 @@ The <<person>> looks up at you. "I know your type. Such a tease. Well, here's wh
 <br><br>
 
 <<if $enemeyno is 6>>
-    You could try to stop <<him>>, but <<he>> has five people helping.
+	You could try to stop <<him>>, but <<he>> has five people helping.
 <<elseif $enemyno is 5>>
-    You could try to stop <<him>>, but <<he>> has four people helping.
+	You could try to stop <<him>>, but <<he>> has four people helping.
 <<elseif $enemyno is 4>>
-    You could try to stop <<him>>, but <<he>> has three people helping.
+	You could try to stop <<him>>, but <<he>> has three people helping.
 <<elseif $enemeyno is 3>>
-    You could try to stop <<him>>, but <<he>> has two people helping.
+	You could try to stop <<him>>, but <<he>> has two people helping.
 <<elseif $enemyno is 2>>
-    You could try to stop <<him>>, but <<he>> has help.
+	You could try to stop <<him>>, but <<he>> has help.
 <<else>>
-    You could try to stop <<him>>.
+	You could try to stop <<him>>.
 <</if>>
 <br><br>
 
@@ -386,7 +419,7 @@ The <<person>> looks up at you. "I know your type. Such a tease. Well, here's wh
 <br>
 <<link [[Remain silent|Photo Model Blackmail 3]]>><<set $phase to 2>><</link>>
 <br>
-<<link [[Fight|Photo Model Blackmail Attack]]>><<def 1>><</link>>
+<<link [[Fight|Photo Model Blackmail Attack]]>><<set $phase to 2>><<def 1>><</link>>
 <br>
 
 
@@ -408,7 +441,7 @@ You rush at the <<person>>, and whack the phone out of <<his>> hand. <<He>> roll
 	<<set $enemytrust -= 100>>
 	<<set $enemyanger += 200>>
 	<<npcidlegenitals>>
-    <<enable_rescue>>
+	<<enable_rescue>>
 <</if>>
 
 <<effects>>
@@ -425,7 +458,7 @@ You rush at the <<person>>, and whack the phone out of <<his>> hand. <<He>> roll
 <<elseif $pain gte 100 and $willpowerpain is 0>>
 	<span id="next"><<link [[Next|Photo Model Blackmail Fight Finish]]>><</link>></span><<nexttext>>
 <<elseif $alarm is 1 and $rescue is 1>>
-    <span id="next"><<link [[Next|Photo Model Blackmail Fight Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Photo Model Blackmail Fight Finish]]>><</link>></span><<nexttext>>
 <<else>>
 	<span id="next"><<link [[Next|Photo Model Blackmail Fight]]>><</link>></span><<nexttext>>
 <</if>>
@@ -435,72 +468,72 @@ You rush at the <<person>>, and whack the phone out of <<his>> hand. <<He>> roll
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 	<<tearful>> you snatch the phone while they're distracted. You delete the footage just as Niki returns. <<nnpc_He "Niki">> observes the scene, the
-    <<if $enemyno gte 2>>
-        <<people>>
-    <<else>>
-        <<person>>
-    <</if>>
-    lying on the ground beside the fallen camera.
+	<<if $enemyno gte 2>>
+		<<people>>
+	<<else>>
+		<<person>>
+	<</if>>
+	lying on the ground beside the fallen camera.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-    
-    "Out," <<nnpc_he "Niki">> says. "No disrupting the shoot. That was the only rule."
-    <br><br>
-
-    You hand the <<person>> <<his>> phone as <<he>> passes,
-    <<if $submissive gte 1150>>
-        though you can't make eye contact.
-    <<else>>
-        and resist sticking out your tongue.
-    <</if>>
-    <br><br>
+
+	"Out," <<nnpc_he "Niki">> says. "No disrupting the shoot. That was the only rule."
+	<br><br>
+
+	You hand the <<person>> <<his>> phone as <<he>> passes,
+	<<if $submissive gte 1150>>
+		though you can't make eye contact.
+	<<else>>
+		and resist sticking out your tongue.
+	<</if>>
+	<br><br>
 
 <<elseif $enemyhealth lte 0>>
 	<<tearful>> you snatch the phone from the <<persons>> grasp. You delete the footage just as Niki returns. <<nnpc_He "Niki">> observes the scene, the
-    <<if $enemyno gte 2>>
-        <<people>>
-    <<else>>
-        <<person>>
-    <</if>>
-    lying on the ground beside the fallen camera.
+	<<if $enemyno gte 2>>
+		<<people>>
+	<<else>>
+		<<person>>
+	<</if>>
+	lying on the ground beside the fallen camera.
 	<br><br>
-	 "Out," <<nnpc_he "Niki">> says. "No disrupting the shoot. That was the only rule."
-    <br><br>
-
-    You hand the <<person>> <<his>> phone as <<he>> passes,
-    <<if $submissive gte 1150>>
-        though you can't make eye contact.
-    <<else>>
-        and resist sticking out your tongue.
-    <</if>>
-    <br><br>
-    <<clotheson>>
-    <<endcombat>>
+	"Out," <<nnpc_he "Niki">> says. "No disrupting the shoot. That was the only rule."
+	<br><br>
+
+	You hand the <<person>> <<his>> phone as <<he>> passes,
+	<<if $submissive gte 1150>>
+		though you can't make eye contact.
+	<<else>>
+		and resist sticking out your tongue.
+	<</if>>
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
 
 <<elseif $rescue is 1 and $alarm is 1>>
-    
-    The door swings open, and Niki steps in. The <<person>> backs away from you, but keeps hold of <<his>> phone. <<nnpc_He "Niki">> observes the scene, and the fallen camera.
-    <br><br>
-    "Out," <<nnpc_he "Niki">> says. "No disrupting the shoot. That was the only rule."
-    <br><br>
 
-    The <<person>> does as asked, <span class="pink">but <<he>> still has the footage.</span> <<photo_evidence_upload>>
-    <br><br>
+	The door swings open, and Niki steps in. The <<person>> backs away from you, but keeps hold of <<his>> phone. <<nnpc_He "Niki">> observes the scene, and the fallen camera.
+	<br><br>
+	"Out," <<nnpc_he "Niki">> says. "No disrupting the shoot. That was the only rule."
+	<br><br>
+
+	The <<person>> does as asked, <span class="pink">but <<he>> still has the footage.</span> <<photo_evidence_upload>>
+	<br><br>
 
-    <<clotheson>>
-    <<endcombat>>
+	<<clotheson>>
+	<<endcombat>>
 <<else>>
-    
+
 	You fall to the ground, too hurt to continue fighting. The <<person>> stands over you, holding the phone. <<photo_evidence_upload>>
 	<br><br>
-	Niki returns, and observes you lying on the floor beside the camera.  "Out," <<nnpc_he "Niki">> says to the <<person>>. "No disrupting the shoot. That was the only rule."
-    <br><br>
+	Niki returns, and observes you lying on the floor beside the camera. "Out," <<nnpc_he "Niki">> says to the <<person>>. "No disrupting the shoot. That was the only rule."
+	<br><br>
 
 	<<clotheson>>
 	<<endcombat>>
 
-	
+
 <</if>>
 <<link [[Next|Photo Model Blackmail Fight End]]>><</link>>
 <br>
@@ -512,9 +545,9 @@ You rush at the <<person>>, and whack the phone out of <<his>> hand. <<He>> roll
 "I'm sorry," Niki says, helping you to your feet.
 
 <<if $exposed gte 1>>
-    <<nnpc_He "Niki">> observes your state of dress, and averts <<nnpc_his "Niki">> eyes. "We have spare. If you want to continue with the shoot. No pressure."
+	<<nnpc_He "Niki">> observes your state of dress, and averts <<nnpc_his "Niki">> eyes. "We have spare. If you want to continue with the shoot. No pressure."
 <<else>>
-    "We can continue the shoot, or not. No pressure."
+	"We can continue the shoot, or not. No pressure."
 <</if>>
 <br><br>
 
@@ -540,36 +573,37 @@ You get dressed behind the screen, and emerge to find the camera righted, and Ni
 :: Photo Model Stop
 <<effects>>
 
-<<famemodel 20 pic>>
+<<famemodel 20 "pic">>
 <<storeon "photo">>
 You get dressed behind the screen, and emerge to find Niki counting out your cash. You make <<moneyGain $photo.money>>.
 <br><br>
 "You did well," <<nnpc_he "Niki">> says. "I'd like to do another shoot next week."
+<<if $phase is 2>><<nnpc_he "Niki">> pauses. "I'm sorry, again, about what happened."<</if>>
 <br><br>
 
 Money in hand, you leave the studio.
 <br><br>
 
-<<link [[Next|Nightingale Street]]>><<photo_end>><<set $eventskip to 1>><<endevent>><</link>>
+<<link [[Next|Nightingale Street]]>><<photo_end>><</link>>
 <br>
 
 :: Photo Model Blackmail 3
 <<effects>>
 <<set $photo.blackmail to $photo.evidence>>
 <<if $phase is 2>>
-    You remain silent. The <<person>> opens <<his>> mouth, but is interrupted by a bang outside.
+	You remain silent. The <<person>> opens <<his>> mouth, but is interrupted by a bang outside.
 <<elseif $phase is 1>>
-    <<if $submissive gte 1150>>
-        "P-please don't," you say.
-    <<elseif $submissive lte 850>>
-        "Don't do this," you say.
-    <<else>>
-        "Please don't," you say.
-    <</if>>
-    <br><br>
-    The <<person>> snorts a dismissive laugh, but is interrupted by a bang outside.
+	<<if $submissive gte 1150>>
+		"P-please don't," you say.
+	<<elseif $submissive lte 850>>
+		"Don't do this," you say.
+	<<else>>
+		"Please don't," you say.
+	<</if>>
+	<br><br>
+	The <<person>> snorts a dismissive laugh, but is interrupted by a bang outside.
 <<else>>
-    You nod. The <<person>> opens <<his>> mouth, but is interrupted by a bang outside.
+	You nod. The <<person>> opens <<his>> mouth, but is interrupted by a bang outside.
 <</if>>
 <<He>> hastens back to <<his>> chair, phone in hand.
 <br><br>
@@ -584,39 +618,41 @@ Niki returns, carrying a stool ahead of <<nnpc_him "Niki">>. You use it as a pro
 :: Photo Model 5
 <<effects>>
 
-"Almost done," Niki says at last. <<nnpc_He "Niki">> adjusts the lighting. "Some topless shots would be good. I'd double your fee. So it'd be <span class="gold">£<<print $photo.money * 2>>.</span>"
+<<set $photo.time += 30>>
+
+"Almost done," Niki says at last. <<nnpc_He "Niki">> adjusts the lighting. "Some topless shots would be good. I'd double your fee. So it'd be <span class="gold">£<<print $photo.money * 2>>.</span> Should take another 30 minutes."
 <br><br>
 
 <<if $enemyno gte 2>>
-    <<if $photo.blackmail gte 1>>
-        <span class="pink">The seated <<person>> leans forward in <<his>> chair, holding <<his>> phone and looking you right in the eyes.</span>
-    <<else>>
-        The seated <<person>> leans forward in <<his>> chair, and the <<person2>><<person>> licks <<his>> lips.<<person1>>
-    <</if>>
-    <br><br>
+	<<if $photo.blackmail gte 1>>
+		<span class="pink">The seated <<person>> leans forward in <<his>> chair, holding <<his>> phone and looking you right in the eyes.</span>
+	<<else>>
+		The seated <<person>> leans forward in <<his>> chair, and the <<person2>><<person>> licks <<his>> lips.<<person1>>
+	<</if>>
+	<br><br>
 <<elseif $enemyno is 1>>
-    <<if $photo.blackmail gte 1>>
-        <span class="pink">The seated <<person>> leans forward in <<his>> chair, holding <<his>> phone and looking you right in the eyes.</span>
-    <<else>>
-        The seated <<person>> leans forward in <<his>> chair.
-    <</if>>
-    <br><br>
+	<<if $photo.blackmail gte 1>>
+		<span class="pink">The seated <<person>> leans forward in <<his>> chair, holding <<his>> phone and looking you right in the eyes.</span>
+	<<else>>
+		The seated <<person>> leans forward in <<his>> chair.
+	<</if>>
+	<br><br>
 <</if>>
 
 <<link [[Refuse|Photo Model Topless Refuse]]>><<set $photo.refused += 1>><</link>>
 <br>
 <<if $exhibitionism gte 55>>
-    <<link [[Accept|Photo Model Topless]]>><<npcincr Niki love 1>><<set $phase to 0>><</link>><<exhibitionist4>><<glove>>
-    <br>
+	<<link [[Accept|Photo Model Topless]]>><<set $phase to 0>><</link>><<exhibitionist4>><<glove "Niki">>
+	<br>
 <<elseif $uncomfortable.prostituting is false>>
-    <<link [[Accept|Photo Model Topless]]>><<set $desperateaction to 1>><<npcincr Niki love 1>><<set $phase to 0>><</link>><<exhibitionist4>><<glove>>
-    <br>
+	<<link [[Accept|Photo Model Topless]]>><<set $desperateaction to 1>><<set $phase to 0>><</link>><<exhibitionist4>><<glove "Niki">>
+	<br>
 <<elseif $photo.blackmail gte 1>>
-    <<link [[Accept|Photo Model Topless]]>><<trauma 12>><<stress 12>><<set $phase to 1>><</link>><<ggtrauma>><<ggstress>>
-    <br>
+	<<link [[Accept|Photo Model Topless]]>><<trauma 12>><<stress 12>><<set $phase to 1>><</link>><<ggtrauma>><<ggstress>><<glove "Niki">>
+	<br>
 <<else>>
-    <span class="blue">You're not lewd or desperate enough for that.</span>
-    <br>
+	<span class="blue">You're not lewd or desperate enough for that.</span>
+	<br>
 <</if>>
 
 
@@ -624,69 +660,69 @@ Niki returns, carrying a stool ahead of <<nnpc_him "Niki">>. You use it as a pro
 <<effects>>
 
 <<if $submissive gte 1150>>
-    "I-I'm sorry," you say. "I'm not comfortable with that."
+	"I-I'm sorry," you say. "I'm not comfortable with that."
 <<elseif $submissive lte 850>>
-    "Not interested," you say.
+	"Not interested," you say.
 <<else>>
-    "I'm not comfortable with that," you say.
+	"I'm not comfortable with that," you say.
 <</if>>
 <<if $enemyno gte 1 and $photo.blackmail gte 1>>
-    The <<person>> shakes <<his>> head. <<photo_evidence_upload>>
+	The <<person>> shakes <<his>> head. <<photo_evidence_upload>>
 <</if>>
 <br><br>
 <<if $photo.refused gte 2>>
-    Niki nods, and wraps up the photoshoot without another word.
-    <br><br>
-    <<set $photo.refused to 0>>
-    <<exposure>>
-    <<set $photo.evidence to 1>>
-    You step behind the screen, and remove the $worn.upper.name. Before you can dress however, <span class="purple">you hear a creek,</span> and the screen collapses, <span class="pink">exposing you to the room.</span><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-    <br><br>
-    <<set $worn.upper to clone(setup.clothes.upper[0])>>
+	Niki nods, and wraps up the photoshoot without another word.
+	<br><br>
+	<<set $photo.refused to 0>>
+	<<exposure>>
+	<<set $photo.evidence to 1>>
+	You step behind the screen, and remove the $worn.upper.name. Before you can dress however, <span class="purple">you hear a creak,</span> and the screen collapses, <span class="pink">exposing you to the room.</span><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+	<br><br>
+	<<set $worn.upper to clone(setup.clothes.upper[0])>>
 	<<set $worn.lower to clone(setup.clothes.lower[0])>>
 	<<set $worn.under_upper to clone(setup.clothes.under_upper[0])>>
 	<<set $worn.under_lower to clone(setup.clothes.under_lower[0])>>
-    <<if $enemyno gte 2>>
-        A cheer goes up from the still-seated audience. The light on the tripod camera is still green. <<covered>>
-    <<elseif $enemyno gte 1>>
-        The still-seated <<person>> cheers. The light on the tripod camera is still green. <<covered>>
-    <<else>>
-        The light on the tripod camera is still green. <<covered>>
-    <</if>>
-    <br><br>
-    Niki covers <<nnpc_his "Niki">> eyes and rushes over. <<nnpc_He "Niki">> lifts the fallen screen, separating you from the rest of the room once more. <<nnpc_He "Niki">> apologises from the other side.
-    <br><br>
-
-    <<link [[Next|Photo Model Topless End]]>><</link>>
-    <br>
+	<<if $enemyno gte 2>>
+		A cheer goes up from the still-seated audience. The light on the tripod camera is still green. <<covered>>
+	<<elseif $enemyno gte 1>>
+		The still-seated <<person>> cheers. The light on the tripod camera is still green. <<covered>>
+	<<else>>
+		The light on the tripod camera is still green. <<covered>>
+	<</if>>
+	<br><br>
+	Niki covers <<nnpc_his "Niki">> eyes and rushes over. <<nnpc_He "Niki">> lifts the fallen screen, separating you from the rest of the room once more. <<nnpc_He "Niki">> apologises from the other side.
+	<br><br>
+
+	<<link [[Next|Photo Model Topless End]]>><</link>>
+	<br>
 <<else>>
-    Niki nods, and wraps up the photoshoot without another word.
-    <br><br>
-    <<famemodel 20 pic>>
-    <<storeon "photo">>
-    You get dressed behind the screen, and emerge to find Niki counting out your cash. You make <<moneyGain $photo.money>>.
-    <br><br>
-    "You did well," <<nnpc_he "Niki">> says. "I'd like to do another shoot next week."
-    <br><br>
-
-    Money in hand, you leave the studio.
-    <br><br>
-
-    <<link [[Next|Nightingale Street]]>><<photo_end>><<set $eventskip to 1>><<endevent>><</link>>
-    <br>
+	Niki nods, and wraps up the photoshoot without another word.
+	<br><br>
+	<<famemodel 20 "pic">>
+	<<storeon "photo">>
+	You get dressed behind the screen, and emerge to find Niki counting out your cash. You make <<moneyGain $photo.money>>.
+	<br><br>
+	"You did well," <<nnpc_he "Niki">> says. "I'd like to do another shoot next week."
+	<br><br>
+
+	Money in hand, you leave the studio.
+	<br><br>
+
+	<<link [[Next|Nightingale Street]]>><<photo_end>><</link>>
+	<br>
 <</if>>
 
 
 :: Photo Model Topless End
 <<effects>>
 
-<<famemodel 20 pic>>
+<<famemodel 20 "pic">>
 <<storeon "photo">>
 You're still blushing when you emerge, now dressed, to find Niki counting out your cash.
 <<if $enemyno gte 2>>
-    The audience leers at you, but you do your best to ignore them.
+	The audience leers at you, but you do your best to ignore them.
 <<elseif $enemyno is 1>>
-    The <<person>> leers at you, but you do your best to ignore <<him>>.
+	The <<person>> leers at you, but you do your best to ignore <<him>>.
 <</if>>
 You make <<moneyGain $photo.money>>.
 <br><br>
@@ -696,35 +732,39 @@ You make <<moneyGain $photo.money>>.
 Money in hand, you leave the studio.
 <br><br>
 
-<<link [[Next|Nightingale Street]]>><<photo_end>><<set $eventskip to 1>><<endevent>><</link>>
+<<link [[Next|Nightingale Street]]>><<photo_end>><</link>>
 <br>
 
 :: Photo Model Topless
 <<effects>>
 
+<<set $photo.time += 30>>
 <<set $photo.money *= 2>>
 <<famemodel 10 vid>>
 <<fameexhibitionism 10 vid>>
+<<npcincr Niki love 1>>
+
 <<if $worn.upper.strap is 1>>
-    <<flaunting>> you untie the strap behind your neck. The fabric covering your chest falls, freeing your <<breasts>>.
+	<<flaunting>> you untie the strap behind your neck. The fabric covering your chest falls, freeing your <<breasts>>.
 <<elseif $worn.upper.set is $worn.lower.set>>
-    <<flaunting>> you pull down your $worn.upper.name, freeing your <<breasts>>.
+	<<flaunting>> you pull down your $worn.upper.name, freeing your <<breasts>>.
 <<else>>
-    <<flaunting>> you pull off your $worn.upper.name, freeing your <<breasts>>.
+	<<flaunting>> you pull off your $worn.upper.name, freeing your <<breasts>>.
 <</if>>
 <<set $worn.upper to clone(setup.clothes.upper[0])>>
+
 <<if $phase is 1>>
-    <br><br>
+	<br><br>
 <<else>>
-    <<exhibitionism4>>
+	<<exhibitionism4>>
 <</if>>
 
 <<if $enemyno gte 2>>
-    The audience watches as you strike another pose, now with your chest bare.
+	The audience watches as you strike another pose, now with your chest bare.
 <<elseif $enemyno gte 1>>
-    The <<person>> watches as you strike another pose, now with your chest bare.
+	The <<person>> watches as you strike another pose, now with your chest bare.
 <<else>>
-    You strike another pose, now with your chest bare.
+	You strike another pose, now with your chest bare.
 <</if>>
 Niki takes more pictures, focusing your chest and face. <<nnpc_He "Niki">> remains entirely professional. You feel your cheeks flush.
 <br><br>
@@ -735,111 +775,116 @@ Niki takes more pictures, focusing your chest and face. <<nnpc_He "Niki">> remai
 :: Photo Model Topless 2
 <<effects>>
 
-Niki pauses. "We could wrap it up here," <<nnpc_he "Niki">> says. "But if you're down for shots in your underwear, I'll throw in another <span class="gold">£400</span>."
+Niki pauses. "We could wrap it up here," <<nnpc_he "Niki">> says. "But if you're down for shots in your underwear, I'll throw in another <span class="gold">£400</span>. Just another half hour."
 <br><br>
 
 <<if $enemyno gte 2>>
-    <<if $photo.blackmail gte 1>>
-        <span class="pink">The seated <<person>> still stares at you, holding <<his>> phone, <<his>> thumb ready to upload the evidence.</span>
-    <<else>>
-        The seated <<person>> leans forward in <<his>> chair, and the <<person2>><<person>> licks <<his>> lips.<<person1>>
-    <</if>>
-    <br><br>
+	<<if $photo.blackmail gte 1>>
+		<span class="pink">The seated <<person>> still stares at you, holding <<his>> phone, <<his>> thumb ready to upload the evidence.</span>
+	<<else>>
+		The seated <<person>> leans forward in <<his>> chair, and the <<person2>><<person>> licks <<his>> lips.<<person1>>
+	<</if>>
+	<br><br>
 <<elseif $enemyno is 1>>
-    <<if $photo.blackmail gte 1>>
-        <span class="pink">The seated <<person>> still stares at you, holding <<his>> phone, <<his>> thumb ready to upload the evidence.</span>
-    <<else>>
-        The seated <<person>> leans forward in <<his>> chair.
-    <</if>>
-    <br><br>
+	<<if $photo.blackmail gte 1>>
+		<span class="pink">The seated <<person>> still stares at you, holding <<his>> phone, <<his>> thumb ready to upload the evidence.</span>
+	<<else>>
+		The seated <<person>> leans forward in <<his>> chair.
+	<</if>>
+	<br><br>
 <</if>>
 
 <<link [[Refuse|Photo Model Topless Refuse]]>><<set $photo.refused += 1>><</link>>
 <br>
 <<if $exhibitionism gte 55>>
-    <<link [[Accept|Photo Model Undies]]>><<npcincr Niki love 1>><<set $phase to 0>><</link>><<exhibitionist4>><<glove>>
-    <br>
+	<<link [[Accept|Photo Model Undies]]>><<set $phase to 0>><</link>><<exhibitionist4>><<glove "Niki">>
+	<br>
 <<elseif $uncomfortable.prostituting is false>>
-    <<link [[Accept|Photo Model Undies]]>><<set $desperateaction to 1>><<npcincr Niki love 1>><<set $phase to 0>><</link>><<exhibitionist4>><<glove>>
-    <br>
+	<<link [[Accept|Photo Model Undies]]>><<set $desperateaction to 1>><<set $phase to 0>><</link>><<exhibitionist4>><<glove "Niki">>
+	<br>
 <<elseif $photo.blackmail gte 1>>
-    <<link [[Accept|Photo Model Undies]]>><<trauma 12>><<stress 12>><<set $phase to 1>><</link>><<ggtrauma>><<ggstress>>
-    <br>
+	<<link [[Accept|Photo Model Undies]]>><<trauma 12>><<stress 12>><<set $phase to 1>><</link>><<ggtrauma>><<ggstress>><<glove "Niki">>
+	<br>
 <<else>>
-    <span class="blue">You're not lewd or desperate enough for that.</span>
-    <br>
+	<span class="blue">You're not lewd or desperate enough for that.</span>
+	<br>
 <</if>>
 
 :: Photo Model Undies
 <<effects>>
 
+<<set $photo.time += 30>>
 <<set $photo.money += 400>>
 <<famemodel 10 vid>>
 <<fameexhibitionism 10 vid>>
+<<npcincr Niki love 1>>
+
 You pull the $worn.lower.name down your legs. "Wait," Niki says. "Hold that pose." Niki takes several shots from various angles, then you pull the fabric the rest of the way, leaving you in just the $worn.under_lower.name.
+
 <<if $phase is 1>>
-    <br><br>
+	<br><br>
 <<else>>
-    <<exhibitionism4>>
+	<<exhibitionism4>>
 <</if>>
+
 <<set $worn.lower to clone(setup.clothes.lower[0])>>
 
 Niki circles you, and asks you to arch your back with your hands between your thighs. Then to sit back on the stool with one leg crossed over the other. Then to lean against the stool with your <<bottom>> stuck out.
 
 <<if $enemyno gte 2>>
-    The audience watches with barely-contained lust.
+	The audience watches with barely-contained lust.
 <<elseif $enemyno gte 1>>
-    The <<person>> watches with barely-contained lust.
+	The <<person>> watches with barely-contained lust.
 <</if>>
 <br><br>
 
 <<if $photo.evidence gte 1 and $photo.refused gte 1 and $enemyno gte 2>>
-    <<set $photo.refused to 0>>
-    "Almost done," <<he>> says. "Need something from my office. I'll be right back." <<nnpc_He "Niki">> leaves the room, taking the smaller camera with <<nnpc_him "Niki">>, but leaving the tripod.
-    <br><br>
-    
-    <<link [[Next|Photo Model Assault]]>><<pass 180>><<tiredness 18>><</link>>
-    <br>
+	<<set $photo.refused to 0>>
+	"Almost done," <<he>> says. "Need something from my office. I'll be right back." <<nnpc_He "Niki">> leaves the room, taking the smaller camera with <<nnpc_him "Niki">>, but leaving the tripod.
+	<br><br>
+
+	<<link [[Next|Photo Model Assault]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Photo Model Undies 2]]>><</link>>
-    <br>
+	<<link [[Next|Photo Model Undies 2]]>><</link>>
+	<br>
 <</if>>
 
 :: Photo Model Undies 2
 <<effects>>
 
-Niki examines the footage. "Could I tempt you to remove those $worn.under_lower.name?" <<nnpc_he "Niki">> asks without looking. "There'll be an extra <span class="gold">£500</span> in it."
+Niki examines the footage. "Could I tempt you to remove those $worn.under_lower.name?" <<nnpc_he "Niki">> asks without looking. "There'll be an extra <span class="gold">£500</span> in it. Thirty more minutes."
 <br><br>
 <<if $enemyno gte 2>>
-    The members of the audience sit on the edge of their seats.
-    <br><br>
+	The members of the audience sit on the edge of their seats.
+	<br><br>
 <<elseif $enemyno is 1>>
-    The <<person>> sits on the edge of <<his>> seat.
-    <br><br>
+	The <<person>> sits on the edge of <<his>> seat.
+	<br><br>
 <</if>>
 
 <<if $photo.blackmail is 1>>
-    That doesn't sound any better than the evidence the <<person>> is using to blackmail you.
-    <br><br>
+	That doesn't sound any better than the evidence the <<person>> is using to blackmail you.
+	<br><br>
 <<elseif $photo.blackmail is 2>>
-    The <<person>>, sitting behind Niki, turns <<his>> phone to face you. <span class="pink">You look away from the footage.</span><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-    <br><br>
+	The <<person>>, sitting behind Niki, turns <<his>> phone to face you. <span class="pink">You look away from the footage.</span><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+	<br><br>
 <</if>>
 
 <<link [[Refuse|Photo Model Topless Refuse]]>><<set $photo.refused += 1>><</link>>
 <br>
 <<if $exhibitionism gte 75>>
-    <<link [[Accept|Photo Model Nude]]>><<npcincr Niki love 1>><<set $phase to 0>><</link>><<exhibitionist5>><<glove>>
-    <br>
+	<<link [[Accept|Photo Model Nude]]>><<set $phase to 0>><</link>><<exhibitionist5>><<glove "Niki">>
+	<br>
 <<elseif $uncomfortable.prostituting is false>>
-    <<link [[Accept|Photo Model Nude]]>><<set $desperateaction to 1>><<npcincr Niki love 1>><<set $phase to 0>><</link>><<exhibitionist5>><<glove>>
-    <br>
+	<<link [[Accept|Photo Model Nude]]>><<set $desperateaction to 1>><<set $phase to 0>><</link>><<exhibitionist5>><<glove "Niki">>
+	<br>
 <<elseif $photo.blackmail gte 1>>
-    <<link [[Accept|Photo Model Nude]]>><<trauma 12>><<stress 12>><<set $phase to 1>><</link>><<ggtrauma>><<ggstress>>
-    <br>
+	<<link [[Accept|Photo Model Nude]]>><<trauma 12>><<stress 12>><<set $phase to 1>><</link>><<ggtrauma>><<ggstress>><<glove "Niki">>
+	<br>
 <<else>>
-    <span class="blue">You're not lewd or desperate enough for that.</span>
-    <br>
+	<span class="blue">You're not lewd or desperate enough for that.</span>
+	<br>
 <</if>>
 
 
@@ -847,25 +892,28 @@ Niki examines the footage. "Could I tempt you to remove those $worn.under_lower.
 :: Photo Model Nude
 <<effects>>
 
+<<set $photo.time += 30>>
+<<set $photo.money += 500>>
+<<famemodel 10 vid>>
+<<fameexhibitionism 10 vid>>
+<<npcincr Niki love 1>>
+
 Niki's camera clicks and flashes as you peel your $worn.under_lower.name down your legs, exposing your <<genitals>>. You take your time, and stop to pose with the fabric around your ankles before kicking them away.
 
 <<if $enemyno gte 2>>
-    The <<person>> <<npcUndressText $NPCList[$index] "lower" "self">>,
-    but the <<person2>><<person>> sat beside catches <<person1>><<him>>, and nods at Niki's back.
+	The <<person>> starts to <<npcUndressText $NPCList[$index] "lower" "self">>,
+	but the <<person2>><<person>> sat beside catches <<person1>><<him>>, and nods at Niki's back.
 <<elseif $enemyno is 1>>
-    The <<person>> starts to <<npcUndressText $NPCList[$index] "lower" "self">>,
-    then catches <<himself>>, and throws a nervous glance at Niki's back.
+	The <<person>> starts to <<npcUndressText $NPCList[$index] "lower" "self">>,
+	then catches <<himself>>, and throws a nervous glance at Niki's back.
 <</if>>
 
-
 <<if $phase is 1>>
-    <br><br>
+	<br><br>
 <<else>>
-    <<exhibitionism5>>
+	<<exhibitionism5>>
 <</if>>
-<<famemodel 10>>
-<<fameexhibitionism 10>>
-<<set $photo.money += 500>>
+
 <<set $photo.nude_footage to 1>>
 <<set $worn.under_upper to clone(setup.clothes.under_upper[0])>>
 <<set $worn.under_lower to clone(setup.clothes.under_lower[0])>>
@@ -885,9 +933,9 @@ At last, Niki sighs and steps away. "Thank you," <<nnpc_he "Niki">> pants. "You
 
 Niki closes the thick door behind <<nnpc_him "Niki">>.
 <<if $enemyno gte 3>>
-    The audience watches the door a moment, <span class="pink">then rise to their feet and walk towards you.</span>
+	The audience watches the door a moment, <span class="pink">then rise to their feet and walk towards you.</span>
 <<else>>
-    The <<person>> and <<person2>><<person>> watch the door a moment, <span class="pink">then rise to their feet and walk towards you.</span>
+	The <<fullGroup>> watch the door a moment, <span class="pink">then rise to their feet and walk towards you.</span>
 <</if>>
 <br><br>
 
@@ -909,11 +957,11 @@ The <<person2>><<person>> examines the tripod camera up close. "It's on."
 <<effects>>
 
 <<if $submissive gte 1150>>
-    "Pl-please don't," you say. "I'm only here because I need the money."
+	"Pl-please don't," you say. "I'm only here because I need the money."
 <<elseif $submissive lte 850>>
-    "Get your mitts off," you say. "I'm getting paid to model, not to get groped."
+	"Get your mitts off," you say. "I'm getting paid to model, not to get groped."
 <<else>>
-    "I'm here because I need the money," you say. "Please don't make this worse for me."
+	"I'm here because I need the money," you say. "Please don't make this worse for me."
 <</if>>
 <br><br>
 
@@ -929,33 +977,33 @@ The <<person2>><<person>> examines the tripod camera up close. "It's on."
 <<effects>>
 
 <<if $submissive gte 1150>>
-    "D-don't hurt me," you say. "Or Niki will be mad."
+	"D-don't hurt me," you say. "Or Niki will be mad."
 <<elseif $submissive lte 850>>
-    "I'll fuck you up," you say. "And Niki will join me."
+	"I'll fuck you up," you say. "And Niki will join me."
 <<else>>
-    "Niki won't be happy," you warn.
+	"Niki won't be happy," you warn.
 <</if>>
 <br><br>
 <<if $englishSuccess>>
-    The <<person>> glances at the door, <span class="green">then releases you.</span> "Niki won't always be around to protect you," <<he>> says, slapping your <<bottom>> and <<he>> returns to <<his>> seat.
-    <br><br>
-
-    Niki returns a few moments later, and walks to the tripod camera.
-    <br><br>
-    
-    <<link [[Next|Photo Model Undies 2]]>><</link>>
-    <br>
+	The <<person>> glances at the door, <span class="green">then releases you.</span> "Niki won't always be around to protect you," <<he>> says, slapping your <<bottom>> and <<he>> returns to <<his>> seat.
+	<br><br>
+
+	Niki returns a few moments later, and walks to the tripod camera.
+	<br><br>
+
+	<<link [[Next|Photo Model Undies 2]]>><</link>>
+	<br>
 <<else>>
-    <span class="red">The <<person>> barks a laugh</span>
-    <<if $enemyno gte 3>>
-        as the others draw closer.
-    <<else>>
-        as the <<person2>><<person>> draws closer.
-    <</if>>
-    <br><br>
-
-    <<link [[Next|Photo Model Blackmail Rape]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	<span class="red">The <<person>> barks a laugh</span>
+	<<if $enemyno gte 3>>
+		as the others draw closer.
+	<<else>>
+		as the <<person2>><<person>> draws closer.
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Photo Model Blackmail Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <</if>>
 
 
@@ -977,7 +1025,7 @@ You shake off the <<person>>, and throw a punch. <<He>> staggers away, and rolls
 	<<maninit>>
 	<<set $enemytrust -= 50>>
 	<<set $enemyanger += 100>>
-    <<set $enemyhealth -= 150>>
+	<<set $enemyhealth -= 150>>
 <<elseif $molestationstart is 1>>
 	<<set $molestationstart to 0>>
 	<<controlloss>>
@@ -991,7 +1039,7 @@ You shake off the <<person>>, and throw a punch. <<He>> staggers away, and rolls
 <<effects>>
 
 <<effectsman>><<man>>
-	
+
 The light of the camera blinks as it records the scene.
 <br><br>
 
@@ -1011,29 +1059,29 @@ The light of the camera blinks as it records the scene.
 <<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-    <<set $photo.evidence to 2>>
-    You hear a bang outside. Your assailants scramble back to their seats, leaving you to struggle to you feet.
+	<<set $photo.evidence to 2>>
+	You hear a bang outside. Your assailants scramble back to their seats, leaving you to struggle to you feet.
 	<br><br>
 	Niki enters, but stops halfway through the door. <<nnpc_He "Niki">> takes in your disheveled state, then glares at the <<person>>.
 	<br><br>
-    "Out," <<nnpc_he "Niki">> says. The <<person>> opens <<his>> mouth to argue, but Niki cuts <<him>> off. "Get out."
-    <br><br>
+	"Out," <<nnpc_he "Niki">> says. The <<person>> opens <<his>> mouth to argue, but Niki cuts <<him>> off. "Get out."
+	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	
-    "Sorry," Niki continues once you're alone with <<him>>. "Let's wrap things up here." You walk behind the screen to dress as Niki dismantles the set.
-    <br><br>
+
+	"Sorry," Niki continues once you're alone with <<him>>. "Let's wrap things up here." You walk behind the screen to dress as Niki dismantles the set.
+	<br><br>
 <<else>>
 	The <<person>> trips away from you, knocking over the tripod camera, just as the door swings open. Niki stops halfway through, and observes the carnage.
-    <br><br>
-    "Out," <<nnpc_he "Niki">> says. The <<person>> opens <<his>> mouth to argue, but Niki cuts <<him>> off. "Get out."
+	<br><br>
+	"Out," <<nnpc_he "Niki">> says. The <<person>> opens <<his>> mouth to argue, but Niki cuts <<him>> off. "Get out."
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	
-    "Sorry," Niki continues once you're alone with <<him>>. "Let's wrap things up here." You walk behind the screen to dress as Niki dismantles the set.
-    <br><br>
-	
+
+	"Sorry," Niki continues once you're alone with <<him>>. "Let's wrap things up here." You walk behind the screen to dress as Niki dismantles the set.
+	<br><br>
+
 <</if>>
 
 <<link [[Next|Photo Model Topless End]]>><</link>>
diff --git a/game/overworld-town/loc-photography/widgets.twee b/game/overworld-town/loc-photography/widgets.twee
index 3dbf2969215bb4b6da68b565a2bf74aa592501ef..0e27e5d138a77802f37dc2c55ad3379df60130e2 100644
--- a/game/overworld-town/loc-photography/widgets.twee
+++ b/game/overworld-town/loc-photography/widgets.twee
@@ -1,53 +1,59 @@
 :: Widgets Photo [widget]
 <<widget "street_niki">>
 <<npc Niki>><<person1>>
-A car pulls up alongside you. A young <<personsimple>> leans out, a white stick in <<his>> mouth. 
+A car pulls up alongside you. A young <<personsimple>> leans out, a white stick in <<his>> mouth.
 
 <<if $niki_seen is "farm">>
-    It's Niki. The photographer from Remy's farm. You hasten your pace.
-    <br><br>
-    "Hold up," <<he>> says, speeding up to keep pace. "I'll be quick. You didn't... see me at my best. <span class="gold">I run a photography studio on Nightingale Street.</span> All above board. Drop by sometime if you need work."
-    <br><br>
+	It's Niki. The photographer from Remy's farm. You hasten your pace.
+	<br><br>
+	"Hold up," <<he>> says, speeding up to keep pace. "I'll be quick. You didn't... see me at my best. <span class="gold">I run a photography studio on Nightingale Street.</span> All above board. Drop by sometime if you need work."
+	<br><br>
 
-    You dart into an alley, leaving <<him>> to drive away.
-    <br><br>
+	You dart into an alley, leaving <<him>> to drive away.
+	<br><br>
 
-    <<endevent>>
-    <<destinationeventend>>
+	<<endevent>>
+	<<destinationeventend>>
 <<else>>
-    "Hey," <<he>> says. "You got a moment?"
-    <br><br>
+	"Hey," <<he>> says. "You got a moment?"
+	<br><br>
 
-    <<link [[Stop|Photo Street Stop]]>><<npcincr Niki love 1>><</link>><<glove>>
-    <br>
-    <<link [[Hasten|Photo Street Hasten]]>><</link>>
-    <br>
+	<<link [[Stop|Photo Street Stop]]>><<npcincr Niki love 1>><</link>><<glove>>
+	<br>
+	<<link [[Hasten|Photo Street Hasten]]>><</link>>
+	<br>
 <</if>>
 <</widget>>
 
 <<widget "photo_evidence_upload">>
 <<He>> taps the phone in an exaggerated fashion, <span class="pink">and uploads the footage to the internet.</span>
 <<if $photo.blackmail is 1>>
-    <<fameexhibitionism 20 vid>>
-    Your bare body is exposed for all to see.
-    <<set $photo.nude_footage to 1>>
+	<<fameexhibitionism 20 "vid">>
+	Your bare body is exposed for all to see.
+	<<set $photo.nude_footage to 1>>
 <<elseif $photo.blackmail is 2>>
-    <<famerape 20 vid>>
-    <<fameexhibitionism 20 vid>>
-    The footage of your sexual assault is there for all to see.
-    <<set $photo.assault_footage to 1>>
+	<<famerape 20 "vid">>
+	<<fameexhibitionism 20 "vid">>
+	The footage of your sexual assault is there for all to see.
+	<<set $photo.assault_footage to 1>>
 <</if>>
 <</widget>>
 
 <<widget "photo_end">>
-<<set $photo.blackmail to 0>>
-<<unset $photo_upper_index>>
-<<unset $photo_lower_index>>
-<<unset $photo_under_index>>
-<<unset $photo_upper_f_index>>
-<<unset $photo_lower_f_index>>
-<<unset $photo_under_f_index>>
-<<unset $photo_upper_m_index>>
-<<unset $photo_lower_m_index>>
-<<unset $photo_under_m_index>>
+	<<pass $photo.time>>
+	<<tiredness 18>>
+	<<set $photo.time to 0>>
+	<<set $photo.blackmail to 0>>
+	<<set $photo.money to 0>>
+	<<unset $photo_upper_index>>
+	<<unset $photo_lower_index>>
+	<<unset $photo_under_index>>
+	<<unset $photo_upper_f_index>>
+	<<unset $photo_lower_f_index>>
+	<<unset $photo_under_f_index>>
+	<<unset $photo_upper_m_index>>
+	<<unset $photo_lower_m_index>>
+	<<unset $photo_under_m_index>>
+	<<set $eventskip to 1>>
+	<<endevent>>
 <</widget>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-police/arrest.twee b/game/overworld-town/loc-police/arrest.twee
index ea787a34c176571912c55dcef9d6b5e597f12c8c..a72e295387fe113d53b59fb00d2bb9609587cf23 100644
--- a/game/overworld-town/loc-police/arrest.twee
+++ b/game/overworld-town/loc-police/arrest.twee
@@ -2,6 +2,13 @@
 
 <<set $outside to 0>><<set $location to "town">><<effects>>
 <<generatePolice 1>><<generatePolice 2>>Two police officers are sitting in the lobby. They stand when you approach. "You're under arrest. Please come quietly."
+<<if $companion is "Robinrent">>
+	The <<person1>><<person>> gestures towards Robin. "Your friend can stay here."
+	<br><br>
+
+	"Please be careful," Robin whispers. <<He>> steps away from you.
+	<<unset $companion>>
+<</if>>
 <br><br>
 <<link [[Run|Hospital Arrest Run]]>><<crimeup 100>><</link>><<athleticsdifficulty 1 1000>><<crime>>
 <br>
@@ -287,7 +294,7 @@ After an hour, a <<generatePolice 1>><<person1>><<person>> in a police uniform a
 		<br><br>
 
 		<<link [[Next|Police Prison Intro]]>><</link>>
-		<br> 
+		<br>
 	<<else>>
 		Once seated, the <<person2>><<person>> continues. "You didn't think you'd get away with it did you? You've been leaving traces of yourself all over. These are only petty crimes however, so public humiliation is an appropriate punishment. Take <<phim>> to the pillory."
 		<br><br>
diff --git a/game/overworld-town/loc-police/community.twee b/game/overworld-town/loc-police/community.twee
index f02ee24e40f586555da5988aa3abb2c063d56bb6..27b858c76083f61d7a3775d951d937ec693670ec 100644
--- a/game/overworld-town/loc-police/community.twee
+++ b/game/overworld-town/loc-police/community.twee
@@ -108,7 +108,7 @@ Removing the paint with just water and a coarse brush is difficult. The <<person
 :: Police Community Graffiti 2
 <<effects>>
 <<pass 20>>
-<<if $police_graffiti gte 3 and random(1, 2) is 2 and $famerape gte 100>>
+<<if $police_graffiti gte 3 and random(1, 2) is 2 and $fame.rape gte 100>>
 	<<if $police_graffiti is 3>>
 		<<set $police_graffiti to 4>>
 	<</if>>
@@ -623,7 +623,7 @@ You line with the other criminals beside the road, in front of a hill. Brown bri
 <</if>>
 <br><br>
 
-<<if $police_wasteland gte 2 and random(1, 2) is 2 and $famescrap gte 100>>
+<<if $police_wasteland gte 2 and random(1, 2) is 2 and $fame.scrap gte 100>>
 	<<if $police_wasteland is 2>>
 		<<set $police_wasteland to 3>>
 		You queue in front of the officer as <<he>> hands out tools. <<He>> sizes you up. "I think you can handle this," <<he>> says, handing you an axe. "Go careful now."
@@ -635,7 +635,7 @@ You line with the other criminals beside the road, in front of a hill. Brown bri
 	<br><br>
 	<<generate3>><<person3>>
 	A <<person>> grasps your waist, and pushes their body against yours from behind. "What a slut like you get sentenced for anyway?" <<he>> asks.
-	<<if $famebestiality gte 400>>
+	<<if $fame.bestiality gte 400>>
 		"Get caught fucking a dog?"
 	<</if>>
 	<<if $NPCList[2].penis isnot "none">>
@@ -1151,7 +1151,7 @@ You line up along the side of the street, attracting looks from passers-by. The
 You take a litter stick and get to work.
 <<pass 20>>
 
-<<if random(1, 2) is 2 and $police_trash gte 2 and $fameprostitution gte 100>>
+<<if random(1, 2) is 2 and $police_trash gte 2 and $fame.prostitution gte 100>>
 	/*Police trash can be set to 3 later during this event.*/
 	You and the other criminals move along the street while the <<person>> observes. The <<person2>><<person>> who ogled you on the van works alongside you. <<He>> works fast, and soon has a full bag.
 	<br><br>
@@ -1298,8 +1298,8 @@ The <<person>> leads you into the alley. A few of the other criminals glance as
 	<<if $police_trash gte 3 and random(1, 2) is 2>>
 		<<clotheson>>
 		<<endcombat>>
-		<<generate1>><<generate2>><<generate3>><<person1>>
-		You try to return to the line, but a <<person>>, <<person2>><<person>> and <<person3>><<person>> block your path. "Trading favours are we?" the <<person1>><<person>> says. "Don't think our dear officer would like the sound of that." <<He>> steps forward. "Maybe you should give us a taste too. Keep us quiet."
+		<<generate1>><<generate2>><<generate3>>
+		You try to return to the line, but a <<fullGroup>> block your path. "Trading favours are we?" the <<person1>><<person>> says. "Don't think our dear officer would like the sound of that." <<He>> steps forward. "Maybe you should give us a taste too. Keep us quiet."
 		<br><br>
 
 		<<link [[Accept|Police Community Clean Rape Accept]]>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>>
@@ -1361,8 +1361,8 @@ The <<person>> leads you into the alley. A few of the other criminals glance as
 	<<if $police_trash gte 3 and random(1, 2) is 2>>
 		<<clotheson>>
 		<<endcombat>>
-		<<generate1>><<generate2>><<generate3>><<person1>>
-		You try to return to the line, but a <<person>>, <<person2>><<person>> and <<person3>><<person>> block your path. "Trading favours are we?" the <<person1>><<person>> says. "Don't think our dear officer would like the sound of that." <<He>> steps forward. "Maybe you should give us a taste too. Keep us quiet."
+		<<generate1>><<generate2>><<generate3>>
+		You try to return to the line, but a <<fullGroup>> block your path. "Trading favours are we?" the <<person1>><<person>> says. "Don't think our dear officer would like the sound of that." <<He>> steps forward. "Maybe you should give us a taste too. Keep us quiet."
 		<br><br>
 
 		<<link [[Accept|Police Community Clean Rape Accept]]>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>>
@@ -1739,9 +1739,9 @@ You arrive back at the station.
 <<else>>
 	The police officer at reception takes your name on the way out.
 	<<if $community_service gte 2>>
-	   "Looks like you have <span class="pink">$community_service</span> days to go," <<he>> says. "Make sure to show up tomorrow."
+		"Looks like you have <span class="pink">$community_service</span> days to go," <<he>> says. "Make sure to show up tomorrow."
 	<<else>>
-	   "Looks like you're almost done," <<he>> says. "Just <span class="purple">one</span> day to go. Make sure to show up."
+		"Looks like you're almost done," <<he>> says. "Just <span class="purple">one</span> day to go. Make sure to show up."
 	<</if>>
 <</if>>
 <br><br>
diff --git a/game/overworld-town/loc-police/main.twee b/game/overworld-town/loc-police/main.twee
index 3561ac982153b04ed2a3fd1e3a92664ad0444f2a..6209b04089dcdfeb39ee79a6f987df1718ac572d 100644
--- a/game/overworld-town/loc-police/main.twee
+++ b/game/overworld-town/loc-police/main.twee
@@ -152,7 +152,7 @@ You ask the <<person>> if you can have your shackles removed. "Dunno what you ex
 <</if>>
 "I'll be right round," The <<person>> says. <<He>> enters the lobby proper moments later, holding a strange-looking key. <<He>> holds it up to the collar, and the lock clicks open, releasing your neck. <<He>> takes the collar. "As I said, government property."
 <br><br>
-<<set $worn.neck.cursed to 0>><<neckruined>><<set $worn.neck.collaredpolice to 0>>
+<<set $worn.neck.type.push("broken")>><<neckruined>><<set $worn.neck.collaredpolice to 0>>
 <<link [[Next|Police Station]]>><</link>>
 <br>
 
@@ -188,7 +188,7 @@ You ask the <<person>> if you can have your shackles removed. "Dunno what you ex
 	<<ejaculation>><<set $prostitutionstat += 1>><<fameprostitution 1>>
 	<<He>> takes a strange key from <<his>> belt and holds it up to your collar. Your collar comes loose with a click, falling to the ground. <<He>> picks it up. "Government property. Goes without saying you shouldn't tell anyone this happened." <<tearful>> you gather yourself, and watch <<him>> leave.
 	<br><br>
-	<<set $worn.neck.cursed to 0>><<neckruined>>
+	<<set $worn.neck.type.push("broken")>><<neckruined>>
 	<<clotheson>>
 	<<endcombat>>
 <<elseif $enemyhealth lte 0>>
diff --git a/game/overworld-town/loc-police/pillory.twee b/game/overworld-town/loc-police/pillory.twee
index bbc8ceb01d2231848ee5c0b8650b311f7572c522..43c6ada006e9e2ed1cef0095ec1cd29f6ba313e5 100644
--- a/game/overworld-town/loc-police/pillory.twee
+++ b/game/overworld-town/loc-police/pillory.twee
@@ -218,7 +218,7 @@ You can do nothing about your <<lewdness>> displayed for everyone to see, humili
 		<<trauma 2>><<gtrauma>>
 	<</if>>
 	<br><br>
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <</if>>
 <<if $exposed gte 2 and $pilloryaudience and $player.penisExist and random(0, 9) gte 7>><<pillorypeniscomment>><</if>>
 
@@ -284,9 +284,9 @@ A <<generatePolice 1>><<person1>><<person>> in a police uniform arrives. <<He>>
 					<br><br>
 
 					<<if $exposed gte 2>>
-						<<fameexhibitionism 2 pic>>
+						<<fameexhibitionism 2 "pic">>
 					<<elseif $exposed gte 1>>
-						<<fameexhibitionism 1 pic>>
+						<<fameexhibitionism 1 "pic">>
 					<</if>>
 					<<endevent>>
 					<<link [[Next|Pillory]]>><<pass 1 hour>><<set $pillorytime -= 1>><</link>>
@@ -306,9 +306,9 @@ A <<generatePolice 1>><<person1>><<person>> in a police uniform arrives. <<He>>
 					<br><br>
 
 					<<if $exposed gte 2>>
-						<<fameexhibitionism 2 pic>>
+						<<fameexhibitionism 2 "pic">>
 					<<elseif $exposed gte 1>>
-						<<fameexhibitionism 1 pic>>
+						<<fameexhibitionism 1 "pic">>
 					<</if>>
 					<<endevent>>
 					<<link [[Next|Pillory]]>><<pass 1 hour>><<set $pillorytime -= 1>><</link>>
@@ -319,9 +319,9 @@ A <<generatePolice 1>><<person1>><<person>> in a police uniform arrives. <<He>>
 				<br><br>
 
 				<<if $exposed gte 2>>
-					<<fameexhibitionism 2 pic>>
+					<<fameexhibitionism 2 "pic">>
 				<<elseif $exposed gte 1>>
-					<<fameexhibitionism 1 pic>>
+					<<fameexhibitionism 1 "pic">>
 				<</if>>
 				<<endevent>>
 				<<link [[Next|Pillory]]>><<pass 1 hour>><<set $pillorytime -= 1>><</link>>
@@ -1026,12 +1026,12 @@ The <<person>> grasps your <<breasts>>, and squeezes. You endure <<his>> fondlin
 		<<set $pilloryaudience += 2>><<ggtrauma>><<trauma 12>>
 		<br><br>
 	<<else>>
-		
+
 		<span class="pink">The crowd becomes larger and bolder.</span>
 		<<set $pilloryaudience += 1>>
 		<br><br>
 	<</if>>
-	
+
 <<elseif $arousal gte $arousalmax>>
 	It's too much. <<orgasm>>
 
diff --git a/game/overworld-town/loc-pound/abduction.twee b/game/overworld-town/loc-pound/abduction.twee
new file mode 100644
index 0000000000000000000000000000000000000000..2f2cc65ea51b3918423b1f36fe9b8499e4ef1949
--- /dev/null
+++ b/game/overworld-town/loc-pound/abduction.twee
@@ -0,0 +1,1929 @@
+:: Pound Abduction
+<<location "pound">><<set $outside to 0>><<effects>>
+<<clothesruined>>
+<<facewear 17>>
+<<leash 26>>
+<<set $worn.neck.cursed to 1>>
+
+<<generate1>><<generate2>>
+You awaken to the sound of barking. "Get this mutt inside." You peer at the sky above for a moment, before a <<person1>><<person>> jerks you to a sitting position. <<He>> holds a leash attached to a spiked collar around your neck. <<He>> jerks you forward again, pulling you onto your knees.
+<br><br>
+
+A metal fence and gate separate you from a street beyond. Parallel stone walls meet the fence on either side of the gate, themselves meeting at a large door opposite, ahead of you. You hear barking within.
+<br><br>
+
+A <<person2>><<person>> presses <<his>> foot against your <<bottom>>, and shoves you forward. With your mouth muzzled, there's no way you can protest.
+<br><br>
+
+
+<<link [[Try to walk|Pound Abduction Walk]]>><<def 1>><<stress 6>><<pain 4>><</link>><<gpain>><<gstress>>
+<br>
+<<link [[Crawl obediently|Pound Abduction Crawl]]>><<sub 1>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>>
+<br>
+<<link [[Refuse to budge|Pound Abduction Refuse]]>><<def 2>><<pain 8>><</link>><<ggpain>>
+<br>
+<<if $wolfgirl gte 6>>
+	<<link [[Growl|Pound Abduction Growl]]>><<transform wolf 1>><</link>> | <span class="red">Wolf</span>
+	<br>
+<</if>>
+
+
+
+:: Pound Abduction Walk
+<<effects>>
+
+You try to stand, but the <<person>> grasps your shoulders and shoves you back to your knees. "I didn't say stand," <<he>> says. "There'll be time for tricks later."
+<br><br>
+
+<<person1>>The <<person>> continues to pull you towards the door.
+<br><br>
+
+<<link [[Fight|Pound Abduction Fight]]>><<def 1>><<set $fightstart to 1>><</link>>
+<br>
+<<link [[Crawl|Pound Abduction Crawl]]>><<sub 1>><</link>>
+<br>
+
+
+:: Pound Abduction Crawl
+<<effects>>
+
+You crawl on your hands and knees, allowing the <<person1>><<person>> to pull you into the building.
+<br><br>
+
+<<link [[Next|Pound Abduction 2]]>><</link>>
+<br>
+
+
+:: Pound Abduction Refuse
+<<effects>>
+
+You refuse to budge. The <<person>> kicks you, jerking you forward. "I said move you dumb bitch," <<he>> says.
+<br><br>
+
+<<person1>>The <<person>> tries to tug you towards the door.
+<br><br>
+
+
+<<link [[Fight|Pound Abduction Fight]]>><<def 1>><<set $fightstart to 1>><</link>>
+<br>
+<<link [[Crawl|Pound Abduction Crawl]]>><<sub 1>><</link>>
+<br>
+
+
+
+:: Pound Abduction Growl
+<<effects>>
+
+You release a guttural growl. Both the <<person>> and <<person1>><<person>> laugh. "This one might need breaking in."
+<br><br>
+
+They continue to pull you towards the door.
+<br><br>
+
+<<link [[Fight|Pound Abduction Fight]]>><<def 1>><<set $fightstart to 1>><</link>>
+<br>
+<<link [[Crawl|Pound Abduction Crawl]]>><<sub 1>><</link>>
+<br>
+
+
+
+:: Pound Abduction Fight
+
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+
+	<<neutral 1>>
+
+	<<maninit>>
+	<<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Abduction Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Abduction Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Pound Abduction Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Abduction Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Abduction Fight Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	The pair lean against the walls, giving you the chance you need. You climb to your feet and bolt for the fence.
+	<<if $leftarm is "bound" or $rightarm is "bound">>
+		<<tearful>> you shove the gate with your shoulder. It opens, and you escape onto the street outside.
+		<br><br>
+	<<else>>
+		<<tearful>> you jump, reaching for the top. You haul yourself up and over, onto the street outside.
+		<br><br>
+	<</if>>
+	<<clotheson>>
+	<<endcombat>>
+	<<set $worn.face.type.push("broken")>>
+	<<faceruined>>
+	<<link [[Next|Starfish Street]]>><<set $eventskip to 1>><</link>>
+
+<<elseif $enemyhealth lte 0>>
+	The pair back away from you, giving you the chance you need.
+	<<if $leftarm is "bound" or $rightarm is "bound">>
+		<<tearful>> you shove the gate with your shoulder. It opens, and you escape onto the street outside.
+		<br><br>
+	<<else>>
+		<<tearful>> you jump, reaching for the top. You haul yourself up and over, onto the street outside.
+		<br><br>
+	<</if>>
+	<<clotheson>>
+	<<endcombat>>
+	<<set $worn.face.type.push("broken")>>
+	<<faceruined>>
+	<<link [[Next|Starfish Street]]>><<set $eventskip to 1>><</link>>
+
+<<else>>
+	<<tearful>> you fall to the <<if $weather is "snow" or $weather is "rain">>mud<<else>>dust<</if>>. You're too hurt to continue fighting.
+	<br><br>
+	"Get this bitch inside," the <<person2>><<person>> says. The <<person1>><<person>> yanks your leash once more, dragging you into the building.
+	<br><br>
+	<<clotheson>>
+	<<link [[Next|Pound Abduction 2]]>><</link>>
+	<br>
+
+<</if>>
+
+:: Pound Abduction 2
+<<effects>>
+<<if $pound is undefined>>
+	<<pound_init>>
+<</if>>
+<<set $pound.door to 0>>
+Inside are rows of cages, each containing barking <<pound_text>>. Some stick their noses through the bars, straining to sniff you.
+
+<<if $wolfgirl gte 6>>
+	Others back away, recognising your wolfishness.
+<<else>>
+	Others continue to bark, not even at you in particular.
+<</if>>
+<br><br>
+<<detach_leash>>
+The <<person1>><<person>> pulls you along, towards an empty cage near the back, beside a metal door. <<He>> detaches the leash once you're inside.
+<br><br>
+
+"There's a good dog," <<he>> says as <<he>> slams the cage door. Both <<he>> and the <<person2>><<person>> walk away, disappearing deeper into the building.
+<br><br>
+
+<<endcombat>>
+
+<<link [[Next|Pound Cage]]>><</link>>
+<br>
+
+
+
+:: Pound Cage
+<<location "pound">><<set $outside to 0>><<effects>>
+
+You are imprisoned in the pound on Starfish Street. <<pound_text cap>> fill the cages. There's a bowl of water, but nowhere to sleep except the cold floor.
+<br><br>
+
+<<pound_stats>>
+<br><br>
+
+<<if $hour is 8>>
+	<<generate1>><<person1>>
+	A <<person>> walks from cage to cage, releasing the <<pound_text>> within. "Feeding time," <<he>> says. There's a door open at the far side of the hall, leading outside.
+	<br><br>
+	<<He>> arrives at your cage.
+	<br><br>
+	<<link [[Crawl outside|Pound Food Crawl]]>><<sub 1>><</link>>
+	<br>
+	<<link [[Fight|Pound Fight]]>><<set $fightstart to 1>><<def 1>><</link>>
+	<br>
+<<elseif $hour is 12 and $pound.compete isnot 1>>
+	<<set $pound.compete to 1>>
+	<<generate1>><<person1>>
+	A <<person>> stops outside your cage. "Time for practise," <<he>> says, opening the door. "Be on your best behaviour."
+	<br><br>
+
+	<<link [[Crawl outside|Pound Show Crawl]]>><<sub 1>><</link>>
+	<br>
+	<<link [[Fight|Pound Fight]]>><<set $fightstart to 1>><<def 1>><</link>>
+	<br>
+<<elseif $hour is 18>>
+	<<generate1>><<person1>>
+	A <<person>> walks from cage to cage, releasing the <<pound_text>> within. "Feeding time," <<he>> says. There's a door open at the far side of the hall, leading outside.
+	<br><br>
+	<<He>> arrives at your cage.
+	<br><br>
+	<<link [[Crawl outside|Pound Food Crawl]]>><<sub 1>><</link>>
+	<br>
+	<<link [[Fight|Pound Fight]]>><<set $fightstart to 1>><<def 1>><</link>>
+	<br>
+<<else>>
+
+
+	<<link [[Exercise|Pound Exercise]]>><<pass 60>><<tiredness 6>><</link>><<gtiredness>>
+	<br>
+	<<link [[Door|Pound Door]]>><</link>>
+	<br><br>
+	<<link [[Sleeping spot|Pound Bed]]>><</link>>
+	<br>
+<</if>>
+
+:: Pound Door
+<<effects>><<set $lock to 1000>>
+
+The metal cage is locked tight. It uses an electronic lock more advanced than those on the other cages.
+<br><br>
+<<if currentSkillValue('skulduggery') gte $lock>>
+	<span class="green">You think you could manipulate it.</span>
+	<br><br>
+	<<link [[Open it (0:05)|Pound Door Sneak]]>><<pass 5>><</link>>
+	<br>
+<<else>>
+	<span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>>
+	<br><br>
+<</if>>
+
+<<link [[Try to force it open (1:00)|Pound Door Force]]>><<pass 60>><<tiredness 12>><</link>><<ggtiredness>>
+<br>
+<<link [[Back|Pound Cage]]>><</link>>
+<br>
+
+
+:: Pound Door Sneak
+<<effects>>
+
+A <<generate1>><<person1>><<person>> enters the room as you fiddle with the lock. "Nice try," <<he>> says as <<he>> walks over. "A dumb beast like you isn't gonna get out." <<He>> leans on the cage with one hand.
+<br><br>
+
+The lock buzzes, <span class="green">and the heavy door swings open,</span> smacking into the <<person>> and knocking <<him>> into the cage opposite. You rush forward and lock <<him>> in.
+<br><br>
+
+"Y-you stupid <<bitch>>," <<he>> says, surprised by this sudden reversal. "Let me out!"
+<br><br>
+
+<<link [[Next|Pound Escape]]>><<endevent>><</link>>
+<br>
+
+:: Pound Door Force
+<<effects>>
+
+<<set $pound.door += $physique>>
+You try to force the door open with all your might.
+<<if $physique gte 14000>>
+	The hinges rattle and groan. This shouldn't be too difficult, but will require persistence.
+<<elseif $physique gte 8000>>
+	It doesn't feel like you're making much impact. This won't be easy, and will require persistence.
+<<elseif $physique gte 4000>>
+	It shakes, but doesn't seem any worse for wear. This will take a while, and require a lot of persistence.
+<<else>>
+	You don't seem to make an impact at all. This will take a long time.
+<</if>>
+<br><br>
+<<if $pound.door gte 120000>>
+	<<generate1>><<person1>>
+	<span class="green">You hear a snap,</span> just as a <<person>> enters the room. "Oh I see what you're doing," <<he>> says, walking closer. "Nice try, but a mutt like you isn't gonna gnaw your way through these bars." <<He>> leans against the cage with one hand. There's another snap, and the heavy door swings open, smacking into <<him>> and knocking <<him>> into the cage opposite.
+	<br><br>
+
+	You rush forward and lock <<him>> in. "Y-you stupid <<bitch>>," <<he>> says, surprised by this sudden reversal. "Let me out!"
+	<br><br>
+	<<link [[Next|Pound Escape]]>><<set $pound.door to 0>><</link>>
+	<br>
+<<else>>
+	<<link [[Next|Pound Cage]]>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Exercise
+<<effects>>
+
+You exercise within the limited space, performing squats and push-ups. The <<pound_text>> sometimes watch with curiosity, but more often ignore you.<<physique 6>>
+<br><br>
+
+<<link [[Next|Pound Cage]]>><</link>>
+<br>
+
+
+:: Pound Food Crawl
+<<effects>>
+
+You join the <<pound_text>>, and crawl along the corridor, emerging in a courtyard behind the building. A fence separates it from a clifftop, and the sea beyond.
+<br><br>
+
+<<link [[Next|Pound Food]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Food
+<<set $outside to 1>><<effects>>
+
+<<generate1>><<person1>>A <<person>> fills a line of dog bowls from a sack while the <<pound_text>> surround those already filled, tails wagging. There aren't enough bowls to go around.
+<br><br>
+<<endevent>>
+<<link [[Fight for a place|Pound Food Def]]>><<def 1>><<pass 60>><<pound_status 3>><</link>><<gpound_status>>
+<br>
+<<link [[Wait your turn|Pound Food Sub]]>><<sub 1>><<pass 60>><<pound_status -3>><</link>><<lpound_status>>
+<br>
+<<link [[Refuse to feed|Pound Food Refuse]]>><<def 1>><<pass 60>><</link>>
+<br>
+
+:: Pound Food Def
+<<effects>>
+
+You join the scrap, shoving <<pound_text>> aside to get to the food.
+
+<<if $pound.status gte 60>>
+	A few growls is all it takes to keep others away from your bowl.<<lstress>><<stress -6>>
+	<br><br>
+
+	<<link [[Next|Pound Food Event]]>><</link>>
+	<br>
+<<else>>
+	<<beastNEWinit 1 dog>>One <<beasttype>> takes offence, and nips at you as you try to eat.
+	<br><br>
+
+
+	<<link [[Back away|Pound Food Back]]>><<sub 1>><<stress -6>><<pound_status -3>><</link>><<lpound_status>><<lstress>>
+	<br>
+	<<link [[Ignore|Pound Food Ignore]]>><<stress 6>><</link>><<gstress>>
+	<br>
+	<<if $wolfgirl gte 6>>
+		<<link [[Growl|Pound Food Growl]]>><<def 1>><<pound_status 3>><<transform wolf 1>><</link>> | <span class="red">Wolf</span><<gpound_status>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Pound Food Back
+<<effects>>
+
+You back off, letting the <<beasttype>> feed uninterrupted. You're able to find a bowl with less belligerent adversaries.
+<br><br>
+
+The food has the exact taste and consistency of cardboard. Even the orphanage food is edible in comparison.
+<br><br>
+
+<<link [[Next|Pound Food Event]]>><<endevent>><</link>>
+<br>
+
+:: Pound Food Ignore
+<<effects>>
+
+You ignore the <<beasttype>>. It growls at you, loud enough that one of the employees hears, and pulls <<bhim>> away from the scrum.
+<br><br>
+
+The food has the exact taste and consistency of cardboard. Even the orphanage food is edible in comparison.
+<br><br>
+
+<<link [[Next|Pound Food Event]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Food Growl
+<<effects>>
+
+You growl at the <<beasttype>>, a low tremor that soon has <<bhis>> ears flat against <<bhis>> head. The other <<pound_text>> give you space.
+<br><br>
+
+The food has the exact taste and consistency of cardboard. Even the orphanage food is edible in comparison.
+<br><br>
+
+<<link [[Next|Pound Food Event]]>><<endevent>><</link>>
+<br>
+
+
+
+:: Pound Food Sub
+<<effects>>
+
+You wait with the timid <<pound_text>> while the others compete for food. There's not much left by the time you get a space.
+<br><br>
+
+The food has the exact taste and consistency of cardboard. Even the orphanage food is edible in comparison.
+<br><br>
+
+<<link [[Next|Pound Food Event]]>><<endevent>><</link>>
+<br>
+
+:: Pound Food Refuse
+<<effects>>
+
+The <<pound_text>> are eager to feed, but you won't suffer the indignance. They fight each other for a spot, with staff intervening when a conflict goes too far.
+<br><br>
+
+<<link [[Next|Pound Food Event]]>><<endevent>><</link>>
+<br>
+
+:: Pound Food Event
+<<set $outside to 0>><<effects>>
+
+Sated, the more dominant <<pound_text>> laze around the yard, while others hunt for scraps.
+<br><br>
+<<beastNEWinit 1 dog>>
+<<if $rng gte 67 and ($bestialitydisable is "f" or $monster is 1)>>
+	<<if $pound.status gte 80>>
+		A <<beasttype>> watches you from afar with lust in <<bhis>> eyes, but knows better than to try anything.
+		<br><br>
+
+		<<link [[Next|Pound Food End]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		A <<beasttype>> approaches you with lust in <<bhis>> eyes. <<bHe>> growls, and bares <<bhis>> fangs.
+		<br><br>
+		"Love is in the air," says a member of staff. Several are watching.
+		<br><br>
+		<<link [[Submit|Pound Food Rape]]>><<set $molestationstart to 1>><<set $phase to 1>><<sub 3>><<pound_status -9>><</link>><<llpound_status>>
+		<br>
+		<<link [[Fight|Pound Food Rape]]>><<set $molestationstart to 1>><<set $phase to 0>><<def 1>><<pound_status 9>><</link>><<ggpound_status>>
+		<br>
+	<</if>>
+<<elseif $rng gte 33>>
+	<<endevent>>
+	<<generate1>><<person1>>
+	A <<person>> approaches you, leash in hand. "Hold still <<bitch>>," <<he>> says. "We're gonna go on a little walk together."
+	<br><br>
+
+	<<link [[Hold still|Pound Food Still]]>><<sub 1>><</link>>
+	<br>
+	<<link [[Run|Pound Food Run]]>><<def 1>><</link>><<athleticsdifficulty 1 600>>
+	<br>
+<<else>>
+	<<endevent>>
+	<<link [[Next|Pound Food End]]>><</link>>
+	<br>
+<</if>>
+
+:: Pound Food Still
+<<effects>>
+
+You allow the <<person>> to attach the leash to your collar.
+<<attach_leash>>
+<<He>> leads you through the yard, to a secluded space around the edge of the building, overlooking the sea.
+<br><br>
+
+<<He>> grasps your collar directly, and pushes your neck against the earth.
+<br><br>
+
+<<link [[Next|Pound Food Human Rape]]>><<set $molestationstart to 1>><</link>>
+<br>
+
+
+
+:: Pound Food Run
+<<effects>>
+
+<<if $athleticsSuccess>>
+	You bolt around the yard, <span class="green">leading the <<person>> on a merry chase.</span> <<He>> tires before you. The other staff laugh.<<ggpound_status>><<pound_status 9>>
+	<br><br>
+	<<link [[Next|Pound Food End]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	You run around the yard, <span class="red">but the <<person>> cuts you off.</span> <<He>> grasps your collar, and attaches the leash.
+	<br><br>
+	<<attach_leash>>
+	The other staff watch as <<he>> pulls you into a secluded area overlooking the sea. <<He>> holds your collar, and pushes your neck against the earth.
+	<br><br>
+
+	<<link [[Next|Pound Food Human Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<</if>>
+
+:: Pound Food Human Rape
+
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>>
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Food Human Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Food Human Rape Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Food Human Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Food Human Rape Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	The <<person>> detaches the leash from <<his>> collar, and leaves you to return to the <<pound_text>> alone. The staff eye you with smirks, as if aware of what took place.
+	<br><br>
+	<<tearful>> you gather yourself.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+
+<<else>>
+	You break free from the <<persons>> grasp, and run back to the <<pound_text>>. <<He>> snatches at the trailing leash to no avail.
+	<br><br>
+	<<generate2>><<person2>>
+	A <<person>> stops you, grabbing your collar. <<He>> detaches the leash, and laughs at the <<person1>><<person>> chasing after you. "How about you give this one a rest," <<person2>><<he>> says. "Seems <<pshe>> doesn't like you."
+	<br><br>
+	Other staff laugh, and the <<person1>><<person>> relents.
+	<br><br>
+	<<tearful>> you gather yourself.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+
+<</if>>
+
+<<detach_leash>>
+
+<<link [[Next|Pound Food End]]>><<set $molestationstart to 1>><</link>>
+
+:: Pound Food Rape
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<beastCombatInit>>
+	<<if $phase is 1>>
+		You assume a submissive posture, inviting the <<beasttype>> to your body.
+	<<else>>
+		You smack the <<beasttype>> across the nose. It backs off, but prepares to attack.
+		<<set $enemyanger += 100>>
+	<</if>>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br><br>
+<<beast $enemyno>>
+<br><br>
+
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Food Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Food Rape Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Food Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Food Rape Finish
+<<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+
+	<<beastejaculation knot>>
+	<<if _knotted>>
+		The staff gather around, snapping pictures of the two of you, linked together by the <<beasttype>>'s <<print $NPCList[0].penisdesc>>.
+		<br><br>
+		<<if $pregnancyspeechdisable is "f">>
+			"Nice to see a <<bitch>> getting bred proper."
+			<br>
+		<</if>>
+		"Gonna take a selfie."
+		<br>
+		"This <<girl>> is enjoying it."
+		<br><br>
+
+		<<pass 5>>
+		The comments continue, until at last the knot empties enough for the <<beasttype>> to wriggle it out with a plop. Semen oozes down your thighs.
+		<br><br>
+
+		<<endcombat>>
+		<<clotheson>>
+
+		<<tearful>> you put some distance between yourself and the crowd. You're not sure if you've dignity to save.
+		<br><br>
+
+		<<link [[Next|Pound Food End]]>><</link>>
+		<br>
+
+	<<else>>
+		Satisfied, the <<beasttype>> licks itself, leaving you be. <<tearful>> you put some distance between you.<<lpound_status>><<pound_status -3>>
+		<br><br>
+		<<clotheson>>
+		<<endcombat>>
+		<<generate1>><<person1>>
+		"Good dog," a <<person>> says, reaching to pat your head.
+		<br><br>
+
+
+		<<link [[Endure|Pound Food Endure]]>><<sub 1>><</link>>
+		<br>
+		<<link [[Whack the hand away|Pound Food Whack]]>><<ltrauma>><<gpain>><<def 1>><<pound_status 3>><</link>><<gpain>><<gpound_status>>
+		<br>
+		<<if $wolfgirl gte 6>>
+			<<link [[Bite|Pound Food Bite]]>><<trauma -6>><<transform wolf 1>><<def 1>><<pound_status 3>><</link>><<gpound_status>><<ltrauma>> | <span class="red">Wolf</span>
+			<br>
+		<</if>>
+	<</if>>
+<<else>>
+
+	The <<beasttype>> lowers <<bhis>> head in submission, and scurries away.<<pound_status 3>><<gpound_status>>
+	<br><br>
+
+	<<if $pregnancyspeechdisable is "f">>
+		"A shame," remarks one member of staff. "Was hoping to see this <<bitch>> get bred."
+		<br><br>
+	<</if>>
+	<<tearful>> you gather yourself.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+
+	<<link [[Next|Pound Food End]]>><</link>>
+	<br>
+
+<</if>>
+
+
+:: Pound Food Endure
+<<effects>>
+
+You endure as the <<person>> pats your head. "Who's a good <<girl>>," <<he>> says. "You are." The other staff watch with amusement.
+<br><br>
+
+<<link [[Next|Pound Food End]]>><<endevent>><</link>>
+<br>
+
+:: Pound Food Whack
+<<effects>>
+
+You whack the <<person>> arm away. <<He>> laughs, <span class="red">then delivers a stinging backhand to your face.</span> "You'll soon learn your place, <<bitch>>."
+<br><br>
+
+<<link [[Next|Pound Food End]]>><<endevent>><</link>>
+<br>
+
+:: Pound Food Bite
+<<effects>>
+
+You lower your head, an invitation, only to raise your mouth at the last moment. Your teeth sink into <<his>> flesh. <<He>> cries out in agony and jumps backwards, tripping and landing on <<his>> back. The other staff laugh at <<his>> expense as <<he>> scrambles away.
+<br><br>
+
+<<link [[Next|Pound Food End]]>><<endevent>><</link>>
+<br>
+
+:: Pound Food End
+<<effects>>
+
+The staff herd you back into the pound interior, alongside the other <<pound_text>>. They grab each by the collar, and pull them into the appropriate cages. You find yours on your own.
+<<generate1>><<person1>>
+"Well aren't you a clever <<girl>>," remarks a <<person>>
+<br><br>
+
+<<link [[Next|Pound Cage]]>><<endevent>><</link>>
+<br>
+
+:: Pound Fight
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+
+	<<neutral 1>>
+
+	<<maninit>>
+	<<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Pound Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Fight Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	<<He>> staggers backwards, into the opposite cage. You jump forward, and slam the door shut. The lock falls into place, trapping <<him>>.
+	<br><br>
+	<<tearful>> you leave <<him>> to shake the cage in a fury.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound Escape]]>><</link>>
+	<br>
+
+<<elseif $enemyhealth lte 0>>
+	The <<person>> staggers backwards, into the opposite cage. You jump forward, and slam the door shut. The lock falls into place, trapping <<him>>.
+	<br><br>
+	<<tearful>> you leave <<him>> to shake the cage in a fury.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound Escape]]>><</link>>
+
+<<else>>
+	<<tearful>> you fall to the ground. You're too hurt to continue fighting. The <<person>> stands over you with a menacing grin, holding a taut leash between <<his>> hands.
+	<br><br>
+	<<He>> attaches the leash to your collar, and pulls you outside, into a courtyard surrounded by wall and fence.
+	<br><br>
+	<<clotheson>>
+	<<attach_leash>>
+	<<link [[Next|Pound Punishment]]>><</link>>
+
+<</if>>
+
+:: Pound Punishment
+<<effects>>
+
+The <<pound_text>> watch as you are strapped into a pillory.
+<br><br>
+
+The <<person>> whistles, and slaps your exposed <<bottom>>. "Come on," <<he>> says. "Take your frustrations out on this disobedient bitch."
+<br><br>
+<<endcombat>>
+<<beastNEWinit 6 dog>>
+<<if $monster is 1 or $bestialitydisable is "f">>
+	You feel a nose prod you from behind.
+	<br><br>
+
+	<<link [[Next|Pound Punishment Beast]]>><<set $molestationstart to 1>><</link>>
+	<br>
+
+<<else>>
+	<<endevent>>
+	<<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>>
+	Footsteps and approving murmurs approach from behind.
+	<br><br>
+
+	<<link [[Next|Pound Punishment Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Punishment Rape
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>>
+	<<set $position to "wall">>
+	<<set $walltype to "pillory">>
+	<<set $head to "grappled">>
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Punishment Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Punishment Rape Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Punishment Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Punishment Rape Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	They walk away. <<tearful>> you hang in the pillory.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+
+
+<<else>>
+	They form a semicircle behind you.
+	<br><br>
+	"What you afraid of?" the <<person>> asks the others. No one responds. They turn and walk away.
+	<br><br>
+	<<tearful>> you hang in the pillory.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+<</if>>
+
+<<generate1>><<person1>>
+Footsteps approach. "Serves you right," a <<person>> says, freeing you. "Get with the others. Go on, get!"
+<br><br>
+
+<<pound_punishment_links>>
+
+:: Pound Punishment Beast
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+
+	<<beastCombatInit>>
+	<<beastTrainGenerate>>
+	<<set $position to "wall">>
+	<<set $walltype to "pillory">>
+	<<set $head to "grappled">>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br><br>
+<<beast $enemyno>>
+<br><br>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Punishment Beast End]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Punishment Beast End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Punishment Beast]]>><</link>></span><<nexttext>>
+<</if>>
+
+
+:: Pound Punishment Beast End
+<<effects>>
+<<if $enemyhealth lte 0>>
+	<<beastwound>>
+	<<if $combatTrain.length gt 0>>
+		The <<beasttype>> recoils in pain and fear, but another is eager for a go.
+
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Punishment Beast]]>><</link>>
+	<<else>>
+		The <<beasttype>> recoils in pain and fear.
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Punishment Beast End]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+	<<if $combatTrain.length gt 0>>
+		Satisfied, the <<beasttype>> moves and another takes its turn.
+
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Punishment Beast]]>><</link>>
+	<<else>>
+		Satisfied, the <<beasttype>> moves away from you.
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Punishment Beast End]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<else>>
+	<<if $enemywounded is 1 and $enemyejaculated is 0>>
+		The <<beasttype>> whimpers and flees.
+	<<elseif $enemywounded is 0 and $enemyejaculated is 1>>
+		Satisfied, the <<beasttype>> leaves.
+	<<elseif $enemywounded gte 2 and $enemyejaculated is 0>>
+		Feeling that you're more trouble than you're worth, the beasts flee.
+	<<elseif $enemywounded is 0 and $enemyejaculated gte 2>>
+		The beasts leave you spent and shivering.
+	<<elseif $enemywounded gte 1 and $enemyejaculated gte 1>>
+		The beasts leave you spent and shivering.
+	<</if>>
+	<br><br>
+	<<tearful>> you hang there, locked in the pillory.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<generate1>><<person1>>
+	Footsteps approach. "Serves you right," a <<person>> says, freeing you. "Get with the others. Go on, get!"
+	<br><br>
+	<<pound_punishment_links>>
+	<br>
+<</if>>
+
+
+:: Pound Escape
+<<effects>>
+
+The <<pound_text>> and caged employee yap at you. The commotion will attract attention. You'll be caught soon.
+<br><br>
+
+Just running out shouldn't be difficult. You could free the <<pound_text>>, but you'd need a set of keys. The employee only had the one for your cell.
+<br><br>
+
+You could also investigate what they're up to here, but the metal door near your cage is sealed by a padlock.
+<br><br>
+
+<<link [[Escape|Pound Escape Front]]>><</link>> | <span class="green">Simple</span>
+<br>
+<<set $skulduggerydifficulty to 500>>
+<<link [[Find the keys|Pound Escape Back]]>><<set $skulduggerydifficulty to 500>><</link>><<skulduggerydifficulty>>
+<br>
+<<set $skulduggerydifficulty to 1000>>
+<<link [[Investigate|Pound Escape Deep]]>><<set $skulduggerydifficulty to 1000>><</link>><<skulduggerydifficulty>>
+<br>
+
+
+:: Pound Escape Front
+<<effects>>
+
+You rush down the hall, and into the front courtyard. The gate ahead is ajar. You escape onto the street outside.
+<br><br>
+<<set $worn.face.type.push("broken")>>
+<<faceruined>>
+
+<<link [[Next|Starfish Street]]>><</link>>
+<br>
+
+
+:: Pound Escape Back
+<<effects>>
+
+You rush down the hall, and into the back courtyard.
+<<generate1>><<person1>>
+A <<person>> stomps towards you, a leash in <<his>> hand. A keychain rattles at <<his>> hip. "Got ourselves a runaway," <<he>> says. "I know just how to treat a stubborn pooch."
+<br><br>
+
+<<skulduggerycheck>>
+<<if $skulduggerysuccess is 1>>
+
+	<<He>> lunges for you, and tries to grapple you with both arms. <span class="green">You duck aside,</span> and deliver a solid whack to <<his>> shin. <<He>> gropes the air after you, but the force of your blow knocks <<him>> to <<his>> knees.
+	<br><br>
+
+	You snatch the leash as <<he>> drops it, and whirl it around <<him>>, binding <<him>> tight before <<he>> knows what's happening. "What are you-" You snatch the keys next, and leave <<him>> to strain against the binds. It won't hold long, but it should hold long enough.
+	<br><br>
+
+	<<if $skulduggery lte ($skulduggerydifficulty + 100)>>
+		<<skulduggeryskilluse>>
+	<<else>>
+		<span class="blue">That was too easy. You didn't learn anything.</span>
+		<br><br>
+	<</if>>
+
+	<<link [[Next|Pound Escape Free]]>><</link>>
+	<br>
+
+<<else>>
+
+	<<He>> lunges for you, and tries to grapple you with both arms. You duck aside, <span class="red">but trip.</span> <<Hes>> soon atop you.
+	<br><br>
+
+	<<if $skulduggery lte ($skulduggerydifficulty + 100)>>
+		<<skulduggeryskilluse>>
+	<<else>>
+		<span class="blue">That was too easy. You didn't learn anything.</span>
+		<br><br>
+	<</if>>
+
+	<<link [[Next|Pound Escape Fight]]>><<set $fightstart to 1>><</link>>
+	<br>
+
+<</if>>
+
+
+
+:: Pound Escape Fight
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+
+	<<neutral 1>>
+
+	<<maninit>>
+	<<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Escape Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Escape Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Pound Escape Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Escape Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Escape Fight Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	<<He>> falls to <<his>> knees, too enraptured to notice you swipe the keys from <<his>> hip.
+	<br><br>
+	<<tearful>> you dash back inside.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound Escape Free]]>><</link>>
+	<br>
+
+<<elseif $enemyhealth lte 0>>
+	<<He>> falls to <<his>> knees, too hurt to notice you swipe the keys from <<his>> hip.
+	<br><br>
+	<<tearful>> you dash back inside.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound Escape Free]]>><</link>>
+	<br>
+
+<<else>>
+	<<tearful>> you fall to the ground. You're too hurt to continue fighting.
+	<br><br>
+	<<He>> attaches a leash to your collar, and pulls you into the rear courtyard.
+	<<clotheson>>
+	<<attach_leash>>
+	<<link [[Next|Pound Punishment]]>><</link>>
+
+<</if>>
+
+
+
+
+:: Pound Escape Free
+<<effects>>
+
+<<famegood 20>>
+
+You run back into the pound proper while examining the keychain. Each key is numbered, tied to a corresponding cage. You open them one by one, freeing the <<pound_text>> within. Some stop to lick you, while others rampage deeper into the pound. You hear confused shouting soon after.
+<br><br>
+
+The staff occupied, you explore the adjoining staff room, and find a spare shirt and jeans.
+<br><br>
+
+<<link [[Dress|Pound Escape Free Dress]]>><</link>>
+<br>
+<<link [[Just leave|Pound Escape Free No Dress]]>><</link>>
+<br>
+
+:: Pound Escape Free Dress
+<<effects>>
+
+You get dressed. An alarm rings out, but the staff are too busy to stop you strolling into the front courtyard and through the open gate, onto the street outside.
+<br><br>
+
+<<set $worn.face.type.push("broken")>>
+<<faceruined>>
+<<upperwear 33>>
+<<lowerwear 22>>
+
+<<link [[Next|Starfish Street]]>><</link>>
+<br>
+
+
+:: Pound Escape Free No Dress
+<<effects>>
+
+
+<<set $worn.face.type.push("broken")>>
+<<faceruined>>
+
+The staff are too busy to stop you strolling into the front courtyard and through the open gate, onto the street outside.
+<br><br>
+
+<<link [[Next|Starfish Street]]>><</link>>
+<br>
+
+
+:: Pound Escape Deep
+<<effects>>
+
+You turn away from the courtyards and cages, and face the metal door. "Don't you dare," the caged employee warns as you crouch beside the padlock. "Hey! Someone!"
+<br><br>
+
+<<skulduggerycheck>>
+<<if $skulduggerysuccess is 1>>
+
+	You hear shouting from the yard, and the thud of approaching feet. <span class="green">The padlock clicks open.</span> You pull it wide, and slip inside.
+	<br><br>
+
+	<<if $skulduggery lte ($skulduggerydifficulty + 100)>>
+		<<skulduggeryskilluse>>
+	<<else>>
+		<span class="blue">That was too easy. You didn't learn anything.</span>
+		<br><br>
+	<</if>>
+
+	<<link [[Next|Pound Escape Secret]]>><</link>>
+	<br>
+
+<<else>>
+
+	You hear shouting from the yard. You're still fighting with the lock when reinforcements arrive. <<generate1>><<generate2>><<generate3>><<generate4>><<person1>>There are four of them.
+	<br><br>
+
+	"A runaway, aye?" a <<person1>><<person>> asks. "Be a good bitch and come quietly."
+	<br><br>
+	<<if $skulduggery lte ($skulduggerydifficulty + 100)>>
+		<<skulduggeryskilluse>>
+	<<else>>
+		<span class="blue">That was too easy. You didn't learn anything.</span>
+		<br><br>
+	<</if>>
+
+	<<link [[Go quietly|Pound Escape Quiet]]>><</link>>
+	<br>
+	<<link [[Fight|Pound Fight]]>><<set $fightstart to 1>><</link>>
+	<br>
+
+<</if>>
+
+
+
+:: Pound Escape Quiet
+<<effects>>
+
+You drop to your hands and knees. The <<person>> crouches beside you, and affixes a leash to your collar. "There's a good bitch. Don't think you're getting out of this easy though."
+<br><br>
+<<He>> pulls you after <<him>>, into the rear courtyard.
+<br><br>
+
+<<attach_leash>>
+<<link [[Next|Pound Punishment]]>><</link>>
+<br>
+
+:: Pound Escape Secret
+<<effects>>
+
+You're in an office. There's a desk with a computer, and another entrance on the far side of the room, but you don't stop to investigate. You grab the chair and prop it up against the door a moment before a weight thuds into it from the other side.
+<br><br>
+
+You're not sure how long you have. You hope you can get out the other way.
+<br><br>
+
+<<if $bailey_pound gte 1>>
+	You dash for the opposite door. It opens without trouble, revealing a dark stone tunnel.
+	<br><br>
+	<<link [[Next|Pound Escape Secret 2]]>><</link>>
+	<br>
+<<else>>
+	<<link [[Next|Pound Escape Computer]]>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Escape Computer
+<<effects>>
+
+You kneel in front of the computer. Signing in requires a password. You guess, and get lucky. "<<print either("Password","Admin","Dog","Pound")>>" it is.
+<br><br>
+
+You find a live camera feed to other parts of the pound. Four employees stand in front of the metal door to this room, two of them banging against it. There are also cameras in the courtyards, and another looking down a stone tunnel. It disappears into the dark.
+<br><br>
+
+There are a number of files on the desk. The topmost lists newly arrived "dogs", and departures. Your name is on there. The letter "<span class="red">B</span>" has been scrawled over it in red ink.
+<br><br>
+
+You take the file, and dash for the door opposite the entrance. It opens without trouble, revealing a dark stone tunnel.
+<br><br>
+
+<<link [[Next|Pound Escape Secret 2]]>><</link>>
+<br>
+
+:: Pound Escape Secret 2
+<<effects>>
+<<pass 3>>
+
+Devoid of any light, you're forced to walk, feeling along the wall as you walk. The ground is smooth and straight at first, until you almost trip over loose rock. You pass an adjoining tunnel, but your hand finds a boulder instead not far up. It might have led somewhere once, but has since caved in.
+<br><br>
+
+You return to the original tunnel. It bends, revealing <<if $daystate is "night">>moonlight<<else>>daylight<</if>> up ahead.
+<br><br>
+
+<<link [[Next|Pound Escape Secret 3]]>><</link>>
+<br>
+
+:: Pound Escape Secret 3
+<<effects>>
+
+You emerge part way up a cliff, above the beach. You hear traffic above. The beach below isn't far,
+
+<<athleticsdifficulty 0 300 true>>
+<<if $athleticsSuccess>>
+	<span class="green">and you manage to clamber down the rock without issue.</span>
+<<else>>
+	<span class="red">but the rock is slick with water, and you slip to the sand below.</span><<gstress>><<gpain>><<stress 6>><<pain 4>>
+<</if>>
+<br><br>
+
+<<if $bailey_pound is undefined>>
+	<<set $bailey_pound to 1>>
+	<span class="gold">Perhaps you should confront Bailey about the document you found.</span>
+	<br><br>
+<</if>>
+
+<<set $worn.face.type.push("broken")>>
+<<faceruined>>
+
+<<link [[Next|Beach]]>><<endevent>><</link>>
+<br>
+
+:: Pound Bed
+<<endevent>>
+<<effects>>
+
+You lie on the hard floor.
+<br><br>
+
+<<if $sleeptrouble is 1 and $controlled is 0>>
+	<<link [[Sleep for 10 hours|Pound Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<br>
+	<<link [[Sleep for 9 hours|Pound Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<br>
+<</if>>
+
+<<link [[Sleep for 8 hours|Pound Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<br>
+<<link [[Sleep for 7 hours|Pound Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<br>
+<<link [[Sleep for 6 hours|Pound Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<br>
+<<link [[Sleep for 5 hours|Pound Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<br>
+<<link [[Sleep for 4 hours|Pound Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<br>
+<<link [[Sleep for 3 hours|Pound Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<br>
+<<link [[Sleep for 2 hours|Pound Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<br>
+<<link [[Sleep for 1 hour|Pound Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<br>
+<<link [[Just sleep|Pound Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
+<br><br>
+
+<<link [[Rise|Pound Cage]]>><<endevent>><<loadTempHairStyle>><</link>>
+<br><br>
+
+:: Pound Sleep
+<<set _autosavehere to true>>
+<<sleep>><<effects>>
+
+<<wakingEffects $sleepHoursTotal>>
+<<if ["dryheaving","nausea"].includes(_wakingEffect)>>
+	You slept soundly, but now feel a little rough. <<stress 5>><<gstress>>
+	<br><br>
+<<elseif $nightmares gte 1 and $controlled is 0>>
+	You dream you are being hunted by something <<if $wraith and $wraith.state is "haunt" and $rng lte 25>>pale<<else>>dark<</if>> and terrible.
+<<else>>
+	<<if $specialClothesEffects.bimboTotal gte random(100,1000) or $arousal gte ($arousalmax / 10) * 9>>
+		Your sleep is plagued by dirty dreams.
+		<<arousal `$specialClothesEffects.bimboTotal / 10 * $sleepHoursTotal`>>
+		<<arousal `100 * $sleepHoursTotal`>>
+		<<if $arousal gte $arousalmax>>
+			They push you over the edge.
+			<<orgasm>><<set _orgasm to true>>
+		<<else>>
+			<br><br>
+		<</if>>
+	<<else>>
+		You sleep soundly.
+	<</if>>
+<</if>>
+
+<<sleepeffects>>
+<<if _sleepinterrupt>>
+	You're awoken by chorus of barking.
+	<br><br>
+
+	<<link [[Next|Pound Cage]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	<br><br>
+
+	<<link [[Rise|Pound Cage]]>><<endevent>><</link>>
+	<br><br>
+<</if>>
+
+:: Pound Show Crawl
+<<effects>>
+
+You crawl after the <<person>>, along the corridor, emerging in a coutyard behind the building. A fence separates it from a clifftop, and the sea beyond.
+<br><br>
+
+<<He>> grasps your collar, and attaches a leash.
+<br><br>
+<<attach_leash>>
+<<link [[Next|Pound Show]]>><<endevent>><</link>>
+<br>
+
+:: Pound Show
+<<effects>>
+
+<<generate1>><<person1>>
+An obstacle course has been set up on the grass. Four <<pound_text>> sit in front of it, surrounded by well-dressed <<people>>.
+<br><br>
+"Aha," says one, a <<person>>. "This <<girl>> will do nicely." <<He>> takes your leash, and pulls you to the end of the line. "Sit."
+<br><br>
+
+<<link [[Sit|Pound Show Sit]]>><<sub 1>><</link>>
+<br>
+<<link [[Refuse|Pound Show Refuse]]>><<def 1>><<pain 4>><</link>><<gpain>>
+<br>
+
+:: Pound Show Sit
+<<effects>>
+
+You sit as commanded, joining the <<pound_text>>. "I think we're set," the <<person>> says, removing your leash. From here you can see five duplicates of each obstacle. There's going to be a race.
+<br><br>
+
+"Just a friendly competition," the <<person>> says. "The winner will star in a show on Danube Street. <span class="gold">That means you get to leave the pound.</span> Isn't that nice?"
+<br><br>
+<<He>> retrieves a stopwatch from a table at the end of the contestants. "On your marks. Get set. Go!"
+<br><br>
+
+The other <<pound_text>> rush towards the course.
+<br><br>
+
+<<link [[Compete (0:05)|Pound Show Compete]]>><<pass 5>><<detach_leash>><</link>>
+<br>
+<<link [[Refuse|Pound Show Compete Refuse]]>><<def 3>><</link>>
+<br>
+
+:: Pound Show Refuse
+<<effects>>
+
+You refuse to sit. The <<person>> grasps your collar, and jerks your neck towards the ground. "Now now," <<he>> says in a low voice. "Best be a good <<bitch>>. The winner gets to star in a show on Danube Street. <span class="gold">That means you get to leave the pound.</span> Isn't that nice?"
+<br><br>
+<<He>> retrieves a stopwatch from a table at the end of the contestants. "On your marks. Get set. Go!"
+<br><br>
+
+The other <<pound_text>> rush towards the course.
+<br><br>
+
+<<link [[Compete (0:05)|Pound Show Compete]]>><<pass 5>><<detach_leash>><</link>>
+<br>
+<<link [[Refuse|Pound Show Compete Refuse]]>><<def 3>><</link>>
+<br>
+
+
+:: Pound Show Compete Refuse
+<<effects>>
+
+You remain obstinate, and refuse to budge as the <<pound_text>> compete. The <<person>> shoots you a dark look, but the others are too busy watching the <<pound_text>> tackle the obstacles to pay you much attention.
+<br><br>
+
+The <<person>> takes your leash and pulls you back inside, towards your cage. <<He>> slams the cage door behind you.
+<br><br>
+<<detach_leash>>
+<<link [[Next|Pound Cage]]>><<endevent>><</link>>
+<br>
+
+:: Pound Show Compete
+<<effects>>
+<<endevent>>
+<<beastNEWinit 4 dog>>
+You crawl towards the obstacle course as fast as your posture will allow. The first up is the slalom. The <<pound_text>> weave between them without difficulty.
+<br><br>
+
+<<pound_compete_text>>
+<br><br>
+
+<<link [[Intimidate|Pound Show Compete Intimidate]]>><</link>><<skill_difficulty "$pound.status" "Respect" 40 100>>
+<br>
+<<link [[Weave|Pound Show Compete Skill]]>><</link>><<dancedifficulty 1 1000>>
+<br>
+:: Pound Show Compete Intimidate
+<<effects>>
+
+You catch a <<beasttype 0>>'s eye as you weave between the poles, and bare your teeth.
+<<if $pound.status gte random(40, 100)>>
+	<span class="green"><<bHe 0>> bows <<bhis 0>> head and slows, letting you overtake.</span>
+	<<set $pound.compete += 1>>
+<<else>>
+	<span class="red"><<bHe 0>> bares <<bhis 0>> teeth in return,</span> unimpressed.
+<</if>>
+<br><br>
+
+A tunnel is up next.
+<<if $physiquesize gte 16000>>
+	<span class="pink">It'll be a tight squeeze.</span><<large_text>>
+<<elseif $physiquesize gte 12000>>
+	<span class="purple">It'll be a bit of a squeeze.</span><<large_text>>
+<<elseif $physiquesize gte 10000>>
+	<span class="teal">There's enough room.</span><<small_text>>
+<<else>>
+	<span class="green">There's plenty of room.</span><<small_text>>
+<</if>>
+<br><br>
+
+<<pound_compete_text>>
+<br><br>
+
+<<link [[Next|Pound Show Compete 2]]>><</link>>
+<br>
+
+
+
+:: Pound Show Compete Skill
+<<effects>>
+
+You weave between the poles as fast as you can,
+<<if $danceSuccess>>
+	<span class="green">overtaking a struggling <<beasttype 0>></span>
+	<<set $pound.compete += 1>>
+<<else>>
+	<span class="red">but not fast enough to catch up with the others.</span>
+<</if>>
+<br><br>
+
+A tunnel is up next.
+<<if $physiquesize gte 16000>>
+	<span class="pink">It'll be a tight squeeze.</span><<large_text>>
+<<elseif $physiquesize gte 12000>>
+	<span class="purple">It'll be a bit of a squeeze.</span><<large_text>>
+<<elseif $physiquesize gte 10000>>
+	<span class="teal">There's enough room.</span><<small_text>>
+<<else>>
+	<span class="green">There's plenty of room.</span><<small_text>>
+<</if>>
+<br><br>
+<<pound_compete_text>>
+<br><br>
+
+<<link [[Next|Pound Show Compete 2]]>><</link>>
+<br>
+
+
+
+:: Pound Show Compete 2
+
+The <<pound_text>> disappear into the colourful tunnel. The watching <<people>> cheer on their favourites. It sounds like they've made bets.
+<br><br>
+
+<<link [[Intimidate|Pound Show Compete 2 Intimidate]]>><</link>><<skill_difficulty "$pound.status" "Respect" 40 100>>
+<br>
+<<link [[Squeeze through|Pound Show Compete 2 Skill]]>><</link>>
+<<if $physiquesize gte 16000>>
+	<<large_text>><<physiquedifficulty 12000 16000>>
+<<elseif $physiquesize gte 12000>>
+	<<large_text>><<physiquedifficulty 6000 12000>>
+<<elseif $physiquesize gte 10000>>
+	<<small_text>><<physiquedifficulty 2000 8000>>
+<<else>>
+	<<small_text>><<physiquedifficulty 1 2000>>
+<</if>>
+<br><br>
+
+
+:: Pound Show Compete 2 Intimidate
+<<effects>>
+
+<<if $pound.status gte random(40, 100)>>
+	You shove the <<beasttype 1>> beside you, before it enters the tunnel. You don't push <<bhim 1>> hard, <span class="green">but it's enough.</span> <<bHe 1>> stops short of the tunnel, allowing you to pull ahead.
+	<<set $pound.compete += 1>>
+	<br><br>
+<<else>>
+	You shove the <<beasttype 1>> beside you, before it enters the tunnel. <<bHe 1>> shoves you back, <span class="red">knocking you aside</span> and pulling ahead.
+	<br><br>
+<</if>>
+
+You squeeze through, and emerge on the other side.
+<br><br>
+
+<<pound_compete_text>>
+<br><br>
+
+<<link [[Next|Pound Show Compete 3]]>><</link>>
+<br>
+
+:: Pound Show Compete 2 Skill
+<<effects>>
+
+You squeeze into the tunnel. You almost get stuck on the other side,
+<<if $physiqueSuccess>>
+	<span class="green">but manage to pull yourself through.</span>
+	<<set $pound.compete += 1>>
+	<br><br>
+<<else>>
+	<span class="red">but your <<bottom>> gets stuck!</span> You hear laughter from behind.
+	<br><br>
+	"Let's help <<phim>> out," says a voice. A moment later a boot presses against your rear, forcing you into the tube. You manage to squeeze through to the other side.
+<</if>>
+<br><br>
+<<pound_compete_text>>
+<br><br>
+<<link [[Next|Pound Show Compete 3]]>><</link>>
+<br>
+
+:: Pound Show Compete 3
+<<effects>>
+
+You approach the hurdle. The <<beasttype 3>> in the lead makes it over, followed by the <<beasttype 2>> behind <<bhim 3>>.
+<br><br>
+
+<<link [[Intimidate|Pound Show Compete 3 Intimidate]]>><</link>><<skill_difficulty "$pound.status" "Respect" 40 100>>
+<br>
+<<link [[Jump|Pound Show Compete 3 Skill]]>><</link>><<athleticsdifficulty 1 1000>>
+<br>
+
+:: Pound Show Compete 3 Intimidate
+<<effects>>
+
+You release a sharp bark right before the <<beasttype 2>> ahead of you attempts the jump,
+<<if $pound.status gte random(40, 100)>>
+	frightening it. <span class="green">It jumps too soon,</span> and lands on the hurdle with a yelp. You time your own jump more carefully, and pull ahead.
+	<br><br>
+	<<set $pound.compete += 1>>
+<<else>>
+	<span class="red">but it ignores you,</span> sailing over the hurdle without difficulty. You're unable to catch up.
+	<br><br>
+<</if>>
+<<pound_compete_text>>
+<br><br>
+<<link [[Next|Pound Show Compete 4]]>><</link>>
+<br>
+
+:: Pound Show Compete 3 Skill
+<<effects>>
+
+You put your weight on your legs,
+<<if $athleticsSuccess>>
+	<span class="green">and launch yourself over the hurdle.</span>
+	<<set $pound.compete += 1>>
+	<br><br>
+<<else>>
+	<span class="red">but fail to launch yourself all the way over the hurdle.</span> It collides with your knees, much to the amusement of the <<people>> watching.<<gpain>><<pain 4>>
+	<br><br>
+<</if>>
+<<pound_compete_text>>
+<br><br>
+<<link [[Next|Pound Show Compete 4]]>><</link>>
+<br>
+
+:: Pound Show Compete 4
+<<effects>>
+
+A trench has been dug through the middle of the course, and filled with rainwater.
+<br><br>
+
+<<link [[Intimidate|Pound Show Compete 4 Intimidate]]>><</link>><<skill_difficulty "$pound.status" "Respect" 40 100>>
+<br>
+<<link [[Swim|Pound Show Compete 4 Skill]]>><</link>><<swimmingdifficulty 1 1000>>
+<br>
+
+:: Pound Show Compete 4 Intimidate
+<<effects>>
+
+You jump into the water, making a prodigious splash.
+<<if $pound.status gte random(40, 100)>>
+	<span class="green">It has the intended effect.</span> A <<beasttype 3>>, already wary of the water, receives a cold splash to the face. <<bHe 3>> whimpers and hesitates, only commencing after threats from the <<people>> observing.
+	<br><br>
+	You pull ahead.
+	<br><br>
+	<<set $pound.compete += 1>>
+<<else>>
+	A <<beasttype 3>> receives a faceful of water, <span class="red">but <<bhe 3>> doesn't slow.</span>
+	<br><br>
+<</if>>
+<br><br>
+
+You emerge from the water, and enter the final stretch. There's a bridge up ahead. The first to cross is the winner.
+<br><br>
+
+<<pound_compete_text>>
+<br><br>
+
+<<link [[Next|Pound Show Compete 5]]>><</link>>
+<br>
+
+:: Pound Show Compete 4 Skill
+<<effects>>
+
+You dive into the water.
+<<if $swimmingSuccess>>
+	It's cold, <span class="green">but you remain focused,</span> and emerge on the opposite bank without trouble.
+	<br><br>
+	<<set $pound.compete += 1>>
+<<else>>
+	<span class="red">The cold shocks you,</span> and for a gasping moment you forget you're in a race.<<gstress>><<stress 6>>
+	<br><br>
+<</if>>
+
+You emerge from the water, and enter the final stretch. There's a bridge up ahead. The first to cross is the winner.
+<br><br>
+
+<<pound_compete_text>>
+<br><br>
+
+<<link [[Next|Pound Show Compete 5]]>><</link>>
+<br>
+
+:: Pound Show Compete 5
+<<effects>>
+
+You approach the bridge.
+<<if $pound.compete gte 5>>
+	You're in the lead, but a <<beasttype 3>> is right on your heels.
+<<else>>
+	The <<beasttype 3>> leading the race scrambles up the ramp ahead.
+<</if>>
+<br><br>
+
+<<link [[Intimidate|Pound Show Compete 5 Intimidate]]>><</link>><<skill_difficulty "$pound.status" "Respect" 40 100>>
+<br>
+<<link [[Crawl as fast as you can|Pound Show Compete 5 Skill]]>><</link>><<athleticsdifficulty 1 1000>>
+<br>
+
+:: Pound Show Compete 5 Intimidate
+<<effects>>
+
+You bark as you thunder up the ramp.
+<<if $pound.status gte random(40, 100)>>
+	<span class="green">The sound of your voice startles the <<beasttype 3>>,</span> and <<bhe 3>> almost loses <<bhis 3>> balance.
+	<br><br>
+	<<set $pound.compete += 1>>
+<<else>>
+	<span class="red">The <<beasttype 3>> ignores your voice,</span> and rushes over the bridge without trouble.
+	<br><br>
+<</if>>
+
+<<link [[Next|Pound Show Compete End]]>><</link>>
+<br>
+
+:: Pound Show Compete 5 Skill
+<<effects>>
+
+You crawl up the ramp and over the bridge as fast as you can,
+<<if $athleticsSuccess>>
+	<span class="green">sliding down the far ramp on wet hands and knees.</span>
+	<<set $pound.compete += 1>>
+<<else>>
+	<span class="red">but you slip and slide on your wet hands and knees,</span> and almost fall.
+<</if>>
+<br><br>
+
+<<link [[Next|Pound Show Compete End]]>><</link>>
+<br>
+
+
+:: Pound Show Compete End
+<<effects>>
+
+
+<<if $pound.compete gte 5>>
+	<<endevent>>
+	You make it to the bottom of the ramp and across the finish line. <span class="green">First place!</span> Some of the <<people>> watching cheer while others throw down hats in dismay.
+	<br><br>
+	<<generate1>><<person1>>"Good <<girl>>," says a <<person>> as <<he>> attaches a leash to your collar. "I hope you're not too tired. You've a show to perform."
+	<<attach_leash>>
+	<br><br>
+
+	<<link [[Next|Pound Show End 2]]>><</link>>
+	<br>
+<<else>>
+	<span class="red">The <<beasttype 3>> is the first to make it across the finish line.</span> Some of the <<people>> watching cheer while others throw down hats in dismay.
+	<br><br>
+	<<endevent>>
+	A <<generate1>><<person1>><<person>> rushes over to take the winner to their "reward", while you and the other <<pound_text>> are returned to your cages.
+	<br><br>
+
+	<<link [[Next|Pound Cage]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Show End 2
+<<effects>>
+
+The <<person>> pulls you into the front courtyard, towards a waiting van. The well-dressed <<people>> follow behind, stealing pats to your <<bottom>> as they're able.
+<br><br>
+
+The <<person>> bundles you into the back of the vehicle, and slams the door behind you. There are no windows. The engine roars into life.
+<br><br>
+
+<<link [[Stand|Pound Show End Stand]]>><<pain 4>><<stress 6>><<trauma -6>><</link>><<gpain>><<gstress>><<ltrauma>>
+<br>
+<<link [[Remain on the floor|Pound Show End Floor]]>><<trauma 6>><</link>><<gtrauma>>
+<br>
+
+
+:: Pound Show End Stand
+<<effects>>
+<<pass 5>>
+There's no reason to still act like a dog while alone. You recoup some dignity by standing during the journey, balancing yourself against two walls as the van starts and stops.
+<br><br>
+
+It's a short journey. The <<person>> opens the doors and jerks you back to the floor by your leash. "No time for tricks," <<he>> says. "Your audience is waiting."
+<br><br>
+
+<<link [[Next|Pound Show End 3]]>><</link>>
+<br>
+
+
+:: Pound Show End Floor
+<<effects>>
+<<pass 5>>
+
+You remain on all fours like a good dog, despite being alone.
+<br><br>
+
+It's a short journey. The <<person>> opens the doors and takes your leash. "Come on," <<he>> says. "Your audience is waiting."
+<br><br>
+
+<<link [[Next|Pound Show End 3]]>><</link>>
+<br>
+
+:: Pound Show End 3
+<<effects>>
+
+You're in a well-kept garden outside a mansion. You see Danube Street through the gate behind you, and hear voices from a pavilion up ahead. The <<person>> holds the leash, and pulls you behind <<him>>.
+<br><br>
+
+<<generatey2>>
+You enter the pavillion. It's full of <<people>> in their finest, chatting while servants wheel around with trays of drinks and canapés. <<covered>> You were almost getting used to nudity at the pound, but this is different. Worse, you recognise one of the servants. A <<person2>><<person>> from the orphanage. <<His>> eyes meet yours, and <<he>> looks away with a blush.<<ggtrauma>><<gstress>><<trauma 12>><<stress 6>>
+<br><br>
+
+<<link [[Next|Pound Show End 4]]>><</link>>
+<br>
+
+:: Pound Show End 4
+<<effects>>
+
+You become the centre of attention. The practised applause contrasts their leers as the <<person1>><<person>> leads you to a stage in the middle.
+<br><br>
+
+<<link [[Obey|Pound Show End Obey]]>><<sub 1>><</link>>
+<br>
+<<link [[Defy|Pound Show End Refuse]]>><<def 1>><<pain 8>><</link>><<ggpain>>
+<br>
+
+:: Pound Show End Obey
+<<effects>>
+
+You do as instructed, and crouch in an upright position. "Good <<girl>>," the <<person>> says. The guests crowd closer.
+<br><br>
+"What a fine specimen."
+<br>
+"Good strong legs."
+<br>
+"What breed is it?"
+<br><br>
+You remain still as they comment. You don't see the <<person2>><<person>> anywhere.
+<br><br>
+
+<<link [[Next|Pound Show End 5]]>><<pass 30>><</link>>
+<br>
+
+:: Pound Show End Refuse
+<<effects>>
+
+You glare at the <<person>>. <<He>> yanks your leash, forcing you forward and leaving you flat on the stage. <<He>> presses <<his>> foot against your back, holding you down. The guests crowd closer.
+<br><br>
+"A feisty one."
+<br>
+"That's a winner for you."
+<br>
+"What breed is it?"
+<br><br>
+You remain still as they comment. You don't see the <<person2>><<person>> anywhere.
+<br><br>
+
+<<link [[Next|Pound Show End 5]]>><<pass 30>><</link>>
+<br>
+
+:: Pound Show End 5
+<<effects>>
+
+The <<person1>><<person>> holds you still as the guests continue to talk about you like you don't understand them. They sometimes reach and grope.
+<br><br>
+<<generate3>><<person3>>
+"Looks healthy and fertile," a <<person>> says after a while. <<He>> reaches for your <<genitals>>. "May I?" The <<person1>><<person>> nods,<<person3>>
+<<if $worn.genitals.type.includes("chastity")>>
+	and the <<person>> tugs on your chastity belt.
+	<br><br>
+	"Lost the key," the <<person1>><<person>> says, sheepish. "Though it might be for the best. These mutts breed like rabbits."
+	<br><br>
+<<else>>
+	<<if $player.penisExist and $player.vaginaExist>>
+		and the <<person>> takes your <<penis>> between <<his>> fingers. "Aha, there's a pussy here as well. How unique!"
+		<br><br>
+		<<He>> runs <<his>> fingers up and down your length, while stroking your <<pussy>> with <<his>> other hand. The audience look on, transfixed by the spectacle.
+		<br><br>
+	<<elseif $player.penisExist>>
+		and the <<person>> takes your <<penis>> between <<his>> fingers. "Feels healthy. But we must be sure." <<He>> runs <<his>> fingers up and down your length. The audience look on, transfixed by the spectacle.
+		<br><br>
+	<<else>>
+		and the <<person>> strokes your <<pussy>> with a forefinger. "Feels healthy. But we must be sure." <<He>> inserts the finger, parting you. A trickle of fluid runs down your thigh. The audience look, transfixed by the spectacle.
+		<br><br>
+	<</if>>
+	<<His>> molestation continues, until your body shakes and trembles. <<orgasm>>
+<</if>>
+<br><br>
+
+"Delightful!"
+<br>
+"Yup, <<pshes>> a healthy one."
+<br>
+<<if ($bestialitydisable is "f" or $monsterchance gte 1) and $pregnancyspeechdisable is "f">>
+	<<if $player.penisExist>>
+		"You should have <<phim>> sire some pups."
+	<<else>>
+		"You should have pups put in <<phim>>."
+	<</if>>
+<</if>>
+<br><br>
+
+<span class="blue">You hear a scream outside the pavilion.</span>
+<br><br>
+
+<<link [[Next|Pound Show End 6]]>><</link>>
+<br>
+
+
+:: Pound Show End 6
+<<effects>>
+
+<<generate4>><<generate5>><<npc Bailey 6>>
+The audience turn to face three newcomers. <span class="blue">It's Bailey.</span> The <<person1>><<person>> drops your leash, and runs in the opposite direction, only to be grappled by two of Bailey's thugs.
+<br><br>
+The <<person2>><<person>> enters the pavilion after Bailey, and scurries towards you. <<He>> helps you to your feet, wraps a towel around your body, and steers you from the pavilion.
+<br><br>
+<<towelup>>
+The entrance flaps shut behind you. You hear a shattering of glass.
+<br><br>
+
+<<link [[Next|Pound Show End 7]]>><</link>>
+<br>
+
+:: Pound Show End 7
+<<effects>>
+<<earnFeat "Pounded Pound">>
+
+The <<person>> holds your arm as you hurry towards the gate. The servants don't pay you much mind, and seem eager to be away themselves.
+<br><br>
+"Wait, let me get this stuff off you," the <<person>> says as you reach the road. <<He>> removes your leash, then fiddles with your muzzle until it comes free. <<He>> has less luck with the collar.
+<br><br>
+<<set $worn.face.type.push("broken")>>
+<<faceruined>>
+<<detach_leash>>
+<<pass 5>>
+The <<person>> insists on escorting you back to the orphanage. "Bailey said to take you home. <<person6>><<He>><<person2>> used to work with that <<person1>><<personsimple>><<person2>> who brought you in, but they fell out. I knew Bailey would want to hear about it."
+<br><br>
+
+<<if $bailey_pound is 1>>
+	That explains the document you found at the pound. <span class="gold">There's no point informing Bailey of it.</span>
+	<br><br>
+<</if>>
+<<if $bailey_pound lt 2 or $bailey_pound is undefined>>
+	<<set $bailey_pound to 2>>
+<</if>>
+
+<<link [[Next|Pound Show End 8]]>><</link>>
+<br>
+
+:: Pound Show End 8
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+You arrive at the orphanage. "I'm glad you're okay," the <<person>> says. "I think I need to find a new job." <<He>> walks back outside once you're safely indoors.
+<br><br>
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+<br>
\ No newline at end of file
diff --git a/game/overworld-town/loc-pound/main.twee b/game/overworld-town/loc-pound/main.twee
new file mode 100644
index 0000000000000000000000000000000000000000..b07ccdb633d49298e2889a30c8a1ad0c71e98133
--- /dev/null
+++ b/game/overworld-town/loc-pound/main.twee
@@ -0,0 +1,3022 @@
+:: Pound
+<<set $outside to 0>><<location "pound">><<effects>>
+
+<<if $pound is undefined>>
+	<<pound_init>>
+<</if>>
+You are in the dog pound on Starfish Street. Stray <<pound_text>> fill the cages.
+<<if $stress gte $stressmax>>
+	<<passoutshop>>
+<<elseif $hour is $closinghour>>
+	It's closing time. The staff are preparing to leave.
+	<<if $exposed gte 1>>
+		Panic swells within you as you realise how exposed you'll be should you be found in this state of dress.
+	<</if>>
+	<br><br>
+	<<link [[Leave|Starfish Street]]>><<endevent>><</link>>
+	<br>
+	<<link [[Hide (1:00)|Pound]]>><<pass 60>><</link>>
+	<br>
+<<else>>
+	<<if $arousal gte $arousalmax>>
+		<<orgasmLocation "pound">>
+	<</if>>
+	<<if $openinghours is 0>>
+		You are alone in the darkness.
+		<br><br>
+	<<elseif $exposed gte 1>>
+		<<if $uncomfortable.nude is false>>
+		You are hiding in a cupboard, you wouldn't mind others seeing you exposed, but this time you stay put.
+		<<else>>
+		You are hiding in a cupboard to protect your dignity.
+		<</if>>
+		<br><br>
+	<</if>>
+	<<beastNEWinit 1 dog>>
+	A <<beasttype>> watches you through the bars.
+	<br>
+	<<if $openinghours is 0 and $hour isnot $closinghour>>
+		<<if $deviancy gte 15 and $pound.sneak is 0 and ($bestialitydisable is "f" or $monster is 1)>>
+			<<link [[Tease (0:05)|Pound Tease]]>><<pass 5>><<set $pound.sneak to 1>><<arousal 600>><</link>><<deviant2>><<garousal>>
+			<br>
+		<</if>>
+		<<if $pound.progress is 4>>
+			<<link [[Free the black dog|Pound Free]]>><<set $pound.progress to 5>><</link>> | <span class="red">Dangerous</span>
+			<br>
+		<</if>>
+	<</if>>
+	<br><br>
+
+
+
+	<<if $openinghours is 1 and $exposed lt 1>>
+		Staff go about their business.
+		<<if $hour gte 18>>
+			Some stand around chatting in the rear courtyard, as if they have nothing better to do.
+		<<elseif $hour gte 14>>
+			A well-dressed couple examine a line-up of <<pound_text>> in the rear courtyard, considering adoption.
+		<<elseif $hour gte 10>>
+			Some <<pound_text>> have been let loose in the rear courtyard.
+		<<else>>
+
+		<</if>>
+		<br><br>
+		<<if $pound.progress is 0>>
+			<<link [[Ask for work|Pound Ask]]>><<set $pound.progress to 1>><<endevent>><</link>>
+			<br><br>
+		<<else>>
+			<<link [[Work (1:00)|Pound Work]]>><<endevent>><</link>>
+			<br><br>
+		<</if>>
+
+		<<if $pound.progress lte 3>>
+		A low growl can be heard within the shadowed cage.
+		<br>
+			<<if $pound.status gte 100>>
+				<<link [[Approach the brute|Pound Work Brute]]>><<endevent>><</link>><<tendingdifficulty 1 1000>>
+				<br><br>
+			<<else>>
+				<span class="blue">You wouldn't get close.</span>
+				<br><br>
+			<</if>>
+		<</if>>
+	<</if>>
+
+	<<link [[Leave|Starfish Street]]>><<endevent>><</link>>
+	<br><br>
+<</if>>
+
+:: Pound Free
+<<effects>>
+
+<<loadNPC 0 "black_dog">>
+The key is in its usual place. There's nothing stopping you from unlocking the cage, and holding it wide open for the <<beasttype>> within. <<bHis>> yellow eyes appear in the dark. <<bHe 0>> regards you a moment, before stepping into the light.
+<br><br>
+
+<<bHe>> hesitates, as if expecting a trick, then walks the rest of the way.
+<br><br>
+
+<<link [[Reassure|Pound Free Reassure]]>><</link>>
+<br>
+<<link [[Lead outside|Pound Free Lead]]>><</link>>
+<br>
+
+:: Pound Free Reassure
+<<effects>>
+
+<<if $submissive gte 1150>>
+	"I-I'm here to rescue you," you say. "Don't be frightened."
+<<elseif $submissive lte 850>>
+	"I'm getting you out of here," you say. "Don't look so upset."
+<<else>>
+	"I'm freeing you," you say. "Come on, we have to hurry."
+<</if>>
+<br><br>
+
+<<if $monster is 1>>
+	"I follow," <<bhe>> says. "Then I run for forest. Never return here."
+<<else>>
+	<<bHe>> stretches <<bhis>> body, as if anticipating a journey.
+<</if>>
+There's a new energy about <<bhim>>.
+<br><br>
+
+<<link [[Next|Pound Free Lead]]>><</link>>
+<br>
+
+
+:: Pound Free Lead
+<<effects>>
+<<generate2>><<generate3>><<generate4>><<generate5>><<generate6>><<person2>>
+You walk for the exit, the <<beasttype 0>> by your side. <span class="red">Red lights flicker into life, and an alarm blares out.</span> At the end of the room, opposite the exit, the metal door shudders open. A <<person>> rushes through, a phone in <<his>> hand and a fresh coffee stain on <<his>> shirt.
+<br><br>
+
+"Police? We have a break in. Yes I see them. Right." <<He>> lets the phone fall to the ground. "Stop right there!" <<he>> says. "The police will be here any minute. Best make this-"
+<br><br>
+
+<<He>> cuts off when the <<beasttype 0>> turns and fixes <<him>> with a gaze. <<He>> almost trips over <<himself>> in <<his>> haste to escape. The metal door shuts behind <<him>>.
+<br><br>
+
+<<link [[Next|Pound Free 2]]>><</link>>
+<br>
+
+
+:: Pound Free 2
+<<effects>>
+
+The other <<pound_text>> watch as you pass, awoken by the alarm. The front door has been remotely locked, and you lose precious moments searching for the right key.
+<br><br>
+
+You emerge in the courtyard outside, and rush for the dark road beyond the gate. <span class="red">Blinding lights shine from ahead, and either side.</span> "This is the police," booms a voice. "We have you surrounded."
+<br><br>
+
+The <<beasttype 0>> growls.
+<br><br>
+
+<<link [[Cause a distraction so the black dog can escape|Pound Free Distract]]>><</link>>
+<br>
+<<link [[Run|Pound Free Run]]>><</link>>
+<br>
+
+
+:: Pound Free Distract
+<<effects>>
+
+"Run," you whisper, patting the <<beasttype 0>>'s fur. "I'll be safe." You can't be sure <<bhe 0>> understood, but there's no time to be sure.
+<br><br>
+You release a bellowing roar, and charge the lights.
+<br><br>
+
+<<link [[Next|Pound Free 3]]>><</link>>
+<br>
+
+
+
+:: Pound Free Run
+<<effects>>
+
+You pull on the <<beasttype 0>>'s collar and run for a gap in the lights.
+<br><br>
+
+<<link [[Next|Pound Free 3]]>><</link>>
+<br>
+
+
+
+:: Pound Free 3
+<<effects>>
+<<bind>>
+There's no chance of victory. You can't even see the blow that sends you to the ground, a weight keeps you there. "Got <<phim>>," says a <<person3>><<personsimple>>'s voice. "Where'd the mutt go?"
+<br>
+There's a pause. "Where'd it go?"
+<br>
+"Sorry sarge. <span class="green">It's gone."</span>
+<br>
+"Fuck. Get this <<bitch>> inside."
+<br><br>
+
+<<link [[Next|Pound Free 4]]>><</link>>
+<br>
+
+
+:: Pound Free 4
+<<effects>>
+<<earnFeat "Pound Liberator">>
+The officers handcuff you, and drag you into the pound to await the other staff. The <<person2>><<person>> is first, emerging from behind the metal door with a sheepish look on <<his>> face. <<He>> doesn't mention how thoroughly the <<beasttype 0>> scared <<him>>.
+<br><br>
+
+The staff soon arrive, irritated at their nights being disturbed. That's nothing compared to their anger at hearing what you've done. One <<person5>><<person>> marches to the <<beasttype 0>>'s cage. "No no no," <<he>> says. "We are so fucked." <<He>> looks at you. "You little shit."
+<br><br>
+
+They demand that the police hit you with the fullest extent of the law. The whole book. Until they notice one of their number, a <<person6>><<person>>, grinning at you in silence.
+<br><br>
+"Calm down everyone," <<he>> says. "We have a replacement." The others follow <<his>> gaze, and their anger fades. "Thank you officers. We won't press charges."
+<br><br>
+
+<<link [[Next|Pound Free 5]]>><</link>>
+<br>
+
+
+:: Pound Free 5
+<<effects>>
+
+<<endevent>>
+<<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>><<person1>>
+The door slam shuts behind the police, and the pound staff get to work. A <<person>> retrieves a muzzle from the store room, another a collar and leash. "Get <<person2>><<pher>> clothes off," says a <<person>>. <span class="red">"Dogs don't wear clothes."</span>
+<br><br>
+
+They surround you. You'd need to fight your way out. There are a lot of them, your hands are tied, and failure would leave you vulnerable.
+<br><br>
+
+<<link [[Fight|Pound Free Fight]]>><<set $fightstart to 1>><<def 1>><</link>>
+<br>
+<<link [[Submit|Pound Free Submit]]>><<sub 1>><<endevent>><</link>>
+<br>
+
+
+:: Pound Free Fight
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+
+	<<neutral 1>>
+
+	<<maninit>>
+	<<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Free Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Free Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Pound Free Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Free Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Free Fight Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	You duck and weave through the groggy staff, and escape into the yard outside. The police left the gate ahead open.
+	<br><br>
+	<<tearful>> you escape into the night.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Starfish Street]]>><</link>>
+	<br>
+
+<<elseif $enemyhealth lte 0>>
+	Stunned by your aggression, the staff fall back. You seize the opportunity and escape into the yard outside. The police left the gate ahead open.
+	<br><br>
+	<<tearful>> you escape into the night.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Starfish Street]]>><</link>>
+	<br>
+
+<<else>>
+	<<tearful>> you fall to the ground. You're too hurt to continue fighting.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound Free Submit]]>><</link>>
+	<br>
+
+<</if>>
+
+
+:: Pound Free Submit
+<<effects>>
+
+<<unbind>>
+<<clothesruined>>
+<<facewear 17>>
+<<leash 26>>
+<<set $worn.neck.cursed to 1>>
+
+Hands reach from all around, and rip the clothes from your body. They push you onto your stomach. Someone pushes a boot between your shoulders as they reach down to affix a muzzle around your mouth, and a collar and leash around your neck. They remove the handcuffs, at least.
+<br><br>
+
+<<generate1>><<person1>>
+"Get <<phim>> up," says a <<person>>. Someone yanks your leash, pulling you to your knees. The <<person>> leans close. "Best be a good <<girl>>," <<he>> whispers, taking hold of your leash. "And do as you're told." <<He>> pulls away. "Walk."
+<br><br>
+
+<<link [[Crawl|Pound Free Crawl]]>><<sub 1>><<trauma 6>><</link>><<gtrauma>>
+<br>
+<<link [[Stand|Pound Free Stand]]>><<pain 4>><<stress 6>><</link>><<gpain>><<gstress>>
+<br>
+<<link [[Refuse|Pound Free Refuse]]>><<pain 8>><</link>><<ggpain>>
+<br>
+
+
+:: Pound Free Crawl
+<<effects>>
+
+You crawl around the room on all fours, the <<person>> following behind with the leash in <<his>> hand. The staff watch, ogling your body and enjoying your humiliation. They're not the only ones. The <<pound_text>> are well-awake, and observe from their cages.<<lllpound_status>><<pound_status -10>>
+<br><br>
+
+<<link [[Next|Pound Free 6]]>><</link>>
+<br>
+
+
+:: Pound Free Stand
+<<effects>>
+
+You rise to your feet. Or try to. The <<person>> kicks you down. "Dogs don't walk like that," <<he>> says. "Now stay down, or we'll make you."
+<br><br>
+
+You crawl around the room on all fours, the <<person>> following behind with the leash in <<his>> hand. The staff watch, ogling your body and enjoying your humiliation. They're not the only ones. The <<pound_text>> are well-awake, and observe from their cages.<<lllpound_status>><<pound_status -10>>
+<br><br>
+
+<<link [[Next|Pound Free 6]]>><</link>>
+<br>
+
+
+
+:: Pound Free Refuse
+<<effects>>
+
+You refuse to budge, but the <<person>> gives your <<bottom>> a solid kick, jolting you forward. <<He>> delivers another, and another. The staff watch, ogling your body and enjoying your humiliation. They're not the only ones. The <<pound_text>> are well-awake, and observe from their cages.<<lllpound_status>><<pound_status -10>>
+<br><br>
+
+<<link [[Next|Pound Free 6]]>><</link>>
+<br>
+
+:: Pound Free 6
+<<effects>>
+
+<<He>> steers you down the row of cages, giving the occupants a closer look.<<lllpound_status>><<pound_status -10>>
+<br><br>
+
+<<endevent>><<generate1>><<person1>>
+"I can't stand it," a <<person>> says, stepping closer. "I need to fuck <<phim>>."
+<br><br>
+The others laugh. "You want to fuck a dog? Be my guest."
+<br><br>
+The <<person>> receives the leash. <<He>> holds it taut as <<he>> kneels next to you, and pulls your <<bottom>> closer.
+<br><br>
+
+<<link [[Next|Pound Free Rape]]>><<set $molestationstart to 1>><</link>>
+<br>
+
+:: Pound Free Rape
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>>
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+
+<<audience>>
+The <<pound_text>> watch as well.<<lpound_status>><<pound_status -1>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Free Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Free Rape Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Free Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Free Rape Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	The <<person>> staggers away from you, satisfied.<<llpound_status>><<pound_status -5>>
+	<br><br>
+	<<tearful>> you prepare for more abuse.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+
+<<else>>
+	The <<person>> backs away from you. The other staff laugh. "I-it's not tame yet."
+	<br><br>
+	<<tearful>> you prepare for more abuse.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+
+<</if>>
+<<link [[Next|Pound Free 7]]>><</link>>
+<br>
+
+
+:: Pound Free 7
+<<effects>>
+
+<<generate1>><<person1>>
+A <<person>> takes your leash and leans in. "They used to respect you," <<he>> says, regarding the <<pound_text>> in their cages. "But now they see you're just a <<bitch>> like them."
+<br><br>
+
+<<endevent>>
+
+<<beastNEWinit 6 dog>>
+<<if $bestialitydisable is "f" or $monster is 1>>
+	"Open the cages!"
+	<br><br>
+	<<bind>>
+	The staff tie the leash around your arms and the bars of a cage holding you in place. Someone smacks your <<bottom>>. "Come on you mutts. I know you can't resist."
+	<br><br>
+
+	<span class="teal">The <<beastsplural>> look unsure,</span> but that doesn't stop one approaching.
+	<br><br>
+
+	<<link [[Next|Pound Free Beast]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<<else>>
+	<<endevent>>
+	<<generate1>><<person1>>
+	The staff continue to abuse you. They make you play fetch, eat from dog bowls, and other degradations. At last, they detach the leash and shove you into one of the cages, locking it behind you. "Sleep well." They laugh as they walk away. <<lllpound_status>><<pound_status -30>><<gggtrauma>><<gggstress>><<trauma 18>><<stress 18>><<detach_leash>>
+	<br><br>
+	<<link [[Next|Pound Cage]]>><<endevent>><</link>>
+	<br>
+<</if>>
+<br><br>
+
+:: Pound Free Beast
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+
+	<<beastCombatInit>>
+	<<beastTrainGenerate>>
+<</if>>
+<<effects>>
+<<effectsman>>
+<br>
+<<beast $enemyno>>
+<br><br>
+<<stateman>>
+<br><br>
+<<actionsman>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Free Beast End]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Free Beast End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Free Beast]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Free Beast End
+<<effects>>
+<<if $enemyhealth lte 0>>
+	<<beastwound>>
+	<<if $combatTrain.length gt 0>>
+		The <<beasttype>> recoils in pain and fear, but another is eager for a go.
+
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Free Beast]]>><</link>>
+	<<else>>
+		The <<beasttype>> recoils in pain and fear.
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Free Beast End]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+	<<if $combatTrain.length gt 0>>
+		Satisfied, the <<beasttype>> moves and another takes its turn.<<llpound_status>><<pound_status -5>>
+		<br><br>
+
+		<<combatTrainAdvance>>
+
+		<<switch $enemyejaculated>>
+			<<case 6>>
+				A <<beasttype>> approaches,<span class="red"> and looks at you like you're a piece of meat.</span>
+			<<case 5>>
+				A <<beasttype>> approaches,<span class="pink"> and looks at you like you're a runt in need of punishment.</span>
+			<<case 4>>
+				A <<beasttype>> approaches,<span class="purple"> and looks at you like you're a bitch in heat.</span>
+			<<case 3>>
+				A <<beasttype>> approaches,<span class="blue"> looking eager to ravage you.</span>
+			<<case 2>>
+				A <<beasttype>> approaches,<span class="lblue"> looking eager to fuck you.</span>
+			<<case 1>>
+				A <<beasttype>> approaches,<span class="teal"> looking eager to take advantage of you.</span>
+			<<default>>
+				A <<beasttype>> approaches,<span class="green"> but looks unsure.</span>
+		<</switch>>
+		<br><br>
+		<<link [[Next|Pound Free Beast]]>><</link>>
+	<<else>>
+		Satisfied, the <<beasttype>> moves away from you.<<llpound_status>><<pound_status -5>>
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Free Beast End]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<elseif $finish is 1>>
+	<<unbind>>
+	<<endcombat>>
+	<<generate1>><<person1>>
+	<<tearful>> you prepare for more abuse. "That's enough for now," says a <<person>>. "Get the mutts back in their cages."
+	<br><br>
+
+	<<clotheson>>
+	The staff continue to abuse you. They make you play fetch, eat from dog bowls, and other degradations. At last, they detach the leash and shove you into one of the cages, locking it behind you. "Sleep well", the <<person>> says. "Your training begins tomorrow." The staff laugh as they walk away.<<detach_leash>>
+	<<pass 60>>
+	<br><br>
+	<<link [[Next|Pound Cage]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+:: Pound Work
+<<effects>>
+
+<<if $pound.progress is 1>>
+	<<set $pound.progress to 2>>
+	<<beastNEWinit 1 dog>>
+	<<saveNPC 0 "black_dog">>
+	<<generate2>><<person2>><<generate3>>
+	It's not a small facility, and there are more staff than you'd expect. A nervous <<person>> approaches a shadowed cage, carrying a collar. The cages around it are empty. <<He>> freezes at the sound of a low growl.
+	<br><br>
+	"The <span class="purple">brute</span> savaged <<bhis 0>> master," says a <<person3>><<person>>, stopping beside you and folding <<his>> arms. "Now the master wants revenge. Needs us to knock some obedience into the mutt first though. No one can even get a collar on."
+	<br><br>
+	The <<person2>><<person>> escapes the cage and slams the door behind <<him>>. <<He>> carries half the collar. The rest has been torn off. "I ain't going near it," the <<person3>><<person>> laughs.
+	<br><br>
+	<<link [[Next|Pound Work]]>><<endevent>><</link>>
+	<br>
+<<elseif $pound.progress is 2 and $pound.status gte 10>>
+	<<set $pound.progress to 3>>
+	<<beastNEWinit 1 dog>>
+	<<generate2>><<person2>>
+	You hear a whimper. A <<person>> stands over a <<beasttype 0>> in one of the cages, whacking <<bhim 0>> with a belt. The <<beasttype 0>> doesn't try to defend <<bhimself 0>>.
+	<br><br>
+
+	<<link [[Intervene|Pound Work Intervene]]>><<pound_status 3>><<stress 6>><</link>><<gstress>><<ggpound_status>><<gstray_happiness>>
+	<br>
+	<<link [[Ignore|Pound Work Intervene Ignore]]>><</link>>
+	<br>
+<<else>>
+	<<generate1>><<person1>>
+	Other staff go about their business. A <<person>> enters a metal door on the other side of the building, locking it behind <<him>>.
+	<br><br>
+	<<endevent>>
+	<<stray_happiness_text>>
+	<br><br>
+	<<link [[Sweep (£5)|Pound Work Sweep]]>><<if !$pound.tasks.includes("sweep")>><<stray_happiness 1>><<set $pound.tasks.push("sweep")>><</if>><<set $pound.money to 5>><</link>><<if !$pound.tasks.includes("sweep")>><<gstray_happiness>><</if>>
+	<br>
+	<<if $pound.status gte 10>>
+		<<link [[Feed (£8)|Pound Work Feed]]>><<set $pound.tasks.push("feed")>><<set $pound.money to 8>><</link>><<if !$pound.tasks.includes("feed")>><<gstray_happiness>><</if>>
+	<<else>>
+		<span class="blue">The <<pound_text>> don't respect you enough to let you near them, even with food.</span>
+	<</if>>
+	<br>
+	<<if $pound.status gte 20>>
+		<<link [[Brush (£10)|Pound Work Brush]]>><<if !$pound.tasks.includes("brush")>><<stray_happiness 1>><<set $pound.tasks.push("brush")>><</if>><<set $pound.money to 10>><</link>><<if !$pound.tasks.includes("brush")>><<gstray_happiness>><</if>>
+	<<else>>
+		<span class="blue">The <<pound_text>> don't respect you enough to let you near them with a brush.</span>
+	<</if>>
+	<br>
+	<<if $pound.status gte 40>>
+		<<link [[Wash (£12)|Pound Work Wash]]>><<if !$pound.tasks.includes("wash")>><<stray_happiness 1>><<set $pound.tasks.push("wash")>><</if>><<set $pound.money to 12>><</link>><<if !$pound.tasks.includes("wash")>><<gstray_happiness>><</if>>
+	<<else>>
+		<span class="blue">The <<pound_text>> don't respect you enough to let you near them with a bucket of water.</span>
+	<</if>>
+	<br>
+	<<if $pound.status gte 60>>
+		<<link [[Walk (£15)|Pound Work Walk]]>><<if !$pound.tasks.includes("walk")>><<stray_happiness 1>><<set $pound.tasks.push("walk")>><</if>><<set $pound.money to 15>><</link>><<if !$pound.tasks.includes("walk")>><<gstray_happiness>><</if>>
+	<<else>>
+		<span class="blue">The <<pound_text>> don't respect you enough to let you near them with a leash.</span>
+	<</if>>
+	<br>
+
+<</if>>
+:: Pound Work Intervene
+<<effects>>
+
+You rattle the cage door.
+
+<<if $submissive gte 1150>>
+	"Stop it," you say. "Y-you're hurting <<bhim 0>>."
+<<elseif $submissive lte 850>>
+	"Put the belt down," you say. "You psychopath."
+<<else>>
+	"Stop it," you say. "This is cruel."
+<</if>>
+<br><br>
+
+The <<person>> looks at you before giving the <<beasttype 0>> a final whack. "Alright," <<he>> says, panting from the exertion. <<He>> leaves the cage, but stops beside you. <span class="pink">"Best watch out <<lass>>.</span> Don't think we won't make a <<bitch>> of you if you give us a reason."
+<br><br>
+
+<<link [[Next|Pound Work]]>><<endevent>><</link>>
+<br>
+
+:: Pound Work Intervene Ignore
+<<effects>>
+
+You keep walking, and try your best to ignore the whimpering.
+<br><br>
+
+<<link [[Next|Pound Work]]>><<endevent>><</link>>
+<br>
+
+:: Pound Work Sweep
+<<effects>>
+
+You take a broom and sweep fur from the cages. Once in a neat pile, you sweep it into a dustpan.
+<br><br>
+<<beastNEWinit 1 dog>>
+<<if random(1, 2) is 2>>
+	The broom snags as a <<beasttype>> grabs it between <<bhis>> teeth.
+	<br><br>
+
+	<<link [[Scold|Pound Work Sweep Scold]]>><</link>><<tendingdifficulty 1 200>>
+	<br>
+	<<link [[Wrestle|Pound Work Sweep Wrestle]]>><</link>><<physiquedifficulty 1 6000>>
+	<br>
+<<else>>
+	<<endevent>><<generate1>><<person1>>
+	A <<person>> grasps the handle as you pass by, stopping you. <<He>> moves in, resting a hand on your <<bottom>>.<<gstress>><<stress 6>>
+	<br><br>
+	"Let me show you how to sweep properly," <<he>> says, stepping closer still.
+	<<if $NPCList[0].penissize gte 3>>
+		You feel <<his>> <<print $NPCList[0].penisdesc>> press against you.
+	<</if>>
+	<br><br>
+
+	<<if $anxiety gte 2>>
+		<span class="red">Panic strikes,</span> and you lash out at the <<person>>. You hear a cry of pain and see a flash of crimson as <<he>> releases <<his>> grip. You flee to a solitary spot in the yard. You wait until your breathing calms. You don't think you hurt <<him>> too badly.<<crime>><<crimeup 10>>
+		<br><br>
+
+		You make <<moneyGain $pound.money>>.<<pass 60>>
+		<br><br>
+
+		<<link [[Next|Pound]]>><<endevent>><</link>>
+		<br>
+	<<elseif $anxiety gte 1>>
+		<span class="red">Panic strikes,</span> and you freeze in fear. The <<person>> takes it for assent.<<trauma 6>><<gtrauma>>
+		<br><br>
+
+		<<link [[Next|Pound Work Sweep Go]]>><</link>><<if $tending lt 200>><<gtending>><</if>>
+		<br>
+	<<else>>
+		<<link [[Go along with it|Pound Work Sweep Go]]>><<trauma 6>><</link>><<if $tending lt 200>><<gtending>><</if>>
+		<br>
+		<<link [[Shove|Pound Work Sweep Shove]]>><<pound_status 1>><<stress 6>><</link>><<gstress>><<gpound_status>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Pound Work Sweep Go
+<<effects>>
+
+The <<person>> presses <<his>> body awfully close as <<he>> holds your arms and demonstrates <<his>> sweeping technique. <<He>> also talks about the <<pound_text>>, and how to put them at ease.
+
+<<if $tending lt 200>>
+	You learn a thing or two, despite <<his>> creepiness. "No need to thank me," <<he>> says, giving your <<bottom>> a parting smack.
+<<else>>
+	<<Hes>> very sure of <<himself>>, but doesn't teach anything you don't already know. "No need to thank me," <<he>> says, giving your <<bottom>> a parting smack.
+	<br><br>
+<</if>>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Work Sweep Shove
+<<effects>>
+
+You shove the <<person>> away from you. <<He>> glares at you, then glances at the supervisor, before deciding not to press things.
+<br><br>
+
+The <<pound_text>> watch with blank expressions.
+<br><br>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+:: Pound Work Sweep Scold
+<<effects>>
+
+<<if $tendingSuccess>>
+	"Let go," you say, <span class="green">your voice firm and sure.</span> The <<beasttype>> relents, and chews on a bar instead.<<gpound_status>><<pound_status 1>>
+	<br><br>
+<<else>>
+	"L-let go," you say, <span class="red">but it's hard to keep your voice steady while the <<beasttype>> jerks the broom around.</span> <<bHe>> only gives up <<bhis>> grip when satisfied, leaving teeth marks on the wood.<<lpound_status>><<pound_status -1>><<if $tending lt 200>><<tending 1>><<gtending>><</if>>
+	<br><br>
+<</if>>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Work Sweep Wrestle
+<<effects>>
+
+<<if $physiqueSuccess>>
+	You push a foot against the bars for purchase, and twist the shaft <span class="green">as you pull the handle from the <<beasttype>>'s mouth.</span> <<bHe>> lies down, dejected.<<gpound_status>><<pound_status 1>>
+	<br><br>
+<<else>>
+	You push a foot against the bar for purchase, <span class="red">but the <<beasttype>> pulls you off balance,</span> smacking your shoulder against the metal. <<bHe>> only gives up <<bhis>> grip when satisfied, leaving teeth marks on the wood.<<gpain>><<pain 4>>
+	<br><br>
+<</if>>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+:: Pound Work Feed
+<<effects>>
+
+You refill the bowls in the rear courtyard, before a horde of eager <<pound_text>> are released from their cages.
+<br><br>
+
+<<if random(1, 2) is 2>>
+	They swarm towards the bowls, ignoring you and the other staff.
+	<<beastNEWinit 2 dog>>
+	An emaciated <<beasttype 0>> tries to push <<bhis 0>> way through, but is too weak. Another <<beasttype 1>> jostles <<bhim 0>> aside. <<bHe 0>> lies down, defeated.
+	<br><br>
+
+	<<link [[Make the others play fair|Pound Work Feed Soothe]]>><</link>><<tendingdifficulty 1 400>>
+	<br>
+	<<link [[Comfort|Pound Work Feed Comfort]]>><<stress 6>><<trauma -6>><</link>><<gstress>><<ltrauma>>
+	<br>
+	<<link [[Do nothing|Pound Work Feed Nothing]]>><</link>>
+	<br>
+<<else>>
+	They devour the food in moments, and seem to be grateful to you personally for the feast.<<gpound_status>><<pound_status 1>>
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Work Feed Soothe
+<<effects>>
+
+<<if $tendingSuccess>>
+	You crouch beside the <<beasttype 1>>, and stroke <<bhis 1>> ear. "Will you let your friend have some?" you ask. "For me?"
+	<br><br>
+	<<if $monster is 1>>
+		<span class="green">The <<beasttype 1>> is enthralled by your touch,</span> and clears a space for the <<beasttype 0>>. <<bHe 1>> goes as far as to guard it from other <<pound_text>>, allowing the <<beasttype 0>> to eat <<bhis 0>> fill. <<bHe 0>> smiles at you with gratitude.
+	<<else>>
+		<span class="green">The <<beasttype 1>> is soothed by your touch,</span> and allows the <<beasttype 0>> to feed beside <<bhim 1>>. <<bHe 0>> eats <<bhis 0>> fill, and collapses in satisfaction.
+	<</if>>
+	<<gpound_status>><<pound_status 1>>
+	<br><br>
+<<else>>
+	You crouch beside the <<beasttype 1>>, <span class="red">but <<bhe 1>> wards you away with a warning snap.</span> The other staff laugh.<<lpound_status>><<pound_status -1>><<if $tending lt 400>><<tending 1>><<gtending>><</if>>
+	<br><br>
+<</if>>
+
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Work Feed Comfort
+<<effects>>
+
+You crouch beside the <<beasttype 0>>, and stroke <<bhis 0>> fur. <<bHe 0>> exhales, but doesn't move until the other <<pound_text>> are done. <<bHe 0>> licks the bowls clean.
+<br><br>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Work Feed Nothing
+<<effects>>
+
+You watch the feeding frenzy with the other staff. The <<beasttype 0>> licks the bowls clean.
+<br><br>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Work Brush
+<<effects>>
+
+<<beastNEWinit 1 dog>>
+Brush in hand, you enter one of the cages.
+
+<<if random(1, 2) is 2 and ($bestialitydisable is "f" or $monster is 1)>>
+	The <<beasttype>> inside is friendly. Perhaps too friendly.
+	<<if $monster is 1>>
+		<<bHe>> wraps <<bhis>> arms around your waist, and humps your thigh.
+	<<else>>
+		<<bHe>> rears on <<bhis>> hind legs, and humps your thigh.
+	<</if>>
+	<br><br>
+
+	<<link [[Tell off|Pound Work Brush Tell]]>><</link>><<tendingdifficulty 1 600>>
+	<br>
+	<<if $deviancy gte 15>>
+		<<link [[Allow|Pound Work Brush Allow]]>><</link>><<deviant2>>
+		<br>
+	<</if>>
+<<else>>
+	The <<beasttype>> inside greets you with a low growl.<<gstress>><<stress 6>>
+	<br><br>
+
+	<<link [[Soothe|Pound Work Brush Soothe]]>><</link>><<tendingdifficulty 1 600>>
+	<br>
+	<<link [[Find a gentler creature to brush|Pound Work Brush Find]]>><</link>>
+	<br>
+	<<if $bestialitydisable is "f" or $monster is 1>>
+		<<link [[Act like a dog to put it at ease|Pound Work Brush Act]]>><</link>><<deviant1>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Pound Work Brush Tell
+<<effects>>
+
+<<if $tendingSuccess>>
+	"Clear off," you say. "Shoo!"
+	<br><br>
+	<<if $monster is 1>>
+		"Yes!" the <<beasttype>> responds, leaving your leg alone. "Brush me now?"
+	<<else>>
+		The <<beasttype>> responds to your tone, and leaves your leg alone.
+	<</if>>
+	<<gpound_status>><<pound_status 1>>
+	<br><br>
+
+	<<bHe>> lies down, and you brush <<bhim>>. <<bHis>> leg is kicking the air by the end.
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	"St-stop," you manage. It's hard to maintain your composure, <span class="red">and the <<beasttype>> ignores you.</span>
+	<br><br>
+	You try to push <<bhim 0>> off. You're still struggling when the <<beasttype>> reaches orgasm, and a wet warmth coats your leg.<<garousal>><<arousal 600>>
+	<br><br>
+	<<if $NPCList[0].penis isnot "none">>
+		<<set $player.bodyliquid.thigh.semen += 1>>
+	<<else>>
+		<<set $player.bodyliquid.thigh.goo += 1>>
+	<</if>>
+	<<if $arousal gte 10000>>
+		It's too much. <<orgasm>>
+
+		You fall to the ground. Either the <<beasttype>> isn't satisfied, or <<bhes>> driven into a new frenzy by this display. <<bHe>> mounts you before the spasms subside.
+		<br><br>
+		<<link [[Next|Pound Work Brush Rape]]>><<set $molestationstart to 1>><</link>>
+		<br>
+	<<else>>
+		<<bHes>> calm while you brush <<bhim>>, at least.
+		<br><br>
+
+		You make <<moneyGain $pound.money>>.<<pass 60>>
+		<br><br>
+
+		<<link [[Next|Pound]]>><<endevent>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Pound Work Brush Allow
+<<effects>>
+
+You endure the <<beasttype>>'s humping, until <<bhe>> reaches orgasm.
+<<if $NPCList[0].penis isnot "none">>
+	A warm fluid sprays from <<bhis>> genitals, coating your thigh.
+	<<set $player.bodyliquid.thigh.semen += 1>>
+<<else>>
+	Sticky fluid drips from <<bhis>> genitals, clinging to your thigh.
+	<<set $player.bodyliquid.thigh.goo += 1>>
+<</if>>
+<<deviancy2>>
+<<if $arousal gte 10000>>
+	It's too much. <<orgasm>>
+
+	You fall to the ground. Either the <<beasttype>> isn't satisfied, or <<bhes>> driven into a new frenzy by this display. <<bHe>> mounts you before the spasms subside.
+	<br><br>
+	<<link [[Next|Pound Work Brush Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<<else>>
+	Satisfied, the <<beasttype>> rolls onto <<bhis>> back, and allows you to brush. <<bHis>> leg is kicking the air by the end.
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Work Brush Soothe
+<<effects>>
+
+<<if $tendingSuccess>>
+	With slow but confident movements, you crouch beside the <<beasttype>> and stroke behind <<bhis>> ear. "There there," you say. "I'm not going to hurt you. I promise."
+	<br><br>
+	The <<beasttype>> huffs, <span class="green">but lets you brush <<bhim>>.</span> <<bHes>> lying on <<bhis>> back with one leg kicking the air by end.<<gpound_status>><<lstress>><<pound_status 1>><<stress -6>>
+	<br><br>
+<<else>>
+	You make soothing noises as you move closer, but hesitate every time the <<beasttype>> huffs. You get close enough to brush, <span class="red">but <<bhe>> snaps at your hand.</span> You find a gentler creature to brush instead.<<lpound_status>><<pound_status -1>><<if $tending lt 600>><<tending 1>><<gtending>><</if>>
+	<br><br>
+<</if>>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+:: Pound Work Brush Find
+<<effects>>
+
+<<endevent>>
+<<beastNEWinit 1 dog>>
+You find a gentler creature to brush instead. Mostly because <<bhe>>'s asleep.
+<br><br>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+
+:: Pound Work Brush Act
+<<effects>>
+
+You glance around to ensure you're not being watched, then drop to all fours. "Ruff," you say, quiet. The <<beasttype>> cocks <<bhis>> head as <<bhe>> regards you. You crawl closer, and remain on the ground as you brush <<bhim>>.
+<<deviancy1>>
+
+<<if $arousal gte 10000>>
+	Acting in such a way pushes you over the edge. <<orgasm>>
+
+	Emboldened, the <<beasttype>> mounts you from behind while you still shudder.
+	<br><br>
+
+	<<link [[Next|Pound Work Brush Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<<else>>
+	<<bHe>> lies on <<bhis>> back by the time you're done, one leg kicking the air.
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+:: Pound Work Brush Rape
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+
+	<<beastCombatInit>>
+	<<set $NPCList[0].stance to "top">>
+	<<set $position to "doggy">>
+	<<enable_rescue>>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br><br>
+<<beast $enemyno>>
+<br><br>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Work Brush Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Work Brush Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $alarm is 1 and $rescue is 1>>
+	<span id="next"><<link [[Next|Pound Work Brush Rape Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Work Brush Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Work Brush Rape Finish
+<<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+
+<<beastejaculation knot>>
+	<<if _knotted>>
+		<<pass 5>>
+		The <<beasttype>> tries to wriggle <<bhis>> <<print $NPCList[0].penisdesc>> free, but to no avail. <<bHe>> instead returns to the corner of <<bhis>> cage, dragging you along on all fours behind <<bhim>>. <<bHe>> lies down to sleep, leaving you to lie on the ground.<<lllpound_status>><<pound_status -10>>
+		<br><br>
+		<<tearful>> you try to work yourself free.
+		<br><br>
+			It takes a while. So long, in fact, that you're still trying when you hear footsteps approach. <span class="red">Someone is coming.</span>
+			<br><br>
+			<<clotheson>>
+			<<endcombat>>
+			<br><br>
+			<<generate1>><<person1>><<generate2>><<generate3>><<generate4>>
+			You grab hold of the bars of the cage for leverage, but it's no use. A <<person>> walks into view, and stops at the sight of you. "Everyone!" <<he>> shouts. "Come get a look at this!"<<ggtrauma>><<ggstress>><<famebestiality 4>>
+			<br><br>
+
+			<<link [[Next|Pound Assault Caught]]>><<set $phase to 1>><</link>>
+			<br>
+
+	<<else>>
+		The <<beasttype>> returns to the corner of <<bhis>> cage, and lies down to sleep. <<tearful>> you close the door.
+		<br><br>
+		<<clotheson>>
+		<<endcombat>>
+
+		<<if $exposed gte 1>>
+			<<covered>> <span class="pink">You'll be in danger if you're caught like this.</span>
+			<br><br>
+
+			<<link [[Next|Pound Exposed]]>><</link>>
+			<br>
+		<<else>>
+			You make <<moneyGain $pound.money>>.<<pass 60>>
+			<br><br>
+			<<link [[Next|Pound]]>><</link>>
+			<br>
+		<</if>>
+	<</if>>
+
+
+<<elseif $enemyhealth lte 0>>
+
+	You shove the <<beasttype>> away from you. <<bHe>> whimpers, and hides in the corner.
+	<br><br>
+
+	<<tearful>> you leave the cage.
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+
+	<<if $exposed gte 1>>
+		<<covered>> <span class="pink">You'll be in danger if you're caught like this.</span>
+		<br><br>
+
+		<<link [[Next|Pound Exposed]]>><</link>>
+		<br>
+	<<else>>
+		You make <<moneyGain $pound.money>>.<<pass 60>>
+		<br><br>
+		<<link [[Next|Pound]]>><</link>>
+		<br>
+	<</if>>
+
+<<else>><<set $rescued += 1>>
+
+		You hear footsteps approach. <span class="red">Someone is coming,</span> alerted by your cry.
+		<br><br>
+		<<clotheson>>
+		<<endcombat>>
+		<br><br>
+		<<generate1>><<person1>><<generate2>><<generate3>><<generate4>>
+		A <<person>> walks into view, and stops at the sight of you. "Everyone!" <<he>> shouts. "Come get a look at this!"<<ggtrauma>><<ggstress>><<famebestiality 4>>
+		<br><br>
+
+		<<link [[Next|Pound Assault Caught]]>><<set $phase to 0>><</link>>
+		<br>
+
+<</if>>
+
+
+:: Pound Exposed
+<<effects>>
+
+You walk down the space between cages, ignoring the watching <<pound_text>>. You arrive at two doors, a walk-in cupboard, and another leading deeper into the building. You see a stack of freshly-cleaned towels on a trolley through the second, but you also hear voices.
+<br><br>
+
+A <<generateSweaterWearer 1>><<person1>><<person>> leans on the wall outside the front corridor. Maybe it's safer to just ask for help.
+<br><br>
+
+<<link [[Search the cupboard|Pound Exposed Search]]>><<endevent>><</link>><<difficulty 50>>
+<br>
+<<set $skulduggerydifficulty to 700>>
+<<link [[Sneak to the trolley|Pound Exposed Sneak]]>><<endevent>><</link>><<skulduggerydifficulty>>
+<br>
+<<link [[Ask for help|Pound Exposed Help]]>><</link>>
+<br>
+
+
+:: Pound Exposed Search
+<<effects>>
+
+The cupboard door squeaks as it opens.
+<<if random(1, 2) is 2>>
+	You feel around the dark interior, <span class="green">and find a stack of towels.</span> You <<if $upperwet gte 1>>dry<<else>>cover<</if>> yourself before leaving the cupboard. <<dry_towel>>
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><</link>>
+	<br>
+<<else>>
+	You feel around the dark interior, <span class="red">knocking something hard off an unseen shelf.</span> It crashes against another object, causing a noisy cascade.
+	<br><br>
+	<<generate1>><<generate2>><<person1>>
+	You escape the cupboard, only to run into the arms of a <<person>>. "What we got here then?"
+	<br>
+	"Running around dressed like that," says the <<person2>><<person>> flanking <<person1>><<him>>. <<He>> shakes <<his>> head.
+	<br><br>
+	<<link [[Next|Pound Exposed Caught]]>><</link>>
+	<br>
+<</if>>
+
+:: Pound Exposed Sneak
+<<effects>>
+
+<<generate1>><<generate2>><<person1>>
+You drop to your knees and peek around the door. A <<person>> and <<person2>><<person>> stand with their backs to you, chatting.
+<br><br>
+
+It's only a short distance, but your heart thunders regardless.
+<<skulduggerycheck>>
+<<if $skulduggerysuccess is 1>>
+
+	You grab the towels, and crawl the way you came. You <<if $upperwet gte 1>>dry<<else>>cover<</if>> yourself in a hurry.<<dry_towel>>
+	<br><br>
+
+	<<if $skulduggery lte ($skulduggerydifficulty + 100)>>
+		<<skulduggeryskilluse>>
+	<<else>>
+		<span class="blue">That was too easy. You didn't learn anything.</span>
+		<br><br>
+	<</if>>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+
+<<else>>
+
+	You try to grab the towels, but your shaking hand collides with the trolley instead, knocking it further from reach.
+	<br><br>
+
+	You catch up to it again, just as the <<person1>><<person>> turns and spots you. "What we got here then?" <<he>> says, alerting <<his>> friend.
+	<br>
+	"Crawling around dressed like that," says the <<person2>><<person>>. <<He>> shakes <<his>> head.
+	<br><br>
+
+	<<if $skulduggery lte ($skulduggerydifficulty + 100)>>
+		<<skulduggeryskilluse>>
+	<<else>>
+		<span class="blue">That was too easy. You didn't learn anything.</span>
+		<br><br>
+	<</if>>
+
+	<<link [[Next|Pound Exposed Caught]]>><</link>>
+	<br>
+
+<</if>>
+
+
+
+:: Pound Exposed Caught
+<<effects>>
+<<fameexhibitionism 2>>
+The <<person1>><<person>> circles around you, and grasps your arms from behind.
+
+<<if $leftarm is "bound" and $rightarm is "bound">>
+
+<<else>>
+	<<He>> holds them either side of your head, preventing you from covering.
+<</if>>
+<br><br>
+
+The <<person2>><<person>> leers at you from the front. "We'll let you cover," <<he>> says. "Once we've had our fun."
+<br><br>
+<<link [[Knee in the groin|Pound Exposed Knee]]>><</link>><<physiquedifficulty 1 16000>>
+<br>
+<<link [[Let it happen|Pound Exposed Rape]]>><<set $molestationstart to 1>><</link>>
+<br>
+
+
+
+:: Pound Exposed Knee
+<<effects>>
+
+<<if $physiqueSuccess>>
+	You raise your knee into the <<person2>><<persons>> groin, <span class="green">and hear a sickening crunch.</span> <<His>> eyes widen, and <<he>> drops to the floor, clutching <<his>> crotch.
+	<br><br>
+	The <<person1>><<person>>, meanwhile, breaks into a fit of laughter. You seize the opportunity, and snatch some towels before making your escape. You <<if $upperwet gte 1>>dry<<else>>cover<</if>> yourself in a hurry.<<dry_towel>>
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	You raise your knee into the <<person2>><<persons>> crotch, <span class="red">but <<he>> doesn't react.</span> "Bitch!" <<he>> says, before delivering a punch to your gut. "We'll do this the hard way then."<<gpain>><<gstress>><<pain 4>><<stress 6>>
+	<br><br>
+
+	<<link [[Next|Pound Exposed Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<</if>>
+
+:: Pound Exposed Rape
+
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>>
+
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+
+<<if $alarm is 1>>
+	<<set $alarm to 0>>
+	Someone arrives to investigate your cry, <span class="pink">but decide to turn a blind eye when they see what's happening.</span>
+	<br><br>
+<</if>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Exposed Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Exposed Rape Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Exposed Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Exposed Rape Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	The <<person>> drops a handful of towels on you, and they saunter away.
+	<br><br>
+	<<tearful>> you rise to your feet.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<dry_towel>>
+	You make <<moneyGain $pound.money>><<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><</link>>
+	<br>
+
+<<elseif $enemyhealth lte 0>>
+	You shove the <<person1>><<person>> into the trolley. <<He>> grasps the <<person2>><<person>>'s arm as <<he>> falls, and they both tumble to the ground, with towels landing atop.
+	<br><br>
+	<<tearful>> you snatch some towels. You make your escape.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<dry_towel>>
+	You make <<moneyGain $pound.money>><<pass 60>>
+	<br><br>
+	<<link [[Next|Pound]]>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Exposed Help
+<<effects>>
+
+You keep your body hidden around the corner.
+<<if $submissive gte 1150>>
+	"E-excuse me?" you say. "Can you help me?"
+<<elseif $submissive lte 850>>
+	"Hey," you say. "Could you give me a hand?"
+<<else>>
+	"Hello," you say. "Could you help me?"
+<</if>>
+<br>
+The <<person>> looks over and frowns. "What you hiding there?" <<he>> asks.
+<br>
+"Could you give me something to cover with?" you continue.
+<br>
+<<His>> smile becomes a grin. "Sure. Just let me see you first. So I know your size."
+<br><br>
+
+<<link [[Step into view|Pound Exposed Step]]>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>>
+<br>
+<<link [[Refuse|Pound Exposed Refuse]]>><</link>>
+<br>
+
+:: Pound Exposed Step
+<<effects>>
+<<fameexhibitionism 1>>
+<<covered>>
+You step from your hiding place. The <<person>>'s eyes flicker over your body. "Give me a twirl."
+<br><br>
+<<exposure>>
+You turn on the spot as instructed. The <<person>> seems satisfied. <<He>> tugs <<his>> sweater over <<his>> head, unconcerned about <<his>>
+
+<<if $pronoun is "f">>
+	exposed bra.<<upperwear 29>>
+<<else>>
+	exposed chest.<<upperwear 24>>
+<</if>>
+<<He>> holds it out to you. It's a little big, which is probably for the best.
+<br><br>
+
+The <<person>> leaves you to dress, and enters the pound proper. Probably on the hunt for a replacement.
+<br><br>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+:: Pound Exposed Refuse
+<<effects>>
+<<fameexhibitionism 2>>
+"Suit yourself," the <<person>> says. "Hey guys! Look what I've found!"
+<br><br>
+<<endevent>><<generate1>><<generate2>><<person1>>
+You turn to find somewhere to hide, only to run into a <<person>>'s arms. "What we got here then?"
+<br>
+"Running around dressed like that," says a <<person2>><<person>> flanking <<person1>><<him>>. <<He>> shakes <<his>> head.
+<br><br>
+<<link [[Next|Pound Exposed Caught]]>><</link>>
+<br>
+
+
+:: Pound Work Wash
+<<effects>>
+
+<<beastNEWinit 1 dog>>
+<<if random(1, 2) is 2 and ($bestialitydisable is "f" or $monster is 1)>>
+	You enter one of the cages, bucket in hand. The <<beasttype>> wihin lets you approach. You wash <<bhim>> with soapy water.
+	<br><br>
+
+	<<bHe>> shakes <<bhis>> fur dry before you're done, almost getting you wet.
+	<br><br>
+
+	<<link [[Keep washing|Pound Work Wash Wet]]>><</link>><<dancedifficulty 1 400>>
+	<br>
+	<<link [[Scold|Pound Work Wash Scold]]>><</link>><<tendingdifficulty 1 800>>
+	<br>
+<<else>>
+	You enter one of the cages, bucket in hand. The <<beasttype>> within recoils into the corner.
+	<<if $monster is 1>>
+		"No," <<bhe>> says. "Hate wet."
+	<<else>>
+		<<bHe>> looks cautiously at the water.
+	<</if>>
+	<br><br>
+
+	<<link [[Soothe|Pound Work Wash Soothe]]>><</link>><<tendingdifficulty 1 800>>
+	<br>
+	<<if $deviancy gte 35 and ($bestialitydisable is "f" or $monster is 1)>>
+		<<link [[Use your hand|Pound Work Wash Hand]]>><</link>><<deviant3>>
+	<</if>>
+<</if>>
+
+
+:: Pound Work Wash Wet
+<<effects>>
+
+<<if $danceSuccess>>
+	You continue washing the <<beasttype>>, backing away when you suspect <<bhe>>'s gonna splash you. <span class="green">You manage to stay dry.</span>
+	<br><br>
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+<<else>>
+	You continue washing the <<beasttype>>. <span class="red">Without warning</span>, <<bhe>> shakes <<bhis>> fur, <span class="red">drenching you in water.</span><<gstress>><<stress 6>>
+	<br><br>
+	<<wet_all>>
+	<br><br>
+	<<exposure>>
+	<<covered>> The <<beasttype>> cocks <<bhis>> head innocently.
+	<br><br>
+
+	<<if $exposed gte 1>>
+		<<link [[Next|Pound Exposed]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		You make <<moneyGain $pound.money>>.<<pass 60>>
+		<br><br>
+
+		<<link [[Next|Pound]]>><<endevent>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Pound Work Wash Scold
+<<effects>>
+
+<<if $tendingSuccess>>
+	You hold the <<beasttype>>'s collar, and give <<bhim>> a word of warning. <<bHe 0>> seems to understand, <span class="green">and waits until you're finished before drying <<bhimself>> again.</span><<gpound_status>><<pound_status 1>>
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound Work]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	You hold the <<beasttype>>'s collar, and adopt a firm tone. You think it's working, until <<bhe>> shakes <<bhis>> fur with violent force, <span class="red">drenching you in water.</span>
+	<<wet_all>>
+	<br><br>
+	<<exposure>>
+	<<covered>> The <<beasttype>> cocks <<bhis>> head innocently.
+	<br><br>
+
+	<<if $exposed gte 1>>
+		<<link [[Next|Pound Exposed]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		You make <<moneyGain $pound.money>>.<<pass 60>>
+		<br><br>
+
+		<<link [[Next|Pound]]>><<endevent>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+
+:: Pound Work Wash Soothe
+<<effects>>
+
+<<if $tendingSuccess>>
+	"It's okay," you croon as you step closer. "The water is warm, and you'll feel better after. I promise."
+	<br><br>
+	<<if $monster is 1>>
+		<span class="green">"O-okay," <<bhe>> says, <<bhis>> nerves somewhat soothed.</span>
+	<<else>>
+		<span class="green">Your tone soothes <<bhis>> nerves,</span> and <<bhe>> allows you to approach.
+	<</if>>
+	<<gpound_status>><<pound_status 1>>
+	<br><br>
+
+	You wash <<bhim>> from head to foot. <<bHe>> doesn't like the water at first, but soon gets used to it. You take the bucket and leave the cage, leaving <<bhim>> to shake off the water.
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.<<pass 60>>
+	<br><br>
+
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	"Don't be scared," you say. You hold the sponge out to show <<bhim>> there's nothing to be afraid of, <span class="red">but <<bhe>> only recoils further.</span><<gtending>><<tending 1>>
+	<br><br>
+
+	<<bHe>> relents eventually, but whines the whole time. When done, <<bhe>> shakes <<bhis>> head and fur with force enough to splash the <<pound_text>> in neighbouring cages. <span class="pink">You're drenched.</span>
+	<<wet_all>>
+	<br><br>
+	<<exposure>>
+	<<covered>> The <<beasttype>> cocks <<bhis>> head innocently.
+	<br><br>
+
+	<<if $exposed gte 1>>
+		<<link [[Next|Pound Exposed]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		You make <<moneyGain $pound.money>>.<<pass 60>>
+		<br><br>
+
+		<<link [[Next|Pound]]>><<endevent>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Pound Work Wash Hand
+<<effects>>
+
+You put the bucket aside, and crouch beside the <<beasttype>>. "If you promise to be a good <<if $NPCList[0].pronoun is "m">>boy<<else>>girl<</if>>," you say. "I'll give you a treat."
+<<if $NPCList[0].penis isnot "none">>
+	You reach for <<bhis>> <<print $NPCList[0].penisdesc>>, and stroke it to attention.
+<<else>>
+	You reach for <<bhis>> pussy, and run a finger over it.
+<</if>>
+<<deviancy3>>
+
+<<bHe>> allows you to rub with increasing speed.
+<<if $NPCList[0].penis isnot "none">>
+	<<bHis>> body shudders, and <<bhe>> ejaculates on the floor.
+<<else>>
+	<<bHis>> body shudders in orgasm.
+<</if>>
+<br><br>
+
+<<bHe>>'s unconcerned as you approach <<bhim>> with the bucket. You wash <<bhim>> from head to foot. <<bHe>> doesn't like the water at first, but soon gets used to it. You take the bucket and leave the cage, leaving <<bhim>> to shake off the water.
+<br><br>
+
+You make <<moneyGain $pound.money>>.<<pass 60>>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+:: Pound Work Walk
+<<effects>>
+
+<<beastNEWinit 5 dog>>
+
+You attach leashes to five <<beastsplural>>. They're eager for the exercise, and don't resist. Tails wagging, they pull you through the front yard and onto the street beyond.
+<br><br>
+<<link [[Wrestle Control|Pound Work Walk Wrestle]]>><</link>><<physiquedifficulty 1 19000>>
+<br>
+<<set $rng to random(1, 4)>>
+<<switch $rng>>
+	<<case 1>>
+		<<link [[Let them choose the destination|Pound Work Walk Beach]]>><</link>>
+		<br>
+	<<case 2>>
+		<<link [[Let them choose the destination|Pound Work Walk Forest]]>><</link>>
+		<br>
+	<<case 3>>
+		<<link [[Let them choose the destination|Pound Work Walk Hills]]>><</link>>
+		<br>
+	<<default>>
+		<<link [[Let them choose the destination|Pound Work Walk Road]]>><</link>>
+		<br>
+<</switch>>
+
+
+:: Pound Work Walk Wrestle
+<<effects>>
+
+<<if $physiqueSuccess>>
+	The <<beastsplural>> tug and pull in multiple directions, but an iron grip and stern word are <span class="green">able to get them under control.</span> Where shall you take them?
+	<br><br>
+	<<set $phase to 1>>
+	<<link [[The beach|Pound Work Walk Beach]]>><</link>>
+	<br>
+	<<link [[The forest|Pound Work Walk Forest]]>><</link>>
+	<br>
+	<<link [[The hills|Pound Work Walk Hills]]>><</link>>
+	<br>
+	<<link [[Road leaving town|Pound Work Walk Road]]>><</link>>
+	<br>
+<<else>>
+	The <<beastsplural>> tug and pull in multiple directions. You try to get them under control, but your tugs go ignored, your words unheeded. <span class="red">They pull you behind them.</span>
+	<br><br>
+	<<set $rng to random(1, 4)>>
+	<<switch $rng>>
+		<<case 1>>
+			<<link [[Next|Pound Work Walk Beach]]>><</link>>
+			<br>
+		<<case 2>>
+			<<link [[Next|Pound Work Walk Forest]]>><</link>>
+			<br>
+		<<case 3>>
+			<<link [[Next|Pound Work Walk Hills]]>><</link>>
+			<br>
+		<<default>>
+			<<link [[Next|Pound Work Walk Road]]>><</link>>
+			<br>
+	<</switch>>
+<</if>>
+
+
+:: Pound Work Walk Beach
+<<set $outside to 1>><<location "beach">><<effects>>
+
+<<if $phase is 1>>
+	You lead the
+<<else>>
+	You are led by the
+<</if>>
+<<beastsplural>> down to the beach. It's safe to let them off their leashes here.
+
+<<if $weather is "rain">>
+	They bound and frolic, unbothered by the rain.
+<<elseif $weather is "clear">>
+	They bound and frolic in the sun.
+<<elseif $weather is "snow">>
+	They bound and frolic on the sand.
+<<else>>
+	They bound and frolic on the sand.
+<</if>>
+<br><br>
+
+<<if random(1, 2) is 2>>
+	<<generate6>><<person6>>A <<person>> approaches you, arms folded. "Cute pups," <<he>> says. "They belong to you?"
+	<br><br>
+	<<link [[Flirt|Pound Work Walk Beach Flirt]]>><</link>><<promiscuous1>>
+	<br>
+	<<link [[Be polite|Pound Work Walk Beach Polite]]>><</link>>
+	<br>
+	<<link [[Be dismissive|Pound Work Walk Beach Dismiss]]>><</link>>
+	<br>
+<<else>>
+	<<link [[Run with them|Pound Work Walk Beach Run]]>><<athletics 6>><<tiredness 6>><</link>><<gtiredness>><<gathletics>>
+	<br>
+	<<link [[Watch|Pound Work Walk Beach Watch]]>><<stress -6>><</link>><<lstress>>
+	<br>
+<</if>>
+
+:: Pound Work Walk Beach Flirt
+<<effects>>
+
+"They are," you say. "But they're not as cute as you."
+<<promiscuity1>>
+
+<<if random(1, 100) is 100>>
+	<<He>> chuckles and calls you a flirtatious vagabond, but doesn't seem upset.
+<<elseif random(1, 2) is 2>>
+	<<He>> smiles and thanks you, seeming upbeat for the rest of the conversation.
+<<else>>
+	You catch <<him>> off guard, and <<he>> spends the rest of the conversation awkwardly shuffling between feet.
+<</if>>
+<br><br>
+
+The <<beastsplural>> run until they're worn down enough to accept the leashes back on their collars. You lead them back to the pound.
+<br><br>
+
+<<pound_walk_end>>
+
+
+:: Pound Work Walk Beach Polite
+<<effects>>
+
+<<if $submissive gte 1150>>
+	"N-no," you say. "I just work at the pound."
+<<elseif $submissive lte 850>>
+	"No," you say. "This is my job."
+<<else>>
+	"No," you say. "I work at the pound."
+<</if>>
+<br><br>
+
+The <<person>> nods. "I wanted to see the pups once, maybe adopt one, but they stopped me at the gate. I swear I've seen others enter. Maybe they didn't like my face."
+<br><br>
+
+The <<beastsplural>> run until they're worn down enough to accept the leashes back on their collars. You lead them back to the pound.
+<br><br>
+
+<<pound_walk_end>>
+
+:: Pound Work Walk Beach Dismiss
+<<effects>>
+
+You turn away from the <<person>>. <<He>> takes the hint and leaves you be.
+<br><br>
+
+The <<beastsplural>> run until they're worn down enough to accept the leashes back on their collars. You lead them back to the pound.
+<br><br>
+
+<<pound_walk_end>>
+
+
+:: Pound Work Walk Beach Run
+<<effects>>
+
+You run with <<beastsplural>>, keeping up with them as they cross the sand. The wind is invigorating. <<physique 6>>
+<br><br>
+
+The <<beastsplural>> run until they're worn down enough to accept the leashes back on their collars. You lead them back to the pound.
+<br><br>
+
+<<pound_walk_end>>
+
+
+:: Pound Work Walk Beach Watch
+<<effects>>
+
+You watch as the <<beastsplural>> run and play on the sand, shouting if they get too bitey with one another. They soon tire out enough to accept the leashes back on their collars. You lead them back to the pound.
+<br><br>
+
+<<pound_walk_end>>
+
+
+
+:: Pound Work Walk Forest
+<<set $outside to 1>><<location "forest">><<effects>>
+
+<<if $phase is 1>>
+	You lead the
+<<else>>
+	You are led by the
+<</if>>
+<<beastsplural>> through the town's streets. Some pedestrians give your pack a wide berth, but others stop to pet.
+<br><br>
+
+You arrive at the forest. You keep the <<beastsplural>> on their leashes, as getting lost in here could be dangerous, even this close to town.
+<br><br>
+
+<<if random(1, 2) and ($bestialitydisable is "f" or $monster is 1)>>
+	One <<beasttype 0>> sniffs a strange pink flower.
+	<<if $tending gte 600>>
+		<span class="green">You recognise it,</span> <span class="purple">and know it's dangerous.</span>
+		<br><br>
+
+		<<link [[Call the pooch away|Pound Work Walk Forest Call]]>><</link>><<tendingdifficulty 600 1000>>
+		<br>
+		<<link [[Allow|Pound Work Walk Forest Allow]]>><</link>>
+		<br>
+	<<else>>
+		<span class="red">You don't recognise it.</span>
+		<br><br>
+
+		<<link [[Next|Pound Work Walk Forest Allow]]>><</link>>
+		<br>
+	<</if>>
+<<else>>
+	 You stick to a trail that snakes along the forest's edge. They frequently stop to sniff bushes and the bottom of trees. You keep them away from any mushrooms or strange-looking flowers. They are suitably tired by the time the road emerges back on the street.
+	 <br><br>
+
+	 You lead them back to the pound, and return them to their cages.
+	 <br><br>
+
+	 You make <<moneyGain $pound.money>>.<<pass 60>>
+	 <<link [[Next|Pound]]>><<endevent>><</link>>
+	 <br>
+<</if>>
+
+:: Pound Work Walk Forest Call
+<<effects>>
+
+<<if $tendingSuccess>>
+	"Here <<if $NPCList[0].pronoun is "m">>boy<<else>>girl<</if>>," you say. The <<beasttype 0>> responds, <span class="green">and leaves the flower be.</span>
+	<br><br>
+
+	Once suitably exhausted, you lead the <<beastsplural>> back through town, to the pound.
+	<br><br>
+
+	<<pound_walk_end>>
+<<else>>
+	"H-here," you stammer, <span class="red">but the <<beasttype 0>> ignores you.</span> <<bHe 0>> buries <<bhis 0>> nose in the flower, <span class="lewd">spreading pollen all around.</span> It smells sweet, and fills you with a strange warmth.<<ggarousal>><<arousal 1200>><<drugs 120>>
+	<br><br>
+
+	The warmth builds, and your knees tremble. The <<beastsplural>> are also affected. They sniff and lick you. You're filled with a terrible urge to drop to the grass and let them do as they will.
+	<br><br>
+
+	<<link [[Resist|Pound Work Walk Forest Resist]]>><</link>><<willpowerdifficulty 1 1000>>
+	<br>
+	<<link [[Obey|Pound Work Walk Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<</if>>
+
+:: Pound Work Walk Forest Resist
+<<effects>>
+
+<<if $willpowerSuccess>>
+	You lean against a tree and focus on your breathing, waiting for the yearning to pass. It takes all your will, <span class="green">but you manage to last until the feelings subside.</span>
+	<br><br>
+
+	You make sure the <<beastsplural>> aren't fooling around with each other, then lead them back to town, and the pound.
+	<br><br>
+
+	<<pound_walk_end>>
+<<else>>
+	You pull the <<beastsplural>> away from the flower, <span class="red">but only make a few steps before collapsing on the grass,</span> and writhing in desperate longing. The <<beastsplural>> surround you, as overcome as you.<<ggwillpower>><<willpower 12>>
+	<br><br>
+	<<link [[Next|Pound Work Walk Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
+<</if>>
+
+:: Pound Work Walk Rape
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+
+	<<beastCombatInit>>
+	<<beastTrainGenerate>>
+<</if>>
+<<effects>>
+<<effectsman>>
+<br>
+<<beast $enemyno>>
+<br><br>
+<<stateman>>
+<br><br>
+<<actionsman>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Work Walk Rape End]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Work Walk Rape End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Work Walk Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Work Walk Rape End
+<<effects>>
+<<if $enemyhealth lte 0>>
+	<<beastwound>>
+	<<if $combatTrain.length gt 0>>
+		The <<beasttype>> recoils in pain and fear, but another is eager for a go.<<gpound_status>><<pound_status 1>>
+
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Rape]]>><</link>>
+	<<else>>
+		The <<beasttype>> recoils in pain and fear.
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Rape End]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+	<<if $combatTrain.length gt 0>>
+		Satisfied, the <<beasttype>> moves and another takes its turn.<<lpound_status>><<pound_status -1>>
+
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Rape]]>><</link>>
+	<<else>>
+		Satisfied, the <<beasttype>> moves away from you.
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Rape End]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<elseif $finish is 1>>
+	The yearning subsides, and you rise to your feet. You feel exhausted, but so do the <<beastsplural>>, and they don't resist as you pull them towards town.
+	<br><br>
+	<<clotheson>>
+	<<pass 60>>
+	<<exposure>>
+	<<if $exposed gte 1>>
+		You see buildings through the trees ahead. <<tearful>> you look down at your body. <<covered>>
+		<br><br>
+
+		<<link [[Ask for help|Pound Work Walk Ask]]>><</link>><<difficulty 50>>
+		<br>
+		<<if $deviancy gte 35>>
+			<<link [[Hide amongst the pack|Pound Work Walk Hide]]>><</link>><<deviant3>>
+			<br>
+		<</if>>
+		<<if $exposed gte 2 and $exhibitionism gte 75>>
+			<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist5>>
+			<br>
+		<<elseif $exposed gte 1 and $exhibitionism gte 55>>
+			<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist4>>
+			<br>
+		<</if>>
+	<<else>>
+		<<endcombat>>
+		<<set $phase to 2>>
+		<<pound_walk_end>>
+	<</if>>
+<</if>>
+
+
+:: Pound Work Walk Forest Allow
+<<effects>>
+
+The <<beasttype 0>> buries <<bhis 0>> nose in the flower, <span class="lewd">spreading pollen all around.</span> It smells sweet, and fills you with a strange warmth.<<ggarousal>><<arousal 1200>><<drugs 120>>
+<br><br>
+
+The warmth builds, and your knees tremble. The <<beastsplural>> are also affected, and leer at you. You're filled with a terrible urge to drop to the grass and let them do as they will.
+<br><br>
+
+<<link [[Resist|Pound Work Walk Forest Resist]]>><</link>><<willpowerdifficulty 1 1000>>
+<br>
+<<link [[Obey|Pound Work Walk Rape]]>><<set $molestationstart to 1>><</link>>
+<br>
+
+:: Pound Work Walk Ask
+<<effects>>
+
+You linger in a copse of trees near the street. The <<beastsplural>> don't understand what's got you so anxious.
+<br><br>
+
+A <<generate6>><<person6>><<person>> walks by.
+<<if $submissive gte 1150>>
+	"E-excuse me," you call out. "I've had an accident. Could you give me something to cover with?"
+<<elseif $submissive lte 850>>
+	"Had an accident in the forest," you call out. "Could you give me something to cover with?"
+<<else>>
+	"Hello," you call out. "I've had an accident. Could you give me something to cover with?"
+<</if>>
+<br><br>
+The <<person>> stops and peers at you. The trees conceal you well enough,
+<<upperwear 39>>
+<<if random(1, 2) is 2>>
+	but <<he>> leers at what <<he>> can see. "Sure," <<he>> says. "I live nearby. Give me a few minutes, and I'll bring you something."
+	<br><br>
+
+	<<He>> returns as promised, holding a set of overalls. "All I have that'll fit you," <<he>> says, holding it out. You lean forward, and snatch the fabric from <<his>> grasp. It's cold to the touch.
+	<br><br>
+
+	You dress behind the trees. The fabric is really cold for some reason, though you suppose it'll warm up before long. The <<person>> is still there when you emerge, wearing <<his>> grin. You walk out onto the street, towards the pound.
+	<br><br>
+
+	<<link [[Next|Pound Work Walk Ask 2]]>><</link>>
+	<br>
+<<else>>
+	but <<he>> blushes anyway. "S-sure," <<he>> says. "I live nearby. Give me a few minutes, and I'll bring you something."
+	<br><br>
+
+	<<He>> returns as promised, holding a set of overalls. "Sorry it's not more comfortable," <<he>> says, holding it out with eyes averted. "It's all I have in your size. It should get you where you're going."
+	<br><br>
+
+	You thank the <<person>>, and dress behind the trees. The <<person>> is gone when you emerge.
+	<br><br>
+
+	The journey back to the pound is uneventful, though you attract some looks.
+	<br><br>
+
+	You make <<moneyGain $pound.money>>.
+	<br><br>
+	<<endcombat>>
+	<<link [[Next|Pound]]>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Work Walk Ask 2
+<<effects>>
+
+You turn onto another street, this one more crowded. You smell a whiff of raw meat. Odd, as there are no butchers you know of near here. You get another whiff, then another. Soon the smell of meat becomes constant.
+<br><br>
+
+You jump as you feel a nose presses into your groin from behind. It's a <<beasttype 0>>, eager to smell you. The others join in. The <<beasttype 0>> licks your bottom next. You lean down and sniff one of the straps of your overalls. <span class="pink">They reek of meat.</span>
+<br><br>
+
+The <<beasttype 0>> grasps part of the fabric between <<bhis 0>> teeth, <span class="pink">tearing it.</span> You tighten <<bhis 0>> leash and pull <<bhim 0>> away, but you're attracting glances from other pedestrians.
+<br><br>
+
+<<set $worn.upper.integrity -= 50>>
+<<set $worn.lower.integrity -= 50>>
+
+
+<<link [[Next|Pound Work Walk Ask 3]]>><</link>>
+<br>
+
+
+:: Pound Work Walk Ask 3
+<<effects>>
+
+You hasten your pace. You're not strong enough to keep them all at bay, not when they're so eager. You're able to chasten the worst of them, but can't stop them all from nipping and biting.
+<br><br>
+
+You glance over your shoulder. A few people follow in amusement, the <<person>> among them.
+<br><br>
+
+<<set $worn.upper.integrity -= 50>>
+<<set $worn.lower.integrity -= 50>>
+
+
+
+<<link [[Move faster|Pound Work Walk Ask 4]]>><<set $phase to 0>><</link>>
+<br>
+<<link [[Take a shortcut|Pound Work Walk Ask 4]]>><<set $phase to 1>><</link>>
+<br>
+
+:: Pound Work Walk Ask 4
+<<effects>>
+
+<<if $phase is 0>>
+	You start jogging. You feel the overalls split apart further as you move, but it's harder for the <<beastsplural>> to get a grip.
+	<br><br>
+	You round a corner, and see the pound up ahead. You're almost there!
+<<else>>
+	You duck into an alley, out of sight. Your pursuers keep up however, hounding you until you emerge on the street opposite. You see the pound up ahead. You're almost there!
+<</if>>
+<br><br>
+
+It happens so fast. As you step out onto the street, the <<beasttype 0>> grabs the fabric around your ankle, and pulls. The straps dig into your shoulders, <span class="pink">then snap.</span> The fabric covering your chest begins to fall forward.
+<br><br>
+<<if $leftarm is "bound" and $rightarm is "bound">>
+	With your arms bound, you can't stop your <<breasts>> being barred. On top of that, the <<beastsplural>> tug your overalls further down your body as you walk, right over your feet. <span class="pink">You trip,</span> and land half-naked in the middle of the street.
+<<else>>
+	You push the fabric against your chest with one arm, but the <<beastsplural>> tug your overalls further down your body as you walk, right over your feet. <span class="pink">You trip,</span> and land half-naked in the middle of the street.
+<</if>>
+<br><br>
+<<upperruined>>
+<<exposure>>
+<<set $worn.lower.integrity -= 50>>
+
+People stand around gawking. Several pull out phones.
+<br><br>
+
+
+<<link [[Next|Pound Work Walk Ask 5]]>><</link>>
+<br>
+
+
+:: Pound Work Walk Ask 5
+<<effects>>
+
+The <<beastsplural>> surround you, each with a mouthful of your overalls. They pull and tug, until the fabric at last yields, <span class="pink">tearing it from your body in all directions.</span><<gstress>><<gtrauma>><<fameexhibitionism 10>><<stress 6>><<trauma 6>>
+<br><br>
+
+<<upperruined>>
+<<lowerruined>>
+<<exposure>>
+<<covered>> The audience stand around gawking and filming. The <<person6>><<person>> stands closest. "Don't worry," the <<person>> laughs. "I didn't expect those clothes back."
+<br><br>
+
+<<link [[Run|Pound Work Walk Ask Run]]>><</link>>
+<br>
+<<link [[Get revenge|Pound Work Walk Ask Revenge]]>><</link>><<tendingdifficulty 600 1000>>
+<br>
+
+
+
+
+:: Pound Work Walk Ask Run
+<<effects>>
+
+You climb to your feet and dash across the rest of the street. The <<beastsplural>> seem happy to follow, chewing on what remains of your overalls as they run.
+<br><br>
+
+The other staff laugh and leer as you enter the building. You snatch some cleaned towels from a trolley near the entrance. You <<if $upperwet gte 1>>dry<<else>>cover<</if>> yourself in a hurry, then return the <<beastsplural>> to their cages.
+<br><br>
+
+You make <<moneyGain $pound.money>>.
+<<endcombat>>
+<br>
+<<link [[Next|Pound]]>><<dry_towel>><</link>>
+<br>
+
+
+:: Pound Work Walk Ask Revenge
+<<effects>>
+
+You sic the <<beastsplural>> on the <<person>>.
+
+<<if $tendingSuccess>>
+	Perhaps the meat-smelling fabric is disappointing. Perhaps they remember where the overalls came from. Regardless of their reasons, <span class="green">they lunge at <<him>>,</span> and drag <<him>> to the ground.<<lltrauma>><<trauma -12>><<gcontrol>><<control 10>>
+	<br><br>
+
+	 They make quicker work of <<his>> clothes than they did yours, and soon have <<him>> completely naked. "Y-you stupid mutts!" <<he>> says, covering <<himself>> as the <<beastsplural>> ravage what remains of the fabric, as if searching for any morsel of food.
+	<br><br>
+
+	With the audience's attention now on the <<person>>, you make your escape. The <<beastsplural>> seem happy to follow, chewing on what remains of the <<persons>> clothes as they run.
+	<br><br>
+<<else>>
+	The tattered remains of your meat-smelling overalls prove more interesting, however, <span class="red">and they ignore your command.</span> You're left to struggle to your feet, and hobble across the rest of the street. The <<beastsplural>> seem happy to follow, chewing on what remains of your overalls as they run.
+	<br><br>
+<</if>>
+
+
+The other staff laugh and leer as you enter the building. You snatch some cleaned towels from a trolley near the entrance, and cover yourself before returning the <<beastsplural>> to their cages.
+<br><br>
+
+You make <<moneyGain $pound.money>>.
+<<endcombat>>
+<br>
+<<link [[Next|Pound]]>><<towelup>><</link>>
+<br>
+
+
+
+:: Pound Work Walk Hide
+<<effects>>
+
+You drop to your knees and peer around the edge of the trees. If you keep low and don't get too close to anyone, perhaps you won't be spotted among the pack. It would be even more humiliating if you were, though.
+<br><br>
+
+You take a deep breath, and crawl out onto the street, surrounded by the <<beastsplural>>.
+<<deviancy3>>
+
+You navigate using the street signs and buildings above. You know the streets well enough to navigate to the pound even with such limited vision.
+<br><br>
+
+You somehow make it back without being spotted. The other staff laugh and leer as you enter the building. You snatch some cleaned towels from a trolley near the entrance, and cover yourself before returning the <<beastsplural>> to their cages.
+<br><br>
+
+You make <<moneyGain $pound.money>>.
+<<endcombat>>
+<br><br>
+<<link [[Next|Pound]]>><<towelup>><</link>>
+<br>
+
+
+:: Pound Work Walk Exhibitionism
+<<effects>>
+
+<<flaunting>> you emerge from your hiding place, and walk down the busy street. Heads turn. Throats gasp. A monocle falls into a glass.
+<<if $exposed gte 2>>
+	<<exhibitionism5>>
+<<else>>
+	<<exhibitionism4>>
+<</if>>
+
+You endure leers and catcalls, but no one harasses you physically. Perhaps the <<beastsplural>> ward them off.
+<br><br>
+
+You arrive at the pound. The other staff laugh and leer as you enter the building. You snatch some cleaned towels from a trolley near the entrance, and cover yourself before returning the <<beastsplural>> to their cages.
+<br><br>
+
+You make <<moneyGain $pound.money>>.
+<<endcombat>>
+<br><br>
+<<link [[Next|Pound]]>><<towelup>><</link>>
+
+
+:: Pound Work Walk Hills
+<<set $outside to 1>><<location "moor">><<effects>>
+
+<<if $phase is 1>>
+	You lead the
+<<else>>
+	You are led by the
+<</if>>
+<<beastsplural>> west through town, along the small trails leading through the residential outskirts, into the winding hills beyond. It's colder here, but the wind is brisk and fresh, particularly as you crest the hills.
+<br><br>
+
+<<if random(1, 2) is 2>>
+	The <<beastsplural>> have a lot of energy, and it's a job to keep them from running off in different directions.
+	<<if $deviancy gte 75 and ($monster is 1 or $bestialitydisable is "f")>>
+		<span class="lewd">A lewd thought strikes you.</span> You're alone out here, well-hidden from view. You know one way you could tire the <<beastsplural>> out.
+		<br><br>
+
+		<<link [[Seduce|Pound Work Walk Sex]]>><<set $sexstart to 1>><</link>><<deviant5>>
+		<br>
+		<<link [[Just keep walking|Pound Work Walk Hills 2]]>><</link>>
+		<br>
+	<<else>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Hills 2]]>><</link>>
+		<br>
+	<</if>>
+
+<<else>>
+	You pass beneath a stone archway. There aren't many ruins this close to town, and those that remain have been worn down, their inscriptions faded or wiped entirely.
+	<br><br>
+	<<if $history gte 1000>>
+		<<link [[Try to read an inscription|Pound Work Walk Hills Read]]>><</link>><<willpowerdifficulty 600 1000>>
+		<br>
+	<<else>>
+		<<link [[Try to read an inscription|Pound Work Walk Hills Read 2]]>><<historyskill 3 "no_star">><</link>><<ghistory>>
+		<br>
+	<</if>>
+	<<link [[Just enjoy the walk|Pound Work Walk Hills 2]]>><<stress -6>><</link>><<lstress>>
+	<br>
+<</if>>
+
+:: Pound Work Walk Hills Read
+<<effects>>
+
+You run your fingers over the inscriptions. You recgonise the events they mention, but something isn't right. This isn't what they teach at school, and there's something else, some connection forming at the edge of your mind.
+<br><br>
+<<if $willpowerSuccess>>
+	<span class="green">You focus,</span> and a rogue musing blossoms. It connects the different stories in a searing web. <span class="pink">Your mind recoils from a forgotten horror,</span> but some parts will remain. <<ggawareness>><<ggtrauma>><<gstress>><<awareness 12>><<trauma 12>><<stress 6>>
+	<br><br>
+	You find yourself lying in the grass. The <<beastsplural>> whine. It's time to move on.
+<<else>>
+	<span class="red">The thoughts disappear before you can grasp them,</span> leaving an uneasy sensation in their place.<<ggstress>><<stress 12>><<gwillpower>><<willpower 6>>
+	<br><br>
+	The <<beastsplural>> whine, eager to move on. You continue your walk.
+<</if>>
+<br><br>
+
+<<link [[Next|Pound Work Walk Hills 2]]>><</link>>
+<br>
+
+:: Pound Work Walk Hills Read 2
+<<effects>>
+
+You run your fingers over the faded inscriptions. They're written in an archaic English, but you can understand it a little.
+
+<<if $rng gte 81>>
+	It mentions a festival that took place in the city here. Or perhaps its destruction, you can't tell which.
+<<elseif $rng gte 61>>
+	It warns of the danger of sea. Of a violent flood, or perhaps a flood of reavers.
+<<elseif $rng gte 41>>
+	It celebrates the triumphs of a local ruler. Or maybe it's mocking the failures of a foreign ruler. Some ruler did something, and it was worth engraving it, apparently.
+<<elseif $rng gte 21>>
+	It's confusing though, mentioning both a great harvest that saved a city from starvation, and a cataclysm that brought the city to ruin, as if they were the same thing. Maybe it's just poetic.
+<<else>>
+	It mentions a departing army that would never be seen again. However, it contradicts this at once, continuing onto the army's return. You must be misunderstanding something.
+<</if>>
+<br><br>
+
+The <<beastsplural>> grow restless, so you continue on your way.
+<br><br>
+
+<<link [[Next|Pound Work Walk Hills 2]]>><</link>>
+<br>
+
+
+:: Pound Work Walk Sex
+<<if $sexstart is 1>>
+	<<set $sexstart to 0>>
+	<<consensual>>
+	<<set $consensual to 1>>
+	<<neutral 1>>
+
+
+	<<beastCombatInit>>
+	<<beastTrainGenerate>>/* - Delete if there aren't multiple beasts*/
+
+	You drop to the ground, and present yourself to the <<beastsplural>>. They don't need a bigger hint than that.<<deviancy5>>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br>
+<<beast $enemyno>>
+<br><br>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $finish is 1>>
+	<span id="next"><<link [[Next|Pound Work Walk Sex Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Work Walk Sex Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Work Walk Sex Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Work Walk Sex]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Work Walk Sex Finish
+<<effects>>
+<<if $enemyhealth lte 0>>
+	<<beastwound>>
+	<<if $combatTrain.length gt 0>>
+		The <<beasttype>> recoils in pain and fear, but another is eager for a go.
+
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Sex]]>><</link>>
+	<<else>>
+		The <<beasttype>> recoils in pain and fear.
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Sex Finish]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation>>
+	<<if $combatTrain.length gt 0>>
+		Satisfied, the <<beasttype>> moves and another takes its turn.
+
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Sex]]>><</link>>
+	<<else>>
+		Satisfied, the <<beasttype>> moves away from you.
+		<<combatTrainAdvance>>
+		<br><br>
+		<<link [[Next|Pound Work Walk Sex Finish]]>><<set $finish to 1>><</link>>
+	<</if>>
+<<elseif $finish is 1>>
+	<<if $enemywounded gte 1 and $enemyejaculated gte 1>>
+		The <<beastsplural>> snap at each other, until you give them a firm word.
+	<<elseif $enemywounded gte 1>>
+		<<tearful>> you stand triumphant before the <<beastsplural>>.
+	<<else>>
+		<<tearful>> you lie for a while atop a satisfied pile of <<beastsplural>>.
+	<</if>>
+	<br><br>
+
+	<br><br>
+	<<clotheson>>
+	<<pass 60>>
+	<<exposure>>
+	<<if $exposed gte 1>>
+		You walk back through the hills, until you see buildings through the trees ahead. <<tearful>> you look down at your body. <<covered>>
+		<br><br>
+
+		<<link [[Ask for help|Pound Work Walk Ask]]>><</link>><<difficulty 50>>
+		<br>
+		<<if $deviancy gte 35>>
+			<<link [[Hide amongst the pack|Pound Work Walk Hide]]>><</link>><<deviant3>>
+			<br>
+		<</if>>
+		<<if $exposed gte 2 and $exhibitionism gte 75>>
+			<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist5>>
+			<br>
+		<<elseif $exposed gte 1 and $exhibitionism gte 55>>
+			<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist4>>
+			<br>
+		<</if>>
+	<<else>>
+
+		<<set $phase to 2>>
+		<<link [[Next|Pound Work Walk Hills 2]]>><</link>>
+		<br>
+	<</if>>
+
+<</if>>
+
+:: Pound Work Walk Hills 2
+<<effects>>
+
+You walk back through the hills. The town looks closer each time you crest a peak, until at last the trail passes between buildings. You lead the <<beastsplural>> back to the pound.
+<br><br>
+<<endcombat>>
+<<pound_walk_end>>
+
+:: Pound Work Walk Road
+<<set $outside to 1>><<location "moor">><<effects>>
+
+<<if $phase is 1>>
+	You lead the
+<<else>>
+	You are led by the
+<</if>>
+<<beastsplural>> east through town, through the commercial and industrial areas, until you reach the road connecting to the outside world. Horses are sometimes ridden along here, so drivers are used to slowing for the occasional animal.
+<br><br>
+
+<<if random(1, 2) is 2>>
+	A squirrel emerges from a bush on the other side of the road. A <<beasttype 0>> spots it, and is overcome by an all-consuming urge to chase it. <span class="pink">Heedless of any danger, <<bhe 0>> rushes in front of an oncoming car.</span>
+	<br><br>
+
+	<<link [[Attempt rescue|Pound Work Walk Road Rescue]]>><</link>><<athleticsdifficulty 1 1100>>
+	<br>
+	<<link [[Close your eyes|Pound Work Walk Road Close]]>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>>
+	<br>
+<<else>>
+	A few drivers leer at you as they pass, but no one stops to harass you. Perhaps the array of <<beastsplural>> dissuades them. You return to town via a different route, a trail leading between fields. You lead the <<beastsplural>> back to the pound.
+	<br><br>
+
+	<<pound_walk_end>>
+<</if>>
+
+:: Pound Work Walk Road Rescue
+<<effects>>
+
+You abandon the other leashes and run out into the road, grabbing the <<beasttype 0>> by the collar and pulling it to safety.
+<<if $athleticsSuccess>>
+	The approaching car drives by with a honk, <span class="green">but you, the <<beasttype 0>>, and the others are all safe.</span><<gpound_status>><<pound_status 1>>
+	<br><br>
+
+	You walk a little further before heading back to town. The journey to the pound is uneventful.
+	<br><br>
+
+	<<pound_walk_end>>
+<<else>>
+	You make it in time, but the car catches your
+	<<if $rng gte 67 and $worn.upper.name isnot "naked" and $worn.lower.name isnot "naked">>
+		<<print $worn.upper.name>>
+		<<set $worn.upper.integrity -= 25>>
+		<<set $worn.lower.integrity -= 25>>
+	<<elseif $rng gte 33 and $worn.upper.name isnot "naked">>
+		<<print $worn.upper.name>>
+		<<set $worn.upper.integrity -= 25>>
+	<<else>>
+		<<print $worn.lower.name>>
+		<<set $worn.lower.integrity -= 25>>
+	<</if>>
+	as it passes. <<integritycheck>>
+	<br>
+	The fabric trails after the car like a flag. The driver honks.
+	<br><br>
+
+	<<pass 60>>
+	<<exposure>>
+	You travel back to town via the trails that run between fields, and don't run into anybody.
+	<br><br>
+
+	<<if $exposed gte 1>>
+		You hide in a copse of trees at the outskirts, and look out at the street beyond. There are buildings through the trees ahead. <<tearful>> you look down at your body. <<covered>>
+		<br><br>
+
+		<<link [[Ask for help|Pound Work Walk Ask]]>><</link>><<difficulty 50>>
+		<br>
+		<<if $deviancy gte 35>>
+			<<link [[Hide amongst the pack|Pound Work Walk Hide]]>><</link>><<deviant3>>
+			<br>
+		<</if>>
+		<<if $exposed gte 2 and $exhibitionism gte 75>>
+			<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist5>>
+			<br>
+		<<elseif $exposed gte 1 and $exhibitionism gte 55>>
+			<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist4>>
+			<br>
+		<</if>>
+	<<else>>
+		<<pound_walk_end>>
+	<</if>>
+<</if>>
+
+:: Pound Work Walk Road Close
+<<effects>>
+
+You cover your eyes. and pull the remaining <<beastsplural>> to safety. You hear a screech of tires as the car swerves in your direction. You pull the remaining <<beastsplural>> to safety, but the car catches your
+<<if $rng gte 67 and $worn.upper.name isnot "naked" and $worn.lower.name isnot "naked">>
+	<<print $worn.upper.name>>
+	<<set $worn.upper.integrity -= 25>>
+	<<set $worn.lower.integrity -= 25>>
+<<elseif $rng gte 33 and $worn.upper.name isnot "naked">>
+	<<print $worn.upper.name>>
+	<<set $worn.upper.integrity -= 25>>
+<<else>>
+	<<print $worn.lower.name>>
+	<<set $worn.lower.integrity -= 25>>
+<</if>>
+as it passes. <<integritycheck>>
+<br>
+The fabric trails after the car like a flag. The driver honks.
+<br><br>
+
+<<pass 60>>
+<<exposure>>
+You travel back to town via the trails that run between fields, and don't run into anybody.
+<br><br>
+
+<<if $exposed gte 1>>
+	You hide in a copse of trees at the outskirts, and look out at the street beyond. There are buildings through the trees ahead. <<tearful>> you look down at your body. <<covered>>
+	<br><br>
+
+	<<link [[Ask for help|Pound Work Walk Ask]]>><</link>><<difficulty 50>>
+	<br>
+	<<if $deviancy gte 35>>
+		<<link [[Hide amongst the pack|Pound Work Walk Hide]]>><</link>><<deviant3>>
+		<br>
+	<</if>>
+	<<if $exposed gte 2 and $exhibitionism gte 75>>
+		<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist5>>
+		<br>
+	<<elseif $exposed gte 1 and $exhibitionism gte 55>>
+		<<link [[Walk as you are|Pound Work Walk Exhibitionism]]>><</link>><<exhibitionist4>>
+		<br>
+	<</if>>
+<<else>>
+	<<pound_walk_end>>
+<</if>>
+
+:: Pound Work Brute
+<<effects>>
+
+<<loadNPC 0 "black_dog">>
+<<generate2>><<generate3>>
+A <<person2>><<person>> and <<person3>><<person>> notice you take that particular key from the shelf, and eagerly watch you approach the cage. You open it, and step inside.
+<br><br>
+
+A pair of yellow eyes open in the corner, and regard you with suspicion.
+
+<<if $tendingSuccess>>
+
+	"It's okay," you say. "I'm just here to make sure you're okay."
+	<br><br>
+
+	The dark stirs, and a colossal black <<beasttype 0>> steps into view. <<bHis 0>> black fur is matted and unkempt, and <<bhe 0>> resembles no breed of dog you're aware of. <<bHe 0>> could almost be a wolf.
+	<br><br>
+	<<if $monster is 1>>
+		"Leave," <<bhe 0>> says. "I know your plan. Leave or I eat!"
+	<<else>>
+		It growls again.
+	<</if>>
+	<br><br>
+	<span class="green">"That's further than anyone's gotten,"</span> the <<person2>><<person>> says from outside the cage. "See if you can get <<bhis 0>> fur looking presentable." <<He>> throws you a brush.
+	<br><br>
+
+	<<link [[Next|Pound Work Brute Brush]]>><<set $pound.progress to 4>><</link>>
+	<br>
+<<else>>
+	"G-good doggy," you say. "I'm-"
+	<br><br>
+	<span class="red">A flash of white teeth strikes you with terror.</span> You flee the cage. The <<person2>><<person>> and <<person3>><<person>> laugh, but you don't care, you just need to be away.
+	<br><br>
+
+	Your hands shake as you lock the cage, and return the key to its place.
+	<br><br>
+
+	<<link [[Next|Pound]]>><<trauma 6>><<stress 6>><<endevent>><</link>><<gtrauma>><<gstress>>
+	<br>
+<</if>>
+
+
+:: Pound Work Brute Brush
+<<effects>>
+
+You step closer, brush in hand. The <<beasttype 0>> doesn't react as you brush <<bhis 0>> back, trying to loosen the tangle. <<bHe 0>> exhales, then collapses, as if <<bhis 0>> strength has given out.
+<<if $monster is 1>>
+	"Don't care anymore," <<bhe 0>> says. "Just want it over."
+<<else>>
+	It looks defeated.
+<</if>>
+<br><br>
+
+"The <<girl>> did it!" the <<person>> shouts. More staff arrive to observe. "Someone get the hose." They enter the cage, jostling you aside to get close to the creature. One of them carries a collar.
+<br><br>
+
+"Good job," the <<person2>><<person>> says. "Here's a little something." <<He>> hands you a wad of cash. "Now get going. We got lots to do."
+
+You make <<moneyGain 100>>.
+<br><br>
+
+You turn as you leave the cage, and make contact with the <<beasttype 0>>'s sad eyes for just a moment before a body blocks your vision.
+<br><br>
+
+<span class="gold">If you wanted to help, you'd have to break in at night.</span>
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+:: Pound Ask
+<<effects>>
+
+<<generate1>><<person1>>
+A <<person>> prowls down the aisle between cages, sweeping fur with a broom. <<He>> stops as you approach <<him>>, and looks you up and down. "What you want?"
+<br><br>
+<<if $submissive gte 1150>>
+	"I-I'm looking for work," you say. "Do you need help?"
+<<elseif $submissive lte 850>>
+	"Got any work?" you ask.
+<<else>>
+	"I'm looking for work," you say. "Are you hiring?"
+<</if>>
+<br><br>
+The <<person>> spits, and nods. "You done anything like this before?" <<he>> asks. <<He>> cuts off your response. "Doesn't matter. We need the hands. Brushing, feeding, washing, walking. They're a handful."
+<br><br>
+"We'll pay you <span class="gold">£5</span> an hour. Not much, but you'll get more if you do a good job. Start whenever."
+<br><br>
+
+<<link [[Next|Pound]]>><<endevent>><</link>>
+<br>
+
+:: Pound Tease
+<<effects>>
+
+You crouch beside the <<beasttype>>'s cage, and reach through the bars. "Who's a poor pooch?" you coo. "All locked up. I bet you want to fuck me, don't you?"
+<<deviancy2>>
+<<if $monster is 1>>
+	<<bHe>> rattles the bars, eyes alight with lust. "Yes," <<bhe>> woofs. <<bHe>> reaches for you, but you step away.
+	<br><br>
+<<else>>
+	<<bHe>> pokes <<his>> nose through the bars and sniffs, straining for your scent.
+<</if>>
+<br><br>
+
+<<if $arousal gte 10000>>
+	<<orgasm>> <span class="red">Driven wild by lust,</span> the <<beasttype>> rams against the cage door.
+	<br><br>
+	<<link [[Next|Pound Assault]]>><</link>>
+	<br>
+<<else>>
+	<<if $deviancy gte 35>>
+		<<if !$worn.genitals.type.includes("chastity") and $pound.sneak is 1>>
+			<<if $player.penisExist>>
+				<<link [[Press your penis against the bars (0:05)|Pound Penis]]>><<pass 5>><<set $pound.sneak to 2>><<arousal 1200>><</link>><<deviant3>><<ggarousal>>
+			<</if>>
+			<<if $player.vaginaExist>>
+				<<link [[Press your pussy against the bars (0:05)|Pound Pussy]]>><<pass 5>><<set $pound.sneak to 2>><<arousal 1200>><</link>><<deviant3>><<ggarousal>>
+				<br>
+			<</if>>
+		<</if>>
+	<<else>>
+		<span class="blue">You're not deviant enough to take things further.</span>
+		<br><br>
+	<</if>>
+	<<link [[Leave|Pound]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+:: Pound Assault
+<<effects>>
+
+<span class="red">The cage swings open,</span> and the <<beasttype>> leaps out, blocking your path.
+<br><br>
+
+<<if $monster is 1>>
+	"You mine," <<bhe>> growls. "Get on ground."
+<<else>>
+	<<bHe>> growls.
+<</if>>
+<br><br>
+
+<<link [[Submit|Pound Assault Rape]]>><<set $molestationstart to 1>><<set $phase to 0>><</link>>
+<br>
+<<link [[Fight|Pound Assault Rape]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
+<br>
+
+:: Pound Assault Rape
+
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<beastCombatInit>>
+	<<if $phase is 1>>
+		<<set $enemyanger += 100>><<set $enemyhealth -= 20>>
+		You kick the <<beasttype>> away from you.
+	<<else>>
+		You drop to the ground.
+	<</if>>
+
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Assault Rape Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Assault Rape Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Assault Rape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Assault Rape Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<beastejaculation knot>>
+	<<if _knotted>>
+		<<pass 60>>
+		The <<beasttype>> tries to wriggle <<bhis>> <<print $NPCList[0].penisdesc>> free, but to no avail. <<bHe>> instead returns to the corner of <<bhis>> cage, dragging you along on all fours behind <<bhim>>. <<bHe>> lies down to sleep, leaving you to lie on the ground.<<lllpound_status>><<pound_status -10>>
+		<br><br>
+		<<tearful>> you try to work yourself free.
+		<<if $openinghours is 1>>
+			It takes a while. So long, in fact, that you're still trying when you hear the front door open. <span class="red">The staff have arrived for work.</span>
+			<br><br>
+			<<clotheson>>
+			<<endcombat>>
+			<br><br>
+			<<generate1>><<person1>><<generate2>><<generate3>><<generate4>>
+			You grab hold of the bars of the cage for leverage, but it's no use. A <<person>> walks into view, and stops at the sight of you. "Everyone!" <<he>> shouts. "Come get a look at this!"<<ggtrauma>><<ggstress>><<famebestiality 4>>
+			<br><br>
+
+			<<link [[Next|Pound Assault Caught]]>><<set $phase to 1>><</link>>
+			<br>
+		<<else>>
+			It takes a while, but you at last remove the cock with a plop. You leave the cage, closing the door behind you.
+			<br><br>
+			<<clotheson>>
+			<<endcombat>>
+			<<link [[Next|Pound]]>><</link>>
+			<br>
+		<</if>>
+	<<else>>
+		The <<beasttype>> returns to the corner of <<bhis>> cage, and lies down to sleep. <<tearful>> you close the door.
+		<br><br>
+		<<clotheson>>
+		<<endcombat>>
+		<<link [[Next|Pound]]>><</link>>
+		<br>
+	<</if>>
+
+<<else>>
+	You kick the <<beasttype>> back into <<bhis>> cage, and lock it before it can recover.
+	<br><br>
+	<<tearful>> you walk away. The <<beasttype>> barks in anger behind you.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound]]>><</link>>
+	<br>
+
+<</if>>
+
+:: Pound Assault Caught
+<<effects>>
+
+A <<person2>><<person>>, <<person3>><<person>>, and <<person4>><<person>> arrive to gawk. "Well well," a <<person>> says. "A stray mutt snuck in for a bit of slap and tickle."
+<br>
+"Usually we have to go hunting you <<bitch>>es," the <<person3>><<person>> says. "Nice of you to capture yourself."
+<br>
+"I got just the thing," the <<person4>><<person>> adds, producing a collar and leash.
+<br><br>
+
+<<if $phase is 1>>
+	They surround you while you're helpless and grasp you by the shoulders and waist, before giving you a hefty tug. The cock comes free with a plop. You try to stand, but they hold you down while running hands over your body. The <<person1>><<person>> squeezes your <<breasts>>.
+<<else>>
+	They surround you while you're helpless and grasp you by the shoulders and waist. They pull you away from the attacker. You try to stand, but they hold you down while running hands over your body. The <<person1>><<person>> squeezes your <<breasts>>.
+<</if>>
+<br><br>
+
+<<if $exposed lt 2>>
+	The <<person4>><<person>> tries to affix the collar around your neck while the others tear at your clothes.
+<<else>>
+	The <<person4>><<person>> tries to affix the collar around your neck.
+<</if>>
+<br><br>
+
+<<link [[Fight|Pound Assault Caught Fight]]>><<set $fightstart to 1>><</link>>
+<br>
+<<link [[Submit|Pound Assault Caught 2]]>><</link>>
+<br>
+
+:: Pound Assault Caught Fight
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+
+	<<neutral 1>>
+
+	<<maninit>>
+	<<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Assault Caught Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Assault Caught Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Pound Assault Caught Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Assault Caught Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Assault Caught Fight Finish
+<<effects>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	They're too distracted by their orgasms to stop you running from the cage. You shut the door behind you, locking it in place. You don't wait to see if they can get out.
+	<br><br>
+	<<tearful>> you run from the premises.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Starfish Street]]>><</link>>
+
+<<elseif $enemyhealth lte 0>>
+	They back away from you, giving you enough space to escape the cage. You shut the door behind you, locking it in place. You don't wait to see if they can get out.
+	<br><br>
+	<<tearful>> you run from the premises.
+	<br><br>
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Starfish Street]]>><</link>>
+
+<<else>>
+	<<tearful>> you fall to the ground. You're too hurt to resist.
+	<br><br>
+	<<link [[Submit|Pound Assault Caught 2]]>><</link>>
+	<br>
+
+<</if>>
+
+:: Pound Assault Caught 2
+<<effects>>
+
+<<clothesruined>>
+<<facewear 17>>
+<<leash 26>>
+<<set $worn.neck.cursed to 1>>
+
+The <<person4>><<person>> places the collar around your neck, and affixes a muzzle. <<He>> tugs as the <<person1>><<person>> gives your <<bottom>> a hard smack, pushing you along.
+<br><br>
+
+You crawl down the corridor. The <<pound_text>> watch you crawl by, towards an empty cage at the end of the room. The <<person4>><<person>> shuts the door behind you, <span class="pink">locking you inside.</span> "Welcome to your new home <<bitch>>," <<he>> says. "The other mutts are gonna love you." The staff laugh as they walk away.
+<br><br>
+
+<<clotheson>>
+<<endcombat>>
+
+<<link [[Next|Pound Cage]]>><</link>>
+<br>
+
+
+
+:: Pound Penis
+<<effects>>
+
+You expose your <<penis>>, and push it between the bars. The <<beasttype>> gives you an exploratory sniff before running <<bhis>> tongue up your length, making you shudder.
+<<deviancy3>>
+
+<<if $arousal gte 10000>>
+	The sensation is too much. <<orgasm>> <span class="red">Driven wild by lust,</span> the <<beasttype>> rams against the cage door.
+	<br><br>
+
+	<<link [[Next|Pound Assault]]>><</link>>
+	<br>
+<<else>>
+	The <<beasttype>> <<print $monster ? "rears on <<bhis>> hind legs" : "stands upright">>, pressing against the bars of the cage.
+	<br><br>
+
+	<<if $deviancy gte 55 and $pound.sneak is 2>>
+		<<link [[Break into a cage|Pound Deviant]]>><<set $pound.sneak to 3>><</link>><<deviant4>>
+		<br>
+	<<else>>
+		<span class="blue">You're not deviant enough to take things further.</span>
+		<br>
+	<</if>>
+	<<link [[Step away|Pound]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+
+:: Pound Pussy
+<<effects>>
+
+You expose your <<pussy>>, and push it against the bars. The <<beasttype>> gives you an exploratory sniff before running <<bhis>> tongue over your slit, making you shudder.
+<<deviancy3>>
+
+<<if $arousal gte 10000>>
+	The sensation is too much. <<orgasm>> <span class="red">Driven wild by lust,</span> the <<beasttype>> rams against the cage door.
+	<br><br>
+
+	<<link [[Next|Pound Assault]]>><</link>>
+	<br>
+<<else>>
+	The <<beasttype>> <<print $monster ? "rears on <<bhis>> hind legs" : "stands upright">>, pressing against the bars of the cage.
+	<br><br>
+
+	<<if $deviancy gte 55 and $pound.sneak is 2>>
+		<<link [[Break into a cage|Pound Deviant]]>><<set $pound.sneak to 3>><</link>><<deviant4>>
+		<br>
+	<<else>>
+		<span class="blue">You're not deviant enough to take things further.</span>
+		<br>
+	<</if>>
+	<<link [[Step away|Pound]]>><<endevent>><</link>>
+	<br>
+<</if>>
+
+:: Pound Deviant
+<<effects>>
+
+You fiddle with the primitive lock, and manage to open the cage. The <<beasttype>> runs through, and tries to mount you at once.
+<<deviancy4>>
+
+<<link [[Next|Pound Deviant Sex]]>><<set $sexstart to 1>><</link>>
+<br>
+
+:: Pound Deviant Sex
+<<if $sexstart is 1>>
+	<<set $sexstart to 0>>
+	<<consensual>>
+	<<set $consensual to 1>>
+	<<neutral 1>>
+
+
+	<<beastCombatInit>>
+
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br>
+<<beast $enemyno>>
+<br><br>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $finish is 1>>
+	<span id="next"><<link [[Next|Pound Deviant Sex Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Pound Deviant Sex Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Pound Deviant Sex Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Pound Deviant Sex]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Pound Deviant Sex Finish
+<<effects>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+
+	<<beastejaculation knot>>
+	<<if _knotted>>
+		<<pass 60>>
+		The <<beasttype>> tries to wriggle <<bhis>> <<print $NPCList[0].penisdesc>> free, but to no avail. <<bHe>> instead returns to the corner of <<bhis>> cage, dragging you along on all fours behind <<bhim>>. <<bHe>> lies down to sleep, leaving you to lie on the ground.
+		<br><br>
+		<<tearful>> you try to work yourself free.
+		<<if $openinghours is 1>>
+			It takes a while. So long, in fact, that you're still trying when you hear the front door open. <span class="red">The staff have arrived for work.</span>
+			<br><br>
+			<<clotheson>>
+			<<endcombat>>
+			<br><br>
+			<<generate1>><<person1>><<generate2>><<generate3>><<generate4>>
+			You grab hold of the bars of the cage for leverage, but it's no use. A <<person>> walks into view, and stops at the sight of you. "Everyone!" <<he>> shouts. "Come get a look at this!"<<ggtrauma>><<ggstress>><<famebestiality 4>>
+			<br><br>
+
+			<<link [[Next|Pound Assault Caught]]>><</link>>
+			<br>
+		<<else>>
+			It takes a while, but you at last remove the cock with a plop. You leave the cage, closing the door behind you.
+			<br><br>
+			<<clotheson>>
+			<<endcombat>>
+			<<link [[Next|Pound]]>><</link>>
+			<br>
+		<</if>>
+	<<else>>
+
+		The <<beasttype>> returns to <<bhis>> cage, and curls up in the corner.
+		<br><br>
+
+		<<tearful>> you close and lock the door.
+		<br><br>
+
+		<<clotheson>>
+		<<endcombat>>
+		<<link [[Next|Pound]]>><</link>>
+		<br>
+	<</if>>
+
+
+<<elseif $enemyhealth lte 0>>
+
+	The <<beasttype>> runs into <<bhis>> cage, and curls up in the shadowed corner.
+	<br><br>
+
+	<<tearful>> you close and lock the door.
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound]]>><</link>>
+	<br>
+
+<<else>>
+
+	The <<beasttype>> returns to <<bhis>> cage, apparently uninterested in an escape attempt.
+	<br><br>
+
+	<<tearful>> you close and lock the door.
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+	<<link [[Next|Pound]]>><</link>>
+	<br>
+
+<</if>>
+
+:: Pound Lock
+<<set $outside to 0>><<effects>><<set $lock to 200>>
+<<openinghours>>
+<<if currentSkillValue('skulduggery') gte $lock>>
+	<span class="green">The lock looks easy to pick.</span>
+	<br><br>
+	<<link [[Pick it (0:10)|Pound]]>><<pass 10>><<crimeup 1>><</link>><<crime>>
+	<br>
+<<else>>
+	<span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>>
+	<br><br>
+<</if>>
+<<link [[Leave|Starfish Street]]>><</link>>
+<br>
diff --git a/game/overworld-town/loc-pound/widgets.twee b/game/overworld-town/loc-pound/widgets.twee
new file mode 100644
index 0000000000000000000000000000000000000000..46272e14de7881d48c8e3a49efe523945bf43d46
--- /dev/null
+++ b/game/overworld-town/loc-pound/widgets.twee
@@ -0,0 +1,151 @@
+:: Widgets Pound [widget]
+<<widget "pound_init">>
+<<set $pound to {}>>
+<<set $pound.status to 0>>
+<<set $pound.sneak to 0>>
+<<set $pound.progress to 0>>
+<<set $pound.tasks to []>>
+<</widget>>
+
+<<widget "pound_text">>
+<<if ($monsterchance gte $rng and $hallucinations gte 1) or ($monsterchance gte $rng and $monsterhallucinations is "f")>>
+	<<if $monsterchance gte 100 or $bestialitydisable is "f">>
+		<<if $malechance is 100>>
+			<<set _text_output to "dogboys">>
+		<<elseif $malechance is 0>>
+			<<set _text_output to "doggirls">>
+		<<else>>
+			<<set _text_output to "dogpeople">>
+		<</if>>
+	<<else>>
+		<<set _text_output to "hounds">>
+	<</if>>
+<<else>>
+	<<set _text_output to "dogs">>
+<</if>>
+<<if _args[0] is "cap">>
+	<<set _text_output to _text_output.toUpperFirst()>>
+<</if>>
+<<print _text_output>>
+<</widget>>
+
+<<widget "pound_punishment_links">>
+<<if $hour is 12>>
+	<<link [[Next|Pound Practise]]>><</link>>
+	<br>
+<<else>>
+	<<link [[Next|Pound Food]]>><<detach_leash>><<endevent>><</link>>
+	<br>
+<</if>>
+<</widget>>
+
+<<widget "pound_stats">>
+<<if $pound.status gte 100>>
+	The <<pound_text>> see you as <span class="green">alpha.</span>
+	<<earnFeat "Pound Alpha">>
+<<elseif $pound.status gte 80>>
+	The <<pound_text>> consider you <span class="teal">dominant.</span>
+<<elseif $pound.status gte 60>>
+	The <<pound_text>> think you're <span class="lblue">strong.</span>
+<<elseif $pound.status gte 40>>
+	The <<pound_text>> see you as <span class="blue">a normal packmate.</span>
+<<elseif $pound.status gte 20>>
+	The <<pound_text>> think you're <span class="purple">weak.</span>
+<<elseif $pound.status gte 1>>
+	The <<pound_text>> consider you <span class="pink">submissive.</span>
+<<else>>
+	The <<pound_text>> see you as a <span class="red">runt.</span>
+	<<earnFeat "Pound Runt">>
+<</if>>
+<</widget>>
+
+<<widget "pound_status">>
+<<if _args[0]>>
+	<<set $pound.status += (_args[0] * 2)>>
+	<<set $pound.status to Math.clamp($pound.status, 0, 100)>>
+<</if>>
+<</widget>>
+
+<<widget "stray_happiness">>
+<<if _args[0]>>
+	<<set $stray_happiness += _args[0]>>
+	<<set $stray_happiness to Math.clamp($stray_happiness, 0, 100)>>
+<</if>>
+<</widget>>
+
+<<widget "gstray_happiness">> |
+<span class="green"> + Stray contentment</span>
+<</widget>>
+
+<<widget "gpound_status">> |
+<span class="green"> + Pound respect</span>
+<</widget>>
+
+<<widget "ggpound_status">> |
+<span class="green"> + + Pound respect</span>
+<</widget>>
+
+<<widget "gggpound_status">> |
+<span class="green"> + + + Pound respect</span>
+<</widget>>
+
+<<widget "lpound_status">> |
+<span class="red"> - Pound respect</span>
+<</widget>>
+
+<<widget "llpound_status">> |
+<span class="red"> - - Pound respect</span>
+<</widget>>
+
+<<widget "lllpound_status">> |
+<span class="red"> - - - Pound respect</span>
+<</widget>>
+
+<<widget "pound_compete_text">>
+<<if $pound.compete gte 5>>
+	<span class="green">You're in first place.</span>
+<<elseif $pound.compete is 4>>
+	<span class="teal">You're in second place.</span>
+<<elseif $pound.compete is 3>>
+	<span class="lblue">You're in third place.</span>
+<<elseif $pound.compete is 2>>
+	<span class="blue">You're in fourth place.</span>
+<<else>>
+	<span class="purple">You're last.</span>
+<</if>>
+<</widget>>
+
+<<widget "stray_happiness_text">>
+<<if $stray_happiness gte 100>>
+	<span class="greed">The <<pound_text>> are cheerful.</span>
+<<elseif $stray_happiness gte 80>>
+	<span class="teal">The <<pound_text>> are content.</span>
+<<elseif $stray_happiness gte 60>>
+	<span class="lblue">The <<pound_text>> are sullen.</span>
+<<elseif $stray_happiness gte 40>>
+	<span class="blue">The <<pound_text>> brood in dark corners.</span>
+<<elseif $stray_happiness gte 20>>
+	<span class="purple">The <<pound_text>> are agitated.</span>
+<<elseif $stray_happiness gte 1>>
+	<span class="pink">The <<pound_text>> are rebellious.</span>
+<<else>>
+	<span class="red">The <<pound_text>> are feral.</span>
+<</if>>
+<br>
+<i>Higher contentment makes events with stray mutts around town less dangerous.</i>
+<</widget>>
+
+<<widget "pound_walk_end">>
+You make <<moneyGain $pound.money>>.<<if $phase isnot 2>><<pass 60>><</if>>
+<br><br>
+<<exposure>>
+<<if $exposed gte 1>>
+	You close the last cage, and look down at your body. <span class="pink">Your clothes are soaking wet and transparent!</span>
+	<br><br>
+	<<link [[Next|Pound Exposed]]>><<endevent>><</link>>
+	<br>
+<<else>>
+	<<link [[Next|Pound]]>><<endevent>><</link>>
+	<br>
+<</if>>
+<</widget>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-prison/beach.twee b/game/overworld-town/loc-prison/beach.twee
index 0dceec5ab8491afcb1f2f8bf7fc4c3145c2ff47a..88634bd3f4c6a7d083432ffd4149228c23fc87e5 100644
--- a/game/overworld-town/loc-prison/beach.twee
+++ b/game/overworld-town/loc-prison/beach.twee
@@ -3,94 +3,94 @@
 
 You are on the secret beach outside the prison. The waves are violent.
 <<if $prison.watchers_friend is 2>>
-    
+
 <<elseif $prison.schedule is "revolt">>
-    You hear the ongoing revolt.<<prison_attention 10>>
+	You hear the ongoing revolt.<<prison_attention 10>>
 <<else>>
-    Menacing shapes circle overhead.
+	Menacing shapes circle overhead.
 <</if>>
 <br><br>
 
 
 <<if ($hour is 12 or $hour is 14) and !$prison_wren_intro and $prison_wren_boat_intro is 1 and $weekday is 6>>
-    <<npc "Wren">><<person1>>
-    There's a boat moored just off shore. Wren emerges from below deck, and leaps over the water onto a nearby rock. <<He>> crouches to pick up a crate, but stops when <<he>> sees you.
-    <br><br>
-    "You're a clever <<girl>>," <<he>> says. "I shouldn't be surprised. Let's keep this beach a secret between the two of us." <<He>> lifts the crate, and returns to <<his>> ship.
-    <br><br>
-
-    <<link [[Next|Prison Beach]]>><<endevent>><<unset $prison_wren_boat_intro>><</link>>
-    <br>
+	<<npc "Wren">><<person1>>
+	There's a boat moored just off shore. Wren emerges from below deck, and leaps over the water onto a nearby rock. <<He>> crouches to pick up a crate, but stops when <<he>> sees you.
+	<br><br>
+	"You're a clever <<girl>>," <<he>> says. "I shouldn't be surprised. Let's keep this beach a secret between the two of us." <<He>> lifts the crate, and returns to <<his>> ship.
+	<br><br>
+
+	<<link [[Next|Prison Beach]]>><<endevent>><<unset $prison_wren_boat_intro>><</link>>
+	<br>
 <<else>>
-    <<if ($hour is 12 or $hour is 14) and !$prison_wren_intro and $weekday is 6>>
-        <<npc "Wren">><<person1>>
-        Wren busies <<himself>> on <<his>> ship.
-        <br><br>
-        <<endevent>>
-    <<elseif $hour is 13 and !$prison_wren_intro and $weekday is 6>>
-        Wren's boat is anchored neared the beach.
-        <br><br>
-    <<else>>
-        
-    <</if>>
-
-    <<if $hour is 5>>
-        It'll be roll call soon. <span class="pink">If you don't return to your cell, there'll be trouble.</span>
-        <br><br>
-    <</if>>
-
-    <<if $prison.schedule is "hunt">>
-        <<beastNEWinit 1 hawk>><<person1>>
-        A <<beasttype>> soars towards you, <span class="red">talons outstretched.</span> You run, and manage to avoid <<bhis>> grasp.
-        <br><br>
-        <<bHe>> chases you up the tunnel and into the yard.
-        <br><br>
-
-        <<link [[Next|Prison Yard]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        Small fish leap from a shallow, placid lagoon.
-        <br>
-        <<if ($hour is 12 or $hour is 14) and !$prison_wren_intro and $weekday is 6>>
-            <br>
-            <<link [[Speak to Wren|Prison Beach Wren]]>><</link>>
-            <br>
-        <</if>>
-        <<if $leftarm is "bound" and $rightarm is "bound">>
-            <<if $worn.feet.type.includes("shackle")>>
-                <br>
-                <span class="blue">You can't swim with your arms bound and your legs shackled.</span>
-            <br><br>
-            <<else>>
-                <br>
-                <span class="blue">You can't swim with your arms bound.</span>
-            <br><br>
-            <</if>>
-        <<elseif $worn.feet.type.includes("shackle")>>
-            <br>
-            <span class="blue">You can't swim with your legs shackled.</span>
-            <br><br>
-        <<else>>
-            <<link [[Practise swimming (1:00)|Prison Beach Swim]]>><<pass 60>><<stress -6>><<tiredness 6>><</link>><<gtiredness>><<gswimming>><<lstress>>
-            <br><br>
-
-            <<link [[Swim away from the island (0:05)|Prison Beach Escape]]>><<pass 5>><</link>>
-            <br><br>
-        <</if>>
-        <<if $prison.yard_door is 1>>
-            <<link [[Tunnel to yard (0:01)|Prison Yard]]>><<pass 1>><<set $location to "prison">><</link>>
-            <br>
-        <<else>>
-            A tunnel slopes up into the island, <span class="blue">but there's a locked door on the other side.</span>
-            <br>
-        <</if>>
-
-        <<if $prison.tunnel gte 120>>
-            <<link [[Tunnel to cell (0:05)|Prison Tunnel Edge]]>><<pass 5>><<set $phase to 1>><<set $location to "prison">><</link>>
-            <br>
-        <</if>>
-        <<prison_map beach>>
-    <</if>>
+	<<if ($hour is 12 or $hour is 14) and !$prison_wren_intro and $weekday is 6>>
+		<<npc "Wren">><<person1>>
+		Wren busies <<himself>> on <<his>> ship.
+		<br><br>
+		<<endevent>>
+	<<elseif $hour is 13 and !$prison_wren_intro and $weekday is 6>>
+		Wren's boat is anchored neared the beach.
+		<br><br>
+	<<else>>
+
+	<</if>>
+
+	<<if $hour is 5>>
+		It'll be roll call soon. <span class="pink">If you don't return to your cell, there'll be trouble.</span>
+		<br><br>
+	<</if>>
+
+	<<if $prison.schedule is "hunt">>
+		<<beastNEWinit 1 hawk>><<person1>>
+		A <<beasttype>> soars towards you, <span class="red">talons outstretched.</span> You run, and manage to avoid <<bhis>> grasp.
+		<br><br>
+		<<bHe>> chases you up the tunnel and into the yard.
+		<br><br>
+
+		<<link [[Next|Prison Yard]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		Small fish leap from a shallow, placid lagoon.
+		<br>
+		<<if ($hour is 12 or $hour is 14) and !$prison_wren_intro and $weekday is 6>>
+			<br>
+			<<link [[Speak to Wren|Prison Beach Wren]]>><</link>>
+			<br>
+		<</if>>
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			<<if $worn.feet.type.includes("shackle")>>
+				<br>
+				<span class="blue">You can't swim with your arms bound and your legs shackled.</span>
+			<br><br>
+			<<else>>
+				<br>
+				<span class="blue">You can't swim with your arms bound.</span>
+			<br><br>
+			<</if>>
+		<<elseif $worn.feet.type.includes("shackle")>>
+			<br>
+			<span class="blue">You can't swim with your legs shackled.</span>
+			<br><br>
+		<<else>>
+			<<link [[Practise swimming (1:00)|Prison Beach Swim]]>><<pass 60>><<stress -6>><<tiredness 6>><</link>><<gtiredness>><<gswimming>><<lstress>>
+			<br><br>
+
+			<<link [[Swim away from the island (0:05)|Prison Beach Escape]]>><<pass 5>><</link>>
+			<br><br>
+		<</if>>
+		<<if $prison.yard_door is 1>>
+			<<link [[Tunnel to yard (0:01)|Prison Yard]]>><<pass 1>><<set $location to "prison">><</link>>
+			<br>
+		<<else>>
+			A tunnel slopes up into the island, <span class="blue">but there's a locked door on the other side.</span>
+			<br>
+		<</if>>
+
+		<<if $prison.tunnel gte 120>>
+			<<link [[Tunnel to cell (0:05)|Prison Tunnel Edge]]>><<pass 5>><<set $phase to 1>><<set $location to "prison">><</link>>
+			<br>
+		<</if>>
+		<<prison_map beach>>
+	<</if>>
 <</if>>
 
 :: Prison Beach Wren
@@ -100,44 +100,44 @@ Wren addresses you with one leg resting on the side of the ship. "Any way I can
 <br><br>
 
 <<if $prison.wren_names is 2>>
-    <<link [[Ask for passage|Prison Beach Wren Lift]]>><</link>>
-    <br>
+	<<link [[Ask for passage|Prison Beach Wren Lift]]>><</link>>
+	<br>
 <<elseif $prison.wren_names is 1>>
-    <<if $per_npc.scarred_inmate.name_known is 1 and $prison_wren_scarred isnot 1>>
-        <<link [[Give the scarred inmate's name|Prison Beach Wren Scarred]]>><<set $prison_wren_scarred to 1>><</link>>
-        <br>
-    <<elseif $prison_wren_scarred isnot 1>>
-        <span class="blue">Wren wants the scarred inmate's name.</span>
-        <br>
-    <</if>>
-    <<if $per_npc.relaxed_guard.name_known is 1 and $prison_wren_relaxed isnot 1>>
-        <<link [[Give the relaxed guard's name|Prison Beach Wren Relaxed]]>><<set $prison_wren_relaxed to 1>><</link>>
-        <br>
-    <<elseif $prison_wren_relaxed isnot 1>>
-        <span class="blue">Wren wants the relaxed guard's name.</span>
-        <br>
-    <</if>>
-    <<if $per_npc.veteran_guard.name_known is 1 and $prison_wren_veteran isnot 1>>
-        <<link [[Give the veteran guard's name|Prison Beach Wren Veteran]]>><<set $prison_wren_veteran to 1>><</link>>
-        <br>
-    <<elseif $prison_wren_veteran isnot 1>>
-        <span class="blue">Wren wants the veteran guard's name.</span>
-        <br>
-    <</if>>
-    <<if $per_npc.methodical_guard.name_known is 1 and $prison_wren_methodical isnot 1>>
-        <<link [[Give the methodical guard's name|Prison Beach Wren Methodical]]>><<set $prison_wren_methodical to 1>><</link>>
-        <br>
-    <<elseif $prison_wren_methodical isnot 1>>
-        <span class="blue">Wren wants the methodical guards's name.</span>
-        <br>
-    <</if>>
-    <<if $prison_wren_relaxed is 1 and $prison_wren_scarred is 1 and $prison_wren_veteran is 1 and $prison_wren_methodical is 1 >>
-        <<link [[That's all the names|Prison Beach Wren Names]]>><<set $prison.wren_names to 2>><</link>>
-        <br>
-    <</if>>
+	<<if $per_npc.scarred_inmate.name_known is 1 and $prison_wren_scarred isnot 1>>
+		<<link [[Give the scarred inmate's name|Prison Beach Wren Scarred]]>><<set $prison_wren_scarred to 1>><</link>>
+		<br>
+	<<elseif $prison_wren_scarred isnot 1>>
+		<span class="blue">Wren wants the scarred inmate's name.</span>
+		<br>
+	<</if>>
+	<<if $per_npc.relaxed_guard.name_known is 1 and $prison_wren_relaxed isnot 1>>
+		<<link [[Give the relaxed guard's name|Prison Beach Wren Relaxed]]>><<set $prison_wren_relaxed to 1>><</link>>
+		<br>
+	<<elseif $prison_wren_relaxed isnot 1>>
+		<span class="blue">Wren wants the relaxed guard's name.</span>
+		<br>
+	<</if>>
+	<<if $per_npc.veteran_guard.name_known is 1 and $prison_wren_veteran isnot 1>>
+		<<link [[Give the veteran guard's name|Prison Beach Wren Veteran]]>><<set $prison_wren_veteran to 1>><</link>>
+		<br>
+	<<elseif $prison_wren_veteran isnot 1>>
+		<span class="blue">Wren wants the veteran guard's name.</span>
+		<br>
+	<</if>>
+	<<if $per_npc.methodical_guard.name_known is 1 and $prison_wren_methodical isnot 1>>
+		<<link [[Give the methodical guard's name|Prison Beach Wren Methodical]]>><<set $prison_wren_methodical to 1>><</link>>
+		<br>
+	<<elseif $prison_wren_methodical isnot 1>>
+		<span class="blue">Wren wants the methodical guards's name.</span>
+		<br>
+	<</if>>
+	<<if $prison_wren_relaxed is 1 and $prison_wren_scarred is 1 and $prison_wren_veteran is 1 and $prison_wren_methodical is 1 >>
+		<<link [[That's all the names|Prison Beach Wren Names]]>><<set $prison.wren_names to 2>><</link>>
+		<br>
+	<</if>>
 <<else>>
-    <<link [[Ask for passage|Prison Beach Wren Ask]]>><<set $prison.wren_names to 1>><</link>>
-    <br>
+	<<link [[Ask for passage|Prison Beach Wren Ask]]>><<set $prison.wren_names to 1>><</link>>
+	<br>
 <</if>>
 <<link [[Leave|Prison Beach]]>><<endevent>><</link>>
 <br>
@@ -146,31 +146,31 @@ Wren addresses you with one leg resting on the side of the ship. "Any way I can
 <<effects>>
 
 <<if $prison.watchers_friend is 2 or $prison.schedule is "revolt">>
-    Wren looks up. "Skies are clear," <<he>> says. "I'll give you a lift back to the mainland. It'll be a one-way trip though. They scrutinise me more on the way in."
-    <br><br>
-
-    <<if $prison.kylar is "solitary">>
-        You could take Kylar with you, but you'll need to wait until <<nnpc_hes "Kylar">> freed from solitary.
-        <br><br>
-    <</if>>
-
-    <<if $prison.kylar is "active">>
-        <<link [[Escape alone (0:30)|Prison Wren Escape]]>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>>
-        <br>
-        <<link [[Escape with Kylar (0:40)|Prison Kylar Escape]]>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 40>><<prison_guards -40>><<npcincr Kylar rage -60>><<npcincr Kylar love 20>><</link>><<crime>><<gggsuspicion>><<ggglove>><<lllksuspicion>>
-        <br>
-    <<else>>
-        <<link [[Escape (0:30)|Prison Wren Escape]]>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>>
-        <br>
-    <</if>>
+	Wren looks up. "Skies are clear," <<he>> says. "I'll give you a lift back to the mainland. It'll be a one-way trip though. They scrutinise me more on the way in."
+	<br><br>
+
+	<<if $prison.kylar is "solitary">>
+		You could take Kylar with you, but you'll need to wait until <<nnpc_hes "Kylar">> freed from solitary.
+		<br><br>
+	<</if>>
+
+	<<if $prison.kylar is "active">>
+		<<link [[Escape alone (0:30)|Prison Wren Escape]]>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>>
+		<br>
+		<<link [[Escape with Kylar (0:40)|Prison Kylar Escape]]>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 40>><<prison_guards -40>><<npcincr Kylar rage -60>><<npcincr Kylar love 20>><</link>><<crime>><<gggsuspicion>><<ggglove>><<lllksuspicion>>
+		<br>
+	<<else>>
+		<<link [[Escape (0:30)|Prison Wren Escape]]>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>>
+		<br>
+	<</if>>
 
 <<else>>
-    Wren points at the sky. <span class="blue">"I can't take you with those birds watching,"</span> <<he>> says. "Hiding behind deck won't work. Befriend them, or distract them, and we'll be good to go."
-    <br><br>
-    <<if $prison.kylar is "solitary">>
-        You could take Kylar with you as well, but you'll need to wait until <<nnpc_hes "Kylar">> freed from solitary.
-        <br><br>
-    <</if>>
+	Wren points at the sky. <span class="blue">"I can't take you with those birds watching,"</span> <<he>> says. "Hiding behind deck won't work. Befriend them, or distract them, and we'll be good to go."
+	<br><br>
+	<<if $prison.kylar is "solitary">>
+		You could take Kylar with you as well, but you'll need to wait until <<nnpc_hes "Kylar">> freed from solitary.
+		<br><br>
+	<</if>>
 <</if>>
 
 <<link [[Leave|Prison Beach]]>><<endevent>><</link>>
@@ -181,59 +181,59 @@ Wren addresses you with one leg resting on the side of the ship. "Any way I can
 <<npc Kylar 2>><<person2>>
 You rush back into the prison.
 <<if $prison.schedule is "revolt">>
-    You find Kylar trying to break into the staff room amidst the anarchy.
-    <br><br>
-    <<if $worn.face.type.includes("gag")>>
-        "Mmmhhrr!" you say. Kylar turns to you with a smile.
-        <br><br>
-        You think for a moment, before gesturing to <<him>> and yourself.
-        <<if $leftarm is "bound" and $rightarm is "bound">>
-            You jog in place for a second, tilting your head. Kylar frowns, confused, before gasping.
-        <<else>>
-            You pantomime opening a door, and walk your fingers across your hand. Kylar gasps.
-        <</if>>
-        "Y-you found a way to escape?" <<he>> asks. "Let me get my things."
-    <<else>>
-        <<if $submissive gte 1150>>
-            "I've found a way out," you say. "Pl-please come with me."
-        <<elseif $submissive lte 850>>
-            "I'm leaving this shit hole," you say. "Wanna come?"
-        <<else>>
-            "I've found a way out," you say. "Will you come with me?
-        <</if>>
-        <br><br>
-        "Go with you? O-of course," Kylar says. "Let me get my things."
-    <</if>>
-    <br><br>
-
-    You wait beside Kylar's cell as <<he>> disappears beneath <<his>> bed, and emerges with a rucksack. "That's it. Let's go."
+	You find Kylar trying to break into the staff room amidst the anarchy.
+	<br><br>
+	<<if $worn.face.type.includes("gag")>>
+		"Mmmhhrr!" you say. Kylar turns to you with a smile.
+		<br><br>
+		You think for a moment, before gesturing to <<him>> and yourself.
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			You jog in place for a second, tilting your head. Kylar frowns, confused, before gasping.
+		<<else>>
+			You pantomime opening a door, and walk your fingers across your hand. Kylar gasps.
+		<</if>>
+		"Y-you found a way to escape?" <<he>> asks. "Let me get my things."
+	<<else>>
+		<<if $submissive gte 1150>>
+			"I've found a way out," you say. "Pl-please come with me."
+		<<elseif $submissive lte 850>>
+			"I'm leaving this shit hole," you say. "Wanna come?"
+		<<else>>
+			"I've found a way out," you say. "Will you come with me?
+		<</if>>
+		<br><br>
+		"Go with you? O-of course," Kylar says. "Let me get my things."
+	<</if>>
+	<br><br>
+
+	You wait beside Kylar's cell as <<he>> disappears beneath <<his>> bed, and emerges with a rucksack. "That's it. Let's go."
 <<else>>
-    You find Kylar lying on <<his>> mattress.
-
-    <<if $worn.face.type.includes("gag")>>
-        "Mmmhhrr!" you say. Kylar turns to you with a smile.
-        <br><br>
-        You think for a moment, before gesturing to <<him>> and yourself.
-        <<if $leftarm is "bound" and $rightarm is "bound">>
-            You jog in place for a second, tilting your head. Kylar frowns, confused, before gasping.
-        <<else>>
-            You pantomime opening a door, and walk your fingers across your hand. Kylar gasps.
-        <</if>>
-        "Y-you found a way to escape?" <<he>> asks. "Let me get my things."
-    <<else>>
-        <<if $submissive gte 1150>>
-            "I've found a way out," you say. "Pl-please come with me."
-        <<elseif $submissive lte 850>>
-            "I'm leaving this shit hole," you say. "Wanna come?"
-        <<else>>
-            "I've found a way out," you say. "Will you come with me?
-        <</if>>
-        <br><br>
-        Kylar sits upright. "Go with you? O-of course. Let me get my things."
-    <</if>>
-    <br><br>
-
-    <<He>> disappears beneath <<his>> bed, and emerges with a rucksack. "That's it. Let's go."
+	You find Kylar lying on <<his>> mattress.
+
+	<<if $worn.face.type.includes("gag")>>
+		"Mmmhhrr!" you say. Kylar turns to you with a smile.
+		<br><br>
+		You think for a moment, before gesturing to <<him>> and yourself.
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			You jog in place for a second, tilting your head. Kylar frowns, confused, before gasping.
+		<<else>>
+			You pantomime opening a door, and walk your fingers across your hand. Kylar gasps.
+		<</if>>
+		"Y-you found a way to escape?" <<he>> asks. "Let me get my things."
+	<<else>>
+		<<if $submissive gte 1150>>
+			"I've found a way out," you say. "Pl-please come with me."
+		<<elseif $submissive lte 850>>
+			"I'm leaving this shit hole," you say. "Wanna come?"
+		<<else>>
+			"I've found a way out," you say. "Will you come with me?
+		<</if>>
+		<br><br>
+		Kylar sits upright. "Go with you? O-of course. Let me get my things."
+	<</if>>
+	<br><br>
+
+	<<He>> disappears beneath <<his>> bed, and emerges with a rucksack. "That's it. Let's go."
 <</if>>
 <br><br>
 
@@ -254,8 +254,8 @@ Wren shrugs, and steers the vessel away from the island, towards the surrounding
 <br><br>
 <<prison_bondage_removal>>
 <<if _punishments_removed is true>>
-    <<He>> abandons the helm for a minute to rummage beneath the hold, and emerges with a box of tools. "Hold still," <<he>> says. "I'm not making the journey while you're wearing these. I would never forgive myself if you fell in." <<He>> soon has your bondage implements removed.
-    <br><br>
+	<<He>> abandons the helm for a minute to rummage beneath the hold, and emerges with a box of tools. "Hold still," <<he>> says. "I'm not making the journey while you're wearing these. I would never forgive myself if you fell in." <<He>> soon has your bondage implements removed.
+	<br><br>
 <</if>>
 
 Kylar clings to your arm as the ship is enveloped.
@@ -273,31 +273,31 @@ Kylar clings to your arm as the ship is enveloped.
 <<effects>>
 
 <<if $phase is 2>>
-    You take Kylar's other arm, and pull <<him>> into a kiss. <<He>> almost swoons into you. <<takeKissVirginity "Kylar" `($kylarenglish gte 1?"loveInterest":"romantic")`>>
-    <br><br>
+	You take Kylar's other arm, and pull <<him>> into a kiss. <<He>> almost swoons into you. <<takeKissVirginity "Kylar" `($kylarenglish gte 1?"loveInterest":"romantic")`>>
+	<br><br>
 <<elseif $phase is 1>>
-    You pull Kylar into a hug. Something about the mist has <<him>> on edge.
+	You pull Kylar into a hug. Something about the mist has <<him>> on edge.
 <<else>>
-    
+
 <</if>>
 
 <<if $transformationParts.traits.sharpEyes isnot "disabled">>
-    Spires of rock loom from the mist ahead. Wren seems unconcerned, and steers around each.
+	Spires of rock loom from the mist ahead. Wren seems unconcerned, and steers around each.
 <<else>>
-    Wren steers around unseen spires of rock, as if from memory. You catch glimpses of them on either side, towering into the sky.
+	Wren steers around unseen spires of rock, as if from memory. You catch glimpses of them on either side, towering into the sky.
 <</if>>
 <br><br>
 
 At last, the ship breaches the other side.
 
 <<if $daystate is "night">>
-    <<if $weather is "clear">>
-        You see the lights of town light up the horizon.
-    <<else>>
-        Even so, you can't see much further in the dark.
-    <</if>>
+	<<if $weather is "clear">>
+		You see the lights of town light up the horizon.
+	<<else>>
+		Even so, you can't see much further in the dark.
+	<</if>>
 <<else>>
-    You see the town on the horizon.
+	You see the town on the horizon.
 <</if>>
 <br><br>
 <<person1>>
@@ -354,8 +354,8 @@ Wren pulls up the anchor as you climb aboard, and turns on the engine. The boat
 
 <<prison_bondage_removal>>
 <<if _punishments_removed is true>>
-    <<He>> abandons the helm for a minute to rummage beneath the hold, and emerges with a box of tools. "Hold still," <<he>> says. "I'm not making the journey while you're wearing these. I would never forgive myself if you fell in." <<He>> soon has your bondage implements removed.
-    <br><br>
+	<<He>> abandons the helm for a minute to rummage beneath the hold, and emerges with a box of tools. "Hold still," <<he>> says. "I'm not making the journey while you're wearing these. I would never forgive myself if you fell in." <<He>> soon has your bondage implements removed.
+	<br><br>
 <</if>>
 
 "Stay close," <<he>> says. "Been a while since I've bumped into anything, but don't want you falling in." <<He>> puts one hand on the helm, but puts the other around your shoulders.
@@ -372,30 +372,30 @@ Wren pulls up the anchor as you climb aboard, and turns on the engine. The boat
 <<effects>>
 <<earnFeat "Not Meant to be Caged">>
 <<if $phase is 0>>
-    You lean into Wren. <<He>> holds you tighter, and laughs. "Don't make it too easy for me," <<he>> says. "I like a chase." Mist envelops the ship.
+	You lean into Wren. <<He>> holds you tighter, and laughs. "Don't make it too easy for me," <<he>> says. "I like a chase." Mist envelops the ship.
 <<elseif $phase is 1>>
-    You pull away from Wren. <<He>> laughs. "Just make sure you hold on." Mist envelops the ship.
+	You pull away from Wren. <<He>> laughs. "Just make sure you hold on." Mist envelops the ship.
 <<elseif $phase is 2>>
-    You stay still as mist envelops the ship.
+	You stay still as mist envelops the ship.
 <</if>>
 <br><br>
 <<if $transformationParts.traits.sharpEyes isnot "disabled">>
-    Spires of rock loom from the mist ahead. Wren seems unconcerned, and steers around each.
+	Spires of rock loom from the mist ahead. Wren seems unconcerned, and steers around each.
 <<else>>
-    Wren steers around unseen spires of rock, as if from memory. You catch glimpses of them on either side, towering into the sky.
+	Wren steers around unseen spires of rock, as if from memory. You catch glimpses of them on either side, towering into the sky.
 <</if>>
 <br><br>
 
 At last, the ship breaches the other side.
 
 <<if $daystate is "night">>
-    <<if $weather is "clear">>
-        You see the lights of town light up the horizon.
-    <<else>>
-        Even so, you can't see much further in the dark.
-    <</if>>
+	<<if $weather is "clear">>
+		You see the lights of town light up the horizon.
+	<<else>>
+		Even so, you can't see much further in the dark.
+	<</if>>
 <<else>>
-    You see the town on the horizon.
+	You see the town on the horizon.
 <</if>>
 <br><br>
 
@@ -426,11 +426,11 @@ The ship makes good time, and soon approaches the coast. Wren steers towards the
 <<effects>>
 
 <<if $submissive gte 1150>>
-    "C-could you take me with you?" you ask. "On your boat."
+	"C-could you take me with you?" you ask. "On your boat."
 <<elseif $submissive lte 850>>
-    "I could use a lift," you say. "What'll it take?"
+	"I could use a lift," you say. "What'll it take?"
 <<else>>
-    "Could you take me with you?" you say. "I'm sure I can offer something."
+	"Could you take me with you?" you say. "I'm sure I can offer something."
 <</if>>
 <br><br>
 
@@ -457,11 +457,11 @@ Wren rubs <<his>> chin. "There is something I need," <<he>> says. <span class="g
 
 
 <<if $prison.watchers_friend is 2>>
-    <<He>> looks at the sky. <span class="green">"The birds don't seem bothered by you being out here either,"</span> <<he>> says. "Let me know when you're ready."
+	<<He>> looks at the sky. <span class="green">"The birds don't seem bothered by you being out here either,"</span> <<he>> says. "Let me know when you're ready."
 <<elseif $prison.schedule is "revolt">>
-    <<He>> looks at the sky. <span class="green">"The birds are busy,"</span> <<he>> says. "Nows the time."
+	<<He>> looks at the sky. <span class="green">"The birds are busy,"</span> <<he>> says. "Nows the time."
 <<else>>
-    <<He>> points at the sky. "<span class="blue">There's one problem left.</span> The birds. Hiding behind deck won't work. Tried that once. You gotta get them friendly with you, or distract them somehow."
+	<<He>> points at the sky. "<span class="blue">There's one problem left.</span> The birds. Hiding behind deck won't work. Tried that once. You gotta get them friendly with you, or distract them somehow."
 <</if>>
 <br><br>
 
@@ -505,7 +505,7 @@ Wren nods. "So it's <<veteran_guard 1>>," <<he>> says. "I've never spoken with <
 
 
 <<generate_methodical_guard 1>>
-Wren nods. "So the one in glasses is called <<methodical_guard 1>>," <<he>> says. "<<person2>><<He>> acts like a stickler for rules, but <<he>> was happy to make a deal." Wren frowns in thought.
+Wren nods. "So the one in glasses is called <<methodical_guard 1>>," <<he>> says. <<person2>>"<<He>> acts like a stickler for rules, but <<he>> was happy to make a deal." Wren frowns in thought.
 <br><br>
 
 <<link [[Next|Prison Beach Wren]]>><<endevent>><</link>>
@@ -516,37 +516,37 @@ Wren nods. "So the one in glasses is called <<methodical_guard 1>>," <<he>> says
 <<effects>>
 
 You wade out, until a wave lifts your feet from the sand. The water is gentle at first,
-<<if $swimmingskill gte 1000>>
-    but you soon have to struggle to remain above to remain above the surface. You fight, <span class="green">until the water calms.</span>
-    <br><br>
-    <<if $prison.schedule is "revolt">>
-        Nothing bothers you as you swim. <span class="green">The watchers are distracted by the other inmates.</span>
-        <br><br>
-
-        <<link [[Next|Prison Beach Escape 2]]>><</link>>
-        <br>
-    <<elseif $prison.watchers_friend is 2>>
-        You hear the beating of wings. <<beastNEWinit 2 hawk>>Two <<beastsplural>> circle overhead, <span class="green">but then fly towards the spire.</span> They won't bother you.
-        <br><br>
-        
-        <<link [[Next|Prison Beach Escape 2]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        You hear the beating of wings. <<beastNEWinit 2 hawk>><span class="red">A <<beasttype>> swoops towards you.</span> You try to shelter beneath the surface, but <<bhis>> talons find you. <<bHe>> lifts you into the air, and dumps you back on the beach.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-        <br><br>
-
-        <<link [[Next|Prison Beach]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+<<if currentSkillValue('swimmingskill') gte 1000>>
+	but you soon have to struggle to remain above to remain above the surface. You fight, <span class="green">until the water calms.</span>
+	<br><br>
+	<<if $prison.schedule is "revolt">>
+		Nothing bothers you as you swim. <span class="green">The watchers are distracted by the other inmates.</span>
+		<br><br>
+
+		<<link [[Next|Prison Beach Escape 2]]>><</link>>
+		<br>
+	<<elseif $prison.watchers_friend is 2>>
+		You hear the beating of wings. <<beastNEWinit 2 hawk>>Two <<beastsplural>> circle overhead, <span class="green">but then fly towards the spire.</span> They won't bother you.
+		<br><br>
+
+		<<link [[Next|Prison Beach Escape 2]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		You hear the beating of wings. <<beastNEWinit 2 hawk>><span class="red">A <<beasttype>> swoops towards you.</span> You try to shelter beneath the surface, but <<bhis>> talons find you. <<bHe>> lifts you into the air, and dumps you back on the beach.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+		<br><br>
+
+		<<link [[Next|Prison Beach]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <<else>>
-    <span class="red">but then it seizes you, and drags you beneath the surface.</span> You kick and thrash, but to no avail.
-    <br><br>
+	<span class="red">but then it seizes you, and drags you beneath the surface.</span> You kick and thrash, but to no avail.
+	<br><br>
 
-    The journey is short, but terrifying. You're left washed up where you started.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-    <br><br>
+	The journey is short, but terrifying. You're left washed up where you started.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+	<br><br>
 
-    <<link [[Next|Prison Beach]]>><</link>>
-    <br>
+	<<link [[Next|Prison Beach]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -572,19 +572,19 @@ You swim out, leaving the island and its prison behind. Rocks loom from the mist
 
 <<prison_bondage_removal>>
 <<if _punishments_removed is true>>
-    You're even able to use the jagged edges to cut through the prison's bondage implements.
+	You're even able to use the jagged edges to cut through the prison's bondage implements.
 <</if>>
 <br><br>
 
 You remain confident you're swimming in the right direction, despite the lack of landmarks. You swim until at last, the mist clears.
 <<if $daystate is "night">>
-    <<if $weather is "clear">>
-        The town appears on the horizon, lit up against the night.
-    <<else>>
-        You can't see much further in the night's gloom.
-    <</if>>
+	<<if $weather is "clear">>
+		The town appears on the horizon, lit up against the night.
+	<<else>>
+		You can't see much further in the night's gloom.
+	<</if>>
 <<else>>
-    The town appears on the horizon.
+	The town appears on the horizon.
 <</if>>
 <br><br>
 
@@ -596,23 +596,23 @@ You remain confident you're swimming in the right direction, despite the lack of
 <<effects>>
 
 <<if $exposed lt 2>>
-    You remove your clothes, and swim around the lagoon.
+	You remove your clothes, and swim around the lagoon.
 <<else>>
-    You swim around the lagoon.
+	You swim around the lagoon.
 <</if>>
 <<strip>>
 <<water>>
 
 <<if $rng gte 81>>
-    The small fish keep their distance.
+	The small fish keep their distance.
 <<elseif $rng gte 61>>
-    Small fish leap over you.
+	Small fish leap over you.
 <<elseif $rng gte 41>>
-    Tendrils of seaweed caress your stomach.
+	Tendrils of seaweed caress your stomach.
 <<elseif $rng gte 21>>
-    Several pebbles roll off the surrounding rocks, splashing into the water.
+	Several pebbles roll off the surrounding rocks, splashing into the water.
 <<else>>
-    A particularly large wave breaches the lagoon.
+	A particularly large wave breaches the lagoon.
 <</if>>
 
 <<swimmingskilluse>>
diff --git a/game/overworld-town/loc-prison/canteen.twee b/game/overworld-town/loc-prison/canteen.twee
index d8f031df227d367d2ce1a7e81f7ca925a8ae496a..c460d2063ae4c785433a57bcdcdfa049d2634da3 100644
--- a/game/overworld-town/loc-prison/canteen.twee
+++ b/game/overworld-town/loc-prison/canteen.twee
@@ -3,55 +3,55 @@
 
 You are in the canteen. Rows of tables fill the large room. The ceiling hangs low enough that taller inmates can't stand upright, giving it a claustrophobic feel despite its length and breadth.
 <<if $prison.schedule is "wake" or $prison.schedule is "lunch" or $prison.schedule is "dinner">>
-    Inmates queue for their grub. <<generate_methodical_guard 0>><<methodical_guard 0 cap>> stands in the corner, flipping through the pages of a book.
+	Inmates queue for their grub. <<generate_methodical_guard 0>><<methodical_guard 0 cap>> stands in the corner, flipping through the pages of a book.
 <<elseif $prison.schedule is "work">>
-    You hear clattering from the kitchen.
+	You hear clattering from the kitchen.
 <<else>>
-    It's currently empty.
+	It's currently empty.
 <</if>>
 <<endevent>>
 <br><br>
 <<if $hour is 20>>
-    You hear a bell ring. "Lockdown," <<generate_methodical_guard 0>><<methodical_guard 0>> shouts. "Back to your cells."
-    <br><br>
-    You're shuffled along with the other prisoners.
-    <br><br>
-    <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-    <br>
+	You hear a bell ring. "Lockdown," <<generate_methodical_guard 0>><<methodical_guard 0>> shouts. "Back to your cells."
+	<br><br>
+	You're shuffled along with the other prisoners.
+	<br><br>
+	<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+	<br>
 <<elseif $stress gte $stressmax>>
-    <<passout_prison>>
+	<<passout_prison>>
 <<else>>
-    
-    <<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
-        <<events_prison_attention>>
-    <<else>>
-        <<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
-            <<events_prison>>
-        <</if>>
-        <<if $prison_event_trigger>>
-            <<events_prison_triggered>>
-        <<else>>
-            <<if random(1, 5) is 5 and $eventskip isnot 1 and ($prison.schedule is "wake" or $prison.schedule is "lunch" or $prison.schedule is "dinner")>>
-                <<prison_guard_watch methodical>>
-            <<else>>
-                <<if $prison.schedule is "wake">>
-                    <<link [[Breakfast (Up to an hour)|Prison Breakfast]]>><<stress -6>><</link>><<lstress>>
-                    <br>
-                <<elseif $prison.schedule is "lunch">>
-                    <<link [[Lunch (Up to an hour)|Prison Lunch]]>><<stress -6>><</link>><<lstress>>
-                    <br>
-                <<elseif $prison.schedule is "dinner">>
-                    <<link [[Dinner (Up to an hour)|Prison Dinner]]>><<stress -6>><</link>><<lstress>>
-                    <br>
-                <</if>>
-                <br><br>
-                <<link [[Leave|Prison Yard]]>><</link>>
-                <br>
-                <<prison_map canteen>>
-            <</if>>
-        <</if>>
-        <<set $eventskip to 0>>
-    <</if>>
+
+	<<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
+		<<events_prison_attention>>
+	<<else>>
+		<<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
+			<<events_prison>>
+		<</if>>
+		<<if $prison_event_trigger>>
+			<<events_prison_triggered>>
+		<<else>>
+			<<if random(1, 5) is 5 and $eventskip isnot 1 and ($prison.schedule is "wake" or $prison.schedule is "lunch" or $prison.schedule is "dinner")>>
+				<<prison_guard_watch methodical>>
+			<<else>>
+				<<if $prison.schedule is "wake">>
+					<<link [[Breakfast (Up to an hour)|Prison Breakfast]]>><<stress -6>><</link>><<lstress>>
+					<br>
+				<<elseif $prison.schedule is "lunch">>
+					<<link [[Lunch (Up to an hour)|Prison Lunch]]>><<stress -6>><</link>><<lstress>>
+					<br>
+				<<elseif $prison.schedule is "dinner">>
+					<<link [[Dinner (Up to an hour)|Prison Dinner]]>><<stress -6>><</link>><<lstress>>
+					<br>
+				<</if>>
+				<br><br>
+				<<link [[Leave|Prison Yard]]>><</link>>
+				<br>
+				<<prison_map canteen>>
+			<</if>>
+		<</if>>
+		<<set $eventskip to 0>>
+	<</if>>
 <</if>>
 
 
@@ -61,43 +61,43 @@ You are in the canteen. Rows of tables fill the large room. The ceiling hangs lo
 
 
 <<if $leftarm is "bound" and $rightarm is "bound">>
-    <<generate1>><<person1>>
-    You queue with the other prisoners. The <<person>> behind the counter fills a bowl full of sloppy porridge, and rests it on your head.
-    <<if $worn.face.type.includes("gag")>>
-        There's a straw included, which you might be able to winkle past your gag.
-    <</if>>
-    <br><br>
-    <<endevent>>
-    <<if $worn.face.type.includes("gag")>>
-        <span class="blue">You'd be able to ask for help, if not for your gag.</span>
-        <br>
-    <<else>>
-        <<link [[Ask someone for help|Prison Breakfast Help]]>><<prison_inmates -1>><</link>><<lrespect>>
-        <br>
-    <</if>>
-    <<link [[Carefully find a seat|Prison Breakfast Careful]]>><</link>><<dancedifficulty 1 600>>
-    <br>
+	<<generate1>><<person1>>
+	You queue with the other prisoners. The <<person>> behind the counter fills a bowl full of sloppy porridge, and rests it on your head.
+	<<if $worn.face.type.includes("gag")>>
+		There's a straw included, which you might be able to winkle past your gag.
+	<</if>>
+	<br><br>
+	<<endevent>>
+	<<if $worn.face.type.includes("gag")>>
+		<span class="blue">You'd be able to ask for help, if not for your gag.</span>
+		<br>
+	<<else>>
+		<<link [[Ask someone for help|Prison Breakfast Help]]>><<prison_inmates -1>><</link>><<lrespect>>
+		<br>
+	<</if>>
+	<<link [[Carefully find a seat|Prison Breakfast Careful]]>><</link>><<dancedifficulty 1 600>>
+	<br>
 <<else>>
-    You queue with the other prisoners, and receive a bowl full of sloppy porridge.
-    <<if $worn.face.type.includes("gag")>>
-        There's a straw included, which you might be able to winkle past your gag.
-    <</if>>
-    <br><br>
-
-    You look for a free seat.
-    <<if $prison.protection is "scarred">>
-        <<generate_scarred_inmate 0>><<scarred_inmate 0 cap>><<person1>> asks you to sit on <<his>> lap.
-        <br><br>
-
-        <<link [[Sit on lap|Prison Breakfast Scarred]]>><<prison_rep scarred 1>><<prison_attention 1>><</link>><<glove>><<gattention prison>>
-        <br>
-        <<link [[Refuse|Prison Breakfast Scarred Refuse]]>><<prison_inmates 1>><</link>><<grespect>>
-    <<else>>
-        <br><br>
-
-        <<link [[Next|Prison Breakfast Prayer]]>><</link>>
-        <br>
-    <</if>>
+	You queue with the other prisoners, and receive a bowl full of sloppy porridge.
+	<<if $worn.face.type.includes("gag")>>
+		There's a straw included, which you might be able to winkle past your gag.
+	<</if>>
+	<br><br>
+
+	You look for a free seat.
+	<<if $prison.protection is "scarred">>
+		<<generate_scarred_inmate 0>><<scarred_inmate 0 cap>><<person1>> asks you to sit on <<his>> lap.
+		<br><br>
+
+		<<link [[Sit on lap|Prison Breakfast Scarred]]>><<prison_rep scarred 1>><<prison_attention 1>><</link>><<glove>><<gattention prison>>
+		<br>
+		<<link [[Refuse|Prison Breakfast Scarred Refuse]]>><<prison_inmates 1>><</link>><<grespect>>
+	<<else>>
+		<br><br>
+
+		<<link [[Next|Prison Breakfast Prayer]]>><</link>>
+		<br>
+	<</if>>
 <</if>>
 
 :: Prison Breakfast Help
@@ -105,11 +105,11 @@ You are in the canteen. Rows of tables fill the large room. The ceiling hangs lo
 
 <<generate1>><<person1>>
 <<if $submissive gte 1150>>
-    "C-could someone help me?" you ask. "Please?"
+	"C-could someone help me?" you ask. "Please?"
 <<elseif $submissive lte 850>>
-    "Someone gimme a hand," you say.
+	"Someone gimme a hand," you say.
 <<else>>
-    "Could someone give me a hand," you say.
+	"Could someone give me a hand," you say.
 <</if>>
 <br><br>
 
@@ -126,32 +126,32 @@ A <<person>> takes the bowl from your head. "Sure darling," <<he>> smacks your <
 <<effects>>
 
 <<if $danceSuccess>>
-    You walk to a free seat. A couple of inmates stick out their legs, <span class="green">but you step over them without losing balance.</span>
-    <br><br>
+	You walk to a free seat. A couple of inmates stick out their legs, <span class="green">but you step over them without losing balance.</span>
+	<br><br>
 
-    <<link [[Next|Prison Breakfast Prayer]]>><</link>>
-    <br>
+	<<link [[Next|Prison Breakfast Prayer]]>><</link>>
+	<br>
 <<else>>
-    You walk towards a free seat. An inmate sticks out a leg, <span class="red">tripping you.</span> Your bowl clatters against the ground, spilling food everywhere.
-    <br><br>
-
-    <<if $worn.face.type.includes("gag")>>
-        <<generate_veteran_guard 0>><<person1>>
-        You hear the stomp of boots. Before you can stand, <<veteran_guard 0>> presses <<his>> foot against your back. "Dirtying our nice clean floor?" <<he>> says. "I won't have it."
-        <br><br>
-
-        <<link [[Next|Prison Breakfast Lick Refuse]]>><<set $phase to 1>><</link>>
-        <br>
-    <<else>>
-        <<generate_veteran_guard 0>><<person1>>
-        You hear the stomp of boots. Before you can stand, <<veteran_guard 0>> presses <<his>> foot against your back. "Dirtying our nice clean floor?" <<he>> says. "I won't have it. Lick it up. All of it."
-        <br><br>
-
-        <<link [[Lick|Prison Breakfast Lick]]>><<prison_inmates -3>><<trauma 6>><</link>><<llrespect>><<gtrauma>>
-        <br>
-        <<link [[Refuse|Prison Breakfast Lick Refuse]]>><<prison_inmates 3>><<pain 8>><<trauma 12>><<stress 12>><<prison_guards -1>><</link>><<ggpain>><<ggtrauma>><<ggstress>><<gsuspicion>><<ggrespect>>
-        <br><br>
-    <</if>>
+	You walk towards a free seat. An inmate sticks out a leg, <span class="red">tripping you.</span> Your bowl clatters against the ground, spilling food everywhere.
+	<br><br>
+
+	<<if $worn.face.type.includes("gag")>>
+		<<generate_veteran_guard 0>><<person1>>
+		You hear the stomp of boots. Before you can stand, <<veteran_guard 0>> presses <<his>> foot against your back. "Dirtying our nice clean floor?" <<he>> says. "I won't have it."
+		<br><br>
+
+		<<link [[Next|Prison Breakfast Lick Refuse]]>><<set $phase to 1>><</link>>
+		<br>
+	<<else>>
+		<<generate_veteran_guard 0>><<person1>>
+		You hear the stomp of boots. Before you can stand, <<veteran_guard 0>> presses <<his>> foot against your back. "Dirtying our nice clean floor?" <<he>> says. "I won't have it. Lick it up. All of it."
+		<br><br>
+
+		<<link [[Lick|Prison Breakfast Lick]]>><<prison_inmates -3>><<trauma 6>><</link>><<llrespect>><<gtrauma>>
+		<br>
+		<<link [[Refuse|Prison Breakfast Lick Refuse]]>><<prison_inmates 3>><<pain 8>><<trauma 12>><<stress 12>><<prison_guards -1>><</link>><<ggpain>><<ggtrauma>><<ggstress>><<gsuspicion>><<ggrespect>>
+		<br><br>
+	<</if>>
 <</if>>
 
 
@@ -189,15 +189,15 @@ You can feel the other inmates watching. <<veteran_guard 0 cap>> doesn't remove
 You sit on <<scarred_inmate 0 apo>> lap.
 
 <<if $prison.scarred gte 80>>
-    <<He>> takes your bowl and spoon, and feeds you <<himself>>. If <<his>> gang finds this strange, they give no sign.
+	<<He>> takes your bowl and spoon, and feeds you <<himself>>. If <<his>> gang finds this strange, they give no sign.
 <<elseif $prison.scarred gte 20>>
-    <<He>> takes your bowl, and holds it from you as you eat.
+	<<He>> takes your bowl, and holds it from you as you eat.
 <<else>>
-    You're too high, and far, from the table to use it. You rest the bowl on your own thigh while eating.
+	You're too high, and far, from the table to use it. You rest the bowl on your own thigh while eating.
 <</if>>
 <br><br>
 <<if random(1, 2) is 2>>
-    You endure the occasional pinch.<<gstress>><<gpain>><<stress 6>><<pain 4>>
+	You endure the occasional pinch.<<gstress>><<gpain>><<stress 6>><<pain 4>>
 <</if>>
 <br><br>
 
@@ -209,9 +209,9 @@ You sit on <<scarred_inmate 0 apo>> lap.
 
 You refuse <<scarred_inmate 0>>, and sit elsewhere.
 <<if $prison.scarred gte 80>>
-    <<He>> looks hurt.
+	<<He>> looks hurt.
 <<else>>
-    You hear <<him>> snarl.
+	You hear <<him>> snarl.
 <</if>>
 <br><br>
 
@@ -250,33 +250,33 @@ You shuffle outside with the other inmates.
 You bow your head, but pay no attention to <<methodical_guard 0 apo>> words.
 
 <<if ($loveInterest.primary is "Robin" or $loveInterest.secondary is "Robin") and random(1, 3) is 3>>
-    You think about Robin. You hope <<nnpc_he "Robin">>'s doing okay without you.
+	You think about Robin. You hope <<nnpc_he "Robin">>'s doing okay without you.
 <<elseif ($loveInterest.primary is "Whitney" or $loveInterest.secondary is "Whitney") and random(1, 3) is 3>>
-    You think about Whitney. You bet <<nnpc_he Whitney>> misses you, whether <<nnpc_he Whitney>> would admit it or not.
+	You think about Whitney. You bet <<nnpc_he Whitney>> misses you, whether <<nnpc_he Whitney>> would admit it or not.
 <<elseif ($loveInterest.primary is "Eden" or $loveInterest.secondary is "Eden") and random(1, 3) is 3>>
-    You think about Eden. You hope <<nnpc_he Eden>> isn't too worried. You doubt even <<nnpc_he Eden>> could make it out here.
+	You think about Eden. You hope <<nnpc_he Eden>> isn't too worried. You doubt even <<nnpc_he Eden>> could make it out here.
 <<elseif ($loveInterest.primary is "Avery" or $loveInterest.secondary is "Avery") and random(1, 3) is 3>>
-    You think about Avery, and wonder if <<nnpc_he Avery>> could buy your freedom. 
+	You think about Avery, and wonder if <<nnpc_he Avery>> could buy your freedom.
 <<elseif ($loveInterest.primary is "Sydney" or $loveInterest.secondary is "Sydney") and random(1, 3) is 3>>
-    You think about Sydney. You know you're in <<nnpc_his Sydney>> thoughts as well.
+	You think about Sydney. You know you're in <<nnpc_his Sydney>> thoughts as well.
 <<elseif ($loveInterest.primary is "Alex" or $loveInterest.secondary is "Alex") and random(1, 3) is 3>>
-    You think about Alex, and wonder how the farm is doing.
+	You think about Alex, and wonder how the farm is doing.
 <<elseif ($loveInterest.primary is "Black Wolf" or $loveInterest.secondary is "Black Wolf") and random(1, 3) is 3>>
-    You think about the black wolf, and the pack. You hope they're not hungry.
+	You think about the black wolf, and the pack. You hope they're not hungry.
 <<elseif ($loveInterest.primary is "Great Hawk" or $loveInterest.secondary is "Great Hawk") and random(1, 3) is 3>>
-    You think about the great hawk. <<nnpc_He "Great Hawk">> must be watching for you, but you doubt <<nnpc_he "Great Hawk">> would search this far.
+	You think about the great hawk. <<nnpc_He "Great Hawk">> must be watching for you, but you doubt <<nnpc_he "Great Hawk">> would search this far.
 <<else>>
-    <<if $rng gte 81>>
-        You hope the orphans are okay.
-    <<elseif $rng gte 61>>
-        You think about school, and hope your absence doesn't count as truancy.
-    <<elseif $rng gte 41>>
-        Your thoughts wander all over.
-    <<elseif $rng gte 21>>
-        You wonder how many of the other inmates are paying attention.
-    <<else>>
-        You hear <<his>> voice though. It seems to echo, but there's something wrong with it. Like another voice is layered atop <<his>>.
-    <</if>>
+	<<if $rng gte 81>>
+		You hope the orphans are okay.
+	<<elseif $rng gte 61>>
+		You think about school, and hope your absence doesn't count as truancy.
+	<<elseif $rng gte 41>>
+		Your thoughts wander all over.
+	<<elseif $rng gte 21>>
+		You wonder how many of the other inmates are paying attention.
+	<<else>>
+		You hear <<his>> voice though. It seems to echo, but there's something wrong with it. Like another voice is layered atop <<his>>.
+	<</if>>
 <</if>>
 <br><br>
 
@@ -293,33 +293,33 @@ You shuffle outside with the other inmates.
 <<effects>>
 
 <<if $prison.shock is 1>>
-    <<if $prison.guards gte 40>>
-        You stare at <<methodical_guard 0>>. "Prisoner 144," <<he>> snaps. "<span class="green">I'll give you another chance.</span> Bow your head at once."
-        <br><br>
-
-        <<link [[Bow|Prison Breakfast Prayer Bow]]>><<sub 1>><<purity 2>><</link>><<gpurity>>
-        <br>
-        <<link [[Refuse again|Prison Breakfast Prayer Refuse 2]]>><<prison_inmates 1>><<prison_guards -1>><</link>><<gsuspicion>><<grespect>>
-        <br>
-    <<else>>
-        You stare at <<methodical_guard 0>>. <<He>> reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
-        <br><br>
-        You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from the canteen. The other inmates tease you as you pass, but it doesn't sound malicious.
-        <<bind>>
-        <br><br>
-        <<link [[Next|Prison Punishment]]>><<endevent>><</link>>
-    <</if>>
+	<<if $prison.guards gte 40>>
+		You stare at <<methodical_guard 0>>. "Prisoner 144," <<he>> snaps. "<span class="green">I'll give you another chance.</span> Bow your head at once."
+		<br><br>
+
+		<<link [[Bow|Prison Breakfast Prayer Bow]]>><<sub 1>><<purity 2>><</link>><<gpurity>>
+		<br>
+		<<link [[Refuse again|Prison Breakfast Prayer Refuse 2]]>><<prison_inmates 1>><<prison_guards -1>><</link>><<gsuspicion>><<grespect>>
+		<br>
+	<<else>>
+		You stare at <<methodical_guard 0>>. <<He>> reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
+		<br><br>
+		You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from the canteen. The other inmates tease you as you pass, but it doesn't sound malicious.
+		<<bind>>
+		<br><br>
+		<<link [[Next|Prison Punishment]]>><<endevent>><</link>>
+	<</if>>
 <<else>>
-    You stare at <<methodical_guard 0>>. <<He>> reaches into <<his>> shirt pocket, <span class="green">then hesitates.</span> <<He>> commences without mentioning you.
-    <br><br>
-    <<He>> recites a litany of punishment, before slamming the book shut. "Rise. Everyone outside."
-    <br><br>
+	You stare at <<methodical_guard 0>>. <<He>> reaches into <<his>> shirt pocket, <span class="green">then hesitates.</span> <<He>> commences without mentioning you.
+	<br><br>
+	<<He>> recites a litany of punishment, before slamming the book shut. "Rise. Everyone outside."
+	<br><br>
 
-    You shuffle outside with the other inmates.
-    <br><br>
+	You shuffle outside with the other inmates.
+	<br><br>
 
-    <<link [[Next|Prison Yard]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Yard]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 
@@ -337,43 +337,43 @@ You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you fro
 <<effects>>
 <<pass 1>><<advancetohour>>
 <<if $leftarm is "bound" and $rightarm is "bound">>
-    <<generate1>><<person1>>
-    You queue with the other prisoners. The <<person>> behind the counter fills a bowl full of sloppy potatoe soup, and rests it on your head.
-    <<if $worn.face.type.includes("gag")>>
-        There's a straw included, which you might be able to winkle past your gag.
-    <</if>>
-    <br><br>
-    <<endevent>>
-    <<if $worn.face.type.includes("gag")>>
-        <span class="blue">You'd be able to ask for help, if not for your gag.</span>
-        <br>
-    <<else>>
-        <<link [[Ask someone for help|Prison Breakfast Help]]>><<prison_inmates -1>><</link>><<lrespect>>
-        <br>
-    <</if>>
-    <<link [[Carefully find a seat|Prison Breakfast Careful]]>><</link>><<dancedifficulty 1 600>>
-    <br>
+	<<generate1>><<person1>>
+	You queue with the other prisoners. The <<person>> behind the counter fills a bowl full of sloppy potatoe soup, and rests it on your head.
+	<<if $worn.face.type.includes("gag")>>
+		There's a straw included, which you might be able to winkle past your gag.
+	<</if>>
+	<br><br>
+	<<endevent>>
+	<<if $worn.face.type.includes("gag")>>
+		<span class="blue">You'd be able to ask for help, if not for your gag.</span>
+		<br>
+	<<else>>
+		<<link [[Ask someone for help|Prison Breakfast Help]]>><<prison_inmates -1>><</link>><<lrespect>>
+		<br>
+	<</if>>
+	<<link [[Carefully find a seat|Prison Breakfast Careful]]>><</link>><<dancedifficulty 1 600>>
+	<br>
 <<else>>
-        You queue with the other prisoners, and receive a bowl of potato soup.
-        <<if $worn.face.type.includes("gag")>>
-            There's a straw included, which you might be able to winkle past your gag.
-        <</if>>
-        <br><br>
-
-    You look for a free seat.
-    <<if $prison.protection is "tattooed">>
-        <<generate_tattooed_inmate 0>><<tattooed_inmate 0 cap>><<person1>> steps in your way. "My <<girl>>'s not sitting alone," <<he>> says, grabbing your arm.
-        <br><br>
-
-        <<link [[Comply|Prison Lunch Tattooed]]>><<prison_rep tattooed 1>><<prison_attention 1>><</link>><<glove>><<gattention prison>>
-        <br>
-        <<link [[Refuse|Prison Lunch Tattooed Refuse]]>><<prison_inmates 1>><</link>><<grespect>>
-    <<else>>
-        <br><br>
-
-        <<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+		You queue with the other prisoners, and receive a bowl of potato soup.
+		<<if $worn.face.type.includes("gag")>>
+			There's a straw included, which you might be able to winkle past your gag.
+		<</if>>
+		<br><br>
+
+	You look for a free seat.
+	<<if $prison.protection is "tattooed">>
+		<<generate_tattooed_inmate 0>><<tattooed_inmate 0 cap>><<person1>> steps in your way. "My <<girl>>'s not sitting alone," <<he>> says, grabbing your arm.
+		<br><br>
+
+		<<link [[Comply|Prison Lunch Tattooed]]>><<prison_rep tattooed 1>><<prison_attention 1>><</link>><<glove>><<gattention prison>>
+		<br>
+		<<link [[Refuse|Prison Lunch Tattooed Refuse]]>><<prison_inmates 1>><</link>><<grespect>>
+	<<else>>
+		<br><br>
+
+		<<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <</if>>
 
 :: Prison Lunch Tattooed
@@ -381,17 +381,17 @@ You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you fro
 
 You sit beside <<tattooed_inmate 0>>, the pair of you flanked by <<his>> gang.
 <<if $prison.tattooed gte 80>>
-    <<He>> brags openly about "having" you, stopping passers by and making sure they have a good look.
+	<<He>> brags openly about "having" you, stopping passers by and making sure they have a good look.
 <<elseif $prison.tattooed gte 20>>
-    <<He>> brags openly about "having" you.
-<<else>>  
-    <<He>> draws a lot of attention, and seems eager to be seen with you.
+	<<He>> brags openly about "having" you.
+<<else>>
+	<<He>> draws a lot of attention, and seems eager to be seen with you.
 <</if>>
 <br><br>
 
 <<if random(1, 2) is 2>>
-    You endure the occasional grope.<<gstress>><<stress 6>><<garousal>><<arousal 6>>
-    <br><br>
+	You endure the occasional grope.<<gstress>><<stress 6>><<garousal>><<arousal 6>>
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
@@ -403,9 +403,9 @@ You sit beside <<tattooed_inmate 0>>, the pair of you flanked by <<his>> gang.
 
 You shake off <<tattooed_inmate 0 apo>> hand.
 <<if $prison.tattooed gte 80>>
-    "Fuck I do?" <<he>> asks. "Fine. Mind some fucker doesn't rape you."
+	"Fuck I do?" <<he>> asks. "Fine. Mind some fucker doesn't rape you."
 <<else>>
-    <<He>> grabs you again, but a <<generate2>><<person2>><<person>> beside <<him>> grabs <<his>> arm in turn, and glances at the guard. <<tattooed_inmate 0 cap>> releases you, and parts with a glare.
+	<<He>> grabs you again, but a <<generate2>><<person2>><<person>> beside <<him>> grabs <<his>> arm in turn, and glances at the guard. <<tattooed_inmate 0 cap>> releases you, and parts with a glare.
 <</if>>
 <br><br>
 
@@ -419,66 +419,66 @@ You find somewhere to sit, and eat your soup.
 <<effects>>
 <<pass 1>><<advancetohour>>
 <<if $leftarm is "bound" and $rightarm is "bound">>
-    <<generate1>><<person1>>
-    You queue with the other prisoners. The <<person>> behind the counter fills a bowl full of mixed vegetable soup and diced meat. <<He>> rests it on your head.
-    <<if $worn.face.type.includes("gag")>>
-        There's a straw included, which you might be able to winkle past your gag. Good for the soup, at least.
-    <</if>>
-    <br><br>
-    <<endevent>>
-    <<if $worn.face.type.includes("gag")>>
-        <span class="blue">You'd be able to ask for help, if not for your gag.</span>
-        <br>
-    <<else>>
-        <<link [[Ask someone for help|Prison Breakfast Help]]>><<prison_inmates -1>><</link>><<lrespect>>
-        <br>
-    <</if>>
-    <<link [[Carefully find a seat|Prison Breakfast Careful]]>><</link>><<dancedifficulty 1 600>>
-    <br>
+	<<generate1>><<person1>>
+	You queue with the other prisoners. The <<person>> behind the counter fills a bowl full of mixed vegetable soup and diced meat. <<He>> rests it on your head.
+	<<if $worn.face.type.includes("gag")>>
+		There's a straw included, which you might be able to winkle past your gag. Good for the soup, at least.
+	<</if>>
+	<br><br>
+	<<endevent>>
+	<<if $worn.face.type.includes("gag")>>
+		<span class="blue">You'd be able to ask for help, if not for your gag.</span>
+		<br>
+	<<else>>
+		<<link [[Ask someone for help|Prison Breakfast Help]]>><<prison_inmates -1>><</link>><<lrespect>>
+		<br>
+	<</if>>
+	<<link [[Carefully find a seat|Prison Breakfast Careful]]>><</link>><<dancedifficulty 1 600>>
+	<br>
 <<else>>
-    You queue with the other prisoners, and receive a slab of meat and a ladle-full of mixed vegetable soup.
-    <<if $worn.face.type.includes("gag")>>
-        There's a straw included, which you might be able to winkle past your gag. Good for the soup, at least.
-    <</if>>
-    <br><br>
-    <<if $prison.kylar is "active">>
-        Kylar appears behind you, following close.
-        <br><br>
-        <<npc Kylar>><<person1>>
-        <<link [["Let " + $NPCList[0].pronouns.him + " sit beside you"|Prison Dinner Kylar]]>><<npcincr Kylar love 1>><<npcincr Kylar rage -1>><<prison_inmates -1>><</link>><<lrespect>><<glove>><<lksuspicion>>
-        <br>
-        <<link [[Insist on sitting alone|Prison Dinner Kylar Refuse]]>><<npcincr Kylar love -1>><<npcincr Kylar rage 1>><<prison_inmates 1>><</link>><<llove>><<gksuspicion>><<grespect>>
-        <br>
-    <<elseif $rng gte 81>>
-        You find a seat, and eat your meal.
-        <br><br>
-        <<generate1>><<person1>>
-        "Hey <<girl>>," says the <<person>> opposite. <<He>> rests <<his>> elbow on the table. "Wrestle?"
-        <br><br>
-
-        <<if $leftarm is "bound" and $rightarm is "bound">>
-            <span class="blue">You can't wrestle with your arms bound.</span>
-        <<else>>
-            <<link [[Wrestle|Prison Dinner Wrestle]]>><</link>><<physiquedifficulty 2000 16000>>
-        <</if>>
-        <br>
-        <<link [[Decline|Prison Dinner Wrestle Decline]]>><<prison_inmates -1>><</link>><<lrespect>>
-        <br>
-    <<elseif $rng gte 61>>
-        <<generate1>><<person1>>
-        "Oi," says a <<person>>, slamming <<his>> tray beside you. "This is my seat."
-        <br><br>
-
-        <<link [[Threaten|Prison Dinner Threaten]]>><<prison_inmates 1>><</link>><<grespect>>
-        <br>
-        <<link [[Move|Prison Dinner Move]]>><<prison_inmates -1>><</link>><<lrespect>>
-        <br>
-    <<else>>
-        No one pays you much mind.
-        <br><br>
-        <<link [[Next|Prison Breakfast Prayer]]>><</link>>
-        <br>
-    <</if>>
+	You queue with the other prisoners, and receive a slab of meat and a ladle-full of mixed vegetable soup.
+	<<if $worn.face.type.includes("gag")>>
+		There's a straw included, which you might be able to winkle past your gag. Good for the soup, at least.
+	<</if>>
+	<br><br>
+	<<if $prison.kylar is "active">>
+		Kylar appears behind you, following close.
+		<br><br>
+		<<npc Kylar>><<person1>>
+		<<link [["Let " + $NPCList[0].pronouns.him + " sit beside you"|Prison Dinner Kylar]]>><<npcincr Kylar love 1>><<npcincr Kylar rage -1>><<prison_inmates -1>><</link>><<lrespect>><<glove>><<lksuspicion>>
+		<br>
+		<<link [[Insist on sitting alone|Prison Dinner Kylar Refuse]]>><<npcincr Kylar love -1>><<npcincr Kylar rage 1>><<prison_inmates 1>><</link>><<llove>><<gksuspicion>><<grespect>>
+		<br>
+	<<elseif $rng gte 81>>
+		You find a seat, and eat your meal.
+		<br><br>
+		<<generate1>><<person1>>
+		"Hey <<girl>>," says the <<person>> opposite. <<He>> rests <<his>> elbow on the table. "Wrestle?"
+		<br><br>
+
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			<span class="blue">You can't wrestle with your arms bound.</span>
+		<<else>>
+			<<link [[Wrestle|Prison Dinner Wrestle]]>><</link>><<physiquedifficulty 2000 16000>>
+		<</if>>
+		<br>
+		<<link [[Decline|Prison Dinner Wrestle Decline]]>><<prison_inmates -1>><</link>><<lrespect>>
+		<br>
+	<<elseif $rng gte 61>>
+		<<generate1>><<person1>>
+		"Oi," says a <<person>>, slamming <<his>> tray beside you. "This is my seat."
+		<br><br>
+
+		<<link [[Threaten|Prison Dinner Threaten]]>><<prison_inmates 1>><</link>><<grespect>>
+		<br>
+		<<link [[Move|Prison Dinner Move]]>><<prison_inmates -1>><</link>><<lrespect>>
+		<br>
+	<<else>>
+		No one pays you much mind.
+		<br><br>
+		<<link [[Next|Prison Breakfast Prayer]]>><</link>>
+		<br>
+	<</if>>
 <</if>>
 
 :: Prison Dinner Kylar
@@ -513,11 +513,11 @@ You take a seat in a crowded spot. Kylar tries to squeeze in beside you, but the
 
 You grasp <<his>> hand, and wrestle.
 <<if $physiqueSuccess>>
-    <<He>> holds firm at first, but once you have momentum, <span class="green">you push <<him>> all the way.</span> "Stronger than you look," <<he>> comments, wringing <<his>> hand.<<grespect>><<prison_inmates 1>>
-    <br><br>
+	<<He>> holds firm at first, but once you have momentum, <span class="green">you push <<him>> all the way.</span> "Stronger than you look," <<he>> comments, wringing <<his>> hand.<<grespect>><<prison_inmates 1>>
+	<br><br>
 <<else>>
-    You strain with all your might, <span class="red">but <<he>> gains momentum</span> and pins your hand against the table. "Gotcha," <<he>> says with pride.<<gpain>><<pain 4>>
-    <br><br>
+	You strain with all your might, <span class="red">but <<he>> gains momentum</span> and pins your hand against the table. "Gotcha," <<he>> says with pride.<<gpain>><<pain 4>>
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
@@ -539,30 +539,30 @@ You refuse the challenge.
 <<effects>>
 
 <<if $submissive gte 1150>>
-    You stand, your fists clenched, and glare at the <<person>>. <<gagged_speech "I-I'm not moving" ,>> you say.
+	You stand, your fists clenched, and glare at the <<person>>. <<gagged_speech "I-I'm not moving" ,>> you say.
 <<elseif $submissive lte 850>>
-    You stand and shove the <<person>>. <<gagged_speech "Fucking make me" ,>> you say.
+	You stand and shove the <<person>>. <<gagged_speech "Fucking make me" ,>> you say.
 <<else>>
-    You stand and glare at the <<person>>. <<gagged_speech "No" ,>> you say. "What you gonna do?"
+	You stand and glare at the <<person>>. <<gagged_speech "No" ,>> you say. "What you gonna do?"
 <</if>>
 <br><br>
 
 <<if $prison.inmates gte random(1, 100)>>
-    <<He>> takes a deep breath, <span class="green">and laughs.</span> "Turns out this ain't my seat," <<he>> says. "Carry on." <<He>> sits some distance away.
-    <br><br>
-    
-    <<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
-    <br>
+	<<He>> takes a deep breath, <span class="green">and laughs.</span> "Turns out this ain't my seat," <<he>> says. "Carry on." <<He>> sits some distance away.
+	<br><br>
+
+	<<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<He>> takes a deep breath, <span class="red">and pulls <<his>> arm back for a punch.</span>
-    <br><br>
-
-    <<link [[Dodge|Prison Dinner Dodge]]>><</link>><<dancedifficulty 1 500>>
-    <br>
-    <<link [[Dodge and humiliate|Prison Dinner Humiliate]]>><</link>><<dancedifficulty 1 1000>>
-    <br>
-    <<link [[Punch back|Prison Dinner Punch]]>><</link>><<physiquedifficulty 1 16000>>
-    <br>
+	<<He>> takes a deep breath, <span class="red">and pulls <<his>> arm back for a punch.</span>
+	<br><br>
+
+	<<link [[Dodge|Prison Dinner Dodge]]>><</link>><<dancedifficulty 1 500>>
+	<br>
+	<<link [[Dodge and humiliate|Prison Dinner Humiliate]]>><</link>><<dancedifficulty 1 1000>>
+	<br>
+	<<link [[Punch back|Prison Dinner Punch]]>><</link>><<physiquedifficulty 1 16000>>
+	<br>
 <</if>>
 
 
@@ -571,16 +571,16 @@ You refuse the challenge.
 
 <<generate_methodical_guard 1>>
 <<if $danceSuccess>>
-    <span class="green">You duck and twirl beneath the <<persons>> blow.</span> The other inmates cheer, but a whistle pierces the din.<<grespect>><<prison_inmates 1>>
-    <br><br>
-    "Order," <<methodical_guard 1>> shouts. "I will have order!" You sit back down. The <<person>> hesitates, then finds a seat elsewhere.
-    <br><br>
+	<span class="green">You duck and twirl beneath the <<persons>> blow.</span> The other inmates cheer, but a whistle pierces the din.<<grespect>><<prison_inmates 1>>
+	<br><br>
+	"Order," <<methodical_guard 1>> shouts. "I will have order!" You sit back down. The <<person>> hesitates, then finds a seat elsewhere.
+	<br><br>
 <<else>>
-    You try to duck, <span class="red">but the <<person>>'s fist connects with your cheek.</span> You end up flat on your back.<<gpain>><<gstress>><<lrespect>><<pain 4>><<stress 6>><<prison_inmates -1>>
-    <br><br>
+	You try to duck, <span class="red">but the <<person>>'s fist connects with your cheek.</span> You end up flat on your back.<<gpain>><<gstress>><<lrespect>><<pain 4>><<stress 6>><<prison_inmates -1>>
+	<br><br>
 
-    "Order," <<methodical_guard 1>> shouts. "I will have order!" The <<person>> takes your seat, so you sit elsewhere.
-    <br><br>
+	"Order," <<methodical_guard 1>> shouts. "I will have order!" The <<person>> takes your seat, so you sit elsewhere.
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
@@ -591,26 +591,26 @@ You refuse the challenge.
 
 <<generate_methodical_guard 1>>
 <<if $danceSuccess>>
-    <span class="green">You duck and twirl beneath the <<persons>> blow,</span> grab the hem of <<his>> trousers, <span class="lewd">and tug them down to <<his>> knees.</span>
-    <br><br>
-    <<He>> covers <<his>>
-    <<if $NPCList[0].penis isnot "none">>
-        <<print $NPCList[0].penisdesc>> in a hurry,
-    <<else>>
-        pussy in a hurry,
-    <</if>>
-    as the inmates erupt in laughter.
-    <<ggrespect>><<prison_inmates 3>>
-    <br><br>
-
-    "Order," <<methodical_guard 1>> shouts. "I will have order!" You sit back down. The <<person>>, face red, finds a seat elsewhere.
-    <br><br>
+	<span class="green">You duck and twirl beneath the <<persons>> blow,</span> grab the hem of <<his>> trousers, <span class="lewd">and tug them down to <<his>> knees.</span>
+	<br><br>
+	<<He>> covers <<his>>
+	<<if $NPCList[0].penis isnot "none">>
+		<<print $NPCList[0].penisdesc>> in a hurry,
+	<<else>>
+		pussy in a hurry,
+	<</if>>
+	as the inmates erupt in laughter.
+	<<ggrespect>><<prison_inmates 3>>
+	<br><br>
+
+	"Order," <<methodical_guard 1>> shouts. "I will have order!" You sit back down. The <<person>>, face red, finds a seat elsewhere.
+	<br><br>
 <<else>>
-    You try to duck, <span class="red">but the <<person>>'s fist connects with your cheek.</span> You end up flat on your back.<<gpain>><<gstress>><<lrespect>><<pain 4>><<stress 6>><<prison_inmates -1>>
-    <br><br>
+	You try to duck, <span class="red">but the <<person>>'s fist connects with your cheek.</span> You end up flat on your back.<<gpain>><<gstress>><<lrespect>><<pain 4>><<stress 6>><<prison_inmates -1>>
+	<br><br>
 
-    "Order," <<methodical_guard 1>> shouts. "I will have order!" The <<person>> takes your seat, so you sit elsewhere.
-    <br><br>
+	"Order," <<methodical_guard 1>> shouts. "I will have order!" The <<person>> takes your seat, so you sit elsewhere.
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
@@ -620,16 +620,16 @@ You refuse the challenge.
 <<effects>>
 
 <<if $physiqueSuccess>>
-    <span class="green">You're faster,</span> and smack <<him>> right on the nose. <<He>> shouts and clutches <<his>> face while staggering backwards. The inmates cheer.<<ggrespect>><<prison_inmates 3>>
-    <br><br>
-    "Order," <<methodical_guard 1>> shouts. "I will have order!" You take your seat. The <<person>> finds <<his>> own.
-    <br><br>
+	<span class="green">You're faster,</span> and smack <<him>> right on the nose. <<He>> shouts and clutches <<his>> face while staggering backwards. The inmates cheer.<<ggrespect>><<prison_inmates 3>>
+	<br><br>
+	"Order," <<methodical_guard 1>> shouts. "I will have order!" You take your seat. The <<person>> finds <<his>> own.
+	<br><br>
 <<else>>
-    You try to counterattack, <span class="red">but you're too slow.</span> <<His>> fist collides with your face, and you end up flat on your back.<<gpain>><<gstress>><<lrespect>><<pain 4>><<stress>><<prison_inmates -1>>
-    <br><br>
+	You try to counterattack, <span class="red">but you're too slow.</span> <<His>> fist collides with your face, and you end up flat on your back.<<gpain>><<gstress>><<lrespect>><<pain 4>><<stress>><<prison_inmates -1>>
+	<br><br>
 
-    "Order," <<methodical_guard 1>> shouts. "I will have order!" The <<person>> takes your seat, so you sit elsewhere.
-    <br><br>
+	"Order," <<methodical_guard 1>> shouts. "I will have order!" The <<person>> takes your seat, so you sit elsewhere.
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Breakfast Prayer]]>><<endevent>><</link>>
diff --git a/game/overworld-town/loc-prison/events.twee b/game/overworld-town/loc-prison/events.twee
index 5baf44d25fb2acd8f471a272451c8a36597f0fc7..0a6fb7fbbd5cc47b8b955d6624bdf28cfec8559c 100644
--- a/game/overworld-town/loc-prison/events.twee
+++ b/game/overworld-town/loc-prison/events.twee
@@ -310,7 +310,7 @@ You shout. The <<person>> shoves a hand over your mouth. "You'll regret that, sl
 	<<molested>>
 	<<set $enemytrust -= 100>>
 	<<set $enemyanger += 100>>
-	
+
 	The commotion draws attention, and a tight circle of naked and nearly naked <<people>> forms around you.
 	<<set $timer to random(3, 12)>>
 <</if>>
@@ -456,7 +456,7 @@ You shout. The <<person>> shoves a hand over your mouth. "You'll regret that, sl
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<generate_veteran_guard 0>><<person1>>
 	"You're disturbing the peace and tranquility of this institution," <<veteran_guard 0>> says. <<He>> rests a hand on your shoulder. "You're coming with me."
 	<br><br>
@@ -770,7 +770,7 @@ You nod. <<veteran_guard 0 cap>> shoves you through another door.
 	<<generate1>><<generate2>><<generate3>>
 	<<for _i = 0; _i < $NPCList.length; _i++>>
 		<<npcClothesType $NPCList[_i] "town">>
-	<</for>>	
+	<</for>>
 	<<person1>>
 	You hear a few unfamiliar voices in the room behind, muffled through the wall. Someone spanks your <<bottom>>.
 	<br><br>
@@ -792,7 +792,7 @@ You nod. <<veteran_guard 0 cap>> shoves you through another door.
 	<<for _i = 0; _i < $NPCList.length; _i++>>
 		<<npcClothesType $NPCList[_i] "town">>
 	<</for>>
-	A <<person1>><<person>>, <<person2>><<person>>, and <<person3>><<person>> enter, lust in their eyes. They're not dressed like inmates.
+	A <<fullGroup>> enter, lust in their eyes. They're not dressed like inmates.
 	<br><br>
 	<<if $prison.attention_level is 1>>
 		<<set $prison_pimp to 1>>
@@ -816,13 +816,13 @@ You nod. <<veteran_guard 0 cap>> shoves you through another door.
 	<<molested>>
 
 	<<maninit>><<set $position to "wall">><<set $head to "bound">>
-	
+
 <</if>>
 
 <<effects>>
 
 <<effectsman>><<man>>
-	
+
 
 <<stateman>>
 <br><br>
@@ -885,13 +885,13 @@ You nod. <<veteran_guard 0 cap>> shoves you through another door.
 	<<molested>>
 
 	<<maninit>>
-	
+
 <</if>>
 
 <<effects>>
 
 <<effectsman>><<man>>
-	
+
 
 <<stateman>>
 <br><br>
@@ -937,7 +937,7 @@ You nod. <<veteran_guard 0 cap>> shoves you through another door.
 	<<for _i = 0; _i < $NPCList.length; _i++>>
 		<<npcClothesType $NPCList[_i] "town">>
 	<</for>>
-	A <<person1>><<person>>, <<person2>><<person>>, and <<person3>><<person>> enter, eager for their turn.
+	A <<fullGroup>> enter, eager for their turn.
 	<br><br>
 
 	<<link [[Next|Prison Pimp Rape]]>><<set $molestationstart to 1>><</link>>
diff --git a/game/overworld-town/loc-prison/intro.twee b/game/overworld-town/loc-prison/intro.twee
index dec2c212f333aae009e4a795f3d12330dfdb8038..1ab73af9aa35ee7a2124aa18d4c7102392a8f0b1 100644
--- a/game/overworld-town/loc-prison/intro.twee
+++ b/game/overworld-town/loc-prison/intro.twee
@@ -6,9 +6,9 @@
 <<endevent>>
 <<npc Bailey>><<generate2>>
 <<if $prison_intro_officer>>
-    <<loadNPC 2 "prison_intro_officer">>
+	<<loadNPC 2 "prison_intro_officer">>
 <<else>>
-    <<generate3>>
+	<<generate3>>
 <</if>>
 
 <<generate4>><<person2>>
@@ -16,32 +16,32 @@
 <<person>>, who pushes you into a waiting car.
 <br><br>
 
-You're driven along the clifftop, past the town hall, and down towards the docks. 
+You're driven along the clifftop, past the town hall, and down towards the docks.
 
 <<if $prison_intro_officer>>
-    You recognise the second officer, a <<person3>><<person>>. <<Hes>> accompanied you to the docks before. <<He>> grins at you through the rearview mirror.
+	You recognise the second officer, a <<person3>><<person>>. <<Hes>> accompanied you to the docks before. <<He>> grins at you through the rearview mirror.
 <<else>>
-    The second officer, a <<person3>><<person>> watches you through the rearview mirror.
+	The second officer, a <<person3>><<person>> watches you through the rearview mirror.
 <</if>>
 <br><br>
 
 <<link [[Be silent|Police Prison Intro Silent]]>><</link>>
 <br>
 <<if $angel gte 6>>
-    <<link [[Pray|Police Prison Intro Pray]]>><<stress -12>><<trauma -6>><</link>><<angel>><<llstress>><<ltrauma>>
-    <br>
+	<<link [[Pray|Police Prison Intro Pray]]>><<stress -12>><<trauma -6>><</link>><<angel>><<llstress>><<ltrauma>>
+	<br>
 <</if>>
 <<if $wolfgirl gte 6>>
-    <<link [[Growl|Police Prison Intro Growl]]>><<trauma -12>><</link>><<wolfgirl>><<lltrauma>>
-    <br>
+	<<link [[Growl|Police Prison Intro Growl]]>><<trauma -12>><</link>><<wolfgirl>><<lltrauma>>
+	<br>
 <</if>>
 <<if $cat gte 6>>
-    <<link [[Hiss|Police Prison Intro Hiss]]>><<trauma -12>><</link>><<cat>><<lltrauma>>
-    <br>
+	<<link [[Hiss|Police Prison Intro Hiss]]>><<trauma -12>><</link>><<cat>><<lltrauma>>
+	<br>
 <</if>>
 <<if $promiscuity gte 15>>
-    <<link [[Seduce|Police Prison Intro Seduce]]>><</link>>
-    <br>
+	<<link [[Seduce|Police Prison Intro Seduce]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -94,11 +94,11 @@ The car arrives at Mer Street, and pulls into the docks. A small boat awaits you
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "I-if you let me go" ,>> you coo. <<gagged_speech "I'll l-let you do anything you want to me" .>>
+	<<gagged_speech "I-if you let me go" ,>> you coo. <<gagged_speech "I'll l-let you do anything you want to me" .>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "I know what you really want" ,>> you say. <<gagged_speech "Let me go, and you can have it" .>>
+	<<gagged_speech "I know what you really want" ,>> you say. <<gagged_speech "Let me go, and you can have it" .>>
 <<else>>
-    <<gagged_speech "There must be something I can offer you in exchange for letting me go" ,>> you say.
+	<<gagged_speech "There must be something I can offer you in exchange for letting me go" ,>> you say.
 <</if>>
 <<promiscuity2>>
 
@@ -116,8 +116,8 @@ The car arrives at Mer Street, and pulls into the docks. A small boat awaits you
 
 	<span class="green">Lust glimmers in the <<persons>> eyes.</span> "We wouldn't get away with 'losing' you," <<he>> laughs. "But I'll look for you during my next visit."
 	<br><br>
-    <<set $prison_intro_officer to 1>>
-    <<saveNPC 1 "prison_intro_officer">>
+	<<set $prison_intro_officer to 1>>
+	<<saveNPC 1 "prison_intro_officer">>
 
 <<else>>
 
@@ -129,16 +129,16 @@ The car arrives at Mer Street, and pulls into the docks. A small boat awaits you
 
 
 <<if $prison_intro is undefined>>
-    The car arrives at Mer Street, and pulls into the docks. A small boat awaits you, staffed by uniformed <<people>>. Their attire is similar to the police officers'. The car pulls to a stop.
-    <br><br>
+	The car arrives at Mer Street, and pulls into the docks. A small boat awaits you, staffed by uniformed <<people>>. Their attire is similar to the police officers'. The car pulls to a stop.
+	<br><br>
 
-    <<link [[Next|Police Prison Intro Bailey]]>><</link>>
-    <br>
+	<<link [[Next|Police Prison Intro Bailey]]>><</link>>
+	<br>
 <<else>>
-    The car arrives at Mer Street, and pulls into the docks. A small boat awaits you, staffed by familiar guards.
-    <br><br>
-    <<link [[Next|Police Prison Intro Docks]]>><</link>>
-    <br>
+	The car arrives at Mer Street, and pulls into the docks. A small boat awaits you, staffed by familiar guards.
+	<br><br>
+	<<link [[Next|Police Prison Intro Docks]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -183,11 +183,11 @@ The officers shove you into the boat. You struggle to your knees as the crew unt
 <br><br>
 
 <<if $prison_intro is undefined>>
-    <<link [[Next|Prison Intro Boat]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Intro Boat]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Prison Intro Repeat]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Intro Repeat]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Prison Intro Repeat
@@ -201,31 +201,31 @@ The officers shove you into the boat. You struggle to your knees as the crew unt
 <<generate_methodical_guard 3>>
 
 <<if $weather is "rain">>
-    They seat you on a bench towards the front, sheltered from the rain by a small canopy, though the wind often lashes water against your face.
+	They seat you on a bench towards the front, sheltered from the rain by a small canopy, though the wind often lashes water against your face.
 <<elseif $weather is "clear">>
-    They seat you on a bench towards the front.
+	They seat you on a bench towards the front.
 <<else>>
-    They seat you on a bench towards the front. 
+	They seat you on a bench towards the front.
 <</if>>
 <br><br>
 
 "Knew you'd be back," <<person1>><<relaxed_guard 0>> says.
 <<if $prison.relaxed gte 80>>
-    <<He>> sounds sad.
+	<<He>> sounds sad.
 <<else>>
-    <<He>> doesn't look up from <<his>> phone.
+	<<He>> doesn't look up from <<his>> phone.
 <</if>>
 <br>
 <<if $prison.anxious gte 80>>
-    "Couldn't keep your nose clean?" <<person2>><<anxious_guard 1>> asks with a grin. "Or did you just miss us?"
+	"Couldn't keep your nose clean?" <<person2>><<anxious_guard 1>> asks with a grin. "Or did you just miss us?"
 <<else>>
-    "Couldn't keep your ass clean?" <<person2>><<anxious_guard 1>> asks.
+	"Couldn't keep your ass clean?" <<person2>><<anxious_guard 1>> asks.
 <</if>>
 <br>
 <<if $prison.veteran gte 80>>
-    "Career criminals are like that," <<person3>><<veteran_guard 2>> replies.
+	"Career criminals are like that," <<person3>><<veteran_guard 2>> replies.
 <<else>>
-    "Once a thief..." <<person3>><<veteran_guard 2>> replies while drying the deck.
+	"Once a thief..." <<person3>><<veteran_guard 2>> replies while drying the deck.
 <</if>>
 <br><br>
 
@@ -247,8 +247,8 @@ The other guards stand around you, watching.
 <<link [[Strip|Prison Intro Strip]]>><<trauma 6>><<stress 6>><<prison_guards -1>><</link>><<gtrauma>><<gstress>><<lsuspicion>>
 <br>
 <<if $exhibitionism gte 55>>
-    <<link [[Flaunt|Prison Intro Flaunt]]>><<prison_guards 3>><</link>><<exhibitionist4>><<llsuspicion>>
-    <br>
+	<<link [[Flaunt|Prison Intro Flaunt]]>><<prison_guards 3>><</link>><<exhibitionist4>><<llsuspicion>>
+	<br>
 <</if>>
 <<link [[Refuse|Prison Intro Refuse]]>><<pain 4>><<prison_guards 1>><</link>><<gpain>><<gsuspicion>>
 <br>
@@ -265,11 +265,11 @@ The other guards stand around you, watching.
 <<generate_methodical_guard 3>>
 
 <<if $weather is "rain">>
-    They seat you on a bench towards the front, sheltered from the rain by a small canopy, though the wind often lashes water against your face.
+	They seat you on a bench towards the front, sheltered from the rain by a small canopy, though the wind often lashes water against your face.
 <<elseif $weather is "clear">>
-    They seat you on a bench towards the front.
+	They seat you on a bench towards the front.
 <<else>>
-    They seat you on a bench towards the front. 
+	They seat you on a bench towards the front.
 <</if>>
 <br><br>
 
@@ -281,27 +281,27 @@ One of your captors, a <<person1>><<personsimple "normal">> with a relaxed postu
 The <<person1>><<personsimple "normal">> at the helm glances at you.
 
 <<if $beauty gte ($beautymax * 0.9)>>
-    "Hard to say with a beaut like <<pher>>," <<he>> says. "<<pShe>>'ll be alright if <<pshe>>'s smart, and becomes some strong fucker's bitch. If not," <<he>> pauses. "At least <<pshe>>'ll be too busy getting railed to do anything really stupid."
+	"Hard to say with a beaut like <<pher>>," <<he>> says. "<<pShe>>'ll be alright if <<pshe>>'s smart, and becomes some strong fucker's bitch. If not," <<he>> pauses. "At least <<pshe>>'ll be too busy getting railed to do anything really stupid."
 <<elseif $beauty gte ($beautymax * 0.4)>>
-    "A pretty one like <<phim>> might do better than most," <<he>> says. "If <<pshe>> isn't a fool."
+	"A pretty one like <<phim>> might do better than most," <<he>> says. "If <<pshe>> isn't a fool."
 <<else>>
-    "<<pShe>>'s cute," <<he>> says. "But <<pshe>> might be fine if <<pshe>> keeps <<pher>> head down."
+	"<<pShe>>'s cute," <<he>> says. "But <<pshe>> might be fine if <<pshe>> keeps <<pher>> head down."
 <</if>>
 <br><br>
 <<if $physiquesize gte 16000>>
-    <<if $physique gte 15000>>
-        "<<pShes>> a big fucker <<pherself>>," interjects a <<person3>><<personsimple "normal">>, drying <<his>> hands on a towel. <<He>> looks older than the others. "Strong too. Might be trouble for us."
-    <<else>>
-        "<<pShes>> a big fucker <<pherself>>," interjects a <<person3>><<personsimple "normal">>, drying <<his>> hands on a towel. <<He>> looks older than the others. "Might end up calling the shots."
-    <</if>>
+	<<if $physique gte 15000>>
+		"<<pShes>> a big fucker <<pherself>>," interjects a <<person3>><<personsimple "normal">>, drying <<his>> hands on a towel. <<He>> looks older than the others. "Strong too. Might be trouble for us."
+	<<else>>
+		"<<pShes>> a big fucker <<pherself>>," interjects a <<person3>><<personsimple "normal">>, drying <<his>> hands on a towel. <<He>> looks older than the others. "Might end up calling the shots."
+	<</if>>
 <br>
 "If <<pshe>> were older maybe," the <<person2>><<personsimple "normal">> replies.
 <<elseif $physique gte ($physiquesize * 0.9)>>
-    "<<pShe>> looks like a scrappy one," interjects a <<person3>><<personsimple "normal">>. <<He>> looks older than the others. "Might do better than you expect."
-    <br>
-    "Until <<pshe>> scraps with the wrong person," replies <<person2>><<anxious_guard 1>>.
+	"<<pShe>> looks like a scrappy one," interjects a <<person3>><<personsimple "normal">>. <<He>> looks older than the others. "Might do better than you expect."
+	<br>
+	"Until <<pshe>> scraps with the wrong person," replies <<person2>><<anxious_guard 1>>.
 <<else>>
-    "Don't fancy <<pher>> chances myself," interjects a <<person3>><<personsimple "normal">>, drying <<his>> hands on a towel. <<He>> looks older than the others. "Maybe a week."
+	"Don't fancy <<pher>> chances myself," interjects a <<person3>><<personsimple "normal">>, drying <<his>> hands on a towel. <<He>> looks older than the others. "Maybe a week."
 <</if>>
 <br><br>
 
@@ -317,11 +317,11 @@ They continue arguing in front of you as if you weren't there.
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "I-I'm sorry to interrupt" ->>
+	<<gagged_speech "I-I'm sorry to interrupt" ->>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Don't talk about me like" ->>
+	<<gagged_speech "Don't talk about me like" ->>
 <<else>>
-    <<gagged_speech "Please don't talk about me like" ->>
+	<<gagged_speech "Please don't talk about me like" ->>
 <</if>>
 <<person2>><<anxious_guard 1 cap>> smacks you across the face with the back of <<his>> hand.
 <br><br>
@@ -342,12 +342,12 @@ You remain silent, and try to ignore the crew's discussion.
 <</if>>
 <<if $daystate is "night">>
 	<<if $transformationParts.traits.sharpEyes isnot "disabled">>
-        A mist rises around the boat, concealing the land behind you. You sail through the murk, until a spire of stone looms ahead. <<person1>><<relaxed_guard 0 cap>> steers the ship away, but it takes a moment for <<person2>><<anxious_guard 1>> to react, as if <<he>> only just saw it. <<He>> cries out in fright.<<sharp_eyes>>
-    <<else>>
-        A mist rises around the boat, thickening until even the crew are hidden from view. You sail through the murk, until <<person2>><<anxious_guard 1>> cries out in fright.<<gstress>><<stress 6>>
-    <</if>>
+		A mist rises around the boat, concealing the land behind you. You sail through the murk, until a spire of stone looms ahead. <<person1>><<relaxed_guard 0 cap>> steers the ship away, but it takes a moment for <<person2>><<anxious_guard 1>> to react, as if <<he>> only just saw it. <<He>> cries out in fright.<<sharp_eyes>>
+	<<else>>
+		A mist rises around the boat, thickening until even the crew are hidden from view. You sail through the murk, until <<person2>><<anxious_guard 1>> cries out in fright.<<gstress>><<stress 6>>
+	<</if>>
 <<else>>
-    A mist rises around the boat, concealing the land behind you. The crew doesn't seem disturbed. You sail through the murk, until a spire of stone looms ahead. <<person2>><<anxious_guard 1 cap>> cries out in fright.
+	A mist rises around the boat, concealing the land behind you. The crew doesn't seem disturbed. You sail through the murk, until a spire of stone looms ahead. <<person2>><<anxious_guard 1 cap>> cries out in fright.
 <</if>>
 <br><br>
 "You're gonna sink us!" <<he>> says.
@@ -357,12 +357,12 @@ You remain silent, and try to ignore the crew's discussion.
 
 <<if $daystate is "night">>
 	<<if $transformationParts.traits.sharpEyes isnot "disabled">>
-        More spires loom ahead. The boat tilts as <<person1>><<relaxed_guard 0>> steers around them. <<person2>><<anxious_guard 1 cap>> clutches the side of the boat, <<his>> knuckles white.
-    <<else>>
-        You can't see through the gloom, but the boat tilts as <<person1>><<relaxed_guard 0>> steers this way and that.
-    <</if>>
+		More spires loom ahead. The boat tilts as <<person1>><<relaxed_guard 0>> steers around them. <<person2>><<anxious_guard 1 cap>> clutches the side of the boat, <<his>> knuckles white.
+	<<else>>
+		You can't see through the gloom, but the boat tilts as <<person1>><<relaxed_guard 0>> steers this way and that.
+	<</if>>
 <<else>>
-    More spires loom ahead. The boat tilts as <<person1>><<relaxed_guard 0>> steers around them. <<person2>><<anxious_guard 1 cap>> clutches the side of the boat, <<his>> knuckles white.
+	More spires loom ahead. The boat tilts as <<person1>><<relaxed_guard 0>> steers around them. <<person2>><<anxious_guard 1 cap>> clutches the side of the boat, <<his>> knuckles white.
 <</if>>
 <br><br>
 
@@ -376,19 +376,19 @@ You remain silent, and try to ignore the crew's discussion.
 <br><br>
 
 <<if $player.gender_appearance is "m">>
-    <<if $malechance lte 0>>
-        "Why they sending <<phim>> to a women's prison anyway?" asks <<anxious_guard 1>>.
-        <br>
-        "Don't know," replies <<veteran_guard 2>>. "I'm not complaining."
-        <br><br>
-    <</if>>
+	<<if $malechance lte 0>>
+		"Why they sending <<phim>> to a women's prison anyway?" asks <<anxious_guard 1>>.
+		<br>
+		"Don't know," replies <<veteran_guard 2>>. "I'm not complaining."
+		<br><br>
+	<</if>>
 <<elseif $player.gender_appearance is "f">>
-    <<if $malechance gte 100>>
-        "Why they sending <<phim>> to a men's prison anyway?" asks <<anxious_guard 1>>.
-        <br>
-        "Don't know," replies <<veteran_guard 2>>. "I'm not complaining."
-        <br><br>
-    <</if>>
+	<<if $malechance gte 100>>
+		"Why they sending <<phim>> to a men's prison anyway?" asks <<anxious_guard 1>>.
+		<br>
+		"Don't know," replies <<veteran_guard 2>>. "I'm not complaining."
+		<br><br>
+	<</if>>
 <</if>>
 
 They sail you towards the foot of the island, to a dock at the base of a sheer cliff. <<person3>><<veteran_guard 2 cap>> jumps ashore with a rope while <<person2>><<anxious_guard 1>> hauls you to your feet.
@@ -408,12 +408,12 @@ You come to an artificial stone wall with a metal door. <<person1>><<relaxed_gua
 You're pushed through the door, into a small room. There's a desk, but the room is otherwise empty, save for an exit across from you.
 <br><br>
 <<if $prison_intro isnot 1>>
-    "You're early," <<methodical_guard 3>> says.
-    <br>
-    "Left in a hurry," <<person1>><<relaxed_guard 0>> responds. "There's no problem."
-    <br>
-    <<person4>><<methodical_guard 3 cap>> nods.
-    <br><br>
+	"You're early," <<methodical_guard 3>> says.
+	<br>
+	"Left in a hurry," <<person1>><<relaxed_guard 0>> responds. "There's no problem."
+	<br>
+	<<person4>><<methodical_guard 3 cap>> nods.
+	<br><br>
 <</if>>
 The crew push you to the middle of the room, and stand around you, leaving a little space. <<person4>><<methodical_guard 3 cap>> sits behind the desk, and looks at a document in front of <<him>>.
 <br><br>
@@ -438,8 +438,8 @@ You tell <<person4>><<methodical_guard 3>> your name. <<He>> scribbles something
 <<link [[Strip|Prison Intro Strip]]>><<trauma 6>><<stress 6>><<prison_guards -1>><</link>><<gtrauma>><<gstress>><<lsuspicion>>
 <br>
 <<if $exhibitionism gte 55>>
-    <<link [[Flaunt|Prison Intro Flaunt]]>><<prison_guards 3>><</link>><<exhibitionist4>><<llsuspicion>>
-    <br>
+	<<link [[Flaunt|Prison Intro Flaunt]]>><<prison_guards 3>><</link>><<exhibitionist4>><<llsuspicion>>
+	<br>
 <</if>>
 <<link [[Refuse|Prison Intro Refuse]]>><<pain 4>><<prison_guards 1>><</link>><<gpain>><<gsuspicion>>
 <br>
@@ -451,21 +451,21 @@ You tell <<person4>><<methodical_guard 3>> your name. <<He>> scribbles something
 You spit on the floor. <<person3>><<veteran_guard 2 cap>> takes a step closer, and
 
 <<if $danceSuccess>>
-    tries to smack you across the face. <span class="green">You duck beneath <<his>> blow.</span><<ltrauma>><<trauma -6>>
-    <br><br>
+	tries to smack you across the face. <span class="green">You duck beneath <<his>> blow.</span><<ltrauma>><<trauma -6>>
+	<br><br>
 <<else>>
-    <span class="red">smacks you across the face.</span><<gpain>><<pain 4>>
-    <br><br>
+	<span class="red">smacks you across the face.</span><<gpain>><<pain 4>>
+	<br><br>
 <</if>>
 
-<<person4>><<methodical_guard 3 cap>> waves a hand. "It doesn't matter," <<he>> says as <<he>> scribbles something down. "Take off your clothes."  <<person2>><<anxious_guard 1 cap>> licks <<his>> lips. "Everything."<<gstress>><<stress 6>>
+<<person4>><<methodical_guard 3 cap>> waves a hand. "It doesn't matter," <<he>> says as <<he>> scribbles something down. "Take off your clothes." <<person2>><<anxious_guard 1 cap>> licks <<his>> lips. "Everything."<<gstress>><<stress 6>>
 <br><br>
 
 <<link [[Strip|Prison Intro Strip]]>><<trauma 6>><<stress 6>><<prison_guards -1>><</link>><<gtrauma>><<gstress>><<lsuspicion>>
 <br>
 <<if $exhibitionism gte 55>>
-    <<link [[Flaunt|Prison Intro Flaunt]]>><<prison_guards 3>><</link>><<exhibitionist4>><<llsuspicion>>
-    <br>
+	<<link [[Flaunt|Prison Intro Flaunt]]>><<prison_guards 3>><</link>><<exhibitionist4>><<llsuspicion>>
+	<br>
 <</if>>
 <<link [[Refuse|Prison Intro Refuse]]>><<pain 4>><<prison_guards 1>><</link>><<gpain>><<gsuspicion>>
 <br>
@@ -485,8 +485,8 @@ You remain silent.
 <<link [[Strip (0:01)|Prison Intro Strip]]>><<trauma 6>><<stress 6>><<prison_guards -1>><</link>><<gtrauma>><<gstress>><<lsuspicion>>
 <br>
 <<if $exhibitionism gte 55>>
-    <<link [[Flaunt (0:03)|Prison Intro Flaunt]]>><<prison_guards 3>><<pass 3>><</link>><<exhibitionist4>><<llsuspicion>>
-    <br>
+	<<link [[Flaunt (0:03)|Prison Intro Flaunt]]>><<prison_guards 3>><<pass 3>><</link>><<exhibitionist4>><<llsuspicion>>
+	<br>
 <</if>>
 <<link [[Refuse (0:01)|Prison Intro Refuse]]>><<pass 1>><<pain 4>><<prison_guards 1>><</link>><<gpain>><<gsuspicion>>
 <br>
@@ -519,11 +519,11 @@ You're left naked in the middle of the room.<<covered>>
 
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "Pl-please don't make me" ->> you manage, before the crew around you pounce.
+	<<gagged_speech "Pl-please don't make me" ->> you manage, before the crew around you pounce.
 <<elseif $submissive lte 850>>
-    <<gagged_speech "I'm not stripping in front" ->> you manage, before the crew around you pounce.
+	<<gagged_speech "I'm not stripping in front" ->> you manage, before the crew around you pounce.
 <<else>>
-    <<gagged_speech "I don't want to" ->> you manage, before the crew around you pounce.
+	<<gagged_speech "I don't want to" ->> you manage, before the crew around you pounce.
 <</if>>
 <br><br>
 
@@ -541,8 +541,8 @@ You're left naked in the middle of the room.<<covered>>
 
 	<<maninit>>
 	<<npcstrip>>
-    <<person4>><<methodical_guard 3 cap>> calmly rises from the desk to help.<<person1>>
-    <br><br>
+	<<person4>><<methodical_guard 3 cap>> calmly rises from the desk to help.<<person1>>
+	<br><br>
 <</if>>
 
 <<effects>>
@@ -555,7 +555,7 @@ You're left naked in the middle of the room.<<covered>>
 
 
 <<if $worn.upper.name is "naked" and $worn.lower.name is "naked" and $worn.under_lower.name is "naked" and $worn.under_upper.name is "naked">>
-   <span id="next"><<link [[Next|Prison Intro Strip Molestation Finish]]>><<clotheson>><<undress "prison intro">><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Prison Intro Strip Molestation Finish]]>><<clotheson>><<undress "prison intro">><</link>></span><<nexttext>>
 <<elseif $enemyhealth lte 0>>
 	<span id="next"><<link [[Next|Prison Intro Strip Molestation Finish]]>><</link>></span><<nexttext>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
@@ -572,28 +572,28 @@ You're left naked in the middle of the room.<<covered>>
 	<br><br>
 	<<clotheson>>
 
-    <<link [[Run|Prison Intro Strip Run]]>><<prison_guards 3>><</link>><<ggsuspicion>>
-    <br>
-    <<link [[Bargain|Prison Intro Strip Bargain]]>><<set $prisonClothesBargain to 1>><<prison_guards -1>><</link>><<lsuspicion>>
-    <br>
+	<<link [[Run|Prison Intro Strip Run]]>><<prison_guards 3>><</link>><<ggsuspicion>>
+	<br>
+	<<link [[Bargain|Prison Intro Strip Bargain]]>><<set $prisonClothesBargain to 1>><<prison_guards -1>><</link>><<lsuspicion>>
+	<br>
 
 <<elseif $enemyhealth lte 0>>
 	The guards back away from you, shocked by your aggression. They don't think to stand between you and the entrance. <<tearful>> you steady yourself. You could make a break for it, but you don't know where you'd go. Maybe they'll let you keep your clothes if you agree to cooperate after humiliating them so.
 	<br><br>
 	<<clotheson>>
 
-    <<link [[Run|Prison Intro Strip Run]]>><<prison_guards 3>><</link>><<ggsuspicion>>
-    <br>
-    <<link [[Bargain|Prison Intro Strip Bargain]]>><<set $prisonClothesBargain to 1>><<prison_guards -1>><</link>><<lsuspicion>>
-    <br>
+	<<link [[Run|Prison Intro Strip Run]]>><<prison_guards 3>><</link>><<ggsuspicion>>
+	<br>
+	<<link [[Bargain|Prison Intro Strip Bargain]]>><<set $prisonClothesBargain to 1>><<prison_guards -1>><</link>><<lsuspicion>>
+	<br>
 
 <<else>>
-    <<steal strip>>
+	<<steal strip>>
 	They snatch the last of your clothing, leaving you naked in the middle of the room. <<covered>>
 	<br><br>
-    
+
 	<<link [[Next|Prison Intro Strip 2]]>><</link>>
-    <br>
+	<br>
 
 <</if>>
 
@@ -617,16 +617,16 @@ You unravel the mooring rope, and manage to cast off before the guards arrive. <
 <br><br>
 
 <<if $daystate is "night">>
-    You sail into the dark. A searchlight blooms to life far above, and scans the water.
-    <br><br>
-    Mist rises around you, hiding the sky, and even the searchlight.
+	You sail into the dark. A searchlight blooms to life far above, and scans the water.
+	<br><br>
+	Mist rises around you, hiding the sky, and even the searchlight.
 	<<if $transformationParts.traits.sharpEyes isnot "disabled">>
-        A spire of rock looms from the murk. You narrowly pass. <span class="red">Then another looms right in front of you.</span> You turn the helm as far as it'll go, but it's no use. The boat crunches as it comes to a halt, the force throwing you overboard.
-    <<else>>
-        You sail in silence for a few moments, barely able to see the front of the boat. <span class="red">You make out a dark shape ahead a moment before the boat collides with it.</span> The force throws you overboard.
-    <</if>>
+		A spire of rock looms from the murk. You narrowly pass. <span class="red">Then another looms right in front of you.</span> You turn the helm as far as it'll go, but it's no use. The boat crunches as it comes to a halt, the force throwing you overboard.
+	<<else>>
+		You sail in silence for a few moments, barely able to see the front of the boat. <span class="red">You make out a dark shape ahead a moment before the boat collides with it.</span> The force throws you overboard.
+	<</if>>
 <<else>>
-    You sail towards the mist, until it engulfs you. A spire of rock looms from the murk. You narrowly pass. <span class="red">Then another looms right in front of you.</span> You turn the helm as far as it'll go, but it's no use. The boat crunches as it comes to a halt, the force throwing you overboard.
+	You sail towards the mist, until it engulfs you. A spire of rock looms from the murk. You narrowly pass. <span class="red">Then another looms right in front of you.</span> You turn the helm as far as it'll go, but it's no use. The boat crunches as it comes to a halt, the force throwing you overboard.
 <</if>>
 <br><br>
 <<water>>
@@ -644,23 +644,23 @@ You dive into the water, and swim away from the island.
 <br><br>
 <<water>>
 <<if $daystate is "night">>
-    A light blooms to life far above. It scans the water, searching for you. You dive to avoid its gaze, but it's no use. It lights you up despite the water. You've no choice but to swim as hard as you can as the light tracks you.
-    <br><br>
-    <span class="red">A shadow passes,</span> snuffing the light for a moment. Then you hear a terrible screech.<<gstress>>
-    <br><br>
-    <<beastNEWinit 1 hawk>>
-    A buffet of air is all the warning you get, before a pair of claws grasp your shoulders, and lift you from the water. A <<if $monster isnot 1>>giant<</if>> <<beasttype>> carries you. You hear other wings in the dark.
+	A light blooms to life far above. It scans the water, searching for you. You dive to avoid its gaze, but it's no use. It lights you up despite the water. You've no choice but to swim as hard as you can as the light tracks you.
+	<br><br>
+	<span class="red">A shadow passes,</span> snuffing the light for a moment. Then you hear a terrible screech.<<gstress>>
+	<br><br>
+	<<beastNEWinit 1 hawk>>
+	A buffet of air is all the warning you get, before a pair of claws grasp your shoulders, and lift you from the water. A <<if $monster isnot 1>>giant<</if>> <<beasttype>> carries you. You hear other wings in the dark.
 <<else>>
-    You swim as hard as you can towards the encircling mist. <span class="red">A shadow passes overhead.</span> You glance up, and see shapes circling overhead. One swoops towards you, a <<if $monster isnot 1>>giant<</if>> <<beasttype>>, talons outstretched.
-    <br><br>
-    You dive, but it's no use. <<bHe>> clutches your shoulders and snatches you from the water.
+	You swim as hard as you can towards the encircling mist. <span class="red">A shadow passes overhead.</span> You glance up, and see shapes circling overhead. One swoops towards you, a <<if $monster isnot 1>>giant<</if>> <<beasttype>>, talons outstretched.
+	<br><br>
+	You dive, but it's no use. <<bHe>> clutches your shoulders and snatches you from the water.
 <</if>>
 <br><br>
 
 <<if $monster is 1>>
-    Rather than return you to the prison, the <<beasttype>> circles higher, a mischievous glint in <<bhis>> eyes. <<bHe>> releases you. 
+	Rather than return you to the prison, the <<beasttype>> circles higher, a mischievous glint in <<bhis>> eyes. <<bHe>> releases you.
 <<else>>
-    Rather than return you to the prison, the <<beasttype>> circles higher, and releases you.
+	Rather than return you to the prison, the <<beasttype>> circles higher, and releases you.
 <</if>>
 You plunge into the depths, deep enough that a current seizes you, and pulls you deeper. Your consciousness fades.
 <br><br>
@@ -673,11 +673,11 @@ You plunge into the depths, deep enough that a current seizes you, and pulls you
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "I-I didn't want to do that" ,>> you say. <<gagged_speech "I'll go quietly. J-just let me keep my clothes" .>>
+	<<gagged_speech "I-I didn't want to do that" ,>> you say. <<gagged_speech "I'll go quietly. J-just let me keep my clothes" .>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "I'm feeling generous" ,>> you say. <<gagged_speech "Don't want you to get in trouble for failing to do your jobs. I'll play along. If you let me keep my clothes" .>>
+	<<gagged_speech "I'm feeling generous" ,>> you say. <<gagged_speech "Don't want you to get in trouble for failing to do your jobs. I'll play along. If you let me keep my clothes" .>>
 <<else>>
-    <<gagged_speech "Let's make a deal" ,>> you say. <<gagged_speech "I'll cooperate, and you let me keep my clothes" .>>
+	<<gagged_speech "Let's make a deal" ,>> you say. <<gagged_speech "I'll cooperate, and you let me keep my clothes" .>>
 <</if>>
 <br><br>
 
@@ -713,9 +713,9 @@ You awaken on a hard mattress, and stare at the grey ceiling above. You feel a c
 "Can we get this over with?" <<person2>><<anxious_guard 1>> says. "The rut freaks me out." The others laugh.
 <br>
 <<if $control gte 80>>
-    "You're more scared than the prisoner," <<person3>><<veteran_guard 2>> says. "Have some backbone."
+	"You're more scared than the prisoner," <<person3>><<veteran_guard 2>> says. "Have some backbone."
 <<else>>
-    "Just hide in the corner then. Let us grown-ups do the work."
+	"Just hide in the corner then. Let us grown-ups do the work."
 <</if>>
 <br>
 "Fuck off."
@@ -735,24 +735,24 @@ You awaken on a hard mattress, and stare at the grey ceiling above. You feel a c
 You take a step toward the hole, careful to keep your footing. Then another. You hear one of the guards keeping pace. The light closest buzzes and fails, and the dark seems to grasp at you.
 <br><br>
 <<if $willpowerSuccess>>
-    <span class="green">You ignore the surge of anxiety,</span> and keep walking. "That's far enough," <<person4>><<methodical_guard 3>> says. You turn. <<person3>><<veteran_guard 2 cap>> is stood at arm's reach. <<person1>><<relaxed_guard 0 cap>> and <<person2>><<anxious_guard 1>> remain on the other side, carrying a hose between them.
-    <br><br>
+	<span class="green">You ignore the surge of anxiety,</span> and keep walking. "That's far enough," <<person4>><<methodical_guard 3>> says. You turn. <<person3>><<veteran_guard 2 cap>> is stood at arm's reach. <<person1>><<relaxed_guard 0 cap>> and <<person2>><<anxious_guard 1>> remain on the other side, carrying a hose between them.
+	<br><br>
 
-    <<link [[Next|Prison Intro Hose Speech]]>><<water>><</link>>
-    <br>
+	<<link [[Next|Prison Intro Hose Speech]]>><<water>><</link>>
+	<br>
 <<else>>
-    <span class="red">Your body freezes.</span> You can't do it.<<ggwillpower>><<willpower 3>><<lcontrol>><<control -10>><<gstress>><<stress 6>>
-    <br><br>
-    You hear footsteps behind. A pair of hands grasp each of your shoulders, and force you towards the hole. You're too frightened to struggle, to risk falling.
-    <br><br>
-
-    <<if $prison_intro is undefined>>
-        Right at the edge, <<person3>><<veteran_guard 2>> grasps your hair and holds your head over the abyss. "Bad <<girl>>s go to prison," <<he>> hisses. "We have lots of ways to deal with bad <<girl>>s here, but really bad <<girl>>s get dumped in the rut. No one will give you a second thought. So be a good <<girl>>, and do as you're told."
-        <br><br>
-    <</if>>
-
-    <<link [[Next|Prison Intro Hose]]>><<water>><</link>>
-    <br>
+	<span class="red">Your body freezes.</span> You can't do it.<<ggwillpower>><<willpower 3>><<lcontrol>><<control -10>><<gstress>><<stress 6>>
+	<br><br>
+	You hear footsteps behind. A pair of hands grasp each of your shoulders, and force you towards the hole. You're too frightened to struggle, to risk falling.
+	<br><br>
+
+	<<if $prison_intro is undefined>>
+		Right at the edge, <<person3>><<veteran_guard 2>> grasps your hair and holds your head over the abyss. "Bad <<girl>>s go to prison," <<he>> hisses. "We have lots of ways to deal with bad <<girl>>s here, but really bad <<girl>>s get dumped in the rut. No one will give you a second thought. So be a good <<girl>>, and do as you're told."
+		<br><br>
+	<</if>>
+
+	<<link [[Next|Prison Intro Hose]]>><<water>><</link>>
+	<br>
 <</if>>
 
 
@@ -760,11 +760,11 @@ You take a step toward the hole, careful to keep your footing. Then another. You
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "I-I can't" ,>> you say. <<gagged_speech "It's too scary" .>>
+	<<gagged_speech "I-I can't" ,>> you say. <<gagged_speech "It's too scary" .>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "You must think I'm insane" ,>> you say. <<gagged_speech "Fuck off" .>>
+	<<gagged_speech "You must think I'm insane" ,>> you say. <<gagged_speech "Fuck off" .>>
 <<else>>
-    <<gagged_speech "Please don't make me" ,>> you say
+	<<gagged_speech "Please don't make me" ,>> you say
 <</if>>
 <br><br>
 
@@ -772,8 +772,8 @@ You take a step toward the hole, careful to keep your footing. Then another. You
 <br><br>
 
 <<if $prison_intro is undefined>>
-    Right at the edge, <<person3>><<veteran_guard 2>> grasps your hair and holds your head over the abyss. "Bad <<girl>>s go to prison," <<he>> hisses. "We have lots of ways to deal with bad <<girl>>s here, but really bad <<girl>>s get dumped in the rut. No one will give you a second thought. So be a good <<girl>>, and do as you're told."
-    <br><br>
+	Right at the edge, <<person3>><<veteran_guard 2>> grasps your hair and holds your head over the abyss. "Bad <<girl>>s go to prison," <<he>> hisses. "We have lots of ways to deal with bad <<girl>>s here, but really bad <<girl>>s get dumped in the rut. No one will give you a second thought. So be a good <<girl>>, and do as you're told."
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Intro Hose]]>><<water>><</link>>
@@ -784,17 +784,17 @@ You take a step toward the hole, careful to keep your footing. Then another. You
 
 They blast you with icy water. The shock knocks you to your knees, but they keep blasting, <span class="red">until you tumble towards the hole.</span><<ggstress>><<stress 6>><<wash>>
 <<if $prisonClothesBargain is 1>>
-    <<unset $prisonClothesBargain>>
+	<<unset $prisonClothesBargain>>
 <<else>>
-    <<upperruined>>
-    <<lowerruined>>
-    <<underupperruined>>
-    <<underlowerruined>>
+	<<upperruined>>
+	<<lowerruined>>
+	<<underupperruined>>
+	<<underlowerruined>>
 <</if>>
 <br><br>
 <<if $prison_intro is undefined>>
-    Firm hands grasp you at the last moment. <<person3>><<veteran_guard 2 cap>> grips the back of your hair, and holds your head over the abyss. "Bad <<girl>>s go to prison," <<he>> hisses. "We have lots of ways to deal with bad <<girl>>s here, but really bad <<girl>>s get dumped in the rut. No one will give you a second thought. So be a good <<girl>>, and do as you're told."
-    <br><br>
+	Firm hands grasp you at the last moment. <<person3>><<veteran_guard 2 cap>> grips the back of your hair, and holds your head over the abyss. "Bad <<girl>>s go to prison," <<he>> hisses. "We have lots of ways to deal with bad <<girl>>s here, but really bad <<girl>>s get dumped in the rut. No one will give you a second thought. So be a good <<girl>>, and do as you're told."
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Intro Hose 2]]>><</link>>
@@ -806,12 +806,12 @@ They blast you with icy water. The shock knocks you to your knees, but they keep
 
 <<He>> releases you, and you turn away from the edge to find <<person1>><<relaxed_guard 0>> and <<person2>><<anxious_guard 1>> carrying a hose between them. They blast you with icy water. You'd fall, if not for <<person3>><<veteran_guard 2>> steadying you with one hand.<<wash>>
 <<if $prisonClothesBargain is 1>>
-    <<unset $prisonClothesBargain>>
+	<<unset $prisonClothesBargain>>
 <<else>>
-    <<upperruined>>
-    <<lowerruined>>
-    <<underupperruined>>
-    <<underlowerruined>>
+	<<upperruined>>
+	<<lowerruined>>
+	<<underupperruined>>
+	<<underlowerruined>>
 <</if>>
 <br><br>
 
@@ -824,13 +824,13 @@ They blast you with icy water. The shock knocks you to your knees, but they keep
 
 "You are prisoner 144," <<person4>><<methodical_guard 3>> says, thrusting a bundle of clothes into your arms.
 <<if $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked">>
-    "Cell block A. You will get your name back when your sentence is served."
-    <br><br>
-    They don't give you a chance to dry before shunting you through another metal door.
+	"Cell block A. You will get your name back when your sentence is served."
+	<br><br>
+	They don't give you a chance to dry before shunting you through another metal door.
 <<else>>
-    "Cell block A. You will get your things back when your sentence is served."
-    <br><br>
-    They don't give you a chance to dress before shunting you through another metal door.
+	"Cell block A. You will get your things back when your sentence is served."
+	<br><br>
+	They don't give you a chance to dress before shunting you through another metal door.
 <</if>>
 <br><br>
 
@@ -848,97 +848,97 @@ They blast you with icy water. The shock knocks you to your knees, but they keep
 You emerge on a walkway above a long hall, stretching in both directions. Three stories of cells line each side. <<person1>><<relaxed_guard 0 cap>> slams the metal door behind you, and the sound echoes through the hall.
 <br><br>
 <<if $prison_intro isnot 1>>
-    <<if $prison.schedule is "lockdown">>
-        "Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Hands and faces appear, ratting the bars. They taunt you, though only the closest can be heard above the din.
-    <<else>>
-        "Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Several <<people>> in prisoner's garb shuffle below. They look up, and taunt.
-    <</if>>
-    <br><br>
-    "Fresh meat," one <<person5>><<personsimple>> says.
-    <br>
-    "Can't wait to break this one in," says another.
-    <br>
-    <<if $NPCList[0].penis isnot "none">>
-        "A new cumsock? Fantastic."
-    <<elseif $player.gender_appearance is "m">>
-        "A new dildo? Fantastic."
-    <<else>>
-        "A new sex toy? Fantastic."
-    <</if>>
-    <br>
-    <<if $beauty gte ($beautymax * 0.8)>>
-        "Holy shit. This one's mine."
-        <br>
-        "Fuck off, I saw <<phim>> first."
-        <br>
-    <<elseif $beauty gte ($beautymax * 0.4)>>
-        "What a cutie."
-        <br>
-    <</if>>
-    <br>
-    <br><br>
-    <<if $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked">>
-        <<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of fabric over your wet clothes.
-    <<else>>
-        <<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of clothes over your <<lewdness>>.
-    <</if>>
-    <<if $prison.schedule is "lockdown">>
-        A <<person6>><<personsimple "normal">> reaches for you with a tattooed arm, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
-    <<else>>
-        One of the cells is occupied. A <<person6>><<personsimple "normal">> reaches for you with a tattooed arm, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
-    <</if>>
-    <br><br>
-
-    <<link [[Next|Prison Intro Cell]]>><</link>>
-    <br>
+	<<if $prison.schedule is "lockdown">>
+		"Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Hands and faces appear, ratting the bars. They taunt you, though only the closest can be heard above the din.
+	<<else>>
+		"Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Several <<people>> in prisoner's garb shuffle below. They look up, and taunt.
+	<</if>>
+	<br><br>
+	"Fresh meat," one <<person5>><<personsimple>> says.
+	<br>
+	"Can't wait to break this one in," says another.
+	<br>
+	<<if $NPCList[0].penis isnot "none">>
+		"A new cumsock? Fantastic."
+	<<elseif $player.gender_appearance is "m">>
+		"A new dildo? Fantastic."
+	<<else>>
+		"A new sex toy? Fantastic."
+	<</if>>
+	<br>
+	<<if $beauty gte ($beautymax * 0.8)>>
+		"Holy shit. This one's mine."
+		<br>
+		"Fuck off, I saw <<phim>> first."
+		<br>
+	<<elseif $beauty gte ($beautymax * 0.4)>>
+		"What a cutie."
+		<br>
+	<</if>>
+	<br>
+	<br><br>
+	<<if $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked">>
+		<<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of fabric over your wet clothes.
+	<<else>>
+		<<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of clothes over your <<lewdness>>.
+	<</if>>
+	<<if $prison.schedule is "lockdown">>
+		A <<person6>><<personsimple "normal">> reaches for you with a tattooed arm, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
+	<<else>>
+		One of the cells is occupied. A <<person6>><<personsimple "normal">> reaches for you with a tattooed arm, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Prison Intro Cell]]>><</link>>
+	<br>
 <<else>>
-    <<if $prison.schedule is "lockdown">>
-        "Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Hands and faces appear, ratting the bars.
-    <<else>>
-        "Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Several <<people>> in prisoner's garb shuffle below. They look up, and taunt.
-    <</if>>
-    <<if $prison.inmates gte 80>>
-        They greet you, though only the closest can be heard above the din.
-        <br><br>
-        "Welcome home," one <<person5>><<personsimple>> says.
-        <br>
-        "I missed that ass."
-        <br>
-        "Is it wrong if I hoped I'd see you again?"
-        <br>
-        "Let's pick up where we left off."
-    <<elseif $prison.inmates gte 40>>
-        They taunt you, though only the closest can be heard above the din.
-        <br><br>
-        "Nice. I'll make you my <<bitch>> this time," one <<person5>><<personsimple>> says.
-        <br>
-        "I missed that ass."
-        <br>
-        "Couldn't get enough of us, slut?"
-    <<else>>
-        They taunt you, though only the closest can be heard above the din.
-        <br><br>
-        "It's that used up whore," one <<person5>><<personsimple>> says.
-        <br>
-        "I'm gonna make you squeal."
-        <br>
-        "Back where you belong, <<bitch>>."
-    <</if>>
-    <br><br>
-    <<if $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked">>
-        <<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of fabric over your wet clothes.
-    <<else>>
-        <<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of clothes over your <<lewdness>>.
-    <</if>>
-    <<if $prison.schedule is "lockdown">>
-        <<person6>><<tattooed_inmate 5 cap>> gropes for you, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
-    <<else>>
-        One of the cells is occupied. <<person6>><<tattooed_inmate 5 cap>> gropes for you, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
-    <</if>>
-    <br><br>
-
-    <<link [[Next|Prison Intro Cell]]>><</link>>
-    <br>
+	<<if $prison.schedule is "lockdown">>
+		"Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Hands and faces appear, ratting the bars.
+	<<else>>
+		"Move it," <<relaxed_guard 0>> says, giving your back a jab with <<his>> baton. Several <<people>> in prisoner's garb shuffle below. They look up, and taunt.
+	<</if>>
+	<<if $prison.inmates gte 80>>
+		They greet you, though only the closest can be heard above the din.
+		<br><br>
+		"Welcome home," one <<person5>><<personsimple>> says.
+		<br>
+		"I missed that ass."
+		<br>
+		"Is it wrong if I hoped I'd see you again?"
+		<br>
+		"Let's pick up where we left off."
+	<<elseif $prison.inmates gte 40>>
+		They taunt you, though only the closest can be heard above the din.
+		<br><br>
+		"Nice. I'll make you my <<bitch>> this time," one <<person5>><<personsimple>> says.
+		<br>
+		"I missed that ass."
+		<br>
+		"Couldn't get enough of us, slut?"
+	<<else>>
+		They taunt you, though only the closest can be heard above the din.
+		<br><br>
+		"It's that used up whore," one <<person5>><<personsimple>> says.
+		<br>
+		"I'm gonna make you squeal."
+		<br>
+		"Back where you belong, <<bitch>>."
+	<</if>>
+	<br><br>
+	<<if $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked">>
+		<<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of fabric over your wet clothes.
+	<<else>>
+		<<person1>><<relaxed_guard 0 cap>> pushes you along the upper walkway as you clutch the bundle of clothes over your <<lewdness>>.
+	<</if>>
+	<<if $prison.schedule is "lockdown">>
+		<<person6>><<tattooed_inmate 5 cap>> gropes for you, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
+	<<else>>
+		One of the cells is occupied. <<person6>><<tattooed_inmate 5 cap>> gropes for you, but <<person1>><<relaxed_guard 0>> cracks <<person6>><<his>> knuckles with a swing of <<person1>><<his>> baton.
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Prison Intro Cell]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -946,48 +946,48 @@ You emerge on a walkway above a long hall, stretching in both directions. Three
 <<effects>><<effects_prison>>
 
 <<if $prison.schedule is "lockdown">>
-    The cell door rattles shut.
-    <<if $prison_intro is undefined>>
-        "Welcome to your new home,"
-    <<else>>
-        "Welcome back,"
-    <</if>>
-    <<person1>><<relaxed_guard 0>> says. "Lights on at <<ampm 6 00>>. There's a schedule on the wall. You can read, right?"
-    <br><br>
-    <<if $prison_intro isnot 1>>
-        "Quiet down!" <<he>> shouts as <<he>> walks away. A <<person5>><<personsimple "normal">> with a jagged scar across <<his>> face stares at you from <<his>> cell. <<He>> licks one of the bars.
-    <<else>>
-        "Quiet down!" <<he>> shouts as <<he>> walks away. <<person5>><<scarred_inmate 4 cap>> stares at you from <<his>> cell. <<He>> licks one of the bars.
-    <</if>>
-    <br><br>
-
-    The cell is almost as small as your room in the orphanage. There's a jagged crack in the wall. A bare mattress sits in one corner. There's a cupboard in another, with a sign above it. "God is watching" is emblazoned across the top. Beneath it is the schedule, but the lights die before you can read it.
-    <br><br>
+	The cell door rattles shut.
+	<<if $prison_intro is undefined>>
+		"Welcome to your new home,"
+	<<else>>
+		"Welcome back,"
+	<</if>>
+	<<person1>><<relaxed_guard 0>> says. "Lights on at <<ampm 6 00>>. There's a schedule on the wall. You can read, right?"
+	<br><br>
+	<<if $prison_intro isnot 1>>
+		"Quiet down!" <<he>> shouts as <<he>> walks away. A <<person5>><<personsimple "normal">> with a jagged scar across <<his>> face stares at you from <<his>> cell. <<He>> licks one of the bars.
+	<<else>>
+		"Quiet down!" <<he>> shouts as <<he>> walks away. <<person5>><<scarred_inmate 4 cap>> stares at you from <<his>> cell. <<He>> licks one of the bars.
+	<</if>>
+	<br><br>
+
+	The cell is almost as small as your room in the orphanage. There's a jagged crack in the wall. A bare mattress sits in one corner. There's a cupboard in another, with a sign above it. "God is watching" is emblazoned across the top. Beneath it is the schedule, but the lights die before you can read it.
+	<br><br>
 <<else>>
-    The cell door rattles shut.
-    <<if $prison_intro is undefined>>
-        "Welcome to your new home,"
-    <<else>>
-        "Welcome back,"
-    <</if>> <<person1>><<relaxed_guard 0>> says. "Lights on at <<ampm 6 00>>. There's a schedule on the wall. You can read, right?"
-    <br><br>
-    <<if $prison_intro isnot 1>>
-        "Quiet down!" <<he>> shouts as <<he>> walks away. A <<person5>><<personsimple "normal">> with a jagged scar across <<his>> face arrives to gawk at you for a few moments. <<He>> licks the bar before leaving.
-    <<else>>
-        "Quiet down!" <<he>> shouts as <<he>> walks away. <<person5>><<scarred_inmate 4 cap>> arrives to gawk at you for a few moments. <<He>> licks the bar before leaving.
-    <</if>>
-    <br><br>
-
-    The cell is almost as small as your room in the orphanage. There's a jagged crack in the wall. A bare mattress sits in one corner. There's a cupboard in another, with a sign above it. "God is watching" is emblazoned in red across the top. Beneath it is the schedule.
-    <br><br>
+	The cell door rattles shut.
+	<<if $prison_intro is undefined>>
+		"Welcome to your new home,"
+	<<else>>
+		"Welcome back,"
+	<</if>> <<person1>><<relaxed_guard 0>> says. "Lights on at <<ampm 6 00>>. There's a schedule on the wall. You can read, right?"
+	<br><br>
+	<<if $prison_intro isnot 1>>
+		"Quiet down!" <<he>> shouts as <<he>> walks away. A <<person5>><<personsimple "normal">> with a jagged scar across <<his>> face arrives to gawk at you for a few moments. <<He>> licks the bar before leaving.
+	<<else>>
+		"Quiet down!" <<he>> shouts as <<he>> walks away. <<person5>><<scarred_inmate 4 cap>> arrives to gawk at you for a few moments. <<He>> licks the bar before leaving.
+	<</if>>
+	<br><br>
+
+	The cell is almost as small as your room in the orphanage. There's a jagged crack in the wall. A bare mattress sits in one corner. There's a cupboard in another, with a sign above it. "God is watching" is emblazoned in red across the top. Beneath it is the schedule.
+	<br><br>
 <</if>>
 
 <<endcombat>>
 
 <<link [[Next|Prison Cell]]>>
-    <<set $prison.time to Math.trunc($crime / 250)>>
-    <<set $crime to 0>>
-    <<set $prison_intro to 1>>
+	<<set $prison.time to Math.trunc($crime / 250)>>
+	<<set $crime to 0>>
+	<<set $prison_intro to 1>>
 <</link>>
 <br>
 
@@ -1005,37 +1005,37 @@ You emerge on a walkway above a long hall, stretching in both directions. Three
 
 
 <<if $prison.inmates gte 80>>
-    The other inmates pat your back as you pass.
+	The other inmates pat your back as you pass.
 <<elseif $prison.inmates gte 40>>
-    The other inmates go about their business, unconcerned with you.
+	The other inmates go about their business, unconcerned with you.
 <<else>>
-    The other inmates glare at you as you pass, but they won't try anything right under a guard's nose.
+	The other inmates glare at you as you pass, but they won't try anything right under a guard's nose.
 <</if>>
 
 
 
 <<if $prison.scarred gte 80>>
-    <<if $prison.tattooed gte 80>>
-        <<scarred_inmate 4 cap>><<person5>> grasps your arm, and pulls you into <<him>>. "I'll miss that ass," <<he>> says, giving you a light spank. "Don't go slutting around too much."
-        <br><br>
-        "Hands off my <<girl>>," shouts <<tattooed_inmate 5>><<person6>>, marching down the walkway. <<He>> grasps your other arm, and tries to wrest you away.
-        <br><br>
-        A whistle pierces the hall. <<methodical_guard 3 capo>> eyes flick between the pair, and the release you.
-        <br><br>
-        "I'll be lonely without you," <<tattooed_inmate 5>><<person6>> whispers. <<He>> sniffs your hair. "Have fun outside."
-    <<else>>
-        <<scarred_inmate 4 cap>><<person5>> grasps your arm, and pulls you into <<him>>. "I'll miss that ass," <<he>> says, giving you a light spank. "Don't go slutting around too much."
-        <br><br>
-        <<tattooed_inmate 5 cap>><<person6>> watches you from the opposite walkway. <<He>> licks <<his>> teeth.
-    <</if>>
+	<<if $prison.tattooed gte 80>>
+		<<scarred_inmate 4 cap>><<person5>> grasps your arm, and pulls you into <<him>>. "I'll miss that ass," <<he>> says, giving you a light spank. "Don't go slutting around too much."
+		<br><br>
+		"Hands off my <<girl>>," shouts <<tattooed_inmate 5>><<person6>>, marching down the walkway. <<He>> grasps your other arm, and tries to wrest you away.
+		<br><br>
+		A whistle pierces the hall. <<methodical_guard 3 capo>> eyes flick between the pair, and the release you.
+		<br><br>
+		"I'll be lonely without you," <<tattooed_inmate 5>><<person6>> whispers. <<He>> sniffs your hair. "Have fun outside."
+	<<else>>
+		<<scarred_inmate 4 cap>><<person5>> grasps your arm, and pulls you into <<him>>. "I'll miss that ass," <<he>> says, giving you a light spank. "Don't go slutting around too much."
+		<br><br>
+		<<tattooed_inmate 5 cap>><<person6>> watches you from the opposite walkway. <<He>> licks <<his>> teeth.
+	<</if>>
 <<else>>
-    <<if $prison.tattooed gte 80>>
-        <<scarred_inmate 4 cap>> grasps your arm, but releases you when <<person5>><<he>> sees <<tattooed_inmate 5>> walking this way. They stare each other down. <<scarred_inmate 4 cap>> bites the air, then returns to <<his>> cell.
-        <br><br>
-        "I'll be lonely without you," <<tattooed_inmate 5>><<person6>> says. <<He>> sniffs your hair. "Have fun outside."
-    <<else>>
-        <<scarred_inmate 4 cap>> grasps your arm, but releases you when <<methodical_guard 3>> whacks the railing with <<person4>><<his>> baton. <<tattooed_inmate 5 cap>> watches you from the other side of the block. "You'll be back," <<person6>><<he>> mouths. "I'll be waiting."
-    <</if>>
+	<<if $prison.tattooed gte 80>>
+		<<scarred_inmate 4 cap>> grasps your arm, but releases you when <<person5>><<he>> sees <<tattooed_inmate 5>> walking this way. They stare each other down. <<scarred_inmate 4 cap>> bites the air, then returns to <<his>> cell.
+		<br><br>
+		"I'll be lonely without you," <<tattooed_inmate 5>><<person6>> says. <<He>> sniffs your hair. "Have fun outside."
+	<<else>>
+		<<scarred_inmate 4 cap>> grasps your arm, but releases you when <<methodical_guard 3>> whacks the railing with <<person4>><<his>> baton. <<tattooed_inmate 5 cap>> watches you from the other side of the block. "You'll be back," <<person6>><<he>> mouths. "I'll be waiting."
+	<</if>>
 <</if>>
 <br><br>
 
@@ -1050,49 +1050,49 @@ You emerge on a walkway above a long hall, stretching in both directions. Three
 <<effects>>
 
 <<if $leftarm is "bound" and $rightarm is "bound">>
-    <<methodical_guard 3 cap>> leads you into the central tower.
+	<<methodical_guard 3 cap>> leads you into the central tower.
 <<else>>
-    <<methodical_guard 3 cap>> cuffs you, and leads you into the central tower.
+	<<methodical_guard 3 cap>> cuffs you, and leads you into the central tower.
 <</if>>
 <<relaxed_guard 0 cap>>, <<anxious_guard 1>>, and <<veteran_guard 2>> await.
 <br><br>
 
 <<if $prison.guards gte 80>>
-    "If only all inmates were like you," <<relaxed_guard 0>> says.
+	"If only all inmates were like you," <<relaxed_guard 0>> says.
 <<elseif $prison.guards gte 40>>
-    "Keep out of trouble this time," <<relaxed_guard 0>> says.
+	"Keep out of trouble this time," <<relaxed_guard 0>> says.
 <<else>>
-    "Suspect you'll be our problem again soon enough," <<relaxed_guard 0>> says.
+	"Suspect you'll be our problem again soon enough," <<relaxed_guard 0>> says.
 <</if>>
 <br><br>
 
 <<methodical_guard 3 cap>><<person4>> sits behind the desk, and rifles through the attached cupboard. "You are a free member of society once again," <<he>> says.
 
 <<if $prison.methodical_guard gte 80>>
-    "It was... a pleasure."
+	"It was... a pleasure."
 <<elseif $prison.methodical_guard gte 40>>
-    "Thank you for cooperating."
+	"Thank you for cooperating."
 <<else>>
-    <<He>> stamps a sheet of paper without another word.
+	<<He>> stamps a sheet of paper without another word.
 <</if>>
 <br><br>
 
 <<storeon "prison intro" check>>
 <<if _store_check is 1>>
-    "Here are your things," <<relaxed_guard 0>> says, handing you the clothes you arrived with.
-    <<storeon "prison intro">>
-    <<exposure>>
-    <<if $exposed gte 1>>
-        They don't give you anything else to cover with before pushing you through the next door.
-    <<else>>
-        They watch you dress, then push you through the next door.
-    <</if>>
+	"Here are your things," <<relaxed_guard 0>> says, handing you the clothes you arrived with.
+	<<storeon "prison intro">>
+	<<exposure>>
+	<<if $exposed gte 1>>
+		They don't give you anything else to cover with before pushing you through the next door.
+	<<else>>
+		They watch you dress, then push you through the next door.
+	<</if>>
 <<else>>
-    <<if $exposed gte 1>>
-        <<relaxed_guard 0 cap>> shoves you through the next door without giving you anything to cover with.
-    <<else>>
-        <<relaxed_guard 0 cap>> shoves you through the next door.
-    <</if>>
+	<<if $exposed gte 1>>
+		<<relaxed_guard 0 cap>> shoves you through the next door without giving you anything to cover with.
+	<<else>>
+		<<relaxed_guard 0 cap>> shoves you through the next door.
+	<</if>>
 <</if>>
 <br><br>
 
@@ -1118,84 +1118,84 @@ You walk through the cave, and emerge at the pier. The boat awaits. You sit bene
 <<relaxed_guard 0 cap>> steers through the mist without difficulty.
 
 <<if $daystate is "night">>
-    <<if $weather is "clear" or $transformationParts.traits.sharpEyes isnot "disabled">>
-        You see the light of town on the horizon ahead.
-    <<else>>
-        Though you can see little better.
-    <</if>>
+	<<if $weather is "clear" or $transformationParts.traits.sharpEyes isnot "disabled">>
+		You see the light of town on the horizon ahead.
+	<<else>>
+		Though you can see little better.
+	<</if>>
 <<else>>
-    You see the town on the horizon ahead.
+	You see the town on the horizon ahead.
 <</if>>
 <br><br>
 
 <<if $prison.relaxed gte 80>>
-    <<if $prison.anxious gte 80>>
-        <<if $prison.veteran gte 80>>
-            "I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
-            <br>
-            "Aye," replies <<veteran_guard 2>>. "Hardier than I thought, too."
-            <br>
-            "A shame to lose <<phim>>," adds <<anxious_guard 1>>.
-            <br><br>
-        <<else>>
-            "I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
-            <br>
-            "Hardier than I thought," <<veteran_guard 2>> admits.
-            <br>
-            "I'm glad of that," <<anxious_guard 1>> says. "Wouldn't have been so much help otherwise."
-            <br><br>
-        <</if>>
-    <<else>>
-        <<if $prison.veteran gte 80>>
-            "I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
-            <br>
-            "Aye," replies <<veteran_guard 2>>. "Hardier than I thought, too."
-            <br>
-            "Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
-            <br><br>
-        <<else>>
-            "I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
-            <br>
-            "Hardier than I thought," <<veteran_guard 2>> admits.
-            <br>
-            "Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
-            <br><br>
-        <</if>>
-    <</if>>
+	<<if $prison.anxious gte 80>>
+		<<if $prison.veteran gte 80>>
+			"I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
+			<br>
+			"Aye," replies <<veteran_guard 2>>. "Hardier than I thought, too."
+			<br>
+			"A shame to lose <<phim>>," adds <<anxious_guard 1>>.
+			<br><br>
+		<<else>>
+			"I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
+			<br>
+			"Hardier than I thought," <<veteran_guard 2>> admits.
+			<br>
+			"I'm glad of that," <<anxious_guard 1>> says. "Wouldn't have been so much help otherwise."
+			<br><br>
+		<</if>>
+	<<else>>
+		<<if $prison.veteran gte 80>>
+			"I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
+			<br>
+			"Aye," replies <<veteran_guard 2>>. "Hardier than I thought, too."
+			<br>
+			"Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
+			<br><br>
+		<<else>>
+			"I'll miss this one," <<relaxed_guard 0>> says. "Didn't bother me much."
+			<br>
+			"Hardier than I thought," <<veteran_guard 2>> admits.
+			<br>
+			"Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
+			<br><br>
+		<</if>>
+	<</if>>
 <<else>>
-    <<if $prison.anxious gte 80>>
-        <<if $prison.veteran gte 80>>
-            "Ever miss your family?" <<relaxed_guard 0>> asks.
-            <br>
-            <<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah. Even the odd inmate is good company. Like this one."
-            <br>
-            "Gonna miss <<pher>> help," <<anxious_guard 0>> adds.
-            <br><br>
-        <<else>>
-            "Ever miss your family?" <<relaxed_guard 0>> asks.
-            <br>
-            <<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah."
-            <br>
-            "This one kept me company," <<anxious_guard 1>> says, gesturing at you. "Almost a shame to see <<phim>> go."
-            <br><br>
-        <</if>>
-    <<else>>
-        <<if $prison.veteran gte 80>>
-            "Ever miss your family?" <<relaxed_guard 0>> asks.
-            <br>
-            <<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah. Even the odd inmate is good company. Like this one."
-            <br>
-            "Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
-            <br><br>
-        <<else>>
-            "Ever miss your family?" <<relaxed_guard 0>> asks.
-            <br>
-            <<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah."
-            <br>
-            "Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
-            <br><br>
-        <</if>>
-    <</if>>
+	<<if $prison.anxious gte 80>>
+		<<if $prison.veteran gte 80>>
+			"Ever miss your family?" <<relaxed_guard 0>> asks.
+			<br>
+			<<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah. Even the odd inmate is good company. Like this one."
+			<br>
+			"Gonna miss <<pher>> help," <<anxious_guard 0>> adds.
+			<br><br>
+		<<else>>
+			"Ever miss your family?" <<relaxed_guard 0>> asks.
+			<br>
+			<<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah."
+			<br>
+			"This one kept me company," <<anxious_guard 1>> says, gesturing at you. "Almost a shame to see <<phim>> go."
+			<br><br>
+		<</if>>
+	<<else>>
+		<<if $prison.veteran gte 80>>
+			"Ever miss your family?" <<relaxed_guard 0>> asks.
+			<br>
+			<<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah. Even the odd inmate is good company. Like this one."
+			<br>
+			"Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
+			<br><br>
+		<<else>>
+			"Ever miss your family?" <<relaxed_guard 0>> asks.
+			<br>
+			<<veteran_guard 2 cap>><<person3>> shakes <<his>> head. "With you kids around?" <<he>> replies. "Nah."
+			<br>
+			"Could you two be quiet?" <<anxious_guard 1>> asks. "I'm listening for merfolk." The other two laugh, and spend the rest of the journey mocking <<person2>><<him>>.
+			<br><br>
+		<</if>>
+	<</if>>
 <</if>>
 
 <<link [[Next|Prison End 5]]>><</link>>
@@ -1263,11 +1263,11 @@ You remain silent, and so does Bailey.
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "Thank you for picking me up" ,>> you say.
+	<<gagged_speech "Thank you for picking me up" ,>> you say.
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Thanks for the lift" ,>> you say.
+	<<gagged_speech "Thanks for the lift" ,>> you say.
 <<else>>
-    <<gagged_speech "Thanks for picking me up" ,>> you say.
+	<<gagged_speech "Thanks for picking me up" ,>> you say.
 <</if>>
 Bailey ignores you.
 <br><br>
@@ -1283,11 +1283,11 @@ Bailey ignores you.
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "I-it was horrible in there" ,>> you say. <<gagged_speech "Weren't you worried about me" ?>>
+	<<gagged_speech "I-it was horrible in there" ,>> you say. <<gagged_speech "Weren't you worried about me" ?>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Thanks for thinking about me while I was locked in hell" ,>> you say.
+	<<gagged_speech "Thanks for thinking about me while I was locked in hell" ,>> you say.
 <<else>>
-    <<gagged_speech "Did you worry about me at all" ?>> you ask. <<gagged_speech "Or did you just worry about money" ?>>
+	<<gagged_speech "Did you worry about me at all" ?>> you ask. <<gagged_speech "Or did you just worry about money" ?>>
 <</if>>
 <br><br>
 
diff --git a/game/overworld-town/loc-prison/kylar.twee b/game/overworld-town/loc-prison/kylar.twee
index 90ed92afae9de09efbf4f41185d95ad0c7a5c1b5..6c5087f15874894015e9c7bf86d8de5a5008cef8 100644
--- a/game/overworld-town/loc-prison/kylar.twee
+++ b/game/overworld-town/loc-prison/kylar.twee
@@ -34,17 +34,17 @@ Kylar runs from <<his>> cell as soon as it opens, and climbs the stairs to the w
 <<effects>>
 
 <<if $worn.face.type.includes("gag")>>
-    You can't speak with this gag in the way, so look at your feet and mumble apologetically. You think your point comes across.
-    <br><br>
+	You can't speak with this gag in the way, so look at your feet and mumble apologetically. You think your point comes across.
+	<br><br>
 <<else>>
-    <<if $submissive gte 1150>>
-        "I-I'm sorry," you say. "I didn't want you to get arrested."
-    <<elseif $submissive lte 850>>
-        "Sorry you ended up in here," you say.
-    <<else>>
-        "I'm sorry you ended up in here," you say.
-    <</if>>
-    <br><br>
+	<<if $submissive gte 1150>>
+		"I-I'm sorry," you say. "I didn't want you to get arrested."
+	<<elseif $submissive lte 850>>
+		"Sorry you ended up in here," you say.
+	<<else>>
+		"I'm sorry you ended up in here," you say.
+	<</if>>
+	<br><br>
 <</if>>
 
 Kylar drops to <<his>> knees and bows <<his>> head. Other inmates give you funny looks. "I-it was a mistake," <<he>> says. "I've gone over it in my head, over and over. The cake, the a-arrest. A misunderstanding."
@@ -62,17 +62,17 @@ Kylar drops to <<his>> knees and bows <<his>> head. Other inmates give you funny
 <<effects>>
 
 <<if $worn.face.type.includes("gag")>>
-    You can't speak with this gag in the way, so you give <<him>> a polite nod before walking by.
+	You can't speak with this gag in the way, so you give <<him>> a polite nod before walking by.
 <<else>>
-    <<if $submissive gte 1150>>
-        "I-It's good to see a familiar face," you say.
-    <<elseif $submissive lte 850>>
-        "Thank fuck I'm not alone in here," you say.
-    <<else>>
-        "I'm glad to see you," you say. "It's good to have someone familiar around."
-    <</if>>
-    <br><br>
-    Kylar nods with enthusiasm. "Y-yes," <<he>> says. "I'll look out for you. I'll get you things. Just give me time." <<He>> turns and rushes along the walkway.
+	<<if $submissive gte 1150>>
+		"I-It's good to see a familiar face," you say.
+	<<elseif $submissive lte 850>>
+		"Thank fuck I'm not alone in here," you say.
+	<<else>>
+		"I'm glad to see you," you say. "It's good to have someone familiar around."
+	<</if>>
+	<br><br>
+	Kylar nods with enthusiasm. "Y-yes," <<he>> says. "I'll look out for you. I'll get you things. Just give me time." <<He>> turns and rushes along the walkway.
 <</if>>
 <br><br>
 
@@ -84,15 +84,15 @@ Kylar drops to <<his>> knees and bows <<his>> head. Other inmates give you funny
 <<effects>>
 
 <<if $worn.face.type.includes("gag")>>
-    You can't speak with this gag in the way, so you stick your nose in the air and walk by Kylar without giving <<him>> another look. You think that got the point across.
+	You can't speak with this gag in the way, so you stick your nose in the air and walk by Kylar without giving <<him>> another look. You think that got the point across.
 <<else>>
-    <<if $submissive gte 1150>>
-        "Pl-please stay away from me," you say, walking by. "I don't need you."
-    <<elseif $submissive lte 850>>
-        "You're the last thing I need," you say, walking by. "Stay the fuck away from me."
-    <<else>>
-        "I don't need you," you say, walking by. "Please leave me alone."
-    <</if>>
+	<<if $submissive gte 1150>>
+		"Pl-please stay away from me," you say, walking by. "I don't need you."
+	<<elseif $submissive lte 850>>
+		"You're the last thing I need," you say, walking by. "Stay the fuck away from me."
+	<<else>>
+		"I don't need you," you say, walking by. "Please leave me alone."
+	<</if>>
 <</if>>
 <br><br>
 
@@ -125,34 +125,34 @@ Kylar looks up as you enter, then jumps to <<his>> feet when <<he>> sees who it
 You chat with Kylar.
 <<set $rng to random(1, 10)>>
 <<switch $rng>>
-    <<case 1>>
-        <<He>> talks about what <<he>> did to another inmate when <<he>> first arrived. "Th-that's why I was in solitary," <<he>> says. "When you got here."<<gstress>><<stress 6>>
-    <<case 2>>
-        "I've found lots of hideaways," <<he>> says. "People aren't clever about where they stash things."
-    <<case 3>>
-        "I avoid eye contact," <<he>> says. "People leave me alone."
-    <<case 4>>
-        "It's not so different from school here," <<he>> says.
-    <<case 5>>
-        "I dunno why people try to climb the walls," <<he>> says. "Those birds are huge."
-    <<case 6>>
-        "I'm surprised they don't serve fish in the canteen," <<he>> says. "Where'd they get all that food from, anyway?"
-    <<case 7>>
-        "There's a cupboard in medical," <<he>> says. "I wonder what's inside."
-    <<case 8>>
-        "That locked door in the yard must go somewhere interesting," <<he>> says.
-    <<case 9>>
-        "They wouldn't let me in the spire," <<he>> says. "I just wanted to explore."
-    <<default>>
-        "I've seen the way people look at you," <<he>> says. "Th-they won't try anything while I'm around."
+	<<case 1>>
+		<<He>> talks about what <<he>> did to another inmate when <<he>> first arrived. "Th-that's why I was in solitary," <<he>> says. "When you got here."<<gstress>><<stress 6>>
+	<<case 2>>
+		"I've found lots of hideaways," <<he>> says. "People aren't clever about where they stash things."
+	<<case 3>>
+		"I avoid eye contact," <<he>> says. "People leave me alone."
+	<<case 4>>
+		"It's not so different from school here," <<he>> says.
+	<<case 5>>
+		"I dunno why people try to climb the walls," <<he>> says. "Those birds are huge."
+	<<case 6>>
+		"I'm surprised they don't serve fish in the canteen," <<he>> says. "Where'd they get all that food from, anyway?"
+	<<case 7>>
+		"There's a cupboard in medical," <<he>> says. "I wonder what's inside."
+	<<case 8>>
+		"That locked door in the yard must go somewhere interesting," <<he>> says.
+	<<case 9>>
+		"They wouldn't let me in the spire," <<he>> says. "I just wanted to explore."
+	<<default>>
+		"I've seen the way people look at you," <<he>> says. "Th-they won't try anything while I'm around."
 <</switch>>
 <br><br>
 
 <<if $NPCName[$NPCNameList.indexOf("Kylar")].lust gte 20>>
-    <<set _rng to random(6, 12)>>
-    <<He>> grasps your wrist when you stand to leave. "I-I've got something for you." <<He>> thrusts a hand into <<his>> pocket, and pulls out a handful of shark's teeth. "H-here."
-    <<prison_teeth_text _rng>><<prison_teeth _rng>><<lllust>><<npcincr Kylar lust -20>>
-    <br><br>
+	<<set _rng to random(6, 12)>>
+	<<He>> grasps your wrist when you stand to leave. "I-I've got something for you." <<He>> thrusts a hand into <<his>> pocket, and pulls out a handful of shark's teeth. "H-here."
+	<<prison_teeth_text _rng>><<prison_teeth _rng>><<lllust>><<npcincr Kylar lust -20>>
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Block]]>><<endevent>><</link>>
@@ -165,28 +165,28 @@ You chat with Kylar.
 <<npc Kylar>><<generate_veteran_guard 1>>
 "Kylar!" you shout.
 <<if $submissive gte 1150>>
-    "I-I need you."
+	"I-I need you."
 <<elseif $submissive lte 850>>
-    "Lend a hand."
+	"Lend a hand."
 <<else>>
-    "Help me."
+	"Help me."
 <</if>>
 <br><br>
 <<set _rng to random(1, 2)>>
 <<switch _rng>>
-    <<case 1>>
-        <<person2>><<veteran_guard 1 cap>> stomps over to a nearby vent, and throws it open. <<Hes>> flashing <<his>> torch into the dark when <span class="green">a dart pierces <<his>> neck.</span> <<He>> rips it out, and turns to find Kylar stood in the open, a makeshift blowgun in <<person1>><<his>> hand.
-        <br><br>
-
-        Kylar tries to run, but <<veteran_guard 1>> is too fast. <<person2>><<He>> resists the dart's poison long enough to pin Kylar to the ground.
-        <br><br>
-    <<case 2>>
-        <span class="green">A dart pierces <<veteran_guard 1 cap>>'s neck.</span> <<He>> spins on the spot, searching for the culprit. <<He>> stomps over to a nearby vent, reaches in, and pulls out a struggling Kylar.
-        <br><br>
-
-        <<He>> resists the dart's poison long enough to pin Kylar to the ground.
-        <br><br>
-    <<default>>
+	<<case 1>>
+		<<person2>><<veteran_guard 1 cap>> stomps over to a nearby vent, and throws it open. <<Hes>> flashing <<his>> torch into the dark when <span class="green">a dart pierces <<his>> neck.</span> <<He>> rips it out, and turns to find Kylar stood in the open, a makeshift blowgun in <<person1>><<his>> hand.
+		<br><br>
+
+		Kylar tries to run, but <<veteran_guard 1>> is too fast. <<person2>><<He>> resists the dart's poison long enough to pin Kylar to the ground.
+		<br><br>
+	<<case 2>>
+		<span class="green">A dart pierces <<veteran_guard 1 cap>>'s neck.</span> <<He>> spins on the spot, searching for the culprit. <<He>> stomps over to a nearby vent, reaches in, and pulls out a struggling Kylar.
+		<br><br>
+
+		<<He>> resists the dart's poison long enough to pin Kylar to the ground.
+		<br><br>
+	<<default>>
 <</switch>>
 Inmates crowd around to watch the spectacle, while the other guards push their way through. You slip away in the chaos.
 
diff --git a/game/overworld-town/loc-prison/main.twee b/game/overworld-town/loc-prison/main.twee
index 2d8e6c0c4cdd620c218b278652ea8c0efb4deffe..e7fe4357ff3cd64312c52e506a9dc02898b2efd9 100644
--- a/game/overworld-town/loc-prison/main.twee
+++ b/game/overworld-town/loc-prison/main.twee
@@ -3,75 +3,75 @@
 
 You are in your cell. There's a bed in one corner, and a cupboard in another. A barred gate separates you from the walkway outside. There's no privacy.
 <<if $prison.poster is "man">>
-    A poster depicting a sexy gentleman hangs on one wall.
+	A poster depicting a sexy gentleman hangs on one wall.
 <<elseif $prison.poster is "woman">>
-    A poster depicting a sexy lady hangs on one wall.
+	A poster depicting a sexy lady hangs on one wall.
 <<elseif $prison.poster is "puppy">>
-    A poster depicting a cute puppy hangs on one wall.
+	A poster depicting a cute puppy hangs on one wall.
 <</if>>
 <br><br>
 <<if $hour is 20 and $prison.evening isnot 1>>
-    Thuds echo down the hall as cells lock shut.
-    <br><br>
-    <<set $prison.evening to 1>>
+	Thuds echo down the hall as cells lock shut.
+	<br><br>
+	<<set $prison.evening to 1>>
 <<elseif $prison.schedule is "lockdown">>
-    The door is locked.
-    <br><br>
+	The door is locked.
+	<br><br>
 <</if>>
 <<if $prison.schedule is "hunt" and $prison.morning isnot 1>>
-    <<set $prison.schedule to "wake">>
-    <<generate_methodical_guard 0>><<person1>>
-    The lights buzz into life, and a rattle echoes as the cell doors slide open. A <<personsimple "normal">>'s voice rings through the hall. "Roll call." You see other prisoners lining up.
-    <br><br>
-
-    <<link [[Line up|Prison Cell Role]]>><<cell_trouble -1>><</link>>
-    <br>
-    <<link [[Refuse|Prison Cell Refuse]]>><<prison_guards 1>><<prison_inmates 1>><<pain 4>><<cell_trouble 1>><</link>><<gpain>><<gsuspicion>><<grespect>>
-    <br>
-    <<set $prison.morning to 1>>
+	<<set $prison.schedule to "wake">>
+	<<generate_methodical_guard 0>><<person1>>
+	The lights buzz into life, and a rattle echoes as the cell doors slide open. A <<personsimple "normal">>'s voice rings through the hall. "Roll call." You see other prisoners lining up.
+	<br><br>
+
+	<<link [[Line up|Prison Cell Role]]>><<cell_trouble -1>><</link>>
+	<br>
+	<<link [[Refuse|Prison Cell Refuse]]>><<prison_guards 1>><<prison_inmates 1>><<pain 4>><<cell_trouble 1>><</link>><<gpain>><<gsuspicion>><<grespect>>
+	<br>
+	<<set $prison.morning to 1>>
 <<else>>
 
 	<<if $leftarm is "bound" or $rightarm is "bound">>
 		<<ind>><<link [[Undo your bindings (0:10)|Prison Cell]]>><<set $unbind to 1>><<pass 10>><<arm_unbind>><</link>>
 		<br><br>
 	<</if>>
-    <<if $prison.poster and !$prison.tunnel>>
-        <<ind>><<link [[Examine your poster|Prison Poster]]>><<set $prison.tunnel to 1>><</link>>
-        <br>
-    <<elseif $prison.tunnel is 1 and $prison.hammer is 1>>
-        <<ind>><<link [[Test the wall behind the poster|Prison Poster 2]]>><<set $prison.tunnel to 2>><</link>>
-        <br>
-    <<elseif $prison.tunnel gte 120 and $prison.schedule is "lockdown">>
-        <<ind>><<link [[Examine tunnel|Prison Tunnel]]>><</link>>
-        <br>
-    <<elseif $prison.tunnel gte 2 and $prison.schedule is "lockdown">>
-        <<ind>><<link [[Dig tunnel|Prison Tunnel]]>><</link>>
-        <br>
-    <</if>>
-    <<if $prison.schedule is "revolt">>
-        <span class="blue">It's too noisy to sleep.</span>
-        <br>
-    <<else>>
+	<<if $prison.poster and !$prison.tunnel>>
+		<<ind>><<link [[Examine your poster|Prison Poster]]>><<set $prison.tunnel to 1>><</link>>
+		<br>
+	<<elseif $prison.tunnel is 1 and $prison.hammer is 1>>
+		<<ind>><<link [[Test the wall behind the poster|Prison Poster 2]]>><<set $prison.tunnel to 2>><</link>>
+		<br>
+	<<elseif $prison.tunnel gte 120 and $prison.schedule is "lockdown">>
+		<<ind>><<link [[Examine tunnel|Prison Tunnel]]>><</link>>
+		<br>
+	<<elseif $prison.tunnel gte 2 and $prison.schedule is "lockdown">>
+		<<ind>><<link [[Dig tunnel|Prison Tunnel]]>><</link>>
+		<br>
+	<</if>>
+	<<if $prison.schedule is "revolt">>
+		<span class="blue">It's too noisy to sleep.</span>
+		<br>
+	<<else>>
 		<<listsleepoutfits "prison bed">>
-        <<bedicon>><<link [[Strip and get in bed|Prison Bed]]>><<undressSleep "prison bed">><</link>>
-        <br>
-    <</if>>
+		<<bedicon>><<link [[Strip and get in bed|Prison Bed]]>><<undressSleep "prison bed">><</link>>
+		<br>
+	<</if>>
 	<<roomoptions>>
-    <<if $prison.schedule isnot "lockdown" and !$worn.face.type.includes("blindfold")>>
-        <<plaqueicon>><<link [[Plaque|Prison Plaque]]>><</link>>
-        <br>
-    <</if>>
+	<<if $prison.schedule isnot "lockdown" and !$worn.face.type.includes("blindfold")>>
+		<<plaqueicon>><<link [[Plaque|Prison Plaque]]>><</link>>
+		<br>
+	<</if>>
 	<<wardrobeicon>><<link [[Cupboard|Prison Wardrobe]]>><</link>>
 	<br>
-    <<if $prison.mirror gte 1>>
-        <<mirroricon>><<link [[Mirror|Prison Mirror]]>><</link>>
-        <br>
-    <</if>>
+	<<if $prison.mirror gte 1>>
+		<<mirroricon>><<link [[Mirror|Prison Mirror]]>><</link>>
+		<br>
+	<</if>>
 	<br>
-    <<if $prison.schedule isnot "lockdown">>
-        <<link [[Leave|Prison Walkway]]>><</link>>
-        <br>
-    <</if>>
+	<<if $prison.schedule isnot "lockdown">>
+		<<link [[Leave|Prison Walkway]]>><</link>>
+		<br>
+	<</if>>
 	<br>
 	<<link [[Settings|Prison Settings]]>><</link>>
 	<br>
@@ -101,11 +101,11 @@ You are in your cell. There's a bed in one corner, and a cupboard in another. A
 
 You examine your poster.
 <<if $prison.poster is "man">>
-    He wears a seductive expression, but there's something in his eyes. Like he's keeping a secret.
+	He wears a seductive expression, but there's something in his eyes. Like he's keeping a secret.
 <<elseif $prison.poster is "lady">>
-    She wears a seductive expression, but there's something in her eyes. Like she's keeping a secret.
+	She wears a seductive expression, but there's something in her eyes. Like she's keeping a secret.
 <<elseif $prison.poster is "puppy">>
-    The puppy looks spirited and mischievous. Almost like it's hiding something.
+	The puppy looks spirited and mischievous. Almost like it's hiding something.
 <</if>>
 <br><br>
 
@@ -133,36 +133,36 @@ You could only dig during lockdown. Too risky otherwise.
 <<effects>>
 
 <<if $prison.tunnel gte 120>>
-    You peer down the tunnel. The sky peers back.
-    <br><br>
+	You peer down the tunnel. The sky peers back.
+	<br><br>
 
-    <<link [[Crawl to the edge (0:03)|Prison Tunnel Edge]]>><<pass 3>><</link>>
-    <br>
+	<<link [[Crawl to the edge (0:03)|Prison Tunnel Edge]]>><<pass 3>><</link>>
+	<br>
 <<else>>
-    <<if $prison.tunnel gte 80>>
-        The tunnel stretches into darkness.
-    <<elseif $prison.tunnel gte 40>>
-        The tunnel passes through the prison wall, into the natural rock of the island.
-    <<elseif $prison.tunnel gte 20>>
-        The short tunnel bores through the prison wall.
-    <<elseif $prison.tunnel gte 10>>
-        The hole in the wall is wide enough to fit your body.
-    <<else>>
-        The wall is cracked.
-    <</if>>
-    <br><br>
-    <<for _i to 1; _i lt 9; _i++>>
-        <<if _i is 1>>
-            <<link [[Dig for 1 hour|Prison Tunnel Dig]]>><<set $prison_dig to 1>><</link>><<gtiredness>>
-            <br>
-        <<else>>
-            <<capture _i>>
-                <<link [["Dig for " + _i + " hours"|Prison Tunnel Dig]]>><<set $prison_dig to _i>><</link>><<gtiredness>>
-                <br>
-            <</capture>>
-        <</if>>
-    <</for>>
-    
+	<<if $prison.tunnel gte 80>>
+		The tunnel stretches into darkness.
+	<<elseif $prison.tunnel gte 40>>
+		The tunnel passes through the prison wall, into the natural rock of the island.
+	<<elseif $prison.tunnel gte 20>>
+		The short tunnel bores through the prison wall.
+	<<elseif $prison.tunnel gte 10>>
+		The hole in the wall is wide enough to fit your body.
+	<<else>>
+		The wall is cracked.
+	<</if>>
+	<br><br>
+	<<for _i to 1; _i lt 9; _i++>>
+		<<if _i is 1>>
+			<<link [[Dig for 1 hour|Prison Tunnel Dig]]>><<set $prison_dig to 1>><</link>><<gtiredness>>
+			<br>
+		<<else>>
+			<<capture _i>>
+				<<link [["Dig for " + _i + " hours"|Prison Tunnel Dig]]>><<set $prison_dig to _i>><</link>><<gtiredness>>
+				<br>
+			<</capture>>
+		<</if>>
+	<</for>>
+
 <</if>>
 
 
@@ -174,124 +174,124 @@ You could only dig during lockdown. Too risky otherwise.
 <<effects>>
 
 <<for _dig to 0; _dig lt $prison_dig; _dig++>>
-    <<set $prison.tunnel += 1>>
-    <<tiredness 6>><<pass 1>><<advancetohour>><<effectstime>>
-    <<if $hour is 6>>
-        <<set $prison.schedule to "wake">>
-        <<break>>
-    <</if>>
+	<<set $prison.tunnel += 1>>
+	<<tiredness 6>><<pass 1>><<advancetohour>><<effectstime>>
+	<<if $hour is 6>>
+		<<set $prison.schedule to "wake">>
+		<<break>>
+	<</if>>
 <</for>>
 <<unset $prison_dig>>
 
 <<if $prison.tunnel gte 120>>
-    You crawl deep into the dark, and continue digging.
-    <br><br>
-    <span class="green">You're struck by a sudden, exhilarating breeze.</span> The smell of salt. You dig away the last of the rock, widening the hole large enough to fit your body.
-    <br><br>
-    <<earnFeat "Time and Pressure">>
-    You're at the edge of the island, above the sea.
-    <br><br>
+	You crawl deep into the dark, and continue digging.
+	<br><br>
+	<span class="green">You're struck by a sudden, exhilarating breeze.</span> The smell of salt. You dig away the last of the rock, widening the hole large enough to fit your body.
+	<br><br>
+	<<earnFeat "Time and Pressure">>
+	You're at the edge of the island, above the sea.
+	<br><br>
 
 <<elseif $prison.tunnel gte 100>>
-    You crawl deep into the dark, and continue digging.
-    <<set _rng to random(1, 3)>>
-    <<switch random(1, 3)>>
-    <<case 1>>
-        Shells melt into the surrounding stone.
-    <<case 2>>
-        You think you hear a seagull, but you might be imagining it.
-    <<case 3>>
-        You hear a rumble.
-    <</switch>>
+	You crawl deep into the dark, and continue digging.
+	<<set _rng to random(1, 3)>>
+	<<switch random(1, 3)>>
+	<<case 1>>
+		Shells melt into the surrounding stone.
+	<<case 2>>
+		You think you hear a seagull, but you might be imagining it.
+	<<case 3>>
+		You hear a rumble.
+	<</switch>>
 <<elseif $prison.tunnel gte 80>>
-    You crawl into the dark, and continue digging.
-    <<set _rng to random(1, 3)>>
-    <<switch random(1, 3)>>
-    <<case 1>>
-        You hear rushing water.
-    <<case 2>>
-        The tunnel trembles. Dust falls from the ceiling.
-    <<case 3>>
-        You breathe in some dust, and cough.<<gstress>><<stress 6>>
-    <</switch>>
+	You crawl into the dark, and continue digging.
+	<<set _rng to random(1, 3)>>
+	<<switch random(1, 3)>>
+	<<case 1>>
+		You hear rushing water.
+	<<case 2>>
+		The tunnel trembles. Dust falls from the ceiling.
+	<<case 3>>
+		You breathe in some dust, and cough.<<gstress>><<stress 6>>
+	<</switch>>
 <<elseif $prison.tunnel gte 60>>
-    You crawl through the hole and continue digging.
-    <<set _rng to random(1, 3)>>
-    <<switch random(1, 3)>>
-    <<case 1>>
-        The soft rock breaks apart with ease.<<lstress>><<stress -6>>
-    <<case 2>>
-        You graze your arm against the coarse rock.<<gpain>><<pain 4>>
-    <<case 3>>
-        The rock is uniform in consistency.
-    <</switch>>
+	You crawl through the hole and continue digging.
+	<<set _rng to random(1, 3)>>
+	<<switch random(1, 3)>>
+	<<case 1>>
+		The soft rock breaks apart with ease.<<lstress>><<stress -6>>
+	<<case 2>>
+		You graze your arm against the coarse rock.<<gpain>><<pain 4>>
+	<<case 3>>
+		The rock is uniform in consistency.
+	<</switch>>
 <<elseif $prison.tunnel gte 40>>
-    You crawl down the hole and continue digging.
-    <<set _rng to random(1, 3)>>
-    <<switch random(1, 3)>>
-    <<case 1>>
-        You strike something hard. It feels like a pebble. You're able to dig around it, and prise it from the rock.
-    <<case 2>>
-        The natural rock crumbles away, almost like sand.
-    <<case 3>>
-        The stonework bleeds into natural rock. The latter is softer.
-    <</switch>>
+	You crawl down the hole and continue digging.
+	<<set _rng to random(1, 3)>>
+	<<switch random(1, 3)>>
+	<<case 1>>
+		You strike something hard. It feels like a pebble. You're able to dig around it, and prise it from the rock.
+	<<case 2>>
+		The natural rock crumbles away, almost like sand.
+	<<case 3>>
+		The stonework bleeds into natural rock. The latter is softer.
+	<</switch>>
 <<elseif $prison.tunnel gte 20>>
-    You crawl into the hole and continue digging.
-    <<set _rng to random(1, 3)>>
-    <<switch random(1, 3)>>
-    <<case 1>>
-        One of the bricks is already loose, which is nice.<<lstress>><<stress -6>>
-    <<case 2>>
-        The stonework is ancient. Some of the bricks have warped together.
-    <<case 3>>
-        One of the bricks above falls, landing on your back.<<gpain>><<gstress>><<pain 4>><<stress 6>>
-    <</switch>>
+	You crawl into the hole and continue digging.
+	<<set _rng to random(1, 3)>>
+	<<switch random(1, 3)>>
+	<<case 1>>
+		One of the bricks is already loose, which is nice.<<lstress>><<stress -6>>
+	<<case 2>>
+		The stonework is ancient. Some of the bricks have warped together.
+	<<case 3>>
+		One of the bricks above falls, landing on your back.<<gpain>><<gstress>><<pain 4>><<stress 6>>
+	<</switch>>
 <<elseif $prison.tunnel gte 10>>
-    You reach into the hole and continue digging.
-    <<set _rng to random(1, 3)>>
-    <<switch random(1, 3)>>
-    <<case 1>>
-        The poster flaps in a sudden breeze. You pause a moment before continuing.
-    <<case 2>>
-        It's too dark to see, but you find yourself glancing at the cell door to make sure no one's watching.
-    <<case 3>>
-        The next layer of stone is firmer than the last, and darker in colour.
-    <</switch>>
+	You reach into the hole and continue digging.
+	<<set _rng to random(1, 3)>>
+	<<switch random(1, 3)>>
+	<<case 1>>
+		The poster flaps in a sudden breeze. You pause a moment before continuing.
+	<<case 2>>
+		It's too dark to see, but you find yourself glancing at the cell door to make sure no one's watching.
+	<<case 3>>
+		The next layer of stone is firmer than the last, and darker in colour.
+	<</switch>>
 <<else>>
-    You chip away the wall, piece by piece.
-    <<set _rng to random(1, 3)>>
-    <<switch random(1, 3)>>
-    <<case 1>>
-        The crack widens.
-    <<case 2>>
-        You hear a cough, and freeze for a moment before continuing.<<gstress>><<stress 6>>
-    <<case 3>>
-        It crumbles with little effort.
-    <</switch>>
+	You chip away the wall, piece by piece.
+	<<set _rng to random(1, 3)>>
+	<<switch random(1, 3)>>
+	<<case 1>>
+		The crack widens.
+	<<case 2>>
+		You hear a cough, and freeze for a moment before continuing.<<gstress>><<stress 6>>
+	<<case 3>>
+		It crumbles with little effort.
+	<</switch>>
 <</if>>
 <br><br>
 
 <<if $prison.schedule is "wake" and $prison.morning isnot 1>>
-    <<generate_methodical_guard 0>><<person1>>
-    You hear a rattle as the cell doors open behind you.
-    <<if $prison.tunnel gte 20>>
-        You rush down the tunnel, and cover the entrance with the poster.
-    <<else>>
-        You cover the entrance with the poster.
-    <</if>>
-
-    A <<personsimple "normal">>'s voice rings through the hall. "Roll call." You see other prisoners lining up.
-    <br><br>
-
-    <<link [[Line up|Prison Cell Role]]>><<cell_trouble -1>><</link>>
-    <br>
-    <<link [[Refuse|Prison Cell Refuse]]>><<prison_guards 1>><<prison_inmates 1>><<pain 4>><<cell_trouble 1>><</link>><<gpain>><<gsuspicion>><<grespect>>
-    <br>
-    <<set $prison.morning to 1>>
+	<<generate_methodical_guard 0>><<person1>>
+	You hear a rattle as the cell doors open behind you.
+	<<if $prison.tunnel gte 20>>
+		You rush down the tunnel, and cover the entrance with the poster.
+	<<else>>
+		You cover the entrance with the poster.
+	<</if>>
+
+	A <<personsimple "normal">>'s voice rings through the hall. "Roll call." You see other prisoners lining up.
+	<br><br>
+
+	<<link [[Line up|Prison Cell Role]]>><<cell_trouble -1>><</link>>
+	<br>
+	<<link [[Refuse|Prison Cell Refuse]]>><<prison_guards 1>><<prison_inmates 1>><<pain 4>><<cell_trouble 1>><</link>><<gpain>><<gsuspicion>><<grespect>>
+	<br>
+	<<set $prison.morning to 1>>
 <<else>>
-    <<link [[Next|Prison Cell]]>><</link>>
-    <br>
+	<<link [[Next|Prison Cell]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -299,15 +299,15 @@ You could only dig during lockdown. Too risky otherwise.
 <<effects>>
 
 <<if $phase is 1>>
-    You climb the rocks, and squeeze into your tunnel.
-    <<set $phase to 0>>
+	You climb the rocks, and squeeze into your tunnel.
+	<<set $phase to 0>>
 <<else>>
-    You crawl to the precipice, and peer off the edge. There's a sandy beach, trailing out of sight. It's not far down, but the waves are violent.
-    <<if $weather is "clear">>
-        You can see the surrounding mist in the moonlight.
-    <<else>>
-        You can't see far.
-    <</if>>
+	You crawl to the precipice, and peer off the edge. There's a sandy beach, trailing out of sight. It's not far down, but the waves are violent.
+	<<if $weather is "clear">>
+		You can see the surrounding mist in the moonlight.
+	<<else>>
+		You can't see far.
+	<</if>>
 <</if>>
 <br><br>
 
@@ -347,8 +347,8 @@ You lie on your mattress. It's hard to get comfortable<<if ($worn.neck.name is "
 <</if>>
 <<sleepeffects>>
 <<if $prisonwake is 1>>
-    A bell rings, waking you from your slumber.
-    <br><br>
+	A bell rings, waking you from your slumber.
+	<br><br>
 	<<set $wardrobe_location to "prison">>
 	<<wardrobeSelection true>>
 	<<radiooutfits>>
@@ -392,42 +392,42 @@ You owe nine hours of work each day<br>
 <br>
 
 <<if $prison.active_punishments.includes("free use")>>
-    <span class="red">Do not remove your "free use" collar</span>
-    <br>
+	<span class="red">Do not remove your "free use" collar</span>
+	<br>
 <</if>>
 <<if $prison.active_punishments.includes("nude")>>
-    <span class="pink">Wear no clothes</span>
-    <br>
+	<span class="pink">Wear no clothes</span>
+	<br>
 <<elseif $prison.active_punishments.includes("topless")>>
-    <span class="blue">Wear nothing above the waist</span>
-    <br>
+	<span class="blue">Wear nothing above the waist</span>
+	<br>
 <<elseif $prison.active_punishments.includes("bottomless")>>
-    <span class="blue">Wear nothing below the waist</span>
-    <br>
+	<span class="blue">Wear nothing below the waist</span>
+	<br>
 <</if>>
 <<if $prison.active_punishments.includes("underwear") and $prison.active_punishments.includes("free use")>>
-    <span class="teal">Underwear only</span>
-    <br>
+	<span class="teal">Underwear only</span>
+	<br>
 <</if>>
 <<if $prison.active_punishments.includes("blindfold")>>
-    <span class="purple">Do not remove your blindfold</span>
-    <br>
+	<span class="purple">Do not remove your blindfold</span>
+	<br>
 <</if>>
 <<if $prison.active_punishments.includes("leash")>>
-    <span class="lblue">Do not remove your leash</span>
-    <br>
+	<span class="lblue">Do not remove your leash</span>
+	<br>
 <</if>>
 <<if $prison.active_punishments.includes("cuffs")>>
-    <span class="lblue">Do not remove your shackles</span>
-    <br>
+	<span class="lblue">Do not remove your shackles</span>
+	<br>
 <</if>>
 <<if $prison.active_punishments.includes("gag")>>
-    <span class="purple">Do not remove your gag</span>
-    <br>
+	<span class="purple">Do not remove your gag</span>
+	<br>
 <</if>>
 <<if $prison.active_punishments.includes("bindings")>>
-    <span class="pink">Do not remove your bindings</span>
-    <br>
+	<span class="pink">Do not remove your bindings</span>
+	<br>
 <</if>>
 <br>
 
@@ -461,7 +461,7 @@ You have <span class="red">$prison.time</span> days left until release.
 
 
 <<if $prison_kylar_timer gte 1>>
-    <<set $prison_kylar_timer -= 1>>
+	<<set $prison_kylar_timer -= 1>>
 <</if>>
 
 You stand outside your cell, and wait as <<methodical_guard 0>> reads out each number.
@@ -469,222 +469,222 @@ You stand outside your cell, and wait as <<methodical_guard 0>> reads out each n
 "...prisoner 144."
 <br>
 <<if $worn.face.type.includes("gag")>>
-    "Mmmhr!" you say. The inmates laugh.<<lrespect>><<prison_inmates -1>>
+	"Mmmhr!" you say. The inmates laugh.<<lrespect>><<prison_inmates -1>>
 <<else>>
-    "Here," you say.
+	"Here," you say.
 <</if>>
 <br><br>
 
 <<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "prison" and $prison.kylar is 0 and $prison_kylar_timer lte 0>>
-    <<set $prison.kylar to "active">>
-    <<unset $prison_kylar_timer>>
-    <<endevent>>
+	<<set $prison.kylar to "active">>
+	<<unset $prison_kylar_timer>>
+	<<endevent>>
 	<<addNNPCOutfit "Kylar" "prisonJumpsuit">>
-    <<npc Kylar>><<person1>>
-    <<generate_methodical_guard 1>>
-    <<generate_veteran_guard 2>>
-    <<person2>><<He>> opens <<his>> mouth again, but is interrupted by a banging door somewhere below. You see <<veteran_guard 2>> through the walkway beneath your feet, pushing a small figure ahead of <<person3>><<him>>.
-    <br><br>
-    A final shove knocks the newcomer off <<person1>><<his>> feet, and <<he>> falls on <<his>> face. <<He>> scrambles to <<his>> feet, and pulls <<his>> hair away from <<his>> face. <span class="gold">It's Kylar.</span>
-    <br><br>
-
-    <<link [[Next|Prison Kylar Intro]]>><</link>>
-    <br>
+	<<npc Kylar>><<person1>>
+	<<generate_methodical_guard 1>>
+	<<generate_veteran_guard 2>>
+	<<person2>><<He>> opens <<his>> mouth again, but is interrupted by a banging door somewhere below. You see <<veteran_guard 2>> through the walkway beneath your feet, pushing a small figure ahead of <<person3>><<him>>.
+	<br><br>
+	A final shove knocks the newcomer off <<person1>><<his>> feet, and <<he>> falls on <<his>> face. <<He>> scrambles to <<his>> feet, and pulls <<his>> hair away from <<his>> face. <span class="gold">It's Kylar.</span>
+	<br><br>
+
+	<<link [[Next|Prison Kylar Intro]]>><</link>>
+	<br>
 <<elseif $prison.active_punishments.includes("free use") and $worn.neck.name isnot "free use collar" and $worn.neck.name isnot "free use collar with leash">>
-    "Where's your collar?" <<he>> asks. "Best come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"Where's your collar?" <<he>> asks. "Best come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("nude") and ($worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked")>>
-    "Aren't you supposed to be naked?" <<he>> asks. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"Aren't you supposed to be naked?" <<he>> asks. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("blindfold") and !$worn.face.type.includes("blindfold")>>
-    "Where's your blindfold?" <<he>> asks. "Best come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"Where's your blindfold?" <<he>> asks. "Best come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("topless") and ($worn.upper.name isnot "naked" or $worn.under_upper.name isnot "naked")>>
-    "You're supposed to be topless," <<he>> says. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"You're supposed to be topless," <<he>> says. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("bottomless") and ($worn.lower.name isnot "naked" or $worn.under_lower.name isnot "naked")>>
-    "You're supposed to be bottomless," <<he>> says. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"You're supposed to be bottomless," <<he>> says. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("leash") and $worn.neck.collared isnot 1>>
-    "Where's your leash?" <<he>> asks. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"Where's your leash?" <<he>> asks. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("underwear") and ($worn.upper.name isnot "naked" or $worn.lower.name isnot "naked")>>
-    "That doesn't look like underwear," <<he>> says. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"That doesn't look like underwear," <<he>> says. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("cuffs") and !$worn.feet.type.includes("shackle")>>
-    "Where are your shackles?" <<he>> asks. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"Where are your shackles?" <<he>> asks. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("gag") and !$worn.face.type.includes("gag")>>
-    "Where's your gag?" <<he>> asks. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"Where's your gag?" <<he>> asks. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.active_punishments.includes("bindings") and ($leftarm isnot "bound" or $rightarm isnot "bound")>>
-    "Your arms aren't supposed to be free," <<he>> says. "Come with me."
-    <br><br>
-    <<prison_repunishment_options>>
+	"Your arms aren't supposed to be free," <<he>> says. "Come with me."
+	<br><br>
+	<<prison_repunishment_options>>
 <<elseif $prison.time lte 0>>
-    There's a pause. <span class="green">"Your release is due,"</span> <<he>> says. <<He>> snaps the ledger shut. "Come with me."
-    <br><br>
+	There's a pause. <span class="green">"Your release is due,"</span> <<he>> says. <<He>> snaps the ledger shut. "Come with me."
+	<br><br>
 
-    <<link [[Next|Prison End]]>><<set $prison.hours_worked to 0>><</link>>
-    <br>
+	<<link [[Next|Prison End]]>><<set $prison.hours_worked to 0>><</link>>
+	<br>
 <<elseif $prison.hours_worked lt 9>>
-    There's a pause. <span class="red">"You didn't meet your work quota,"</span> <<he>> says. <<He>> snaps the ledger shut. "Come with me."
-    <br><br>
-    
-    <<link [[Go quietly|Prison Punishment]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
-    <br>
-    <<link [[Refuse|Prison Cell Punishment Refuse]]>><</link>>
-    <br>
+	There's a pause. <span class="red">"You didn't meet your work quota,"</span> <<he>> says. <<He>> snaps the ledger shut. "Come with me."
+	<br><br>
+
+	<<link [[Go quietly|Prison Punishment]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
+	<br>
+	<<link [[Refuse|Prison Cell Punishment Refuse]]>><</link>>
+	<br>
 <<elseif $prison_punished_days lte 0 and $prison.active_punishments.length gte 1>>
-    <<set $prison.hours_worked to 0>>
-    There's a pause.
-    <<if $prison.active_punishments.length gte 2>>
-        <span class="teal">"I think we can remove one of your punishments,"</span> <<he>> says. <<He>> snaps the ledger shut.
-    <<else>>
-        <span class="teal">"I think we can remove your punishment,"</span> <<he>> says. <<He>> snaps the ledger shut.
-    <</if>>
-    <<set $prison_punished_days to 2>>
-    <<set _rng to random(0, ($prison.active_punishments.length - 1))>>
-    <<set _punishment to $prison.active_punishments[_rng]>>
-    <<switch _punishment>>
-        <<case "free use">>
-            <<set $prison.active_punishments.delete("free use")>>
-            <<He>> walks along the walkway, and fishes a key from <<his>> pocket.
-            <br><br>
-
-            <<link [[Next|Prison Remove Free Use]]>><</link>>
-            <br>
-        <<case "nude">>
-            <<set $prison.active_punishments.delete("nude")>>
-            <<if random(1, 2) is 2>>
-                <<set $prison.active_punishments.delete("topless")>>
-                "You can wear clothes again. <span class="pink">Underwear only however, and you must remain bottomless, for now."</span>
-                <br><br>
-            <<else>>
-                <<set $prison.active_punishments.delete("bottomless")>>
-                "You can wear clothes again. <span class="pink">Underwear only however, and you must remain topless, for now."</span>
-                <br><br>
-            <</if>>
-            <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
-            <br>
-        <<case "blindfold">>
-            <<set $prison.active_punishments.delete("blindfold")>>
-            The walkway moves as steps approach.
-            <br><br>
-
-            <<link [[Next|Prison Remove Blindfold]]>><</link>>
-            <br>
-        <<case "topless">>
-            <<set $prison.active_punishments.delete("topless")>>
-            <<if $prison.active_punishments.includes("nude")>>
-                <<set $prison.active_punishments.delete("nude")>>
-                <<if $prison.active_punishments.includes("underwear")>>
-                    "You can wear a bra or vest, but nothing more. <span class="pink">Remain naked from the waist down."</span>
-                    <br><br>
-                <<else>>
-                    "You can wear a shirt again, <span class="pink">but must remain naked from the waist down.</span>
-                    <br><br>
-                <</if>>
-            <<else>>
-                <<if $prison.active_punishments.includes("underwear")>>
-                    "You can cover your chest with a bra or vest, <span class="pink">but no shirts or such, for now."</span>
-                <<else>>
-                    <span class="green">"You can clothe yourself properly again."</span> This prompts the other inmates to take another gawk at you.
-                <</if>>
+	<<set $prison.hours_worked to 0>>
+	There's a pause.
+	<<if $prison.active_punishments.length gte 2>>
+		<span class="teal">"I think we can remove one of your punishments,"</span> <<he>> says. <<He>> snaps the ledger shut.
+	<<else>>
+		<span class="teal">"I think we can remove your punishment,"</span> <<he>> says. <<He>> snaps the ledger shut.
+	<</if>>
+	<<set $prison_punished_days to 2>>
+	<<set _rng to random(0, ($prison.active_punishments.length - 1))>>
+	<<set _punishment to $prison.active_punishments[_rng]>>
+	<<switch _punishment>>
+		<<case "free use">>
+			<<set $prison.active_punishments.delete("free use")>>
+			<<He>> walks along the walkway, and fishes a key from <<his>> pocket.
+			<br><br>
+
+			<<link [[Next|Prison Remove Free Use]]>><</link>>
+			<br>
+		<<case "nude">>
+			<<set $prison.active_punishments.delete("nude")>>
+			<<if random(1, 2) is 2>>
+				<<set $prison.active_punishments.delete("topless")>>
+				"You can wear clothes again. <span class="pink">Underwear only however, and you must remain bottomless, for now."</span>
 				<br><br>
-            <</if>>
-            <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
-            <br>
-        <<case "leash">>
-            <<set $prison.active_punishments.delete("leash")>>
-            <<He>> pulls a pair of pliers from <<his>> pocket as <<he>> walks towards you.
-            <br><br>
-            <<link [[Next|Prison Remove Leash]]>><</link>>
-            <br>
-        <<case "underwear">>
-            <<if $prison.active_punishments.includes("nude")>>
-                <<set $prison.active_punishments.delete("nude")>>
-                <<if random(1, 2) is 2>>
-                    <<set $prison.active_punishments.delete("topless")>>
-                    "You can wear clothes again. <span class="pink">Underwear only however, and you must remain bottomless, for now."</span>
-                    <br><br>
-                <<else>>
-                    <<set $prison.active_punishments.delete("bottomless")>>
-                    "You can wear clothes again. <span class="pink">Underwear only however, and you must remain topless, for now."</span>
-                    <br><br>
-                <</if>>
-            <<else>>
-                <<set $prison.active_punishments.delete("underwear")>>
-                <<if $prison.active_punishments.includes("topless")>>
-                    "You can wear trousers again. <span class="pink">But keep your chest bare, for now."</span>
-                    <br><br>
-                <<elseif $prison.active_punishments.includes("bottomless")>>
-                    "You can wear a shirt again. <span class="pink">You must remain naked from the waist down however, for now."</span>
-                    <br><br>
-                <<else>>
-                    <span class="green">"You can clothe yourself properly again."</span> This prompts the other inmates to take another gawk at you.
-                    <br><br>
-                <</if>>
-            <</if>>
-            <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
-            <br>
-        <<case "cuffs">>
-            <<set $prison.active_punishments.delete("cuffs")>>
-            <<He>> pulls a key from <<his>> pocket as <<he>> walks towards you.
-            <br><br>
-
-            <<link [[Next|Prison Remove Cuffs]]>><</link>>
-            <br>
-        <<case "bottomless">>
-            <<set $prison.active_punishments.delete("bottomless")>>
-            <<if $prison.active_punishments.includes("nude")>>
-                <<set $prison.active_punishments.delete("nude")>>
-                <<if $prison.active_punishments.includes("underwear")>>
-                    "You can wear underwear again, <span class="pink">but must remain topless."</span>
-                <<else>>
-                    "You can wear trousers again," <span class="pink">but must remain topless."</span>
-                <</if>>
+			<<else>>
+				<<set $prison.active_punishments.delete("bottomless")>>
+				"You can wear clothes again. <span class="pink">Underwear only however, and you must remain topless, for now."</span>
 				<br><br>
-            <<else>>
-                <<if $prison.active_punishments.includes("underwear")>>
-                    "You can wear underwear again, <span class="pink">but no shirts or such, for now."</span>
-                <<else>>
-                    <span class="green">"You can clothe yourself properly again."</span> This prompts the other inmates to take another gawk at you.
-                <</if>>
+			<</if>>
+			<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+			<br>
+		<<case "blindfold">>
+			<<set $prison.active_punishments.delete("blindfold")>>
+			The walkway moves as steps approach.
+			<br><br>
+
+			<<link [[Next|Prison Remove Blindfold]]>><</link>>
+			<br>
+		<<case "topless">>
+			<<set $prison.active_punishments.delete("topless")>>
+			<<if $prison.active_punishments.includes("nude")>>
+				<<set $prison.active_punishments.delete("nude")>>
+				<<if $prison.active_punishments.includes("underwear")>>
+					"You can wear a bra or vest, but nothing more. <span class="pink">Remain naked from the waist down."</span>
+					<br><br>
+				<<else>>
+					"You can wear a shirt again, <span class="pink">but must remain naked from the waist down.</span>
+					<br><br>
+				<</if>>
+			<<else>>
+				<<if $prison.active_punishments.includes("underwear")>>
+					"You can cover your chest with a bra or vest, <span class="pink">but no shirts or such, for now."</span>
+				<<else>>
+					<span class="green">"You can clothe yourself properly again."</span> This prompts the other inmates to take another gawk at you.
+				<</if>>
 				<br><br>
-            <</if>>
-            <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
-            <br>
-        <<case "gag">>
-            <<set $prison.active_punishments.delete("gag")>>
-            <<He>> walks closer. "My job's easier when you can speak anyway."
-            <br><br>
-
-            <<link [[Next|Prison Remove Gag]]>><</link>>
-            <br>
-        <<default>>
-            <<set $prison.active_punishments.delete("bindings")>>
-            The walkway moves underfoot as <<he>> walks towards you. "You're more useful with your arms free."
-            <br><br>
-
-            <<link [[Next|Prison Remove Bindings]]>><</link>>
-            <br>
-    <</switch>>
+			<</if>>
+			<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+			<br>
+		<<case "leash">>
+			<<set $prison.active_punishments.delete("leash")>>
+			<<He>> pulls a pair of pliers from <<his>> pocket as <<he>> walks towards you.
+			<br><br>
+			<<link [[Next|Prison Remove Leash]]>><</link>>
+			<br>
+		<<case "underwear">>
+			<<if $prison.active_punishments.includes("nude")>>
+				<<set $prison.active_punishments.delete("nude")>>
+				<<if random(1, 2) is 2>>
+					<<set $prison.active_punishments.delete("topless")>>
+					"You can wear clothes again. <span class="pink">Underwear only however, and you must remain bottomless, for now."</span>
+					<br><br>
+				<<else>>
+					<<set $prison.active_punishments.delete("bottomless")>>
+					"You can wear clothes again. <span class="pink">Underwear only however, and you must remain topless, for now."</span>
+					<br><br>
+				<</if>>
+			<<else>>
+				<<set $prison.active_punishments.delete("underwear")>>
+				<<if $prison.active_punishments.includes("topless")>>
+					"You can wear trousers again. <span class="pink">But keep your chest bare, for now."</span>
+					<br><br>
+				<<elseif $prison.active_punishments.includes("bottomless")>>
+					"You can wear a shirt again. <span class="pink">You must remain naked from the waist down however, for now."</span>
+					<br><br>
+				<<else>>
+					<span class="green">"You can clothe yourself properly again."</span> This prompts the other inmates to take another gawk at you.
+					<br><br>
+				<</if>>
+			<</if>>
+			<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+			<br>
+		<<case "cuffs">>
+			<<set $prison.active_punishments.delete("cuffs")>>
+			<<He>> pulls a key from <<his>> pocket as <<he>> walks towards you.
+			<br><br>
+
+			<<link [[Next|Prison Remove Cuffs]]>><</link>>
+			<br>
+		<<case "bottomless">>
+			<<set $prison.active_punishments.delete("bottomless")>>
+			<<if $prison.active_punishments.includes("nude")>>
+				<<set $prison.active_punishments.delete("nude")>>
+				<<if $prison.active_punishments.includes("underwear")>>
+					"You can wear underwear again, <span class="pink">but must remain topless."</span>
+				<<else>>
+					"You can wear trousers again," <span class="pink">but must remain topless."</span>
+				<</if>>
+				<br><br>
+			<<else>>
+				<<if $prison.active_punishments.includes("underwear")>>
+					"You can wear underwear again, <span class="pink">but no shirts or such, for now."</span>
+				<<else>>
+					<span class="green">"You can clothe yourself properly again."</span> This prompts the other inmates to take another gawk at you.
+				<</if>>
+				<br><br>
+			<</if>>
+			<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+			<br>
+		<<case "gag">>
+			<<set $prison.active_punishments.delete("gag")>>
+			<<He>> walks closer. "My job's easier when you can speak anyway."
+			<br><br>
+
+			<<link [[Next|Prison Remove Gag]]>><</link>>
+			<br>
+		<<default>>
+			<<set $prison.active_punishments.delete("bindings")>>
+			The walkway moves underfoot as <<he>> walks towards you. "You're more useful with your arms free."
+			<br><br>
+
+			<<link [[Next|Prison Remove Bindings]]>><</link>>
+			<br>
+	<</switch>>
 <<else>>
-    <<methodical_guard 0 cap>> snaps the ledger shut, and a tall gate opens at the far end of the hall. The prisoners shuffle towards it.
-    <br><br>
+	<<methodical_guard 0 cap>> snaps the ledger shut, and a tall gate opens at the far end of the hall. The prisoners shuffle towards it.
+	<br><br>
 
-    <<link [[Next|Prison Walkway]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
-    <br>
+	<<link [[Next|Prison Walkway]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
+	<br>
 
 <</if>>
 
@@ -692,112 +692,112 @@ You stand outside your cell, and wait as <<methodical_guard 0>> reads out each n
 <<effects>><<effects_prison>>
 
 <<if $prison.shock is 1>>
-    <<methodical_guard 0 cap>> sighs, and reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
-    <br><br>
+	<<methodical_guard 0 cap>> sighs, and reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
+	<br><br>
 
-    You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from your cell. The other inmates tease you as you pass, but it doesn't sound malicious.<<grespect>><<prison_inmates 1>>
-    <<bind>>
-    <br><br>
-    <<link [[Next|Prison Punishment]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
+	You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from your cell. The other inmates tease you as you pass, but it doesn't sound malicious.<<grespect>><<prison_inmates 1>>
+	<<bind>>
+	<br><br>
+	<<link [[Next|Prison Punishment]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
 <<else>>
-    <<if $prison.cell_trouble gte 5>>
-        <<generate_veteran_guard 1>><<generate_anxious_guard 2>><<generate_relaxed_guard 3>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
-        <br><br>
-
-        <<He>> arrives at your cell, with <<veteran_guard 1>>, <<anxious_guard 2>>, and <<relaxed_guard 3>> close behind. They unstrap their batons.
-        <br><br>
-
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <<elseif $prison.cell_trouble gte 4>>
-        <<generate_veteran_guard 1>><<generate_anxious_guard 2>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
-        <br><br>
-
-        <<He>> arrives at your cell, with <<veteran_guard 1>> and <<anxious_guard 2>> close behind. They unstrap their batons.
-        <br><br>
-
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <<elseif $prison.cell_trouble gte 3>>
-        <<generate_veteran_guard 1>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
-        <br><br>
-
-        <<He>> arrives at your cell, with <<veteran_guard 1>> close behind. They unstrap their batons.
-        <br><br>
-
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <<elseif $prison.cell_trouble gte 2>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. "You'd better be sick in there," <<he>> says. "Or you'll be sorry."
-        <br><br>
-
-        <<He>> finds you lazing on your bed, and unstraps the baton from <<his>> side.
-        <br><br>
-        
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <<else>>
-        You remain in your cell. "Number 144," <<methodical_guard 0>> says. "Leave your cell at once."
-        <br><br>
-        <<link [[Leave your cell|Prison Cell Role]]>><</link>>
-        <br>
-        <<link [[Refuse|Prison Cell Refuse]]>><<cell_trouble 1>><<prison_guards 1>><<prison_inmates 1>><</link>><<gsuspicion>><<grespect>>
-        <br>
-    <</if>>
+	<<if $prison.cell_trouble gte 5>>
+		<<generate_veteran_guard 1>><<generate_anxious_guard 2>><<generate_relaxed_guard 3>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
+		<br><br>
+
+		<<He>> arrives at your cell, with <<veteran_guard 1>>, <<anxious_guard 2>>, and <<relaxed_guard 3>> close behind. They unstrap their batons.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<<elseif $prison.cell_trouble gte 4>>
+		<<generate_veteran_guard 1>><<generate_anxious_guard 2>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
+		<br><br>
+
+		<<He>> arrives at your cell, with <<veteran_guard 1>> and <<anxious_guard 2>> close behind. They unstrap their batons.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<<elseif $prison.cell_trouble gte 3>>
+		<<generate_veteran_guard 1>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
+		<br><br>
+
+		<<He>> arrives at your cell, with <<veteran_guard 1>> close behind. They unstrap their batons.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<<elseif $prison.cell_trouble gte 2>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. "You'd better be sick in there," <<he>> says. "Or you'll be sorry."
+		<br><br>
+
+		<<He>> finds you lazing on your bed, and unstraps the baton from <<his>> side.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<<else>>
+		You remain in your cell. "Number 144," <<methodical_guard 0>> says. "Leave your cell at once."
+		<br><br>
+		<<link [[Leave your cell|Prison Cell Role]]>><</link>>
+		<br>
+		<<link [[Refuse|Prison Cell Refuse]]>><<cell_trouble 1>><<prison_guards 1>><<prison_inmates 1>><</link>><<gsuspicion>><<grespect>>
+		<br>
+	<</if>>
 <</if>>
 
 :: Prison Cell Punishment Refuse
 <<effects>><<effects_prison>>
 
 <<if $prison.shock is 1>>
-    <<methodical_guard 0 cap>> sighs, and reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
-    <br><br>
+	<<methodical_guard 0 cap>> sighs, and reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
+	<br><br>
 
-    You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from your cell. The other inmates tease you as you pass, but it doesn't sound malicious.<<grespect>><<prison_inmates 1>>
-    <<bind>>
-    <br><br>
-    <<link [[Next|Prison Punishment]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
+	You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from your cell. The other inmates tease you as you pass, but it doesn't sound malicious.<<grespect>><<prison_inmates 1>>
+	<<bind>>
+	<br><br>
+	<<link [[Next|Prison Punishment]]>><<endevent>><<set $prison.hours_worked to 0>><</link>>
 <<else>>
-    <<if $prison.cell_trouble gte 5>>
-        <<generate_veteran_guard 1>><<generate_anxious_guard 2>><<generate_relaxed_guard 3>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
-        <br><br>
-
-        <<He>> arrives at your cell, with <<veteran_guard 1>>, <<anxious_guard 2>>, and <<relaxed_guard 3>> close behind. They unstrap their batons.
-        <br><br>
-
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <<elseif $prison.cell_trouble gte 4>>
-        <<generate_veteran_guard 1>><<generate_anxious_guard 2>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
-        <br><br>
-
-        <<He>> arrives at your cell, with <<veteran_guard 1>> and <<anxious_guard 2>> close behind. They unstrap their batons.
-        <br><br>
-
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <<elseif $prison.cell_trouble gte 3>>
-        <<generate_veteran_guard 1>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
-        <br><br>
-
-        <<He>> arrives at your cell, with <<veteran_guard 1>> close behind. They unstrap their batons.
-        <br><br>
-
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <<else>>
-        The walkway rattles beneath <<methodical_guard 0 apo>> feet. "You're holding up the whole system." <<He>> unstraps the baton from <<his>> side before <<he>> arrives at the cell.
-        <br><br>
-        
-        <<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <</if>>
+	<<if $prison.cell_trouble gte 5>>
+		<<generate_veteran_guard 1>><<generate_anxious_guard 2>><<generate_relaxed_guard 3>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
+		<br><br>
+
+		<<He>> arrives at your cell, with <<veteran_guard 1>>, <<anxious_guard 2>>, and <<relaxed_guard 3>> close behind. They unstrap their batons.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<<elseif $prison.cell_trouble gte 4>>
+		<<generate_veteran_guard 1>><<generate_anxious_guard 2>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
+		<br><br>
+
+		<<He>> arrives at your cell, with <<veteran_guard 1>> and <<anxious_guard 2>> close behind. They unstrap their batons.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<<elseif $prison.cell_trouble gte 3>>
+		<<generate_veteran_guard 1>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. <<Hes>> not alone. "Must we make an example of you?" <<he>> says. "Because we will."
+		<br><br>
+
+		<<He>> arrives at your cell, with <<veteran_guard 1>> close behind. They unstrap their batons.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<<else>>
+		The walkway rattles beneath <<methodical_guard 0 apo>> feet. "You're holding up the whole system." <<He>> unstraps the baton from <<his>> side before <<he>> arrives at the cell.
+		<br><br>
+
+		<<link [[Next|Prison Cell Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<</if>>
 <</if>>
 
 :: Prison Cell Fight
@@ -835,45 +835,45 @@ You stand outside your cell, and wait as <<methodical_guard 0>> reads out each n
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 
-    <<if $enemynomax gte 2>>
-        The inmates cheer as the guards stagger from your cell. <<veteran_guard 1>> eyes you cautiously, but <<methodical_guard 0>> shakes <<person1>><<his>> head. "No time for this," <<he>> says, groping for <<his>> glasses. "We'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
-    <<else>>
-	    The inmates cheer as <<methodical_guard 0>> staggers from your cell, and would fall from the walkway if not for the railing. "No time for this," <<he>> says, groping for <<his>> glasses. "I'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
-    <</if>>
+	<<if $enemynomax gte 2>>
+		The inmates cheer as the guards stagger from your cell. <<veteran_guard 1>> eyes you cautiously, but <<methodical_guard 0>> shakes <<person1>><<his>> head. "No time for this," <<he>> says, groping for <<his>> glasses. "We'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
+	<<else>>
+		The inmates cheer as <<methodical_guard 0>> staggers from your cell, and would fall from the walkway if not for the railing. "No time for this," <<he>> says, groping for <<his>> glasses. "I'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
+	<</if>>
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
 
-    <<prison_revolt_options>>
+	<<prison_revolt_options>>
 
 <<elseif $enemyhealth lte 0>>
-    <<if $enemynomax gte 2>>
-        The inmates cheer as the guards stagger from your cell. <<veteran_guard 1>> eyes you cautiously, but <<methodical_guard 0>> shakes <<person1>><<his>> head. "No time for this," <<he>> says, groping for <<his>> glasses. "We'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
-    <<else>>
-	    The inmates cheer as <<methodical_guard 0>> staggers from your cell, and would fall from the walkway if not for the railing. "No time for this," <<he>> says, groping for <<his>> glasses. "I'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
-    <</if>>
-    <<switch $enemynomax>>
-        <<case 1>>
-            <<greb>><<prison_reb 1>>
-        <<case 2>>
-            <<greb>><<prison_reb 2>>
-        <<case 3>>
-            <<ggreb>><<prison_reb 3>>
-        <<default>>
-            <<ggreb>><<prison_reb 4>>
-    <</switch>>
+	<<if $enemynomax gte 2>>
+		The inmates cheer as the guards stagger from your cell. <<veteran_guard 1>> eyes you cautiously, but <<methodical_guard 0>> shakes <<person1>><<his>> head. "No time for this," <<he>> says, groping for <<his>> glasses. "We'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
+	<<else>>
+		The inmates cheer as <<methodical_guard 0>> staggers from your cell, and would fall from the walkway if not for the railing. "No time for this," <<he>> says, groping for <<his>> glasses. "I'll be watching you."<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
+	<</if>>
+	<<switch $enemynomax>>
+		<<case 1>>
+			<<greb>><<prison_reb 1>>
+		<<case 2>>
+			<<greb>><<prison_reb 2>>
+		<<case 3>>
+			<<ggreb>><<prison_reb 3>>
+		<<default>>
+			<<ggreb>><<prison_reb 4>>
+	<</switch>>
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
 	<<prison_revolt_options>>
 <<else>>
 	You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from your cell. The other inmates tease you as you pass, but it doesn't sound malicious.<<grespect>><<prison_inmates 1>>
-    <<bind>>
+	<<bind>>
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Punishment]]>><</link>>
-    <<cell_trouble -5>>
+	<<cell_trouble -5>>
 <</if>>
 
 <<set $prison.hours_worked to 0>>
@@ -883,44 +883,44 @@ You stand outside your cell, and wait as <<methodical_guard 0>> reads out each n
 
 You are in the prison showers.
 <<if $prison.schedule is "wake">>
-    Prisoners undress, leaving their clothes on wood benches, before entering the shower. You hear running water.
-    <<if $prison.kylar is "active">>
-        Kylar stands in the corner, watching you.
-    <</if>>
-    <br><br>
-    <<generate_veteran_guard 0>><<person1>><<veteran_guard 0 cap>> paces through the room.
-    <br><br>
-    <<endevent>>
-    <<if !$prison_veteran_greet and $prison.veteran gte 15>>
-        <<prison_guard_greet veteran>>
-    <<elseif random(1, 5) is 5 and $eventskip isnot 1>>
-        <<prison_guard_watch veteran>>
-    <<elseif $worn.upper.name is "naked" and $worn.lower.name is "naked" and $worn.under_upper.name is "naked" and $worn.under_lower.name is "naked">>
-        <<link [[Have a shower (0:10)|Prison Shower Take]]>><<pass 10>><</link>>
-        <br>
-        <<link [[Leave|Prison Block]]>><</link>>
-        <br>
-    <<else>>
-        <<if $exhibitionism gte 15>>   
-            <<link [[Undress in the open (0:10)|Prison Shower Open]]>><</link>>
-            <br>
-        <<else>>
-            <span class="blue">You can't bear to undress in front of everyone.</span>
-            <br>
-        <</if>>
-        <<link [[Find somewhere private to undress (0:10)|Prison Shower Private]]>><</link>>
-        <br>
-        <<link [[Leave|Prison Block]]>><</link>>
-        <br>
-    <</if>>
+	Prisoners undress, leaving their clothes on wood benches, before entering the shower. You hear running water.
+	<<if $prison.kylar is "active">>
+		Kylar stands in the corner, watching you.
+	<</if>>
+	<br><br>
+	<<generate_veteran_guard 0>><<person1>><<veteran_guard 0 cap>> paces through the room.
+	<br><br>
+	<<endevent>>
+	<<if !$prison_veteran_greet and $prison.veteran gte 15>>
+		<<prison_guard_greet veteran>>
+	<<elseif random(1, 5) is 5 and $eventskip isnot 1>>
+		<<prison_guard_watch veteran>>
+	<<elseif $worn.upper.name is "naked" and $worn.lower.name is "naked" and $worn.under_upper.name is "naked" and $worn.under_lower.name is "naked">>
+		<<link [[Have a shower (0:10)|Prison Shower Take]]>><<pass 10>><</link>>
+		<br>
+		<<link [[Leave|Prison Block]]>><</link>>
+		<br>
+	<<else>>
+		<<if $exhibitionism gte 15>>
+			<<link [[Undress in the open (0:10)|Prison Shower Open]]>><</link>>
+			<br>
+		<<else>>
+			<span class="blue">You can't bear to undress in front of everyone.</span>
+			<br>
+		<</if>>
+		<<link [[Find somewhere private to undress (0:10)|Prison Shower Private]]>><</link>>
+		<br>
+		<<link [[Leave|Prison Block]]>><</link>>
+		<br>
+	<</if>>
 <<else>>
-    There's no one around. The guards only leave the plumbing on for an hour.
-    <br><br>
+	There's no one around. The guards only leave the plumbing on for an hour.
+	<br><br>
 
-    <<link [[Leave|Prison Block]]>><</link>>
-    <br>
+	<<link [[Leave|Prison Block]]>><</link>>
+	<br>
 
-    <<set $eventskip to 0>>
+	<<set $eventskip to 0>>
 <</if>>
 
 
@@ -930,80 +930,80 @@ You are in the prison showers.
 You are on the metal walkway outside your cell, at the top of the cell block. There's a staircase leading to the floor.
 <br><br>
 <<if $hour is 20>>
-    You hear a bell ring. "Lockdown," <<generate_veteran_guard 0>><<veteran_guard 0>> shouts. "Back to your cells."
-    <br><br>
-    You're shuffled along with the other prisoners.
-    <br><br>
-    <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-    <br>
+	You hear a bell ring. "Lockdown," <<generate_veteran_guard 0>><<veteran_guard 0>> shouts. "Back to your cells."
+	<br><br>
+	You're shuffled along with the other prisoners.
+	<br><br>
+	<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+	<br>
 <<elseif $stress gte $stressmax>>
-    <<passout_prison>>
+	<<passout_prison>>
 <<else>>
-    <<if $prison.schedule is "wake">>
-        Other prisoners shuffle towards the showers.
-        <br><br>
-    <<elseif $prison.schedule is "free time">>
-        Many prisoners lounge on their beds.
-        <br><br>
-    <<elseif $prison.schedule is "lockdown">>
-        You hear snoring.
-        <br><br>
-    <<else>>
-
-    <</if>>
-    
-    <<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
-        <<events_prison_attention>>
-    <<else>>
-        <<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
-            <<events_prison>>
-        <</if>>
-        <<if $prison_event_trigger>>
-            <<events_prison_triggered>>
-        <<else>>
-            Your cell is in the corner.
-            <br>
-            
-            <<cellicon>><<link [[Your cell|Prison Cell]]>><</link>>
-            <br><br>
-            
-            <<if $prison.attention_level gte 1 and !$prison.protection and $prison.schedule is "free time">>
-                <<if !$prison.protection>>
-                    <<if !$prison_scarred_done>>
-                        <<generate_scarred_inmate 0>><<person1>>
-                        <<scarred_inmate 0 capo>> cell is more spartan than most. Almost as if it were unoccupied.
-                        <<endevent>>
-                        <br>
-                        <<cellicon>><<link [[Spartan cell|Prison Scarred]]>><</link>>
-                        <br><br>
-                    <</if>>
-                    /*
-                    <<generate_tattooed_inmate 0>><<person1>>
-                    The walls of <<tattooed_inmate 0 apo>> cell, as well as parts of the ceiling, are decorated with pornography.
-                    <<endevent>>
-                    <br>
-                    <<cellicon>><<link [[Porn-decorated cell|Prison Tattooed]]>><</link>>
-                    <br><br>
-                    */
-                <</if>>
-            <</if>>
-            A heavy wood door sits across from the tower. A faded green cross embellishes it, painted over a silver crucifix.
-            <br>
-            <<if $prison.schedule is "lockdown">>
-                <span class="blue">The door to medical is locked.</span>
-                <br><br>
-            <<else>>
-                <<prisonmedicalicon>><<link [[Medical|Prison Medical]]>><</link>>
-                <br><br>
-            <</if>>
-            The stairs snake around the central tower.
-            <br>
-            <<link [[Downstairs|Prison Block]]>><</link>>
-            <br><br>
-            <<prison_map walkway>>
-        <</if>>
-        <<set $eventskip to 0>>
-    <</if>>
+	<<if $prison.schedule is "wake">>
+		Other prisoners shuffle towards the showers.
+		<br><br>
+	<<elseif $prison.schedule is "free time">>
+		Many prisoners lounge on their beds.
+		<br><br>
+	<<elseif $prison.schedule is "lockdown">>
+		You hear snoring.
+		<br><br>
+	<<else>>
+
+	<</if>>
+
+	<<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
+		<<events_prison_attention>>
+	<<else>>
+		<<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
+			<<events_prison>>
+		<</if>>
+		<<if $prison_event_trigger>>
+			<<events_prison_triggered>>
+		<<else>>
+			Your cell is in the corner.
+			<br>
+
+			<<cellicon>><<link [[Your cell|Prison Cell]]>><</link>>
+			<br><br>
+
+			<<if $prison.attention_level gte 1 and !$prison.protection and $prison.schedule is "free time">>
+				<<if !$prison.protection>>
+					<<if !$prison_scarred_done>>
+						<<generate_scarred_inmate 0>><<person1>>
+						<<scarred_inmate 0 capo>> cell is more spartan than most. Almost as if it were unoccupied.
+						<<endevent>>
+						<br>
+						<<cellicon>><<link [[Spartan cell|Prison Scarred]]>><</link>>
+						<br><br>
+					<</if>>
+					/*
+					<<generate_tattooed_inmate 0>><<person1>>
+					The walls of <<tattooed_inmate 0 apo>> cell, as well as parts of the ceiling, are decorated with pornography.
+					<<endevent>>
+					<br>
+					<<cellicon>><<link [[Porn-decorated cell|Prison Tattooed]]>><</link>>
+					<br><br>
+					*/
+				<</if>>
+			<</if>>
+			A heavy wood door sits across from the tower. A faded green cross embellishes it, painted over a silver crucifix.
+			<br>
+			<<if $prison.schedule is "lockdown">>
+				<span class="blue">The door to medical is locked.</span>
+				<br><br>
+			<<else>>
+				<<prisonmedicalicon>><<link [[Medical|Prison Medical]]>><</link>>
+				<br><br>
+			<</if>>
+			The stairs snake around the central tower.
+			<br>
+			<<link [[Downstairs|Prison Block]]>><</link>>
+			<br><br>
+			<<prison_map walkway>>
+		<</if>>
+		<<set $eventskip to 0>>
+	<</if>>
 <</if>>
 
 
@@ -1015,71 +1015,71 @@ You are at the bottom of the cell block. There are stairs leading to a walkway a
 <br><br>
 
 <<if $hour is 20>>
-    You hear a bell ring. "Lockdown," <<generate_veteran_guard 0>><<veteran_guard 0>> shouts. "Back to your cells."
-    <br><br>
-    You're shuffled along with the other prisoners.
-    <br><br>
-    <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-    <br>
+	You hear a bell ring. "Lockdown," <<generate_veteran_guard 0>><<veteran_guard 0>> shouts. "Back to your cells."
+	<br><br>
+	You're shuffled along with the other prisoners.
+	<br><br>
+	<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+	<br>
 <<elseif $stress gte $stressmax>>
-    <<passout_prison>>
+	<<passout_prison>>
 <<else>>
-    <<if $prison.schedule is "wake">>
-        Other prisoners shuffle towards the showers.
-        <br><br>
-    <<elseif $prison.schedule is "free time">>
-        Many prisoners lounge on their beds.
-        <br><br>
-    <<elseif $prison.schedule is "lockdown">>
-        You hear snoring.
-        <br><br>
-    <<else>>
-        
-    <</if>>
-    
-    <<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
-        <<events_prison_attention>>
-    <<else>>
-        <<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
-            <<events_prison>>
-        <</if>>
-        <<if $prison_event_trigger>>
-            <<events_prison_triggered>>
-        <<else>>
-            There's a set of double doors on one end of the block, crowned by a couple of signs. "Showers" says one. "Sex is forbidden" warns another.
-            <<if $prison.schedule is "wake">>
-                <span class="lblue">Steam flows out.</span>
-            <</if>>
-            <br>
-            <<link [[Showers|Prison Shower]]>><</link>>
-            <br><br>
-            A faint chemical smell surrounds another door. The closest cells are vacant, the metal warped and corroded.
-            <br>
-            <<prisonlaundryicon>><<link [[Laundry|Prison Laundry]]>><</link>>
-            <br><br>
-
-            <<if $prison.kylar is "active" and !$prison_kylar_cell and ($prison.schedule is "free time" or $prison.schedule is "yard")>>
-                <<npc Kylar>><<person1>>
-                Kylar sits on the bed in <<his>> cell, fussing over something in <<his>> lap.
-                <<endevent>>
-                <br>
-                <<cellicon>><<link [[Kylar's cell|Prison Kylar]]>><</link>>
-                <br><br>
-            <</if>>
-            
-            A corridor leads away, towards daylight.
-            <br>
-            <<link [[Outside|Prison Yard]]>><</link>>
-            <br><br>
-            The stairs circle a central tower. You entered here.
-            <br>
-            <<link [[Climb the stairs towards your cell|Prison Walkway]]>><</link>>
-            <br><br>
-
-            <<prison_map block>>
-        <</if>>
-        <<set $eventskip to 0>>
-    <</if>>
+	<<if $prison.schedule is "wake">>
+		Other prisoners shuffle towards the showers.
+		<br><br>
+	<<elseif $prison.schedule is "free time">>
+		Many prisoners lounge on their beds.
+		<br><br>
+	<<elseif $prison.schedule is "lockdown">>
+		You hear snoring.
+		<br><br>
+	<<else>>
+
+	<</if>>
+
+	<<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
+		<<events_prison_attention>>
+	<<else>>
+		<<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
+			<<events_prison>>
+		<</if>>
+		<<if $prison_event_trigger>>
+			<<events_prison_triggered>>
+		<<else>>
+			There's a set of double doors on one end of the block, crowned by a couple of signs. "Showers" says one. "Sex is forbidden" warns another.
+			<<if $prison.schedule is "wake">>
+				<span class="lblue">Steam flows out.</span>
+			<</if>>
+			<br>
+			<<link [[Showers|Prison Shower]]>><</link>>
+			<br><br>
+			A faint chemical smell surrounds another door. The closest cells are vacant, the metal warped and corroded.
+			<br>
+			<<prisonlaundryicon>><<link [[Laundry|Prison Laundry]]>><</link>>
+			<br><br>
+
+			<<if $prison.kylar is "active" and !$prison_kylar_cell and ($prison.schedule is "free time" or $prison.schedule is "yard")>>
+				<<npc Kylar>><<person1>>
+				Kylar sits on the bed in <<his>> cell, fussing over something in <<his>> lap.
+				<<endevent>>
+				<br>
+				<<cellicon>><<link [[Kylar's cell|Prison Kylar]]>><</link>>
+				<br><br>
+			<</if>>
+
+			A corridor leads away, towards daylight.
+			<br>
+			<<link [[Outside|Prison Yard]]>><</link>>
+			<br><br>
+			The stairs circle a central tower. You entered here.
+			<br>
+			<<link [[Climb the stairs towards your cell|Prison Walkway]]>><</link>>
+			<br><br>
+
+			<<prison_map block>>
+		<</if>>
+		<<set $eventskip to 0>>
+	<</if>>
 <</if>>
 
 :: Prison Laundry
@@ -1087,44 +1087,44 @@ You are at the bottom of the cell block. There are stairs leading to a walkway a
 
 You are in the laundry room. The walls give way to raw rock part way in. Thick pipes extend from the rough surface in an irregular pattern.
 <<if $prison.schedule is "work">>
-    Inmates sort through clothes, and large machines rumble.
-    <br><br>
-    <<generate_relaxed_guard 0>><<relaxed_guard 0 cap>> sits on a stool beside a short table, staring across the room and absentmindedly rolling a pair of dice.
-    <<endevent>>
-    <br><br>
+	Inmates sort through clothes, and large machines rumble.
+	<br><br>
+	<<generate_relaxed_guard 0>><<relaxed_guard 0 cap>> sits on a stool beside a short table, staring across the room and absentmindedly rolling a pair of dice.
+	<<endevent>>
+	<br><br>
 <<else>>
-    The machines are still.
-    <br><br>
+	The machines are still.
+	<br><br>
 <</if>>
 
 
 <<if $hour is 20>>
-    You hear a bell ring. "Lockdown," <<generate_relaxed_guard 0>><<relaxed_guard 0>> shouts. "Back to your cells."
-    <br><br>
-    You're shuffled along with the other prisoners.
-    <br><br>
-    <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-    <br>
+	You hear a bell ring. "Lockdown," <<generate_relaxed_guard 0>><<relaxed_guard 0>> shouts. "Back to your cells."
+	<br><br>
+	You're shuffled along with the other prisoners.
+	<br><br>
+	<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<if !$prison_relaxed_greet and $prison.relaxed gte 15 and $prison.schedule is "work">>
-        <<prison_guard_greet relaxed>>
-    <<elseif random(1, 5) is 5 and $eventskip isnot 1 and $prison.schedule is "work">>
-        <<prison_guard_watch relaxed>>
-    <<else>>
-        <<if $prison.schedule is "work">>
-            <<if $prison.job is "laundry">>
-                <<link [[Work|Prison Laundry Work]]>><<endevent>><</link>>
-                <br>
-            <<else>>
-                <span class="blue">Your labours are expected elsewhere.</span>
-                <br>
-            <</if>>
-        <</if>>
-        <<link [[Leave|Prison Block]]>><</link>>
-        <br>
-
-        <<prison_map laundry>>
-    <</if>>
+	<<if !$prison_relaxed_greet and $prison.relaxed gte 15 and $prison.schedule is "work">>
+		<<prison_guard_greet relaxed>>
+	<<elseif random(1, 5) is 5 and $eventskip isnot 1 and $prison.schedule is "work">>
+		<<prison_guard_watch relaxed>>
+	<<else>>
+		<<if $prison.schedule is "work">>
+			<<if $prison.job is "laundry">>
+				<<link [[Work|Prison Laundry Work]]>><<endevent>><</link>>
+				<br>
+			<<else>>
+				<span class="blue">Your labours are expected elsewhere.</span>
+				<br>
+			<</if>>
+		<</if>>
+		<<link [[Leave|Prison Block]]>><</link>>
+		<br>
+
+		<<prison_map laundry>>
+	<</if>>
 <</if>>
 
 
@@ -1135,64 +1135,64 @@ You are in the medical room. Rows of beds stretch down its length, many occupied
 <br><br>
 
 <<if $prison.schedule is "work">>
-    <<generate_methodical_guard 0>><<person1>> <<methodical_guard 0 cap>> stands over one, writing on a clipboard.
-    <br><br>
-    <<endevent>>
+	<<generate_methodical_guard 0>><<person1>> <<methodical_guard 0 cap>> stands over one, writing on a clipboard.
+	<br><br>
+	<<endevent>>
 <<else>>
 
 <</if>>
 <<if $hour is 20>>
-    You hear a bell ring. "Lockdown," <<generate_methodical_guard 0>><<methodical_guard 0>> says. "Go back to your cell."
-    <br><br>
-    <<methodical_guard 0 cap>> leaves as well, and locks the door behind <<him>>.
-    <br><br>
-    <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-    <br>
+	You hear a bell ring. "Lockdown," <<generate_methodical_guard 0>><<methodical_guard 0>> says. "Go back to your cell."
+	<br><br>
+	<<methodical_guard 0 cap>> leaves as well, and locks the door behind <<him>>.
+	<br><br>
+	<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<if random(1, 5) is 5 and $eventskip isnot 1 and $prison.schedule is "work">>
-        <<prison_guard_watch methodical>>
-    <<else>>
-        <<if $prison.schedule is "work">>
-            <<if $prison.job is "medical">>
-                <<link [[Work|Prison Medical Work]]>><</link>>
-                <br>
-            <<else>>
-                <span class="blue">Your labours are expected elsewhere.</span>
-                <br>
-            <</if>>
-        <</if>>
-        <<if $prison.shock is 1>>
-            <br>
-            There's a black and yellow door in one corner.
-            <br>
-            <<link [[Approach|Prison Medical Door]]>><</link>>
-            <br><br>
-        <</if>>
-        <<link [[Leave|Prison Walkway]]>><</link>>
-        <br>
-        <<prison_map medical>>
-    <</if>>
+	<<if random(1, 5) is 5 and $eventskip isnot 1 and $prison.schedule is "work">>
+		<<prison_guard_watch methodical>>
+	<<else>>
+		<<if $prison.schedule is "work">>
+			<<if $prison.job is "medical">>
+				<<link [[Work|Prison Medical Work]]>><</link>>
+				<br>
+			<<else>>
+				<span class="blue">Your labours are expected elsewhere.</span>
+				<br>
+			<</if>>
+		<</if>>
+		<<if $prison.shock is 1>>
+			<br>
+			There's a black and yellow door in one corner.
+			<br>
+			<<link [[Approach|Prison Medical Door]]>><</link>>
+			<br><br>
+		<</if>>
+		<<link [[Leave|Prison Walkway]]>><</link>>
+		<br>
+		<<prison_map medical>>
+	<</if>>
 <</if>>
 
 :: Prison Medical Door
 <<effects>>
 
-You approach the black and yellow door. There's no visible lock, but there is a keypad next to it. 
+You approach the black and yellow door. There's no visible lock, but there is a keypad next to it.
 
 <<if $prison.code is 1>>
-    Wren claims the code <<nnpc_he Wren>> sold you will work.
-    <<if $prison.schedule is "work">>
-        <<generate_methodical_guard 0>><<person1>>
-        You'll need to wait for <<methodical_guard 0>> to leave before trying.
-        <br><br>
-    <<else>>
-        <br><br>
-        <<link [[Enter|Prison Medical Shock]]>><</link>>
-        <br>
-    <</if>>
+	Wren claims the code <<nnpc_he Wren>> sold you will work.
+	<<if $prison.schedule is "work">>
+		<<generate_methodical_guard 0>><<person1>>
+		You'll need to wait for <<methodical_guard 0>> to leave before trying.
+		<br><br>
+	<<else>>
+		<br><br>
+		<<link [[Enter|Prison Medical Shock]]>><</link>>
+		<br>
+	<</if>>
 <<else>>
-    You'll need to find the code.
-    <br><br>
+	You'll need to find the code.
+	<br><br>
 <</if>>
 
 <<link [[Leave|Prison Medical]]>><<endevent>><</link>>
@@ -1224,10 +1224,10 @@ This machine doesn't look or sound stable. You could probably inflict irreparabl
 <<earnFeat "Breaker">>
 You lift the largest hammer, one with a wooden handle, and get to work. You smash pipes, shatter glass, and dent plates.
 
-<<if $physique gte 10000>>
-    With your strength, you're able to inflict considerable damage before the guards arrive.<<ggrespect>><<prison_inmates 10>>
+<<if currentSkillValue('physique') gte 10000>>
+	With your strength, you're able to inflict considerable damage before the guards arrive.<<ggrespect>><<prison_inmates 10>>
 <<else>>
-    Even with your limited strength, you're able to inflict a lot of damage before the guards arrive.
+	Even with your limited strength, you're able to inflict a lot of damage before the guards arrive.
 <</if>>
 <br><br>
 
@@ -1256,8 +1256,8 @@ You lift the largest hammer, one with a wooden handle, and get to work. You smas
 	<<set $enemytrust -= 100>>
 	<<set $enemyanger += 200>>
 	<<npcidlegenitals>>
-    Inmates crowd around the door to watch, some wearing bandages.
-    <br><br>
+	Inmates crowd around the door to watch, some wearing bandages.
+	<br><br>
 
 <</if>>
 
@@ -1282,31 +1282,31 @@ You lift the largest hammer, one with a wooden handle, and get to work. You smas
 <<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-    They stagger and fall against the broken machine, drained of energy. The inmates taunt them, until <<veteran_guard 1>> turns and raises <<his>> baton.<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
+	They stagger and fall against the broken machine, drained of energy. The inmates taunt them, until <<veteran_guard 1>> turns and raises <<his>> baton.<<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>>
+	<br><br>
+	"Enough of this," <<methodical_guard 0>> says. "I need to make some calls."
 	<br><br>
-    "Enough of this," <<methodical_guard 0>> says. "I need to make some calls."
-    <br><br>
 	<<clotheson>>
 	<<endcombat>>
-	
-    <<prison_revolt_options>>
+
+	<<prison_revolt_options>>
 <<elseif $enemyhealth lte 0>>
 	They back away from you, towards the door. The inmates taunt them, until <<veteran_guard 1>> turns and raises <<his>> baton. <<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>><<greb>><<prison_reb 1>>
 	<br><br>
-    "Enough of this," <<methodical_guard 0>> says. "I need to make some calls."
-    <br><br>
+	"Enough of this," <<methodical_guard 0>> says. "I need to make some calls."
+	<br><br>
 	<<clotheson>>
 	<<endcombat>>
 	<<prison_revolt_options>>
 <<else>>
 	You fall to the ground, too hurt to continue. <<He>> cuffs you, and pulls to you to your feet. The other inmates tease you as you pass, but it doesn't sound malicious.<<grespect>><<prison_inmates 1>>
-    <<bind>>
+	<<bind>>
 	<br><br>
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-    <<link [[Next|Prison Punishment]]>><</link>>
-    <br>
+	<<link [[Next|Prison Punishment]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Yard
@@ -1316,157 +1316,157 @@ You are in the prison yard. It's spacious, but the surrounding walls are unreaso
 <br><br>
 
 <<if $prison.schedule is "yard">>
-    Inmates lift weights and socialise. <<generate_veteran_guard 0>><<veteran_guard 0 cap>> watches with a sternful gaze.<<endevent>>
-    <br><br>
+	Inmates lift weights and socialise. <<generate_veteran_guard 0>><<veteran_guard 0 cap>> watches with a sternful gaze.<<endevent>>
+	<br><br>
 <<elseif $prison.schedule is "revolt">>
-    <<beastNEWinit 6 hawk>>
-    Shadows roam the grass as <<beastsplural>> fly overhead. Inmates dart across the yard in groups, or stick to the shadows. Some are caught and carried into the sky. You're not sure where they're taken.
-    <<endevent>>
-    <br><br>
+	<<beastNEWinit 6 hawk>>
+	Shadows roam the grass as <<beastsplural>> fly overhead. Inmates dart across the yard in groups, or stick to the shadows. Some are caught and carried into the sky. You're not sure where they're taken.
+	<<endevent>>
+	<br><br>
 <</if>>
 <<if $hour is 20>>
-    You hear a bell ring. "Lockdown," <<generate_veteran_guard 0>><<veteran_guard 0>> shouts. "Back to your cells."
-    <br><br>
-    You're shuffled along with the other prisoners.
-    <br><br>
-    <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-    <br>
+	You hear a bell ring. "Lockdown," <<generate_veteran_guard 0>><<veteran_guard 0>> shouts. "Back to your cells."
+	<br><br>
+	You're shuffled along with the other prisoners.
+	<br><br>
+	<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+	<br>
 <<elseif $stress gte $stressmax>>
-    <<passout_prison>>
+	<<passout_prison>>
 <<elseif $prison_wren_intro is 1 and $prison.schedule is "yard">>
-    <<if $wren_seen is "cards">>
-        <<npc "Wren">><<person1>>
-        "I've mixed feelings about meeting you here," says a young <<if $pronoun is "m">>man with short<<else>>woman with shoulder-length<</if>> hair. <span class="gold">It's Wren.</span>
-        <br><br>
-
-        "I'm sorry your sneaking didn't work out. Maybe we can be useful to each other."
-        <br><br>
-        <<link [[Next|Prison Wren Intro Met]]>><<unset $prison_wren_intro>><<set $wren_seen to "prison">><</link>>
-        <br>
-    <<elseif $wren_seen is "catsuit">>
-        <<npc "Wren">><<person1>>
-        "I've mixed feelings about meeting you here," says a young <<if $pronoun is "m">>man with short<<else>>woman with shoulder-length<</if>> hair. <span class="gold">It's Wren.</span>
-        <br><br>
-
-        "I'm sorry your skulking didn't work out. Maybe we can be useful to each other."
-        <br><br>
-
-        <<link [[Next|Prison Wren Intro Met]]>><<unset $prison_wren_intro>><<set $wren_seen to "prison">><</link>>
-        <br>
-    <<else>>
-        <<npc "Wren">><<person1>>
-        "Newcomer?" asks a young <<if $pronoun is "m">>man with short<<else>>woman with shoulder-length<</if>> hair. "Just my type." <<He>> wears a prison uniform, but seems apart from the other inmates, freer.
-        <br><br>
-
-        <<link [[Next|Prison Wren Intro]]>><<unset $prison_wren_intro>><<set $wren_seen to "prison">><</link>>
-        <br>
-    <</if>>
+	<<if $wren_seen is "cards">>
+		<<npc "Wren">><<person1>>
+		"I've mixed feelings about meeting you here," says a young <<if $pronoun is "m">>man with short<<else>>woman with shoulder-length<</if>> hair. <span class="gold">It's Wren.</span>
+		<br><br>
+
+		"I'm sorry your sneaking didn't work out. Maybe we can be useful to each other."
+		<br><br>
+		<<link [[Next|Prison Wren Intro Met]]>><<unset $prison_wren_intro>><<set $wren_seen to "prison">><</link>>
+		<br>
+	<<elseif $wren_seen is "catsuit">>
+		<<npc "Wren">><<person1>>
+		"I've mixed feelings about meeting you here," says a young <<if $pronoun is "m">>man with short<<else>>woman with shoulder-length<</if>> hair. <span class="gold">It's Wren.</span>
+		<br><br>
+
+		"I'm sorry your skulking didn't work out. Maybe we can be useful to each other."
+		<br><br>
+
+		<<link [[Next|Prison Wren Intro Met]]>><<unset $prison_wren_intro>><<set $wren_seen to "prison">><</link>>
+		<br>
+	<<else>>
+		<<npc "Wren">><<person1>>
+		"Newcomer?" asks a young <<if $pronoun is "m">>man with short<<else>>woman with shoulder-length<</if>> hair. "Just my type." <<He>> wears a prison uniform, but seems apart from the other inmates, freer.
+		<br><br>
+
+		<<link [[Next|Prison Wren Intro]]>><<unset $prison_wren_intro>><<set $wren_seen to "prison">><</link>>
+		<br>
+	<</if>>
 <<else>>
-    <<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
-        <<events_prison_attention>>
-    <<else>>
-        <<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
-            <<events_prison>>
-        <</if>>
-        <<if $prison_event_trigger>>
-            <<events_prison_triggered>>
-        <<else>>
-            <<if $prison.schedule is "yard" and !$prison_veteran_greet and $prison.veteran gte 15>>
-                <<prison_guard_greet veteran>>
-            <<elseif $prison.schedule is "yard" and random(1, 5) is 5 and $eventskip isnot 1>>
-                <<prison_guard_watch veteran>>
-            <<else>>
-                <<if $prison.schedule isnot "revolt">>
-                    <<if $worn.feet.type.includes("shackle")>>
-                        <span class="blue">You can't run with your legs bound.</span>
-                        <br>
-                    <<else>>
-                        <<prisonrunicon>><<link [[Run (0:30)|Prison Yard Run]]>><<endevent>><<tiredness 6>><<athletics 6>><<pass 30>><</link>><<gathletics>><<gphysique>>
-                        <br>
-                    <</if>>
-                    <<if $leftarm is "bound" or $rightarm is "bound">>
-                        <span class="blue">You can't lift with your arms bound.</span>
-                        <br>
-                    <<else>>
-                        <<prisonlifticon>><<link [[Lift weights (0:30)|Prison Yard Exercise]]>><<endevent>><<pass 30>><<tiredness 6>><</link>><<gtiredness>><<ggphysique>>
-                        <br>
-                    <</if>>
-                <</if>>
-                <<if $prison.schedule is "yard">>
-                    <<if $worn.face.type.includes("gag")>>
-                        <span class="blue">You can't speak to the guard or inmates with this gag in the way.</span>
-                        <br>
-                    <<else>>
-                        <<link [[Speak with the guard (0:30)|Prison Yard Speak]]>><<pass 30>><<prison_rep veteran 1>><<endevent>><</link>><<glove>>
-                        <br>
-                        <<link [[Cutely flirt with inmates (0:30)|Prison Yard Flirt]]>><<set $phase to 0>><<pass 30>><<prison_hope 1>><<endevent>><</link>><<promiscuous1>><<ghope>>
-                        <br>
-                        <<if $promiscuity gte 15>>
-                            <<link [[Salaciously flirt with inmates (0:30)|Prison Yard Flirt]]>><<set $phase to 1>><<pass 30>><<prison_reb 1>><<endevent>><</link>><<promiscuous2>><<greb>>
-                            <br>
-                        <</if>>
-                    <</if>>
-                <</if>>
-                <<if $prison.schedule is "yard" and $weekday is 6>>
-                    <br>
-                    <<npc Wren>><<person1>>
-                    <span class="teal">Wren leans against a wall.</span> If the guards notice <<him>>, they pretend not to.
-                    <br>
-                
-                    <<link [[Speak with Wren|Prison Wren]]>><<endevent>><</link>>
-                    <br>
-                <</if>>
-                <br>
-                The ground slopes gently, leading to a pair of wide doors. The smell of stale food lingers in the air.
-                <br>
-                <<prisoncanteenicon>><<link [[Canteen|Prison Canteen]]>><<endevent>><</link>>
-                <br><br>
-                
-                The wall protrudes, giving rise to a tower far taller than the rest of the prison. There's a metal door at the bottom.
-                <br>
-                <<if $prison.job is "spire">>
-                    <<link [[Climb the spire (0:05)|Prison Spire]]>><<tiredness 6>><<pass 5>><</link>><<gtiredness>>
-                    <br>
-                    <<if $prison.schedule isnot "revolt">>
-                        <<if $prison.rope is 1>>
-                            <br>
-                            You could let your rope down the hole at the bottom of the spire.
-                            <br>
-                            <<link [[Use rope|Prison Spire Rope]]>><<set $prison.rope to 2>><</link>>
-                            <br>
-                        <<elseif $prison.rope is 2>>
-                            <<link [[Descend the spire (0:05)|Prison Spire Descend]]>><<tiredness 6>><<pass 5>><</link>><<gtiredness>>
-                            <br>
-                        <<else>>
-                            <br>
-                            There's a deep hole at the bottom of the spire.
-                            <br>
-                            <<link [[Look in the hole|Prison Spire Hole]]>><</link>>
-                            <br>
-                        <</if>>
-                    <</if>>
-                <<else>>
-                    <span class="blue">You're not trusted in the spire.</span>
-                    <br>
-                <</if>>
-                <br>
-                There's a small area sheltered from view. A large locked door blends into the surrounding stone.
-                <br>
-                <<if $prison.yard_door is 1>>
-                    <<prisondooricon>><<link [[Sneak to beach (0:01)|Prison Beach]]>><<endevent>><<pass 1>><</link>>
-                    <br>
-                <<else>>
-                    <<prisondooricon>><<link [[Large door|Prison Yard Door]]>><<endevent>><</link>>
-                    <br>
-                <</if>>
-                <br>
-                <<link [[Prison block|Prison Block]]>><<endevent>><</link>>
-                <br>
-                <<prison_map yard>>
-            <</if>>
-        <</if>>
-        <<set $eventskip to 0>>
-    <</if>>
+	<<if $prison.schedule isnot "lockdown" and $prison.attention gte 100>>
+		<<events_prison_attention>>
+	<<else>>
+		<<if $prison.schedule isnot "lockdown" and $eventskip isnot 1>>
+			<<events_prison>>
+		<</if>>
+		<<if $prison_event_trigger>>
+			<<events_prison_triggered>>
+		<<else>>
+			<<if $prison.schedule is "yard" and !$prison_veteran_greet and $prison.veteran gte 15>>
+				<<prison_guard_greet veteran>>
+			<<elseif $prison.schedule is "yard" and random(1, 5) is 5 and $eventskip isnot 1>>
+				<<prison_guard_watch veteran>>
+			<<else>>
+				<<if $prison.schedule isnot "revolt">>
+					<<if $worn.feet.type.includes("shackle")>>
+						<span class="blue">You can't run with your legs bound.</span>
+						<br>
+					<<else>>
+						<<prisonrunicon>><<link [[Run (0:30)|Prison Yard Run]]>><<endevent>><<tiredness 6>><<athletics 6>><<pass 30>><</link>><<gathletics>><<gphysique>>
+						<br>
+					<</if>>
+					<<if $leftarm is "bound" or $rightarm is "bound">>
+						<span class="blue">You can't lift with your arms bound.</span>
+						<br>
+					<<else>>
+						<<prisonlifticon>><<link [[Lift weights (0:30)|Prison Yard Exercise]]>><<endevent>><<pass 30>><<tiredness 6>><</link>><<gtiredness>><<ggphysique>>
+						<br>
+					<</if>>
+				<</if>>
+				<<if $prison.schedule is "yard">>
+					<<if $worn.face.type.includes("gag")>>
+						<span class="blue">You can't speak to the guard or inmates with this gag in the way.</span>
+						<br>
+					<<else>>
+						<<link [[Speak with the guard (0:30)|Prison Yard Speak]]>><<pass 30>><<prison_rep veteran 1>><<endevent>><</link>><<glove>>
+						<br>
+						<<link [[Cutely flirt with inmates (0:30)|Prison Yard Flirt]]>><<set $phase to 0>><<pass 30>><<prison_hope 1>><<endevent>><</link>><<promiscuous1>><<ghope>>
+						<br>
+						<<if $promiscuity gte 15>>
+							<<link [[Salaciously flirt with inmates (0:30)|Prison Yard Flirt]]>><<set $phase to 1>><<pass 30>><<prison_reb 1>><<endevent>><</link>><<promiscuous2>><<greb>>
+							<br>
+						<</if>>
+					<</if>>
+				<</if>>
+				<<if $prison.schedule is "yard" and $weekday is 6>>
+					<br>
+					<<npc Wren>><<person1>>
+					<span class="teal">Wren leans against a wall.</span> If the guards notice <<him>>, they pretend not to.
+					<br>
+
+					<<link [[Speak with Wren|Prison Wren]]>><<endevent>><</link>>
+					<br>
+				<</if>>
+				<br>
+				The ground slopes gently, leading to a pair of wide doors. The smell of stale food lingers in the air.
+				<br>
+				<<prisoncanteenicon>><<link [[Canteen|Prison Canteen]]>><<endevent>><</link>>
+				<br><br>
+
+				The wall protrudes, giving rise to a tower far taller than the rest of the prison. There's a metal door at the bottom.
+				<br>
+				<<if $prison.job is "spire">>
+					<<link [[Climb the spire (0:05)|Prison Spire]]>><<tiredness 6>><<pass 5>><</link>><<gtiredness>>
+					<br>
+					<<if $prison.schedule isnot "revolt">>
+						<<if $prison.rope is 1>>
+							<br>
+							You could let your rope down the hole at the bottom of the spire.
+							<br>
+							<<link [[Use rope|Prison Spire Rope]]>><<set $prison.rope to 2>><</link>>
+							<br>
+						<<elseif $prison.rope is 2>>
+							<<link [[Descend the spire (0:05)|Prison Spire Descend]]>><<tiredness 6>><<pass 5>><</link>><<gtiredness>>
+							<br>
+						<<else>>
+							<br>
+							There's a deep hole at the bottom of the spire.
+							<br>
+							<<link [[Look in the hole|Prison Spire Hole]]>><</link>>
+							<br>
+						<</if>>
+					<</if>>
+				<<else>>
+					<span class="blue">You're not trusted in the spire.</span>
+					<br>
+				<</if>>
+				<br>
+				There's a small area sheltered from view. A large locked door blends into the surrounding stone.
+				<br>
+				<<if $prison.yard_door is 1>>
+					<<prisondooricon>><<link [[Sneak to beach (0:01)|Prison Beach]]>><<endevent>><<pass 1>><</link>>
+					<br>
+				<<else>>
+					<<prisondooricon>><<link [[Large door|Prison Yard Door]]>><<endevent>><</link>>
+					<br>
+				<</if>>
+				<br>
+				<<link [[Prison block|Prison Block]]>><<endevent>><</link>>
+				<br>
+				<<prison_map yard>>
+			<</if>>
+		<</if>>
+		<<set $eventskip to 0>>
+	<</if>>
 <</if>>
 
 :: Prison Spire Hole
@@ -1500,14 +1500,14 @@ You tie the rope firm, and toss the other end down the hole. You hear a thud bel
 You climb down the spire, into the darkness beneath the prison.
 
 <<if $prison_egg is 1 or $prison.watchers_friend is 2>>
-    Your feet almost slip on the slick rock at the bottom. This is the cavern where you found the egg. You feel uneasy, and don't want to explore again without reason, so you climb back to the surface.
-    <br><br>
+	Your feet almost slip on the slick rock at the bottom. This is the cavern where you found the egg. You feel uneasy, and don't want to explore again without reason, so you climb back to the surface.
+	<br><br>
 <<else>>
-    Your feet almost slip on the slick rock at the bottom. There's something down here, hidden in the shadows. If you continue, however, it might be hard to find your way back.
-    <br><br>
+	Your feet almost slip on the slick rock at the bottom. There's something down here, hidden in the shadows. If you continue, however, it might be hard to find your way back.
+	<br><br>
 
-    <<link [[Explore the rut|Prison Rut]]>><<set $rut to 0>><<set $rut_entry to "rope">><</link>>
-    <br>
+	<<link [[Explore the rut|Prison Rut]]>><<set $rut to 0>><<set $rut_entry to "rope">><</link>>
+	<br>
 <</if>>
 
 <<link [[Climb back up|Prison Yard]]>><<location "prison">><</link>>
@@ -1520,23 +1520,23 @@ You approach the large door. It's locked.
 <br><br>
 
 <<if $prison.yard_key is 1>>
-    <<link [[Use the key|Prison Yard Door Key]]>><<set $prison.yard_door to 1>><</link>>
-    <br>
+	<<link [[Use the key|Prison Yard Door Key]]>><<set $prison.yard_door to 1>><</link>>
+	<br>
 <<else>>
-    <<set $lock to 1000>>
+	<<set $lock to 1000>>
 
-    The door is locked tight.
-    <br><br>
+	The door is locked tight.
+	<br><br>
 
 	<<if currentSkillValue('skulduggery') gte $lock>>
-        <span class="green">The lock looks easy to pick.</span>
-        <br><br>
+		<span class="green">The lock looks easy to pick.</span>
+		<br><br>
 
-        <<link [[Break in (0:05)|Prison Yard Door Pick]]>><<set $prison.yard_door to 1>><<pass 5>><</link>>
-        <br>
+		<<link [[Break in (0:05)|Prison Yard Door Pick]]>><<set $prison.yard_door to 1>><<pass 5>><</link>>
+		<br>
 	<<else>>
-        <span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>>
-        <br><br>
+		<span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>>
+		<br><br>
 	<</if>>
 <</if>>
 
@@ -1575,36 +1575,36 @@ You close the door behind you, and walk towards the light, emerging on a beach.
 <<generate_veteran_guard 0>><<person1>>
 <<generate2>>
 <<if $prison.veteran gte 60 and !$NPCList[0].name_known>>
-    <<generatep3>>
-    You find <<veteran_guard 0>> examining something in <<his>> palm. <<He>> closes <<his>> fist around it when <<he>> sees you approach. <<He>> was so absorbed <<he>> didn't notice you at first. Nor does <<he>> notice the <<person2>><<person>> backing into <<person1>><<him>>.
-    <br><br>
-    The collision is accidental, but <<veteran_guard 0>> reaches for their baton, and delivers a punishing blow to the <<person2>><<persons>> stomach. The object slips from <<person1>><<his>> hand, landing in the grass.
-    <br><br>
-
-    <<link [[Pick it up|Prison Yard Locket]]>><</link>>
-    <br>
+	<<generatep3>>
+	You find <<veteran_guard 0>> examining something in <<his>> palm. <<He>> closes <<his>> fist around it when <<he>> sees you approach. <<He>> was so absorbed <<he>> didn't notice you at first. Nor does <<he>> notice the <<person2>><<person>> backing into <<person1>><<him>>.
+	<br><br>
+	The collision is accidental, but <<veteran_guard 0>> reaches for their baton, and delivers a punishing blow to the <<person2>><<persons>> stomach. The object slips from <<person1>><<his>> hand, landing in the grass.
+	<br><br>
+
+	<<link [[Pick it up|Prison Yard Locket]]>><</link>>
+	<br>
 <<else>>
-    <<generate3>>
-    You approach <<veteran_guard 0>>.
-
-    <<He>> seems happy to chat, despite <<his>> gruff demeanor.
-    <br><br>
-
-    <<if $rng gte 81>>
-        A <<person2>><<person>> tries to climb the wall. <<veteran_guard 0 cap>><<person1>> doesn't seem concerned. "You'll get it this time," <<he>> laughs. "Just keep trying."
-    <<elseif $rng gte 61>>
-        You follow as <<he>> marches up and down the yard, stopping only to spank a <<person2>><<person>> with <<person1>><<his>> baton.
-    <<elseif $rng gte 41>>
-        <<He>> leers at a <<person2>><<person>> doing squats.
-    <<elseif $rng gte 21>>
-        "They think we'll let them leave if they manage to climb the wall," <<he>> chuckles, looking up at the spire. "But it's not up to us."
-    <<else>>
-        <<He>> stops to break up a fight between a <<person2>><<person>> and <<person3>><<person>>.
-    <</if>>
-    <br><br>
-
-    <<link [[Next|Prison Yard]]>><<endevent>><</link>>
-    <br>
+	<<generate3>>
+	You approach <<veteran_guard 0>>.
+
+	<<He>> seems happy to chat, despite <<his>> gruff demeanor.
+	<br><br>
+
+	<<if $rng gte 81>>
+		A <<person2>><<person>> tries to climb the wall. <<veteran_guard 0 cap>><<person1>> doesn't seem concerned. "You'll get it this time," <<he>> laughs. "Just keep trying."
+	<<elseif $rng gte 61>>
+		You follow as <<he>> marches up and down the yard, stopping only to spank a <<person2>><<person>> with <<person1>><<his>> baton.
+	<<elseif $rng gte 41>>
+		<<He>> leers at a <<person2>><<person>> doing squats.
+	<<elseif $rng gte 21>>
+		"They think we'll let them leave if they manage to climb the wall," <<he>> chuckles, looking up at the spire. "But it's not up to us."
+	<<else>>
+		<<He>> stops to break up a fight between a <<person2>><<person>> and <<person3>><<person>>.
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Prison Yard]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Prison Yard Locket
@@ -1626,85 +1626,85 @@ Panting, <<veteran_guard 0>> steps away from the curled <<person2>><<person>>. Y
 <<set $bus to "spire">><<set $outside to 1>><<effects>><<effects_prison>>
 
 <<if $prison.spire_intro isnot 1>>
-    The metal door clangs as you knock. A camera perched atop swivels to face you. You hear a mechanical whir, then a click. The door opens, and a rush of air blows by.
-    <br><br>
+	The metal door clangs as you knock. A camera perched atop swivels to face you. You hear a mechanical whir, then a click. The door opens, and a rush of air blows by.
+	<br><br>
 
-    There's nothing inside except a staircase, spiralling up, and down, though the downward steps soon open onto a gaping pit. You decide to climb up.
-    <br><br>
+	There's nothing inside except a staircase, spiralling up, and down, though the downward steps soon open onto a gaping pit. You decide to climb up.
+	<br><br>
 
-    <<link [[Next|Prison Spire Intro]]>><<set $prison.spire_intro to 1>><<set $prison.birds to 0>><</link>>
-    <br>
+	<<link [[Next|Prison Spire Intro]]>><<set $prison.spire_intro to 1>><<set $prison.birds to 0>><</link>>
+	<br>
 <<else>>
-    <<beastNEWinit 5 "hawk">><<generate_anxious_guard 5>><<person1>>
-    You are in the small cabin atop the spire.
-    <<if $prison.schedule is "work">>
-        <<anxious_guard 5 cap>> sits in front of several security monitors, but <<person6>><<his>> eyes follow the <<person1>><<beastsplural 0>> outside.
-    <<else>>
-        You watch the <<person1>><<beastsplural 0>> through a window.
-    <</if>>
-    <<endevent>>
-    <br><br>
-    <<if $hour is 20>>
-        <<generate_anxious_guard 0>>
-        You hear a bell ring. "Lockdown," <<anxious_guard 0>><<person1>> sighs. "At last. Off to your cell."
-        <br><br>
-        You run for the stairs with <<anxious_guard 0>> before the creatures react. <<He>> leads you down the stairs, through the yard and prison block, and into your cell.
-        <br><br>
-        <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-        <br>
-    <<elseif $prison.birds gte 30 and !$prison.watchers_friend>>
-        <<beastNEWinit 6 hawk>><<person1>>
-        The <<beastsplural>> watch you in silence. Then one launches through the air, talons outstretched. You trip in fright, but <<bhe>> catches you, lifting you into the air.
-        <br><br>
-        <<bHe>> flies in a circle around the beacon as the others sing, before landing on top.
-        <br><br>
-
-        <<link [[Next|Prison Spire Beacon]]>><<set $prison.watchers_friend to 1>><</link>>
-        <br>
-    <<else>>
-        <<if $prison.schedule is "work">>
-            <<if !$prison_anxious_greet and $prison.anxious gte 15>>
-                <<prison_guard_greet anxious>>
-            <<elseif random(1, 5) is 5 and $eventskip isnot 1>>
-                <<prison_guard_watch anxious>>
-            <<else>>
-                <<if $prison.birds gte 30>>
-                    <span class="green">The watchers are fond of you.</span>
-                <<elseif $prison.birds gte 20>>
-                    <span class="teal">The watchers think you're useful.</span>
-                <<elseif $prison.birds gte 10>>
-                    <span class="lblue">The watchers recognise you.</span>
-                <<else>>
-                    <span class="blue">The watchers see you as meat.</span>
-                <</if>>
-                <br><br>
-                <<if $prison.job is "spire">>
-                    <<link [[Work|Prison Spire Work]]>><</link>>
-                    <br>
-                <<else>>
-                    <span class="blue">Your labours are expected elsewhere.</span>
-                    <br>
-                <</if>>
-                <<if $prison.watchers_friend is 1 and $prison_egg is 1>>
-                    <<link [[Hold up the egg|Prison Spire Egg]]>><</link>>
-                    <br>
-                <</if>>
-                <<if $harpy gte 6 and $birdFly gte 1>>
-                    <br>
-                    Your wings, and the wind, are strong. You think you could fly all the way to the mainland from here.
-                    <br>
-                    <<link [[Soar to the mainland|Prison Soar]]>><</link>>
-                    <br><br>
-                <</if>>
-                <<link [[Leave (0:05)|Prison Yard]]>><<pass 5>><</link>>
-                <br>
-            <</if>>
-        <<else>>
-            <<link [[Leave (0:05)|Prison Yard]]>><<pass 5>><</link>>
-            <br>
-        <</if>>
-        <<prison_map spire>>
-    <</if>>
+	<<beastNEWinit 5 "hawk">><<generate_anxious_guard 5>><<person1>>
+	You are in the small cabin atop the spire.
+	<<if $prison.schedule is "work">>
+		<<anxious_guard 5 cap>> sits in front of several security monitors, but <<person6>><<his>> eyes follow the <<person1>><<beastsplural 0>> outside.
+	<<else>>
+		You watch the <<person1>><<beastsplural 0>> through a window.
+	<</if>>
+	<<endevent>>
+	<br><br>
+	<<if $hour is 20>>
+		<<generate_anxious_guard 0>>
+		You hear a bell ring. "Lockdown," <<anxious_guard 0>><<person1>> sighs. "At last. Off to your cell."
+		<br><br>
+		You run for the stairs with <<anxious_guard 0>> before the creatures react. <<He>> leads you down the stairs, through the yard and prison block, and into your cell.
+		<br><br>
+		<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+		<br>
+	<<elseif $prison.birds gte 30 and !$prison.watchers_friend>>
+		<<beastNEWinit 6 hawk>><<person1>>
+		The <<beastsplural>> watch you in silence. Then one launches through the air, talons outstretched. You trip in fright, but <<bhe>> catches you, lifting you into the air.
+		<br><br>
+		<<bHe>> flies in a circle around the beacon as the others sing, before landing on top.
+		<br><br>
+
+		<<link [[Next|Prison Spire Beacon]]>><<set $prison.watchers_friend to 1>><</link>>
+		<br>
+	<<else>>
+		<<if $prison.schedule is "work">>
+			<<if !$prison_anxious_greet and $prison.anxious gte 15>>
+				<<prison_guard_greet anxious>>
+			<<elseif random(1, 5) is 5 and $eventskip isnot 1>>
+				<<prison_guard_watch anxious>>
+			<<else>>
+				<<if $prison.birds gte 30>>
+					<span class="green">The watchers are fond of you.</span>
+				<<elseif $prison.birds gte 20>>
+					<span class="teal">The watchers think you're useful.</span>
+				<<elseif $prison.birds gte 10>>
+					<span class="lblue">The watchers recognise you.</span>
+				<<else>>
+					<span class="blue">The watchers see you as meat.</span>
+				<</if>>
+				<br><br>
+				<<if $prison.job is "spire">>
+					<<link [[Work|Prison Spire Work]]>><</link>>
+					<br>
+				<<else>>
+					<span class="blue">Your labours are expected elsewhere.</span>
+					<br>
+				<</if>>
+				<<if $prison.watchers_friend is 1 and $prison_egg is 1>>
+					<<link [[Hold up the egg|Prison Spire Egg]]>><</link>>
+					<br>
+				<</if>>
+				<<if $harpy gte 6 and $birdFly gte 1>>
+					<br>
+					Your wings, and the wind, are strong. You think you could fly all the way to the mainland from here.
+					<br>
+					<<link [[Soar to the mainland|Prison Soar]]>><</link>>
+					<br><br>
+				<</if>>
+				<<link [[Leave (0:05)|Prison Yard]]>><<pass 5>><</link>>
+				<br>
+			<</if>>
+		<<else>>
+			<<link [[Leave (0:05)|Prison Yard]]>><<pass 5>><</link>>
+			<br>
+		<</if>>
+		<<prison_map spire>>
+	<</if>>
 <</if>>
 
 
@@ -1716,41 +1716,41 @@ You run and jump, letting the wind catch your wings. You soar.
 
 
 <<if $prison.schedule is "revolt">>
-    The <<beastsplural>> are too busy dealing with the revolt to stop, or even notice you. <span class="green">There's nothing stopping you from escaping.</span>
-    <br><br>
+	The <<beastsplural>> are too busy dealing with the revolt to stop, or even notice you. <span class="green">There's nothing stopping you from escaping.</span>
+	<br><br>
 
-    <<link [[Escape (0:30)|Prison Soar Escape]]>><<tiredness 12>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>><<ggtiredness>>
-    <br>
-    <<link [[Land|Prison Spire]]>><<endevent>><</link>>
-    <br>
+	<<link [[Escape (0:30)|Prison Soar Escape]]>><<tiredness 12>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>><<ggtiredness>>
+	<br>
+	<<link [[Land|Prison Spire]]>><<endevent>><</link>>
+	<br>
 <<elseif $prison.watchers_friend gte 2>>
-    Two <<beastsplural>> fly alongside you for a moment.
-    <<if $monster is 1>>
-        "Safe journey," one shouts over the wind.
-    <<else>>
-        
-    <</if>>
-    Then they both turn, and return to the spire.
-    <span class="green">There's nothing stopping you from escaping.</span>
-    <br><br>
-
-    <<link [[Escape (0:30)|Prison Soar Escape]]>><<tiredness 12>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>><<ggtiredness>>
-    <br>
-    <<link [[Land|Prison Spire]]>><<endevent>><</link>>
-    <br>
+	Two <<beastsplural>> fly alongside you for a moment.
+	<<if $monster is 1>>
+		"Safe journey," one shouts over the wind.
+	<<else>>
+
+	<</if>>
+	Then they both turn, and return to the spire.
+	<span class="green">There's nothing stopping you from escaping.</span>
+	<br><br>
+
+	<<link [[Escape (0:30)|Prison Soar Escape]]>><<tiredness 12>><<prison_end>><<set $crime += Math.trunc($prison.time * 250)>><<set $crimehistory += Math.trunc($prison.time * 250)>><<pass 30>><<prison_guards -40>><</link>><<crime>><<gggsuspicion>><<ggtiredness>>
+	<br>
+	<<link [[Land|Prison Spire]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <span class="red">Two <<beastsplural>> fly after you.</span> You evade one, but the other grasps your shoulders in <<his>> talons. <<He>> carries you back to the spire.<<gpain>><<gtrauma>><<gstress>><<pain 4>><<trauma 6>><<stress 6>>
-    <br><br>
-    <<if $monster is 1>>
-        "We're watching," <<bhe>> warns. "Don't forget." <<bHe>> returns to the beacon.
-    <<else>>
-        <<bHe>> chirps a warning, then returns to the beacon.
-    <</if>>
-    You won't be able to fly away without distracting the <<beastsplural>>, or befriending them somehow.
-    <br><br>
-
-    <<link [[Next|Prison Spire]]>><</link>>
-    <br>
+	<span class="red">Two <<beastsplural>> fly after you.</span> You evade one, but the other grasps your shoulders in <<his>> talons. <<He>> carries you back to the spire.<<gpain>><<gtrauma>><<gstress>><<pain 4>><<trauma 6>><<stress 6>>
+	<br><br>
+	<<if $monster is 1>>
+		"We're watching," <<bhe>> warns. "Don't forget." <<bHe>> returns to the beacon.
+	<<else>>
+		<<bHe>> chirps a warning, then returns to the beacon.
+	<</if>>
+	You won't be able to fly away without distracting the <<beastsplural>>, or befriending them somehow.
+	<br><br>
+
+	<<link [[Next|Prison Spire]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Soar Escape
@@ -1759,19 +1759,19 @@ You run and jump, letting the wind catch your wings. You soar.
 You soar away from the island, over the mist, and towards the mainland.
 
 <<if $daystate is "night">>
-    <<if $weather is "clear">>
-        You see the lights of town light up the horizon ahead.
-    <<else>>
-        You can't make out the coast in the dark, but you know it's there.
-    <</if>>
+	<<if $weather is "clear">>
+		You see the lights of town light up the horizon ahead.
+	<<else>>
+		You can't make out the coast in the dark, but you know it's there.
+	<</if>>
 <<else>>
-    You see the town on the horizon ahead.
+	You see the town on the horizon ahead.
 <</if>>
 <br><br>
 
 <<prison_bondage_removal>>
 <<if _punishments_removed is true>>
-    You feel the air tear away your bondage, piece by piece.
+	You feel the air tear away your bondage, piece by piece.
 <</if>>
 
 It's a tiring journey, but the wind is on your side. Free as a bird, you swoop onto the beach.
@@ -1788,24 +1788,24 @@ The beacon is covered with nests, made mostly of driftwood. The other <<beastspl
 <br><br>
 
 <<if $monster is 1>>
-    "Egg stolen," <<bhe>> says. "Eggs rare. Please, find below. Far below! Too far below." The others sing a melancholy tune.
+	"Egg stolen," <<bhe>> says. "Eggs rare. Please, find below. Far below! Too far below." The others sing a melancholy tune.
 <<else>>
-    Are they missing an egg? It would have to be hidden somewhere they couldn't reach.
+	Are they missing an egg? It would have to be hidden somewhere they couldn't reach.
 <</if>>
 
 <<if $prison_egg is 1>>
-    You already found an egg far below. You hold it out. <span class="green">The <<beastsplural>> hop in surprise, then chirp in excitement and relief.</span>
-    <br><br>
+	You already found an egg far below. You hold it out. <span class="green">The <<beastsplural>> hop in surprise, then chirp in excitement and relief.</span>
+	<br><br>
 
-    <<link [[Next|Prison Spire Egg 2]]>><<set $spraymax += 1>><<spray 5>><<set $prison.watchers_friend to 2>><</link>> 
-    <br>
+	<<link [[Next|Prison Spire Egg 2]]>><<set $spraymax += 1>><<spray 5>><<set $prison.watchers_friend to 2>><</link>>
+	<br>
 <<else>>
-    <br><br>
-    Another <<beasttype>> grasps your shoulders, and carries you back to the platform.
-    <br><br>
+	<br><br>
+	Another <<beasttype>> grasps your shoulders, and carries you back to the platform.
+	<br><br>
 
-    <<link [[Next|Prison Spire]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Spire]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Prison Spire Egg
@@ -1818,7 +1818,7 @@ You stand in front of the beacon, and hold up the egg. One <<beasttype>> notices
 <<bHe>> carries you up to the beacon, and gently places you beside the empty nest. Others land, forming a circle around you.
 <br><br>
 
-<<link [[Next|Prison Spire Egg 2]]>><<set $spraymax += 1>><<spray 5>><<set $prison.watchers_friend to 2>><</link>> 
+<<link [[Next|Prison Spire Egg 2]]>><<set $spraymax += 1>><<spray 5>><<set $prison.watchers_friend to 2>><</link>>
 <br>
 
 :: Prison Spire Egg 2
@@ -1827,9 +1827,9 @@ You stand in front of the beacon, and hold up the egg. One <<beasttype>> notices
 You place the egg in the nest. The <<beasttype>> ruffles <<bhis>> features, then sits atop it.
 <<earnFeat "Friends in the Sky">>
 <<if $monster is 1>>
-    "Thank you," <<he>> says. "We are friends. Here." <<He>> shifts a heavy piece of driftwood.
+	"Thank you," <<he>> says. "We are friends. Here." <<He>> shifts a heavy piece of driftwood.
 <<else>>
-    <<bHe>> bows <<his>> head and shifts a heavy piece of driftwood.
+	<<bHe>> bows <<his>> head and shifts a heavy piece of driftwood.
 <</if>>
 There's a strange cylinder beneath, with an exposed computer chip at the base. It looks like a charge for your pepper spray. The <<beasttype>> rolls it over to you, and you plug it in.
 <<gspraymax>>
@@ -1846,7 +1846,7 @@ Another <<beasttype>> grasps your shoulders, and carries you back to the platfor
 
 :: Prison Spire Intro
 <<set $outside to 1>><<effects>>
-    
+
 The climb takes your breath. You pass through another metal door, and onto a wide-open platform. There's another, smaller tower some distance away. Atop it perches a light, now dim. It's the beacon.
 <br><br>
 
@@ -1932,7 +1932,7 @@ You rush over to the edge and grasp <<anxious_guard 0 apo>> hand. Together, you'
 <br><br>
 
 <<if $skulduggery gte 1000>>
-    That key is of little use to one with your talents, but it might be to someone else.
+	That key is of little use to one with your talents, but it might be to someone else.
 <</if>>
 <br><br>
 
@@ -1990,11 +1990,11 @@ It's enough to bask in your victory, for now.
 <<effects>>
 <<set $prison.schedule to "revolt">>
 <<if $submissive gte 1150>>
-    "It's time to end their bullying," you shout. "Let's show them we won't be pushed around!"
+	"It's time to end their bullying," you shout. "Let's show them we won't be pushed around!"
 <<elseif $submissive lte 850>>
-    "I'm fed up with these fuckers telling us what to do!" you shout. "Let's fuck them up!"
+	"I'm fed up with these fuckers telling us what to do!" you shout. "Let's fuck them up!"
 <<else>>
-    "It's time for some changes around here," you should. "We're in charge now!"
+	"It's time for some changes around here," you should. "We're in charge now!"
 <</if>>
 <br><br>
 <<generate1>><<person1>><<generate2>>
diff --git a/game/overworld-town/loc-prison/punishment.twee b/game/overworld-town/loc-prison/punishment.twee
index 390d61ad993fa5f07dc05a93e6eda70d11ba0037..04a1f7f1ccbd75fa0dd8821b69bb5e1ce8981b3c 100644
--- a/game/overworld-town/loc-prison/punishment.twee
+++ b/game/overworld-town/loc-prison/punishment.twee
@@ -50,7 +50,7 @@ Writing is engraved on its surface.
 <br><br>
 <<prison_list>>
 
-<<relaxed_guard 1 cap>> pulls a pair of dice from <<his>> pocket. <<He>> cups <<his>> hands together, and leans over the desk. 
+<<relaxed_guard 1 cap>> pulls a pair of dice from <<his>> pocket. <<He>> cups <<his>> hands together, and leans over the desk.
 <br><br>
 
 <<link [[Roll|Prison Punishment Roll]]>><</link>>
@@ -86,7 +86,7 @@ Writing is engraved on its surface.
 	=
 	<br>
 	<span id="die_result">
-	
+
 	</span>
 	<span id="prison_list_result">
 
@@ -159,7 +159,7 @@ Writing is engraved on its surface.
 <<effects>>
 
 <<if $prison.active_punishments.includes($prison_punishment)>>
-	<<prison_list_speech>> <<methodical_guard 0>> says. "We're already implementing that one. 
+	<<prison_list_speech>> <<methodical_guard 0>> says. "We're already implementing that one.
 	<<for _i to $prison_punishment_number - 2; _i lt 11; _i++>>
 		<<if !$prison.active_punishments.includes($prison.punishments[_i])>>
 			<<set _prison_punishment_hi to $prison.punishments[_i]>>
@@ -183,7 +183,7 @@ Writing is engraved on its surface.
 	<<else>>
 		We'll move up or down the list, to the next eligible punishment, depending on a coin flip."
 		<br><br>
-		<<relaxed_guard 1 cap>><<person2>> pulls a coin from <<his>> pocket. "Heads goes up." <<He>> flips it, then covers it with <<his>> free hand before removing it with a flourish. 
+		<<relaxed_guard 1 cap>><<person2>> pulls a coin from <<his>> pocket. "Heads goes up." <<He>> flips it, then covers it with <<his>> free hand before removing it with a flourish.
 		<br><br>
 
 		<<if random(1, 2) is 2>>
@@ -216,7 +216,7 @@ Writing is engraved on its surface.
 
 		<<link [[Next|Prison Punishment Free]]>><<prison_punishment_init>><</link>>
 		<br>
-		
+
 	<<case "nude">>
 		<<if $worn.upper.name is "naked" and $worn.lower.name is "naked" and $worn.under_upper.name is "naked" and $worn.under_lower.name is "naked">>
 			<<methodical_guard 0 cap>><<person1>> adjusts <<his>> glasses. <span class="pink">"You are allowed no clothes,"</span> <<he>> says. "Judged by your peers. Seems you're ahead of us."
@@ -309,7 +309,7 @@ Writing is engraved on its surface.
 		<</if>>
 		<<methodical_guard 0 cap>><<person1>> reaches beneath the desk. <span class="purple"><<He>> slaps a plastic gag onto the table.</span> <<anxious_guard 2 cap>><<person3>>picks it up, and affixes it around your face.
 		<br><br>
-		
+
 		<<link [[Next|Prison Punishment Mask]]>><<prison_punishment_init>><</link>>
 		<br>
 	<<case "bindings">>
@@ -330,11 +330,11 @@ Writing is engraved on its surface.
 		<br>
 		"Not often." <<veteran_guard 3 cap>> thrusts <<his>> boot into your back, and you plunge into darkness.<<gtrauma>><<ggstress>><<trauma 6>><<stress 12>>
 		<br><br>
-		
+
 		<<link [[Next|Prison Punishment Rut]]>><</link>>
 		<br>
 	<<default>>
-		
+
 <</switch>>
 
 
@@ -394,7 +394,7 @@ You listen for voices above, but can't hear a thing. You smell something, howeve
 <<effects>>
 
 <<endevent>>
-You're able to follow the railing back to your cell. 
+You're able to follow the railing back to your cell.
 
 <<if $prison.schedule is "lockdown">>
 	One of the guards trails behind, though you're not sure which. They close the cell door behind you.
@@ -441,7 +441,7 @@ You drop to your knees. "Good slut," <<relaxed_guard 1>><<person2>> says. <<He>>
 <<if $prison.schedule is "lockdown">>
 	<<generate5>><<person5>>One of the inmates, a <<person>>, reaches from <<his>> cell as you pass. You try to shift away, but <<relaxed_guard 1>> tugs you closer. The <<person>> gropes your <<bottom>> as you pass.<<gtrauma>><<gstress>><<garousal>><<trauma 6>><<stress 6>><<arousal 600>>
 	<br><br>
-	
+
 	The other inmates follow suit, some giving you a swift spank, others a grope. <<relaxed_guard 1 cap>> keeps the leash taut.
 	<br><br>
 
@@ -483,7 +483,7 @@ You drop to your knees. "Good slut," <<relaxed_guard 1>><<person2>> says. <<He>>
 	<<if $prison.schedule is "lockdown">>
 		<<generate5>><<person5>>One of the inmates, a <<person>>, reaches from <<his>> cell as you pass. You try to shift away, but <<relaxed_guard 1>> tugs you closer. The <<person>> gropes your <<bottom>> as you pass.<<gtrauma>><<gstress>><<garousal>><<trauma 6>><<stress 6>><<arousal 6>>
 		<br><br>
-		
+
 		The other inmates follow suit, some giving you a swift spank, others a grope. <<relaxed_guard 1 cap>> keeps the leash taut.
 		<br><br>
 
@@ -631,7 +631,7 @@ You endure until the <<person5>><<person>> is satisfied. <<relaxed_guard 1 cap>>
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<prison_revolt_options>>
 <<elseif $enemyhealth lte 0>>
 	<<He>> falls to the ground. The inmates taunt <<him>>, until <<he>> reaches for <<his>> baton. <<ggsuspicion>><<prison_guards -3>><<ggrespect>><<prison_inmates 3>><<greb>><<prison_reb 1>>
diff --git a/game/overworld-town/loc-prison/rut.twee b/game/overworld-town/loc-prison/rut.twee
index 0601bb310c945df02a8912d483dac8b5afb2e978..9dea83761d196ce762a94e8d5228dba04df4acac 100644
--- a/game/overworld-town/loc-prison/rut.twee
+++ b/game/overworld-town/loc-prison/rut.twee
@@ -3,29 +3,29 @@
 
 You are in the rut, beneath the prison.
 <<if $rut gte 100>>
-    <span class="green">You come across a marble step.</span> As your foot touches it, the darkness retreats, revealing a staircase shrouded in pink mist. You climb to the top, and find a stone chest, decorated with floral engravings, and a closed eye in the middle. It looks unlocked.
-        <br><br>
+	<span class="green">You come across a marble step.</span> As your foot touches it, the darkness retreats, revealing a staircase shrouded in pink mist. You climb to the top, and find a stone chest, decorated with floral engravings, and a closed eye in the middle. It looks unlocked.
+		<br><br>
 
-        <<link [[Open|Prison Rut Chest]]>><</link>>
-        <br>
+		<<link [[Open|Prison Rut Chest]]>><</link>>
+		<br>
 <<elseif $stress gte $stressmax>>
-    <br><br>
-    <<passout_rut>>
+	<br><br>
+	<<passout_rut>>
 <<else>>
-    <<if $worn.face.type.includes("blindfold")>>
-        You can't see a thing with this blindfold on, but the ground and walls are damp. You feel a breeze, and a sense that you're in an open space.
-        <br><br>
-
-        <<link [[Stagger towards the breeze (0:10)|Prison Rut Walk]]>><<pass 10>><<set $hallucinogen += 10>><<set $phase to 1>><<set $rut += 8>><</link>>
-        <br>
-    <<else>>
-        An oppressive darkness surrounds you like a fog, but you can see a few feet away. The ground is natural rock, slick with dampness. You feel a breeze. It feels like you're in an open space.
-        <br><br>
-
-        <<link [[Walk towards the breeze (0:10)|Prison Rut Walk]]>><<pass 10>><<set $hallucinogen += 10>><<set $phase to 0>><<set $rut += 10>><</link>>
-        <br>
-    <</if>>
-    <<prison_map rut>>
+	<<if $worn.face.type.includes("blindfold")>>
+		You can't see a thing with this blindfold on, but the ground and walls are damp. You feel a breeze, and a sense that you're in an open space.
+		<br><br>
+
+		<<link [[Stagger towards the breeze (0:10)|Prison Rut Walk]]>><<pass 10>><<set $hallucinogen += 10>><<set $phase to 1>><<set $rut += 8>><</link>>
+		<br>
+	<<else>>
+		An oppressive darkness surrounds you like a fog, but you can see a few feet away. The ground is natural rock, slick with dampness. You feel a breeze. It feels like you're in an open space.
+		<br><br>
+
+		<<link [[Walk towards the breeze (0:10)|Prison Rut Walk]]>><<pass 10>><<set $hallucinogen += 10>><<set $phase to 0>><<set $rut += 10>><</link>>
+		<br>
+	<</if>>
+	<<prison_map rut>>
 <</if>>
 
 :: Prison Rut Chest
@@ -34,25 +34,25 @@ You are in the rut, beneath the prison.
 You open the chest.
 
 <<if $prison_egg isnot 1 and $prison.watchers_friend isnot 2>>
-    <<set $prison_egg to 1>>
-    <<if $rut_entry is "punish">>
-        Inside is a large egg, almost swallowed by a mass of purple tendrils. You gently prise them away from the shell.
-        <br><br>
-
-        There's also a diamond, pink with light from the surrounding mist. This should satisfy the guards.
-        <br><br>
-    <<else>>
-        Inside is a large egg, almost swallowed by a mass of purple tendrils. You gently prise them away from the shell.
-        <br><br>
-    <</if>>
+	<<set $prison_egg to 1>>
+	<<if $rut_entry is "punish">>
+		Inside is a large egg, almost swallowed by a mass of purple tendrils. You gently prise them away from the shell.
+		<br><br>
+
+		There's also a diamond, pink with light from the surrounding mist. This should satisfy the guards.
+		<br><br>
+	<<else>>
+		Inside is a large egg, almost swallowed by a mass of purple tendrils. You gently prise them away from the shell.
+		<br><br>
+	<</if>>
 <<else>>
-    <<if $rut_entry is "punish">>
-        Inside is a large diamond, pink with light from the surrounding mist. This should satisfy the guards.
-        <br><br>
-    <<else>>
-        It's empty.
-        <br><br>
-    <</if>>
+	<<if $rut_entry is "punish">>
+		Inside is a large diamond, pink with light from the surrounding mist. This should satisfy the guards.
+		<br><br>
+	<<else>>
+		It's empty.
+		<br><br>
+	<</if>>
 <</if>>
 
 You descend the staircase.
@@ -66,30 +66,30 @@ You descend the staircase.
 
 The darkness has retreated, revealing the underground cavern you previously traversed, crisscrossed with ravines and studded with large stalagmites. You're not sure where the light is coming from. Looking too long makes you feel uncomfortable, and you avert your gaze.<<gstress>><<stress 6>>
 <br><br>
-You return the way you came, the journey faster now that you can see where you're going. 
+You return the way you came, the journey faster now that you can see where you're going.
 <<if $rut_entry is "rope">>
-    The rope lies coiled where you left it. You climb towards the light.
-    <br><br>
+	The rope lies coiled where you left it. You climb towards the light.
+	<br><br>
 
-    <<link [[Next|Prison Spire]]>><<endevent>><<rut_end>><<location "prison">><</link>>
-    <br>
+	<<link [[Next|Prison Spire]]>><<endevent>><<rut_end>><<location "prison">><</link>>
+	<br>
 <<else>>
-    The pool you fell in is still there, and you can now see the punishment plaque far above.
-    <br><br>
+	The pool you fell in is still there, and you can now see the punishment plaque far above.
+	<br><br>
 
-    <<link [[Shout|Prison Rut Shout]]>><</link>>
-    <br>
+	<<link [[Shout|Prison Rut Shout]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Rut Shout
 <<effects>><<effects_prison>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "C-can anyone hear me" ?>> you shout. <<gagged_speech "It's scary down here" .>>
+	<<gagged_speech "C-can anyone hear me" ?>> you shout. <<gagged_speech "It's scary down here" .>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Fuckheads" ,>> you shout. <<gagged_speech "I got you something. Now let me up" .>>
+	<<gagged_speech "Fuckheads" ,>> you shout. <<gagged_speech "I got you something. Now let me up" .>>
 <<else>>
-    <<gagged_speech "I found a diamond" ,>> you shout. <<gagged_speech "Can I come up" ?>>
+	<<gagged_speech "I found a diamond" ,>> you shout. <<gagged_speech "Can I come up" ?>>
 <</if>>
 There's a few moments of silence, <span class="green">then one end of a rope lands beside you.</span>
 <br><br>
@@ -115,21 +115,21 @@ You cling to the rope as the guards haul you to the top. <<relaxed_guard 0 cap>>
 <<veteran_guard 2 cap>> watches with <<his>> arms folded. "Pretty impressive," <<he>> says. "Not gonna lie."<<lllsuspicion>><<prison_guards 12>>
 <br>
 <<if $prison.active_punishments.length gte 1>>
-    <span class="green">"The other punishments are revoked, right?"</span>
-    <br>
-    <<methodical_guard 3 cap>> nods.
-    <<remove_punishments>>
-    <<if _punishments_removed is true>>
-        "I'll sort the paperwork. Remove the equipment, then show <<phim>> out."
-        <br><br>
-        The other three approach with a variety of metal instruments, and soon have you somewhat dignified once again.
-        <br><br>
-    <<else>>
-        "I'll sort the paperwork. Show <<phim>> out."
-        <br><br>
-    <</if>>
+	<span class="green">"The other punishments are revoked, right?"</span>
+	<br>
+	<<methodical_guard 3 cap>> nods.
+	<<remove_punishments>>
+	<<if _punishments_removed is true>>
+		"I'll sort the paperwork. Remove the equipment, then show <<phim>> out."
+		<br><br>
+		The other three approach with a variety of metal instruments, and soon have you somewhat dignified once again.
+		<br><br>
+	<<else>>
+		"I'll sort the paperwork. Show <<phim>> out."
+		<br><br>
+	<</if>>
 <<else>>
-    <<methodical_guard 3 cap>> nods. "I'll sort the paperwork. Show <<phim>> out."
+	<<methodical_guard 3 cap>> nods. "I'll sort the paperwork. Show <<phim>> out."
 <</if>>
 <br><br>
 
@@ -153,145 +153,145 @@ You inhale deeply. The lightheadedness almost has you on the ground, but when it
 <<effects>>
 
 <<if $phase is 1>>
-    You stagger forwards, careful not to trip.
+	You stagger forwards, careful not to trip.
 <<else>>
-    You traverse the dark, careful not to trip.
+	You traverse the dark, careful not to trip.
 <</if>>
 <br><br>
 
 <<set _rng to random(1, 10)>>
 <<switch _rng>>
 <<case 1>>
-    <<if $slimedisable is "f">>
-        A gelatinous slime lands on your shoulder.
-        <<if $leftarm is "bound" and $rightarm is "bound">>
-            You try to shake it off,
-        <<else>>
-            You try to pull it off,
-        <</if>>
-        but it crawls over your body with a surprising speed, and perches on your <<bottom>>.
-        <br><br>
-
-        <<link [[Next|Prison Slime]]>><<set $struggle_start to 1>><</link>>
-        <br>
-    <<else>>
-        A gelatinous slime falls from the cave ceiling, splatting to the ground beside you. You hurry on before it becomes a threat, but it gives you quite the scare.
-        <<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
-        <br><br>
-        <<link [[Next|Prison Rut]]>><</link>>
-        <br>
-    <</if>>
+	<<if $slimedisable is "f">>
+		A gelatinous slime lands on your shoulder.
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			You try to shake it off,
+		<<else>>
+			You try to pull it off,
+		<</if>>
+		but it crawls over your body with a surprising speed, and perches on your <<bottom>>.
+		<br><br>
+
+		<<link [[Next|Prison Slime]]>><<set $struggle_start to 1>><</link>>
+		<br>
+	<<else>>
+		A gelatinous slime falls from the cave ceiling, splatting to the ground beside you. You hurry on before it becomes a threat, but it gives you quite the scare.
+		<<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
+		<br><br>
+		<<link [[Next|Prison Rut]]>><</link>>
+		<br>
+	<</if>>
 <<case 2>>
-    <<if !$worn.face.type.includes("blindfold")>>
-        The darkness creeps in, until it swallows you.
-    <</if>>
-    You hear the rush of feet, and a low hiss. A nameless creature leaps atop you, pushing you to the ground.<<gpain>><<pain 4>>
-    <br><br>
-    <<if $bestialitydisable is "f">>
-        <<link [[Next|Prison Beast]]>><<set $molestationstart to 1>><</link>>
-        <br>
-    <<else>>
-        It's gone as fast as it arrived. It's a while before your heart calms.
-        <<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
-        <br><br>
-        <<link [[Next|Prison Rut]]>><</link>>
-        <br>
-    <</if>>
+	<<if !$worn.face.type.includes("blindfold")>>
+		The darkness creeps in, until it swallows you.
+	<</if>>
+	You hear the rush of feet, and a low hiss. A nameless creature leaps atop you, pushing you to the ground.<<gpain>><<pain 4>>
+	<br><br>
+	<<if $bestialitydisable is "f">>
+		<<link [[Next|Prison Beast]]>><<set $molestationstart to 1>><</link>>
+		<br>
+	<<else>>
+		It's gone as fast as it arrived. It's a while before your heart calms.
+		<<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
+		<br><br>
+		<<link [[Next|Prison Rut]]>><</link>>
+		<br>
+	<</if>>
 <<case 3>>
-    <<if $tentacledisable is "f">>
-        The darkness seems to pulse around you. It bursts in several places, spewing forth strange purple tendrils.
-        <br><br>
-
-        <<link [[Next|Prison Tentacles]]>><<set $molestationstart to 1>><</link>>
-        <br>
-    <<else>>
-        Disembodied limbs lunge from the dark, grabbing and groping at you. You twist from their grip, and continue on.
-        <<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
-        <br><br>
-        <<link [[Next|Prison Rut]]>><</link>>
-        <br>
-    <</if>>
+	<<if $tentacledisable is "f">>
+		The darkness seems to pulse around you. It bursts in several places, spewing forth strange purple tendrils.
+		<br><br>
+
+		<<link [[Next|Prison Tentacles]]>><<set $molestationstart to 1>><</link>>
+		<br>
+	<<else>>
+		Disembodied limbs lunge from the dark, grabbing and groping at you. You twist from their grip, and continue on.
+		<<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
+		<br><br>
+		<<link [[Next|Prison Rut]]>><</link>>
+		<br>
+	<</if>>
 <<case 4>>
-    <<if $slimedisable is "f" and $swarmdisable is "f">>
-        Water surges towards you, congealing unnaturally around your ankles. Your feet are stuck. You try to pull them free, but the congealed water climbs up your legs, until it reaches your knees. It pulls you to the ground.
-        <br><br>
-
-        <<link [[Next|Prison Swarm]]>><<set $molestationstart to 1>><</link>>
-        <br>
-    <<else>>
-        Water surges towards you, congealing unnaturally around your ankles. You shake it free, but are left feeling dirty.
-        <<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
-        <br><br>
-        <<link [[Next|Prison Rut]]>><</link>>
-        <br>
-    <</if>>
+	<<if $slimedisable is "f" and $swarmdisable is "f">>
+		Water surges towards you, congealing unnaturally around your ankles. Your feet are stuck. You try to pull them free, but the congealed water climbs up your legs, until it reaches your knees. It pulls you to the ground.
+		<br><br>
+
+		<<link [[Next|Prison Swarm]]>><<set $molestationstart to 1>><</link>>
+		<br>
+	<<else>>
+		Water surges towards you, congealing unnaturally around your ankles. You shake it free, but are left feeling dirty.
+		<<lcontrol>><<gtrauma>><<ggstress>><<control -10>><<trauma 6>><<stress 12>>
+		<br><br>
+		<<link [[Next|Prison Rut]]>><</link>>
+		<br>
+	<</if>>
 <<case 5>>
-    <<if $worn.face.type.includes("blindfold")>>
-        <span class="red">You can't see where you're going due to your blindfold,</span> and trip over a jutting rock.<<gpain>><<gstress>><<pain 4>><<stress 6>>
-    <<else>>
-        You carefully step over a jutting rock.
-    <</if>>
-    <br><br>
-    <<link [[Next|Prison Rut]]>><<endevent>><</link>>
-    <br>
+	<<if $worn.face.type.includes("blindfold")>>
+		<span class="red">You can't see where you're going due to your blindfold,</span> and trip over a jutting rock.<<gpain>><<gstress>><<pain 4>><<stress 6>>
+	<<else>>
+		You carefully step over a jutting rock.
+	<</if>>
+	<br><br>
+	<<link [[Next|Prison Rut]]>><<endevent>><</link>>
+	<br>
 <<case 6>>
-    <<if $worn.feet.type.includes("shackle")>>
-        Water thunders towards you, heading your way. You try to climb atop a nearby rock, <span class="red">but your shackles get in the way.</span> The water seizes you, and carries you the way you came.<<set $rut -= 10>><<gpain>><<gtrauma>><<gstress>><<pain 4>><<trauma 6>><<stress 6>><<water>>
-        <br><br>
-    <<else>>
-        Water thunders towards you, heading your way. You climb atop a nearby rock, and wait for the deluge to pass.
-        <br><br>
-    <</if>>
-    <<link [[Next|Prison Rut]]>><<endevent>><</link>>
-    <br>
+	<<if $worn.feet.type.includes("shackle")>>
+		Water thunders towards you, heading your way. You try to climb atop a nearby rock, <span class="red">but your shackles get in the way.</span> The water seizes you, and carries you the way you came.<<set $rut -= 10>><<gpain>><<gtrauma>><<gstress>><<pain 4>><<trauma 6>><<stress 6>><<water>>
+		<br><br>
+	<<else>>
+		Water thunders towards you, heading your way. You climb atop a nearby rock, and wait for the deluge to pass.
+		<br><br>
+	<</if>>
+	<<link [[Next|Prison Rut]]>><<endevent>><</link>>
+	<br>
 <<case 7>>
-    You find a strange, pink mushroom. It smells sweet.
-    <<if $worn.face.type.includes("gag")>>
-        You could eat it, <span class="red">if not for your gag.</span> You move on.
-        <br><br>
-
-        <<link [[Next|Prison Rut]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        You could eat it.
-        <br><br>
-
-        <<link [[Eat|Prison Rut]]>><<endevent>><<stress -6>><<arousal 600>><<drugs 30>><</link>><<garousal>><<lstress>>
-        <br>
-        <<link [[Ignore|Prison Rut]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+	You find a strange, pink mushroom. It smells sweet.
+	<<if $worn.face.type.includes("gag")>>
+		You could eat it, <span class="red">if not for your gag.</span> You move on.
+		<br><br>
+
+		<<link [[Next|Prison Rut]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		You could eat it.
+		<br><br>
+
+		<<link [[Eat|Prison Rut]]>><<endevent>><<stress -6>><<arousal 600>><<drugs 30>><</link>><<garousal>><<lstress>>
+		<br>
+		<<link [[Ignore|Prison Rut]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <<case 8>>
-    <<if $tentacledisable is "f">>
-        Your path dips into a thin ravine. Strange plants grow on the walls. Their bulbous fronds track you.
-        <<if $leftarm is "bound" and $rightarm is "bound">>
-            <span class="red">With your arms bound,</span> there's not much you can do but push through. You shiver as they rub against you. Their tips are warm.<<gstress>><<garousal>><<stress 6>><<arousal 600>><<drugs 30>>
-            <br><br>
-        <<else>>
-            You bat them aside as you pass through.
-            <br><br>
-        <</if>>
-        <<link [[Next|Prison Rut]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        Strange purple lichen grows on the walls. It makes you uneasy.<<gstress>><<stress 6>>
-        <br><br>
-
-        <<link [[Next|Prison Rut]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+	<<if $tentacledisable is "f">>
+		Your path dips into a thin ravine. Strange plants grow on the walls. Their bulbous fronds track you.
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			<span class="red">With your arms bound,</span> there's not much you can do but push through. You shiver as they rub against you. Their tips are warm.<<gstress>><<garousal>><<stress 6>><<arousal 600>><<drugs 30>>
+			<br><br>
+		<<else>>
+			You bat them aside as you pass through.
+			<br><br>
+		<</if>>
+		<<link [[Next|Prison Rut]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		Strange purple lichen grows on the walls. It makes you uneasy.<<gstress>><<stress 6>>
+		<br><br>
+
+		<<link [[Next|Prison Rut]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <<case 9>>
-    Water drips from somewhere above, forming shallow pools and disappearing down cracks in the ground.
-    <br><br>
+	Water drips from somewhere above, forming shallow pools and disappearing down cracks in the ground.
+	<br><br>
 
-    <<link [[Next|Prison Rut]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Rut]]>><<endevent>><</link>>
+	<br>
 <<default>>
-    The walls tremble, and small stones fall from the ceiling.<<gstress>><<stress 6>>
-    <br><br>
+	The walls tremble, and small stones fall from the ceiling.<<gstress>><<stress 6>>
+	<br><br>
 
-    <<link [[Next|Prison Rut]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Rut]]>><<endevent>><</link>>
+	<br>
 <</switch>>
 
 
@@ -308,7 +308,7 @@ You inhale deeply. The lightheadedness almost has you on the ground, but when it
 	<<molested>>
 	<<set $struggle.anus.creature to "slime">><<set $anususe to "struggle">><<set $anusstate to "struggle">><<set $struggle.enemy[0].location to "anus">>
 	<<unset $struggle_start>>
-    <<set $timer to 12>>
+	<<set $timer to 12>>
 <</if>>
 
 <<if $timer is 8 and random(1, 2) is 2 or $timer is 4 and random(1, 2) is 2>>
@@ -353,7 +353,7 @@ The slimes slide into crevices in the rock. <<tearful>> you continue through the
 
 	<<beastNEWinit 1 creature>>
 	<<beastCombatInit>>
-    <<set $NPCList[_n].stance to "top">><<set $head to "grappled">>
+	<<set $NPCList[_n].stance to "top">><<set $head to "grappled">>
 <</if>>
 
 <<effects>>
@@ -391,7 +391,7 @@ The slimes slide into crevices in the rock. <<tearful>> you continue through the
 	<<endcombat>>
 
 	<<link [[Next|Prison Rut]]>><</link>>
-    <br>
+	<br>
 <<else>>
 
 	The creature flees into the darkness.
@@ -404,7 +404,7 @@ The slimes slide into crevices in the rock. <<tearful>> you continue through the
 	<<endcombat>>
 
 	<<link [[Next|Prison Rut]]>><</link>>
-    <br>
+	<br>
 <</if>>
 
 
@@ -505,7 +505,7 @@ You've pushed yourself too much.
 
 <<prison_bondage_removal>>
 You awaken in a dark place, far underground. A violent current carries you. You slip in and out of consciousness. You have strange dreams, of great ivory insects feasting on a fallen god.<<if $awareness lt 600>>
-    <<ggawareness>><<awareness 10>>
+	<<ggawareness>><<awareness 10>>
 <</if>>
 <br><br>
 
diff --git a/game/overworld-town/loc-prison/scarred.twee b/game/overworld-town/loc-prison/scarred.twee
index ddf379fce408e4b718fe387964baf1a3349806b4..3cc0e4891421fd2cd3c7dbfef4d28a09b7de34a1 100644
--- a/game/overworld-town/loc-prison/scarred.twee
+++ b/game/overworld-town/loc-prison/scarred.twee
@@ -2,54 +2,54 @@
 <<effects>>
 <<endevent>><!-- Fully make sure no event failures prior can cause a failure here with NPC gen, because saveNPC of scarred_inmate occurs later. -->
 <<generate_scarred_inmate 0>><<person1>>
-You enter <<scarred_inmate 0 apo>> cell. 
+You enter <<scarred_inmate 0 apo>> cell.
 
 <<if $prison.scarred gte 60 and $NPCList[0].name_known isnot 1>>
-    <<He>> sits on the bed with <<his>> head buried in <<his>> hands.
-    <br><br>
+	<<He>> sits on the bed with <<his>> head buried in <<his>> hands.
+	<br><br>
 
-    <<link [[Ask what's wrong|Prison Scarred Ask]]>><</link>>
-    <br>
-    <<link [[Leave|Prison Walkway]]>><<endevent>><</link>>
-    <br>
+	<<link [[Ask what's wrong|Prison Scarred Ask]]>><</link>>
+	<br>
+	<<link [[Leave|Prison Walkway]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<He>> licks <<his>> lips at the sight of you.
-    <br><br>
-
-    <<switch $prison.scarred_level>>
-        <<case 0>>
-            "Wise of you to come here," <<he>> says. <<He>> leans in, and sniffs. "Mmm. Fresh." <<He>> puts <<his>> hand down <<his>> trousers, and whips out a length of cord. "Turn and hold the bars, <<bitch>>."
-            <br><br>
-
-            <<link [[Turn and hold the bars|Prison Scarred Bars]]>><<set $prison.scarred_level to 1>><<prison_rep scarred 5>><</link>><<gglove>>
-            <br>
-        <<case 1>>
-            "Just the <<bitch>> I wanted to see," <<he>> says, putting <<his>> hand down <<his>> trousers and whipping out a length of cord. "Turn and hold the bars, <<bitch>>."
-            <br><br>
-
-            <<link [[Turn and hold the bars|Prison Scarred Pair]]>><<set $prison.scarred_level to 2>><<prison_rep scarred 5>><</link>><<gglove>>
-            <br>
-        <<case 2>>
-            "You," <<he>> says, rising from <<his>> bed. There's a length of cord already in <<his>> hands. "Turn and hold the bars, <<bitch>>."
-            <br><br>
-
-            <<link [[Turn and hold the bars|Prison Scarred Molestation]]>><<set $prison.scarred_level to 3>><<prison_rep scarred 5>><</link>><<gglove>>
-            <br>
-        <<case 3>>
-            "You," <<he>> says, rising from <<his>> bed. There's a length of cord already in <<his>> hands. "Turn around, <<bitch>>."
-            <br><br>
-            <<link [[Turn around|Prison Scarred Turn]]>><<prison_rep scarred 5>><</link>><<gglove>>
-            <br>
-        <<default>>
-            "Just the <<bitch>> I wanted to see," <<he>> says, rising from <<his>> bed. There's a length of cord already in <<his>> hands. "Turn around, <<bitch>>."
-            <br><br>
-
-            <<link [[Turn around|Prison Scarred Turn]]>><<prison_rep scarred 5>><</link>><<gglove>>
-            <br>
-    <</switch>>
-
-    <<link [[Refuse|Prison Scarred Refuse]]>><</link>>
-    <br>
+	<<He>> licks <<his>> lips at the sight of you.
+	<br><br>
+
+	<<switch $prison.scarred_level>>
+		<<case 0>>
+			"Wise of you to come here," <<he>> says. <<He>> leans in, and sniffs. "Mmm. Fresh." <<He>> puts <<his>> hand down <<his>> trousers, and whips out a length of cord. "Turn and hold the bars, <<bitch>>."
+			<br><br>
+
+			<<link [[Turn and hold the bars|Prison Scarred Bars]]>><<set $prison.scarred_level to 1>><<prison_rep scarred 5>><</link>><<gglove>>
+			<br>
+		<<case 1>>
+			"Just the <<bitch>> I wanted to see," <<he>> says, putting <<his>> hand down <<his>> trousers and whipping out a length of cord. "Turn and hold the bars, <<bitch>>."
+			<br><br>
+
+			<<link [[Turn and hold the bars|Prison Scarred Pair]]>><<set $prison.scarred_level to 2>><<prison_rep scarred 5>><</link>><<gglove>>
+			<br>
+		<<case 2>>
+			"You," <<he>> says, rising from <<his>> bed. There's a length of cord already in <<his>> hands. "Turn and hold the bars, <<bitch>>."
+			<br><br>
+
+			<<link [[Turn and hold the bars|Prison Scarred Molestation]]>><<set $prison.scarred_level to 3>><<prison_rep scarred 5>><</link>><<gglove>>
+			<br>
+		<<case 3>>
+			"You," <<he>> says, rising from <<his>> bed. There's a length of cord already in <<his>> hands. "Turn around, <<bitch>>."
+			<br><br>
+			<<link [[Turn around|Prison Scarred Turn]]>><<prison_rep scarred 5>><</link>><<gglove>>
+			<br>
+		<<default>>
+			"Just the <<bitch>> I wanted to see," <<he>> says, rising from <<his>> bed. There's a length of cord already in <<his>> hands. "Turn around, <<bitch>>."
+			<br><br>
+
+			<<link [[Turn around|Prison Scarred Turn]]>><<prison_rep scarred 5>><</link>><<gglove>>
+			<br>
+	<</switch>>
+
+	<<link [[Refuse|Prison Scarred Refuse]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Scarred Bars
@@ -66,23 +66,23 @@ You turn and grasp the bars of the cell. <<His>> hands are a blur as <<he>> ties
 :: Prison Scarred Bars 2
 <<effects>>
 
-"Like that, <<bitch>>?" <<he>> asks, delivering another smack. 
+"Like that, <<bitch>>?" <<he>> asks, delivering another smack.
 
 <<if $worn.face.type.includes("gag")>>
-    "You're my gagged slut, aren't you?"
-    <br><br>
-    <<link [[Just sob|Prison Scarred Bars Sob]]>><<pain -4>><</link>><<lpain>>
-    <br>
+	"You're my gagged slut, aren't you?"
+	<br><br>
+	<<link [[Just sob|Prison Scarred Bars Sob]]>><<pain -4>><</link>><<lpain>>
+	<br>
 <<else>>
-    "Say <i>'Thank you for disciplining me, <<if $pronoun is "m">>daddy<<else>>mummy<</if>>.'</i>" <<He>> hits you again. "Say it."<<gpain>><<pain 4>>
-    <br><br>
+	"Say <i>'Thank you for disciplining me, <<mummy>>.'</i>" <<He>> hits you again. "Say it."<<gpain>><<pain 4>>
+	<br><br>
 
-    <<link [[Say it|Prison Scarred Bars Say]]>><<sub 1>><</link>><<willpowerdifficulty 1 100>>
-    <br>
-    <<link [[Refuse|Prison Scarred Bars Refuse]]>><<def 1>><</link>><<willpowerdifficulty 1 1000>>
-    <br>
-    <<link [[Just sob|Prison Scarred Bars Sob]]>><<sub 1>><<pain -4>><</link>><<lpain>>
-    <br>
+	<<link [[Say it|Prison Scarred Bars Say]]>><<sub 1>><</link>><<willpowerdifficulty 1 100>>
+	<br>
+	<<link [[Refuse|Prison Scarred Bars Refuse]]>><<def 1>><</link>><<willpowerdifficulty 1 1000>>
+	<br>
+	<<link [[Just sob|Prison Scarred Bars Sob]]>><<sub 1>><<pain -4>><</link>><<lpain>>
+	<br>
 <</if>>
 
 
@@ -91,23 +91,23 @@ You turn and grasp the bars of the cell. <<His>> hands are a blur as <<he>> ties
 
 <<willpowerdifficulty 1 100 no_text>>
 <<if $willpowerSuccess>>
-    <span class="green">"Thank you for disciplining me, <<if $pronoun is "m">>daddy<<else>>mummy<</if>>,"</span> you manage, despite repeated blows to your backside.
-    <br><br>
-
-    "Good <<girl>>," <<he>> says, ruffling your hair. <<He>> unties the cord with the same deftness <<he>> used to bind them, and you're soon freed.
-    <<prison_unbind>>
-    <br><br>
-    "That wasn't so bad, was it? You can go."
-    <br><br>
+	<span class="green">"Thank you for disciplining me, <<mummy>>,"</span> you manage, despite repeated blows to your backside.
+	<br><br>
+
+	"Good <<girl>>," <<he>> says, ruffling your hair. <<He>> unties the cord with the same deftness <<he>> used to bind them, and you're soon freed.
+	<<prison_unbind>>
+	<br><br>
+	"That wasn't so bad, was it? You can go."
+	<br><br>
 <<else>>
-    You try to speak, <span class="red">but you cry out in pain instead</span> as another blow lands.<<gwillpower>><<gpain>><<pain 4>>
-    <br><br>
-    
-    "I said say it, you fucking <<bitch>>!" <<He>> hits you again and again, each time harder, before falling back on <<his>> bed, panting.
-    <br><br>
+	You try to speak, <span class="red">but you cry out in pain instead</span> as another blow lands.<<gwillpower>><<gpain>><<pain 4>>
+	<br><br>
+
+	"I said say it, you fucking <<bitch>>!" <<He>> hits you again and again, each time harder, before falling back on <<his>> bed, panting.
+	<br><br>
 
-    "Fine." <<He>> springs up, and unties the cord with the same deftness <<he>> used to bind them. "Go."
-    <br><br>
+	"Fine." <<He>> springs up, and unties the cord with the same deftness <<he>> used to bind them. "Go."
+	<br><br>
 <</if>>
 
 <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
@@ -121,23 +121,23 @@ You turn and grasp the bars of the cell. <<His>> hands are a blur as <<he>> ties
 <<effects>>
 <<willpowerdifficulty 1 1000 no_text>>
 <<if $willpowerSuccess>>
-    You keep your mouth shut. <<scarred_inmate 0 cap>> punishes your silence with another blow.<<gpain>><<pain 4>>
-    <br><br>
+	You keep your mouth shut. <<scarred_inmate 0 cap>> punishes your silence with another blow.<<gpain>><<pain 4>>
+	<br><br>
 
-    "I said say it, you fucking <<bitch>>!" <<He>> hits you again and again, each time harder, <span class="green">before falling back on <<his>> bed, panting.</span>
-    <br><br>
+	"I said say it, you fucking <<bitch>>!" <<He>> hits you again and again, each time harder, <span class="green">before falling back on <<his>> bed, panting.</span>
+	<br><br>
 
-    "Fine." <<He>> springs up, and unties the cord with the same deftness <<he>> used to bind them. "Go."
-    <br><br>
+	"Fine." <<He>> springs up, and unties the cord with the same deftness <<he>> used to bind them. "Go."
+	<br><br>
 <<else>>
-    You try to stay silent, <span class="red">but you cry out in pain instead</span> as another blow lands.<<gwillpower>><<gpain>><<pain 4>>
-    <br><br>
-    
-    "I said say it, you fucking <<bitch>>!" <<He>> hits you again and again, each time harder, before falling back on <<his>> bed, panting.
-    <br><br>
+	You try to stay silent, <span class="red">but you cry out in pain instead</span> as another blow lands.<<gwillpower>><<gpain>><<pain 4>>
+	<br><br>
+
+	"I said say it, you fucking <<bitch>>!" <<He>> hits you again and again, each time harder, before falling back on <<his>> bed, panting.
+	<br><br>
 
-    "Fine." <<He>> springs up, and unties the cord with the same deftness <<he>> used to bind them. "Go."
-    <br><br>
+	"Fine." <<He>> springs up, and unties the cord with the same deftness <<he>> used to bind them. "Go."
+	<br><br>
 <</if>>
 <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
 <br><br>
@@ -203,15 +203,15 @@ The <<person2>><<person>> throws up <<his>> hands. "E-easy, easy! I didn't mean
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<if $worn.face.type.includes("gag")>>
-        "Mmmmhrrr!" you say.
-    <<else>>
-        "Pl-please don't hurt <<person2>><<him>>," you say.
-    <</if>>
+	<<if $worn.face.type.includes("gag")>>
+		"Mmmmhrrr!" you say.
+	<<else>>
+		"Pl-please don't hurt <<person2>><<him>>," you say.
+	<</if>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Put the shiv down you crazy prick" ,>> you say.
+	<<gagged_speech "Put the shiv down you crazy prick" ,>> you say.
 <<else>>
-    <<gagged_speech "You're overreacting" ,>> you say. "Stop it."
+	<<gagged_speech "You're overreacting" ,>> you say. "Stop it."
 <</if>>
 <br><br>
 
@@ -278,71 +278,71 @@ The inmate tries to speak as you lay <<him>> down, but can't form the words.
 <<bind>>
 You turn and grasp the bars of the cell. <<His>> hands are a blur as <<he>> ties them down, binding you in seconds. "Been waiting for this," <<he>> says,
 <<if $worn.lower.name is "naked">>
-    <<if $worn.under_lower.name is "naked">>
-        running a finger over your <<bottom>>.
-    <<else>>
-        tugging down your $worn.under_lower.name.
-    <</if>>
+	<<if $worn.under_lower.name is "naked">>
+		running a finger over your <<bottom>>.
+	<<else>>
+		tugging down your $worn.under_lower.name.
+	<</if>>
 <<else>>
-    <<if $worn.under_lower.name is "naked">>
-        tugging down your $worn.lower.name.
-    <<else>>
-        tugging down your $worn.lower.name and $worn.under_lower.name.
-    <</if>>
+	<<if $worn.under_lower.name is "naked">>
+		tugging down your $worn.lower.name.
+	<<else>>
+		tugging down your $worn.lower.name and $worn.under_lower.name.
+	<</if>>
 <</if>>
 <<if $worn.genitals.type.includes("chastity")>>
-    <<He>> grasps your $worn.genitals.name, and pulls.
-    <br><br>
-    "Fuck," <<he>> says as the metal digs into your skin. "How'd I get this off?"<<gpain>><<pain 4>>
-    <br><br>
-    <<set $worn.genitals.integrity -= 100>>
-    <br><br>
-    <<if $worn.genitals.integrity lte 0>>
-        <<He>> retrieves a variety of tools from behind a loose stone. A screwdriver. A hammer. Pliers. <<He>> isn't gentle, <span class="red">and manages to bite through the metal with the pliers.</span>
-        <br><br>
-        <<set $worn.genitals.type.push("broken")>>
-        <<genitalsruined>>
-        <<He>> spanks you in delight, and crouches behind you.
-        <br><br>
-
-        <<link [[Next|Prison Scarred Molestation 2]]>><</link>>
-        <br>
-    <<else>>
-        <<He>> retrieves a variety of tools from behind a loose stone. A screwdriver. A hammer. Pliers. <<He>> isn't gentle, but none work. <<He>> contents <<himself>> with spanking you raw, before untying <<his>> cord. "Go."<<ggpain>><<ggtrauma>><<ggstress>><<pain 8>><<stress 12>><<trauma 12>>
-        <<prison_unbind>>
-        <br><br>
-        <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
-        <br><br>
-        <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+	<<He>> grasps your $worn.genitals.name, and pulls.
+	<br><br>
+	"Fuck," <<he>> says as the metal digs into your skin. "How'd I get this off?"<<gpain>><<pain 4>>
+	<br><br>
+	<<set $worn.genitals.integrity -= 100>>
+	<br><br>
+	<<if $worn.genitals.integrity lte 0>>
+		<<He>> retrieves a variety of tools from behind a loose stone. A screwdriver. A hammer. Pliers. <<He>> isn't gentle, <span class="red">and manages to bite through the metal with the pliers.</span>
+		<br><br>
+		<<set $worn.genitals.type.push("broken")>>
+		<<genitalsruined>>
+		<<He>> spanks you in delight, and crouches behind you.
+		<br><br>
+
+		<<link [[Next|Prison Scarred Molestation 2]]>><</link>>
+		<br>
+	<<else>>
+		<<He>> retrieves a variety of tools from behind a loose stone. A screwdriver. A hammer. Pliers. <<He>> isn't gentle, but none work. <<He>> contents <<himself>> with spanking you raw, before untying <<his>> cord. "Go."<<ggpain>><<ggtrauma>><<ggstress>><<pain 8>><<stress 12>><<trauma 12>>
+		<<prison_unbind>>
+		<br><br>
+		<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+		<br><br>
+		<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <<else>>
-    <br><br>
-    
-    <<link [[Next|Prison Scarred Molestation 2]]>><</link>>
-    <br>
+	<br><br>
+
+	<<link [[Next|Prison Scarred Molestation 2]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Scarred Molestation 2
 <<effects>>
 
 <<if $NPCList[0].penis isnot "none">>
-    You feel <<his>> breath on your
-    <<if $player.penisExist>>
-        <<penis>>
-    <<else>>
-        pussy
-    <</if>>
-    a moment, then <<he>> rises, and rests <<his>> <<print $NPCList[0].penisdesc>> against your back.
-    <br><br>
+	You feel <<his>> breath on your
+	<<if $player.penisExist>>
+		<<penis>>
+	<<else>>
+		pussy
+	<</if>>
+	a moment, then <<he>> rises, and rests <<his>> <<print $NPCList[0].penisdesc>> against your back.
+	<br><br>
 <<else>>
-    <<if $player.penisExist>>
-        <<He>> grasps your <<penis>>, and orients it towards the ground. "I wanna pull it all the way back," <<he>> says. "Fuck you from behind, but that didn't work with the last one."
-        <br><br>
-    <<else>>
-        <<He>> runs a finger over your pussy. "Hold still until I'm done," <<he>> says.
-        <br><br>
-    <</if>>
+	<<if $player.penisExist>>
+		<<He>> grasps your <<penis>>, and orients it towards the ground. "I wanna pull it all the way back," <<he>> says. "Fuck you from behind, but that didn't work with the last one."
+		<br><br>
+	<<else>>
+		<<He>> runs a finger over your pussy. "Hold still until I'm done," <<he>> says.
+		<br><br>
+	<</if>>
 <</if>>
 
 <<link [[Next|Prison Scarred Rape]]>><<set $molestationstart to 1>><</link>>
@@ -358,22 +358,22 @@ You turn and grasp the bars of the cell. <<His>> hands are a blur as <<he>> ties
 	<<molested>>
 
 	<<maninit>>
-    <<if $NPCList[0].penis isnot "none">>
-        <<set $NPCList[0].penis to 0>>
-    <<else>>
-        <<set $NPCList[0].vagina to 0>>
-    <</if>>
-    <<set $position to "doggy">>
+	<<if $NPCList[0].penis isnot "none">>
+		<<set $NPCList[0].penis to 0>>
+	<<else>>
+		<<set $NPCList[0].vagina to 0>>
+	<</if>>
+	<<set $position to "doggy">>
 <</if>>
 
 <<effects>>
 <<if $alarm is 1>>
-    <<set $alarm to 0>>
-    Another inmate investigates your cry, <span class="purple">but leaves upon seeing <<scarred_inmate 0>>.</span>
-    <br><br>
+	<<set $alarm to 0>>
+	Another inmate investigates your cry, <span class="purple">but leaves upon seeing <<scarred_inmate 0>>.</span>
+	<br><br>
 <</if>>
 <<effectsman>><<man>>
-	
+
 
 <<stateman>>
 <br><br>
@@ -398,39 +398,39 @@ You turn and grasp the bars of the cell. <<His>> hands are a blur as <<he>> ties
 	<<tearful>> you leave the cell.
 	<br><br>
 	<<clotheson>>
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
 	<<endcombat>>
-    <br><br>
-    <<prison_unbind>>
+	<br><br>
+	<<prison_unbind>>
 	<<link [[Next|Prison Walkway]]>><</link>>
-    <br>
+	<br>
 
 <<else>>
-    <<He>> delivers a hard smack to your <<bottom>>. "That what you want?" <<he>> says, delivering blow after blow.<<ggpain>><<gtrauma>><<gstress>><<pain 8>><<trauma 6>><<stress 6>>
+	<<He>> delivers a hard smack to your <<bottom>>. "That what you want?" <<he>> says, delivering blow after blow.<<ggpain>><<gtrauma>><<gstress>><<pain 8>><<trauma 6>><<stress 6>>
+	<br><br>
+	<<He>> abuses you without relent, until <<his>> arms, or something else, tires, and <<he>> unties <<his>> cord. "Go. Fucking go."
 	<br><br>
-    <<He>> abuses you without relent, until <<his>> arms, or something else, tires, and <<he>> unties <<his>> cord. "Go. Fucking go."
-    <br><br>
 	<<tearful>> you leave the cell.
 	<br><br>
 	<<clotheson>>
 	<br><br>
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
 	<<endcombat>>
-    <br><br>
-    <<prison_unbind>>
-    <<link [[Next|Prison Walkway]]>><</link>>
-    <br>
+	<br><br>
+	<<prison_unbind>>
+	<<link [[Next|Prison Walkway]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Scarred Turn
 <<effects>>
 <<bind>>
-You turn as intructed. <<scarred_inmate 0 cap>> has your hands bound behind you in a moment. 
+You turn as intructed. <<scarred_inmate 0 cap>> has your hands bound behind you in a moment.
 <<if $worn.neck.type.includes("leash")>>
-    <<He>> takes hold of your leash.
+	<<He>> takes hold of your leash.
 <<else>>
-    <<He>> bites through the cord, then ties the remainder to your collar.
-    <<attach_leash>>
+	<<He>> bites through the cord, then ties the remainder to your collar.
+	<<attach_leash>>
 <</if>>
  "Let's go for a walk."
 <br><br>
@@ -449,19 +449,19 @@ You turn as intructed. <<scarred_inmate 0 cap>> has your hands bound behind you
 You refuse to budge.
 
 <<if $prison.scarred gte 80>>
-    <<scarred_inmate 0 cap>> snarls in frustration. "You're such a brat. Fine." <<He>> wrenches the cord off your collar. "Go."<<llove>><<prison_rep scarred -5>>
-    <br><br>
-    <<prison_detach_leash>>
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
-    <br><br>
-    <<prison_unbind>>
-    <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+	<<scarred_inmate 0 cap>> snarls in frustration. "You're such a brat. Fine." <<He>> wrenches the cord off your collar. "Go."<<llove>><<prison_rep scarred -5>>
+	<br><br>
+	<<prison_detach_leash>>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<br><br>
+	<<prison_unbind>>
+	<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
 <<else>>
-    <<scarred_inmate 0 cap>> snarls.
-    <br><br>
+	<<scarred_inmate 0 cap>> snarls.
+	<br><br>
 
-    <<link [[Next|Prison Scarred Fight]]>><<set $fightstart to 1>><</link>>
-    <br>
+	<<link [[Next|Prison Scarred Fight]]>><<set $fightstart to 1>><</link>>
+	<br>
 <</if>>
 
 
@@ -508,7 +508,7 @@ You refuse to budge.
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Walkway]]>><</link>>
-    <br>
+	<br>
 
 <<elseif $enemyhealth lte 0>>
 	<<scarred_inmate 0 cap>> staggers backward, and trips onto <<his>> bed.<<llove>><<prison_rep scarred -1>><<grespect>><<prison_inmates 1>>
@@ -518,14 +518,14 @@ You refuse to budge.
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Walkway]]>><</link>>
-    <br>
+	<br>
 
 <<else>>
 	You're too hurt to keep fighting. <<scarred_inmate 0 cap>> steadies you with your leash, and pulls you from the cell.
 	<br><br>
 	<<endcombat>>
 	<<link [[Next|Prison Scarred Walk]]>><<generate_scarred_inmate 0>><<person1>><</link>>
-    <br>
+	<br>
 
 <</if>>
 
@@ -544,11 +544,11 @@ You refuse to budge.
 <br><br>
 
 <<if $prison.scarred_level is 3>>
-    <<link [[Next|Prison Scarred Walk 2]]>><</link>>
-    <br>
+	<<link [[Next|Prison Scarred Walk 2]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Prison Scarred Yard]]>><</link>>
-    <br>
+	<<link [[Next|Prison Scarred Yard]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Scarred Walk 2
@@ -581,11 +581,11 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 <br><br>
 
 <<if $worn.face.type.includes("gag")>>
-    <span class="blue">With your mouth gagged, you can't warn <<him>>.</span>
-    <br>
+	<span class="blue">With your mouth gagged, you can't warn <<him>>.</span>
+	<br>
 <<else>>
-    <<link [[Warn|Prison Scarred Yard Warn]]>><</link>>
-    <br>
+	<<link [[Warn|Prison Scarred Yard Warn]]>><</link>>
+	<br>
 <</if>>
 <<link [[Remain silent|Prison Scarred Yard Rape]]>><<set $molestationstart to 1>><</link>>
 <br>
@@ -594,24 +594,24 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "They're gonna rape me if you're not careful" ,>> you say.
+	<<gagged_speech "They're gonna rape me if you're not careful" ,>> you say.
 <<elseif $submissive lte 850>>
-    <<gagged_speech "They're gonna cuck you if we're not careful" ,>> you say.
+	<<gagged_speech "They're gonna cuck you if we're not careful" ,>> you say.
 <<else>>
-    <<gagged_speech "They're gonna rape me if we're not careful" ,>> you say.
+	<<gagged_speech "They're gonna rape me if we're not careful" ,>> you say.
 <</if>>
 <br><br>
 
 <<if $prison.scarred gte 85>>
-    <<scarred_inmate 0 cap>> glances around, <span class="green">then pulls you back towards the prison block.</span> "Let's find somewhere private."
-    <br><br>
-    One of the inmates tries to grope you, but <<scarred_inmate 0>> gives <<him>> a bloody nose.
-    <br><br>
+	<<scarred_inmate 0 cap>> glances around, <span class="green">then pulls you back towards the prison block.</span> "Let's find somewhere private."
+	<br><br>
+	One of the inmates tries to grope you, but <<scarred_inmate 0>> gives <<him>> a bloody nose.
+	<br><br>
 
-    <<link [[Next|Prison Scarred Yard End]]>><</link>>
-    <br>
+	<<link [[Next|Prison Scarred Yard End]]>><</link>>
+	<br>
 <<else>>
-    <<scarred_inmate 0 cap>> <span class="red">smacks your <<bottom>>.</span> "There's no wriggling out of this, bitch."
+	<<scarred_inmate 0 cap>> <span class="red">smacks your <<bottom>>.</span> "There's no wriggling out of this, bitch."
 <br><br>
 
 <<link [[Next|Prison Scarred Yard Rape]]>><<set $molestationstart to 1>><</link>>
@@ -640,14 +640,14 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 	<<molested>>
 
 	<<maninit>>
-    <<npcspank>>
+	<<npcspank>>
 <</if>>
 
 <<effects>>
 
 <<effectsman>><<man>>
 
-<<audience>>	
+<<audience>>
 
 <<stateman>>
 <br><br>
@@ -658,7 +658,7 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 <<elseif $enemyarousal gte $enemyarousalmax>>
 	<span id="next"><<link [[Next|Prison Scarred Yard Rape Finish]]>><</link>></span><<nexttext>>
 <<elseif $orgasmdown gte 1>>
-    <span is="next"><<link [[Next|Prison Scarred Yard Rape Finish]]>><</link>></span><<nexttext>>
+	<span is="next"><<link [[Next|Prison Scarred Yard Rape Finish]]>><</link>></span><<nexttext>>
 <<else>>
 	<span id="next"><<link [[Next|Prison Scarred Yard Rape]]>><</link>></span><<nexttext>>
 <</if>>
@@ -672,13 +672,13 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 	<<tearful>> you take a deep breath. That was dangerous.
 	<br><br>
 	<<clotheson>>
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
-    <<endcombat>>
-    <br><br>
-    <<prison_unbind>>
-    <<prison_detach_leash>>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<<endcombat>>
+	<br><br>
+	<<prison_unbind>>
+	<<prison_detach_leash>>
 	<<link [[Next|Prison Yard]]>><</link>>
-    <br>
+	<br>
 <<elseif $enemyhealth lte 0>>
 	You shove <<scarred_inmate 0>> to the dirt. The watching inmates laugh.<<llove>><<grespect>><<prison_rep scarred -1>><<prison_inmates 1>>
 	<br><br>
@@ -687,14 +687,14 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Block]]>><</link>>
-    <br>
+	<br>
 <<else>>
-    <<scarred_inmate 0 cap>> punches an onlooker who got too close. The onlooker's friend tries to retaliate. <<scarred_inmate 0 cap>> punches that one as well. But there's another, and another. They wrestle <<him>> to the ground, while others advance on you.
-    <br><br>
+	<<scarred_inmate 0 cap>> punches an onlooker who got too close. The onlooker's friend tries to retaliate. <<scarred_inmate 0 cap>> punches that one as well. But there's another, and another. They wrestle <<him>> to the ground, while others advance on you.
+	<br><br>
 
-    <<endcombat>>
-    <<link [[Next|Prison Scarred Inmate Rape]]>><<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>><<person1>><<set $molestationstart to 1>><</link>>
-    <br>
+	<<endcombat>>
+	<<link [[Next|Prison Scarred Inmate Rape]]>><<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>><<person1>><<set $molestationstart to 1>><</link>>
+	<br>
 <</if>>
 
 
@@ -712,7 +712,7 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 <<effects>>
 
 <<effectsman>><<man>>
-	
+
 <<audience>>
 
 <<stateman>>
@@ -731,36 +731,36 @@ The other inmates watch with increasing lechery. They look between you, <<scarre
 <<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-	
-    Others jostle for a turn, until a whistle pierces the din. 
+
+	Others jostle for a turn, until a whistle pierces the din.
 	<br><br>
 	<<tearful>> you struggle to your feet.
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
-    <br><br>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	
-    <<generate_veteran_guard 0>><<person1>>
-    "You're disturbing the peace and tranquility of this institution," <<veteran_guard 0>> says. <<He>> rests a hand on your shoulder. "You're coming with me."
-    <br><br>
-    <<link [[Go quietly|Prison Punishment]]>><<endevent>><</link>>
-    <br>
-    <<link [[Fight|Prison Punishment Fight]]>><<set $fightstart to 1>><</link>>
-    <br>
+
+	<<generate_veteran_guard 0>><<person1>>
+	"You're disturbing the peace and tranquility of this institution," <<veteran_guard 0>> says. <<He>> rests a hand on your shoulder. "You're coming with me."
+	<br><br>
+	<<link [[Go quietly|Prison Punishment]]>><<endevent>><</link>>
+	<br>
+	<<link [[Fight|Prison Punishment Fight]]>><<set $fightstart to 1>><</link>>
+	<br>
 
 <<else>>
 	The crowd backs away, shocked by your power.<<gggrespect>><<prison_inmates 10>>
 	<br><br>
 	<<clotheson>>
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
-    <<endcombat>>
-    <br><br>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<<endcombat>>
+	<br><br>
 	<<tearful>> you get your bearings. You see <<generate_scarred_inmate 0>><<person1>><<scarred_inmate 0>> lying in the mud.
 	<br><br>
 	<<link [["Help " + $NPCList[0].pronouns.him|Prison Scarred Inmate Help]]>><<prison_rep scarred 3>><</link>><<gglove>><<gghope>><<prison_hope 3>>
-    <br>
-    <<link [[Walk away|Prison Yard]]>><<prison_inmates 3>><<endevent>><</link>><<ggrespect>>
-    <br>
+	<br>
+	<<link [[Walk away|Prison Yard]]>><<prison_inmates 3>><<endevent>><</link>><<ggrespect>>
+	<br>
 
 <</if>>
 
@@ -821,13 +821,13 @@ You help <<scarred_inmate 0>> up, and take <<him>> to medical.
 	<<tearful>> you leave the cell.
 	<br><br>
 	<<clotheson>>
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
-    <<endcombat>>
-    <br><br>
-    <<prison_unbind>>
-    <<prison_detach_leash>>
-    <<link [[Next|Prison Walkway]]>><</link>>
-    <br>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<<endcombat>>
+	<br><br>
+	<<prison_unbind>>
+	<<prison_detach_leash>>
+	<<link [[Next|Prison Walkway]]>><</link>>
+	<br>
 <<elseif $enemyhealth lte 0>>
 	You shove <<scarred_inmate 0>> away from you.<<llove>><<prison_rep scarred -1>>
 	<br><br>
@@ -835,21 +835,21 @@ You help <<scarred_inmate 0>> up, and take <<him>> to medical.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-    <<link [[Next|Prison Walkway]]>><</link>>
-    <br>
+	<<link [[Next|Prison Walkway]]>><</link>>
+	<br>
 <<else>>
 	"Fucking tease," <<scarred_inmate 0>> says while fiddling with your bindings. "Go."
 	<br><br>
 	<<tearful>> you leave the cell.
 	<br><br>
 	<<clotheson>>
-    <span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
-    <<endcombat>>
-    <br><br>
-    <<prison_unbind>>
-    <<prison_detach_leash>>
-    <<link [[Next|Prison Walkway]]>><</link>>
-    <br>
+	<span class="green">You've gained <<scarred_inmate 0 apo>> protection.</span><<set $prison.protection to "scarred">>
+	<<endcombat>>
+	<br><br>
+	<<prison_unbind>>
+	<<prison_detach_leash>>
+	<<link [[Next|Prison Walkway]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Scarred Ask
@@ -857,31 +857,31 @@ You help <<scarred_inmate 0>> up, and take <<him>> to medical.
 
 <<generate2>>
 <<if $submissive gte 1150>>
-    <<gagged_speech "Wh-what's wrong" ?>> you ask. <<gagged_speech "You can tell me" .>>
+	<<gagged_speech "Wh-what's wrong" ?>> you ask. <<gagged_speech "You can tell me" .>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Not used to seeing you like this" ,>> you say. <<gagged_speech "What's wrong" ?>>
+	<<gagged_speech "Not used to seeing you like this" ,>> you say. <<gagged_speech "What's wrong" ?>>
 <<else>>
-    <<gagged_speech "What's wrong" ?>> you ask. <<gagged_speech "You can tell me" .>>
+	<<gagged_speech "What's wrong" ?>> you ask. <<gagged_speech "You can tell me" .>>
 <</if>>
 <br><br>
 
 "Fuck off," <<he>> says.
 
 <<if $worn.face.type.includes("gag")>>
-    <<He>> looks at your $worn.face.name. <span class="blue">"Come back when you can use your mouth."</span>
-    <br><br>
+	<<He>> looks at your $worn.face.name. <span class="blue">"Come back when you can use your mouth."</span>
+	<br><br>
 
-    <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    "Wait." <<He>> rests <<his>> hands on <<his>> knees, then rises to <<his>> feet. "I need you for something. I have a visitor, but I don't want to see <<person2>><<him>>. Could you go so <<he>> fucks off?"
-    <br><br>
-    <<person1>>
+	"Wait." <<He>> rests <<his>> hands on <<his>> knees, then rises to <<his>> feet. "I need you for something. I have a visitor, but I don't want to see <<person2>><<him>>. Could you go so <<he>> fucks off?"
+	<br><br>
+	<<person1>>
 
-    <<link [[Agree|Prison Scarred Sibling Agree]]>><<prison_rep scarred 25>><</link>><<ggglove>>
-    <br>
-    <<link [[Refuse|Prison Scarred Sibling Refuse]]>><</link>>
-    <br>
+	<<link [[Agree|Prison Scarred Sibling Agree]]>><<prison_rep scarred 25>><</link>><<ggglove>>
+	<br>
+	<<link [[Refuse|Prison Scarred Sibling Refuse]]>><</link>>
+	<br>
 <</if>>
 
 
@@ -904,23 +904,23 @@ You walk towards the visitor room, down a concrete corridor, and find <<methodic
 <br><br>
 
 <<if $submissive gte 1150>>
-    <<if $worn.face.type.includes("gag")>>
-        "M-mmmhr," you say. "Mmmhhr."
-    <<else>>
-        "S-sorry," you say. "I was sent in <<person1>><<his>> place."
-    <</if>>
+	<<if $worn.face.type.includes("gag")>>
+		"M-mmmhr," you say. "Mmmhhr."
+	<<else>>
+		"S-sorry," you say. "I was sent in <<person1>><<his>> place."
+	<</if>>
 <<elseif $submissive lte 850>>
-    <<if $worn.face.type.includes("gag")>>
-        "Mmhhrrr," you say.
-    <<else>>
-        "I was sent in <<person1>><<his>> place," you say.
-    <</if>>
+	<<if $worn.face.type.includes("gag")>>
+		"Mmhhrrr," you say.
+	<<else>>
+		"I was sent in <<person1>><<his>> place," you say.
+	<</if>>
 <<else>>
-    <<if $worn.face.type.includes("gag")>>
-        "Mmmhhrr," you say.
-    <<else>>
-        "I was sent in <<person1>><<his>> place," you say.
-    <</if>>
+	<<if $worn.face.type.includes("gag")>>
+		"Mmmhhrr," you say.
+	<<else>>
+		"I was sent in <<person1>><<his>> place," you say.
+	<</if>>
 <</if>>
 <br><br>
 
@@ -950,21 +950,21 @@ You enter a small room, with a chair in front of a microphone and window. There'
 <<effects>>
 
 <<if $phase is 1>>
-    <<if $submissive gte 1150>>
-        "Your <<if $pronoun is "m">>brother<<else>>sister<</if>> didn't want to come," you say. "I'm sorry."
-    <<elseif $submissive lte 850>>
-        "Your <<if $pronoun is "m">>brother<<else>>sister<</if>> asked me to come instead," you say.
-    <<else>>
-        "Your <<if $pronoun is "m">>brother<<else>>sister<</if>> asked me to come instead," you say.
-    <</if>>
+	<<if $submissive gte 1150>>
+		"Your <<if $pronoun is "m">>brother<<else>>sister<</if>> didn't want to come," you say. "I'm sorry."
+	<<elseif $submissive lte 850>>
+		"Your <<if $pronoun is "m">>brother<<else>>sister<</if>> asked me to come instead," you say.
+	<<else>>
+		"Your <<if $pronoun is "m">>brother<<else>>sister<</if>> asked me to come instead," you say.
+	<</if>>
 <<else>>
-    <<if $submissive gte 1150>>
-        "Your <<if $pronoun is "m">>brother<<else>>sister<</if>> is sick I'm afraid," you say. "So <<he>> asked me to come instead."
-    <<elseif $submissive lte 850>>
-        "Your <<if $pronoun is "m">>brother<<else>>sister<</if>> got beat up," you say. "So <<he>> asked me to come instead."
-    <<else>>
-        "Your <<if $pronoun is "m">>brother<<else>>sister<</if>> is sick," you say. "So <<he>> asked me to come instead."
-    <</if>>
+	<<if $submissive gte 1150>>
+		"Your <<if $pronoun is "m">>brother<<else>>sister<</if>> is sick I'm afraid," you say. "So <<he>> asked me to come instead."
+	<<elseif $submissive lte 850>>
+		"Your <<if $pronoun is "m">>brother<<else>>sister<</if>> got beat up," you say. "So <<he>> asked me to come instead."
+	<<else>>
+		"Your <<if $pronoun is "m">>brother<<else>>sister<</if>> is sick," you say. "So <<he>> asked me to come instead."
+	<</if>>
 <</if>>
 <br><br>
 
diff --git a/game/overworld-town/loc-prison/widgets.twee b/game/overworld-town/loc-prison/widgets.twee
index 72ffafe6488e65dae8f8b879376d0f4614dfb0a4..9599b6d28e508232411f6c6b502c10b0107ba59c 100644
--- a/game/overworld-town/loc-prison/widgets.twee
+++ b/game/overworld-town/loc-prison/widgets.twee
@@ -1,77 +1,77 @@
 :: Widgets Prison [widget]
 <<widget "prison_init">>
 <<if !$prison>>
-    <<set $prison to {}>>
-    <<set $prison.guards to 50>>
-    <<set $prison.inmates to 0>>
-    <<set $prison.hope to 0>>
-    <<set $prison.reb to 0>>
-    <<set $prison.cell_trouble to 0>>
-    <<set $prison.prayer_trouble to 0>>
-    <<set $prison.relaxed to 0>>
-    <<set $prison.anxious to 0>>
-    <<set $prison.veteran to 0>>
-    <<set $prison.methodical to 0>>
-    <<set $prison.scarred to 0>>
-    <<set $prison.tattooed to 0>>
-    <<set $prison.shirt to 1>>
-    <<set $prison.trousers to 1>>
-    <<if $player.gender_appearance is "m">>
-        <<set $prison.briefs to 1>>
-        <<set $prison.vest to 1>>
-    <<else>>
-        <<set $prison.panties to 1>>
-        <<set $prison.bra to 1>>
-    <</if>>
-    <<set $prison.punishments to ["free use","nude","blindfold","topless","leash","underwear","cuffs","bottomless","gag","bindings","rut"]>>
-    <<set $prison.active_punishments to []>>
-    <<set $prison.punishment_intro to 0>>
-    <<set $prison.attention to 0>>
-    <<set $prison.attention_level to 0>>
-    <<set $prison.scarred_level to 0>>
-    <<set $prison.tattooed_level to 0>>
-    <<set $prison.job to "laundry">>
-    <<set $prison.shock to 1>>
-    <<set $prison.teeth to 0>>
-    <<set $prison.pills to 0>>
-    <<set $prison.medical_intro to 0>>
-    <<set $prison.spire_intro to 0>>
-    <<set $prison.hours_worked to 9>>
-    <<set $prison.work_check to 1>>
-    <<set $prison.kylar to 0>>
-
-    <<set $prison_wren_intro to 1>>
-    <<set $prison_wren_boat_intro to 1>>
+	<<set $prison to {}>>
+	<<set $prison.guards to 50>>
+	<<set $prison.inmates to 0>>
+	<<set $prison.hope to 0>>
+	<<set $prison.reb to 0>>
+	<<set $prison.cell_trouble to 0>>
+	<<set $prison.prayer_trouble to 0>>
+	<<set $prison.relaxed to 0>>
+	<<set $prison.anxious to 0>>
+	<<set $prison.veteran to 0>>
+	<<set $prison.methodical to 0>>
+	<<set $prison.scarred to 0>>
+	<<set $prison.tattooed to 0>>
+	<<set $prison.shirt to 1>>
+	<<set $prison.trousers to 1>>
+	<<if $player.gender_appearance is "m">>
+		<<set $prison.briefs to 1>>
+		<<set $prison.vest to 1>>
+	<<else>>
+		<<set $prison.panties to 1>>
+		<<set $prison.bra to 1>>
+	<</if>>
+	<<set $prison.punishments to ["free use","nude","blindfold","topless","leash","underwear","cuffs","bottomless","gag","bindings","rut"]>>
+	<<set $prison.active_punishments to []>>
+	<<set $prison.punishment_intro to 0>>
+	<<set $prison.attention to 0>>
+	<<set $prison.attention_level to 0>>
+	<<set $prison.scarred_level to 0>>
+	<<set $prison.tattooed_level to 0>>
+	<<set $prison.job to "laundry">>
+	<<set $prison.shock to 1>>
+	<<set $prison.teeth to 0>>
+	<<set $prison.pills to 0>>
+	<<set $prison.medical_intro to 0>>
+	<<set $prison.spire_intro to 0>>
+	<<set $prison.hours_worked to 9>>
+	<<set $prison.work_check to 1>>
+	<<set $prison.kylar to 0>>
+
+	<<set $prison_wren_intro to 1>>
+	<<set $prison_wren_boat_intro to 1>>
 	<<set $wardrobe_location to "prison">>
 	<<wardrobeSelection true>>
-    <<uppersend 86 $wardrobe_location>>
-    <<if $malechance gte 100>>
-        <<underuppersend 22 $wardrobe_location>>
-        <<underuppersend 22 $wardrobe_location>>
-        <<underlowersend 4 $wardrobe_location>>
-        <<underlowersend 4 $wardrobe_location>>
-    <<elseif $malechance lte 0>>
-        <<underuppersend 12 $wardrobe_location>>
-        <<underuppersend 12 $wardrobe_location>>
-        <<underlowersend 1 $wardrobe_location>>
-        <<underlowersend 1 $wardrobe_location>>
-    <<else>>
-        <<underuppersend 22 $wardrobe_location>>
-        <<underuppersend 12 $wardrobe_location>>
-        <<underlowersend 4 $wardrobe_location>>
-        <<underlowersend 1 $wardrobe_location>>
-    <</if>>
+	<<uppersend 86 $wardrobe_location>>
+	<<if $malechance gte 100>>
+		<<underuppersend 22 $wardrobe_location>>
+		<<underuppersend 22 $wardrobe_location>>
+		<<underlowersend 4 $wardrobe_location>>
+		<<underlowersend 4 $wardrobe_location>>
+	<<elseif $malechance lte 0>>
+		<<underuppersend 12 $wardrobe_location>>
+		<<underuppersend 12 $wardrobe_location>>
+		<<underlowersend 1 $wardrobe_location>>
+		<<underlowersend 1 $wardrobe_location>>
+	<<else>>
+		<<underuppersend 22 $wardrobe_location>>
+		<<underuppersend 12 $wardrobe_location>>
+		<<underlowersend 4 $wardrobe_location>>
+		<<underlowersend 1 $wardrobe_location>>
+	<</if>>
 
 <</if>>
 <<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "prison" and $prison.kylar is 0>>
-    <<set $prison_kylar_timer to 2>>
+	<<set $prison_kylar_timer to 2>>
 <</if>>
 <<set $prison.morning to 1>>
 <</widget>>
 
 <<widget "prison_attention">>
 <<if _args[0] and ($prison_attention_day isnot true or $prison.schedule is "revolt")>>
-    <<set $prison.attention += (_args[0] * 10)>>
+	<<set $prison.attention += (_args[0] * 10)>>
 <</if>>
 <</widget>>
 
@@ -85,137 +85,137 @@
 
 <<widget "cell_trouble">>
 <<if _args[0]>>
-    <<set $prison.cell_trouble += _args[0]>>
-    <<set $prison.cell_trouble to Math.clamp($prison.cell_trouble, 0, 10)>>
+	<<set $prison.cell_trouble += _args[0]>>
+	<<set $prison.cell_trouble to Math.clamp($prison.cell_trouble, 0, 10)>>
 <</if>>
 <</widget>>
 
 <<widget "prison_rep">>
 <<if _args[0] and _args[1]>>
-    <<set $prison[_args[0]] += _args[1]>>
+	<<set $prison[_args[0]] += _args[1]>>
 <</if>>
 <</widget>>
 
 <<widget "prison_guards">>
 <<if _args[0]>>
-    <<set $prison.guards += _args[0]>>
-    <<set $prison.guards = Math.clamp($prison.guards, 0, 100)>>
+	<<set $prison.guards += _args[0]>>
+	<<set $prison.guards = Math.clamp($prison.guards, 0, 100)>>
 <</if>>
 <</widget>>
 
 <<widget "prison_inmates">>
 <<if _args[0]>>
-    <<set $prison.inmates += _args[0]>>
-    <<set $prison.inmates = Math.clamp($prison.inmates, 0, 100)>>
+	<<set $prison.inmates += _args[0]>>
+	<<set $prison.inmates = Math.clamp($prison.inmates, 0, 100)>>
 <</if>>
 <</widget>>
 
 <<widget "prison_hope">>
 <<if _args[0]>>
-    <<if $prison.attention_level gte 1>>
-        <<set _prison_hope to $prison.attention_level>>
-    <<else>>
-        <<set _prison_hope to 1>>
-    <</if>>
-    <<set _prison_hope *= _args[0]>>
-    <<set $prison.hope += _prison_hope>>
-    <<set $prison.hope = Math.clamp($prison.hope, 0, 100)>>
+	<<if $prison.attention_level gte 1>>
+		<<set _prison_hope to $prison.attention_level>>
+	<<else>>
+		<<set _prison_hope to 1>>
+	<</if>>
+	<<set _prison_hope *= _args[0]>>
+	<<set $prison.hope += _prison_hope>>
+	<<set $prison.hope = Math.clamp($prison.hope, 0, 100)>>
 <</if>>
 <</widget>>
 
 <<widget "prison_reb">>
 <<if _args[0]>>
-    <<if $prison.attention_level gte 1>>
-        <<set _prison_reb to $prison.attention_level>>
-    <<else>>
-        <<set _prison_reb to 1>>
-    <</if>>
-    <<set _prison_reb *= _args[0]>>
-    <<set $prison.reb += _prison_reb>>
-    <<set $prison.reb = Math.clamp($prison.reb, 0, 100)>>
+	<<if $prison.attention_level gte 1>>
+		<<set _prison_reb to $prison.attention_level>>
+	<<else>>
+		<<set _prison_reb to 1>>
+	<</if>>
+	<<set _prison_reb *= _args[0]>>
+	<<set $prison.reb += _prison_reb>>
+	<<set $prison.reb = Math.clamp($prison.reb, 0, 100)>>
 <</if>>
 <</widget>>
 
 <<widget "effects_prison">>
 <<if $prison.work_check isnot 1 and $hour gte 7>>
-    <<set $prison.work_check to 1>>
-    <<set $prison.hours_worked to 0>>
+	<<set $prison.work_check to 1>>
+	<<set $prison.hours_worked to 0>>
 <</if>>
 <<if $prison.schedule is "hunt">>
-    <span class="red">You are being hunted.</span>
+	<span class="red">You are being hunted.</span>
 <<elseif $prison.schedule is "revolt">>
-    <span class="red">The inmates are revolting.</span>
+	<span class="red">The inmates are revolting.</span>
 <<else>>
-    <<switch $hour>>
-        <<case 6>>
-            <<if $prison.morning is 1>>
-                <<set $prison.schedule to "wake">>
-                Breakfast is being served in the canteen.
-            <<else>>
-                <<set $prison.schedule to "hunt">>
-            <</if>>
-        <<case 7 8 9 10 11>>
-            <<set $prison.schedule to "work">>
-            <<if $prison.job is "laundry">>
-                <span class="red">You are expected in the laundry room.</span>
-            <<elseif $prison.job is "spire">>
-                <span class="red">You are expected on the spire.</span>
-            <<elseif $prison.job is "medical">>
-                <span class="red">You are expected in the medical room.</span>
-            <</if>>
-        <<case 12>>
-            <<set $prison.schedule to "lunch">>
-            Lunch is being served in the canteen.
-        <<case 13>>
-            <<set $prison.schedule to "yard">>
-            The inmates are being encouraged into the yard.
-        <<case 14 15 16 17>>
-            <<set $prison.schedule to "work">>
-            <<if $prison.job is "laundry">>
-                <span class="red">You are expected in the laundry room.</span>
-            <<elseif $prison.job is "spire">>
-                <span class="red">You are expected on the spire.</span>
-            <<elseif $prison.job is "medical">>
-                <span class="red">You are expected in the medical room.</span>
-            <</if>>
-        <<case 18>>
-            <<set $prison.schedule to "dinner">>
-            Dinner is being served in the canteen.
-        <<case 19>>
-            <<set $prison.schedule to "free time">>
-            <span class="teal">Free time.</span>
-        <<default>>
-            <<set $prison.schedule to "lockdown">>
-            <span class="red">Lockdown.</span>
-    <</switch>>
+	<<switch $hour>>
+		<<case 6>>
+			<<if $prison.morning is 1>>
+				<<set $prison.schedule to "wake">>
+				Breakfast is being served in the canteen.
+			<<else>>
+				<<set $prison.schedule to "hunt">>
+			<</if>>
+		<<case 7 8 9 10 11>>
+			<<set $prison.schedule to "work">>
+			<<if $prison.job is "laundry">>
+				<span class="red">You are expected in the laundry room.</span>
+			<<elseif $prison.job is "spire">>
+				<span class="red">You are expected on the spire.</span>
+			<<elseif $prison.job is "medical">>
+				<span class="red">You are expected in the medical room.</span>
+			<</if>>
+		<<case 12>>
+			<<set $prison.schedule to "lunch">>
+			Lunch is being served in the canteen.
+		<<case 13>>
+			<<set $prison.schedule to "yard">>
+			The inmates are being encouraged into the yard.
+		<<case 14 15 16 17>>
+			<<set $prison.schedule to "work">>
+			<<if $prison.job is "laundry">>
+				<span class="red">You are expected in the laundry room.</span>
+			<<elseif $prison.job is "spire">>
+				<span class="red">You are expected on the spire.</span>
+			<<elseif $prison.job is "medical">>
+				<span class="red">You are expected in the medical room.</span>
+			<</if>>
+		<<case 18>>
+			<<set $prison.schedule to "dinner">>
+			Dinner is being served in the canteen.
+		<<case 19>>
+			<<set $prison.schedule to "free time">>
+			<span class="teal">Free time.</span>
+		<<default>>
+			<<set $prison.schedule to "lockdown">>
+			<span class="red">Lockdown.</span>
+	<</switch>>
 <</if>>
 <br>
 <<if $prison.schedule is "revolt">>
-    <span class="pink">But the warden is coming:</span>
+	<span class="pink">But the warden is coming:</span>
 <<else>>
-    Attention level:
-    <<switch $prison.attention_level>>
-        <<case 0>>
-            <span class="blue">Zero</span>
-        <<case 1>>
-            <span class="purple">One</span>
-        <<case 2>>
-            <span class="pink">Two</span>
-        <<case 3>>
-            <span class="red">Three</span>
-    <</switch>>
-    <<if $prison.protection is "scarred">>
-        | <span class="green">You are under the scarred inmate's protection.</span>
-    <<elseif $prison.protection is "tattooed">>
-        | <span class="green">You are under the tattooed inmate's protection.</span>
-    <</if>>
-    <<if $prison.hours_worked is 8>>
-        | The guards expect <span class="blue">another hour</span> of work from you today.
-    <<elseif $prison.hours_worked gte 9>>
-        | <span class="green">You've finished work for the day.</span>
-    <<else>>
-        | The guards expect <span class="purple"><<number `($prison.hours_worked - 9) / -1`>></span> more hours work from you today.
-    <</if>>
+	Attention level:
+	<<switch $prison.attention_level>>
+		<<case 0>>
+			<span class="blue">Zero</span>
+		<<case 1>>
+			<span class="purple">One</span>
+		<<case 2>>
+			<span class="pink">Two</span>
+		<<case 3>>
+			<span class="red">Three</span>
+	<</switch>>
+	<<if $prison.protection is "scarred">>
+		| <span class="green">You are under the scarred inmate's protection.</span>
+	<<elseif $prison.protection is "tattooed">>
+		| <span class="green">You are under the tattooed inmate's protection.</span>
+	<</if>>
+	<<if $prison.hours_worked is 8>>
+		| The guards expect <span class="blue">another hour</span> of work from you today.
+	<<elseif $prison.hours_worked gte 9>>
+		| <span class="green">You've finished work for the day.</span>
+	<<else>>
+		| The guards expect <span class="purple"><<number `($prison.hours_worked - 9) / -1`>></span> more hours work from you today.
+	<</if>>
 <</if>>
 <<statbar $prison.attention 100 right>>
 <br>
@@ -223,72 +223,72 @@
 
 <<widget "prison_work">>
 <<if _args[0]>>
-    <<set $prison.hours_worked += _args[0]>>
+	<<set $prison.hours_worked += _args[0]>>
 <<else>>
-    <<set $prison.hours_worked += 1>>
+	<<set $prison.hours_worked += 1>>
 <</if>>
 <</widget>>
 
 <<widget "prison_day">>
 <<if $prison>>
-    <<if $prison_job_change isnot undefined>>
-        <<set $prison.job to $prison_job_change>>
-        <<unset $prison_job_change>>
-    <</if>>
-    <<unset $prison_scarred_done>>
-    <<unset $prisonwake>>
-    <<unset $prison_relaxed_spoke>>
-    <<unset $prison_relaxed_greet>>
-    <<unset $prison_anxious_spoke>>
-    <<unset $prison_anxious_greet>>
-    <<unset $prison_veteran_spoke>>
-    <<unset $prison_veteran_greet>>
-    <<unset $prison_methodical_spoke>>
-    <<set $prison.morning to 0>>
-    <<set $prison.evening to 0>>
-    <<set $prison_punished_days -= 1>>
-    <<set $prison.work_check to 0>>
-    <<if $location is "prison">>
-        <<cell_trouble -1>>
-        <<set $prison.time -= 1>>
-        <<set $stat_police.prison += 1>>
-    <</if>>
-    <<if $prison.kylar is "active">>
-        <<npcincr Kylar lust 10>>
-        <<unset $prison_kylar_cell>>
-    <</if>>
-    <<set $prison_kylar_timer -= 1>>
-    <<if $prison.kylar is "solitary" and $prison_kylar_timer lte 0>>
-        <<unset $prison_kylar_timer>>
-        <<set $prison.kylar to "active">>
-    <</if>>
-    <<unset $prison_attention_day>>
+	<<if $prison_job_change isnot undefined>>
+		<<set $prison.job to $prison_job_change>>
+		<<unset $prison_job_change>>
+	<</if>>
+	<<unset $prison_scarred_done>>
+	<<unset $prisonwake>>
+	<<unset $prison_relaxed_spoke>>
+	<<unset $prison_relaxed_greet>>
+	<<unset $prison_anxious_spoke>>
+	<<unset $prison_anxious_greet>>
+	<<unset $prison_veteran_spoke>>
+	<<unset $prison_veteran_greet>>
+	<<unset $prison_methodical_spoke>>
+	<<set $prison.morning to 0>>
+	<<set $prison.evening to 0>>
+	<<set $prison_punished_days -= 1>>
+	<<set $prison.work_check to 0>>
+	<<if $location is "prison">>
+		<<cell_trouble -1>>
+		<<set $prison.time -= 1>>
+		<<set $stat_police.prison += 1>>
+	<</if>>
+	<<if $prison.kylar is "active">>
+		<<npcincr Kylar lust 10>>
+		<<unset $prison_kylar_cell>>
+	<</if>>
+	<<set $prison_kylar_timer -= 1>>
+	<<if $prison.kylar is "solitary" and $prison_kylar_timer lte 0>>
+		<<unset $prison_kylar_timer>>
+		<<set $prison.kylar to "active">>
+	<</if>>
+	<<unset $prison_attention_day>>
 <</if>>
 <</widget>>
 
 /*Argument is the NPC slot they fill or should fill. */
 <<widget "generate_relaxed_guard">>
 <<if $prison_intro is 1>>
-    <<loadNPC _args[0] "relaxed_guard">>
+	<<loadNPC _args[0] "relaxed_guard">>
 <<else>>
-    <<generateRole 0 "relaxed" "guard">>
-    <<saveNPC 0 "relaxed_guard">>
+	<<generateRole 0 "relaxed" "guard">>
+	<<saveNPC 0 "relaxed_guard">>
 <</if>>
 <</widget>>
 
 <<widget "generate_anxious_guard">>
 <<if $prison_intro is 1>>
-    <<loadNPC _args[0] "anxious_guard">>
+	<<loadNPC _args[0] "anxious_guard">>
 <<else>>
-    <<generateRole 1 "anxious" "guard">>
-    <<saveNPC 1 "anxious_guard">>
+	<<generateRole 1 "anxious" "guard">>
+	<<saveNPC 1 "anxious_guard">>
 <</if>>
 <</widget>>
 
 <<widget "generate_veteran_guard">>
 <<if $prison_intro is 1>>
-    <<set $_id to _args[0]>>
-    <<loadNPC $_id "veteran_guard">>
+	<<set $_id to _args[0]>>
+	<<loadNPC $_id "veteran_guard">>
 	<<if $per_npc.veteran_guard and !$per_npc.veteran_guard.description>>
 		<!-- Fix for the veteran guard being saved over as an empty NPCList object in some saves -->
 		<<clearsinglenpc $_id>>
@@ -301,28 +301,28 @@
 		<<saveNPC $_id "veteran_guard">>
 	<</if>>
 <<else>>
-    <<generateRole 2 "veteran" "guard">>
-    <<saveNPC 2 "veteran_guard">>
+	<<generateRole 2 "veteran" "guard">>
+	<<saveNPC 2 "veteran_guard">>
 <</if>>
 <</widget>>
 
 <<widget "generate_methodical_guard">>
 <<if $prison_intro is 1>>
-    <<loadNPC _args[0] "methodical_guard">>
+	<<loadNPC _args[0] "methodical_guard">>
 <<else>>
-    <<generateRole 3 "methodical" "guard">>
-    <<saveNPC 3 "methodical_guard">>
+	<<generateRole 3 "methodical" "guard">>
+	<<saveNPC 3 "methodical_guard">>
 <</if>>
 <</widget>>
 
 <<widget "generate_scarred_inmate">>
 <<if $prison_intro is 1>>
-    <<set $_id to _args[0]>>
-    <<loadNPC $_id "scarred_inmate">>
+	<<set $_id to _args[0]>>
+	<<loadNPC $_id "scarred_inmate">>
 	<<if $per_npc.scarred_inmate and !$per_npc.scarred_inmate.description>>
 		<!-- Fix for the scarred inmate being saved over as an empty NPCList object in some saves -->
 		<<clearsinglenpc $_id>>
-        <<generateRole $_id "scarred" "inmate">>
+		<<generateRole $_id "scarred" "inmate">>
 		<<if $per_npc.scarred_inmate.name_known is 1>>
 			<<set $NPCList[$_id].name_known to 1>>
 			<<set $NPCList[$_id].fullDescription to $NPCList[0].name>>
@@ -331,102 +331,102 @@
 		<<saveNPC $_id "scarred_inmate">>
 	<</if>>
 <<else>>
-    <<generateRole 4 "scarred" "inmate">>
-    <<saveNPC 4 "scarred_inmate">>
+	<<generateRole 4 "scarred" "inmate">>
+	<<saveNPC 4 "scarred_inmate">>
 <</if>>
 <</widget>>
 
 <<widget "generate_tattooed_inmate">>
 <<if $prison_intro is 1>>
-    <<loadNPC _args[0] "tattooed_inmate">>
+	<<loadNPC _args[0] "tattooed_inmate">>
 <<else>>
-    <<generate6>>
-    <<set $NPCList[5].description to "tattooed">>
-    <<set $NPCList[5].role to "inmate">>
+	<<generate6>>
+	<<set $NPCList[5].description to "tattooed">>
+	<<set $NPCList[5].role to "inmate">>
 	<<npcClothesType $NPCList[0] "prison">>
-    <<saveNPC 5 "tattooed_inmate">>
+	<<saveNPC 5 "tattooed_inmate">>
 <</if>>
 <</widget>>
 
 <<widget "save_relaxed_guard">>/*The right NPC fill $NPCList[0] slot */
 <<if $NPCList[0].role is "guard">>
-    <<set $NPCList[0].fullDescription to $NPCList[0].name>>
+	<<set $NPCList[0].fullDescription to $NPCList[0].name>>
 	<<npcClothesType $NPCList[0] "security">>
-    <<clearNPC "relaxed_guard">>
-    <<saveNPC 0 "relaxed_guard">>
-    <<prison_feat_check>>
+	<<clearNPC "relaxed_guard">>
+	<<saveNPC 0 "relaxed_guard">>
+	<<prison_feat_check>>
 <</if>>
 <</widget>>
 
 <<widget "save_anxious_guard">>
 <<if $NPCList[0].role is "guard">>
-    <<set $NPCList[0].fullDescription to $NPCList[0].name>>
+	<<set $NPCList[0].fullDescription to $NPCList[0].name>>
 	<<npcClothesType $NPCList[0] "security">>
-    <<clearNPC "anxious_guard">>
-    <<saveNPC 0 "anxious_guard">>
-    <<prison_feat_check>>
+	<<clearNPC "anxious_guard">>
+	<<saveNPC 0 "anxious_guard">>
+	<<prison_feat_check>>
 <</if>>
 <</widget>>
 
 <<widget "save_veteran_guard">>
 <<if $NPCList[0].role is "guard">>
-    <<set $NPCList[0].fullDescription to $NPCList[0].name>>
+	<<set $NPCList[0].fullDescription to $NPCList[0].name>>
 	<<npcClothesType $NPCList[0] "security">>
-    <<clearNPC "veteran_guard">>
-    <<saveNPC 0 "veteran_guard">>
-    <<prison_feat_check>>
+	<<clearNPC "veteran_guard">>
+	<<saveNPC 0 "veteran_guard">>
+	<<prison_feat_check>>
 <</if>>
 <</widget>>
 
 <<widget "save_methodical_guard">>
 <<if $NPCList[0].role is "guard">>
-    <<set $NPCList[0].fullDescription to $NPCList[0].name>>
+	<<set $NPCList[0].fullDescription to $NPCList[0].name>>
 	<<npcClothesType $NPCList[0] "security">>
-    <<clearNPC "methodical_guard">>
-    <<saveNPC 0 "methodical_guard">>
-    <<prison_feat_check>>
+	<<clearNPC "methodical_guard">>
+	<<saveNPC 0 "methodical_guard">>
+	<<prison_feat_check>>
 <</if>>
 <</widget>>
 
 <<widget "save_scarred_inmate">>
 <<if $NPCList[0].role is "inmate">>
-    <<set $NPCList[0].fullDescription to $NPCList[0].name>>
+	<<set $NPCList[0].fullDescription to $NPCList[0].name>>
 	<<npcClothesType $NPCList[0] "security">>
-    <<clearNPC "scarred_inmate">>
-    <<saveNPC 0 "scarred_inmate">>
-    <<prison_feat_check>>
+	<<clearNPC "scarred_inmate">>
+	<<saveNPC 0 "scarred_inmate">>
+	<<prison_feat_check>>
 <</if>>
 <</widget>>
 
 <<widget "save_tattooed_inmate">>
 <<if $NPCList[0].role is "inmate">>
-    <<set $NPCList[0].fullDescription to $NPCList[0].name>>
+	<<set $NPCList[0].fullDescription to $NPCList[0].name>>
 	<<npcClothesType $NPCList[0] "prison">>
-    <<clearNPC "tattooed_inmate">>
-    <<saveNPC 0 "tattooed_inmate">>
-    <<prison_feat_check>>
+	<<clearNPC "tattooed_inmate">>
+	<<saveNPC 0 "tattooed_inmate">>
+	<<prison_feat_check>>
 <</if>>
 <</widget>>
 
 <<widget "prison_feat_check">>
 <<if $per_npc.scarred_inmate.name_known is 1 and $per_npc.relaxed_guard.name_known is 1 and $per_npc.anxious_guard.name_known is 1 and $per_npc.veteran_guard.name_known is 1 and $per_npc.methodical_guard.name_known is 1>>
-    <<earnFeat "More than a Number">>
+	<<earnFeat "More than a Number">>
 <</if>>
 <</widget>>
 
 <<widget "relaxed_guard">>
 <<silently>>
 <<if $NPCList[_args[0]].name_known is 1>>
-    <<set _text_output to  $NPCList[_args[0]].name>>
+	<<set _text_output to $NPCList[_args[0]].name>>
 <<else>>
-    <<if _args[1] is "cap" or _args[1] is "capo">>
-        <<set _text_output to "the relaxed guard".toUpperFirst()>>
-    <<else>>
-        <<set _text_output to "the relaxed guard">>
-    <</if>>
+	<<if _args[1] is "cap" or _args[1] is "capo">>
+		<<set _text_output to "the relaxed guard".toUpperFirst()>>
+	<<else>>
+		<<set _text_output to "the relaxed guard">>
+	<</if>>
 <</if>>
 <<if _args[1] is "apo" or _args[1] is "capo">>
-    <<set _text_output += "'s">>
+	<<set _text_output += "'s">>
 <</if>>
 <</silently>>
 <span class="relaxed"><<print _text_output>></span>
@@ -435,16 +435,16 @@
 <<widget "anxious_guard">>
 <<silently>>
 <<if $NPCList[_args[0]].name_known is 1>>
-    <<set _text_output to $NPCList[_args[0]].name>>
+	<<set _text_output to $NPCList[_args[0]].name>>
 <<else>>
-    <<if _args[1] is "cap" or _args[1] is "capo">>
-        <<set _text_output to "the anxious guard".toUpperFirst()>>
-    <<else>>
-        <<set _text_output to "the anxious guard">>
-    <</if>>
+	<<if _args[1] is "cap" or _args[1] is "capo">>
+		<<set _text_output to "the anxious guard".toUpperFirst()>>
+	<<else>>
+		<<set _text_output to "the anxious guard">>
+	<</if>>
 <</if>>
 <<if _args[1] is "apo" or _args[1] is "capo">>
-    <<set _text_output += "'s">>
+	<<set _text_output += "'s">>
 <</if>>
 <</silently>>
 <span class="anxious"><<print _text_output>></span>
@@ -453,16 +453,16 @@
 <<widget "veteran_guard">>
 <<silently>>
 <<if $NPCList[_args[0]].name_known is 1>>
-    <<set _text_output to  $NPCList[_args[0]].name>>
+	<<set _text_output to $NPCList[_args[0]].name>>
 <<else>>
-    <<if _args[1] is "cap" or _args[1] is "capo">>
-        <<set _text_output to "the veteran guard".toUpperFirst()>>
-    <<else>>
-        <<set _text_output to "the veteran guard">>
-    <</if>>
+	<<if _args[1] is "cap" or _args[1] is "capo">>
+		<<set _text_output to "the veteran guard".toUpperFirst()>>
+	<<else>>
+		<<set _text_output to "the veteran guard">>
+	<</if>>
 <</if>>
 <<if _args[1] is "apo" or _args[1] is "capo">>
-    <<set _text_output += "'s">>
+	<<set _text_output += "'s">>
 <</if>>
 <</silently>>
 <span class="veteran"><<print _text_output>></span>
@@ -471,16 +471,16 @@
 <<widget "methodical_guard">>
 <<silently>>
 <<if $NPCList[_args[0]].name_known is 1>>
-    <<set _text_output to  $NPCList[_args[0]].name>>
+	<<set _text_output to $NPCList[_args[0]].name>>
 <<else>>
-    <<if _args[1] is "cap" or _args[1] is "capo">>
-        <<set _text_output to "the methodical guard".toUpperFirst()>>
-    <<else>>
-        <<set _text_output to "the methodical guard">>
-    <</if>>
+	<<if _args[1] is "cap" or _args[1] is "capo">>
+		<<set _text_output to "the methodical guard".toUpperFirst()>>
+	<<else>>
+		<<set _text_output to "the methodical guard">>
+	<</if>>
 <</if>>
 <<if _args[1] is "apo" or _args[1] is "capo">>
-    <<set _text_output += "'s">>
+	<<set _text_output += "'s">>
 <</if>>
 <</silently>>
 <span class="methodical"><<print _text_output>></span>
@@ -489,16 +489,16 @@
 <<widget "tattooed_inmate">>
 <<silently>>
 <<if $NPCList[_args[0]].name_known is 1>>
-    <<set _text_output to  $NPCList[_args[0]].name>>
+	<<set _text_output to $NPCList[_args[0]].name>>
 <<else>>
-    <<if _args[1] is "cap" or _args[1] is "capo">>
-        <<set _text_output to "the tattooed inmate".toUpperFirst()>>
-    <<else>>
-        <<set _text_output to "the tattooed inmate">>
-    <</if>>
+	<<if _args[1] is "cap" or _args[1] is "capo">>
+		<<set _text_output to "the tattooed inmate".toUpperFirst()>>
+	<<else>>
+		<<set _text_output to "the tattooed inmate">>
+	<</if>>
 <</if>>
 <<if _args[1] is "apo" or _args[1] is "capo">>
-    <<set _text_output += "'s">>
+	<<set _text_output += "'s">>
 <</if>>
 <</silently>>
 <span class="tattooed"><<print _text_output>></span>
@@ -507,16 +507,16 @@
 <<widget "scarred_inmate">>
 <<silently>>
 <<if $NPCList[_args[0]].name_known is 1>>
-    <<set _text_output to  $NPCList[_args[0]].name>>
+	<<set _text_output to $NPCList[_args[0]].name>>
 <<else>>
-    <<if _args[1] is "cap" or _args[1] is "capo">>
-        <<set _text_output to "the scarred inmate".toUpperFirst()>>
-    <<else>>
-        <<set _text_output to "the scarred inmate">>
-    <</if>>
+	<<if _args[1] is "cap" or _args[1] is "capo">>
+		<<set _text_output to "the scarred inmate".toUpperFirst()>>
+	<<else>>
+		<<set _text_output to "the scarred inmate">>
+	<</if>>
 <</if>>
 <<if _args[1] is "apo" or _args[1] is "capo">>
-    <<set _text_output += "'s">>
+	<<set _text_output += "'s">>
 <</if>>
 <</silently>>
 <span class="scarred"><<print _text_output>></span>
@@ -524,28 +524,28 @@
 
 <<widget "prison_sleep_options">>
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Prison Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Prison Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Prison Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Prison Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
-<<link [[Sleep for 8 hours|Prison Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Prison Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Prison Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Prison Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Prison Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Prison Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Prison Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Prison Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Prison Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Prison Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Prison Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Prison Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Prison Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Prison Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hours|Prison Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hours|Prison Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> (<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Prison Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Prison Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 
 <<link [[Climb out of bed|Prison Cell]]>><<storeon "prison bed">><<set $wardrobe_location to "prison">><<wardrobeSelection>><<loadTempHairStyle>><</link>>
@@ -605,28 +605,28 @@
 
 <<widget "prison_list_result">>
 <<switch $prison_punishment_number>>
-    <<case 2>>
-        <span class="red">Penance</span><<set $prison_punishment to "free use">>
-    <<case 3>>
-        <span class="pink">Judgement</span><<set $prison_punishment to "nude">>
-    <<case 4>>
-        <span class="purple">See no evil</span><<set $prison_punishment to "blindfold">>
-    <<case 5>>
-        <span class="blue">Devotion</span><<set $prison_punishment to "topless">>
-    <<case 6>>
-        <span class="lblue">Discipline</span><<set $prison_punishment to "leash">>
-    <<case 7>>
-        <span class="teal">Atonement</span><<set $prison_punishment to "underwear">>
-    <<case 8>>
-        <span class="lblue">Bondage</span><<set $prison_punishment to "cuffs">>
-    <<case 9>>
-        <span class="blue">Chastisement</span><<set $prison_punishment to "bottomless">>
-    <<case 10>>
-        <span class="purple">Speak no evil</span><<set $prison_punishment to "gag">>
-    <<case 11>>
-        <span class="pink">Do no evil</span><<set $prison_punishment to "bindings">>
-    <<default>>
-        <span class="red">Damnation</span><<set $prison_punishment to "rut">>
+	<<case 2>>
+		<span class="red">Penance</span><<set $prison_punishment to "free use">>
+	<<case 3>>
+		<span class="pink">Judgement</span><<set $prison_punishment to "nude">>
+	<<case 4>>
+		<span class="purple">See no evil</span><<set $prison_punishment to "blindfold">>
+	<<case 5>>
+		<span class="blue">Devotion</span><<set $prison_punishment to "topless">>
+	<<case 6>>
+		<span class="lblue">Discipline</span><<set $prison_punishment to "leash">>
+	<<case 7>>
+		<span class="teal">Atonement</span><<set $prison_punishment to "underwear">>
+	<<case 8>>
+		<span class="lblue">Bondage</span><<set $prison_punishment to "cuffs">>
+	<<case 9>>
+		<span class="blue">Chastisement</span><<set $prison_punishment to "bottomless">>
+	<<case 10>>
+		<span class="purple">Speak no evil</span><<set $prison_punishment to "gag">>
+	<<case 11>>
+		<span class="pink">Do no evil</span><<set $prison_punishment to "bindings">>
+	<<default>>
+		<span class="red">Damnation</span><<set $prison_punishment to "rut">>
 <</switch>>
 <</widget>>
 
@@ -686,117 +686,117 @@
 
 <<widget "destination_prison">>
 <<switch $bus>>
-    <<case "walkway">>
-        <<link [[Next|Prison Walkway]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "cell_block">>
-        <<link [[Next|Prison Block]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "medical">>
-        <<link [[Next|Prison Medical]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "shower">>
-        <<link [[Next|Prison Shower]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "canteen">>
-        <<link [[Next|Prison Canteen]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "laundry">>
-        <<link [[Next|Prison Laundry]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "spire">>
-        <<link [[Next|Prison Spire]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "library">>
-        <<link [[Next|Prison Library]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "chapel">>
-        <<link [[Next|Prison Chapel]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<case "yard">>
-        <<link [[Next|Prison Yard]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
-    <<default>>
-        <<link [[Next|Prison Cell]]>><<endevent>><<set $eventskip to 1>><</link>>
-        <br>
+	<<case "walkway">>
+		<<link [[Next|Prison Walkway]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "cell_block">>
+		<<link [[Next|Prison Block]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "medical">>
+		<<link [[Next|Prison Medical]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "shower">>
+		<<link [[Next|Prison Shower]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "canteen">>
+		<<link [[Next|Prison Canteen]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "laundry">>
+		<<link [[Next|Prison Laundry]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "spire">>
+		<<link [[Next|Prison Spire]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "library">>
+		<<link [[Next|Prison Library]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "chapel">>
+		<<link [[Next|Prison Chapel]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<case "yard">>
+		<<link [[Next|Prison Yard]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
+	<<default>>
+		<<link [[Next|Prison Cell]]>><<endevent>><<set $eventskip to 1>><</link>>
+		<br>
 <</switch>>
 <</widget>>
 
 <<widget "destination_prison_walkway">>
 <<if $prison.schedule is "lockdown" or $prison.schedule is "wake" or $hour is 6>>
-    You are escorted back to your cell.
-    <br><br>
-    <<link [[Next|Prison Cell]]>><<endevent>><</link>>
-    <br>
+	You are escorted back to your cell.
+	<br><br>
+	<<link [[Next|Prison Cell]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Prison Walkway]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Walkway]]>><<endevent>><</link>>
+	<br>
 <</if>>
 <</widget>>
 
 <<widget "prison_punishment_end">>
 <<if $prison.schedule is "lockdown">>
-    You return to the walkway. A few prisoners look up. <<relaxed_guard 1 cap>><<person2>> blows on a whistle, alerting others.
+	You return to the walkway. A few prisoners look up. <<relaxed_guard 1 cap>><<person2>> blows on a whistle, alerting others.
 <<else>>
-    You return to the walkway. You hear movement in the cells, and a groan of metal as inmates lean against the bars, peering into the gloom. <<relaxed_guard 1 cap>><<person2>> blows on a whistle as <<he>> slams on the lights, waking the others.
+	You return to the walkway. You hear movement in the cells, and a groan of metal as inmates lean against the bars, peering into the gloom. <<relaxed_guard 1 cap>><<person2>> blows on a whistle as <<he>> slams on the lights, waking the others.
 <</if>>
 <br><br>
 <</widget>>
 
 <<widget "prison_guard_watch">>
 <<switch _args[0]>>
-    <<case "relaxed">>
-        <<generate_relaxed_guard 0>><<person1>><<relaxed_guard 0 cap>> glances at you.
-    <<case "anxious">>
-        <<generate_anxious_guard 0>><<person1>><<anxious_guard 0 cap>>'s eyes flick over you.
-    <<case "veteran">>
-        <<generate_veteran_guard 0>><<person1>><<veteran_guard 0 cap>> watches you.
-    <<default>>
-        <<generate_methodical_guard 0>><<person1>><<methodical_guard 0 cap>> scrutinises you.
+	<<case "relaxed">>
+		<<generate_relaxed_guard 0>><<person1>><<relaxed_guard 0 cap>> glances at you.
+	<<case "anxious">>
+		<<generate_anxious_guard 0>><<person1>><<anxious_guard 0 cap>>'s eyes flick over you.
+	<<case "veteran">>
+		<<generate_veteran_guard 0>><<person1>><<veteran_guard 0 cap>> watches you.
+	<<default>>
+		<<generate_methodical_guard 0>><<person1>><<methodical_guard 0 cap>> scrutinises you.
 <</switch>>
 
 <<if $prison.active_punishments.includes("free use") and $worn.neck.name isnot "free use collar" and $worn.neck.name isnot "free use collar with leash">>
-    "Where's your collar?" <<he>> asks. "Best come with me."
-    <<set $phase to 1>>
+	"Where's your collar?" <<he>> asks. "Best come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("nude") and ($worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked")>>
-    "Aren't you supposed to be naked?" <<he>> asks. "Come with me."
-    <<set $phase to 1>>
+	"Aren't you supposed to be naked?" <<he>> asks. "Come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("blindfold") and !$worn.face.type.includes("blindfold")>>
-    "Where's your blindfold?" <<he>> asks. "Best come with me."
-    <<set $phase to 1>>
+	"Where's your blindfold?" <<he>> asks. "Best come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("topless") and ($worn.upper.name isnot "naked" or $worn.under_upper.name isnot "naked")>>
-    "You're supposed to be topless," <<he>> says. "Come with me."
-    <<set $phase to 1>>
+	"You're supposed to be topless," <<he>> says. "Come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("bottomless") and ($worn.lower.name isnot "naked" or $worn.under_lower.name isnot "naked")>>
-    "You're supposed to be bottomless," <<he>> says. "Come with me."
-    <<set $phase to 1>>
+	"You're supposed to be bottomless," <<he>> says. "Come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("leash") and $worn.neck.collared isnot 1>>
-    "Where's your leash?" <<he>> asks. "Come with me."
-    <<set $phase to 1>>
+	"Where's your leash?" <<he>> asks. "Come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("underwear") and ($worn.upper.name isnot "naked" or $worn.lower.name isnot "naked")>>
-    "That doesn't look like underwear," <<he>> says. "Come with me."
-    <<set $phase to 1>>
+	"That doesn't look like underwear," <<he>> says. "Come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("cuffs") and !$worn.feet.type.includes("shackle")>>
-    "Where is your shackle?" <<he>> asks. "Come with me."
-    <<set $phase to 1>>
+	"Where is your shackle?" <<he>> asks. "Come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("gag") and !$worn.face.type.includes("gag")>>
-    "Where's your gag?" <<he>> asks. "Come with me."
-    <<set $phase to 1>>
+	"Where's your gag?" <<he>> asks. "Come with me."
+	<<set $phase to 1>>
 <<elseif $prison.active_punishments.includes("bindings") and ($leftarm isnot "bound" or $rightarm isnot "bound")>>
-    "Your arms aren't supposed to be free," <<he>> says. "Come with me."
-    <<set $phase to 1>>
+	"Your arms aren't supposed to be free," <<he>> says. "Come with me."
+	<<set $phase to 1>>
 <<elseif $worn.feet.type.includes("shackle") and !$prison.active_punishments.includes("cuffs")>>
-    "Where'd you get that?" <<he>> asks, looking at your shackle. <<He>> pulls a key from <<his>> pocket.
-    <<set $phase to 2>>
+	"Where'd you get that?" <<he>> asks, looking at your shackle. <<He>> pulls a key from <<his>> pocket.
+	<<set $phase to 2>>
 <<elseif $worn.neck.type.includes("leash") and !$prison.active_punishments.includes("leash")>>
-    "You're not supposed to be leashed," <<he>> says, pulling a pair of pliers from <<his>> pocket.
-    <<set $phase to 3>>
+	"You're not supposed to be leashed," <<he>> says, pulling a pair of pliers from <<his>> pocket.
+	<<set $phase to 3>>
 <<elseif !$prison.active_punishments.includes("blindfold") and $worn.face.type.includes("blindfold")>>
-    "Time to remove that blindfold," <<he>> says. You hear <<him>> walk closer.
-    <<set $phase to 4>>
+	"Time to remove that blindfold," <<he>> says. You hear <<him>> walk closer.
+	<<set $phase to 4>>
 <<elseif !$prison.active_punishments.includes("gag") and $worn.face.type.includes("gag")>>
-    "Time to remove that gag," <<he>> says, walking closer.
-    <<set $phase to 5>>
+	"Time to remove that gag," <<he>> says, walking closer.
+	<<set $phase to 5>>
 <<else>>
 	<<switch _args[0]>>
 		<<case "relaxed">>
@@ -808,25 +808,25 @@
 		<<default>>
 			<<He>> looks away, seeming satisfied.
 	<</switch>>
-    <<set $phase to 0>>
+	<<set $phase to 0>>
 <</if>>
 <br><br>
 <<if $phase is 5>>
-    <<link [["Let " + $NPCList[0].pronouns.him + " remove the gag"|Prison Remove Gag]]>><</link>>
-    <br>
+	<<link [["Let " + $NPCList[0].pronouns.him + " remove the gag"|Prison Remove Gag]]>><</link>>
+	<br>
 <<elseif $phase is 4>>
-    <<link [["Let " + $NPCList[0].pronouns.him + " remove the blindfold"|Prison Remove Blindfold]]>><</link>>
-    <br>
+	<<link [["Let " + $NPCList[0].pronouns.him + " remove the blindfold"|Prison Remove Blindfold]]>><</link>>
+	<br>
 <<elseif $phase is 3>>
-    <<link [["Let " + $NPCList[0].pronouns.him + " remove the leash"|Prison Remove Leash]]>><</link>>
-    <br>
+	<<link [["Let " + $NPCList[0].pronouns.him + " remove the leash"|Prison Remove Leash]]>><</link>>
+	<br>
 <<elseif $phase is 2>>
-    <<link [["Let " + $NPCList[0].pronouns.him + " remove the " + $worn.feet.name|Prison Remove Cuffs]]>><</link>>
-    <br>
+	<<link [["Let " + $NPCList[0].pronouns.him + " remove the " + $worn.feet.name|Prison Remove Cuffs]]>><</link>>
+	<br>
 <<elseif $phase is 1>>
-    <<prison_repunishment_options>>
+	<<prison_repunishment_options>>
 <<else>>
-    <<destination_prison>>
+	<<destination_prison>>
 <</if>>
 
 <</widget>>
@@ -924,314 +924,314 @@
 <<unset $prison_punishment>>
 <<unset $prison_punishment_number>>
 <<if $prison.active_punishments.includes("nude")>>
-    <<if !$prison.active_punishments.includes("topless")>>
-        <<set $prison.active_punishments.push("topless")>>
-    <</if>>
-    <<if !$prison.active_punishments.includes("bottomless")>>
-        <<set $prison.active_punishments.push("bottomless")>>
-    <</if>>
-    <<if !$prison.active_punishments.includes("underwear")>>
-        <<set $prison.active_punishments.push("underwear")>>
-    <</if>>
+	<<if !$prison.active_punishments.includes("topless")>>
+		<<set $prison.active_punishments.push("topless")>>
+	<</if>>
+	<<if !$prison.active_punishments.includes("bottomless")>>
+		<<set $prison.active_punishments.push("bottomless")>>
+	<</if>>
+	<<if !$prison.active_punishments.includes("underwear")>>
+		<<set $prison.active_punishments.push("underwear")>>
+	<</if>>
 <<elseif $prison.active_punishments.includes("topless") and $prison.active_punishments.includes("bottomless")>>
-    <<if !$prison.active_punishments.includes("nude")>>
-        <<set $prison.active_punishments.push("nude")>>
-    <</if>>
-    <<if !$prison.active_punishments.includes("underwear")>>
-        <<set $prison.active_punishments.push("underwear")>>
-    <</if>>
+	<<if !$prison.active_punishments.includes("nude")>>
+		<<set $prison.active_punishments.push("nude")>>
+	<</if>>
+	<<if !$prison.active_punishments.includes("underwear")>>
+		<<set $prison.active_punishments.push("underwear")>>
+	<</if>>
 <</if>>
 <</widget>>
 
 <<widget "events_prison_triggered">>
 <<if $prison_event_trigger is "one">>
-    <<if $leftarm is "bound" and $rightarm is "bound">>
-        <span class="blue">It's hard to defend yourself with your arms bound.</span>
-        <br>
-    <<else>>
-        <<link [[Shove|Prison Shove]]>><</link>><<physiquedifficulty 1 16000>>
-        <br>
-    <</if>>
-    <<link [[Stay still|Prison Still]]>><</link>><<difficulty 50>>
-    <br>
+	<<if $leftarm is "bound" and $rightarm is "bound">>
+		<span class="blue">It's hard to defend yourself with your arms bound.</span>
+		<br>
+	<<else>>
+		<<link [[Shove|Prison Shove]]>><</link>><<physiquedifficulty 1 16000>>
+		<br>
+	<</if>>
+	<<link [[Stay still|Prison Still]]>><</link>><<difficulty 50>>
+	<br>
 <<elseif $prison_event_trigger is "two">>
-    <<if $worn.feet.type.includes("shackle")>>
-        <span class="blue">It's hard to defend yourself with your ankle cuffed.</span>
-        <br>
-    <<else>>
-        <<link [[Kick|Prison Kick]]>><</link>><<athleticsdifficulty 1 1000>>
-        <br>
-    <</if>>
-    <<link [[Endure|Prison Endure]]>><<trauma 6>><<stress 6>><<arousal 600>><</link>><<difficulty 70>><<gtrauma>><<gstress>><<garousal>>
-    <br>
+	<<if $worn.feet.type.includes("shackle")>>
+		<span class="blue">It's hard to defend yourself with your ankle cuffed.</span>
+		<br>
+	<<else>>
+		<<link [[Kick|Prison Kick]]>><</link>><<athleticsdifficulty 1 1000>>
+		<br>
+	<</if>>
+	<<link [[Endure|Prison Endure]]>><<trauma 6>><<stress 6>><<arousal 600>><</link>><<difficulty 70>><<gtrauma>><<gstress>><<garousal>>
+	<br>
 <<elseif $prison_event_trigger is "three">>
-    <<set $skulduggerydifficulty to random(500, 1000)>>
-    <<link [[Hide|Prison Hide]]>><</link>><<skulduggerydifficulty>>
-    <br>
-    <<link [[Confront|Prison Confront]]>><<pain -8>><</link>><<llpain>>
-    <br>
+	<<set $skulduggerydifficulty to random(500, 1000)>>
+	<<link [[Hide|Prison Hide]]>><</link>><<skulduggerydifficulty>>
+	<br>
+	<<link [[Confront|Prison Confront]]>><<pain -8>><</link>><<llpain>>
+	<br>
 <<elseif $prison_event_trigger is "hunt">>
-    <<link [[Go quietly|Prison Punishment]]>><</link>>
-    <br>
-    <<if $prison.shock is 1>>
-        <<link [[Fight|Prison Punishment Shock]]>><</link>>
-        <br>
-    <<else>>
-        <<link [[Fight|Prison Punishment Fight]]>><<set $fightstart to 1>><</link>>
-        <br>
-    <</if>>
+	<<link [[Go quietly|Prison Punishment]]>><</link>>
+	<br>
+	<<if $prison.shock is 1>>
+		<<link [[Fight|Prison Punishment Shock]]>><</link>>
+		<br>
+	<<else>>
+		<<link [[Fight|Prison Punishment Fight]]>><<set $fightstart to 1>><</link>>
+		<br>
+	<</if>>
 <<else>>
-    <<link [[Next|Prison Rape]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	<<link [[Next|Prison Rape]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <</if>>
 <<unset $prison_event_trigger>>
 <</widget>>
 
 <<widget "events_prison">>
 <<if $prison.schedule is "hunt">>
-    <<set $prison.schedule to "free time">>
-    <<generate_anxious_guard 0>>
-    <<person1>>
-    "I've found <<phim>>," shouts <<anxious_guard 0>> from behind. You turn, and see the guard marching towards you.
-    <br><br>
-    <<set $prison.hours_worked to 0>>
-    <<set $prison_event_trigger to "hunt">>
-    <<set $prison.morning to 1>>
+	<<set $prison.schedule to "free time">>
+	<<generate_anxious_guard 0>>
+	<<person1>>
+	"I've found <<phim>>," shouts <<anxious_guard 0>> from behind. You turn, and see the guard marching towards you.
+	<br><br>
+	<<set $prison.hours_worked to 0>>
+	<<set $prison_event_trigger to "hunt">>
+	<<set $prison.morning to 1>>
 <<elseif $prison.schedule is "revolt">>
-    <<prison_attention 1>>
-    Anarchy reigns throughout the prison.
-    <br><br>
+	<<prison_attention 1>>
+	Anarchy reigns throughout the prison.
+	<br><br>
 <<elseif ($worn.neck.name is "free use collar" or $worn.neck.name is "free use collar with leash") and random(1, 2) is 2>>
-    <<set _rng to random(1, 5)>>
-    <<switch _rng>>
-        <<case 1>>
-            <<generate1>><<person1>>
-            A <<person>> wearing a torn inmate's uniform grasps your collar, and leans forward to read it.
-            <br><br>
-            <<set $prison_event_trigger to "one">>
-        <<case 2>>
-            <<generate1>><<generate2>><<person1>>
-            <<if $leftarm is "bound" and $rightarm is "bound">>
-                A <<person2>><<person>> steps in front of you, while a <<person1>><<person>> grasps your hair from behind.
-            <<else>>
-                A <<person2>><<person>>, steps in front of you, while a <<person1>><<person>> grasps your arms from behind.
-            <</if>>
-            "It's our turn, slut."
-            <br><br>
-            <<set $prison_event_trigger to "two">>
-        <<case 3>>
-            <<generate1>><<generate2>><<generate3>><<person1>>
-            You hear approaching voices.
-            <<if random(1, 2) is 2>>
-                "Let's find that free use slut," says one.
-            <<else>>
-                "Let's find that whore the guards marked for us," says one.
-            <</if>>
-            <br>
-            <<if random(1, 2) is 2>>
-                "Good plan," says another.
-            <<else>>
-                "Almost makes being locked up worth it," says another.
-            <</if>>
-            <br>
-            <<if random(1, 2) is 2>>
-                <<if $NPCList[2].penis isnot "none">>
-                    "I'm itching to empty my cum in something," says a third.
-                <<else>>
-                    "Can't wait. My pussy's aching," says a third.
-                <</if>>
-            <<else>>
-                "I'd make that one my bitch, but it's too much hassle," says a third.
-            <</if>>
-            <br><br>
-            <<set $prison_event_trigger to "three">>            
-        <<case 4>>
-            Eyes are drawn to the "free use" sign hanging around your neck. No one acts, but you know they want to.<<ggattention>><<prison_attention 2>>
-            <br><br>
-        <<default>>
-            A rowdy group of inmates approach.
-            <<if $leftarm is "bound" and $rightarm is "bound">>
-                You want to cover the "free use" sign with your hand, but they're bound too tight. Their hungry eyes take in your collar, then swarm over your body.<<gggattention>><<prison_attention 3>><<gstress>><<stress 6>>
-            <<else>>
-                You cover the "free use" sign with your hand.
-            <</if>>
-            <br><br>
-    <</switch>>
+	<<set _rng to random(1, 5)>>
+	<<switch _rng>>
+		<<case 1>>
+			<<generate1>><<person1>>
+			A <<person>> wearing a torn inmate's uniform grasps your collar, and leans forward to read it.
+			<br><br>
+			<<set $prison_event_trigger to "one">>
+		<<case 2>>
+			<<generate1>><<generate2>><<person1>>
+			<<if $leftarm is "bound" and $rightarm is "bound">>
+				A <<person2>><<person>> steps in front of you, while a <<person1>><<person>> grasps your hair from behind.
+			<<else>>
+				A <<person2>><<person>>, steps in front of you, while a <<person1>><<person>> grasps your arms from behind.
+			<</if>>
+			"It's our turn, slut."
+			<br><br>
+			<<set $prison_event_trigger to "two">>
+		<<case 3>>
+			<<generate1>><<generate2>><<generate3>><<person1>>
+			You hear approaching voices.
+			<<if random(1, 2) is 2>>
+				"Let's find that free use slut," says one.
+			<<else>>
+				"Let's find that whore the guards marked for us," says one.
+			<</if>>
+			<br>
+			<<if random(1, 2) is 2>>
+				"Good plan," says another.
+			<<else>>
+				"Almost makes being locked up worth it," says another.
+			<</if>>
+			<br>
+			<<if random(1, 2) is 2>>
+				<<if $NPCList[2].penis isnot "none">>
+					"I'm itching to empty my cum in something," says a third.
+				<<else>>
+					"Can't wait. My pussy's aching," says a third.
+				<</if>>
+			<<else>>
+				"I'd make that one my bitch, but it's too much hassle," says a third.
+			<</if>>
+			<br><br>
+			<<set $prison_event_trigger to "three">>
+		<<case 4>>
+			Eyes are drawn to the "free use" sign hanging around your neck. No one acts, but you know they want to.<<ggattention>><<prison_attention 2>>
+			<br><br>
+		<<default>>
+			A rowdy group of inmates approach.
+			<<if $leftarm is "bound" and $rightarm is "bound">>
+				You want to cover the "free use" sign with your hand, but they're bound too tight. Their hungry eyes take in your collar, then swarm over your body.<<gggattention>><<prison_attention 3>><<gstress>><<stress 6>>
+			<<else>>
+				You cover the "free use" sign with your hand.
+			<</if>>
+			<br><br>
+	<</switch>>
 <<elseif $worn.face.type.includes("blindfold")>>
-    <<set _rng to random(1, 5)>>
-    You can't see where you're going.
-    <<switch _rng>>
-        <<case 1>>
-            You walk right into something, and fall back on your <<bottom>>. Laughter surrounds you.<<gattention prison>><<prison_attention 1>><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
-            <br><br>
-        <<case 2>>
-            <<generate1>><<person1>>
-            <<if currentSkillValue('skulduggery') gte random(1, 1000)>>
-                <<if $leftarm is "bound" and $rightarm is "bound">>
-                    <<if $worn.feet.type.includes("shackle")>>
-                        <span class="green">You hear light footsteps behind.</span> You can't defend yourself with your arms bound. You try to hasten away, <span class="red">but your shackle slows you.</span> You're helpless to resist as <<he>> grasps your <<breasts>>.
-                        <<set $prison_event_trigger to "rape">>
-                    <<else>>
-                        <span class="green">You hear light footsteps behind.</span> Someone's trying to sneak up on you. You hasten away before <<he>> accomplishes any devilry.
-                        <<endevent>>
-                    <</if>>
-                <<else>>
-                    <span class="green">You hear light footsteps behind.</span> Someone's trying to sneak up on you. You turn and smack <<him>> before <<he>> accomplishes any devilry.
-                    <<endevent>>
-                <</if>>
-            <<else>>
-                <span class="red">Someone sneaks up on you,</span> and grasps your <<breasts>>. You twist and bat <<him>> away.<<ggattention>><<prison_attention 2>><<gtrauma>><<trauma 6>><<gstress>><<stress 6>><<garousal>><<arousal 600>>
-                <<endevent>>
-            <</if>>
-            <br><br>
-        <<case 3>>
-            You trip, and land with your <<bottom>> stuck in the air.<<gpain>><<gattention prison>><<pain 4>><<prison_attention 4>>
-            <br><br>
-        <<case 4>>
-            You walk deliberately, careful not to trip.
-            <br><br>
-        <<default>>
-            You stumble, but manage to stay on your feet.
-            <br><br>
-    <</switch>>
+	<<set _rng to random(1, 5)>>
+	You can't see where you're going.
+	<<switch _rng>>
+		<<case 1>>
+			You walk right into something, and fall back on your <<bottom>>. Laughter surrounds you.<<gattention prison>><<prison_attention 1>><<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
+			<br><br>
+		<<case 2>>
+			<<generate1>><<person1>>
+			<<if currentSkillValue('skulduggery') gte random(1, 1000)>>
+				<<if $leftarm is "bound" and $rightarm is "bound">>
+					<<if $worn.feet.type.includes("shackle")>>
+						<span class="green">You hear light footsteps behind.</span> You can't defend yourself with your arms bound. You try to hasten away, <span class="red">but your shackle slows you.</span> You're helpless to resist as <<he>> grasps your <<breasts>>.
+						<<set $prison_event_trigger to "rape">>
+					<<else>>
+						<span class="green">You hear light footsteps behind.</span> Someone's trying to sneak up on you. You hasten away before <<he>> accomplishes any devilry.
+						<<endevent>>
+					<</if>>
+				<<else>>
+					<span class="green">You hear light footsteps behind.</span> Someone's trying to sneak up on you. You turn and smack <<him>> before <<he>> accomplishes any devilry.
+					<<endevent>>
+				<</if>>
+			<<else>>
+				<span class="red">Someone sneaks up on you,</span> and grasps your <<breasts>>. You twist and bat <<him>> away.<<ggattention>><<prison_attention 2>><<gtrauma>><<trauma 6>><<gstress>><<stress 6>><<garousal>><<arousal 600>>
+				<<endevent>>
+			<</if>>
+			<br><br>
+		<<case 3>>
+			You trip, and land with your <<bottom>> stuck in the air.<<gpain>><<gattention prison>><<pain 4>><<prison_attention 4>>
+			<br><br>
+		<<case 4>>
+			You walk deliberately, careful not to trip.
+			<br><br>
+		<<default>>
+			You stumble, but manage to stay on your feet.
+			<br><br>
+	<</switch>>
 <<elseif $exposed gte 2 and random(1, 2) is 2>>
-    <<set _rng to random(1, 5)>>
-    <<switch _rng>>
-        <<case 1>>
-            A mass of rowdy inmates are coming your way, <span class="pink">and there's nowhere to hide.</span> <<covered>><<gggattention>><<prison_attention 3>><<gstress>><<stress 6>>
-            <br><br>
-        <<case 2>>
-            <<generate1>><<generate2>><<person1>>
-            You hide around a corner for a <<person>> and <<person2>><<person>> to pass.
-            <<endevent>>
-            <br><br>
-        <<case 3>>
-            Eyes are drawn to your nudity. <<covered>><<ggattention>><<prison_attention 2>><<gstress>><<stress 6>>
-            <br><br>
-        <<case 4>>
-            <<generate1>><<generate2>><<person1>>
-            You hide around a corner for a <<person>> and <<person2>><<person>> to pass, <span class="purple">but they turn your way instead.</span> <<covered>> You endure their leers.<<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
-            <<endevent>>
-            <br><br>
-        <<default>>
-            A mass of rowdy inmates are coming your way. You turn and escape in the other direction.<<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
-            <br><br>
-    <</switch>>
+	<<set _rng to random(1, 5)>>
+	<<switch _rng>>
+		<<case 1>>
+			A mass of rowdy inmates are coming your way, <span class="pink">and there's nowhere to hide.</span> <<covered>><<gggattention>><<prison_attention 3>><<gstress>><<stress 6>>
+			<br><br>
+		<<case 2>>
+			<<generate1>><<generate2>>
+			You hide around a corner for a <<fullGroup>> to pass.
+			<<endevent>>
+			<br><br>
+		<<case 3>>
+			Eyes are drawn to your nudity. <<covered>><<ggattention>><<prison_attention 2>><<gstress>><<stress 6>>
+			<br><br>
+		<<case 4>>
+			<<generate1>><<generate2>>
+			You hide around a corner for a <<fullGroup>> to pass, <span class="purple">but they turn your way instead.</span> <<covered>> You endure their leers.<<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
+			<<endevent>>
+			<br><br>
+		<<default>>
+			A mass of rowdy inmates are coming your way. You turn and escape in the other direction.<<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
+			<br><br>
+	<</switch>>
 <<elseif $exposed is 1 and random(1, 4) is 4>>
-    <<set _rng to random(1, 5)>>
-    <<switch _rng>>
-        <<case 1>>
-            You're self-conscious about your state of dress, being the only one attired so.<<gstress>><<stress 6>>
-            <br><br>
-        <<case 2>>
-            Inmates keep leering at your bare skin. <<covered>><<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
-            <br><br>
-        <<case 3>>
-            <<generate1>><<person1>>
-            <<if $worn.lower.name isnot "naked">>
-                A <<person>> seizes the hem of your $worn.lower.name, and tugs, pulling it taut against your crotch.
-            <<elseif $worn.under_lower.name isnot "naked">>
-                A <<person>> seizes the hem of your $worn.under_lower.name, and tugs, pulling it taut against your crotch.
-            <<else>>
-                A <<person>> gropes your <<bottom>> as <<he>> passes.
-            <</if>>
-            <<if $physique gte random(1, $physiquemax)>>
-                You swat <<him>> away from you, <span class="green">and your hand connects with <<his>> face.</span> <<He>> staggers away.
-            <<else>>
-                You swat <<him>> away from you, <span class="red">but <<he>> dodges your blow.</span> At least you got <<his>> mitts off.<<gattention prison>><<prison_attention>><<gstress>><<stress 6>>
-            <</if>>
-            <<endevent>>
-            <br><br>
-        <<case 4>>
-            <<generate1>><<person1>>A <<person>> looks you over and calls you a whore as <<he>> passes.<<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
-            <<endevent>>
-            <br><br>
-        <<default>>
-            <<generate1>><<person1>>
-            A <<person>> points at you from some distance away, and the inmates around <<him>> laugh. <<covered>> <<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
-            <<endevent>>
-            <br>
-    <</switch>>
+	<<set _rng to random(1, 5)>>
+	<<switch _rng>>
+		<<case 1>>
+			You're self-conscious about your state of dress, being the only one attired so.<<gstress>><<stress 6>>
+			<br><br>
+		<<case 2>>
+			Inmates keep leering at your bare skin. <<covered>><<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
+			<br><br>
+		<<case 3>>
+			<<generate1>><<person1>>
+			<<if $worn.lower.name isnot "naked">>
+				A <<person>> seizes the hem of your $worn.lower.name, and tugs, pulling it taut against your crotch.
+			<<elseif $worn.under_lower.name isnot "naked">>
+				A <<person>> seizes the hem of your $worn.under_lower.name, and tugs, pulling it taut against your crotch.
+			<<else>>
+				A <<person>> gropes your <<bottom>> as <<he>> passes.
+			<</if>>
+			<<if currentSkillValue('physique') gte random(1, $physiquemax)>>
+				You swat <<him>> away from you, <span class="green">and your hand connects with <<his>> face.</span> <<He>> staggers away.
+			<<else>>
+				You swat <<him>> away from you, <span class="red">but <<he>> dodges your blow.</span> At least you got <<his>> mitts off.<<gattention prison>><<prison_attention>><<gstress>><<stress 6>>
+			<</if>>
+			<<endevent>>
+			<br><br>
+		<<case 4>>
+			<<generate1>><<person1>>A <<person>> looks you over and calls you a whore as <<he>> passes.<<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
+			<<endevent>>
+			<br><br>
+		<<default>>
+			<<generate1>><<person1>>
+			A <<person>> points at you from some distance away, and the inmates around <<him>> laugh. <<covered>> <<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>>
+			<<endevent>>
+			<br>
+	<</switch>>
 <<else>>
-    <<set _rng to random(1, 10)>>
-    <<switch _rng>>
-        <<case 1>>
-            <<generate1>><<generate2>><<person1>>
-            <<if $beauty gte random(1, $beautymax)>>
-                A <<person>> and <<person2>><<person>> openly leer as they walk by.<<gattention prison>><<prison_attention 1>>
-            <<else>>
-                A <<person>> and <<person2>><<person>> walk by, but pay you no mind.
-            <</if>>
-            <<endevent>>
-            <br><br>
-        <<case 2>>
-            <<generate1>><<person1>>
-            <<if $worn.neck.type.includes("leash")>>
-                A <<person>> grasps your leash and tugs, pulling you forward before you tug the length away from <<him>>.<<ggattention>><<prison_attention 2>>
-            <<else>>
-                A <<person>> grins. "The collar suits you," <<he>> says as <<he>> passes. "Bet you wore one on the outside."<<gattention prison>><<prison_attention 1>>
-            <</if>>
-            <<endevent>>
-            <br><br>        
-        <<case 3>>
-            <<if $worn.feet.type.includes("shackle")>>
-                You trip over broken stonework. You can't control your feet very well in the $worn.feet.name, and fall to the ground with your <<bottom>> in the air.<<gpain>><<gattention prison>><<pain 4>><<prison_attention 6>>
-            <<else>>
-                You trip over broken stonework, but manage to right yourself.
-            <</if>>
-            <br><br>
-        <<case 4>>
-            <<if $worn.face.type.includes("gag")>>
-                <<generate1>><<person1>>A <<person>> leers at your <<bottom>>. "You wouldn't mind if I had a feel, would you?" <<he>> asks. <span class="purple">You can't respond with the $worn.face.name in your mouth.</span> "Didn't think so."
-                <br><br>
-                <<He>> reaches around your waist, and gropes your rear.
-                <<if $leftarm is "bound" and $rightarm is "bound">>
-                    With your arms bound, all you can do is try to twist away, but <<he>> holds you firm.<<ggattention>><<prison_attention 2>><<gtrauma>><<trauma 6>><<gstress>><<stress 6>><<garousal>><<arousal 600>>
+	<<set _rng to random(1, 10)>>
+	<<switch _rng>>
+		<<case 1>>
+			<<generate1>><<generate2>><<person1>>
+			<<if $beauty gte random(1, $beautymax)>>
+				A <<fullGroup>> openly leer as they walk by.<<gattention prison>><<prison_attention 1>>
+			<<else>>
+				A <<fullGroup>> walk by, but pay you no mind.
+			<</if>>
+			<<endevent>>
+			<br><br>
+		<<case 2>>
+			<<generate1>><<person1>>
+			<<if $worn.neck.type.includes("leash")>>
+				A <<person>> grasps your leash and tugs, pulling you forward before you tug the length away from <<him>>.<<ggattention>><<prison_attention 2>>
+			<<else>>
+				A <<person>> grins. "The collar suits you," <<he>> says as <<he>> passes. "Bet you wore one on the outside."<<gattention prison>><<prison_attention 1>>
+			<</if>>
+			<<endevent>>
+			<br><br>
+		<<case 3>>
+			<<if $worn.feet.type.includes("shackle")>>
+				You trip over broken stonework. You can't control your feet very well in the $worn.feet.name, and fall to the ground with your <<bottom>> in the air.<<gpain>><<gattention prison>><<pain 4>><<prison_attention 6>>
+			<<else>>
+				You trip over broken stonework, but manage to right yourself.
+			<</if>>
+			<br><br>
+		<<case 4>>
+			<<if $worn.face.type.includes("gag")>>
+				<<generate1>><<person1>>A <<person>> leers at your <<bottom>>. "You wouldn't mind if I had a feel, would you?" <<he>> asks. <span class="purple">You can't respond with the $worn.face.name in your mouth.</span> "Didn't think so."
+				<br><br>
+				<<He>> reaches around your waist, and gropes your rear.
+				<<if $leftarm is "bound" and $rightarm is "bound">>
+					With your arms bound, all you can do is try to twist away, but <<he>> holds you firm.<<ggattention>><<prison_attention 2>><<gtrauma>><<trauma 6>><<gstress>><<stress 6>><<garousal>><<arousal 600>>
 					<br><br>
-                    <<He>> gives you a parting smack, and walks away.
-                <<else>>
-                    <<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>><<garousal>><<arousal 600>>
-                    <br><br>
-                <</if>>
-            <<else>>
-                <<generate1>><<person1>>
-                A <<person>> leers at your <<bottom>> as <<he>> walks by.<<gstress>><<stress 6>>
-            <</if>>
-            <br><br>
-            <<endevent>>
-        <<case 5>>
-            You feel a tremor underfoot.
-            <br><br>
-        <<case 6>>
-            <<generate1>><<person1>>A <<person>> stares at you from a distance. <<He>> doesn't look away when you make eye contact.<<gattention prison>><<prison_attention 1>>
-            <<endevent>>
-            <br><br>
-        <<case 7>>
-            Inmates cluster in groups of three or four, lost in furtive discussions.
-            <<if $skulduggery lt 400>>
-                You catch snippets of intrigue.<<gskulduggery>><<skulduggery 1>>
-            <<else>>
-                You catch snippets of intrigue. Amateur stuff.
-            <</if>>
-            <br><br>
-        <<case 8>>
-            <<if $hallucinations gte 2>>
-                The shadows have a life of their own.<<gstress>><<stress 6>>
-            <<else>>
-                The weak electric lights flicker.
-            <</if>>
-            <br><br>
-        <<case 9>>
-            You hear a screech far above.
-            <br><br>
-        <<default>>
-            <<if $beauty gte random(1, $beautymax)>>
-                Your looks draw attention.<<gattention prison>><<prison_attention 1>>
-            <<else>>
-                No one pays you any attention.
-            <</if>>
-            <br><br>
-    <</switch>>
+					<<He>> gives you a parting smack, and walks away.
+				<<else>>
+					<<gattention prison>><<prison_attention 1>><<gstress>><<stress 6>><<garousal>><<arousal 600>>
+					<br><br>
+				<</if>>
+			<<else>>
+				<<generate1>><<person1>>
+				A <<person>> leers at your <<bottom>> as <<he>> walks by.<<gstress>><<stress 6>>
+			<</if>>
+			<br><br>
+			<<endevent>>
+		<<case 5>>
+			You feel a tremor underfoot.
+			<br><br>
+		<<case 6>>
+			<<generate1>><<person1>>A <<person>> stares at you from a distance. <<He>> doesn't look away when you make eye contact.<<gattention prison>><<prison_attention 1>>
+			<<endevent>>
+			<br><br>
+		<<case 7>>
+			Inmates cluster in groups of three or four, lost in furtive discussions.
+			<<if $skulduggery lt 400>>
+				You catch snippets of intrigue.<<gskulduggery>><<skulduggery 1>>
+			<<else>>
+				You catch snippets of intrigue. Amateur stuff.
+			<</if>>
+			<br><br>
+		<<case 8>>
+			<<if $hallucinations gte 2>>
+				The shadows have a life of their own.<<gstress>><<stress 6>>
+			<<else>>
+				The weak electric lights flicker.
+			<</if>>
+			<br><br>
+		<<case 9>>
+			You hear a screech far above.
+			<br><br>
+		<<default>>
+			<<if $beauty gte random(1, $beautymax)>>
+				Your looks draw attention.<<gattention prison>><<prison_attention 1>>
+			<<else>>
+				No one pays you any attention.
+			<</if>>
+			<br><br>
+	<</switch>>
 <</if>>
 <</widget>>
 
@@ -1239,190 +1239,190 @@
 <<set $prison.attention to 0>>
 <<set $prison_attention_day to true>>
 <<if $prison.schedule is "revolt">>
-    The riotous noise quells. An inmate staggers by, and collapses. You find it hard to remain on your feet yourself. <span class="red">Something is wrong.</span>
-    <br><br>
-    
-    <<link [[Next|Prison Warden]]>><</link>>
-    <br>
+	The riotous noise quells. An inmate staggers by, and collapses. You find it hard to remain on your feet yourself. <span class="red">Something is wrong.</span>
+	<br><br>
+
+	<<link [[Next|Prison Warden]]>><</link>>
+	<br>
 <<elseif $prison.attention_level is 0>>
-    <<generate_scarred_inmate 0>>
-    <<generate_tattooed_inmate 1>>
-    <<generate3>><<generate4>><<generate5>><<generate6>><<person3>>
-    "I see <<phim>> boss," says a <<personsimple>>'s voice. You turn. <<tattooed_inmate 0 cap>> walks towards you, flanked by a <<person3>><<person>> and <<person4>><<person>>.
-    <br><br>
-    <<person2>><<He>> stops several feet away, and examines you from head to toe. "I need a new <<bitch>>," <<he>> says. There's not an inch of space free of the ink covering <<his>> visible body. "The old's all used up."
-    <br><br>
-    "You heard the boss," the <<person3>><<person>> says. <<He>> also wears tattoos, though far less than <<his>> boss. <<if $awareness gte 300>><span class="blue"><<He>> speaks in an odd monotone, as if <<his>> mind were elsewhere.</span><</if>> "Come 'ere."
-    <br><br>
-    <<link [[Go quietly|Prison Attention Quiet]]>><<set $prison.attention_level to 1>><<set $prison.attention to 0>><</link>>
-    <br>
-    <<link [[Refuse|Prison Attention Refuse]]>><<set $prison.attention_level to 1>><<set $prison.attention to 0>><</link>>
-    <br>
+	<<generate_scarred_inmate 0>>
+	<<generate_tattooed_inmate 1>>
+	<<generate3>><<generate4>><<generate5>><<generate6>><<person3>>
+	"I see <<phim>> boss," says a <<personsimple>>'s voice. You turn. <<tattooed_inmate 0 cap>> walks towards you, flanked by a <<person3>><<person>> and <<person4>><<person>>.
+	<br><br>
+	<<person2>><<He>> stops several feet away, and examines you from head to toe. "I need a new <<bitch>>," <<he>> says. There's not an inch of space free of the ink covering <<his>> visible body. "The old's all used up."
+	<br><br>
+	"You heard the boss," the <<person3>><<person>> says. <<He>> also wears tattoos, though far less than <<his>> boss. <<if $awareness gte 300>><span class="blue"><<He>> speaks in an odd monotone, as if <<his>> mind were elsewhere.</span><</if>> "Come 'ere."
+	<br><br>
+	<<link [[Go quietly|Prison Attention Quiet]]>><<set $prison.attention_level to 1>><<set $prison.attention to 0>><</link>>
+	<br>
+	<<link [[Refuse|Prison Attention Refuse]]>><<set $prison.attention_level to 1>><<set $prison.attention to 0>><</link>>
+	<br>
 <<elseif $prison.protection is "scarred">>
-    <<generate_veteran_guard 0>><<generate_scarred_inmate 1>><<person1>><<generate3>><<generate4>>
-    <<set $prison.protection to 0>>
-    <<if $leftarm is "bound" and $rightarm is "bound">>
-        A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Lean against the wall!"
-    <<else>>
-        A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Hands against the wall!"
-    <</if>>
-    <<He>> marches closer, baton at the ready. <span class="green">Then <<he>> pauses,</span> and looks over your shoulder.
-    <br><br>
-
-    <<scarred_inmate 1 cap>> arrives at your side. <<person3>>A <<person>> and <<person4>><<person>> flank <<person2>><<him>>. "Just the <<bitch>> I wanted to see," <<he>> says, giving your <<bottom>> a slap. <<He>> looks at <<veteran_guard 0>>. "What you want with <<phim>> anyway? Should I let the other guards know?"
-    <br><br>
-
-    <<veteran_guard 0 cap>> sneers, and walks away.
-    <br><br>
-
-    "See you later, slut," <<scarred_inmate 1>> says. <span class="red">You've lost the scarred inmate's protection.</span>
-    <br><br>
-    
-    <<destination_prison>>
-    
+	<<generate_veteran_guard 0>><<generate_scarred_inmate 1>><<person1>><<generate3>><<generate4>>
+	<<set $prison.protection to 0>>
+	<<if $leftarm is "bound" and $rightarm is "bound">>
+		A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Lean against the wall!"
+	<<else>>
+		A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Hands against the wall!"
+	<</if>>
+	<<He>> marches closer, baton at the ready. <span class="green">Then <<he>> pauses,</span> and looks over your shoulder.
+	<br><br>
+
+	<<scarred_inmate 1 cap>> arrives at your side. <<person3>>A <<person>> and <<person4>><<person>> flank <<person2>><<him>>. "Just the <<bitch>> I wanted to see," <<he>> says, giving your <<bottom>> a slap. <<He>> looks at <<veteran_guard 0>>. "What you want with <<phim>> anyway? Should I let the other guards know?"
+	<br><br>
+
+	<<veteran_guard 0 cap>> sneers, and walks away.
+	<br><br>
+
+	"See you later, slut," <<scarred_inmate 1>> says. <span class="red">You've lost the scarred inmate's protection.</span>
+	<br><br>
+
+	<<destination_prison>>
+
 <<elseif $prison.attention_level gte 1>>
-    <<generate_veteran_guard 0>><<person1>>
-    <<set $prison.protection to 0>>
-    <<if $leftarm is "bound" and $rightarm is "bound">>
-        A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Lean against the wall!"
-    <<else>>
-        A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Hands against the wall!"
-    <</if>>
-    <<He>> marches closer, baton at the ready. <span class="pink"><<He>> has something devious in mind.</span>
-    <br><br>
-
-    <<link [[Do as instructed|Prison Attention]]>><</link>>
-    <br>
-    <<link [[Fight|Prison Attention Fight Refuse]]>><</link>>
-    <br>
-    <<if $prison.kylar is "active">>
-        <<if $worn.face.type.includes("gag")>>
-            <span class="blue">Kylar would rescue you, but you can't call them with your mouth gagged.</span>
-            <br>
-        <<else>>
-            <<link [[Call Kylar|Prison Attention Kylar]]>><<set $prison.attention_level to 1>><<set $prison.attention to 0>><<set $prison.kylar to "solitary">><<set $prison_kylar_timer to 3>><</link>>
-            <br>
-        <</if>>
-    <<elseif $prison.kylar is "solitary">>
-        <span class="blue">Kylar can't help you from solitary.</span>
-        <br>
-    <</if>>
+	<<generate_veteran_guard 0>><<person1>>
+	<<set $prison.protection to 0>>
+	<<if $leftarm is "bound" and $rightarm is "bound">>
+		A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Lean against the wall!"
+	<<else>>
+		A harsh voice rings out. "Prisoner," <<veteran_guard 0>> says. "Hands against the wall!"
+	<</if>>
+	<<He>> marches closer, baton at the ready. <span class="pink"><<He>> has something devious in mind.</span>
+	<br><br>
+
+	<<link [[Do as instructed|Prison Attention]]>><</link>>
+	<br>
+	<<link [[Fight|Prison Attention Fight Refuse]]>><</link>>
+	<br>
+	<<if $prison.kylar is "active">>
+		<<if $worn.face.type.includes("gag")>>
+			<span class="blue">Kylar would rescue you, but you can't call them with your mouth gagged.</span>
+			<br>
+		<<else>>
+			<<link [[Call Kylar|Prison Attention Kylar]]>><<set $prison.attention_level to 1>><<set $prison.attention to 0>><<set $prison.kylar to "solitary">><<set $prison_kylar_timer to 3>><</link>>
+			<br>
+		<</if>>
+	<<elseif $prison.kylar is "solitary">>
+		<span class="blue">Kylar can't help you from solitary.</span>
+		<br>
+	<</if>>
 <</if>>
 <</widget>>
 
 <<widget "prison_laundry_options">>
 <<endevent>>
 <<if $hour is 12>>
-    <<generate_relaxed_guard 0>><<person1>>"Shift over," <<relaxed_guard 0>> shouts. "Lunch time."
-    <br><br>
-    You shuffle from the room with the other inmates.
-    <br><br>
+	<<generate_relaxed_guard 0>><<person1>>"Shift over," <<relaxed_guard 0>> shouts. "Lunch time."
+	<br><br>
+	You shuffle from the room with the other inmates.
+	<br><br>
 
-    <<link [[Next|Prison Block]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Block]]>><<endevent>><</link>>
+	<br>
 <<elseif $hour is 18>>
-    <<generate_relaxed_guard 0>><<person1>>"Shift over," <<relaxed_guard 0>> shouts. "Dinner time."
-    <br><br>
-    You shuffle from the room with the other inmates.
-    <br><br>
+	<<generate_relaxed_guard 0>><<person1>>"Shift over," <<relaxed_guard 0>> shouts. "Dinner time."
+	<br><br>
+	You shuffle from the room with the other inmates.
+	<br><br>
 
-    <<link [[Next|Prison Block]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Block]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<link [[Work hard (1:00)|Prison Laundry Work Hard]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>><<if $statdisable is "f">> | <span class="green">Will give opportunities to reduce suspicion.</span><</if>>
-    <br>
-    <<link [[Socialise with inmates (1:00)|Prison Laundry Work Socialise]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>><<if $statdisable is "f">> | <span class="green">Will give opportunities to raise respect.</span><</if>>
-    <br>
-    <<if $prison_relaxed_spoke isnot 1>>
-        <<link [[Speak with guard (1:00)|Prison Laundry Work Chat]]>><</link>><<if $statdisable is "f">> | <span class="green">Will give opportunities to raise love.</span><</if>>
-        <br>
-    <</if>>
-    <<link [[Stop|Prison Laundry]]>><</link>>
-    <br>
+	<<link [[Work hard (1:00)|Prison Laundry Work Hard]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>><<if $statdisable is "f">> | <span class="green">Will give opportunities to reduce suspicion.</span><</if>>
+	<br>
+	<<link [[Socialise with inmates (1:00)|Prison Laundry Work Socialise]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>><<if $statdisable is "f">> | <span class="green">Will give opportunities to raise respect.</span><</if>>
+	<br>
+	<<if $prison_relaxed_spoke isnot 1>>
+		<<link [[Speak with guard (1:00)|Prison Laundry Work Chat]]>><</link>><<if $statdisable is "f">> | <span class="green">Will give opportunities to raise love.</span><</if>>
+		<br>
+	<</if>>
+	<<link [[Stop|Prison Laundry]]>><</link>>
+	<br>
 <</if>>
 <</widget>>
 
 <<widget "prison_medical_options">>
 <<endevent>>
 <<if $hour is 12>>
-    <<generate_methodical_guard 0>><<person1>>"Lunch time," <<methodical_guard 0>> says. <<He>> pulls a prayer book from <<his>> pocket, and walks towards the door.
-    <br><br>
+	<<generate_methodical_guard 0>><<person1>>"Lunch time," <<methodical_guard 0>> says. <<He>> pulls a prayer book from <<his>> pocket, and walks towards the door.
+	<br><br>
 
-    <<link [[Next|Prison Medical]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Medical]]>><<endevent>><</link>>
+	<br>
 <<elseif $hour is 18>>
-    <<generate_methodical_guard 0>><<person1>>"Dinner time," <<methodical_guard 0>> says. <<He>> pulls a prayer book from <<his>> pocket, and walks towards the door.
-    <br><br>
+	<<generate_methodical_guard 0>><<person1>>"Dinner time," <<methodical_guard 0>> says. <<He>> pulls a prayer book from <<his>> pocket, and walks towards the door.
+	<br><br>
 
-    <<link [[Next|Prison Medical]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Medical]]>><<endevent>><</link>>
+	<br>
 <<else>>
-    <<link [[Assist (1:00)|Prison Medical Work Hard]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>>
-    <br>
-    <<if $prison_methodical_spoke isnot 1>>
-        <<link [[Speak with guard|Prison Medical Work Chat]]>><</link>>
-        <br>
-    <</if>>
-    <<link [[Stop|Prison Medical]]>><</link>>
-    <br>
+	<<link [[Assist (1:00)|Prison Medical Work Hard]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>>
+	<br>
+	<<if $prison_methodical_spoke isnot 1>>
+		<<link [[Speak with guard|Prison Medical Work Chat]]>><</link>>
+		<br>
+	<</if>>
+	<<link [[Stop|Prison Medical]]>><</link>>
+	<br>
 <</if>>
 <</widget>>
 
 <<widget "prison_spire_options">>
 <<endevent>>
 <<if $hour is 12>>
-    <<generate_anxious_guard 0>><<person1>>"Lunch," <<anxious_guard 0>> says. <<He>> takes a deep breath, and runs for the staircase down.
-    <br><br>
+	<<generate_anxious_guard 0>><<person1>>"Lunch," <<anxious_guard 0>> says. <<He>> takes a deep breath, and runs for the staircase down.
+	<br><br>
 
-    <<link [[Next|Prison Spire]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Spire]]>><<endevent>><</link>>
+	<br>
 <<elseif $hour gte 18>>
-    <<generate_anxious_guard 0>><<person1>>"Dinner," <<anxious_guard 0>> says. <<He>> takes a deep breath, and runs for the staircase down.
-    <br><br>
+	<<generate_anxious_guard 0>><<person1>>"Dinner," <<anxious_guard 0>> says. <<He>> takes a deep breath, and runs for the staircase down.
+	<br><br>
 
-    <<link [[Next|Prison Spire]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Spire]]>><<endevent>><</link>>
+	<br>
 <<elseif $prison.anxious gte 60 and $per_npc.anxious_guard.name_known isnot 1>>
-    <<beastNEWinit 2 "hawk">><<person1>>
-    You hear a cry. A scrap between two <<beastsplural>> has turned sour. One holds the other down, and looks to be trying to throttle <<bhim>> with <<person2>><<bhis>> talons.
-    <<endevent>>
-    <br><br>
-    <<generate_anxious_guard 0>><<person1>>
-    "No no no," <<anxious_guard 0>> says. <<He>> takes a deep breath, and leaves the safety of the cabin. "Br-break it up you two," <<he>> says. "I said break it up."
-    <br><br>
-
-    The endangered creature struggles free, but the other turns its eyes on <<anxious_guard 0>>. <<He>> turns at once, but isn't fast enough. Wings flap, and the creature lifts <<him>> from the ground.
-    <br><br>
-
-    <<link [[Next|Prison Spire Precipice]]>><</link>>
-    <br>
+	<<beastNEWinit 2 "hawk">><<person1>>
+	You hear a cry. A scrap between two <<beastsplural>> has turned sour. One holds the other down, and looks to be trying to throttle <<bhim>> with <<person2>><<bhis>> talons.
+	<<endevent>>
+	<br><br>
+	<<generate_anxious_guard 0>><<person1>>
+	"No no no," <<anxious_guard 0>> says. <<He>> takes a deep breath, and leaves the safety of the cabin. "Br-break it up you two," <<he>> says. "I said break it up."
+	<br><br>
+
+	The endangered creature struggles free, but the other turns its eyes on <<anxious_guard 0>>. <<He>> turns at once, but isn't fast enough. Wings flap, and the creature lifts <<him>> from the ground.
+	<br><br>
+
+	<<link [[Next|Prison Spire Precipice]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Work (1:00)|Prison Spire Work Hard]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>>
-    <br>
-    <<if $prison_anxious_spoke isnot 1>>
-        <<link [[Speak with guard|Prison Spire Work Chat]]>><</link>>
-        <br>
-    <</if>>
-    <<link [[Stop|Prison Spire]]>><</link>>
-    <br>
+	<<link [[Work (1:00)|Prison Spire Work Hard]]>><<prison_work 1>><<pass 1>><<advancetohour>><</link>>
+	<br>
+	<<if $prison_anxious_spoke isnot 1>>
+		<<link [[Speak with guard|Prison Spire Work Chat]]>><</link>>
+		<br>
+	<</if>>
+	<<link [[Stop|Prison Spire]]>><</link>>
+	<br>
 <</if>>
 <</widget>>
 
 <<widget "prison_teeth">>
 <<if _args[0]>>
-    <<set $prison.teeth += _args[0]>>
+	<<set $prison.teeth += _args[0]>>
 <</if>>
 <</widget>>
 
 <<widget "prison_teeth_text">>
 <<if _args[0] and $statdisable is "f">>
-     | <span class="gold">You've gained <<number _args[0]>> shark's teeth.</span>
+	| <span class="gold">You've gained <<number _args[0]>> shark's teeth.</span>
 <</if>>
 <</widget>>
 
 <<widget "prison_birds">>
 <<if _args[0]>>
-    <<set $prison.birds += _args[0]>>
+	<<set $prison.birds += _args[0]>>
 <</if>>
 <</widget>>
 
@@ -1446,25 +1446,25 @@
 
 <<widget "prison_detach_leash">>
 <<if !$prison.active_punishments.includes("leash")>>
-    <<detach_leash>>
+	<<detach_leash>>
 <</if>>
 <</widget>>
 
 <<widget "prison_bondage_removal">>
 <<if $worn.face.type.includes("gag") or $worn.face.type.includes("blindfold")>><<set _punishments_removed to true>>
-    <<set $worn.face.type.push("broken")>>
-    <<faceruined>>
+	<<set $worn.face.type.push("broken")>>
+	<<faceruined>>
 <</if>>
 <<if $worn.feet.type.includes("shackle")>><<set _punishments_removed to true>>
-    <<set $worn.face.type.push("broken")>>
-    <<feetruined>>
+	<<set $worn.face.type.push("broken")>>
+	<<feetruined>>
 <</if>>
 <<if $worn.neck.cursed is 1>><<set _punishments_removed to true>>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
 <</if>>
 <<if $leftarm is "bound" or $rightarm is "bound">>
-    <<set _punishments_removed to true>>
+	<<set _punishments_removed to true>>
 <</if>>
 <<unbind>>
 <</widget>>
@@ -1472,20 +1472,20 @@
 <<widget "gagged_speech">><<silently>>
 <<set _text_output to '"'>>
 <<if _args[0]>>
-    <<if $worn.face.type.includes("gag")>>
-        <<if $submissive gte 1150>>
-            <<set _text_output += "Mmmmmmhr">>
-        <<elseif $submissive lte 850>>
-            <<set _text_output += "Mmhhrrr">>
-        <<else>>
-            <<set _text_output += "Mmmmhhrr">>
-        <</if>>
-    <<else>>
-        <<set _text_output += _args[0]>>
-    <</if>>
+	<<if $worn.face.type.includes("gag")>>
+		<<if $submissive gte 1150>>
+			<<set _text_output += "Mmmmmmhr">>
+		<<elseif $submissive lte 850>>
+			<<set _text_output += "Mmhhrrr">>
+		<<else>>
+			<<set _text_output += "Mmmmhhrr">>
+		<</if>>
+	<<else>>
+		<<set _text_output += _args[0]>>
+	<</if>>
 <</if>>
 <<if _args[1]>>
-    <<set _text_output += _args[1]>>
+	<<set _text_output += _args[1]>>
 <</if>>
 <<set _text_output += '"'>>
 <</silently>><<print _text_output>>
@@ -1502,10 +1502,10 @@
 
 <<widget "passout_rut">>
 <<if $rut_entry is "rope">>
-    <<set $bus to "cell_block">>
-    <<passout_prison>>
+	<<set $bus to "cell_block">>
+	<<passout_prison>>
 <<else>>
-    <<link [[Everything fades to black...->Passout Rut]]>><</link>>
+	<<link [[Everything fades to black...->Passout Rut]]>><</link>>
 <</if>>
 <</widget>>
 
@@ -1513,43 +1513,43 @@
 You have the inmates' attention. A thought flashes through your mind. A desire for insurrection.
 <br><br>
 <<if $prison.shock is 1>>
-    <<if $prison.hope lt 80>>
-        <<if $prison.reb lt 80>>
-            <span class="red">The inmates don't feel it at all. They're so hopeless and downtrodden the shock collars aren't needed.</span>
-            <br>
-        <<else>>
-            The inmates feel it as well, <span class="red">but don't believe they can actually change things. They're probably right, due to the shock collars.</span>
-            <br>
-        <</if>>
-    <<else>>
-        <<if $prison.reb lt 80>>
-            The inmates are optimistic, <span class="red">but don't feel their chains tightly enough to revolt. It doesn't matter anyway due to the shock collars.</span>
-            <br>
-        <<else>>
-            The inmates are feverish with the same desire, <span class="red">but the shock collars render this pointless.</span>
-            <br>
-        <</if>>
-    <</if>>
+	<<if $prison.hope lt 80>>
+		<<if $prison.reb lt 80>>
+			<span class="red">The inmates don't feel it at all. They're so hopeless and downtrodden the shock collars aren't needed.</span>
+			<br>
+		<<else>>
+			The inmates feel it as well, <span class="red">but don't believe they can actually change things. They're probably right, due to the shock collars.</span>
+			<br>
+		<</if>>
+	<<else>>
+		<<if $prison.reb lt 80>>
+			The inmates are optimistic, <span class="red">but don't feel their chains tightly enough to revolt. It doesn't matter anyway due to the shock collars.</span>
+			<br>
+		<<else>>
+			The inmates are feverish with the same desire, <span class="red">but the shock collars render this pointless.</span>
+			<br>
+		<</if>>
+	<</if>>
 <<else>>
-    <<if $prison.hope lt 80>>
-        <<if $prison.reb lt 80>>
-            The shock collars are non-functioning, <span class="red">but the inmates are too hopeless and downtrodden to revolt.</span>
-            <br>
-        <<else>>
-            The shock collars are non-functioning, and the inmates rebellious, <span class="red">but they're too pessimistic for any major revolt.</span>
-            <br>
-        <</if>>
-    <<else>>
-        <<if $prison.reb lt 80>>
-            The shock collars are non-functioning, and the inmates optimistic, <span class="red">but they don't feel their chains tightly enough to revolt.</span>
-            <br>
-        <<else>>
-            <span class="green">The stage is set.</span> However, be sure you know what you're doing. A revolt without a plan will never end well.
-            <br>
-            <<link [[Incite revolt|Prison Revolt]]>><</link>>
-            <br>
-        <</if>>
-    <</if>>
+	<<if $prison.hope lt 80>>
+		<<if $prison.reb lt 80>>
+			The shock collars are non-functioning, <span class="red">but the inmates are too hopeless and downtrodden to revolt.</span>
+			<br>
+		<<else>>
+			The shock collars are non-functioning, and the inmates rebellious, <span class="red">but they're too pessimistic for any major revolt.</span>
+			<br>
+		<</if>>
+	<<else>>
+		<<if $prison.reb lt 80>>
+			The shock collars are non-functioning, and the inmates optimistic, <span class="red">but they don't feel their chains tightly enough to revolt.</span>
+			<br>
+		<<else>>
+			<span class="green">The stage is set.</span> However, be sure you know what you're doing. A revolt without a plan will never end well.
+			<br>
+			<<link [[Incite revolt|Prison Revolt]]>><</link>>
+			<br>
+		<</if>>
+	<</if>>
 <</if>>
 <<link [[Not right now|Prison Revolt Refuse]]>><<pain -4>><<trauma -6>><<stress -6>><</link>><<lpain>><<ltrauma>><<lstress>>
 <br>
@@ -1563,54 +1563,54 @@ You have the inmates' attention. A thought flashes through your mind. A desire f
 
 <<widget "remove_punishments">>
 <<if $worn.neck.name is "collar with leash" or $worn.neck.name is "free use collar with leash">>
-    <<set _punishments_removed to true>>
+	<<set _punishments_removed to true>>
 <</if>>
 <<detach_leash>>
 <<if $worn.feet.type.includes("shackle")>><<set _punishments_removed to true>>
-    <<set $worn.feet.type.push("broken")>>
-    <<feetruined>>
+	<<set $worn.feet.type.push("broken")>>
+	<<feetruined>>
 <</if>>
 <<if $worn.face.type.includes("blindfold") or $worn.face.type.includes("gag")>><<set _punishments_removed to true>>
-    <<set $worn.face.type.push("broken")>>
-    <<faceruined>>
+	<<set $worn.face.type.push("broken")>>
+	<<faceruined>>
 <</if>>
 <<if $worn.neck.name is "free use collar">><<set _punishments_removed to true>>
-    <<set $worn.neck.type.push("broken")>>
-    <<neckruined>>
-    <<neckwear 1>>
+	<<set $worn.neck.type.push("broken")>>
+	<<neckruined>>
+	<<neckwear 1>>
 <</if>>
 <<if $leftarm is "bound" or $rightarm is "bound">>
-    <<set _punishments_removed to true>>
+	<<set _punishments_removed to true>>
 <</if>>
 <<unbind>>
 <</widget>>
 
 <<widget "prison_map">>
 <<if $images is 1>>
-    <br>
-    <div id="prison_map">
+	<br>
+	<div id="prison_map">
 		<<if $season is "winter">>
 			<img src="img/misc/prison_map_winter.gif">
 		<<else>>
 			<img src="img/misc/prison_map.gif">
 		<</if>>
-        <<if $rut isnot undefined>>
-            <img id="prison_map_rut" src="img/misc/prison_rut.gif">
-            <<if random(1, 1000) is 1000>>
-                <div id="prison_map_hide">
-                    <img id="prison_map_rut_overlay" src="img/misc/prison_rut_eye.png">
-                    <<timed 1s>>
-                        <<replace #prison_map_hide>>
-                        <</replace>>
-                    <</timed>>
-                </div>
-            <</if>>
-        <</if>>
-        <<if _args[0] and _args[0] isnot "rut">>
-            <img id="prison_map_overlay" @src="'img/misc/prison_map_' + _args[0] + '.png'">
-        <<elseif _args[0] is "rut">>
-            <img id="prison_map_rut_overlay" src="img/misc/prison_rut_overlay.png">
-        <</if>>
-    </div>
+		<<if $rut isnot undefined>>
+			<img id="prison_map_rut" src="img/misc/prison_rut.gif">
+			<<if random(1, 1000) is 1000>>
+				<div id="prison_map_hide">
+					<img id="prison_map_rut_overlay" src="img/misc/prison_rut_eye.png">
+					<<timed 1s>>
+						<<replace #prison_map_hide>>
+						<</replace>>
+					<</timed>>
+				</div>
+			<</if>>
+		<</if>>
+		<<if _args[0] and _args[0] isnot "rut">>
+			<img id="prison_map_overlay" @src="'img/misc/prison_map_' + _args[0] + '.png'">
+		<<elseif _args[0] is "rut">>
+			<img id="prison_map_rut_overlay" src="img/misc/prison_rut_overlay.png">
+		<</if>>
+	</div>
 <</if>>
 <</widget>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-prison/work.twee b/game/overworld-town/loc-prison/work.twee
index 54755850a69e6231369d4014c688d58e2da0692a..f16fae987976a8d4b5a49518d78370bacb1146ee 100644
--- a/game/overworld-town/loc-prison/work.twee
+++ b/game/overworld-town/loc-prison/work.twee
@@ -4,23 +4,23 @@
 You run around the edge of the yard.
 
 <<if $rng gte 81>>
-    The sky twirls above.
+	The sky twirls above.
 <<elseif $rng gte 61>>
-    <<if $prison.schedule is "yard">>
-        The other inmates pay you little mind.
-    <<else>>
-        You think you see a face watching you from a high window, but you must be imagining things.
-    <</if>>
+	<<if $prison.schedule is "yard">>
+		The other inmates pay you little mind.
+	<<else>>
+		You think you see a face watching you from a high window, but you must be imagining things.
+	<</if>>
 <<elseif $rng gte 41>>
-    A blast of warm air erupts from a vent, almost blowing you over.
+	A blast of warm air erupts from a vent, almost blowing you over.
 <<elseif $rng gte 21>>
-    <<if $prison.schedule is "yard">>
-        You think you feel the ground tremble, but no one else reacts.
-    <<else>>
-        You feel the ground tremble.
-    <</if>>
+	<<if $prison.schedule is "yard">>
+		You think you feel the ground tremble, but no one else reacts.
+	<<else>>
+		You feel the ground tremble.
+	<</if>>
 <<else>>
-    You see a winged silhouette far above, and feel watched.
+	You see a winged silhouette far above, and feel watched.
 <</if>>
 <<physique 6>>
 <br><br>
@@ -35,15 +35,15 @@ You warm up yourself up, load the barbell, and lift. Your muscles soon ache.<<ph
 <br><br>
 
 <<if $physique gte 15000>>
-    No one's lifting heavier than you.
-    <br><br>
-    <<link [[Show off|Prison Yard Show]]>><</link>><<physiquedifficulty 10000 20000>>
-    <br>
-    <<link [[Stop|Prison Yard]]>><</link>>
-    <br>
+	No one's lifting heavier than you.
+	<br><br>
+	<<link [[Show off|Prison Yard Show]]>><</link>><<physiquedifficulty 10000 20000>>
+	<br>
+	<<link [[Stop|Prison Yard]]>><</link>>
+	<br>
 <<else>>
-    <<link [[Next|Prison Yard]]>><</link>>
-    <br>
+	<<link [[Next|Prison Yard]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Yard Show
@@ -52,11 +52,11 @@ You warm up yourself up, load the barbell, and lift. Your muscles soon ache.<<ph
 You add more weights to the barbell, and lift.
 
 <<if $physiqueSuccess>>
-    It's a strain, <span class="green">but you manage to hold it for a few moments.</span> No one reacts, but you know they saw.<<prison_inmates 1>><<grespect>>
-    <br><br>
+	It's a strain, <span class="green">but you manage to hold it for a few moments.</span> No one reacts, but you know they saw.<<prison_inmates 1>><<grespect>>
+	<br><br>
 <<else>>
-    <span class="red">You feel a pain in your back,</span> and release the weights. You hope no one saw.<<ggpain>><<pain 8>>
-    <br><br>
+	<span class="red">You feel a pain in your back,</span> and release the weights. You hope no one saw.<<ggpain>><<pain 8>>
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Yard]]>><</link>>
@@ -74,45 +74,45 @@ You line up in front of the massive pile of clothes. <<generate_relaxed_guard 0>
 :: Prison Laundry Work Hard
 <<effects>>
 <<if $leftarm is "bound" and $rightarm is "bound">>
-    You can't sort laundry with your arms bound, so the inmates use you as a "mule", ferrying baskets across the room on your hands and knees.
-    <br><br>
+	You can't sort laundry with your arms bound, so the inmates use you as a "mule", ferrying baskets across the room on your hands and knees.
+	<br><br>
 <<else>>
-    You focus on sorting and folding laundry, loading and unloading the machines.
-    <br><br>
+	You focus on sorting and folding laundry, loading and unloading the machines.
+	<br><br>
 <</if>>
 <<set $rng to random(1, 3)>>
 <<switch $rng>>
-    <<case 1>>
-        <<generate_relaxed_guard 0>><<person1>><<relaxed_guard 0 cap>> rises from <<his>> stool. <<He>> throws and catches <<his>> dice as <<he>> paces up and down the length of the room.
-        <br><br>
-        <<He>> stops to observe you for a moment, and seems satisfied.<<lsuspicion>><<prison_guards 1>>
-        <br><br>
-        <<prison_laundry_options>>
-    <<case 2>>
-        <<generate_relaxed_guard 0>><<generate2>><<person2>>The <<person>> beside you shakes a pair of trousers. Several shark's teeth fall out. <<He>> slips them into <<his>> pocket.
-        <br><br>
-        <<link [[Inform the guard|Prison Laundry Work Inform]]>><<prison_guards 1>><<prison_inmates -1>><</link>><<lrespect>><<lsuspicion>>
-        <br>
-        <<link [[Demand half|Prison Laundry Work Demand]]>><</link>><<difficulty 50>>
-        <br>
-        <<set $skulduggerydifficulty to 600>>
-        <<if $leftarm is "bound" and $rightarm is "bound">>
-            <span class="blue">You could take it for yourself, if your arms weren't bound.</span>
-            <br>
-        <<else>>
-            <<link [[Steal|Prison Laundry Work Steal]]>><</link>><<skulduggerydifficulty>>
-            <br>
-        <</if>>
-        <<link [[Ignore|Prison Laundry Work Ignore]]>><</link>>
-        <br>
-    <<default>>
-        One pair of trousers is heavier than usual. You find two shark's teeth in a pocket.
-        <br><br>
-        <<link [[Inform the guard|Prison Laundry Work Inform 2]]>><<prison_guards 1>><</link>><<lsuspicion>>
-        <br>
-        <<set $skulduggerydifficulty to 200>>
-        <<link [[Keep|Prison Laundry Work Keep]]>><</link>><<skulduggerydifficulty>>
-        <br>
+	<<case 1>>
+		<<generate_relaxed_guard 0>><<person1>><<relaxed_guard 0 cap>> rises from <<his>> stool. <<He>> throws and catches <<his>> dice as <<he>> paces up and down the length of the room.
+		<br><br>
+		<<He>> stops to observe you for a moment, and seems satisfied.<<lsuspicion>><<prison_guards 1>>
+		<br><br>
+		<<prison_laundry_options>>
+	<<case 2>>
+		<<generate_relaxed_guard 0>><<generate2>><<person2>>The <<person>> beside you shakes a pair of trousers. Several shark's teeth fall out. <<He>> slips them into <<his>> pocket.
+		<br><br>
+		<<link [[Inform the guard|Prison Laundry Work Inform]]>><<prison_guards 1>><<prison_inmates -1>><</link>><<lrespect>><<lsuspicion>>
+		<br>
+		<<link [[Demand half|Prison Laundry Work Demand]]>><</link>><<difficulty 50>>
+		<br>
+		<<set $skulduggerydifficulty to 600>>
+		<<if $leftarm is "bound" and $rightarm is "bound">>
+			<span class="blue">You could take it for yourself, if your arms weren't bound.</span>
+			<br>
+		<<else>>
+			<<link [[Steal|Prison Laundry Work Steal]]>><</link>><<skulduggerydifficulty>>
+			<br>
+		<</if>>
+		<<link [[Ignore|Prison Laundry Work Ignore]]>><</link>>
+		<br>
+	<<default>>
+		One pair of trousers is heavier than usual. You find two shark's teeth in a pocket.
+		<br><br>
+		<<link [[Inform the guard|Prison Laundry Work Inform 2]]>><<prison_guards 1>><</link>><<lsuspicion>>
+		<br>
+		<<set $skulduggerydifficulty to 200>>
+		<<link [[Keep|Prison Laundry Work Keep]]>><</link>><<skulduggerydifficulty>>
+		<br>
 <</switch>>
 
 :: Prison Laundry Work Inform 2
@@ -152,20 +152,20 @@ You inform <<relaxed_guard 0>> of the <<persons>> acquisition. The <<person>> sc
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "H-hey" ,>> you say. <<gagged_speech "Could you spare some of those teeth" ?>>
+	<<gagged_speech "H-hey" ,>> you say. <<gagged_speech "Could you spare some of those teeth" ?>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Cut me in" ,>> you say. <<gagged_speech "Or the guard hears" .>>
+	<<gagged_speech "Cut me in" ,>> you say. <<gagged_speech "Or the guard hears" .>>
 <<else>>
-    <<gagged_speech "Don't be greedy" ,>> you say, holding out your hand.
+	<<gagged_speech "Don't be greedy" ,>> you say, holding out your hand.
 <</if>>
 <br><br>
 
 <<if random(1, 2) is 2>>
-    The <<person>> sighs, and fishes the teeth from <<his>> pocket. <span class="green"><<He>> hands you a couple.</span><<prison_teeth_text 2>><<prison_teeth 2>>
-    <br><br>
+	The <<person>> sighs, and fishes the teeth from <<his>> pocket. <span class="green"><<He>> hands you a couple.</span><<prison_teeth_text 2>><<prison_teeth 2>>
+	<br><br>
 <<else>>
-    The <<person>> fishes the teeth from <<his>> pocket, looks at them a moment, <span class="red">then eats them.</span> "Dunno what you're talking about." <<He>> grins.
-    <br><br>
+	The <<person>> fishes the teeth from <<his>> pocket, looks at them a moment, <span class="red">then eats them.</span> "Dunno what you're talking about." <<He>> grins.
+	<br><br>
 <</if>>
 
 <<prison_laundry_options>>
@@ -206,62 +206,62 @@ You chat with the other inmates. <<generate_relaxed_guard 0>><<generate2>><<pers
 
 <<set $rng to random(1, 10)>>
 <<switch $rng>>
-    <<case 1>>
-        "Where does all this laundry come from anyway?" a <<person>> muses. "There's no end to it."
-    <<case 2>>
-        "Don't need many guards," a <<person>> says. <<He>> taps <<his>> collar. "They say they got us disciplined."
-    <<case 3>>
-        "One of them birds gave me a tooth once," a <<person>> says. "Like it was a gift. No joke."
-    <<case 4>>
-        <<if $prison.shock is 1>>
-            "They made the collar shock me when I first arrived," a <<person>> says. "Wasn't nice."
-        <<else>>
-            "Do you think we could take them?" a <<person>> asks in a hushed voice. "The guards. They can't shock us anymore."
-        <</if>>
-    <<case 5>>
-        "Getting me a new pair of shoes," a <<person>> says. "Next time the smuggler visits."
-    <<case 6>>
-        "Might be a trick to it," a <<person>> says. "But there's a way out. Always is."<<gskulduggery>><<skulduggery 1>>
-    <<case 7>>
-        "That big door in the yard," a <<person>> says. "I saw someone come through once. You can see a beach on the other side. Would be nice if they let us go for a swim. Not like we'd be able to go anywhere."
-    <<case 8>>
-        "I'm telling you," a <<person>> says. "These walls are funny."
-    <<case 9>>
-        "Best to keep your head down," a <<person>> says. "Though drawing attention would help you change opinions more easily."
-    <<default>>
-        
+	<<case 1>>
+		"Where does all this laundry come from anyway?" a <<person>> muses. "There's no end to it."
+	<<case 2>>
+		"Don't need many guards," a <<person>> says. <<He>> taps <<his>> collar. "They say they got us disciplined."
+	<<case 3>>
+		"One of them birds gave me a tooth once," a <<person>> says. "Like it was a gift. No joke."
+	<<case 4>>
+		<<if $prison.shock is 1>>
+			"They made the collar shock me when I first arrived," a <<person>> says. "Wasn't nice."
+		<<else>>
+			"Do you think we could take them?" a <<person>> asks in a hushed voice. "The guards. They can't shock us anymore."
+		<</if>>
+	<<case 5>>
+		"Getting me a new pair of shoes," a <<person>> says. "Next time the smuggler visits."
+	<<case 6>>
+		"Might be a trick to it," a <<person>> says. "But there's a way out. Always is."<<gskulduggery>><<skulduggery 1>>
+	<<case 7>>
+		"That big door in the yard," a <<person>> says. "I saw someone come through once. You can see a beach on the other side. Would be nice if they let us go for a swim. Not like we'd be able to go anywhere."
+	<<case 8>>
+		"I'm telling you," a <<person>> says. "These walls are funny."
+	<<case 9>>
+		"Best to keep your head down," a <<person>> says. "Though drawing attention would help you change opinions more easily."
+	<<default>>
+
 <</switch>>
 <<endevent>>
 <br><br>
 <<set $rng to random(1, 3)>>
 <<switch $rng>>
-    <<case 1>>
-        <<generate_relaxed_guard 0>><<generate2>><<person2>>The <<person>> rests <<his>> hand on your <<bottom>>.
-        <br><br>
-        <<link [[Endure|Prison Laundry Work Endure]]>><<trauma 6>><<stress 6>><<arousal 600>><</link>><<gtrauma>><<gstress>><<garousal>>
-        <br>
-        <<link [[Shove|Prison Laundry Work Shove]]>><<prison_inmates 1>><<prison_guards -1>><</link>><<gsuspicion>><<grespect>>
-        <br>
-        <<link [[Squeeze back|Prison Laundry Work Squeeze]]>><<prison_inmates 1>><<gattention prison>><</link>><<promiscuous1>><<prison_attention 1>><<grespect>>
-        <br>
-    <<case 2>>
-        They enjoy your jokes.<<grespect>><<prison_inmates 1>>
-        <br><br>
-
-        <<prison_laundry_options>>
-    <<case 3>>
-        <<generate1>><<generate2>><<person1>>
-        A couple of inmates swap stories, bragging about their exploits.
-        <br><br>
-
-        <<link [[Make something up|Prison Laundry Work Brag]]>><</link>><<englishdifficulty 1 1000>>
-        <br>
-        <<if $famescrap gte 400>>
-            <<link [[Tell a story of your daring|Prison Laundry Work Daring]]>><</link>><<if $statdisable is "f">> | <span class="green">Combat fame</span><</if>>
-            <br>
-        <</if>>
-        <<link [[Ignore|Prison Laundry Work Chat Ignore]]>><</link>>
-        <br>
+	<<case 1>>
+		<<generate_relaxed_guard 0>><<generate2>><<person2>>The <<person>> rests <<his>> hand on your <<bottom>>.
+		<br><br>
+		<<link [[Endure|Prison Laundry Work Endure]]>><<trauma 6>><<stress 6>><<arousal 600>><</link>><<gtrauma>><<gstress>><<garousal>>
+		<br>
+		<<link [[Shove|Prison Laundry Work Shove]]>><<prison_inmates 1>><<prison_guards -1>><</link>><<gsuspicion>><<grespect>>
+		<br>
+		<<link [[Squeeze back|Prison Laundry Work Squeeze]]>><<prison_inmates 1>><<gattention prison>><</link>><<promiscuous1>><<prison_attention 1>><<grespect>>
+		<br>
+	<<case 2>>
+		They enjoy your jokes.<<grespect>><<prison_inmates 1>>
+		<br><br>
+
+		<<prison_laundry_options>>
+	<<case 3>>
+		<<generate1>><<generate2>><<person1>>
+		A couple of inmates swap stories, bragging about their exploits.
+		<br><br>
+
+		<<link [[Make something up|Prison Laundry Work Brag]]>><</link>><<englishdifficulty 1 1000>>
+		<br>
+		<<if $fame.scrap gte 400>>
+			<<link [[Tell a story of your daring|Prison Laundry Work Daring]]>><</link>><<if $statdisable is "f">> | <span class="green">Combat fame</span><</if>>
+			<br>
+		<</if>>
+		<<link [[Ignore|Prison Laundry Work Chat Ignore]]>><</link>>
+		<br>
 <</switch>>
 
 :: Prison Laundry Work Brag
@@ -269,38 +269,38 @@ You chat with the other inmates. <<generate_relaxed_guard 0>><<generate2>><<pers
 
 You make up a story, one of boldness and daring.
 <<if $englishSuccess>>
-    <<set $rng to random(1, 5)>>
-    <<switch $rng>>
-        <<case 1>>
-            "A giant slug?!" asks a <<person>>. "Who'd have thought."
-        <<case 2>>
-            "All the way in?" asks a <<person>>. "Who'd have thought."
-        <<case 3>>
-            "That's fucked up," says a <<person>>. "Nice one."
-        <<case 4>>
-            "I bet they felt that!" says a <<person>>.
-        <<default>>
-            "No less than they deserved," says a <<person>>.
-    <</switch>>
-    <<grespect>><<prison_inmates 1>>
-    <br><br>
+	<<set $rng to random(1, 5)>>
+	<<switch $rng>>
+		<<case 1>>
+			"A giant slug?!" asks a <<person>>. "Who'd have thought."
+		<<case 2>>
+			"All the way in?" asks a <<person>>. "Who'd have thought."
+		<<case 3>>
+			"That's fucked up," says a <<person>>. "Nice one."
+		<<case 4>>
+			"I bet they felt that!" says a <<person>>.
+		<<default>>
+			"No less than they deserved," says a <<person>>.
+	<</switch>>
+	<<grespect>><<prison_inmates 1>>
+	<br><br>
 <<else>>
-    <span class="red">But maybe you went too far.</span>
-    <br><br>
-    <<set $rng to random(1, 5)>>
-    <<switch $rng>>
-        <<case 1>>
-            "A giant what?!" says a <<person>>. "Pull the other one."
-        <<case 2>>
-            "There's no way you got it all in," says a <<person>>.
-        <<case 3>>
-            "If that's true," says a <<person>>. "Then I'm the emperor of France."
-        <<case 4>>
-            "I've heard some porkies in my time," says a <<person>>. "But that one takes the biscuit."
-        <<default>>
-            "Yeah right," says a <<person>> with a dismissive shake of <<his>> head.
-    <</switch>>
-    <br><br>
+	<span class="red">But maybe you went too far.</span>
+	<br><br>
+	<<set $rng to random(1, 5)>>
+	<<switch $rng>>
+		<<case 1>>
+			"A giant what?!" says a <<person>>. "Pull the other one."
+		<<case 2>>
+			"There's no way you got it all in," says a <<person>>.
+		<<case 3>>
+			"If that's true," says a <<person>>. "Then I'm the emperor of France."
+		<<case 4>>
+			"I've heard some porkies in my time," says a <<person>>. "But that one takes the biscuit."
+		<<default>>
+			"Yeah right," says a <<person>> with a dismissive shake of <<his>> head.
+	<</switch>>
+	<br><br>
 <</if>>
 <br><br>
 
@@ -313,16 +313,16 @@ You make up a story, one of boldness and daring.
 You recall one of your exploits,
 <<set $rng to random(1, 2)>>
 <<switch $rng>>
-    <<case 1>>
-        about one of the many fights you've won.
-        <br><br>
-        "I think I've heard of you," says a <<person>>. "They call you <<underworld_nickname>>."<<grespect>><<prison_inmates 1>>
-        <br><br>
-    <<default>>
-        about one of the many assaults you've thwarted.
-        <br><br>
-        The inmates seem impressed.<<grespect>><<prison_inmates 1>>
-        <br><br>
+	<<case 1>>
+		about one of the many fights you've won.
+		<br><br>
+		"I think I've heard of you," says a <<person>>. "They call you <<underworld_nickname>>."<<grespect>><<prison_inmates 1>>
+		<br><br>
+	<<default>>
+		about one of the many assaults you've thwarted.
+		<br><br>
+		The inmates seem impressed.<<grespect>><<prison_inmates 1>>
+		<br><br>
 <</switch>>
 
 <<prison_laundry_options>>
@@ -364,24 +364,24 @@ You rest your hand on the <<persons>> ass in turn. <<He>> gives you a squeeze, a
 <<promiscuity1>>
 
 <<if $analdisable is "f" and random(1, 3) is 3>>
-    <<if $worn.lower.name is "naked">>
-        <<if $worn.under_lower.name is "naked">>
-            <<He>> presses a finger against your anus.
-        <<else>>
-            <<He>> slips <<his>> hand down your $worn.under_lower.name, and presses a finger against your anus.
-        <</if>>
-    <<else>>
-        <<He>> slips a hand down your $worn.lower.name, and presses a finger against your anus.
-    <</if>>
-    <br><br>
-    <<link [[Move away|Prison Laundry Work Anus Refuse]]>><</link>>
-    <br>
-    <<if $promiscuity gte 55>>
-        <<link [[Allow|Prison Laundry Work Anus]]>><<prison_attention 3>><</link>><<promiscuous3>><<ggattention>><<ggarousal>>
-        <br>
-    <</if>>
+	<<if $worn.lower.name is "naked">>
+		<<if $worn.under_lower.name is "naked">>
+			<<He>> presses a finger against your anus.
+		<<else>>
+			<<He>> slips <<his>> hand down your $worn.under_lower.name, and presses a finger against your anus.
+		<</if>>
+	<<else>>
+		<<He>> slips a hand down your $worn.lower.name, and presses a finger against your anus.
+	<</if>>
+	<br><br>
+	<<link [[Move away|Prison Laundry Work Anus Refuse]]>><</link>>
+	<br>
+	<<if $promiscuity gte 55>>
+		<<link [[Allow|Prison Laundry Work Anus]]>><<prison_attention 3>><</link>><<promiscuous3>><<ggattention>><<ggarousal>>
+		<br>
+	<</if>>
 <<else>>
-    <<prison_laundry_options>>
+	<<prison_laundry_options>>
 <</if>>
 
 :: Prison Laundry Work Anus
@@ -390,16 +390,16 @@ You rest your hand on the <<persons>> ass in turn. <<He>> gives you a squeeze, a
 /* $NPCList[0] is relaxed quard, [1] is a random inmate, currently active as <<person>>, as generated on :: Prison Laundry Work Socialise */
 The <<person>> inserts <<his>> finger, pushing deeper.
 <<if $player.penisExist>>
-    You shiver as <<he>> reaches your prostate.
+	You shiver as <<he>> reaches your prostate.
 <</if>>
-No one seems to have noticed <<his>> violating you in the middle of the room. 
+No one seems to have noticed <<his>> violating you in the middle of the room.
 <<promiscuity3>>
 <<arousal 3000>>
 <<if $arousal gte 10000>>
-    <<orgasm>>
-    You lean forward, out of breath, as the <<person>> withdraws <<his>> hand. <<person1>><<relaxed_guard 0 cap>> looks over with a frown.<<gsuspicion>><<gattention prison>><<prison_attention 1>><<prison_guards -1>>
+	<<orgasm>>
+	You lean forward, out of breath, as the <<person>> withdraws <<his>> hand. <<person1>><<relaxed_guard 0 cap>> looks over with a frown.<<gsuspicion>><<gattention prison>><<prison_attention 1>><<prison_guards -1>>
 <<else>>
-    <<person1>><<relaxed_guard 0 cap>> stirs, and the <<person2>><<person>> withdraws <<his>> hand.
+	<<person1>><<relaxed_guard 0 cap>> stirs, and the <<person2>><<person>> withdraws <<his>> hand.
 <</if>>
 <br><br>
 
@@ -425,20 +425,20 @@ You step away from the <<person>>. <<He>> takes the hint, though gives your <<bo
 <<link [[Play|Prison Laundry Work Play]]>><<set $prison_relaxed_spoke to 1>><<prison_rep relaxed 1>><</link>><<glove>>
 <br>
 <<if $prison_job_change is undefined>>
-    <<if $prison.guards gte 60>>
-        <<link [[Ask to work in medical|Prison Laundry Work Medical]]>><</link>>
-        <br>
-    <<else>>
-        <span class="blue">You aren't trusted enough to work in medical.</span>
-        <br>
-    <</if>>
-    <<if $prison.guards gte 80>>
-        <<link [[Ask to work on the spire|Prison Laundry Work Spire]]>><</link>>
-        <br>
-    <<else>>
-        <span class="blue">You aren't trusted enough to be allowed on the spire.</span>
-        <br>
-    <</if>>
+	<<if $prison.guards gte 60>>
+		<<link [[Ask to work in medical|Prison Laundry Work Medical]]>><</link>>
+		<br>
+	<<else>>
+		<span class="blue">You aren't trusted enough to work in medical.</span>
+		<br>
+	<</if>>
+	<<if $prison.guards gte 80>>
+		<<link [[Ask to work on the spire|Prison Laundry Work Spire]]>><</link>>
+		<br>
+	<<else>>
+		<span class="blue">You aren't trusted enough to be allowed on the spire.</span>
+		<br>
+	<</if>>
 <</if>>
 <<link [[Leave|Prison Laundry Work]]>><<endevent>><</link>>
 <br>
@@ -467,38 +467,38 @@ You step away from the <<person>>. <<He>> takes the hint, though gives your <<bo
 <<effects>>
 
 <<if $prison.relaxed gte 60 and $NPCList[0].name_known isnot 1>>
-    "You know," <<relaxed_guard 0>> says. "I don't think I properly introduced myself.
-    <<set $NPCList[0].name_known to 1>>
-    <<save_relaxed_guard>>
-    I'm <<relaxed_guard 0>>. Don't tell specs I got informal." <<He>> bounces the dice between <<his>> hands.
+	"You know," <<relaxed_guard 0>> says. "I don't think I properly introduced myself.
+	<<set $NPCList[0].name_known to 1>>
+	<<save_relaxed_guard>>
+	I'm <<relaxed_guard 0>>. Don't tell specs I got informal." <<He>> bounces the dice between <<his>> hands.
 <</if>>
 
 "Shall we make this interesting?" <<he>> asks. "You win, and I'll let you chill for an hour. But if I win," <<he>> pauses.
 
 <<if $leftarm is "bound" and $rightarm is "bound">>
-    "You spend it as my footstool. Not like you're good for much else at the moment."
-    <<set $phase to 2>>
+	"You spend it as my footstool. Not like you're good for much else at the moment."
+	<<set $phase to 2>>
 <<else>>
-    <<if $worn.face.type.includes("gag")>>
-        <<set $rng to random(1, 2)>>
-    <<else>>
-        <<set $rng to random(1, 3)>>
-    <</if>>
-    <<switch $rng>>
-        <<case 1>>
-            "You spend it on your hands and knees, carrying laundry with your mouth."
-            <<set $phase to 1>>
-        <<case 2>>
-            "You spend it as my footstool. They won't let me put my feet up otherwise."
-            <<set $phase to 2>>
-        <<case 3>>
-            <<if $NPCList[0].penis isnot "none">>
-                "You suck me off."
-            <<else>>
-                "You eat me out."
-            <</if>>
-            <<set $phase to 3>>
-    <</switch>>
+	<<if $worn.face.type.includes("gag")>>
+		<<set $rng to random(1, 2)>>
+	<<else>>
+		<<set $rng to random(1, 3)>>
+	<</if>>
+	<<switch $rng>>
+		<<case 1>>
+			"You spend it on your hands and knees, carrying laundry with your mouth."
+			<<set $phase to 1>>
+		<<case 2>>
+			"You spend it as my footstool. They won't let me put my feet up otherwise."
+			<<set $phase to 2>>
+		<<case 3>>
+			<<if $NPCList[0].penis isnot "none">>
+				"You suck me off."
+			<<else>>
+				"You eat me out."
+			<</if>>
+			<<set $phase to 3>>
+	<</switch>>
 <</if>>
 <br><br>
 
@@ -519,56 +519,56 @@ You step away from the <<person>>. <<He>> takes the hint, though gives your <<bo
 <<set _die_2 to random(1, 6)>>
 
 <div id="die_text">
-    <span id="die_1">
-        <<if $images is 1>>
-            <img src="img/misc/die_roll.gif">
-        <<else>>
-            ?
-        <</if>>
-    </span>
-    +
-    <span id="die_2">
-        <<if $images is 1>>
-            <img src="img/misc/die_roll.gif">
-        <<else>>
-            ?
-        <</if>>
-    </span>
-    <br>
-    =
-    <br>
-    <span id="die_result">
-    
-    </span>
-    <span id="prison_list_result">
-
-    </span>
+	<span id="die_1">
+		<<if $images is 1>>
+			<img src="img/misc/die_roll.gif">
+		<<else>>
+			?
+		<</if>>
+	</span>
+	+
+	<span id="die_2">
+		<<if $images is 1>>
+			<img src="img/misc/die_roll.gif">
+		<<else>>
+			?
+		<</if>>
+	</span>
+	<br>
+	=
+	<br>
+	<span id="die_result">
+
+	</span>
+	<span id="prison_list_result">
+
+	</span>
 </div>
 
 <<timed 1s>>
-    <<replace "#die_1">>
-    <<if $images is 1>>
-        <img @src="'img/misc/die_' + _die_1 + '.png'">
-    <<else>>
-        _die_1
-    <</if>>
-    <</replace>>
+	<<replace "#die_1">>
+	<<if $images is 1>>
+		<img @src="'img/misc/die_' + _die_1 + '.png'">
+	<<else>>
+		_die_1
+	<</if>>
+	<</replace>>
 <</timed>>
 <<timed 2s>>
-    <<replace "#die_2">>
-    <<if $images is 1>>
-        <img @src="'img/misc/die_' + _die_2 + '.png'">
-    <<else>>
-        _die_2
-    <</if>>
-    <</replace>>
+	<<replace "#die_2">>
+	<<if $images is 1>>
+		<img @src="'img/misc/die_' + _die_2 + '.png'">
+	<<else>>
+		_die_2
+	<</if>>
+	<</replace>>
 <</timed>>
 
 
 <<set $relaxed_roll to (_die_1 + _die_2)>>
 <<timed 3s>>
-    <span id="die_text"><<print $relaxed_roll>></span>
-    <br><br>
+	<span id="die_text"><<print $relaxed_roll>></span>
+	<br><br>
 <</timed>>
 
 <<link [[Next|Prison Laundry Work Challenge 2]]>><</link>>
@@ -584,56 +584,56 @@ Your turn.
 <<set _die_2 to random(1, 6)>>
 
 <div id="die_text">
-    <span id="die_1">
-        <<if $images is 1>>
-            <img src="img/misc/die_roll.gif">
-        <<else>>
-            ?
-        <</if>>
-    </span>
-    +
-    <span id="die_2">
-        <<if $images is 1>>
-            <img src="img/misc/die_roll.gif">
-        <<else>>
-            ?
-        <</if>>
-    </span>
-    <br>
-    =
-    <br>
-    <span id="die_result">
-    
-    </span>
-    <span id="prison_list_result">
-
-    </span>
+	<span id="die_1">
+		<<if $images is 1>>
+			<img src="img/misc/die_roll.gif">
+		<<else>>
+			?
+		<</if>>
+	</span>
+	+
+	<span id="die_2">
+		<<if $images is 1>>
+			<img src="img/misc/die_roll.gif">
+		<<else>>
+			?
+		<</if>>
+	</span>
+	<br>
+	=
+	<br>
+	<span id="die_result">
+
+	</span>
+	<span id="prison_list_result">
+
+	</span>
 </div>
 
 <<timed 1s>>
-    <<replace "#die_1">>
-    <<if $images is 1>>
-        <img @src="'img/misc/die_' + _die_1 + '.png'">
-    <<else>>
-        _die_1
-    <</if>>
-    <</replace>>
+	<<replace "#die_1">>
+	<<if $images is 1>>
+		<img @src="'img/misc/die_' + _die_1 + '.png'">
+	<<else>>
+		_die_1
+	<</if>>
+	<</replace>>
 <</timed>>
 <<timed 2s>>
-    <<replace "#die_2">>
-    <<if $images is 1>>
-        <img @src="'img/misc/die_' + _die_2 + '.png'">
-    <<else>>
-        _die_2
-    <</if>>
-    <</replace>>
+	<<replace "#die_2">>
+	<<if $images is 1>>
+		<img @src="'img/misc/die_' + _die_2 + '.png'">
+	<<else>>
+		_die_2
+	<</if>>
+	<</replace>>
 <</timed>>
 
 
 <<set $your_roll to (_die_1 + _die_2)>>
 <<timed 3s>>
-    <span id="die_text"><<print $your_roll>></span>
-    <br><br>
+	<span id="die_text"><<print $your_roll>></span>
+	<br><br>
 <</timed>>
 
 <<link [[Next|Prison Laundry Work Challenge 3]]>><</link>>
@@ -643,50 +643,50 @@ Your turn.
 <<effects>>
 
 <<if $relaxed_roll is $your_roll>>
-    "Draw," <<relaxed_guard 0>> says. "Rematch?"
-    <br><br>
-    <<link [[Rematch|Prison Laundry Work Challenge]]>><<unset $relaxed_roll>><<unset $your_roll>><</link>>
-    <br>
-    <<link [[Play normally|Prison Laundry Work Normal]]>><<unset $relaxed_roll>><<unset $your_roll>><</link>>
-    <br>
+	"Draw," <<relaxed_guard 0>> says. "Rematch?"
+	<br><br>
+	<<link [[Rematch|Prison Laundry Work Challenge]]>><<unset $relaxed_roll>><<unset $your_roll>><</link>>
+	<br>
+	<<link [[Play normally|Prison Laundry Work Normal]]>><<unset $relaxed_roll>><<unset $your_roll>><</link>>
+	<br>
 <<elseif $your_roll gte $relaxed_roll>>
-    <<prison_work 1>>
-    "You win," <<relaxed_guard 0>> says. "Feel free to put your feet up. Don't leave the laundry room though. I'll mark you down as present. <span class="green">Consider it an extra hour of free time.</span>"
-    <br><br>
+	<<prison_work 1>>
+	"You win," <<relaxed_guard 0>> says. "Feel free to put your feet up. Don't leave the laundry room though. I'll mark you down as present. <span class="green">Consider it an extra hour of free time.</span>"
+	<br><br>
+
+	<<unset $relaxed_roll>>
+	<<unset $your_roll>>
 
-    <<unset $relaxed_roll>>
-    <<unset $your_roll>>
-    
-    <<prison_laundry_options>>
+	<<prison_laundry_options>>
 
 <<else>>
-    "You lose," <<relaxed_guard 0>> says with a smirk. 
-    <<switch $phase>>
-        <<case 1>>
-            "Get on your knees."
-            <br><br>
-            You spend the next hour crawling between the machines and table, carrying clothes in your mouth. It is incredibly inefficient. But that's not the point.
-            <br><br>
-            The other inmates are amused.<<lrespect>><<prison_inmates -1>><<ggattention>><<prison_attention 3>><<gstress>><<garousal>><<stress 6>><<arousal 600>>
-            <br><br>
-            <<pass 1>><<advancetohour>>
-            <<prison_laundry_options>>
-        <<case 2>>
-            "Get on your knees."
-            <br><br>
-            You spend the next hour with <<relaxed_guard 0 apo>> feet resting on your back. <<He>> seems pretty happy. So do the inmates.<<lrespect>><<prison_inmates -1>><<gattention prison>><<prison_attention 1>><<gstress>><<garousal>><<stress 6>><<arousal 600>>
-            <br><br>
-            <<pass 1>><<advancetohour>>
-            <<prison_laundry_options>>
-        <<default>>
-            "Get on your knees."
-            <br><br>
-            <<He>> grasps the back of your hair, and pulls your face against <<his>> groin.
-            <br><br>
-
-            <<link [[Next|Prison Laundry Oral]]>><<set $sexstart to 1>><</link>>
-            <br>
-    <</switch>>
+	"You lose," <<relaxed_guard 0>> says with a smirk.
+	<<switch $phase>>
+		<<case 1>>
+			"Get on your knees."
+			<br><br>
+			You spend the next hour crawling between the machines and table, carrying clothes in your mouth. It is incredibly inefficient. But that's not the point.
+			<br><br>
+			The other inmates are amused.<<lrespect>><<prison_inmates -1>><<ggattention>><<prison_attention 3>><<gstress>><<garousal>><<stress 6>><<arousal 600>>
+			<br><br>
+			<<pass 1>><<advancetohour>>
+			<<prison_laundry_options>>
+		<<case 2>>
+			"Get on your knees."
+			<br><br>
+			You spend the next hour with <<relaxed_guard 0 apo>> feet resting on your back. <<He>> seems pretty happy. So do the inmates.<<lrespect>><<prison_inmates -1>><<gattention prison>><<prison_attention 1>><<gstress>><<garousal>><<stress 6>><<arousal 600>>
+			<br><br>
+			<<pass 1>><<advancetohour>>
+			<<prison_laundry_options>>
+		<<default>>
+			"Get on your knees."
+			<br><br>
+			<<He>> grasps the back of your hair, and pulls your face against <<his>> groin.
+			<br><br>
+
+			<<link [[Next|Prison Laundry Oral]]>><<set $sexstart to 1>><</link>>
+			<br>
+	<</switch>>
 <</if>>
 
 
@@ -699,9 +699,9 @@ Your turn.
 
 	<<maninit>>
 	<<He>> <<npcUndressText $NPCList[0] "lower" "self">>,
-    <<npcRevealText $NPCList[0] "lower">>.
+	<<npcRevealText $NPCList[0] "lower">>.
 	<br><br>
-    <<npcoral>>
+	<<npcoral>>
 	<<set $enemytrust -= 100>>
 <</if>>
 <<effects>>
@@ -739,7 +739,7 @@ Your turn.
 	<br><br>
 	<<tearful>> you step back. The other inmates pull you into the crowd, hiding you from <<relaxed_guard 0 apo>> retaliation. <<He>> pushes through the throng, trying to find you, but soon calms. <<He>> sits with a huff. "Maybe I deserved that."
 	<br><br>
-    
+
 	<<clotheson>>
 	<<endcombat>>
 
@@ -763,11 +763,11 @@ Your turn.
 <br><br>
 
 <<if random(1, 2) is 2>>
-    You win. "Congratulations," <<he>> says. "Now get back to work."
-    <br><br>
+	You win. "Congratulations," <<he>> says. "Now get back to work."
+	<br><br>
 <<else>>
-    You lose. "Bad luck," <<he>> says. "Now get back to work."
-    <br><br>
+	You lose. "Bad luck," <<he>> says. "Now get back to work."
+	<br><br>
 <</if>>
 
 <<link [[Next|Prison Laundry Work Hard]]>><</link>>
@@ -778,30 +778,30 @@ Your turn.
 <<effects>>
 <<generate_methodical_guard 0>><<person1>>
 <<if $prison.methodical gte 1 and $NPCList[0].name_known isnot 1>>
-    <<methodical_guard 0 cap>> acknowledges your arrival with a sniff. <<He>> doesn't have time for more. <span class="red">A loud crack</span> echoes through the room as the cupboard bursts open. A dark shape hurls across the room.
-    <br><br>
-    "Shut the door!" <<methodical_guard 0>> shouts. "Shut it!"
-    <br><br>
-    The creature jumps into <<methodical_guard 0 apo>> desk, leaving stacks of paper strewn across the floor.
-    <br><br>
-    
-    <<link [[Catch the creature|Prison Medical Catch]]>><</link>><<athleticsdifficulty 1 1000>>
-    <br>
-    <<link [[Watch|Prison Medical Watch]]>><</link>>
-    <br>
+	<<methodical_guard 0 cap>> acknowledges your arrival with a sniff. <<He>> doesn't have time for more. <span class="red">A loud crack</span> echoes through the room as the cupboard bursts open. A dark shape hurls across the room.
+	<br><br>
+	"Shut the door!" <<methodical_guard 0>> shouts. "Shut it!"
+	<br><br>
+	The creature jumps into <<methodical_guard 0 apo>> desk, leaving stacks of paper strewn across the floor.
+	<br><br>
+
+	<<link [[Catch the creature|Prison Medical Catch]]>><</link>><<athleticsdifficulty 1 1000>>
+	<br>
+	<<link [[Watch|Prison Medical Watch]]>><</link>>
+	<br>
 <<elseif $prison.medical_intro is 1>>
-    <<methodical_guard 0 cap>> acknowledges your arrival with a sniff.
-    <<endevent>>
-    <br><br>
+	<<methodical_guard 0 cap>> acknowledges your arrival with a sniff.
+	<<endevent>>
+	<br><br>
 
-    <<prison_medical_options>>
+	<<prison_medical_options>>
 <<else>>
-    <<set $prison.medical_intro to 1>>
-    <<methodical_guard 0 cap>> prods a bandaged patient's foot as you approach. The patient yelps in pain. "Serves you right," <<methodical_guard 0>> says, jotting something down. <<He>> notices you. "Ah. You wanted to work here? Fine. Just do as I say, and stay away from the cupboard."
-    <<endevent>>
-    <br><br>
+	<<set $prison.medical_intro to 1>>
+	<<methodical_guard 0 cap>> prods a bandaged patient's foot as you approach. The patient yelps in pain. "Serves you right," <<methodical_guard 0>> says, jotting something down. <<He>> notices you. "Ah. You wanted to work here? Fine. Just do as I say, and stay away from the cupboard."
+	<<endevent>>
+	<br><br>
 
-    <<prison_medical_options>>
+	<<prison_medical_options>>
 <</if>>
 
 :: Prison Medical Catch
@@ -809,14 +809,14 @@ Your turn.
 
 You run at the creature, grasping a dislodged cupboard drawer as you do.
 <<if $athleticsSuccess>>
-    <span class="green">You manage to trap the creature beneath it.</span>
-    <br><br>
-    "Thank you," <<methodical_guard 0>> says. <<He>> looks at the paper strewn across the floor, and sighs. "I need your assistance cleaning this up."<<prison_rep methodical 5>><<glove>>
-    <br><br>
+	<span class="green">You manage to trap the creature beneath it.</span>
+	<br><br>
+	"Thank you," <<methodical_guard 0>> says. <<He>> looks at the paper strewn across the floor, and sighs. "I need your assistance cleaning this up."<<prison_rep methodical 5>><<glove>>
+	<br><br>
 <<else>>
-    You almost catch it, <span class="red">but bump your knee on a bed,</span> and fall to the ground clutching your leg.<<gpain>><<pain 4>>
-    <br><br>
-    <<methodical_guard 0 cap>> makes <<his>> own attempt. <<He>> manages to catch it, but not before several inmates have been spooked from their beds.
+	You almost catch it, <span class="red">but bump your knee on a bed,</span> and fall to the ground clutching your leg.<<gpain>><<pain 4>>
+	<br><br>
+	<<methodical_guard 0 cap>> makes <<his>> own attempt. <<He>> manages to catch it, but not before several inmates have been spooked from their beds.
 <br><br>
 
 <<methodical_guard 0 cap>> looks at the strewn paper with an exasperated expression. "I need your assistance-" <<he>> pants. "Cleaning this up."
@@ -867,65 +867,65 @@ You're sorting through the last of the paper, when you find another interesting
 <<set $rng to random(1, 5)>>
 <<switch $rng>>
 <<case 1>>
-    "Painkillers are suitable for this one," <<he>> says. <<He>> pulls a bottle from <<his>> pocket, but has trouble opening it. "Would you mind? Just the one, actually." The jar pops open. There are shark's teeth inside.
-    <<generate2>><<person2>>
-    <br><br>
-    The patient, a <<person>>, tugs your <<if $exposed gte 2>>arm<<else>>sleeve<</if>>. "Hurts it does. Could you slip me something extra? <<person1>><<He>> won't notice."
-    <br><br>
-
-    <<set $skulduggerydifficulty to 300>>
-    <<link [[Slip something extra|Prison Medical Work Slip]]>><</link>><<skulduggerydifficulty>>
-    <br>
-    <<set $skulduggerydifficulty to 700>>
-    <<link [[Slip something extra, and something for yourself|Prison Medical Work Extra]]>><</link>><<skulduggerydifficulty>>
-    <br>
-    <<link [[Refuse|Prison Medical Work Slip Refuse]]>><</link>>
-    <br>
+	"Painkillers are suitable for this one," <<he>> says. <<He>> pulls a bottle from <<his>> pocket, but has trouble opening it. "Would you mind? Just the one, actually." The jar pops open. There are shark's teeth inside.
+	<<generate2>><<person2>>
+	<br><br>
+	The patient, a <<person>>, tugs your <<if $exposed gte 2>>arm<<else>>sleeve<</if>>. "Hurts it does. Could you slip me something extra? <<person1>><<He>> won't notice."
+	<br><br>
+
+	<<set $skulduggerydifficulty to 300>>
+	<<link [[Slip something extra|Prison Medical Work Slip]]>><</link>><<skulduggerydifficulty>>
+	<br>
+	<<set $skulduggerydifficulty to 700>>
+	<<link [[Slip something extra, and something for yourself|Prison Medical Work Extra]]>><</link>><<skulduggerydifficulty>>
+	<br>
+	<<link [[Refuse|Prison Medical Work Slip Refuse]]>><</link>>
+	<br>
 <<case 2>>
-    <<if $tending gte random(1, 1000)>>
-        "Apply the ointment to the rash. You already have? Then help me with- Oh. That's done as well." <span class="green"><<methodical_guard 0 cap>> is impressed by your ability.</span><<glove>><<lsuspicion>><<prison_rep methodical 1>><<prison_guards 1>>
-        <br><br>
-    <<else>>
-        "Apply the ointment to the rash. No, on the leg. The other leg. No, <span class="red">not <i>there.</i></span>" <<methodical_guard 0 cap>> is unimpressed with your assistance.
-        <br><br>
-    <</if>>
-
-    <<prison_medical_options>>
+	<<if currentSkillValue('tending') gte random(1, 1000)>>
+		"Apply the ointment to the rash. You already have? Then help me with- Oh. That's done as well." <span class="green"><<methodical_guard 0 cap>> is impressed by your ability.</span><<glove>><<lsuspicion>><<prison_rep methodical 1>><<prison_guards 1>>
+		<br><br>
+	<<else>>
+		"Apply the ointment to the rash. No, on the leg. The other leg. No, <span class="red">not <i>there.</i></span>" <<methodical_guard 0 cap>> is unimpressed with your assistance.
+		<br><br>
+	<</if>>
+
+	<<prison_medical_options>>
 <<case 3>>
-    <<generate2>><<person2>>
-    One of the patients smacks your <<bottom>> as you turn away.
-    <br><br>
-
-    <<link [[Get angry|Prison Medical Work Angry]]>><<prison_inmates 1>><<prison_guards -1>><</link>><<gsuspicion>><<grespect>>
-    <br>
-    <<link [[Ignore|Prison Medical Work Angry Ignore]]>><<prison_guards 1>><<trauma 6>><<stress 6>><<pain 1>><</link>><<gpain>><<gtrauma>><<gstress>><<lsuspicion>>
-    <br>
-    
+	<<generate2>><<person2>>
+	One of the patients smacks your <<bottom>> as you turn away.
+	<br><br>
+
+	<<link [[Get angry|Prison Medical Work Angry]]>><<prison_inmates 1>><<prison_guards -1>><</link>><<gsuspicion>><<grespect>>
+	<br>
+	<<link [[Ignore|Prison Medical Work Angry Ignore]]>><<prison_guards 1>><<trauma 6>><<stress 6>><<pain 1>><</link>><<gpain>><<gtrauma>><<gstress>><<lsuspicion>>
+	<br>
+
 <<case 4>>
-    The cupboard rattles of its own accord, until <<methodical_guard 0>> stills it with a thwack.
-    <br><br>
+	The cupboard rattles of its own accord, until <<methodical_guard 0>> stills it with a thwack.
+	<br><br>
 
-    <<prison_medical_options>>
+	<<prison_medical_options>>
 <<default>>
-    The lights flicker.
-    <<if $hallucinations gte 2 and random(1, 10) is 10>>
-        For a moment, all the beds are filled with gangrel monstrosities. They leak from the covers, and seep over and through the floor. You blink, and the image is gone.<<gstress>><<stress 6>> 
-    <<else>>
-        It soon stops, but the light seems more dim.
-    <</if>>
-    <br><br>
-    <<prison_medical_options>>
+	The lights flicker.
+	<<if $hallucinations gte 2 and random(1, 10) is 10>>
+		For a moment, all the beds are filled with gangrel monstrosities. They leak from the covers, and seep over and through the floor. You blink, and the image is gone.<<gstress>><<stress 6>>
+	<<else>>
+		It soon stops, but the light seems more dim.
+	<</if>>
+	<br><br>
+	<<prison_medical_options>>
 <</switch>>
 
 :: Prison Medical Work Angry
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "Y-you shouldn't behave like that" !>> you protest.
+	<<gagged_speech "Y-you shouldn't behave like that" !>> you protest.
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Keep your mitts off" ,>> you say. <<gagged_speech "Or you'll lose them" .>>
+	<<gagged_speech "Keep your mitts off" ,>> you say. <<gagged_speech "Or you'll lose them" .>>
 <<else>>
-    <<gagged_speech "Keep your mitts off" ,>> you say.
+	<<gagged_speech "Keep your mitts off" ,>> you say.
 <</if>>
 <br><br>
 The <<person2>><<person>> grins. "Can't blame a <<personsimple>> for wanting a feel."
@@ -997,30 +997,30 @@ You slip the <<person2>><<person>> an extra tooth, and a couple for yourself. "T
 
 	<<skulduggeryuse>>
 
-    <<He>> tugs off <<his>> gloves. "I can't overlook this. Come with me."
-    <br><br>
+	<<He>> tugs off <<his>> gloves. "I can't overlook this. Come with me."
+	<br><br>
 
-    <<link [[Go quietly|Prison Punishment]]>><<endevent>><</link>>
-    <br>
-    <<link [[Refuse|Prison Medical Work Punishment Refuse]]>><</link>>
-    <br>
+	<<link [[Go quietly|Prison Punishment]]>><<endevent>><</link>>
+	<br>
+	<<link [[Refuse|Prison Medical Work Punishment Refuse]]>><</link>>
+	<br>
 <</if>>
 
 :: Prison Medical Work Punishment Refuse
 <<effects>>
 
 <<if $prison.shock is 1>>
-    <<methodical_guard 0 cap>> sighs, and reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
-    <br><br>
-    You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from medical.<<grespect>><<prison_inmates 1>>
-    <<bind>>
-    <br><br>
-    <<link [[Next|Prison Punishment]]>><<endevent>><</link>>
+	<<methodical_guard 0 cap>> sighs, and reaches into <<his>> shirt pocket. <span class="red">A terrible jolt runs through you,</span> emanating from your neck. It only lasts a moment, but it's enough to make you fall to the ground, and twitch.<<gtrauma>><<ggstress>><<gggpain>><<trauma 4>><<stress 4>><<pain 4>>
+	<br><br>
+	You're too hurt to resist as <<methodical_guard 0>> cuffs you, and drags you from medical.<<grespect>><<prison_inmates 1>>
+	<<bind>>
+	<br><br>
+	<<link [[Next|Prison Punishment]]>><<endevent>><</link>>
 <<else>>
-    <<methodical_guard 0 cap>> reaches into <<his>> pocket, then frowns. <<He>> turns to the next patient, and pretends nothing happened.
-    <br><br>
+	<<methodical_guard 0 cap>> reaches into <<his>> pocket, then frowns. <<He>> turns to the next patient, and pretends nothing happened.
+	<br><br>
 
-    <<prison_medical_options>>
+	<<prison_medical_options>>
 <</if>>
 
 :: Prison Medical Work Slip Refuse
@@ -1038,15 +1038,15 @@ You administer a single tooth as instructed. The <<person2>><<person>> sighs, bu
 <br><br>
 
 <<if $prison_job_change is undefined>>
-    <<link [[Ask to work in the laundry room|Prison Medical Work Laundry]]>><</link>>
-    <br>
-    <<if $prison.guards gte 80>>
-        <<link [[Ask to work on the spire|Prison Medical Work Spire]]>><</link>>
-        <br>
-    <<else>>
-        <span class="blue">You aren't trusted enough to be allowed on the spire.</span>
-        <br>
-    <</if>>
+	<<link [[Ask to work in the laundry room|Prison Medical Work Laundry]]>><</link>>
+	<br>
+	<<if $prison.guards gte 80>>
+		<<link [[Ask to work on the spire|Prison Medical Work Spire]]>><</link>>
+		<br>
+	<<else>>
+		<span class="blue">You aren't trusted enough to be allowed on the spire.</span>
+		<br>
+	<</if>>
 <</if>>
 <<link [[Leave|Prison Medical Work]]>><<endevent>><</link>>
 <br>
@@ -1064,7 +1064,7 @@ You administer a single tooth as instructed. The <<person2>><<person>> sighs, bu
 :: Prison Medical Work Spire
 <<effects>>
 
-<<methodical_guard 0 cap>> hesitates. "Few inmates are trusted on the spire," <<he>> says. "And fewer still want to work there. Fine. <span class="gold">"You start work there tomorrow."</span>
+<<methodical_guard 0 cap>> hesitates. "Few inmates are trusted on the spire," <<he>> says. "And fewer still want to work there. Fine. <span class="gold">You start work there tomorrow.</span>"
 <<set $prison_job_change to "spire">>
 <br><br>
 <<prison_medical_options>>
@@ -1088,51 +1088,51 @@ You administer a single tooth as instructed. The <<person2>><<person>> sighs, bu
 <br><br>
 <<set $rng to random(1, 5)>>
 <<switch $rng>>
-    <<case 1>>
-        <<beastNEWinit 5 "hawk">>
-        You carry a basket of fish with both hands. The <<beastsplural>> watch you, like statues, until the basket touches the floor. You turn and run as the creatures descend in a feeding frenzy.<<gstress>><<prison_birds 1>><<prison_birds_text>>
-        <br><br>
-
-        <<prison_spire_options>>
-    <<case 2>>
-        <<beastNEWinit 5 "hawk">><<person1>>
-        Small gems litter the ground around the beacon. Shark's teeth. You are expected to collect them.
-        <br><br>
-        <<set $skulduggerydifficulty to 800>>
-        <<link [[Be sneaky|Prison Spire Work Hard Sneak]]>><</link>><<skulduggerydifficulty>>
-        <br>
-        <<link [[Be quick|Prison Spire Work Hard Quick]]>><</link>><<athleticsdifficulty 800>>
-        <br>
-    <<case 3>>
-        <<generate_anxious_guard 0>><<person1>>
-        <<set $hawk_loot to either("cigar", "booze bottle", "knife", "mobile phone", "packet of sweets")>>
-        "Contraband," <<anxious_guard 0>> says, pointing at a <<endevent>><<beastNEWinit 1 "hawk">><<person1>><<beasttype>> sat alone near the tower's edge.
-        <<if $monster is 1>>
-            <<bHe>>'s holding a $hawk_loot in <<bhis>> hand.
-        <<else>>
-            <<bHe>>'s holding a $hawk_loot in <<bhis>> beak.
-        <</if>>
-        <br><br>
-
-        <<link [[Next|Prison Spire Work Get]]>><</link>>
-        <br>
-    <<case 4>>
-        <<beastNEWinit 2 "hawk">><<person1>>
-        The <<beastsplural>> journey between the tower and ocean, searching for pieces of driftwood and bringing them to the top of the beacon. This wood is sometimes discarded at once, thrown to splinter against the platform floor.
-        <br><br>
-        You clean up after them. They're too busy to pay you any attention.
-        <br><br>
-        <<prison_spire_options>>
-    <<default>>
-        <<generate_anxious_guard 0>><<person1>>
-        "Not much need doing right now," <<anxious_guard 0>> says. "Just help me keep an eye out."
-        <br><br>
-
-        <<link [[Chat|Prison Spire Work Chat 2]]>><<prison_rep anxious 1>><</link>><<glove>>
-        <br>
-        <<link [[Search for teeth|Prison Spire Work Search]]>><</link>><<difficulty 70>>
-        <br>
-        <<link [[Daydream|Prison Spire Work Daydream]]>><<stress -6>><</link>><<lstress>>
+	<<case 1>>
+		<<beastNEWinit 5 "hawk">>
+		You carry a basket of fish with both hands. The <<beastsplural>> watch you, like statues, until the basket touches the floor. You turn and run as the creatures descend in a feeding frenzy.<<gstress>><<prison_birds 1>><<prison_birds_text>>
+		<br><br>
+
+		<<prison_spire_options>>
+	<<case 2>>
+		<<beastNEWinit 5 "hawk">><<person1>>
+		Small gems litter the ground around the beacon. Shark's teeth. You are expected to collect them.
+		<br><br>
+		<<set $skulduggerydifficulty to 800>>
+		<<link [[Be sneaky|Prison Spire Work Hard Sneak]]>><</link>><<skulduggerydifficulty>>
+		<br>
+		<<link [[Be quick|Prison Spire Work Hard Quick]]>><</link>><<athleticsdifficulty 800>>
+		<br>
+	<<case 3>>
+		<<generate_anxious_guard 0>><<person1>>
+		<<set $hawk_loot to either("cigar", "booze bottle", "knife", "mobile phone", "packet of sweets")>>
+		"Contraband," <<anxious_guard 0>> says, pointing at a <<endevent>><<beastNEWinit 1 "hawk">><<person1>><<beasttype>> sat alone near the tower's edge.
+		<<if $monster is 1>>
+			<<bHe>>'s holding a $hawk_loot in <<bhis>> hand.
+		<<else>>
+			<<bHe>>'s holding a $hawk_loot in <<bhis>> beak.
+		<</if>>
+		<br><br>
+
+		<<link [[Next|Prison Spire Work Get]]>><</link>>
+		<br>
+	<<case 4>>
+		<<beastNEWinit 2 "hawk">><<person1>>
+		The <<beastsplural>> journey between the tower and ocean, searching for pieces of driftwood and bringing them to the top of the beacon. This wood is sometimes discarded at once, thrown to splinter against the platform floor.
+		<br><br>
+		You clean up after them. They're too busy to pay you any attention.
+		<br><br>
+		<<prison_spire_options>>
+	<<default>>
+		<<generate_anxious_guard 0>><<person1>>
+		"Not much need doing right now," <<anxious_guard 0>> says. "Just help me keep an eye out."
+		<br><br>
+
+		<<link [[Chat|Prison Spire Work Chat 2]]>><<prison_rep anxious 1>><</link>><<glove>>
+		<br>
+		<<link [[Search for teeth|Prison Spire Work Search]]>><</link>><<difficulty 70>>
+		<br>
+		<<link [[Daydream|Prison Spire Work Daydream]]>><<stress -6>><</link>><<lstress>>
 <</switch>>
 
 
@@ -1140,55 +1140,55 @@ You administer a single tooth as instructed. The <<person2>><<person>> sighs, bu
 <<effects>>
 
 <<if $prison.birds gte random(1, 30) and random(1, 5) isnot 5>>
-    You approach the <<beasttype>>. <<bHe>> observes you. Then <<bhe>> takes to the air, <span class="green">leaving the $hawk_loot behind.</span>
-    <br><br>
-    <<endevent>>
-    <<generate_anxious_guard 0>>
-    You return the $hawk_loot to <<anxious_guard 0>>. "That wasn't so bad," <<person1>><<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
-    <br><br>
-    <<unset $hawk_loot>>
-    <<prison_spire_options>>
+	You approach the <<beasttype>>. <<bHe>> observes you. Then <<bhe>> takes to the air, <span class="green">leaving the $hawk_loot behind.</span>
+	<br><br>
+	<<endevent>>
+	<<generate_anxious_guard 0>>
+	You return the $hawk_loot to <<anxious_guard 0>>. "That wasn't so bad," <<person1>><<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
+	<br><br>
+	<<unset $hawk_loot>>
+	<<prison_spire_options>>
 <<else>>
-    You approach the <<beasttype>>. <<bHe>> observes you, and curls <<bhis>> wings around the $hawk_loot.
-    <<if $monster is 1>>
-        "I keep," <<bhe>> says. "Go back to master." <<He>> sounds agitated.
-    <<else>>
-        <<bHe>> squarks, agitated.
-    <</if>>
-    <br><br>
-
-    <<link [[Soothe|Prison Spire Work Soothe]]>><</link>><<tendingdifficulty 1 1000>>
-    <br>
-    <<link [[Give up|Prison Spire Work Give Up]]>><<prison_birds 1>><<prison_guards -1>><</link>><<gsuspicion>><<prison_birds_text>>
-    <br>
+	You approach the <<beasttype>>. <<bHe>> observes you, and curls <<bhis>> wings around the $hawk_loot.
+	<<if $monster is 1>>
+		"I keep," <<bhe>> says. "Go back to master." <<He>> sounds agitated.
+	<<else>>
+		<<bHe>> squarks, agitated.
+	<</if>>
+	<br><br>
+
+	<<link [[Soothe|Prison Spire Work Soothe]]>><</link>><<tendingdifficulty 1 1000>>
+	<br>
+	<<link [[Give up|Prison Spire Work Give Up]]>><<prison_birds 1>><<prison_guards -1>><</link>><<gsuspicion>><<prison_birds_text>>
+	<br>
 <</if>>
 
 :: Prison Spire Work Soothe
 <<effects>>
 
 <<if $tendingSuccess>>
-    You sing, <span class="green">and a soothing, melodic tune emerges from somewhere deep.</span> The <<beasttype>> curls up, and falls asleep.
-    <br><br>
-    <<endevent>>
-    <<generate_anxious_guard 0>>
-    You return the $hawk_loot to <<anxious_guard 0>>. "Dunno how you do it," <<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
-    <br><br>
-    <<unset $hawk_loot>>
-    <<prison_spire_options>>
+	You sing, <span class="green">and a soothing, melodic tune emerges from somewhere deep.</span> The <<beasttype>> curls up, and falls asleep.
+	<br><br>
+	<<endevent>>
+	<<generate_anxious_guard 0>>
+	You return the $hawk_loot to <<anxious_guard 0>>. "Dunno how you do it," <<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
+	<br><br>
+	<<unset $hawk_loot>>
+	<<prison_spire_options>>
 <<else>>
-    "Won't you be a good birdy?" you ask.
-    <<if $monster is 1>>
-        <span class="red"><<bHe>> laughs,</span> unimpressed.
-    <<else>>
-        <<bHe>> continues to watch you, <span class="red">unimpressed.</span>
-    <</if>>
-    <br><br>
-    
-    
-    <<link [[Take by force|Prison Spire Work Force]]>><</link>><<difficulty 50>>
-    <br>
-    <<link [[Give up|Prison Spire Work Give Up]]>><<prison_birds 1>><<prison_guards -1>><</link>><<gsuspicion>><<prison_birds_text>>
-    <br>
+	"Won't you be a good birdy?" you ask.
+	<<if $monster is 1>>
+		<span class="red"><<bHe>> laughs,</span> unimpressed.
+	<<else>>
+		<<bHe>> continues to watch you, <span class="red">unimpressed.</span>
+	<</if>>
+	<br><br>
+
+
+	<<link [[Take by force|Prison Spire Work Force]]>><</link>><<difficulty 50>>
+	<br>
+	<<link [[Give up|Prison Spire Work Give Up]]>><<prison_birds 1>><<prison_guards -1>><</link>><<gsuspicion>><<prison_birds_text>>
+	<br>
 <</if>>
 
 :: Prison Spire Work Force
@@ -1196,25 +1196,25 @@ You administer a single tooth as instructed. The <<person2>><<person>> sighs, bu
 
 You reach for the $hawk_loot.
 <<if $monster is 1>>
-    The <<beasttype>> tries to pull it away, but you grasp it firm.
+	The <<beasttype>> tries to pull it away, but you grasp it firm.
 <<else>>
-    The <<beasttype>> tries to pull it away with <<bhis>> beak, but you grasp it firm.
+	The <<beasttype>> tries to pull it away with <<bhis>> beak, but you grasp it firm.
 <</if>>
 <<if random(1, 2) is 2>>
-    After a brief tug of war, <span class="green"><<bhe>> yields,</span> and takes to the air.
-    <br><br>
-    <<endevent>>
-    <<generate_anxious_guard 0>>
-    You return the $hawk_loot to <<anxious_guard 0>>. "Dunno how you do it," <<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
-    <br><br>
-    <<unset $hawk_loot>>
-    <<prison_spire_options>>
+	After a brief tug of war, <span class="green"><<bhe>> yields,</span> and takes to the air.
+	<br><br>
+	<<endevent>>
+	<<generate_anxious_guard 0>>
+	You return the $hawk_loot to <<anxious_guard 0>>. "Dunno how you do it," <<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
+	<br><br>
+	<<unset $hawk_loot>>
+	<<prison_spire_options>>
 <<else>>
-    After a brief tug of war, you manage to get the upper hand. The <<beasttype>> screeches, <span class="red">and lunges after <<bhis>> treasure.</span>
-    <br><br>
+	After a brief tug of war, you manage to get the upper hand. The <<beasttype>> screeches, <span class="red">and lunges after <<bhis>> treasure.</span>
+	<br><br>
 
-    <<link [[Next|Prison Spire Work Fight]]>><<set $molestationstart to 1>><</link>>
-    <br>
+	<<link [[Next|Prison Spire Work Fight]]>><<set $molestationstart to 1>><</link>>
+	<br>
 <</if>>
 
 
@@ -1227,8 +1227,8 @@ You reach for the $hawk_loot.
 	<<molested>>
 
 	<<beastCombatInit>>
-    <<set $enemyanger += 200>>
-    <<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<set $enemytrust -= 100>>
 <</if>>
 
 <<effects>>
@@ -1265,12 +1265,12 @@ You reach for the $hawk_loot.
 	<<clotheson>>
 	<<endcombat>>
 
-    <<endevent>>
-    <<generate_anxious_guard 0>>
-    <<anxious_guard 0 cap>> awaits you. "Don't worry," <<he>> grins. "I'll delete the footage."<<gstress>><<stress 6>><<gattention prison>><<prison_attention 1>><<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
-    <br><br>
-    <<unset $hawk_loot>>
-    <<prison_spire_options>>
+	<<endevent>>
+	<<generate_anxious_guard 0>>
+	<<anxious_guard 0 cap>> awaits you. "Don't worry," <<he>> grins. "I'll delete the footage."<<gstress>><<stress 6>><<gattention prison>><<prison_attention 1>><<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
+	<br><br>
+	<<unset $hawk_loot>>
+	<<prison_spire_options>>
 
 <<else>>
 
@@ -1280,12 +1280,12 @@ You reach for the $hawk_loot.
 	<<tearful>> you return to the cabin.
 	<br><br>
 
-    <<endevent>>
-    <<generate_anxious_guard 0>>
-    You return the $hawk_loot to <<anxious_guard 0>>. "Dunno how you do it," <<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
-    <br><br>
-    <<unset $hawk_loot>>
-    <<prison_spire_options>>
+	<<endevent>>
+	<<generate_anxious_guard 0>>
+	You return the $hawk_loot to <<anxious_guard 0>>. "Dunno how you do it," <<he>> says.<<glove>><<lsuspicion>><<prison_rep anxious 1>><<prison_guards 1>>
+	<br><br>
+	<<unset $hawk_loot>>
+	<<prison_spire_options>>
 
 <</if>>
 
@@ -1304,11 +1304,11 @@ You reach for the $hawk_loot.
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "I-I'm too scared" ,>> you say. <<gagged_speech "You'll have to do it" .>>
+	<<gagged_speech "I-I'm too scared" ,>> you say. <<gagged_speech "You'll have to do it" .>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "You go" ,>> you say. <<gagged_speech "You're getting paid" .>>
+	<<gagged_speech "You go" ,>> you say. <<gagged_speech "You're getting paid" .>>
 <<else>>
-    <<gagged_speech "I'm sorry" ,>> you say. <<gagged_speech "But no" .>>
+	<<gagged_speech "I'm sorry" ,>> you say. <<gagged_speech "But no" .>>
 <</if>>
 <br><br>
 
@@ -1335,15 +1335,15 @@ You walk slowly, hoping not to attract notice, crouching to pick up the glitteri
 	<span class="green">The <<beastsplural>> are too busy preening and grooming to pay you any attention.</span>
 	<br><br>
 
-    <<endevent>>
+	<<endevent>>
+
+	"Nice work," <<generate_anxious_guard 0>><<anxious_guard 0>> says.
+	<<if $prison.anxious gte 60>>
+		"You can keep a couple, but don't tell the others."<<prison_teeth_text 2>><<prison_teeth 2>>
+	<</if>>
+	<<lsuspicion>><<prison_guards -1>>
+	<br><br>
 
-    "Nice work," <<generate_anxious_guard 0>><<anxious_guard 0>> says.
-    <<if $prison.anxious gte 60>>
-        "You can keep a couple, but don't tell the others."<<prison_teeth_text 2>><<prison_teeth 2>>
-    <</if>>
-    <<lsuspicion>><<prison_guards -1>>
-    <br><br>
-    
 
 	<<skulduggeryuse>>
 
@@ -1352,20 +1352,20 @@ You walk slowly, hoping not to attract notice, crouching to pick up the glitteri
 <<else>>
 
 	<<beastNEWinit 5 "hawk">><<person1>>
-    <span class="red">One <<beasttype>> lounging on the beacon turns <<bhis>> head to face you.</span>
-    <<if $monster is 1>>
-        <<bHe>> hops to ground. "Taking what isn't yours?" <<bhe>> says. "Drop them."
-    <<else>>
-        <<bHe>> hops to the ground and paces towards you, eyes on the shark's teeth.
-    <</if>>
-    <br><br>
+	<span class="red">One <<beasttype>> lounging on the beacon turns <<bhis>> head to face you.</span>
+	<<if $monster is 1>>
+		<<bHe>> hops to ground. "Taking what isn't yours?" <<bhe>> says. "Drop them."
+	<<else>>
+		<<bHe>> hops to the ground and paces towards you, eyes on the shark's teeth.
+	<</if>>
+	<br><br>
 
 	<<skulduggeryuse>>
 
 	<<link [[Drop the teeth|Prison Spire Work Drop]]>><<prison_guards -1>><</link>><<gsuspicion>>
-    <br>
-    <<link [[Threaten|Prison Spire Work Threaten]]>><</link>><<physiquedifficulty 10000 20000>>
-    <br>
+	<br>
+	<<link [[Threaten|Prison Spire Work Threaten]]>><</link>><<physiquedifficulty 10000 20000>>
+	<br>
 
 <</if>>
 
@@ -1381,43 +1381,43 @@ The <<beasttype>> waits for you to return to the cabin before collecting the tee
 <<effects>>
 
 <<if $submissive gte 1150>>
-    <<gagged_speech "I-I'm just doing what I'm told" ,>> you say. <<gagged_speech "Don't get in the way" .>>
+	<<gagged_speech "I-I'm just doing what I'm told" ,>> you say. <<gagged_speech "Don't get in the way" .>>
 <<elseif $submissive lte 850>>
-    <<gagged_speech "Best be gone" ,>> you say. <<gagged_speech "Or I'll break your brittle bones" .>>
+	<<gagged_speech "Best be gone" ,>> you say. <<gagged_speech "Or I'll break your brittle bones" .>>
 <<else>>
-    <<gagged_speech "I'm working" ,>> you say. <<gagged_speech "Don't get in my way" .>>
+	<<gagged_speech "I'm working" ,>> you say. <<gagged_speech "Don't get in my way" .>>
 <</if>>
 <br><br>
 <<if $physiqueSuccess>>
-    The <<beasttype>> sizes you up, <span class="green">then flies back to the beacon.</span>
-    <br><br>
-    <<endevent>>
-    "Nice work," <<generate_anxious_guard 0>><<anxious_guard 0>> says once you're back in the cabin.
-    <<if $prison.anxious gte 60>>
-        "You can keep a couple, but don't tell the others."<<prison_teeth_text 2>><<prison_teeth 2>>
-    <</if>>
-    <<lsuspicion>><<prison_guards -1>>
-    <br><br>
+	The <<beasttype>> sizes you up, <span class="green">then flies back to the beacon.</span>
+	<br><br>
+	<<endevent>>
+	"Nice work," <<generate_anxious_guard 0>><<anxious_guard 0>> says once you're back in the cabin.
+	<<if $prison.anxious gte 60>>
+		"You can keep a couple, but don't tell the others."<<prison_teeth_text 2>><<prison_teeth 2>>
+	<</if>>
+	<<lsuspicion>><<prison_guards -1>>
+	<br><br>
 <<else>>
-    The <<beasttype>> sizes you up, <span class="red">then steps closer.</span>
-    <<if $monster is 1>>
-        "Maybe I'll throw you in the sea," <<bhe>> says. "You look light enough."
-    <</if>>
-    <br><br>
+	The <<beasttype>> sizes you up, <span class="red">then steps closer.</span>
+	<<if $monster is 1>>
+		"Maybe I'll throw you in the sea," <<bhe>> says. "You look light enough."
+	<</if>>
+	<br><br>
 
 	<<bHe>> beats <<bhis>> wings and launches at you, colliding with your chest and knocking you prone.<<gstress>><<gpain>><<stress 6>><<pain 4>>
-    <br><br>
+	<br><br>
 
-    <<if $monster is 1>>
-        <<bHe>> gathers the scattered teeth as you struggle to stand, then flies back to the beacon.
-    <<else>>
-        <<bHe>> takes each of the scattered teeth in <<bhis>> beak, swallowing them before moving to the next. <<bHe>> flies back to the beacon as you stagger to your feet.
-    <</if>>
-    <<gsuspicion>><<prison_guards 1>>
-    <br><br>
+	<<if $monster is 1>>
+		<<bHe>> gathers the scattered teeth as you struggle to stand, then flies back to the beacon.
+	<<else>>
+		<<bHe>> takes each of the scattered teeth in <<bhis>> beak, swallowing them before moving to the next. <<bHe>> flies back to the beacon as you stagger to your feet.
+	<</if>>
+	<<gsuspicion>><<prison_guards 1>>
+	<br><br>
 
 <</if>>
-    
+
 <<prison_spire_options>>
 
 :: Prison Spire Work Hard Quick
@@ -1425,39 +1425,39 @@ The <<beasttype>> waits for you to return to the cabin before collecting the tee
 
 You run around the beacon, scooping the teeth without stopping.
 <<if $athleticsSuccess>>
-    <<beastNEWinit 5 hawk>><<person1>>
-    The <<beastsplural>> cease their grooming to watch you, <span class="green">but you're back in the cabin</span> before they can summon the energy to give chase.
-    <br><br>
-
-    <<endevent>>
-    "Nice work," <<generate_anxious_guard 0>><<anxious_guard 0>> says once you're back in the cabin.
-    <<if $prison.anxious gte 60>>
-        "You can keep a couple, but don't tell the others."<<prison_teeth_text 2>><<prison_teeth 2>>
-    <</if>>
-    <<lsuspicion>><<prison_guards -1>>
-    <br><br>
-
-    <<prison_spire_options>>
+	<<beastNEWinit 5 hawk>><<person1>>
+	The <<beastsplural>> cease their grooming to watch you, <span class="green">but you're back in the cabin</span> before they can summon the energy to give chase.
+	<br><br>
+
+	<<endevent>>
+	"Nice work," <<generate_anxious_guard 0>><<anxious_guard 0>> says once you're back in the cabin.
+	<<if $prison.anxious gte 60>>
+		"You can keep a couple, but don't tell the others."<<prison_teeth_text 2>><<prison_teeth 2>>
+	<</if>>
+	<<lsuspicion>><<prison_guards -1>>
+	<br><br>
+
+	<<prison_spire_options>>
 <<else>>
-    <<beastNEWinit 5 hawk>><<person1>>
-    The <<beastsplural>> cease their grooming to watch you. In your haste, <span class="red">you trip over piece of driftwood.</span><<gstress>><<gpain>><<stress 6>><<pain 4>>
-    <br><br>
-    <<if $monster is 1>>
-        The <<beastsplural>> burst into laugher.
-    <<else>>
-        The <<beastsplural>> screech in mirth.
-    <</if>>
-    One hops off the beacon, landing a few feet away from you.
-    <<if $monster is 1>>
-        "Taking what isn't yours?" <<bhe>> says. "Drop them."
-    <<else>>
-        <<bHe>> eyes up the shark's teeth.
-    <</if>>
-    <br><br>
+	<<beastNEWinit 5 hawk>><<person1>>
+	The <<beastsplural>> cease their grooming to watch you. In your haste, <span class="red">you trip over piece of driftwood.</span><<gstress>><<gpain>><<stress 6>><<pain 4>>
+	<br><br>
+	<<if $monster is 1>>
+		The <<beastsplural>> burst into laugher.
+	<<else>>
+		The <<beastsplural>> screech in mirth.
+	<</if>>
+	One hops off the beacon, landing a few feet away from you.
+	<<if $monster is 1>>
+		"Taking what isn't yours?" <<bhe>> says. "Drop them."
+	<<else>>
+		<<bHe>> eyes up the shark's teeth.
+	<</if>>
+	<br><br>
 	<<link [[Drop the teeth|Prison Spire Work Drop]]>><<prison_guards -1>><</link>><<gsuspicion>>
-    <br>
-    <<link [[Threaten|Prison Spire Work Threaten]]>><</link>><<physiquedifficulty 10000 20000>>
-    <br>
+	<br>
+	<<link [[Threaten|Prison Spire Work Threaten]]>><</link>><<physiquedifficulty 10000 20000>>
+	<br>
 
 <</if>>
 
@@ -1469,15 +1469,15 @@ You run around the beacon, scooping the teeth without stopping.
 
 
 <<if $prison_job_change is undefined>>
-    <<link [[Ask to work in the laundry room|Prison Spire Work Laundry]]>><</link>>
-    <br>
-    <<if $prison.guards gte 60>>
-        <<link [[Ask to work in medical|Prison Spire Work Medical]]>><</link>>
-        <br>
-    <<else>>
-        <span class="blue">You aren't trusted enough to work in medical.</span>
-        <br>
-    <</if>>
+	<<link [[Ask to work in the laundry room|Prison Spire Work Laundry]]>><</link>>
+	<br>
+	<<if $prison.guards gte 60>>
+		<<link [[Ask to work in medical|Prison Spire Work Medical]]>><</link>>
+		<br>
+	<<else>>
+		<span class="blue">You aren't trusted enough to work in medical.</span>
+		<br>
+	<</if>>
 <</if>>
 <<link [[Leave|Prison Spire Work]]>><<endevent>><</link>>
 <br>
@@ -1506,16 +1506,16 @@ You chat with <<anxious_guard 0>>.
 
 <<set $rng to random(1, 5)>>
 <<switch $rng>>
-    <<case 1>>
-        "I can't believe they stuck me up here," <<he>> says. "I'm afraid of heights as well."
-    <<case 2>>
-        "Used to just use inmates for this," <<he>> says. "But they kept going missing."
-    <<case 3>>
-        "This is new," <<he>> says, tapping the concrete wall. "Can't imagine this without it."
-    <<case 4>>
-        "Not many inmates allowed up here," <<he>> says. "For your safety."
-    <<default>>
-        "Like to see specs try to handle this job," <<he>> says. "Probably high on shark's teeth right now."
+	<<case 1>>
+		"I can't believe they stuck me up here," <<he>> says. "I'm afraid of heights as well."
+	<<case 2>>
+		"Used to just use inmates for this," <<he>> says. "But they kept going missing."
+	<<case 3>>
+		"This is new," <<he>> says, tapping the concrete wall. "Can't imagine this without it."
+	<<case 4>>
+		"Not many inmates allowed up here," <<he>> says. "For your safety."
+	<<default>>
+		"Like to see specs try to handle this job," <<he>> says. "Probably high on shark's teeth right now."
 <</switch>>
 <br><br>
 
@@ -1527,11 +1527,11 @@ You chat with <<anxious_guard 0>>.
 You search for shark's teeth near the edge of the tower, away from the beacon. You search beneath scattered driftwood, and within the platform's shattered surface.
 <<set $rng to random(1, 10)>>
 <<if $rng lte 1>>
-    You upturn a shell, <span class="green">and find several gems beneath.</span><<prison_teeth 10>><<prison_teeth_text 10>>
+	You upturn a shell, <span class="green">and find several gems beneath.</span><<prison_teeth 10>><<prison_teeth_text 10>>
 <<elseif $rng lte 7>>
-    <span class="green">You manage to find a few.</span><<prison_teeth 3>><<prison_teeth_text 3>>
+	<span class="green">You manage to find a few.</span><<prison_teeth 3>><<prison_teeth_text 3>>
 <<else>>
-    You find some actual shark's teeth, but none of the coveted gems.
+	You find some actual shark's teeth, but none of the coveted gems.
 <</if>>
 <br><br>
 
@@ -1548,22 +1548,22 @@ You sit and watch the <<beastsplural>>, and let your mind wander.
 
 <<set $rng to random(1, 5)>>
 <<switch $rng>>
-    <<case 1>>
-        The <<beastsplural>> have made their homes on the roof of the beacon. Nests of driftwood hang over the edges.
-    <<case 2>>
-        <<if $weather is "clear">>
-            You can see the coast on the horizon, and the unnatural blotch that is the town. You try to pick out landmarks.
-        <<elseif $weather is "rain">>
-            Rain hammers the windows, almost obscuring the edge of the platform.
-        <<else>>
-            You could see the ocean from here, if the air were clearer.
-        <</if>>
-    <<case 3>>
-        A <<beasttype>> lands in front of the cabin, and watches you through the window. <<anxious_guard 0 cap>> smacks the glass to scare <<bhim>> away.
-    <<case 4>>
-        A pair of <<beasttype>>'s scrap over something wet and red, until a third swoops in and steals the prize.
-    <<default>>
-        You lurch, as if the spire itself moved. <<person1>><<anxious_guard 0 cap>> sits upright. "Happens sometimes," <<he>> says. "N-nothing to worry about."<<gstress>><<stress 6>>
+	<<case 1>>
+		The <<beastsplural>> have made their homes on the roof of the beacon. Nests of driftwood hang over the edges.
+	<<case 2>>
+		<<if $weather is "clear">>
+			You can see the coast on the horizon, and the unnatural blotch that is the town. You try to pick out landmarks.
+		<<elseif $weather is "rain">>
+			Rain hammers the windows, almost obscuring the edge of the platform.
+		<<else>>
+			You could see the ocean from here, if the air were clearer.
+		<</if>>
+	<<case 3>>
+		A <<beasttype>> lands in front of the cabin, and watches you through the window. <<anxious_guard 0 cap>> smacks the glass to scare <<bhim>> away.
+	<<case 4>>
+		A pair of <<beasttype>>'s scrap over something wet and red, until a third swoops in and steals the prize.
+	<<default>>
+		You lurch, as if the spire itself moved. <<person1>><<anxious_guard 0 cap>> sits upright. "Happens sometimes," <<he>> says. "N-nothing to worry about."<<gstress>><<stress 6>>
 <</switch>>
 <br><br>
 
@@ -1573,11 +1573,11 @@ You sit and watch the <<beastsplural>>, and let your mind wander.
 <<effects>>
 
 <<if $phase is 1>>
-    You strut across the yard like you own it, giving suggestive looks, and lewd compliments. Some inmates flirt back, others just watch with hungry eyes.
-    <<promiscuity2>>
+	You strut across the yard like you own it, giving suggestive looks, and lewd compliments. Some inmates flirt back, others just watch with hungry eyes.
+	<<promiscuity2>>
 <<else>>
-    You spring across the yard, giving bawdy compliments and checking out toned physiques. The inmates take notice, and leer back.
-    <<promiscuity1>>    
+	You spring across the yard, giving bawdy compliments and checking out toned physiques. The inmates take notice, and leer back.
+	<<promiscuity1>>
 <</if>>
 
 
@@ -1589,7 +1589,7 @@ You have their attention.
 <<link [[Encourage those working out|Prison Yard Flirt Encourage]]>><</link>>
 <br>
 <<if $demon gte 6>>
-    <<link [[Incite lust|Prison Yard Flirt Fix]]>><</link>><<demon>>
+	<<link [[Incite lust|Prison Yard Flirt Fix]]>><</link>><<demon>>
 <</if>>
 
 
@@ -1598,56 +1598,56 @@ You have their attention.
 
 <<generate1>><<person1>>
 <<if $submissive gte 1150>>
-    "D-does anyone have spare teeth?" you ask. "I could really use them."
+	"D-does anyone have spare teeth?" you ask. "I could really use them."
 <<elseif $submissive lte 850>>
-    "Any of you scum have some teeth to spare?" you ask. "I could use them."
+	"Any of you scum have some teeth to spare?" you ask. "I could use them."
 <<else>>
-    "I'm a little short on teeth," you say. "Could anyone help me out?"
+	"I'm a little short on teeth," you say. "Could anyone help me out?"
 <</if>>
 <br><br>
 
 <<if $rng gte 81>>
-    <<set _rng to random(7, 15)>>
-    <span class="green">A <<person>> throws you a small brown bag.</span> <<prison_teeth _rng>><<prison_teeth_text _rng>>
-    <br><br>
+	<<set _rng to random(7, 15)>>
+	<span class="green">A <<person>> throws you a small brown bag.</span> <<prison_teeth _rng>><<prison_teeth_text _rng>>
+	<br><br>
 
-    <<link [[Next|Prison Yard]]>><<endevent>><</link>>
-    <br>
+	<<link [[Next|Prison Yard]]>><<endevent>><</link>>
+	<br>
 <<elseif $rng gte 41>>
-    <<set _rng to random(7, 15)>>
-    <<if $exposed gte 1>>
-        A <<person>> leers at your <<lewdness>>, <span class="green">then throws you a small brown bag.</span> <<prison_teeth _rng>><<prison_teeth_text _rng>>
-        <br><br>
-
-        <<link [[Next|Prison Yard]]>><<endevent>><</link>>
-        <br>
-    <<else>>
-        A <<person>> leers at you. "Aye," <<he>> says. "If you earn it first. I know somewhere quiet."
-        <br><br>
-
-        <<if $promiscuity gte 35>>
-            <<link [[Accept|Prison Yard Flirt Accept]]>><</link>><<promiscuous3>>
-            <br>
-        <<else>>
-            <span class="blue">You're not promiscuous enough to take up <<his>> offer.</span>
-            <br>
-        <</if>>
-        <<link [[Refuse|Prison Yard]]>><<endevent>><</link>>
-        <br>
-    <</if>>
+	<<set _rng to random(7, 15)>>
+	<<if $exposed gte 1>>
+		A <<person>> leers at your <<lewdness>>, <span class="green">then throws you a small brown bag.</span> <<prison_teeth _rng>><<prison_teeth_text _rng>>
+		<br><br>
+
+		<<link [[Next|Prison Yard]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		A <<person>> leers at you. "Aye," <<he>> says. "If you earn it first. I know somewhere quiet."
+		<br><br>
+
+		<<if $promiscuity gte 35>>
+			<<link [[Accept|Prison Yard Flirt Accept]]>><</link>><<promiscuous3>>
+			<br>
+		<<else>>
+			<span class="blue">You're not promiscuous enough to take up <<his>> offer.</span>
+			<br>
+		<</if>>
+		<<link [[Refuse|Prison Yard]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <<else>>
-    A <<person>> leers at you. "Aye," <<he>> says. "If you earn it first. I know somewhere quiet."
-    <br><br>
-
-    <<if $promiscuity gte 35>>
-        <<link [[Accept|Prison Yard Flirt Accept]]>><</link>><<promiscuous3>>
-        <br>
-    <<else>>
-        <span class="blue">You're not promiscuous enough to take up <<his>> offer.</span>
-        <br>
-    <</if>>
-    <<link [[Refuse|Prison Yard]]>><<endevent>><</link>>
-    <br>
+	A <<person>> leers at you. "Aye," <<he>> says. "If you earn it first. I know somewhere quiet."
+	<br><br>
+
+	<<if $promiscuity gte 35>>
+		<<link [[Accept|Prison Yard Flirt Accept]]>><</link>><<promiscuous3>>
+		<br>
+	<<else>>
+		<span class="blue">You're not promiscuous enough to take up <<his>> offer.</span>
+		<br>
+	<</if>>
+	<<link [[Refuse|Prison Yard]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Prison Yard Flirt Accept
@@ -1655,7 +1655,6 @@ You have their attention.
 
 You take the <<person>> by the hand, and lead <<him>> into the prison block. Other inmates try to tag along, but <<he>> shouts them off while grabbing your arm.
 <<promiscuity3>>
-<br><br>
 
 <<He>> leads you to <<his>> cell, and shoves you onto the bed.
 <br><br>
@@ -1671,7 +1670,7 @@ You take the <<person>> by the hand, and lead <<him>> into the prison block. Oth
 	<<neutral 1>>
 
 	<<maninit>>
-	
+
 <</if>>
 <<effects>>
 <<effectsman>><<man>>
@@ -1695,15 +1694,15 @@ You take the <<person>> by the hand, and lead <<him>> into the prison block. Oth
 	<<ejaculation>>
 	The <<person>> leans back, a relieved look on <<his>> face. "I needed that," <<he>> says. "Not enough sluts in here."<<ghope>><<prison_hope 1>>
 	<br><br>
-    <<set _rng to random(7, 15)>>
-     "Here," <<he>> says, rummaging around <<his>> cell. <span class="green"><<He>> grabs a small brown bag and throws it to you.</span> <<prison_teeth _rng>><<prison_teeth_text _rng>>
-    <br><br>
+	<<set _rng to random(7, 15)>>
+	"Here," <<he>> says, rummaging around <<his>> cell. <span class="green"><<He>> grabs a small brown bag and throws it to you.</span> <<prison_teeth _rng>><<prison_teeth_text _rng>>
+	<br><br>
 	<<tearful>> you leave the cell.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Block]]>><</link>>
-    <br>
+	<br>
 <<elseif $enemyhealth lte 0>>
 	The <<person>> holds a bedsheet between <<him>> and you, as if that would offer protection. "Fuck," <<he>> says. "I get it. Just leave me alone okay?"<<grespect>><<prison_inmates 1>>
 	<br><br>
@@ -1712,7 +1711,7 @@ You take the <<person>> by the hand, and lead <<him>> into the prison block. Oth
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Block]]>><</link>>
-    <br>
+	<br>
 <<else>>
 	"You gotta be careful in here," <<he>> says. "Not everyone's as nice as me."<<lrespect>><<prison_inmates -1>>
 	<br><br>
@@ -1721,7 +1720,7 @@ You take the <<person>> by the hand, and lead <<him>> into the prison block. Oth
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Block]]>><</link>>
-    <br>
+	<br>
 <</if>>
 
 
@@ -1730,17 +1729,17 @@ You take the <<person>> by the hand, and lead <<him>> into the prison block. Oth
 
 <<generate1>><<person1>>
 <<if $rng gte 51>>
-    You sit on a <<persons>> back, one leg resting on the other, shouting encouragement as <<he>> does push-ups. The others look jealous, but you can't sit on all of them at once.
+	You sit on a <<persons>> back, one leg resting on the other, shouting encouragement as <<he>> does push-ups. The others look jealous, but you can't sit on all of them at once.
 <<else>>
-    You march between inmates doing bench presses,
-    <<if $submissive gte 1150>>
-        telling everyone to do their best.
-    <<elseif $submissive lte 850>>
-        shouting encouragements.
-    <<else>>
-        encouraging them as best you can.
-    <</if>>
-    They seem to appreciate it.
+	You march between inmates doing bench presses,
+	<<if $submissive gte 1150>>
+		telling everyone to do their best.
+	<<elseif $submissive lte 850>>
+		shouting encouragements.
+	<<else>>
+		encouraging them as best you can.
+	<</if>>
+	They seem to appreciate it.
 <</if>>
 <br><br>
 
@@ -1791,26 +1790,26 @@ You laugh as a pair of arms grasp you from behind.
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 	You leave them lying on the grass, spent. <<tearful>> you lick your fingers.<<gghope>><<prison_hope 3>>
-    <br><br>
+	<br><br>
 
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Yard]]>><</link>>
-    <br>
+	<br>
 <<elseif $enemyhealth lte 0>>
 	You leave them lying on grass, defeated. <<tearful>> you strut away.<<ggrespect>><<prison_inmates 3>>
-    <br><br>
+	<br><br>
 
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Yard]]>><</link>>
-    <br>
+	<br>
 <<else>>
 	They blink, as if awakening from a dream. <<tearful>> you strut away.
-    <br><br>
-    
+	<br><br>
+
 	<<clotheson>>
 	<<endcombat>>
 	<<link [[Next|Prison Yard]]>><</link>>
-    <br>
+	<br>
 <</if>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-prison/wren.twee b/game/overworld-town/loc-prison/wren.twee
index 0a7588da0ad6719855fbb1158091e63418c12c30..62a0f6242ce73ab9d0b7afac38e4ffa73292898e 100644
--- a/game/overworld-town/loc-prison/wren.twee
+++ b/game/overworld-town/loc-prison/wren.twee
@@ -39,80 +39,80 @@ Wren smiles at you. "If you've got teeth," <<he>> says. "I have some goodies fro
 <br><br>
 
 <<if !$prison.hammer>>
-    Small hammer: 20 teeth
-    <br>
-    <<if $prison.teeth gte 20>>
-        <<link [[Buy|Prison Wren Hammer]]>><<prison_teeth -20>><<set $prison.hammer to 1>><</link>>
-    <<else>>
-        <span class="blue">You need more teeth.</span>
-    <</if>>
-    <br><br>
+	Small hammer: 20 teeth
+	<br>
+	<<if $prison.teeth gte 20>>
+		<<link [[Buy|Prison Wren Hammer]]>><<prison_teeth -20>><<set $prison.hammer to 1>><</link>>
+	<<else>>
+		<span class="blue">You need more teeth.</span>
+	<</if>>
+	<br><br>
 <</if>>
 <<if $prison.mirror isnot 1>>
-    Mirror: 30 teeth
-    <br>
-    <<if $prison.teeth gte 30>>
-        <<link [[Buy|Prison Wren Mirror]]>><<prison_teeth -30>><<set $prison.mirror to 1>><</link>>
-    <<else>>
-        <span class="blue">You need more teeth.</span>
-    <</if>>
-    <br><br>
+	Mirror: 30 teeth
+	<br>
+	<<if $prison.teeth gte 30>>
+		<<link [[Buy|Prison Wren Mirror]]>><<prison_teeth -30>><<set $prison.mirror to 1>><</link>>
+	<<else>>
+		<span class="blue">You need more teeth.</span>
+	<</if>>
+	<br><br>
 <</if>>
 <<if $prison.code isnot 1>>
-    Code to the locked room in medical: 50 teeth
-    <br>
-    <<if $prison.teeth gte 50>>
-        <<link [[Buy|Prison Wren Code]]>><<prison_teeth -50>><<set $prison.code to 1>><</link>>
-    <<else>>
-        <span class="blue">You need more teeth.</span>
-    <</if>>
-    <br><br>
+	Code to the locked room in medical: 50 teeth
+	<br>
+	<<if $prison.teeth gte 50>>
+		<<link [[Buy|Prison Wren Code]]>><<prison_teeth -50>><<set $prison.code to 1>><</link>>
+	<<else>>
+		<span class="blue">You need more teeth.</span>
+	<</if>>
+	<br><br>
 <</if>>
 <<if $prison.poster isnot "man">>
-    Poster of a sexy gentleman: 50 teeth
-    <br>
-    <<if $prison.teeth gte 50>>
-        <<link [[Buy|Prison Wren Poster]]>><<prison_teeth -50>><<set $prison.poster to "man">><</link>><<if $prison.poster>> <i>Will replace existing poster.</i><</if>>
-    <<else>>
-        <span class="blue">You need more teeth.</span>
-    <</if>>
-    <br><br>
+	Poster of a sexy gentleman: 50 teeth
+	<br>
+	<<if $prison.teeth gte 50>>
+		<<link [[Buy|Prison Wren Poster]]>><<prison_teeth -50>><<set $prison.poster to "man">><</link>><<if $prison.poster>> <i>Will replace existing poster.</i><</if>>
+	<<else>>
+		<span class="blue">You need more teeth.</span>
+	<</if>>
+	<br><br>
 <</if>>
 <<if $prison.poster isnot "woman">>
-    Poster of a sexy lady: 50 teeth
-    <br>
-    <<if $prison.teeth gte 50>>
-        <<link [[Buy|Prison Wren Poster]]>><<prison_teeth -50>><<set $prison.poster to "woman">><</link>><<if $prison.poster>> <i>Will replace existing poster.</i><</if>>
-    <<else>>
-        <span class="blue">You need more teeth.</span>
-    <</if>>
-    <br><br>
+	Poster of a sexy lady: 50 teeth
+	<br>
+	<<if $prison.teeth gte 50>>
+		<<link [[Buy|Prison Wren Poster]]>><<prison_teeth -50>><<set $prison.poster to "woman">><</link>><<if $prison.poster>> <i>Will replace existing poster.</i><</if>>
+	<<else>>
+		<span class="blue">You need more teeth.</span>
+	<</if>>
+	<br><br>
 <</if>>
 <<if $prison.poster isnot "puppy">>
-    Poster of a cute puppy: 50 teeth
-    <br>
-    <<if $prison.teeth gte 50>>
-        <<link [[Buy|Prison Wren Poster]]>><<prison_teeth -50>><<set $prison.poster to "puppy">><</link>><<if $prison.poster>><i> Will replace existing poster.</i><</if>>
-    <<else>>
-        <span class="blue">You need more teeth.</span>
-    <</if>>
-    <br><br>
+	Poster of a cute puppy: 50 teeth
+	<br>
+	<<if $prison.teeth gte 50>>
+		<<link [[Buy|Prison Wren Poster]]>><<prison_teeth -50>><<set $prison.poster to "puppy">><</link>><<if $prison.poster>><i> Will replace existing poster.</i><</if>>
+	<<else>>
+		<span class="blue">You need more teeth.</span>
+	<</if>>
+	<br><br>
 <</if>>
 <<if !$prison.rope>>
-    Rope: 100 teeth
-    <br>
-    <<if $prison.teeth gte 100>>
-        <<link [[Buy|Prison Wren Rope]]>><<prison_teeth -100>><<set $prison.rope to 1>><</link>>
-    <<else>>
-        <span class="blue">You need more teeth.</span>
-    <</if>>
-    <br><br>
+	Rope: 100 teeth
+	<br>
+	<<if $prison.teeth gte 100>>
+		<<link [[Buy|Prison Wren Rope]]>><<prison_teeth -100>><<set $prison.rope to 1>><</link>>
+	<<else>>
+		<span class="blue">You need more teeth.</span>
+	<</if>>
+	<br><br>
 <</if>>
 <<if $prison.yard_key is 1 and $prison.yard_door is 1>>
-    You have no more use for your large iron key. Wren offers you 200 teeth for it.
-    <br>
-    <<link [[Sell|Prison Wren Yard Key]]>><<set $prison.yard_key to 0>><<prison_teeth 200>><</link>>
-    <br><br>
+	You have no more use for your large iron key. Wren offers you 200 teeth for it.
+	<br>
+	<<link [[Sell|Prison Wren Yard Key]]>><<set $prison.yard_key to 0>><<prison_teeth 200>><</link>>
+	<br><br>
 <</if>>
 
 <<link [[Ask about escape|Prison Wren Ask]]>><</link>>
@@ -129,57 +129,57 @@ Wren smiles at you. "If you've got teeth," <<he>> says. "I have some goodies fro
 Panties: 5 teeth
 <br>
 <<if $prison.teeth gte 5>>
-    <<link [[Buy|Prison Wren Panties]]>><<prison_teeth -5>><<underlowersend 1 $wardrobe_location>><</link>>
+	<<link [[Buy|Prison Wren Panties]]>><<prison_teeth -5>><<underlowersend 1 $wardrobe_location>><</link>>
 <<else>>
-    <span class="blue">You need more teeth.</span>
+	<span class="blue">You need more teeth.</span>
 <</if>>
 <br><br>
 Briefs: 5 teeth
 <br>
 <<if $prison.teeth gte 5>>
-    <<link [[Buy|Prison Wren Briefs]]>><<prison_teeth -5>><<underlowersend 4 $wardrobe_location>><</link>>
+	<<link [[Buy|Prison Wren Briefs]]>><<prison_teeth -5>><<underlowersend 4 $wardrobe_location>><</link>>
 <<else>>
-    <span class="blue">You need more teeth.</span>
+	<span class="blue">You need more teeth.</span>
 <</if>>
 <br><br>
 Bra: 5 teeth
 <br>
 <<if $prison.teeth gte 5>>
-    <<link [[Buy|Prison Wren Bra]]>><<prison_teeth -5>><<underuppersend 12 $wardrobe_location>><</link>>
+	<<link [[Buy|Prison Wren Bra]]>><<prison_teeth -5>><<underuppersend 12 $wardrobe_location>><</link>>
 <<else>>
-    <span class="blue">You need more teeth.</span>
+	<span class="blue">You need more teeth.</span>
 <</if>>
 <br><br>
 Vest: 5 teeth
 <br>
 <<if $prison.teeth gte 5>>
-    <<link [[Buy|Prison Wren Vest]]>><<prison_teeth -5>><<underuppersend 22 $wardrobe_location>><</link>>
+	<<link [[Buy|Prison Wren Vest]]>><<prison_teeth -5>><<underuppersend 22 $wardrobe_location>><</link>>
 <<else>>
-    <span class="blue">You need more teeth.</span>
+	<span class="blue">You need more teeth.</span>
 <</if>>
 <br><br>
 Shirt: 10 teeth
 <br>
 <<if $prison.teeth gte 10>>
-    <<link [[Buy|Prison Wren Shirt]]>><<prison_teeth -10>><<uppersend 85 $wardrobe_location>><</link>>
+	<<link [[Buy|Prison Wren Shirt]]>><<prison_teeth -10>><<uppersend 85 $wardrobe_location>><</link>>
 <<else>>
-    <span class="blue">You need more teeth.</span>
+	<span class="blue">You need more teeth.</span>
 <</if>>
 <br><br>
 Trousers: 10 teeth
 <br>
 <<if $prison.teeth gte 10>>
-    <<link [[Buy|Prison Wren Trousers]]>><<prison_teeth -10>><<lowersend 77 $wardrobe_location>><</link>>
+	<<link [[Buy|Prison Wren Trousers]]>><<prison_teeth -10>><<lowersend 77 $wardrobe_location>><</link>>
 <<else>>
-    <span class="blue">You need more teeth.</span>
+	<span class="blue">You need more teeth.</span>
 <</if>>
 <br><br>
 Jumpsuit: 15 teeth
 <br>
 <<if $prison.teeth gte 15>>
-    <<link [[Buy|Prison Wren Jumpsuit]]>><<prison_teeth -15>><<uppersend 86 $wardrobe_location>><</link>>
+	<<link [[Buy|Prison Wren Jumpsuit]]>><<prison_teeth -15>><<uppersend 86 $wardrobe_location>><</link>>
 <<else>>
-    <span class="blue">You need more teeth.</span>
+	<span class="blue">You need more teeth.</span>
 <</if>>
 <br><br>
 
diff --git a/game/overworld-town/loc-pub/main.twee b/game/overworld-town/loc-pub/main.twee
index af4efb95f6ab9091a38c78e99166c299120b4f64..5f13b08e21db446e1537f7d71932920fb08b4080 100644
--- a/game/overworld-town/loc-pub/main.twee
+++ b/game/overworld-town/loc-pub/main.twee
@@ -57,8 +57,10 @@
 	<br><br>
 	Avery leans in and places a hand on <<his>> thigh, causing <<him>> to tense up. The <<person>> stands up suddenly, and excuses <<himself>> to the restrooms.
 	<br><br>
-	<<link [[Go to the restrooms|Avery Dismissal Restroom]]>><</link>><br>
-	<<link [[Go to the bar|Avery Dismissal Bar]]>><</link>><br>
+	<<link [[Go to the restrooms|Avery Dismissal Restroom]]>><</link>>
+	<br>
+	<<link [[Go to the bar|Avery Dismissal Bar]]>><</link>>
+	<br>
 <<elseif $pubwhore gte 10 and $pubattack isnot 1>>
 	<<set $pubattack to 1>>
 	A black sack is thrown over your head and two pairs of arms grab you from behind. They drag you out of the pub and into a waiting van.
@@ -78,24 +80,24 @@
 	<<link [[Go with them|Pub Accost]]>><<set $phase to 1>><</link>>
 	<br>
 <<else>>
-	<<link [[Ask for Landry|Pub Landry]]>><<endevent>><</link>>
+	<<ind>><<link [[Ask for Landry|Pub Landry]]>><<endevent>><</link>>
 	<br>
 	<<if $sexStats.vagina.pregnancy.awareOf is true>>
 		You can't bring yourself to drink while you know you're with child.
 		<br>
 	<<else>>
 		<<if $money gte 1000>>
-			<<link [[Drink booze (£10 0:05)|Pub]]>><<endevent>><<set $money -= 1000>><<set $pubbooze to "booze">><<alcohol 120>><<pass 5>><</link>><<ggalcohol>>
+			<<beericon>><<link [[Drink booze (£10 0:05)|Pub]]>><<endevent>><<set $money -= 1000>><<set $pubbooze to "booze">><<alcohol 120>><<pass 5>><</link>><<ggalcohol>>
 			<br>
 		<</if>>
 		<<if $money gte 2000>>
-			<<link [[Drink herbal booze (£20 0:05)|Pub]]>><<endevent>><<set $money -= 2000>><<set $pubbooze to "herbal">><<pass 5>><<alcohol 60>><<set $hallucinogen += 20>><</link>><<galcohol>><<ghallucinogens>>
+			<<ind>><<link [[Drink herbal booze (£20 0:05)|Pub]]>><<endevent>><<set $money -= 2000>><<set $pubbooze to "herbal">><<pass 5>><<alcohol 60>><<set $hallucinogen += 20>><</link>><<galcohol>><<ghallucinogens>>
 			<br>
 		<</if>>
 	<</if>>
 	<<if $farm>>
 		<<if $farm.tower gte 1 and !$farm.tower_guard>>
-			<<link [[Look for a guard for your farm (0:30)|Pub Guard]]>><<endevent>><<pass 30>><</link>>
+			<<ind>><<link [[Look for a guard for your farm (0:30)|Pub Guard]]>><<endevent>><<pass 30>><</link>>
 			<br>
 		<</if>>
 	<</if>>
diff --git a/game/overworld-town/loc-pub/seduction.twee b/game/overworld-town/loc-pub/seduction.twee
index c5ba7085a2a6802834aac73d618d5f5cdee03362..66f7b2aeb740a5f6b1b3f3d3559ec89705336cd3 100644
--- a/game/overworld-town/loc-pub/seduction.twee
+++ b/game/overworld-town/loc-pub/seduction.twee
@@ -5,7 +5,6 @@ You sit near the <<person>> and smile at <<him>>.
 <<if $rng gte 81>><<set $pubnpc to 1>>
 <<He>> smiles back. You chat with <<him>> for a few minutes, laughing more loudly than you need to and making sure to mention you're single.
 <<promiscuity1>>
-<br><br>
 
 "I'm a married <<personsimple>> myself," <<he>> says, but sounds sad about the fact.
 <br><br>
@@ -111,7 +110,6 @@ You sit near the <<person>> and smile at <<him>>.
 
 You lean over and whisper something into the <<persons>> ear.
 <<promiscuity2>>
-<br><br>
 
 <<set $seductiondifficulty to (6000 - $pubdrink)>>
 <<seductioncheck>>
@@ -866,7 +864,7 @@ You knock <<him>> into the stall door, which <<he>> crashes through. <<tearful>>
 			<<else>>
 				<<link [[Refuse|Pub Pill Refuse]]>><</link>>
 			<</if>>
-			<br>		
+			<br>
 		<<elseif $cow isnot 6 or random(1, 2) is 2>>
 			You disappear with <<him>> into the forest. Shortly after <<he>> turns to you. "I always loved this forest," <<he>> says. "I have something for you." <<He>> holds out <<his>> hand, showing you a pink pill. "You'll like it. I promise."
 			<br><br>
diff --git a/game/overworld-town/loc-school/canteen.twee b/game/overworld-town/loc-school/canteen.twee
index 2f8a7ca08c86824518d811bf346400ab7314c9ce..0ca0e8a06dfcb1ae0e26f0726ea390e160930ab3 100644
--- a/game/overworld-town/loc-school/canteen.twee
+++ b/game/overworld-town/loc-school/canteen.twee
@@ -42,21 +42,28 @@ You are in the school canteen.
 		<<if $schoolstate is "early">>
 		<<elseif $schoolstate is "late">>
 		<<elseif $schoolstate is "lunch">>
-			<<run getRobinLocation()>>
-			
-			<<if _robin_location is "school" and $robinReunionScene is "dungeon" and $exposed lte 0>>
+			<<run statusCheck("Robin")>>
+
+			<<if _robin_location is "school" and ($robinReunionScene is "dungeon" or $robinReunionScene is "dungeonRobin") and $exposed lte 0>>
 				<<npc Robin>><<person1>>
-				<<unset $robinReunionScene>><<set $robinPostMortem to true>>
+				<<if $robinReunionScene is "dungeon">><<set $robinPostMortem to true>><</if>>
 				You hear a gasp from one of the tables. Turning in the direction of the sound, you spot Robin at a packed table, mouth agape.
 				A framed picture of the two of you sits nearby them. <<He>> jumps up and sprints towards you.
 				<br><br>
-				
-				"I don't believe it!" <<he>> squeals before burying <<himself>> in your chest. "I-I thought you were gone forever!"
-				<br>
-				Eventually, Robin calms down a bit. <<He>> looks at you with misty eyes.
-				"We need to talk about this at home," <<he>> says, sniffling. "Wh-when you're ready, of course."
-				<br><br>
-				
+				<<if $robinReunionScene is "dungeon">>
+					"I don't believe it!" <<he>> squeals before burying <<himself>> in your chest. "I-I thought you were gone forever!"
+					<br>
+					Eventually, Robin calms down a bit. <<He>> looks at you with misty eyes.
+					"We need to talk about this at home," <<he>> says, sniffling. "Wh-when you're ready, of course."
+					<br><br>
+				<<else>>
+					"I don't believe it!" <<he>> squeals before burying <<himself>> in your chest. "I thought you'd never escape!"
+					<br>
+					Eventually, Robin calms down a bit. <<He>> looks at you with misty eyes.
+					"We both made it home," <<he>> says, sniffling. "I'm so happy to have you back."
+					<br><br>
+				<</if>>
+				<<unset $robinReunionScene>>
 				<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active">>
 					<<if $NPCName[$NPCNameList.indexOf("Kylar")].rage gte 60>>
 						You open your mouth to respond, but before you get the chance, Kylar squeezes between the two of you.
@@ -94,7 +101,7 @@ You are in the school canteen.
 					You tell Robin that you're fine. <<He>> nods and gives you one last squeeze, then walks back to <<his>> table.
 				<</if>>
 				<br><br>
-				
+
 				<<link [[Next|Canteen]]>><<endevent>><</link>>
 				<br>
 			<<else>>
@@ -201,7 +208,7 @@ You are in the school canteen.
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 <<generatey1>>
 <<if $rng gte 51>>
-	You approach the teenagers. A <<person1>><<person>> looks up at you suspiciously. "What do you want?"
+	You approach the students. A <<person1>><<person>> looks up at you suspiciously. "What do you want?"
 	<br><br>
 
 	<<link [[Flirt|Canteen Students Flirt]]>><</link>><<promiscuous1>>
@@ -209,7 +216,7 @@ You are in the school canteen.
 
 	<<link [[Leave|Canteen]]>><<endevent>><</link>>
 <<else>>
-	You approach the teenagers. They don't seem interested in speaking with you. "Get outta here you nosy fuck." Says a <<person1>><<person>> with a dismissive gesture.
+	You approach the students. They don't seem interested in speaking with you. "Get outta here you nosy fuck." Says a <<person1>><<person>> with a dismissive gesture.
 	<br><br>
 	<<endevent>>
 
@@ -326,7 +333,6 @@ You are in the school canteen.
 
 You lean seductively against the table and address the <<person>>. "You look tense, anything I can do to help?"
 <<promiscuity1>>
-<br><br>
 
 <<if $cool gte 160>>
 	<<He>> checks you out, and blushes. "Would you... like to go somewhere private?" <<He>> clearly has lewd intentions.
diff --git a/game/overworld-town/loc-school/changing-rooms-boys-events.twee b/game/overworld-town/loc-school/changing-rooms-boys-events.twee
index a586ebc3ba298974fc5dfed85c7c070b738671f4..3033e55da8a27076272ba66d33307fce50587f53 100644
--- a/game/overworld-town/loc-school/changing-rooms-boys-events.twee
+++ b/game/overworld-town/loc-school/changing-rooms-boys-events.twee
@@ -360,7 +360,6 @@ You <<nervously>> remove your clothing. Some boys blush and look away, but most
 <br><br>
 "You only want to look?" you purr. "How about we both strip down?"
 <<promiscuity3>>
-<br><br>
 <<if $seductionrating gte $seductionrequired>>
 	The <<person>> tries to respond, but just stammers. You begin to undress <<him>>.
 	<br><br>
@@ -438,7 +437,7 @@ You drop to your knees. "Good doggy," the <<person>> says. <<He>> looks at the o
 <<He>> leads you to the entrance of the changing rooms, then through the doors leading into the rest of the school. You're naked on your hands and knees, with a collar around your neck and the leash held by the <<person>>. The other boys surround you and jeer. Now and then one gropes or spanks you.
 <br><br>
 You are being led down a corridor when you run into the first group of students. "Oh my god," you hear one say, before any speech is drowned out by laughter. They join the procession. Soon there's a crowd marching around the school, revolving around the naked <<girl>> with the collar and leash.
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 <br><br>
 <<endcombat>>
 <<link [[Next|School Boy's Knees 2]]>><</link>>
@@ -464,7 +463,7 @@ Leighton's voice appears behind the group. It's not long before the crowd has di
 You lean against the lockers and bend over. The <<person>> walks beside you, and leans on your back. "Make sure you get this," <<he>> says. There's silence for a moment, then a loud smack as something hits your <<bottom>>. Then another. <<Hes>> spanking you with a float used by the younger students. It's made of foam, but <<he>> whips it against your skin with such speed that the pain makes you jolt.
 <<gpain>><<set $pain += 40>>
 <br><br>
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 "Someone else have a go," <<he>> says after a while. Someone does. They aren't as effective, but the <<person>> leans against the lockers and pulls your hair back. <<He>> leans close. "This is what happens to <<if $exposed gte 2 and $player.gender is "h">>freaks<<elseif $player.gender_appearance is "f">>girls<<else>>'girls'<</if>> who come in here," <<he>> says. Another jolt of pain. "Consider yourself lucky I'm so nice. Some wanted much worse." <<He>> glances at your body, and regret darkens <<his>> face. <<He>> stands up. "That's enough. <<pShes>> learnt <<pher>> lesson." <<He>> throws your clothes at you. <<tearful>> you take your clothing and leave the room.
 <br><br>
 <<clothesontowel>>
diff --git a/game/overworld-town/loc-school/changing-rooms-girls-events.twee b/game/overworld-town/loc-school/changing-rooms-girls-events.twee
index b08521209f7b560fa82a7c2208be808834975b69..d174fc5f217bf542f8869037502f9beccf09c353 100644
--- a/game/overworld-town/loc-school/changing-rooms-girls-events.twee
+++ b/game/overworld-town/loc-school/changing-rooms-girls-events.twee
@@ -359,7 +359,6 @@ You <<nervously>> remove your clothing. Some girls blush and look away, but most
 <br><br>
 "You only want to look?" you purr. "How about we both strip down?"
 <<promiscuity3>>
-<br><br>
 <<if $seductionrating gte $seductionrequired>>
 	The <<person>> tries to respond, but just stammers. You begin to undress <<him>>.
 	<br><br>
@@ -436,7 +435,7 @@ You drop to your knees. "Good doggy," the <<person>> says. <<He>> looks at the o
 <<He>> leads you to the entrance of the changing rooms, then through the doors leading into the rest of the school. You're naked on your hands and knees, with a collar around your neck and the leash held by the <<person>>. The other girls surround you and jeer. Now and then one gropes or spanks you.
 <br><br>
 You are being led down a corridor when you run into the first group of students. "Oh my god," you hear one say, before any speech is drowned out by laughter. They join the procession. Soon there's a crowd marching around the school, revolving around the naked <<girl>> with the collar and leash.
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 <br><br>
 <<endcombat>>
 <<link [[Next|School Girl's Knees 2]]>><</link>>
@@ -462,7 +461,7 @@ Leighton's voice appears behind the group. It's not long before the crowd has di
 You lean against the lockers and bend over. The <<person>> walks beside you, and leans on your back. "Make sure you get this," <<he>> says. There's silence for a moment, then a loud smack as something hits your <<bottom>>. Then another. <<Hes>> spanking you with a float used by the younger students. It's made of foam, but <<he>> whips it against your skin with such speed that the pain makes you jolt.
 <<gpain>><<set $pain += 40>>
 <br><br>
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 "Someone else have a go," <<he>> says after a while. Someone does. They aren't as effective, but the <<person>> leans against the lockers and pulls your hair back. <<He>> leans close. "This is what happens to <<if $exposed gte 2 and $player.gender is "h">>freaks<<elseif $player.gender_appearance is "m">>boys<<else>>'boys'<</if>> who come in here," <<he>> says. Another jolt of pain. "Consider yourself lucky I'm so nice. Some wanted much worse." <<He>> glances at your body, and regret darkens <<his>> face. <<He>> stands up. "That's enough. <<pShes>> learnt <<pher>> lesson." <<He>> throws your clothes at you. <<tearful>> you take your clothing and leave the room.
 <br><br>
 <<clothesontowel>>
diff --git a/game/overworld-town/loc-school/changing-rooms.twee b/game/overworld-town/loc-school/changing-rooms.twee
index d6f6c4c376e22c0f8b66436a5a965b551a4e2f0f..298a15c94b6dd494e80656f279f035e0c56fb0c0 100755
--- a/game/overworld-town/loc-school/changing-rooms.twee
+++ b/game/overworld-town/loc-school/changing-rooms.twee
@@ -868,7 +868,7 @@ You successfully pick one of the lockers, and rummage inside.
 	<span class="red">You hear the door to the pool open</span> as you snatch the goods, followed by wet footsteps. There's no time to hide anywhere else. You enter the locker, closing it behind you.
 	<br><br>
 	<<npc Mason>><<person1>>
-	You peer through the slits. Mason walks into view.  Water drips from <<his>> sleek body.
+	You peer through the slits. Mason walks into view.Water drips from <<his>> sleek body.
 	<<He>> stops beside a locker several feet away, unlocks it, and throws it open. <<He>> repeats this with the next, and the next. <span class="red"><<Hes>> going to find you.</span>
 	<br><br>
 
@@ -934,20 +934,20 @@ You successfully pick one of the lockers, and rummage inside.
 	You burst from the locker and sprint for the exit. "Stop!" You hear Mason pursue. <span class="red"><<Hes>> fast,</span> even with bare wet feet, <span class="red">and cuts you off before the exit.</span>
 	<br><br>
 
-	 You run into <<him>>, but <<he>> steadies you with toned arms. "Got you," <<he>> pants. "The legendary underwear thief. What do you have to say for yourself?"<<gdelinquency>><<detention 6>>
-	 <br><br>
+	You run into <<him>>, but <<he>> steadies you with toned arms. "Got you," <<he>> pants. "The legendary underwear thief. What do you have to say for yourself?"<<gdelinquency>><<detention 6>>
+	<br><br>
 
-	 <<if $exposed gte 1>>
+	<<if $exposed gte 1>>
 		<<covered>> <<He>> notices your state of dress, and just how close your body is. <<He>> steps back and averts <<his>> eyes, blushing.<<glust>><<npcincr Mason lust 5>>
 		<br><br>
-	 <</if>>
-
-	 <<link [[Apologise|School Pool Locker Apologise]]>><<sub 1>><<detention -1>><</link>><<ldelinquency>>
-	 <br>
-	 <<link [[Argue|School Pool Locker Argue]]>><<def 1>><</link>>
-	 <br>
-	 <<link [[Say nothing|School Pool Locker Nothing]]>><</link>>
-	 <br>
+	<</if>>
+
+	<<link [[Apologise|School Pool Locker Apologise]]>><<sub 1>><<detention -1>><</link>><<ldelinquency>>
+	<br>
+	<<link [[Argue|School Pool Locker Argue]]>><<def 1>><</link>>
+	<br>
+	<<link [[Say nothing|School Pool Locker Nothing]]>><</link>>
+	<br>
 <</if>>
 
 
diff --git a/game/overworld-town/loc-school/classes/english-events.twee b/game/overworld-town/loc-school/classes/english-events.twee
index 57a8ee3fa24dbee69b659a384714f8875b97cd80..fc3c76570061421e3ea1942553f3f8c02b4317da 100644
--- a/game/overworld-town/loc-school/classes/english-events.twee
+++ b/game/overworld-town/loc-school/classes/english-events.twee
@@ -152,7 +152,6 @@ Doren makes you sit alone on the other side of the room. You got away at least.
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 The <<person1>><<person>> yelps in shock. Doren looks up, and looks at <<him>>. The <<person>> is too embarrassed to complain however, instead looking at <<his>> feet and mumbling an apology before sitting back at <<his>> desk.
 <<promiscuity2>>
-<br><br>
 <<endevent>>
 <<link [[Next|English Lesson]]>><</link>>
 <br>
@@ -162,8 +161,7 @@ The <<person1>><<person>> yelps in shock. Doren looks up, and looks at <<him>>.
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 "What's the matter <<sir>>," you say. "Jealous?" The giggling becomes laughter.
 <<promiscuity3>>
-<br><br>
-"You kids have a strange idea of humour," Doren says, shaking <<his>> head.
+"You lot have a strange idea of humour," Doren says, shaking <<his>> head.
 <br><br>
 <<endevent>>
 <<link [[Next|English Lesson]]>><</link>>
diff --git a/game/overworld-town/loc-school/classes/history-events.twee b/game/overworld-town/loc-school/classes/history-events.twee
index 17e1d58b3ecdc1bc90a35c167afdef1fa14cb454..121ef316ce86e757758d3847d6aaa6ba52faa6b9 100644
--- a/game/overworld-town/loc-school/classes/history-events.twee
+++ b/game/overworld-town/loc-school/classes/history-events.twee
@@ -148,7 +148,7 @@ This is ridiculous, there's no way you're wearing that. Winter glares at you as
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 <<if $uncomfortable.underwear is false>>
 	You proudly walk out from behind the screen, the clothes barely hiding your <<genitals>>. The class falls silent as they see how little you're wearing.
-	<<if $fameexhibitionism gte 400>> You doubt this is the first time any of them have seen you so thinly attired.<</if>>
+	<<if $fame.exhibitionism gte 400>> You doubt this is the first time any of them have seen you so thinly attired.<</if>>
 	<br><br>
 	Winter smiles in satisfaction. You model the outfit as <<he>> describes the ceremonies it was used in, which all seem to have had a risqué element. You welcome your classmates' looks and continue posing in an inviting way. The segment is over sooner than you'd like.
 <<else>>
@@ -288,7 +288,7 @@ You lean down to pick up the book. As you do, the <<person>> grabs the back of y
 		You glance in Robin's direction, but you can't see <<nnpc_him Robin>> through the gathering crowd.
 		<br><br>
 	<</if>>
-	 You try to push the assailant away, but <<he>> holds you firm, <<if $pronoun is "m">> and undoes <<his>> fly.<<else>> and lifts up <<his>> skirt. <<Hes>> not wearing underwear.<</if>>
+	You try to push the assailant away, but <<he>> holds you firm, <<if $pronoun is "m">> and undoes <<his>> fly.<<else>> and lifts up <<his>> skirt. <<Hes>> not wearing underwear.<</if>>
 	<br><br>
 	<<link [[Next|History Lesson Molestation]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
 	<br>
@@ -302,7 +302,7 @@ You lean down to pick up the book. As you do, the <<person>> grabs the back of y
 		You glance in Robin's direction, but you can't see <<nnpc_him Robin>> through the gathering crowd.
 		<br><br>
 	<</if>>
-	 You push the assailant away as laughter emerges from the rest of the class. "I really am clumsy!" The <<person>> says, now grinning. "No need to be so aggressive though." <<He>> continues <<his>> task, and Winter soon returns.
+	You push the assailant away as laughter emerges from the rest of the class. "I really am clumsy!" The <<person>> says, now grinning. "No need to be so aggressive though." <<He>> continues <<his>> task, and Winter soon returns.
 	<br><br>
 	<<link [[Next|History Lesson]]>><<endevent>><</link>>
 	<br>
@@ -389,7 +389,7 @@ The classroom door starts to open, and the <<person>> continues <<his>> task as
 		Winter points at the door, and the <<person>> marches out, still nursing an injury.
 		<br><br>
 	<<else>>
-		The <<person>> recoils in pain. <<He>> glares at you, and <<he>> and <<his>> friends look like they've a mind to punish you, but footsteps can be heard approaching the class. They think better of it. <<tearful>> you take your seat.	Winter returns, with no knowledge of what just took place.
+		The <<person>> recoils in pain. <<He>> glares at you, and <<he>> and <<his>> friends look like they've a mind to punish you, but footsteps can be heard approaching the class. They think better of it. <<tearful>> you take your seat. Winter returns, with no knowledge of what just took place.
 		<br><br>
 	<</if>>
 	<<clothesontowel>>
@@ -681,7 +681,7 @@ The <<person>> tries to argue, but Winter won't hear it. <<He>> rubs <<his>> hea
 
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 <<if $submissive gte 1150>>
-	"I-I can't... I can't tell you." you say, hunching to conceal the collar around your neck.
+	"I-I can't... I can't tell you," you say, hunching to conceal the collar around your neck.
 	<br><br>
 <<elseif $submissive lte 850>>
 	"Mind your own business," you say.
@@ -762,7 +762,7 @@ Winter raises <<his>> eyebrows. "How unusual," <<he>> says. You can't tell if <<
 
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 <<if $submissive gte 1150>>
-	"I-it's nothing." you say. "It was just a s-silly prank."
+	"I-it's nothing," you say. "It was just a s-silly prank."
 	<br>
 <<elseif $submissive lte 850>>
 	"It's a costume," you say. "It's quirky. It's fun. Don't you have a sense of humour?"
@@ -933,7 +933,7 @@ You stay silent.
 	Robin is quiet for a while.
 	<br><br>
 <<else>>
-	Robin gasps. "W-wait," <<he>> says. "That's not-". <<He>> attracts Winter's ireful gaze, and falls silent. The <<person2>><<person>> laughs and slinks back to <<his>> desk.
+	Robin gasps. "W-wait," <<he>> says. "That's not-" <<He>> attracts Winter's ireful gaze, and falls silent. The <<person2>><<person>> laughs and slinks back to <<his>> desk.
 	<br><br>
 <</if>>
 
diff --git a/game/overworld-town/loc-school/classes/history.twee b/game/overworld-town/loc-school/classes/history.twee
index 220ae037c26f33a86ef2ae723b1a0fa714d61843..ba547808fce05f08da63af13f9dedf56d76dc387 100644
--- a/game/overworld-town/loc-school/classes/history.twee
+++ b/game/overworld-town/loc-school/classes/history.twee
@@ -1,6 +1,6 @@
 :: History Classroom
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<run getRobinLocation()>>
+<<set _robin to statusCheck("Robin")>>
 <<if _robin_location is "school">>
 	<<set $robinhistory to "active">>
 <<else>>
@@ -52,7 +52,7 @@
 					<<npc Robin>><<generatey2>><<person2>>
 					You approach, but a <<person>> sits there before you arrive.
 					<br><br>
-					<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 20>>
+					<<if _robin.dom gte 20>>
 						"Excuse me," Robin says. "My <<if $robinromance is 1>><<girlfriend>><<else>>friend<</if>> was going to sit there."
 						<br><br>
 						<<if random(1, 2) is 2>>
@@ -132,7 +132,7 @@
 	You enter the history classroom.
 	<<if _robin_location is "school" and $luncheaten is 1>>
 		Robin is already here.
-			<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20>>
+			<<if _robin.trauma gte 20>>
 				<<nnpc_He Robin>> stares out the window.
 			<<elseif $robinromance is 1>>
 				<<nnpc_He Robin>> smiles and waves you over.
@@ -423,7 +423,7 @@ It's hard going, but you think you're making progress.
 
 :: History Classroom Study
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<run getRobinLocation()>>
+<<run statusCheck("Robin")>>
 <<if $robinhistory is "seat">>
 	You sit beside Robin and read a history textbook.
 <<else>>
diff --git a/game/overworld-town/loc-school/classes/maths-events.twee b/game/overworld-town/loc-school/classes/maths-events.twee
index d624841306373bf3f4e3215e69c3715e8f1b7944..58ce282bdd1a03197d82f868bb7a78b775924896 100644
--- a/game/overworld-town/loc-school/classes/maths-events.twee
+++ b/game/overworld-town/loc-school/classes/maths-events.twee
@@ -596,12 +596,12 @@ Whitney grins at you on the way out.
 
 	<<generatey1>><<generatey2>>
 	<<if $rng gte 81>>
-		As you wait in the corridor, a <<person1>><<person>> and <<person2>><<person>> walk up to you. They stand either side of you, preventing you from moving away.
+		As you wait in the corridor, a <<fullGroup>> walk up to you. They stand either side of you, preventing you from moving away.
 		<br><br>
 
 		<<link [[Next|Maths Event4 Molestation]]>><<set $molestationstart to 1>><</link>>
 	<<else>>
-		As you wait in the corridor, a <<person1>><<person>> and <<person2>><<person>> eye you up as they pass by. The <<person1>><<person>> grins at you. <<catcall>><<gtrauma>><<gstress>><<trauma 1>><<stress 1>>
+		As you wait in the corridor, a <<fullGroup>> eye you up as they pass by. The <<person1>><<person>> grins at you. <<catcall>><<gtrauma>><<gstress>><<trauma 1>><<stress 1>>
 		<br><br>
 
 		A few minutes later River emerges from the class. "It seems I made a mistake. Come back in."
@@ -781,7 +781,7 @@ Whitney's eyes open in surprise as you shove <<him>> against the opposite wall a
 <<elseif $enemyhealth lte 0>>
 	You shove Whitney against the wall opposite. <<He>> glares at you, but doesn't say anything.
 	<br><br>
-	<<tearful>> you gather youself.
+	<<tearful>> you gather yourself.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
@@ -818,7 +818,7 @@ Whitney's eyes open in surprise as you shove <<him>> against the opposite wall a
 <<else>>
 	Whitney's reluctant to stop, but <<he>> respects your wishes and steps back. <<He>> leans against the wall opposite, eyeing you up.
 	<br><br>
-	<<tearful>> you gather youself.
+	<<tearful>> you gather yourself.
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
diff --git a/game/overworld-town/loc-school/classes/maths.twee b/game/overworld-town/loc-school/classes/maths.twee
index c6bccbf2c5cd892da5e39943d3c4ca481f2a27c2..0cfaa09c605d21e27168ce08686189d2803849ed 100644
--- a/game/overworld-town/loc-school/classes/maths.twee
+++ b/game/overworld-town/loc-school/classes/maths.twee
@@ -160,10 +160,10 @@
 		<<if $promiscuity gte 35>>
 			<<npc Whitney>><<person1>>
 			<<if $NPCList[0].penis isnot "none">>
-				<<link [[Satisfy Whitney with a handjob|Maths Exam]]>><<set $phase to 4>><<npcincr Whitney love 1>><<npcincr Whitney lust 1>><</link>><<skill_difficulty handskill "Hand Skill" 1 1000>><<ghandskill>><<glove>><<glust>>
+				<<link [[Satisfy Whitney with a handjob|Maths Exam]]>><<set $phase to 4>><<npcincr Whitney love 1>><<npcincr Whitney lust 1>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1000>><<ghandskill>><<glove>><<glust>>
 				<br>
 			<<else>>
-				<<link [[Satisfy Whitney with your fingers|Maths Exam]]>><<set $phase to 5>><<npcincr Whitney love 1>><<npcincr Whitney lust 1>><</link>><<skill_difficulty handskill "Hand Skill" 1 1000>><<ghandskill>><<glove>><<glust>>
+				<<link [[Satisfy Whitney with your fingers|Maths Exam]]>><<set $phase to 5>><<npcincr Whitney love 1>><<npcincr Whitney lust 1>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1000>><<ghandskill>><<glove>><<glust>>
 				<br>
 			<</if>>
 			<<endevent>>
diff --git a/game/overworld-town/loc-school/classes/science-events.twee b/game/overworld-town/loc-school/classes/science-events.twee
index cf4967c5accc1de8b82a2cd19adba5cb63ce10f3..1eee65ec1cb085838886cc2da3a75bbdd6d47823 100644
--- a/game/overworld-town/loc-school/classes/science-events.twee
+++ b/game/overworld-town/loc-school/classes/science-events.twee
@@ -248,7 +248,7 @@
 	<<arousal 2000>>
 
 	<<if $worn.genitals.type.includes("chastity")>>
-		"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..."<<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
+		"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
 		<br><br>
 
 	<<elseif $player.vaginaExist>>
@@ -312,7 +312,7 @@
 	You do as instructed, and spread your legs, exposing yourself to the room. Sirris looks increasingly flustered, but continues regardless.
 	<<arousal 2000>>
 	<<if $worn.genitals.type.includes("chastity")>>
-		"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..."<<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
+		"As you can see, <<pshe>> is wearing a $worn.genitals.name, but we should be able to move it slightly for a better look..." <<person1>><<He>> starts tugging on your $worn.genitals.name, this way and that, rubbing it against your <<genitals 1>>. A small moan escapes your lips, and the class erupts into laughter. Sirris recoils from the belt, and stammers. "We... This will do. OK class, listen closely."
 		<br><br>
 	<<elseif $player.vaginaExist>>
 		<<if $player.penisExist>>
@@ -396,42 +396,42 @@ You stand triumphant, the last of the students subdued.<<llstress>><<ggcool>>
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 <<generates1>><<generates2>>
 
-<<if $scienceterrariumprogression is 4 and $science gte 700>>
+<<if $scienceterrariumprogression is 4 and currentSkillValue('science') gte 700>>
 	Something shatters on the other side of the room, and is followed by a cheer from the students. Sirris, looking distraught, heads over to inspect the damage while the noise and chaos in the classroom turns up a notch.
 	<br><br>
 
-	A <<person1>><<person>> and <<person2>><<person>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt. The <<person1>><<person>> presses <<his>> mouth to your ear and whispers. "You think you're better than us because you get high marks? I bet we could teach you a thing or two."
+	A <<fullGroup>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt. The <<person1>><<person>> presses <<his>> mouth to your ear and whispers. "You think you're better than us because you get high marks? I bet we could teach you a thing or two."
 	<br><br>
 
 	<<link [[Put up with it|Science Terrarium Endure]]>><<set $phase to 4>><<trauma 1>><<stress 1>><<arousal 100>><<scienceskill 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gscience>>
 	<br>
 	<<link [[Move away|Science Terrarium Escape]]>><</link>>
-<<elseif $scienceterrariumprogression is 3 and $science gte 500>>
+<<elseif $scienceterrariumprogression is 3 and currentSkillValue('science') gte 500>>
 	Something shatters on the other side of the room, and is followed by a cheer from the students. Sirris, looking distraught, heads over to inspect the damage while the noise and chaos in the classroom turns up a notch.
 	<br><br>
 
-	A <<person1>><<person>> and <<person2>><<person>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
+	A <<fullGroup>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
 	<br><br>
 
 	<<link [[Put up with it|Science Terrarium Endure]]>><<set $phase to 3>><<trauma 1>><<stress 1>><<arousal 100>><<scienceskill 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gscience>>
 	<br>
 	<<link [[Move away|Science Terrarium Escape]]>><</link>>
-<<elseif $scienceterrariumprogression is 2 and $science gte 400>>
-	A <<person1>><<person>> and <<person2>><<person>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
+<<elseif $scienceterrariumprogression is 2 and currentSkillValue('science') gte 400>>
+	A <<fullGroup>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
 	<br><br>
 
 	<<link [[Put up with it|Science Terrarium Endure]]>><<set $phase to 2>><<trauma 1>><<stress 1>><<arousal 100>><<scienceskill 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gscience>>
 	<br>
 	<<link [[Move away|Science Terrarium Escape]]>><</link>>
-<<elseif $scienceterrariumprogression is 1 and $science gte 300>>
-	A <<person1>><<person>> and <<person2>><<person>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
+<<elseif $scienceterrariumprogression is 1 and currentSkillValue('science') gte 300>>
+	A <<fullGroup>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
 	<br><br>
 
 	<<link [[Put up with it|Science Terrarium Endure]]>><<set $phase to 1>><<trauma 1>><<stress 1>><<arousal 100>><<scienceskill 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gscience>>
 	<br>
 	<<link [[Move away|Science Terrarium Escape]]>><</link>>
 <<else>>
-	A <<person1>><<person>> and <<person2>><<person>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
+	A <<fullGroup>> move to either side of you. They inconspicuously move closer, and you feel a hand grope your butt.
 	<br><br>
 
 	<<link [[Put up with it|Science Terrarium Endure]]>><<set $scienceterrariumprogression to 1>><<trauma 1>><<stress 1>><<arousal 100>><<scienceskill 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gscience>>
@@ -655,7 +655,7 @@ You move away from the terrarium. You don't like being bullied away from an acti
 :: Science Terrarium Shatter
 <<effects>>
 
-Summoning all your strength, you bash the side of the terrarium, shattering it and sending shards of glass in all directions. The <<person1>><<person>> and <<person2>><<person>> take cover along with the rest of the audience, as you climb out of the remains of the vessel.
+Summoning all your strength, you bash the side of the terrarium, shattering it and sending shards of glass in all directions. The <<fullGroup>> take cover along with the rest of the audience, as you climb out of the remains of the vessel.
 <<bruise full>><<set $worn.upper.integrity -= 10>><<set $worn.lower.integrity -= 10>><<set $worn.under_lower.integrity -= 10>>
 <<endevent>>
 
diff --git a/game/overworld-town/loc-school/classes/swimming-events.twee b/game/overworld-town/loc-school/classes/swimming-events.twee
index 33a5437b00a72afe5aa4b7f033b3c6471b3aeca4..5dd59462d06f708ae7481b57cbc0aa0a739dbbfe 100644
--- a/game/overworld-town/loc-school/classes/swimming-events.twee
+++ b/game/overworld-town/loc-school/classes/swimming-events.twee
@@ -214,7 +214,6 @@ The <<person>> shrugs, then tosses the fabric into the skimmer, where it vanishe
 
 <<flaunting>> you stretch languidly as you approach the platform, hiding nothing. You <<swimmingtext>> dive into the water to the sound of whistles and applause.
 <<gswimming>><<exhibitionism5>><<swimmingskilluse>>
-<br><br>
 
 <<link [[Next|Swimming Lesson]]>><<endevent>><</link>>
 <br>
diff --git a/game/overworld-town/loc-school/classes/swimming-late.twee b/game/overworld-town/loc-school/classes/swimming-late.twee
index 9184c531b8c43aa89d452dbf6a3db3ddaaee69f5..64b8fa4c8d4683468cb114529d5ba15d5d2dfb9a 100755
--- a/game/overworld-town/loc-school/classes/swimming-late.twee
+++ b/game/overworld-town/loc-school/classes/swimming-late.twee
@@ -29,7 +29,8 @@ and (($worn.upper.type.includes("naked") or $worn.upper.type.includes("swim")) a
 	<!-- detention 6 already is in the widget -->
 <<else>>
 
-	<<npc Mason>><<person1>>You enter the swimming pool room.<br><br>
+	<<npc Mason>><<person1>>You enter the swimming pool room.
+	<br><br>
 	<<if $rng gte 50>>
 		Mason and the class are in the water.
 	<<elseif $rng gte 25>>
@@ -51,12 +52,15 @@ and (($worn.upper.type.includes("naked") or $worn.upper.type.includes("swim")) a
 		<<He>> nods to a seat in the corner. "Why don't you take a seat over there?"
 		<br><br>
 
-		<<link [[Sit and wait|School Swimming Late Wait]]>><<endevent>><</link>><br>
+		<<link [[Sit and wait|School Swimming Late Wait]]>><<endevent>><</link>>
+		<br>
 		<<if $exposed lte 0>>
-			<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<detention 1>><<endevent>><</link>><<gdelinquency>><br>
+			<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<detention 1>><<endevent>><</link>><<gdelinquency>>
+			<br>
 			<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><<detention 1>><<endevent>><</link>><<gdelinquency>>
 		<<elseif $exposed gte 1>>
-			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><<endevent>><</link>><<gdelinquency>><br>
+			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><<endevent>><</link>><<gdelinquency>>
+			<br>
 			<<femaleicon>><<link [[Grab some towels and enter the girls' changing room|School Girl Changing Room]]>><<towelup>><<detention 1>><<endevent>><</link>><<gdelinquency>>
 		<</if>>
 	<<elseif (($delinquency gte 800 and $rng lte 90) or ($delinquency gte 500 and $rng lte 50) or $swimmingattended is 2) and $swimall isnot 1>>
@@ -89,12 +93,15 @@ and (($worn.upper.type.includes("naked") or $worn.upper.type.includes("swim")) a
 		<<He>> points to a chair in the corner. "Sit there and be still."<<detention 1>><<gdelinquency>>
 		<br><br>
 
-		<<link [[Sit and wait|School Swimming Late Wait]]>><<endevent>><</link>><br>
+		<<link [[Sit and wait|School Swimming Late Wait]]>><<endevent>><</link>>
+		<br>
 		<<if $exposed lte 0>>
-			<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<detention 1>><<endevent>><</link>><<gdelinquency>><br>
+			<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<detention 1>><<endevent>><</link>><<gdelinquency>>
+			<br>
 			<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><<detention 1>><<endevent>><</link>><<gdelinquency>>
 		<<elseif $exposed gte 1>>
-			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><<endevent>><</link>><<gdelinquency>><br>
+			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><<endevent>><</link>><<gdelinquency>>
+			<br>
 			<<femaleicon>><<link [[Grab some towels and enter the girls' changing room|School Girl Changing Room]]>><<towelup>><<detention 1>><<endevent>><</link>><<gdelinquency>>
 		<</if>>
 	<<elseif $rng gte 10>>
@@ -103,9 +110,11 @@ and (($worn.upper.type.includes("naked") or $worn.upper.type.includes("swim")) a
 		<<He>> points to the exit door.<<detention 1>><<gdelinquency>>
 		<br><br>
 
-		<<link [[Leave|School Pool Entrance]]>><<pass 2>><<endevent>><</link>><br>
+		<<link [[Leave|School Pool Entrance]]>><<pass 2>><<endevent>><</link>>
+		<br>
 		<<if $exposed gte 1>>
-			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><<endevent>><</link>><<gdelinquency>><br>
+			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><<endevent>><</link>><<gdelinquency>>
+			<br>
 			<<femaleicon>><<link [[Grab some towels and enter the girls' changing room|School Girl Changing Room]]>><<towelup>><<detention 1>><<endevent>><</link>><<gdelinquency>>
 		<</if>>
 	<<else>>
@@ -113,10 +122,12 @@ and (($worn.upper.type.includes("naked") or $worn.upper.type.includes("swim")) a
 		<br><br>
 
 		<<if $exposed lte 0>>
-			<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<endevent>><</link>><br>
+			<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<endevent>><</link>>
+			<br>
 			<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><<endevent>><</link>>
 		<<elseif $exposed gte 1>>
-			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<endevent>><</link>><br>
+			<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<endevent>><</link>>
+			<br>
 			<<femaleicon>><<link [[Grab some towels and enter the girls' changing room|School Girl Changing Room]]>><<towelup>><<endevent>><</link>>
 		<</if>>
 	<</if>>
@@ -146,12 +157,15 @@ You feel the stares of your classmates.<<stress 1>><<status 1>><<gcool>><!-- rul
 	<<link [[Everything fades to black...|School Passout]]>><</link>>
 <<else>>
 	<<set $cwaittime = Math.clamp(15*60 - $time, 1, 9)>>
-	<<link [[Wait|School Swimming Late Wait End]]>><<stress 1>><<pass $cwaittime>><</link>><<gstress>><br>
+	<<link [[Wait|School Swimming Late Wait End]]>><<stress 1>><<pass $cwaittime>><</link>><<gstress>>
+	<br>
 	<<if $exposed lte 0>>
-		<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<detention 1>><</link>><<gdelinquency>><br>
+		<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<detention 1>><</link>><<gdelinquency>>
+		<br>
 		<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><<detention 1>><</link>><<gdelinquency>>
 	<<elseif $exposed gte 1>>
-		<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><</link>><<gdelinquency>><br>
+		<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><<detention 1>><</link>><<gdelinquency>>
+		<br>
 		<<femaleicon>><<link [[Grab some towels and enter the girls' changing room|School Girl Changing Room]]>><<towelup>><<detention 1>><</link>><<gdelinquency>>
 	<</if>>
 <</if>>
@@ -168,10 +182,12 @@ You feel the stares of your classmates.<<stress 1>><<status 1>><<gcool>><!-- rul
 <br><br>
 
 <<if $exposed lte 0>>
-	<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>><br>
+	<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>>
+	<br>
 	<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><</link>>
 <<elseif $exposed gte 1>>
-	<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><</link>><br>
+	<<maleicon>><<link [[Grab some towels and enter the boys' changing room|School Boy Changing Room]]>><<towelupm>><</link>>
+	<br>
 	<<femaleicon>><<link [[Grab some towels and enter the girls' changing room|School Girl Changing Room]]>><<towelup>><</link>>
 <</if>>
 
@@ -204,18 +220,23 @@ Mason holds you fast and drags you towards Leighton's office.
 <<if $stress gte $stressmax>>
 	<<link [[Everything fades to black...|School Passout]]>><<endevent>><</link>>
 <<else>>
-	<<link [[Walk|School Swimming Late Detention 2]]>><<endevent>><<set $phase to 1>><</link>><br>
+	<<link [[Walk|School Swimming Late Detention 2]]>><<endevent>><<set $phase to 1>><</link>>
+	<br>
 	<<if $exposed gte 2 and $exhibitionism gte 75>>
-		<<link [[Flaunt|School Swimming Late Detention Flaunt]]>><<endevent>><</link>><<exhibitionist5>><br>
+		<<link [[Flaunt|School Swimming Late Detention Flaunt]]>><<endevent>><</link>><<exhibitionist5>>
+		<br>
 	<<elseif $exposed gte 1 and $exhibitionism gte 55>>
-		<<link [[Flaunt|School Swimming Late Detention Flaunt]]>><<endevent>><</link>><<exhibitionist4>><br>
+		<<link [[Flaunt|School Swimming Late Detention Flaunt]]>><<endevent>><</link>><<exhibitionist4>>
+		<br>
 	<</if>>
 	<<if $exhibitionism gte 55 and ($rightarm isnot "bound" or $leftarm isnot "bound") and $exposed lt 2>>
 		<<checkdroptowel>>
 		<<if _exlevel gte 2>>
-			<<link [[Drop the towel and flaunt|School Swimming Late Detention Flaunt]]>><<droptowel>><<endevent>><</link>><<exhibitionist5>><br>
+			<<link [[Drop the towel and flaunt|School Swimming Late Detention Flaunt]]>><<droptowel>><<endevent>><</link>><<exhibitionist5>>
+			<br>
 		<<elseif _exlevel>>
-			<<link [[Drop the towel and flaunt|School Swimming Late Detention Flaunt]]>><<droptowel>><<endevent>><</link>><<exhibitionist4>><br>
+			<<link [[Drop the towel and flaunt|School Swimming Late Detention Flaunt]]>><<droptowel>><<endevent>><</link>><<exhibitionist4>>
+			<br>
 		<</if>>
 	<</if>>
 	<<if $feetuse isnot "bound">>
@@ -240,9 +261,11 @@ Most though are keen to take in the sight of the <<if $worn.lower.type.includes(
 	<<npc Mason>><<person1>>Mason is trying <<his>> best to shield your body with <<hers>>.
 	<br><br>
 
-	<<link [[Walk|School Swimming Late Detention 2]]>><<endevent>><<set $phase to 1>><</link>><br>
+	<<link [[Walk|School Swimming Late Detention 2]]>><<endevent>><<set $phase to 1>><</link>>
+	<br>
 	<<if $feetuse isnot "bound">>
-		<<link [[Try to bolt|School Swimming Late Detention 2]]>><<endevent>><<set $phase to 2>><</link>><<athleticsdifficulty 1 400>><br>
+		<<link [[Try to bolt|School Swimming Late Detention 2]]>><<endevent>><<set $phase to 2>><</link>><<athleticsdifficulty 1 400>>
+		<br>
 		<<link [[Try to duck|School Swimming Late Detention 2]]>><<endevent>><<set $phase to 2>><</link>><<dancedifficulty 100 600>>
 	<</if>>
 <<else>>
@@ -290,7 +313,7 @@ Most though are keen to take in the sight of the <<if $worn.lower.type.includes(
 	<<if $exposed gte 1>><<covered>><</if>>
 	<br><br>
 	<<if $carried.upper.name isnot "naked" or $carried.lower.name isnot "naked">> <!-- Detention scene doesn't account for you being naked, put the towel back on if you took it off -->
-		You put your towel back on just before 
+		You put your towel back on just before
 		<<silently>><<clotheson>><</silently>>
 	<</if>>
 	Mason opens the Head's Office's door and pushes you in.<!-- Mason would accompany you but "School Detention" assumes you're alone -->
diff --git a/game/overworld-town/loc-school/detention.twee b/game/overworld-town/loc-school/detention.twee
index 494762fde2dce5b85d0818bfa0a7430a5dacc730..a49a9e0dc25b6406a9da60b8a0025f0c58db7a80 100644
--- a/game/overworld-town/loc-school/detention.twee
+++ b/game/overworld-town/loc-school/detention.twee
@@ -81,19 +81,19 @@
 	<<else>>
 		You enter the office to find Leighton sitting at <<his>> desk, a <<person2>><<person>> sitting opposite looking sorry for <<himself>>. Leighton pauses and turns to you as you enter, cutting off an angry lecture. "Ah, there you are, young <<if $player.gender_appearance is "m">>man<<else>>lady<</if>>. Today you get to see what happens to naughty <<personsimple>>s who break the rules." The <<person>> slumps down in <<his>> chair. It seems <<he>> knows what this means. "<<He>> was caught touching another student inappropriately during <<his>> maths lesson. Isn't that right?"
 		<br><br>
-		
+
 		The <<person>> whimpers quietly in assent.
 		<br><br>
-		
+
 		Leighton gets to <<person1>><<his>> feet, gesturing to the <<person2>><<personsimple>> to do the same. "<<if $pronoun is "m">>Pull down those shorts<<else>>Lift up that skirt<</if>>, if you please."
 		<br><br>
-		
+
 		The <<person>> does as told, still whimpering. <<Hes>> wearing a pair of red <<if $pronoun is "m">>briefs<<else>>panties<</if>>. <<He>> tugs at them, obviously uncomfortable with you watching. <<Hes>> looking at everything in the room except for you. Leighton nods at <<him>>, smirking. "Now, over the desk. You know how this goes."
 		<br><br>
-		
+
 		The <<person>> bends over the desk, trembling slightly. <<His>> ass is right in your face. Leighton takes a moment to admire the <<personsimple>>'s body before retrieving a large wooden paddle from <<person1>><<his>> desk drawer and thwacking it against <<his>> palm. "Are you ready?" <<he>> asks the <<person2>><<person>>, who mumbles in response. Leighton raises the paddle.
 		<br><br>
-		
+
 		<<if $exhibitionism gte 75>>
 			<<link [[Masturbate|School Detention Paddle Masturbate]]>><<set $masturbationstart to 1>><</link>><<exhibitionist5>>
 			<br>
@@ -122,7 +122,7 @@
 			<</if>>
 		<</if>>
 		<<if $worn.under_lower.type.includes("naked")>>
-			You avoid looking <<him>> in the eyes. "I'm n-not wearing any underwear." you say.
+			You avoid looking <<him>> in the eyes. "I'm n-not wearing any underwear," you say.
 			<br><br>
 			You think you catch a smile start to form on <<his>> face, but it's gone so fast you may have imagined it. "I'll overlook that rule violation, but you still need to wash my car. Maybe next time you'll dress appropriately for school.
 			<br><br>
@@ -138,15 +138,15 @@
 		<br>
 		The <<person>> whimpers slightly in assent.
 		<br><br>
-		
+
 		Leighton stands, gesturing for <<person>> to do the same. "<<if $pronoun is "m">>Pull down those shorts<<else>>Lift up that skirt<</if>>, if you please."
 		<br>
 		The <<person>> does as instructed, still whimpering. <<Hes>> wearing a pair of red <<if $pronoun is "m">>briefs<<else>>panties<</if>>.
 		<br><br>
-		
+
 		"Now, let's get started, shall we?" Leighton grabs the <<person>> and pushes <<him>> over the desk, <<his>> butt quivering in fear. The <<nnpc_title "Leighton">> withdraws a large wooden paddle from <<person1>><<his>> desk and hands it to you. It feels heavy in your hands - a blow from this would really hurt!
 		<br><br>
-		
+
 		<<set $skulduggerydifficulty to 600>>
 		<<link [[Paddle hard|School Detention Paddle Hard]]>><<def 1>><<set $phase to 0>><<npcincr Leighton love 1>><<npcincr Leighton dom 1>><<status -10>><</link>><<if $submissive lte 850 or $sadism_level gte 1>><<garousal>><<else>><<gstress>><</if>><<lcool>>
 		<br>
@@ -162,10 +162,10 @@
 	<<if $delinquency gte random(1, 1000)>>
 		You enter the office to find Leighton sitting at <<his>> desk, holding a large wooden paddle. <<He>> taps it against <<his>> palm, looking impatient. "You've been a very naughty <<girl>>, but I think I know just the way to get through to you." <<He>> leers at your $worn.lower.name. "Take that off."
 		<br><br>
-		
+
 		You do as told, hands trembling.<<lowerstrip>>
 		<br>
-		
+
 		<<if $worn.under_lower.name is "naked">>
 			<<set $genderknown.pushUnique("Leighton")>>
 			Leighton gets to <<his>> feet, eyes wide as <<he>> ogles your <<genitals>>. "Oh my, you are a naughty<<if $player.gender is "m">> boy,<<elseif $player.gender is "h" and $player.gender_appearance is "m">>... um, boy...<<elseif $player.gender is "h" and $player.gender_appearance is "f">>... um, girl...<<else>> girl,<</if>> aren't you? Showing off to your <<nnpc_title "Leighton">> like this."
@@ -173,7 +173,7 @@
 				<<if $player.penissize gte 3>>
 					<<He>> licks <<his>> lips hungrily. "Especially being so... gifted."
 					<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
-					
+
 					<<if $player.penissize is 3 and $player.gender is "h">>
 						<<insecurity "penis_big" 1>><<ginsecurity "penis_big">>
 					<<elseif $player.penissize is 4>>
@@ -182,7 +182,7 @@
 				<<elseif $player.penissize lte 1>>
 					<<He>> stifles a laugh. "Especially being so... shall we say, under-developed."
 					<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
-					
+
 					<<if $player.penissize is 1>>
 						<<insecurity "penis_small" 1>><<ginsecurity "penis_small">>
 					<<else>>
@@ -193,16 +193,16 @@
 				<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
 			<</if>>
 			<br><br>
-			
+
 			<<He>> smirks and shakes <<his>> head. "You couldn't be more deserving of this. Now, come here."
 		<<else>>
 			Leighton gets to <<his>> feet, eyes wide as <<he>> ogles your thighs. "That's it. Now, come here."
 		<</if>>
 		<br><br>
-		
+
 		As you approach Leighton, <<he>> grabs you and pushes you over the desk, paddle in hand.
 		<br><br>
-		
+
 		<<link [[Next|School Detention Paddle 1]]>><<set $phase to 0>><<set $molestationstart to 1>><</link>>
 		<br>
 	<<else>>
@@ -216,9 +216,9 @@
 	<<if $delinquency gte random(1, 1000)>>
 		You enter the office to find Leighton sitting at <<his>> desk, holding a large wooden paddle. <<He>> taps it against <<his>> palm, looking impatient. "You've been a very naughty <<girl>>, but I think I know just the way to get through to you." <<He>> leers at your $worn.lower.name. "Take that off."
 		<br><br>
-		
+
 		You do as told, hands trembling.<<lowerstrip>>
-		
+
 		<<if $worn.under_lower.name is "naked">>
 			<<set $genderknown.pushUnique("Leighton")>>
 			Leighton gets to <<his>> feet, eyes wide as <<he>> ogles your <<genitals>>. "Oh my, you are a naughty<<if $player.gender is "m">> boy,<<elseif $player.gender is "h" and $player.gender_appearance is "m">>... um, boy...<<elseif $player.gender is "h" and $player.gender_appearance is "f">>... um, girl...<<else>> girl,<</if>> aren't you? Showing off to your <<nnpc_title "Leighton">> like this."
@@ -226,7 +226,7 @@
 				<<if $player.penissize gte 3>>
 					<<He>> licks <<his>> lips hungrily. "Especially being so... gifted."
 					<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
-					
+
 					<<if $player.penissize is 3 and $player.gender is "h">>
 						<<insecurity "penis_big" 1>><<ginsecurity "penis_big">>
 					<<elseif $player.penissize is 4>>
@@ -235,7 +235,7 @@
 				<<elseif $player.penissize lte 1>>
 					<<He>> stifles a laugh. "Especially being so... shall we say, under-developed."
 					<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
-					
+
 					<<if $player.penissize is 1>>
 						<<insecurity "penis_small" 1>><<ginsecurity "penis_small">>
 					<<else>>
@@ -246,16 +246,16 @@
 				<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
 			<</if>>
 			<br><br>
-			
+
 			<<He>> smirks and shakes <<his>> head. "You couldn't be more deserving of this. Now, come here."
 		<<else>>
 			Leighton gets to <<his>> feet, eyes wide as <<he>> ogles your naked thighs. "That's it. Now, come here."
 		<</if>>
 		<br><br>
-		
+
 		As you approach Leighton, <<he>> grabs you and pushes you over the desk, paddle in hand.
 		<br><br>
-		
+
 		<<link [[Next|School Detention Paddle 1]]>><<set $phase to 1>><<set $molestationstart to 1>><</link>>
 		<br>
 	<<else>>
@@ -271,29 +271,29 @@
 		<<generates2>><<person1>>
 		You enter the office to find Leighton sitting at <<his>> desk, a <<person2>><<person>> sitting opposite, looking sorry for <<himself>>. Leighton pauses and turns to you as you enter, cutting off an angry lecture. "It's your lucky day, young <<if $pronoun is "m">>man<<else>>lady<</if>>, today you can observe what happens to naughty <<girls>> who break the rules."
 		<br>
-		
+
 		The <<person>> looks relieved, turning to watch Leighton yell at you.
 		<br><br>
-		
+
 		"What are you waiting for?" demands Leighton. "Get your clothes off, <<girl>>."
 		<br>
-		
+
 		You do as you're told, feeling the <<persons>> gaze on you the entire time. When you're finished, your clothes lie in a pile at your feet. Leighton stands up, eyes wandering all over your naked body, then <span class="lewd">pulls a large wooden paddle from <<person1>><<his>> desk drawer.</span><<stress 2>><<gstress>>
 		<<clothesstrip>><<set $genderknown.pushUnique("Leighton")>>
 		<br><br>
-		
+
 		"Now get over here." As you approach Leighton, <<he>> grabs you and pushes you over the desk.
 		<br><br>
-		
+
 		<<silently>>
 		<<person2>>
 		<<person>><<set $paddle_other_student to _text_output>>
 		<</silently>>
-		
+
 		<<saveNPC 1 paddle_other_student_1>>
 		<<endevent>>
 		<<npc Leighton>><<person1>>
-		
+
 		<<link [[Next|School Detention Paddle 2]]>><<set $molestationstart to 1>><</link>>
 		<br>
 	<<else>>
@@ -351,16 +351,16 @@
 	<br>
 	Leighton pauses and faces you as you enter, cutting off an angry lecture.
 	<br><br>
-	
+
 	"It's your lucky day," Leighton says to the other students, before turning to you with an evil grin.
 	<br><br>
-	
+
 	"Take off your clothes and place your hands on my desk," <<he>> demands. You reluctantly do as told, feeling the stares of the other students on you as you strip.
 	<<clothesstrip>><<set $genderknown.pushUnique("Leighton")>>
 	<br><br>
-	
+
 	Leighton gets to <<his>> feet, eyes wide as <<he>> ogles your nudity.
-	
+
 	<<if $player.penisExist and $player.penissize gte 3>>
 		<<He>> licks <<his>> lips hungrily at the sight of your <<penis>>. The others are equally enthralled.
 		<br>
@@ -372,10 +372,10 @@
 		<<elseif $player.penissize is 4>>
 			<<insecurity "penis_big" 1>><<ginsecurity "penis_big">>
 		<</if>>
-		
+
 		"That's quite enough," Leighton interjects, an amused smile on <<person1>><<his>> lips.
 		<br><br>
-		
+
 		<<He>> turns back to you and presses <<his>> hand against your back, shoving you against the desk.
 	<<elseif $player.penisExist and $player.penissize lte 1>>
 		<<He>> stifles a laugh as <<his>> gaze falls on your <<penis>>. The others aren't so considerate.
@@ -389,31 +389,31 @@
 			<<insecurity "penis_tiny" 1>><<ginsecurity "penis_tiny">>
 		<</if>>
 		<br><br>
-		
+
 		"That's quite enough," Leighton interjects, an amused smile on <<person1>><<his>> lips.
 		<br><br>
-		
+
 		<<He>> turns back to you and presses <<his>> hand against your back, shoving you against the desk.
 	<<else>>
 		Once you're exposed, Leighton presses a hand against your back and shoves you against the desk.
 	<</if>>
-	
+
 	"Today you will observe what happens to those who break the rules," <<he>> announces to the other students. <<He>> raises the paddle.
 	<br><br>
-	
+
 	<<silently>>
 	<<person2>><<person>><<set $paddle_other_student_A to _text_output>>
 	<<person3>><<person>><<set $paddle_other_student_B to _text_output>>
 	<<person4>><<person>><<set $paddle_other_student_C to _text_output>>
 	<</silently>>
-		
+
 	<<saveNPC 1 paddle_other_student_1>>
 	<<saveNPC 2 paddle_other_student_2>>
 	<<saveNPC 3 paddle_other_student_3>>
-	
+
 	<<endevent>>
 	<<npc Leighton>><<person1>>
-	
+
 	<<link [[Next|School Detention Paddle 3]]>><<set $molestationstart to 1>><</link>>
 <</if>>
 <<set $detention to 0>>
@@ -598,14 +598,14 @@ You leave the office, but rather than head toward your punishment, you make for
 
 	Pleased with yourself, you spend another minute polishing the troublesome spot. You make sure to put an extra wiggle in your hips, in case Leighton is still secretly watching.
 	<<if random(0, 100) lt 5 and ($bestialitydisable is "f" or $monster is 1)>>
-	 	You get so focused on picturing <<nnpc_his "Leighton">> embarrassed face, sounds of soft and rapid steps behind you elude your attention, until there's a sudden weight on your bent back and a growl in your ear.
+		You get so focused on picturing <<nnpc_his "Leighton">> embarrassed face, sounds of soft and rapid steps behind you elude your attention, until there's a sudden weight on your bent back and a growl in your ear.
 		<br><br>
 		<<link [[Next|School Detention Car Surprise Dog]]>><<set $molestationstart to 1>><</link>>
 	<<else>>
-	 	Eventually done with your task, you dress and leave the premises.
+		Eventually done with your task, you dress and leave the premises.
 		<br><br>
 		<<link [[Next|Oxford Street]]>><<clotheson>><<endevent>><</link>>
-	 <</if>>
+	<</if>>
 <</if>>
 
 :: School Detention Car Surprise Dog
@@ -730,7 +730,7 @@ The sound of paddle meeting<<if $phase is 1>> bare<</if>> flesh echoes around th
 By the end, the <<person>> is left a sobbing mess, holding onto the desk for support.
 <br><br>
 
-"Good <<girl>>," Leighton says to you, smiling as <<nnpc_he "Leighton">> takes the paddle back. "I think <<hes>> learnt <<his>> lesson now<<if $famescrap gte 400>>. It seems the rumours I heard about you were true, you really don't hold back<</if>>."
+"Good <<girl>>," Leighton says to you, smiling as <<nnpc_he "Leighton">> takes the paddle back. "I think <<hes>> learnt <<his>> lesson now<<if $fame.scrap gte 400>>. It seems the rumours I heard about you were true, you really don't hold back<</if>>."
 <br><br>
 
 <<link [[Next|School Detention Paddle Other End]]>><</link>>
@@ -753,7 +753,7 @@ You lift the paddle a little and swing it down upon <<person2>><<persons>> uptur
 	<br>
 	"You've been a very bad <<person2>><<personsimple>>," you agree, hitting <<him>> a few more times. The <<person>> cries out with each strike until Leighton is finally satisfied.
 	<br>
-	"Good <<girl>>," Leighton says to you, smiling as <<nnpc_he "Leighton">> takes the paddle back. "I think <<person2>><<hes>> learnt <<his>> lesson now<<if $famescrap gte 400>>. It seems the rumours I heard about you were true, you really don't hold back<</if>>."
+	"Good <<girl>>," Leighton says to you, smiling as <<nnpc_he "Leighton">> takes the paddle back. "I think <<person2>><<hes>> learnt <<his>> lesson now<<if $fame.scrap gte 400>>. It seems the rumours I heard about you were true, you really don't hold back<</if>>."
 	<br><br>
 
 	<<link [[Next|School Detention Paddle Other End]]>><<set $phase to 2>><</link>>
@@ -761,15 +761,15 @@ You lift the paddle a little and swing it down upon <<person2>><<persons>> uptur
 <<else>>
 	<span class="red">Leighton shakes <<person1>><<his>> head and snatches the paddle back.</span> "No, no, don't go easy on <<person2>><<him>>," <<person1>><<he>> says, concealing a smirk. "Here, let me show you how it's done." The <<nnpc_title "Leighton">> pushes you against the desk next to the <<person2>><<person>>, then <<if $worn.lower.skirt is 1>>lifts your skirt<<else>>tugs down your $worn.lower.name<</if>>, baring your <<bottom>>.
 	<br><br>
-	
+
 	<<silently>>
 	<<person2>><<person>><<set $paddle_other_student to _text_output>>
 	<</silently>>
-	
+
 	<<saveNPC 1 paddle_other_student_1>>
 	<<endevent>>
 	<<npc Leighton>><<person1>>
-	
+
 	<<link [[Next|School Detention Double Paddle]]>><<set $molestationstart to 1>><</link>>
 <</if>>
 
@@ -922,9 +922,9 @@ The <<person>> gives you a commiserating look, but <<he>> seems grateful that yo
 	<<else>>
 		wet, your pussy soaking through the fabric of your $worn.lower.name.
 	<</if>>
-	
+
 	Leaning forward against the desk, you continue, feeling waves of pleasure wash over you in time with the panicked <<personsimple>>'s yelps. <<exhibitionism5>>
-	
+
 	<<masturbationstart>>
 	<<set $timer to 20>>
 	<<set $mouth to "disabled">>
@@ -949,7 +949,7 @@ The <<person>> gives you a commiserating look, but <<he>> seems grateful that yo
 	<<link [[Continue|School Detention Paddle Masturbate]]>><</link>><<nexttext>>
 	<br>
 <</if>>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|School Detention Paddle Masturbate Finish]]>><<set $finish to 1>><</link>>
@@ -964,55 +964,55 @@ The <<person>> gives you a commiserating look, but <<he>> seems grateful that yo
 	<<if $worn.under_lower.exposed gte 1 and $worn.lower.exposed gte 2 and $worn.genitals.type.includes("hidden")>>
 		<<set $genderknown.pushUnique("Leighton")>>
 	<</if>>
-	
+
 	Leighton sets the paddle down, satisfied with the <<persons>> suffering. "There. Have you learnt your lesson?" The <<person>> sniffles and nods.
-	
+
 	You hasten to stop touching yourself before either of them notice, <span class="pink">but you can't control your spasms.</span> You end up crying out loudly in pleasure. Leighton and the <<person>> immediately turn their heads towards you.<<stress 6>><<gstress>>
 	<br><br>
-	
+
 	The <<persons>> face is a mixture of shock and disgust, but Leighton gives no reaction. <<person1>><<He>> turns back to the <<person2>><<person>>.
 	<br>
 	"You're done here," Leighton says. "Get out of my office."
 	<br><br>
-	
+
 	The <<person>> stares vacantly for a moment, still stunned by your display. <<He>> eventually shakes out of <<his>> stupor and scurries out of the room, though not before giving you one last disapproving glare. You're sure you'll be hearing about this for a while yet.<<status -10>><<lcool>>
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endmasturbation>>
 	<<endcombat>>
-	
+
 	<<npc Leighton>><<person1>>
 	<<if $schoolfameblackmail isnot undefined>>
 		"As for you," <<he>> says, turning to you, eyes glazed over with lust. "You're a dirty little slut, touching yourself in front of me like that. You've got me all worked up now. I think you owe me a little release." <<He>> pulls you to your feet and shoves you against the desk.
 		<br><br>
-		
+
 		<<link [[Next|School Detention Paddle Rape]]>><<set $molestationstart to 1>><</link>>
 		<br>
 	<<else>>
 		"As for you," <<nnpc_he "Leighton">> says, fixing you with a stern glare. "Such overt acts of vulgarity are inexcusable. <span class="red">Perhaps another day of detention will help drill that into your thick skull.</span>"<<detention 6>><<gdelinquency>>
 		<br><br>
-		
+
 		<<nnpc_He "Leighton">> walks back behind <<nnpc_his "Leighton">> desk and motions for you to leave. You comply.
 		<br><br>
-		
+
 		<<link [[Next|Hallways]]>><<endevent>><</link>>
 		<br>
 	<</if>>
 <<else>>
 	Leighton gives the <<person>> one last spank with <<person1>><<his>> hand before putting the paddle down and taking a breath. <<He>> looks flustered with the effort, face flushed slightly. "For your sake, I hope you've learnt your lesson," <<he>> says to the <<person2>><<person>>. "I don't want to see you in here again. Now get out of my office."
 	<br><br>
-	
+
 	The <<person>> doesn't need to be told twice. <<He>> <<if $pronoun is "m">>pulls up his shorts<<else>>tugs down her skirt<</if>> and runs out of the door, tears falling down <<his>> face.
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endmasturbation>>
 	<<endcombat>>
-	
+
 	"As for you," <<nnpc_he "Leighton">> says with a smirk, turning to you. "I'm glad you enjoyed the show. I know I did." <<nnpc_He "Leighton">> winks at you knowingly, before showing you out of the office.
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><</link>>
 	<br>
 <</if>>
@@ -1029,7 +1029,7 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 	<<case 1>>
 		The <<person2>><<person>> struggles to meet your gaze as <<he>> <<if $pronoun is "m">>pulls up <<his>> shorts<<else>>straightens <<his>> skirt<</if>>, <<his>> expression one of utter humiliation. <<He>> staggers out of the office, not uttering a word.
 	<<case 2>>
-		The <<person2>><<person>> gives you a grateful smile as <<he>> <<if $pronoun is "m">>pulls up <<his>> shorts<<else>>straightens <<his>> skirt<</if>> and exits the office.<<stress -6>><<trauma -6>><<lstress>><<ltrauma>>		
+		The <<person2>><<person>> gives you a grateful smile as <<he>> <<if $pronoun is "m">>pulls up <<his>> shorts<<else>>straightens <<his>> skirt<</if>> and exits the office.<<stress -6>><<trauma -6>><<lstress>><<ltrauma>>
 <</switch>>
 <br><br>
 
@@ -1130,41 +1130,41 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 	<<loadNPC 1 paddle_other_student_1>>
 	The paddle clatters to the ground as Leighton's orgasm subsides, steadying <<himself>> against the desk. Clarity returns to <<his>> eyes and <<he>> stands abruptly, realising what just happened. <<He>> looks flustered as <<he>> picks the paddle up off the floor.
 	<br><br>
-	
+
 	"Don't breathe a word of this to anyone," <<he>> says through laboured breaths. "That goes for both of you."
 	<br><br>
-	
+
 	<<tearful>> you nod. The <<person2>><<person>> wordlessly sobs beside you, <<his>> face down against the desk. You wonder if <<he>> even noticed what happened.
 	<br><br>
-	
+
 	<<earnFeat "Leighton's Nightmare">>
 	<<clotheson>>
 	<<endcombat>>
 	<<npc Leighton>>
 	<<loadNPC 1 paddle_other_student_1>><<clearNPC paddle_other_student_1>>
 	<<person1>>
-	
+
 	<<link [[Next|School Detention Paddle Other End]]>><<set $phase to 1>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
 	<<loadNPC 1 paddle_other_student_1>>
 	Leighton recoils in pain, and you squirm free from <<his>> grip.
 	<br><br>
-	
+
 	<<He>> shouts after you as you flee down the corridor. "You've made things much worse for yourself, <<bitch>>. Mark my words." <<tearful>> you keep running, leaving the <<person2>><<person>> to <<his>> fate.
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
 	<<clearNPC paddle_other_student_1>>
-	
+
 	<<link [[Next|Hallways]]>><</link>>
 	<br>
 <<else>>
 	<<loadNPC 1 paddle_other_student_1>>
 	Leighton takes a step back, looking satisfied. "That's a good <<girl>>. Don't you see how much easier things would be if you just did as you were told?"
 	<br><br>
-	
+
 	<<if $submissive gte 1150>>
 		<<tearful>> you mumble, "Yes, <<sir>>."
 	<<elseif $submissive lte 850>>
@@ -1173,14 +1173,14 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 		<<tearful>> you nod.
 	<</if>>
 	<br><br>
-	
+
 	Leighton looks smug. "And you?" <<he>> asks the <<person2>><<person>>, who only sobs quietly in response.
-	
+
 	<<clotheson>>
 	<<endcombat>>
 	<<npc Leighton>>
 	<<loadNPC 1 paddle_other_student_1>><<clearNPC paddle_other_student_1>>
-	
+
 	<<link [[Next|School Detention Paddle Other End]]>><<set $phase to 1>><</link>>
 	<br>
 <</if>>
@@ -1287,43 +1287,43 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 <<if $enemyarousal gte $enemyarousalmax>>
 	The paddle clatters to the ground as Leighton's orgasm subsides, steadying <<himself>> against the desk. Clarity returns to <<his>> eyes and <<he>> stands abruptly, realising what just happened.
 	<br><br>
-	
+
 	"Don't breathe a word of this to anyone," <<he>> pants. "Leave." <<tearful>> you walk from the room.
 	<br><br>
-	
+
 	<<earnFeat "Leighton's Nightmare">>
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<link [[Next|Hallways]]>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
 	<<He>> recoils in pain and you squirm from <<his>> grip.
 	<br><br>
-	
+
 	<<He>> shouts after you as you flee down the corridor. "You've made things much worse for yourself, <<bitch>>. Mark my words." <<tearful>> you keep running.
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<link [[Next|Hallways]]>><</link>>
 	<br>
 <<else>>
 	Leighton places the paddle down next to you on the desk. "That's a good <<girl>>. Don't you see how much easier things would be if you just did as you were told?"
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
 	<<npc Leighton>><<person1>>
-	
+
 	<<if $pain gte 60>>
 		You start to push yourself off the desk, but Leighton places a hand on your shoulder, holding you in place. "Just a moment. I have something for you."<<stress 2>><<gstress>>
 		<br><br>
-		
+
 		<<He>> walks behind <<his>> desk and fishes around in a drawer, then pulls out a tube of numbing cream. "If you promise to be a good <<girl>>, I'll make you feel better. How does that sound?"
 		<br><br>
-		
+
 		<<link [[Agree|School Detention Paddle Cream]]>><<set $phase to 0>><<set $pain -= 110>><<stress 6>><<arousal 1000>><</link>><<lllpain>><<gstress>><<ggarousal>>
 		<br>
 		<<link [[Refuse|School Detention Paddle Cream Refuse]]>><<set $phase to 0>><</link>>
@@ -1333,7 +1333,7 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 		<br>
 		<<tearful>> you leave the office.
 		<br><br>
-		
+
 		<<link [[Next|Hallways]]>><<endevent>><</link>>
 		<br>
 	<</if>>
@@ -1367,7 +1367,7 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 		<<case 2>>
 			"Beat <<phim>> harder, I want to see <<phim>> scream!" cries the <<print $paddle_other_student>>. Leighton complies with a smirk, bringing the paddle down hard.<<violence 3>><<gstress>><<gtrauma>><<gpain>>
 		<<case 3>>
-			You see the flash of a camera behind you as the <<print $paddle_other_student>> takes a picture of your humiliation.<<combattrauma 2>><<fameexhibitionism 2 pic>><<gtrauma>>
+			You see the flash of a camera behind you as the <<print $paddle_other_student>> takes a picture of your humiliation.<<combattrauma 2>><<fameexhibitionism 2 "pic">><<gtrauma>>
 		<<case 4>>
 			Leighton looks over <<his>> shoulder at the <<print $paddle_other_student>>. <<He>> smirks. "Maybe I'll let our friend have a go with you when I'm done."<<set $stress += 6>><<gstress>>
 		<<case 5>>
@@ -1430,56 +1430,56 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-	
+
 	<<loadNPC 1 paddle_other_student_1>>
 	Clarity returns to Leighton's eyes and <<he>> stands abruptly, realising what just happened. The <<person2>><<person>> stares slack-jawed at the scene.
 	<br><br>
-	
+
 	Leighton notices <<his>> gawking and fixes <<him>> with a glare. "Don't even think about telling anyone about this, or it'll be your ass up here next time. Understood?" The <<person>> quickly nods.
 	<br><br>
-	
+
 	"And you," Leighton breathes, turning back to you. "Get out of my office. I don't want to see you in here again."
 	<br><br>
-	
+
 	<<earnFeat "Leighton's Nightmare">>
 	<<endcombat>>
 	<<clearNPC paddle_other_student_1>>
-	
+
 	<<tearful>> you get dressed and step out into the hallway.
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><<clotheson>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
 	<<loadNPC 1 paddle_other_student_1>>
 	You wrench your arms free from Leighton's grip and shove <<him>> away. The <<person2>><<person>> looks shocked and slightly impressed.<<status 2>><<gcool>>
 	<br><br>
-	
+
 	You take advantage of the confusion and flee into the corridor, Leighton angrily shouting after you. "Hey, <<bitch>>, forget something?"
 	<br>
 	You were unable to rescue your clothes on the way out. <<tearful>> you keep running.
 	<br><br>
-	
+
 	<<endcombat>>
 	<<clearNPC paddle_other_student_1>>
-	
+
 	<<link [[Next|Hallways]]>><<clotheson>><<clothesruined>><</link>>
 	<br>
 <<else>>
 	Leighton places the paddle down next to you on the desk. "That's a good <<girl>>. Don't you see how much easier things would be if you just did as you were told?"
 	<br><br>
-	
+
 	<<endcombat>>
 	<<npc Leighton>>
 	<<loadNPC 1 paddle_other_student_1>><<clearNPC paddle_other_student_1>>
-	
+
 	The <<person2>><<person>> looks at you, licking <<his>> lips. "You sure showed <<phim>>, <<person1>><<sir>>!"
 	<br><br>
-	
+
 	<<if $pain gte 60>>
 		Leighton ignores <<person2>><<him>>, instead fixating on your pained expression. <<person1>><<He>> walks behind <<his>> desk and fishes around in a drawer, then pulls out a tube of numbing cream. "If you promise to be a good <<girl>>, I'll make you feel better. How does that sound?"
 		<br><br>
-		
+
 		<<link [[Agree|School Detention Paddle Cream]]>><<set $phase to 1>><<set $pain -= 110>><<stress 6>><<arousal 1000>><</link>><<lllpain>><<gstress>><<ggarousal>>
 		<br>
 		<<link [[Refuse|School Detention Paddle Cream Refuse]]>><<set $phase to 1>><</link>>
@@ -1487,10 +1487,10 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 	<<else>>
 		"Quite," Leighton concurs with a smirk. "I'm sure <<pshes>> learnt <<pher>> lesson. At least I hope so, for <<pher>> sake."
 		<br><br>
-		
+
 		Once you're dressed, <<person1>><<he>> leads you out of <<his>> office. You do your best to ignore the <<person2>><<persons>> smug grin as you step into the hallway.
 		<br><br>
-		
+
 		<<link [[Next|Hallways]]>><<endevent>><<clotheson>><</link>>
 		<br>
 	<</if>>
@@ -1531,7 +1531,7 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 			<br>
 			"Fucking perv," the <<print $paddle_other_student_C>> snickers.
 			<br>
-			They continue to jeer as they raise their phones, taking pictures of your lewd display. Leighton smirks in satisfaction.<<combattrauma 5>><<famesex 12 pic>>
+			They continue to jeer as they raise their phones, taking pictures of your lewd display. Leighton smirks in satisfaction.<<combattrauma 5>><<famesex 12 "pic">>
 		<<case "moan">>
 			The <<print $paddle_other_student_A>> nudges the <<print $paddle_other_student_C>>, sporting a wide grin. "Listen! <<pShes>> getting off on this!" They all burst into laughter.<<combattrauma 3>><<gtrauma>>
 	<</switch>>
@@ -1546,7 +1546,7 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 		<<case 2>>
 			"Beat <<phim>> harder, I want to see <<phim>> scream!" cries the <<print $paddle_other_student_A>>, the others eagerly nodding in agreement. Leighton complies with a smirk, bringing the paddle down hard.<<violence 3>><<gstress>><<gtrauma>><<gpain>>
 		<<case 3>>
-			The three students raise their phones, laughing and snapping pictures.<<combattrauma 3>><<fameexhibitionism 6 pic>><<gtrauma>>
+			The three students raise their phones, laughing and snapping pictures.<<combattrauma 3>><<fameexhibitionism 6 "pic">><<gtrauma>>
 		<<case 4>>
 			Leighton peers over <<his>> shoulder at the other students. <<He>> smirks. "Maybe I'll let them have a turn with you when I'm done. Bet that'd teach you a lesson."<<set $stress += 18>><<ggstress>>
 		<<case 5>>
@@ -1610,54 +1610,54 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-	
+
 	The students erupt into laughter. You're not sure if it's directed at you or Leighton, but the <<nnpc_title "Leighton">> seems unamused regardless. <<He>> smacks the paddle against the desk, promptly shutting them up.
 	<br><br>
-	
+
 	"If any of you little shits breathe a word about this to anyone," <<he>> growls through laboured breaths, "It'll be your asses up here next time. Understood?" They quickly nod in assent.
 	<br><br>
-	
+
 	"And you," Leighton says, turning <<his>> attention back to you. "Get out of my office." <<tearful>> you get dressed and scurry into the hallway.
 	<br><br>
-	
+
 	<<earnFeat "Leighton's Nightmare">>
 	<<endcombat>>
 	<<clearNPC paddle_other_student_1>><<clearNPC paddle_other_student_2>><<clearNPC paddle_other_student_3>>
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><<clotheson>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
 	You wrench your arms free from Leighton's grip and shove <<him>> away. The other students laugh and cheer at the spectacle, equal parts amused and impressed by your audacity.<<status 5>><<gcool>>
 	<br><br>
-	
+
 	You take advantage of the confusion and flee into the corridor, Leighton angrily shouting after you. "Hey, <<bitch>>, forget something?"
 	<br>
 	You were unable to rescue your clothes on the way out. <<tearful>> you keep running.
 	<br><br>
-	
+
 	<<endcombat>>
 	<<clearNPC paddle_other_student_1>><<clearNPC paddle_other_student_2>><<clearNPC paddle_other_student_3>>
-	
+
 	<<link [[Next|Hallways]]>><<clotheson>><<clothesruined>><</link>>
 	<br>
 <<else>>
 	Leighton places the paddle down next to you on the desk. "That's a good <<girl>>. Don't you see how much easier things would be if you just did as you were told?"
 	<br><br>
-	
+
 	<<endcombat>>
 	<<npc Leighton>>
 	<<loadNPC 1 paddle_other_student_1>><<clearNPC paddle_other_student_1>>
 	<<loadNPC 2 paddle_other_student_2>><<clearNPC paddle_other_student_2>>
 	<<loadNPC 3 paddle_other_student_3>><<clearNPC paddle_other_student_3>>
-	
+
 	The <<person2>><<person>> looks at you, licking <<his>> lips. "You sure showed <<phim>>, <<person1>><<sir>>!" <<person2>><<His>> friends laugh in response.
 	<br><br>
-	
+
 	<<if $pain gte 60>>
 		Leighton ignores them, instead fixating on your pained expression. <<person1>><<He>> walks behind <<his>> desk and fishes around in a drawer, then pulls out a tube of numbing cream. "If you promise to be a good <<girl>>, I'll make you feel better. How does that sound?"
 		<br><br>
-		
+
 		<<link [[Agree|School Detention Paddle Cream]]>><<set $phase to 2>><<set $pain -= 110>><<stress 6>><<arousal 1000>><</link>><<lllpain>><<gstress>><<ggarousal>>
 		<br>
 		<<link [[Refuse|School Detention Paddle Cream Refuse]]>><<set $phase to 1>><</link>>
@@ -1665,10 +1665,10 @@ Leighton puts the paddle down on the desk and gives the <<person2>><<person>> on
 	<<else>>
 		"Quite," Leighton concurs with a smirk. "I'm sure <<pshes>> learnt <<pher>> lesson. At least I hope so, for <<pher>> sake."
 		<br><br>
-		
+
 		Once you're dressed, <<person1>><<he>> leads you out of <<his>> office. You do your best to ignore the other students' taunting remarks as you step into the hallway.
 		<br><br>
-		
+
 		<<link [[Next|Hallways]]>><<clotheson>><<endevent>><</link>>
 		<br>
 	<</if>>
@@ -1694,13 +1694,13 @@ The pain in your <<bottom>> is very much still there, but it lessens the more Le
 <<if $phase is 2>>
 	<<set _detentionStudent to random(1, 3)>>
 	The other students exchange mocking remarks as they leer at your exposed ass,
-	
+
 	<<if $uncomfortable.nude is true>>
 		but you grit your teeth and bear it.
 	<<else>>
 		but you hardly mind.
 	<</if>>
-	
+
 	The <<personselect _detentionStudent>><<person>> is noticeably silent, however.
 	<br><br>
 <<elseif $phase is 1>>
@@ -1713,51 +1713,51 @@ The pain in your <<bottom>> is very much still there, but it lessens the more Le
 <<if $worn.genitals.anal_shield is 1>>
 	Leighton continues to caress your sore behind, <<person1>><<his>> fingers eventually slipping between your cheeks. <<He>> gives a quiet, curious murmur when <<he>> brushes <<his>> thumb over your anal shield. "Is this to protect you or keep you under control?" <<he>> snickers.<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
 	<br><br>
-	
+
 	After a while, Leighton withdraws <<his>> hand and gives your ass one last light pat. "I hope that teaches you to follow the rules, young <<if $player.gender_appearance is "m">>man<<else>>lady<</if>>."
 	<br><br>
-	
+
 	With that, you fix your clothing, heading back out into the hallway.
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><<endevent>><<clotheson>><</link>>
 	<br>
 <<elseif $analdisable is "f">>
 	Leighton seems to be enjoying <<person1>><<himself>> a little too much as <<he>> rubs your sore butt. <<His>> fingers begin to prod against your anus with each pass over.
 	<br><br>
-	
+
 	<<if $phase is 2>>
 		The other students continue to ridicule you as Leighton fondles your <<bottom>>. Except the <<personselect _detentionStudent>><<person>>. <<He>> remains eerily quiet, until suddenly crying out, "Y-yes! Finger <<pher>> asshole!"
 		<br><br>
-		
+
 		The moment the words leave <<his>> lips, <<his>> face turns red, and <<he>> stares down in shame. The others are only momentarily shocked and soon begin poking fun at <<his>> outburst.
 		<br><br>
-		
+
 		Leighton stops massaging you and turns around to face the <<person>>. "How obscene," <<person1>><<he>> tuts before addressing the other two. "You two may leave. It looks like your friend needs some special discipline."
 		<br><br>
-		
+
 		The two stop laughing, giving the <<personselect _detentionStudent>><<person>> a worried look before shuffling out of the office. Leighton locks the door behind them.
 		<br><br>
-		
+
 		<<saveNPC _detentionStudent detention_paddle_student>>
 		<<endevent>>
 		<<loadNPC 0 detention_paddle_student>>
 		<<person1>>
-		
+
 		<<link [[Next|School Detention Paddle Cream 2]]>><</link>>
 		<br>
 	<<elseif $phase is 1>>
 		The moaning behind you grows louder, until the <<person2>><<person>> finally cries out, "Y-yes! Finger <<pher>> asshole!"
 		<br><br>
-		
+
 		Immediately realising what <<he>> just said, the <<person>> gasps and covers <<his>> mouth. "My, my," Leighton chuckles. "Someone's eager." The <<person>> stares down in shame.
 		<br><br>
-		
+
 		<<saveNPC 1 detention_paddle_student>>
 		<<endevent>>
 		<<loadNPC 0 detention_paddle_student>>
 		<<person1>>
-		
+
 		<<link [[Next|School Detention Paddle Cream 2]]>><</link>>
 		<br>
 	<<else>>
@@ -1773,10 +1773,10 @@ The pain in your <<bottom>> is very much still there, but it lessens the more Le
 <<else>>
 	After a while, Leighton withdraws <<person1>><<his>> hand and gives your ass one last light pat. "I hope that teaches you to follow the rules, young <<if $player.gender_appearance is "m">>man<<else>>lady<</if>>."
 	<br><br>
-	
+
 	With that, you fix your clothing, heading back out into the hallway.
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><<endevent>><<clotheson>><</link>>
 	<br>
 <</if>>
@@ -1817,7 +1817,7 @@ The <<person>> gulps and nods. Suddenly, you feel a pair of hands on your bottom
 <<if $phase is 0>>
 	You say that you feel better now and you're ready to leave. The <<person>> sighs, sounding equal parts disappointed and relieved, and steps away from you.
 	<br><br>
-	
+
 	You start to get up, <span class="red">but someone grabs your shoulders and forces you back against the desk.</span> You look up to see Leighton shooting the <<person>> a stern glare.
 	<br>
 	"I told you to do as you're told, or else," <<nnpc_he "Leighton">> growls. "There are far worse punishments than a paddling, you know."
@@ -1846,26 +1846,26 @@ The <<person>> pauses, <<if $phase is 0>>sniffles<<else>>takes a deep breath<</i
 
 <<if $NPCList[0].penis isnot "none">>
 	"No, no, no," Leighton groans, still unsatisfied. "All the way."
-	
+
 	<<if $phase is 2>>
 		<br><br>
 		You give <<him>> a little encouragement and press your butt against <<his>> groin. You can feel <<his>> <<print $NPCList[0].penisdesc>> beneath <<his>> <<if $pronoun is "m">>shorts<<else>>skirt<</if>> already erect.
 		<br><br>
-		
+
 		The <<person>> gasps and flinches away. The room is silent for a moment, until you hear the sound of fabric rustling as <<he>> <<if $pronoun is "m">>lowers his shorts<<else>>lifts her skirt<</if>>.
 		<br>
 		<<He>> takes another deep breath, and you soon feel something prodding your anus.
 		<br><br>
-		
+
 		<<link [[Next|School Detention Paddle Cream Sex]]>><<set $sexstart to 1>><<set $phase to 0>><</link>>
 		<br>
 	<<else>>
 		After another long period of silence, you hear the sound of fabric rustling as the <<person>> <<if $pronoun is "m">>lowers his shorts<<else>>lifts her skirt<</if>>.
 		<br><br>
-		
+
 		Leighton chuckles darkly as the <<person>> tentatively takes position behind you. You feel <<his>> <<print $NPCList[0].penisdesc>> against your butt.
 		<br><br>
-		
+
 		<<link [[Next|School Detention Paddle Cream Sex]]>><<set $molestationstart to 1>><<set $phase to 0>><</link>>
 		<br>
 	<</if>>
@@ -1882,9 +1882,9 @@ The <<person>> pauses, <<if $phase is 0>>sniffles<<else>>takes a deep breath<</i
 	<<violence 1>>
 	<<neutral 1>>
 	<<molested>>
-	
+
 	<<maninit>>
-	
+
 	<<if $phase is 1>>
 		<<set $NPCList[0].lefthand to "anusentrance">><<set $anususe to 1>>
 	<<else>>
@@ -1896,15 +1896,15 @@ The <<person>> pauses, <<if $phase is 0>>sniffles<<else>>takes a deep breath<</i
 	<<consensual>>
 	<<set $consensual to 1>>
 	<<neutral 1>>
-	
+
 	<<maninit>>
-	
+
 	<<if $phase is 1>>
 		<<set $NPCList[0].lefthand to "anusentrance">><<set $anususe to 1>>
 	<<elseif $phase is 0>>
 		<<set $anususe to "penis">><<set $NPCList[0].penis to "anusentrance">><<set $anusstate to "entrance">><<set $speechanusentrance to 1>>
 		<<set $NPCList[0].location.genitals = "genitals">><<set $anustarget to 0>>
-	<</if>>	
+	<</if>>
 <</if>>
 <<set $position to "doggy">>
 
@@ -1919,7 +1919,7 @@ The <<person>> pauses, <<if $phase is 0>>sniffles<<else>>takes a deep breath<</i
 	<<case 4, 5>>
 		<<person1>>"<<Hes>> good at this, isn't <<he>>?" says Leighton with a smirk, looking up at the <<person>>.
 	<<case 6>>
-		"Hold that expression," Leighton commands, raising <<nnpc_his "Leighton">> camera.<<famesex 2 pic>>
+		"Hold that expression," Leighton commands, raising <<nnpc_his "Leighton">> camera.<<famesex 2 "pic">>
 <</switch>>
 
 <<stateman>>
@@ -1941,82 +1941,82 @@ The <<person>> pauses, <<if $phase is 0>>sniffles<<else>>takes a deep breath<</i
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-	
+
 	<<if $detentionPaddleForced>>
 		Staring down at <<his>> feet, the <<person>> straightens <<his>> clothes and backs away from you. You follow suit, pushing yourself off the desk and getting dressed.
 		<br><br>
-		
+
 		Leighton smirks, holding <<nnpc_his "Leighton">> camera up and tapping it with one finger. "Let's keep this between us, shall we?" You both nod wordlessly.
 		<br><br>
-		
+
 		<<tearful>> you and the <<person>> stagger out of the office, unable to meet each other's gaze.
 		<br><br>
 	<<else>>
 		"Th-that was amazing!" the <<person>> pants, <<his>> nervousness all but gone.
-		
-		<<if $famesex gte 400>>
+
+		<<if $fame.sex gte 400>>
 			"I heard <<pshe>> lets anyone fuck <<phim>>. I've always wanted to have a go!"
 			<br><br>
-			
+
 			"Mind your language," Leighton mutters. <<nnpc_He "Leighton">> doesn't sound the slightest bit bothered.
 		<<elseif $cool gte 240>>
 			"I've wanted to do that for a while. I've always had a bit of crush..." <<he>> trails off, staring at <<his>> feet and giggling.
 			<br><br>
-			
+
 			"How cute," Leighton mutters. <<nnpc_He "Leighton">> doesn't sound particularly interested.
 		<<elseif $cool lte 80>>
 			<<He>> gives you a smug look. "You're welcome, by the way. I doubt your sorry ass gets much attention."<<trauma 2>><<gtrauma>>
 			<br><br>
-			
+
 			"Mind your language," Leighton mutters. <<nnpc_He "Leighton">> doesn't sound the slightest bit bothered.
 		<<else>>
 			<<He>> stares at you and licks <<his>> lips. "Bet <<pshe>> enjoyed it, too."<<if $consensual isnot 1>><<trauma 6>><<gtrauma>><</if>>
 			<br><br>
-			
+
 			"Mhm. Quite," Leighton mutters. <<nnpc_He "Leighton">> doesn't sound particularly interested.
 		<</if>>
-		
+
 		<<nnpc_He "Leighton">> scrolls through the pictures on <<nnpc_his "Leighton">> camera, before addressing you.
 		<br><br>
-		
+
 		"I hope you've both learnt a valuable lesson," <<nnpc_he "Leighton">> says. <<nnpc_He "Leighton">> holds up <<nnpc_his "Leighton">> camera and smiles. "A lesson I'd suggest you keep to yourselves."
 		<br><br>
-		
+
 		<<tearful>> you and the <<person>> are led out of the office. <<He>> winks as <<he>> disappears down the hallway.
 	<</if>>
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<link [[Next|Hallways]]>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
 	You shove the <<person>> off of you and scamper away from the desk.
 	<br><br>
-	
+
 	Leighton makes a grab for you, but you're already out the door. <<nnpc_He "Leighton">> shouts after you as you flee down the corridor. "Hey, <<bitch>>, forget something?"
 	<br>
 	You were unable to rescue your clothes on the way out. <<tearful>> you keep running.
 	<br><br>
-	
+
 	<<endcombat>>
-	
+
 	<<link [[Next|Hallways]]>><<clotheson>><<clothesruined>><</link>>
 	<br>
 <<else>>
 	The <<person>> sighs, sounding equal parts disappointed and relieved, and steps away from you.
 	<br><br>
-	
+
 	Leighton frowns, scrolling through the pictures on <<nnpc_his "Leighton">> camera. "Good enough, I suppose," <<nnpc_he "Leighton">> mutters, before looking up at you. "Go on, you've wasted enough of my time. Try not to end up here again."
 	<br><br>
-	
+
 	<<tearful>> you get dressed and leave the office with the <<person>>. <<He>> shoots an awkward glance in your direction, then blushes and scurries down the hall.
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<link [[Next|Hallways]]>><</link>>
 	<br>
 <</if>>
@@ -2049,7 +2049,7 @@ The <<person>> pauses, <<if $phase is 0>>sniffles<<else>>takes a deep breath<</i
 	<<else>>
 		Your pussy is practically dripping now,
 	<</if>>
-	
+
 	<<if $phase is 2>>
 		but you're enjoying this too much to pull away.
 	<<else>>
@@ -2111,28 +2111,28 @@ Leighton sighs and shakes <<his>> head as <<he>> places the tube back in its dra
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-	
+
 	"Good <<girl>>," <<he>> says, sitting at <<his>> desk. "I trust you'll behave yourself from now on?"
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<tearful>> you leave the office.
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
 	<br>
 <<else>>
 	You knock the <<nnpc_title "Leighton">> away from you, who staggers and falls.
 	<br><br>
-	
+
 	<<tearful>> you flee the office, hearing <<him>> laugh behind you.
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
 	<br>
 <</if>>
diff --git a/game/overworld-town/loc-school/fame.twee b/game/overworld-town/loc-school/fame.twee
index e7226abcb6944475ecb0f1a89a4d03b6d781a12d..b33b019014fb3f71fe98c51b9f6e429339be92e3 100644
--- a/game/overworld-town/loc-school/fame.twee
+++ b/game/overworld-town/loc-school/fame.twee
@@ -9,21 +9,21 @@ You see a large group of students up ahead. They're gathered around an announcem
 
 <span class="red">It's covered with pictures of you.</span>
 
-<<if $famerape gte $famesex>>
-	<<if $famebestiality gte 1000>>
+<<if $fame.rape gte $fame.sex>>
+	<<if $fame.bestiality gte 1000>>
 	Being raped. By so many different people. Even animals appear to ravage you in some of them.
 	<<else>>
 	Being raped. By so many different people.
 	<</if>>
 <<else>>
-	<<if $famebestiality gte 1000>>
+	<<if $fame.bestiality gte 1000>>
 	Being fucked. By so many different people. Even animals appear to ravage you in some of them.
 	<<else>>
 	Being fucked. By so many different people.
 	<</if>>
 <</if>>
 
-<<if $famesex gte $famerape and $famebestiality lt 1000>>
+<<if $fame.sex gte $fame.rape and $fame.bestiality lt 1000>>
 You stare at the board. You feel angry.
 <<gtrauma>><<trauma 6>>
 <br><br>
@@ -132,7 +132,7 @@ Leighton retrieves <<his>> camera from the drawer and leers at you.
 	<<strip>>
 	You <<nervously>> remove your clothing. You feel <<his>> eyes taking in your exposed body. "Good," <<he>> says. "Worth every penny." <<He>> brings the camera up to <<his>> eyes and takes a picture. Then another. <<He>> circles around you, snapping from different angles.
 	<br><br>
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
 	"I never get bored of that outfit," <<he>> says. <<He>> brings the camera up to <<his>> eyes and takes a picture. <<He>> circles around you, snapping from different angles. <<He>> occasionally stops to adjust your clothing, opening a button on your shirt or tugging down your $worn.lower.name to show more of your hips.
 	<br><br>
@@ -146,7 +146,7 @@ Leighton retrieves <<his>> camera from the drawer and leers at you.
 <<set $rng to random(1, 100)>>
 <<if $rng gte 61>>
 	<<He>> asks you to bend over, kneel, and other suggestive poses.
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
 	<<He>> asks you to adopt various poses, but nothing too lewd.
 <</if>>
@@ -269,7 +269,6 @@ Leighton starts tearing them down. <<He>> gives you an irritated look. You wink.
 	"I know you still want pictures of me," you say. "I'll do it for cash."
 <</if>>
 <<exhibitionism4>>
-<br><br>
 
 <<Hes>> taken aback. <<He>> runs <<his>> fingers along <<his>> desk. "I'll give you £50 per shoot. Once every school day. I'm not made of money," <<he>> says. "Clear off for now, I'm busy." You leave <<his>> office.
 <br><br>
@@ -315,7 +314,6 @@ Leighton starts tearing them down. <<He>> gives you an irritated look. You wink.
 	"I know you still want pictures of me," you say. "Keep them to yourself and I'll do it for cash."
 <</if>>
 <<exhibitionism4>>
-<br><br>
 
 <<Hes>> taken aback. <<He>> runs <<his>> fingers along <<his>> desk. "I'll give you £50 per shoot. Once every school day. I'm not made of money," <<he>> says. "Clear off for now, I'm busy." You leave <<his>> office.
 <br><br>
@@ -348,7 +346,7 @@ Leighton retrieves <<his>> camera from the drawer and leers at you.
 	<<strip>>
 	You <<nervously>> remove your clothing. You feel <<his>> eyes taking in your exposed body. "Good," <<he>> says. "I don't mind you covering, it's cute." <<He>> brings the camera up to <<his>> eyes and takes a picture. Then another. <<He>> circles around you, snapping from different angles.
 	<br><br>
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
 	"I never get bored of that outfit," <<he>> says. <<He>> brings the camera up to <<his>> eyes and takes a picture. <<He>> circles around you, snapping from different angles. <<He>> occasionally stops to adjust your clothing, opening a button on your shirt or tugging down your $worn.lower.name to show more of your hips.
 	<br><br>
@@ -362,7 +360,7 @@ Leighton retrieves <<his>> camera from the drawer and leers at you.
 <<set $rng to random(1, 100)>>
 <<if $rng gte 61>>
 	<<He>> asks you to bend over, kneel, and other suggestive poses.
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
 	<<He>> asks you to adopt various poses, but nothing too lewd.
 <</if>>
diff --git a/game/overworld-town/loc-school/hallways.twee b/game/overworld-town/loc-school/hallways.twee
index fe960b8558a8e163cf85b5bb688a4fb3c35d8331..612f4c6400b042f687a099cc2ec4d923f19978be 100644
--- a/game/overworld-town/loc-school/hallways.twee
+++ b/game/overworld-town/loc-school/hallways.twee
@@ -256,7 +256,7 @@
 
 	<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
 <<else>>
-	The <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> back off from you, your clothes in their hands. Completely surrounded, you crouch and try to keep your <<lewdness>> concealed.
+	The <<fullGroup>> back off from you, your clothes in their hands. Completely surrounded, you crouch and try to keep your <<lewdness>> concealed.
 	<br><br>
 
 	"Oh my god, you stripped <<phim>> naked!"
@@ -281,7 +281,7 @@
 		You glare at the students. "Give me back my clothes, this instant," you say with surprising confidence given your predicament.
 		<br><br>
 
-		The <<person1>><<person>> laughs "Oh no! We'd better do what <<pshe>> says!" <<He>> throws your clothing at a ceiling light, where it catches and remains suspended. "There you go!"
+		The <<person1>><<person>> laughs. "Oh no! We'd better do what <<pshe>> says!" <<He>> throws your clothing at a ceiling light, where it catches and remains suspended. "There you go!"
 		<br><br>
 
 		The students enjoy watching you jump and reach above you, whilst trying to keep yourself covered. You manage to knock the light askew, and your clothes come tumbling on top of you. <<tearful>> you clutch your clothing and find a quiet space to dress.
@@ -387,27 +387,27 @@
 <<set $rng to random(0, 100)>>
 <<promiscuity1>>
 <<if $rng gte 75>>
-   Smiling, you look over your shoulder, "Thanks!" you purr.
+	Smiling, you look over your shoulder, "Thanks!" you purr.
 <<elseif $rng gte 50>>
-   You stick out your <<bottom>>, give it a little wiggle, and look over your shoulder.
+	You stick out your <<bottom>>, give it a little wiggle, and look over your shoulder.
 <<elseif $rng gte 37>>
-   You turn to face the <<person>> and giggle, "That was nice!"
+	You turn to face the <<person>> and giggle, "That was nice!"
 <<elseif $rng gte 25>>
-   You turn to face the <<person>> and giggle, "You like it?"
+	You turn to face the <<person>> and giggle, "You like it?"
 <<else>>
-   You wink at the <<person>>.
+	You wink at the <<person>>.
 <</if>>
 <br><br>
 
 <<set $rng to random(0, 100)>>
 <<if $rng gte 75>>
-   <<He>> locks eyes with you briefly, and grins. You blush and hurry on. <<arousal 500>><<garousal>>
+	<<He>> locks eyes with you briefly, and grins. You blush and hurry on. <<arousal 500>><<garousal>>
 <<elseif $rng gte 50>>
-   <<He>> avoids eye contact and hurries on.
+	<<He>> avoids eye contact and hurries on.
 <<elseif $rng gte 25>>
-   "You're welcome!" <<He>> replies, and smacks your <<bottom>> as <<he>> walks away. <<pain 5>><<gpain>><<arousal 500>><<garousal>> 
+	"You're welcome!" <<He>> replies, and smacks your <<bottom>> as <<he>> walks away. <<pain 5>><<gpain>><<arousal 500>><<garousal>>
 <<else>>
-   <<He>> shoots you an angry look and mumbles, "Stupid slut!" as <<he>> turns away. <<gtrauma>><<trauma 6>>
+	<<He>> shoots you an angry look and mumbles, "Stupid slut!" as <<he>> turns away. <<gtrauma>><<trauma 6>>
 <</if>>
 
 <br><br>
@@ -707,13 +707,13 @@ The tentacles withdraw from you, leaving you hanging there. Without their suppor
 <<effects>>
 
 <<if !$worn.upper.type.includes("naked")>>
-	You turn toward the <<person>>, and in one motion, <<pullup>> your $worn.upper.name. <<He>> gapes at you. "Touch me." you say.
+	You turn toward the <<person>>, and in one motion, <<pullup>> your $worn.upper.name. <<He>> gapes at you. "Touch me," you say.
 <<else>>
-	You turn toward the <<person>>, and thrust out your chest. "Touch me." you say.
+	You turn toward the <<person>>, and thrust out your chest. "Touch me," you say.
 <</if>>
 <br>
 <<promiscuity4>>
-"Fuck me." you say.
+"Fuck me," you say.
 <br>
 
 The <<person>> gawks, as if not believing <<his>> eyes. <<He>> glances around, then reaches out and cups your <<breasts>> in both hands. <<if !$worn.under_upper.type.includes("naked")>><<He>> feels you up through the fabric of your $worn.under_upper.name.<<else>><<He>> feels up your bare flesh.<</if>>
@@ -760,7 +760,7 @@ You turn toward the <<person>>. You begin to strip. <<He>> gawks as you discard
 <br>
 <<promiscuity5>>
 
-"Fuck me." you say.
+"Fuck me," you say.
 
 <<He>> steps closer, and reaches out to grope. You feel the slime urge you to moan.
 <br><br>
@@ -790,7 +790,7 @@ The <<person>> becomes more forceful.
 	<<endevent>>
 	<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
 	<br>
-<<elseif $corruption_slime gte ($willpower / 10)>>
+<<elseif $corruption_slime gte (currentSkillValue('willpower') / 10)>>
 	<<if $exhibitionism gte 55>>
 		<<set $slimeDefyCooldown to 4>>
 	<<else>>
@@ -1210,7 +1210,7 @@ You lift the hem of your $worn.lower.name, giving the <<person>> a brief glimpse
 	<<maninit>><<npcidlegenitals>>
 	<<set $enemyanger += 200>>
 	<<set $enemytrust -= 100>>
-	"You're getting stripped, bitch," the <<person>> says. "Whether you want it or not".
+	"You're getting stripped, bitch," the <<person>> says. "Whether you want it or not."
 	<br><br>
 <</if>>
 <<effects>>
@@ -1350,7 +1350,7 @@ With a serene grace, you step out into the open. The students stop at the sight
 	<<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
 	<br>
 <<else>>
-	A <<person1>><<person>> and a <<person2>><<person>> <span class="red">grasp your arms,</span> and tug you away from the wall. Someone puts out a leg, tripping you. You fall to your knees. <<gpain>><<gtrauma>><<gstress>><<pain 4>><<trauma 6>><<stress 6>>
+	A <<fullGroup>> <span class="red">grasp your arms,</span> and tug you away from the wall. Someone puts out a leg, tripping you. You fall to your knees. <<gpain>><<gtrauma>><<gstress>><<pain 4>><<trauma 6>><<stress 6>>
 	<br><br>
 
 	You know they want to take it further, but none are willing to make the next move.
@@ -1436,7 +1436,7 @@ The pair of you draw some odd looks on the walk over. The staff room is small, w
 
 	The crowd laugh as their focus shifts from you to <<him>>. You scramble to your feet, rush around the corner, and duck into a maintenance cupboard. You close it behind you and sink to the ground with your back to the door. That felt strange.
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
 	<br>
 <<else>>
@@ -1495,7 +1495,7 @@ The <<person>> makes the first move, stepping closer. You grasp <<his>> arm and
 <<effects>>
 
 <<effectsman>><<man>>
-	
+
 <<audience>>
 
 <<stateman>>
@@ -1544,7 +1544,7 @@ The <<person>> makes the first move, stepping closer. You grasp <<his>> arm and
 	<br><br>
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
 	<br>
 <<else>>
diff --git a/game/overworld-town/loc-school/infirmary.twee b/game/overworld-town/loc-school/infirmary.twee
index 9932f8be9790343b696b8837c8b25663ce780689..588aa1c404e6e814381d4d96cce4e642d429fc01 100644
--- a/game/overworld-town/loc-school/infirmary.twee
+++ b/game/overworld-town/loc-school/infirmary.twee
@@ -77,7 +77,7 @@
 		<<link [[Decline|School Infirmary Painkiller Decline]]>><</link>>
 		<br>
 	<<else>>
-		<<He>> furrows <<his>> brow. "You don't look like you're in pain." You open your mouth to protest, but <<he>> holds up <<his>> hand dismissively. "Come back when you really have it bad. It's not a good idea to stuff a young body with drugs."
+		<<He>> furrows <<his>> brow. "You don't look like you're in pain." You open your mouth to protest, but <<he>> holds up <<his>> hand dismissively. "Come back when you really have it bad. It's not a good idea to stuff your body with drugs."
 		<br><br>
 
 		<<school_infirmary_options>>
@@ -127,7 +127,7 @@ The nurse shrugs. "Suit yourself." <<He>> places the bottle back in the cabinet,
 		<br><br>
 
 		<<if $tiredness gte ($tirednessmax / 5) * 3>>
-			Finally, <<he>> steps away from you and sighs. "You kids should sleep at night instead of partying. Alright. I can see you're tired." <<He>> glances at <<his>> watch. "I'll wake you up in half an hour. That ought to get you through the rest of the school day."
+			Finally, <<he>> steps away from you and sighs. "You folks should sleep at night instead of partying. Alright. I can see you're tired." <<He>> glances at <<his>> watch. "I'll wake you up in half an hour. That ought to get you through the rest of the school day."
 			<br><br>
 
 			<<link [[Accept (0:30)|School Infirmary Bed]]>><<set $phase to 1>><</link>><<ltiredness>><<gdelinquency>>
@@ -187,7 +187,7 @@ The nurse shrugs. "Suit yourself." <<He>> places the bottle back in the cabinet,
 			<br><br>
 
 			<<if $tiredness gte ($tirednessmax / 5) * 3>>
-				Finally, <<he>> steps away from you and sighs. "You kids should spend less time partying. Alright. I can see you're tired." <<He>> glances at <<his>> watch. "I'll wake you up in half an hour. That ought to get you through the rest of the school day."
+				Finally, <<he>> steps away from you and sighs. "You folks should spend less time partying. Alright. I can see you're tired." <<He>> glances at <<his>> watch. "I'll wake you up in half an hour. That ought to get you through the rest of the school day."
 				<br><br>
 
 				<<link [[Accept (0:30)|School Infirmary Bed]]>><<set $phase to 1>><</link>><<ltiredness>><<gdelinquency>>
@@ -499,7 +499,7 @@ You don't know how much time has passed by the time you wake up, but your head f
 		River sits at the nurse's desk, drumming <<his>> fingers along the desktop. <<He>> turns to face you, <<his>> gaze as stern as ever.
 		<br><br>
 
-		"Up all night partying, were we?" <<He>> shakes <<his>> head disapprovingly. "To the point of collapsing in broad daylight." 
+		"Up all night partying, were we?" <<He>> shakes <<his>> head disapprovingly. "To the point of collapsing in broad daylight."
 		<br><br>
 
 		You tell River that you must have spent too much time studying. <<His>> expression leaves you wondering if <<he>> really believes you.
@@ -607,7 +607,7 @@ You don't know how much time has passed by the time you wake up, but your head f
 		<</if>>
 	<<case "Kylar">>
 		<<npc Kylar>><<person1>>
-		<<NPCStatusCheck "Kylar">>
+		<<run statusCheck("Kylar")>>
 		You almost trip over something. As you right yourself, Kylar pops up from the floor, <<his>> sketchbook tucked under <<his>> arm. You gasp in surprise.
 		<br><br>
 
@@ -775,7 +775,7 @@ You don't know how much time has passed by the time you wake up, but your head f
 <<if $phase is 1>>
 	You ignore Kylar and find a seat far away from <<nnpc_his "Kylar">>. You can't see <<nnpc_him "Kylar">> from this angle, but you know <<nnpc_he "Kylar">>'s staring.<<stress 2>><<gstress>>
 <<else>>
-	<<NPCStatusCheck "Kylar">>
+	<<run statusCheck("Kylar")>>
 	You take a seat next to Kylar.
 	<<if _kylarStatus.includes("Rage")>>
 		<<nnpc_He "Kylar">> immediately bombards you with questions. Where you were, why you were late, who you were with. Before you can answer, Doren gets into a lecture, drawing your attention to the front of the class.
@@ -821,13 +821,13 @@ You don't know how much time has passed by the time you wake up, but your head f
 <</if>>
 
 :: School Infirmary Winter
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Robin")>>
 
 <<if $phase is 1>>
 	Winter has a quiet chat with you during your walk to the classroom. <<He>> does most of the talking. Once you arrive, <<he>> holds the door open and motions for you to enter.
 	<br><br>
 
-	<<if getRobinLocation() is "school">>
+	<<if _robin_location is "school">>
 		You spot Robin sat near the front of the class. <<nnpc_His "Robin">> eyes light up as you take a seat beside <<nnpc_him "Robin">>. <<nnpc_He "Robin">> opens <<nnpc_his "Robin">> mouth to speak, but the sound of Winter's voice silences <<nnpc_him "Robin">>.
 		<<set $robinhistory to "seat">>
 	<<else>>
@@ -930,7 +930,7 @@ Once you're home, Robin leads you straight to your room.
 
 :: School Infirmary Kylar Accept
 <<set $outside to 1>><<set $location to "town">><<schooleffects>><<effects>>
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 
 <<if $submissive gte 1150>>
 	You smile. "I'd love to-"
@@ -972,7 +972,7 @@ Before you can finish, Kylar takes your arm and starts down the hallway. You're
 <</if>>
 
 :: School Infirmary Kylar Walk
-<<set $outside to 1>><<schooleffects>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 1>><<schooleffects>><<effects>><<run statusCheck("Kylar")>>
 
 <<if $phase is 1>>
 	You entwine your arm around Kylar's and grasp <<his>> hand. It clenches tight around yours.
@@ -999,7 +999,7 @@ Before you can finish, Kylar takes your arm and starts down the hallway. You're
 		"I like it here," <<he>> says. "Everyone's too distracted to bother you."
 		<br><br>
 
-		You're pulled inside, past the bustle of teens, to a secluded cabinet in the corner of the room. Kylar pops a coin in the slot.
+		You're pulled inside, past the bustle of patrons, to a secluded cabinet in the corner of the room. Kylar pops a coin in the slot.
 		<br><br>
 
 		<<kylaroptions>>
@@ -1040,7 +1040,7 @@ Before you can finish, Kylar takes your arm and starts down the hallway. You're
 
 :: School Infirmary Kylar Refuse
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 
 
 <<if _kylarStatus.includes("Rage")>>
@@ -1219,7 +1219,7 @@ You refuse to comply with Whitney's whims. A cruel spark lights up in <<his>> ey
 		"Warned you, stupid whore."
 		<br><br>
 
-		With that, <<he>> leaves the infirmary with a sneer across his face. <<His>> friends follow suit.
+		With that, <<he>> leaves the infirmary with a sneer across <<his>> face. <<His>> friends follow suit.
 	<</if>>
 	<br><br>
 	<<clotheson>>
@@ -1363,7 +1363,7 @@ You refuse to comply with Whitney's whims. A cruel spark lights up in <<his>> ey
 
 	<<enable_rescue>>
 	<<maninit>>
-	
+
 	You hang your head and nod. Satisfied with your response, Whitney comes closer and grasps the back of your head. <<He>> forces your face against <<his>> crotch.
 	<br><br>
 
diff --git a/game/overworld-town/loc-school/inspections.twee b/game/overworld-town/loc-school/inspections.twee
index e1cda73b61b8850908612e82321bb6c8a0c0cb12..6c40161d3141ee61b8770b9bfa0473548d127c5b 100644
--- a/game/overworld-town/loc-school/inspections.twee
+++ b/game/overworld-town/loc-school/inspections.twee
@@ -65,7 +65,7 @@ of it against <<his>> fingers. The <<person3>><<person>> starts to shake, you're
 	The <<person4>><<person>> crouches before you next. <<Hes>> smirking. "It's like a small sausage<<if $player.gender is "h" and !$player.ballsExist>>, and it's too small to hide the pussy behind it<</if>>!"
 	<br><br>
 <<else>>
-	The <<person4>><<person>> crouches before you next. <<Hes>> smirking. "I didn't know they could get so small<<if $player.gender is "h">>, it looks rather cute in front of that little pussy<</if>>."
+	The <<person4>><<person>> crouches before you next. <<Hes>> smirking. "I didn't know they could get so small<<if $player.gender is "h">>, it looks rather cute in front of that pussy<</if>>."
 	<br><br>
 <</if>>
 
@@ -87,7 +87,7 @@ You feel <<his>> breath on your <<penis>>.
 	<<else>>
 		and they soon have you fully erect.
 		<<if $player.penissize gte 4>>
-			You feel a blush creep over your cheeks when you reach your full size. Your penis casts a shadow on their faces big enough to make their jaws drop. 
+			You feel a blush creep over your cheeks when you reach your full size. Your penis casts a shadow on their faces big enough to make their jaws drop.
 		<</if>>
 	<</if>>
 <<else>>
@@ -115,7 +115,7 @@ down <<his>> legs and steps out of them. Leighton snatches them from <<his>> han
 <<person>> trembles as <<he>> raises <<his>> skirt. Leighton steps in front of <<him>> and takes a picture. The <<person>> doesn't open <<his>> eyes.
 <br><br>
 
-"Next," Leighton says. The <<person>> drops <<his>> skirt and climbs from the desk. <<He>> reaches for <<his>> underwear with a shaky hand, 
+"Next," Leighton says. The <<person>> drops <<his>> skirt and climbs from the desk. <<He>> reaches for <<his>> underwear with a shaky hand,
 but Leighton holds them out of reach. "I'll be keeping these," <<person1>><<he>> says. "They'll be tested for health problems."
 <br><br>
 
@@ -131,10 +131,10 @@ but Leighton holds them out of reach. "I'll be keeping these," <<person1>><<he>>
 		<<else>>
 			noticing your lack of <<testicles>>. You wince as <<he>> gropes and inspects you further.
 		<</if>>
-		
+
 		<br><br>
 		"A hermaphrodite!" <<He>> exclaims. "Quite the rarity. I apologise for the mistake.<<if $player.penissize gte 3>> You are quite well endowed, after all.<</if>>"
-		
+
 
 		<<if $player.penissize lte 0>>
 			<br> /* just one line break, the text is too short in this case for two */
@@ -151,13 +151,13 @@ but Leighton holds them out of reach. "I'll be keeping these," <<person1>><<he>>
 			<<He>> aims the camera at your genitals, and mutters, "Shame about the size, though," seemingly to <<himself>>.
 		<<else>>
 			"The hermaphrodite. Please lift your penis so I may properly inspect your pussy." Complying,
-		<</if>>		
+		<</if>>
 	<</if>>
 	<<if $player.penissize gte 1>>
 		<<if $player.ballsExist>>
 			<<if $player.penissize gte 3 and !$worn.genitals.type.includes("cage")>>
 				you lift up your <<penis>> with one hand and your <<testicles>> with the other,
-			<<else>> 
+			<<else>>
 				you lift up your <<if $worn.genitals.type.includes("cage")>>$worn.genitals.name<<else>><<penis>><</if>> and <<testicles>> with one hand,
 			<</if>>
 		<<else>>
@@ -165,12 +165,12 @@ but Leighton holds them out of reach. "I'll be keeping these," <<person1>><<he>>
 				you lift your $worn.genitals.name,
 			<<elseif $player.penissize gte 3>>
 				you lift your <<penis>> with both hands,
-			<<else>> 
+			<<else>>
 				you lift your <<penis>> with one hand,
 			<</if>>
 		<</if>>
 		exposing your <<pussy>> to the class.
-	<</if>>	
+	<</if>>
 	<br><br>
 <</widget>>
 
@@ -202,7 +202,7 @@ but Leighton holds them out of reach. "I'll be keeping these," <<person1>><<he>>
 <<inspectionexpect "m">>
 
 Leighton pushes Sirris' desk to the side, clearing the front of the room. The students look at each other, wondering what the headteacher has planned. "Could all
-the boys line up at the front of the class please?" 
+the boys line up at the front of the class please?"
 <br><br>
 
 <<if $genderknown.includes("Leighton")>>
@@ -235,29 +235,33 @@ the boys line up at the front of the class please?"
 
 <<set $inspection.choice to "">>
 <<if $inspection.expect is "join">>
-	<<link [[Join the line|Penis Inspection 1]]>><<set $inspection.choice to "join">><</link>><br>
-	<<link [[Stay seated|Penis Inspection 1]]>><<set $inspection.choice to "sit">><<stress 2>><</link>><<gstress>><<gdelinquency>><br>
+	<<link [[Join the line|Penis Inspection 1]]>><<set $inspection.choice to "join">><</link>>
+	<br>
+	<<link [[Stay seated|Penis Inspection 1]]>><<set $inspection.choice to "sit">><<stress 2>><</link>><<gstress>><<gdelinquency>>
+	<br>
 <<else>>
 	<<if $exhibitionism gte 35>>
-		<<link [[Join the line|Penis Inspection 1]]>><<set $inspection.choice to "join">><</link>><<exhibitionist3>><<if !$player.penisExist>><<gdelinquency>><</if>><br>
+		<<link [[Join the line|Penis Inspection 1]]>><<set $inspection.choice to "join">><</link>><<exhibitionist3>><<if !$player.penisExist>><<gdelinquency>><</if>>
+		<br>
 	<</if>>
-	<<link [[Stay seated|Penis Inspection 1]]>><<set $inspection.choice to "sit">><</link>><br>
+	<<link [[Stay seated|Penis Inspection 1]]>><<set $inspection.choice to "sit">><</link>>
+	<br>
 <</if>>
 <br>
 
 :: Penis Inspection 1
 <<switch $inspection.choice>>
 	<<case "join">>
-		You stand up with the boys and walk to the front, taking a position in the middle of the line. 
+		You stand up with the boys and walk to the front, taking a position in the middle of the line.
 		<br><br>
-		
+
 		<<if $inspection.gender_appearance is "f">>
 			<<exhibitionism3>>
 			Leighton walks down towards the front of the line. <<He>> notices you in passing.
 
 			<<if $genderknown.includes("Leighton")>>
 				<<if $player.gender is "f">>
-					<<He>> furrows <<his>> brow and beckons to you. You tentatively take a step forward. "These checkups are very important, young lady, and I don't have time to waste on horseplay." 
+					<<He>> furrows <<his>> brow and beckons to you. You tentatively take a step forward. "These checkups are very important, young lady, and I don't have time to waste on horseplay."
 					<<He>> points at a chair. "Unless you'd like to spend the afternoon in detention, sit down. Now."<<stress 6>><<gstress>>
 					<br>
 
@@ -267,11 +271,11 @@ the boys line up at the front of the class please?"
 					You think you catch a glimpse of a knowing smirk, but it's gone in an instant, <<his>> expression turning impassive.
 				<</if>>
 			<<else>>
-				Although <<he>> looks confused at a girl standing in line, <<he>> doesn't seem to particularly care. 
-				/* pc is doubted, but leighton doesnt care and they are allowed to join the line. if theyre lying, leighton will be annoyed but not upset.*/
+				Although <<he>> looks confused at a girl standing in line, <<he>> doesn't seem to particularly care.
+				/* pc is doubted, but Leighton doesn't care and they are allowed to join the line. if they're lying, Leighton will be annoyed but not upset.*/
 			<</if>>
 			<br><br>
-			
+
 			<<penisinspection>>
 			<<link [[Next|Penis Inspection 2]]>><</link>>
 			<br>
@@ -293,29 +297,29 @@ the boys line up at the front of the class please?"
 				<<else>>
 					Confused murmurs echo around you as you take your seat. One of the boys scoffs. "How come he doesn't have to-"
 					<br><br>
-					
+
 					"Quiet down," Leighton interrupts. "I'm not interested in <<phim>> today."
 					<br><br>
-					
-					The boy scowls and discreetly flips you off. 
+
+					The boy scowls and discreetly flips you off.
 					Others shoot you dirty looks, grumbling their displeasure at your presumed special treatment.<<status -5>><<lcool>>
 					<br><br>
 				<</if>>
-				
+
 				<<penisinspection>>
 				<<link [[Next|Penis Inspection 2]]>><</link>>
 				<br>
 			<<else>>
 				/* pc is forced to join and reveal themselves whether they have a penis or not */
 				<br><br>
-				Leighton looks at the line of boys, then over at you. 
+				Leighton looks at the line of boys, then over at you.
 				"Young man, all boys are expected to participate in these health check-ups. I don't recall saying you were exempt."<<stress 2>><<gstress>>
 				<br>
-				
+
 				You don't have a choice, so you stand up and join the boys in the line.
 				<br><br>
 				<<set $inspection.choice to "forced">>
-				
+
 				<<penisinspection>>
 				<<link [[Next|Penis Inspection 2]]>><</link>>
 				<br>
@@ -333,9 +337,9 @@ the boys line up at the front of the class please?"
 				<br><br>
 				Leighton looks at the line of boys, then over at you. "All 'boys' are expected to participate in these health check-ups. You didn't think I'd forget about you, did you?"<<stress 2>><<gstress>>
 				<br>
-			
+
 				You don't have a choice, so you stand up and join the boys in the line.
-				
+
 				<<if $cool lte 240>>
 					<<if $schoolrep.crossdress gte 4>>
 						<br>
@@ -349,35 +353,35 @@ the boys line up at the front of the class please?"
 				<</if>>
 				<br><br>
 				<<set $inspection.choice to "forced">>
-			
+
 				<<penisinspection>>
 				<<link [[Next|Penis Inspection 2]]>><</link>>
 			<<elseif ($schoolrep.crossdress gte 4 or $schoolrep.herm gte 4)>>
 				<<if $cool + random(1,120) lte 240>>
 					<br><br>
 					<<generatey4>><<person4>>
-					
+
 					<<if $pronoun is "f">>
-						You sneak a glance at your classmates. Most are oblivious, but you notice the <<person>> seated next to you whispering to <<his>> friend, peering at you out of the corner of <<his>> eye. 
+						You sneak a glance at your classmates. Most are oblivious, but you notice the <<person>> seated next to you whispering to <<his>> friend, peering at you out of the corner of <<his>> eye.
 						A grin stretches across <<his>> face as you lock eyes with <<him>>, and <<he>> suddenly shoots out of <<his>> seat, hand raised.
 						<br><br>
 					<<else>>
-						A <<person>> in line bumps into your chair. <<He>> starts to mumble an apology, but <<he>> trails off when <<he>> meets your gaze. 
-						Recognition flashes across as <<his>> face, and <<his>> once apologetic expression morphs into a vengeful sneer.	
+						A <<person>> in line bumps into your chair. <<He>> starts to mumble an apology, but <<he>> trails off when <<he>> meets your gaze.
+						Recognition flashes across as <<his>> face, and <<his>> once apologetic expression morphs into a vengeful sneer.
 						<br><br>
 					<</if>>
-					"Excuse me, <<nnpc_title "Leighton">>!" <<he>> calls out, commanding the attention of the class. 
+					"Excuse me, <<nnpc_title "Leighton">>!" <<he>> calls out, commanding the attention of the class.
 					Leighton fixes <<him>> with a glare for the interruption, but the <<person>> continues, pointing at you.
-					
+
 					<<if $player.gender is "h">>
 						"That thing's got a pussy and a cock. <<pShe>> needs to be checked too, right?"
 					<<else>>
 						"That 'girl' is just a boy playing dress-up. It's not fair that he gets to skip out."
 					<</if>>
 					<br><br>
-					
+
 					<<person1>>Leighton furrows <<his>> brow as <<he>> addresses you. "Trying to lie your way out of health inspections, are you? You're lucky your fellows are so astute. Get in line, now."<<stress 2>><<gstress>>
-									
+
 					<br><br>
 					<<set $inspection.choice to "forced">>
 				<<else>>
@@ -444,7 +448,7 @@ Leighton clears Sirris' desk. "Could all the girls form an orderly line please?
 <<if $inspection.expect is "join">>
 	<<link [[Join the line|Pussy Inspection 1]]>><<set $inspection.choice to "join">><</link>>
 	<br>
-	
+
 	<<link [[Stay seated|Pussy Inspection 1]]>><<set $inspection.choice to "sit">><</link>><<gstress>><<gdelinquency>>
 	<br>
 <<else>>
@@ -462,12 +466,12 @@ Leighton clears Sirris' desk. "Could all the girls form an orderly line please?
 <<case "join">>
 	You join the line of girls forming at the front of the class.
 	<br><br>
-	
+
 	<<if $inspection.gender_appearance is "m">>
 		<<if $genderknown.includes("Leighton")>>
 			<<if $player.gender is "m">>
-				When Leighton notices you, <<he>> furrows <<his>> brow and beckons to you. You tentatively take a step forward. 
-				"These checkups are very important, young man, and I don't have time to waste on horseplay." 
+				When Leighton notices you, <<he>> furrows <<his>> brow and beckons to you. You tentatively take a step forward.
+				"These checkups are very important, young man, and I don't have time to waste on horseplay."
 				<<He>> points at a chair. "Unless you'd like to spend the afternoon in detention, sit down. Now."<<stress 6>><<gstress>>
 				<br>
 				You're not given a choice, so you do as you're told and take a seat with the boys. Once you're seated, Leighton proceeds with the inspection.
@@ -476,12 +480,12 @@ Leighton clears Sirris' desk. "Could all the girls form an orderly line please?
 				You think you catch a glimpse of a knowing smirk on Leighton's face, but it's gone in an instant, <<his>> expression turning impassive.
 			<</if>>
 		<<else>>
-			Leighton walks down towards the front of the line. <<person1>><<He>> notices you in passing. 
-			Although <<he>> looks confused at a boy standing in line, <<he>> doesn't seem to particularly care. 
-			/* pc is doubted, but leighton doesnt care and they are allowed to join the line. if theyre lying, leighton will be annoyed but not upset.*/
+			Leighton walks down towards the front of the line. <<person1>><<He>> notices you in passing.
+			Although <<he>> looks confused at a boy standing in line, <<he>> doesn't seem to particularly care.
+			/* pc is doubted, but Leighton doesn't care and they are allowed to join the line. if they're lying, Leighton will be annoyed but not upset.*/
 		<</if>>
 		<br><br>
-	
+
 	<</if>>
 	<<pussyinspection>>
 	<<link [[Next|Pussy Inspection 2]]>><</link>>
@@ -511,13 +515,13 @@ Leighton clears Sirris' desk. "Could all the girls form an orderly line please?
 			<br><br>
 			Leighton looks at the line of girls, then over at you. "Young lady, all girls are expected to participate in these health check-ups. I don't recall saying you were exempt."<<stress 2>><<gstress>>
 			<br>
-			
+
 			You don't have a choice, so you stand up and join the girls in the line.
 			<br><br>
 			<<set $inspection.choice to "forced">>
-			
+
 			<<pussyinspection>>
-			<<link [[Next|Pussy Inspection 2]]>><</link>>			
+			<<link [[Next|Pussy Inspection 2]]>><</link>>
 		<</if>>
 	<<else>>
 		<<if $player.gender is "m">>
@@ -530,7 +534,7 @@ Leighton clears Sirris' desk. "Could all the girls form an orderly line please?
 			<br><br>
 			Leighton looks at the line of girls, then over at you. "All 'girls' are expected to participate in these health check-ups. You didn't think I'd forget about you, did you?"<<stress 2>><<gstress>>
 			<br>
-			
+
 			You don't have a choice, so you stand up and join the girls in the line.
 			<<if $schoolrep.crossdress gte 4>>
 				"Finally got what's coming to you, weirdo," someone hisses as you pass.<<trauma 6>><<stress 6>><<gtrauma>><<gstress>>
@@ -539,38 +543,38 @@ Leighton clears Sirris' desk. "Could all the girls form an orderly line please?
 			<<else>>
 				The rest of the class watch in bemusement. They think you're just another boy.
 			<</if>>
-			
+
 			<br><br>
 			<<set $inspection.choice to "forced">>
-			
+
 			<<pussyinspection>>
 			<<link [[Next|Pussy Inspection 2]]>><</link>>
 		<<elseif ($schoolrep.crossdress gte 4 or $schoolrep.herm gte 4) and $cool lte 120>>
 			<br><br>
 			<<generatey4>><<person4>>
-			
+
 			<<if $pronoun is "m">>
-				You sneak a glance at your classmates. Most are oblivious, but you notice the <<person>> seated next to you whispering to <<his>> friend, peering at you out of the corner of <<his>> eye. 
+				You sneak a glance at your classmates. Most are oblivious, but you notice the <<person>> seated next to you whispering to <<his>> friend, peering at you out of the corner of <<his>> eye.
 				A grin stretches across <<his>> face as you lock eyes with <<him>>, and <<he>> suddenly shoots out of <<his>> seat, hand raised.
 				<br><br>
 			<<else>>
-				As you take a seat, a <<person>> in line bumps into your chair. <<He>> starts to mumble an apology, but <<he>> trails off when <<he>> meets your gaze. 
-				Recognition flashes across as <<his>> face, and <<his>> once apologetic expression morphs into a vengeful sneer.	
+				As you take a seat, a <<person>> in line bumps into your chair. <<He>> starts to mumble an apology, but <<he>> trails off when <<he>> meets your gaze.
+				Recognition flashes across as <<his>> face, and <<his>> once apologetic expression morphs into a vengeful sneer.
 				<br><br>
 			<</if>>
-			"Excuse me, <<nnpc_title "Leighton">>!" <<he>> calls out, commanding the attention of the class. 
+			"Excuse me, <<nnpc_title "Leighton">>!" <<he>> calls out, commanding the attention of the class.
 			Leighton fixes <<him>> with a glare for the interruption, but the <<person>> continues, pointing at you.
-			
+
 			<<if $player.gender is "h">>
 				"That thing's got a pussy and a cock. <<pShe>> needs to be checked too, right?"
 			<<else>>
 				"That 'boy' is just a girl playing dress-up. It's not fair that she gets to skip out."
 			<</if>>
 			<br><br>
-			
-			<<person1>>Leighton furrows <<his>> brow as <<he>> addresses you. 
+
+			<<person1>>Leighton furrows <<his>> brow as <<he>> addresses you.
 			"Trying to lie your way out of health inspections, are you? You're lucky your fellows are so astute. Get in line, now."<<stress 2>><<gstress>>
-			<<set $inspection.choice to "forced">>			
+			<<set $inspection.choice to "forced">>
 			<br><br>
 
 			<<pussyinspection>>
@@ -614,7 +618,7 @@ A well-endowed <<person2>><<person>> stood beside <<person1>><<him>> starts sobb
 
 :: Penis Inspection Expose
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 
 <<if $player.penissize gte 4>>
 	You <<nervously>> pull down your $worn.lower.name as instructed, exposing your <<genitals>> to the room. The class erupts into excitement. The <<person5>><<person>> clutches <<his>> hands to <<his>> face and giggles. <<Penisremarkquote>> <<he>> says.<<incggpenisinsecurity>>
@@ -651,8 +655,8 @@ A well-endowed <<person2>><<person>> stood beside <<person1>><<him>> starts sobb
 	<br><br>
 <<elseif $player.gender is "h">>
 	<<if !$genderknown.includes("Leighton")>>
-		"Oh, what's this hiding under your penis?" 
-		Leighton questions as <<person1>><<he>> grabs your penis and <<if $player.ballsExist>>lifts your balls<<else>>moves it aside<</if>>, revealing your <<pussy>>. 
+		"Oh, what's this hiding under your penis?"
+		Leighton questions as <<person1>><<he>> grabs your penis and <<if $player.ballsExist>>lifts your balls<<else>>moves it aside<</if>>, revealing your <<pussy>>.
 		"A hermaphrodite! Quite the rarity, indeed."
 		<<schoolrep_naked>>
 		<br><br>
@@ -696,7 +700,7 @@ A well-endowed <<person2>><<person>> stood beside <<person1>><<him>> starts sobb
 
 <<if $inspection.choice is "forced">>
 	<br>
-	"As for you," <<person1>><<he>> starts, giving you a cold look. 
+	"As for you," <<person1>><<he>> starts, giving you a cold look.
 	"Trying to pull one over on your <<nnpc_title "Leighton">> - during a government mandated inspection, no less? Perhaps some time in detention will teach you some responsibility."<<detention 3>><<gdelinquency>>
 <</if>>
 
@@ -708,7 +712,7 @@ A well-endowed <<person2>><<person>> stood beside <<person1>><<him>> starts sobb
 :: Penis Inspection Flaunt
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 
 <<if $player.penissize gte 4>>
 	Confident, you tug down your $worn.lower.name, lean back, and place your hands on your hips. You feel everyone's eyes on your <<penis>>. The class erupts into excitement. The <<person5>><<person>> clutches <<his>> hands to <<his>> face and giggles. <<Penisremarkquote>> <<he>> says.<<incggpenisinsecurity>>
@@ -758,8 +762,8 @@ You enjoy the attention.
 	<br><br>
 <<elseif $player.gender is "h">>
 	<<if !$genderknown.includes("Leighton")>>
-		"Oh, what's this hiding under your penis?" 
-		Leighton questions as <<person1>><<he>> grabs your penis and <<if $player.ballsExist>>lifts your balls<<else>>moves it aside<</if>>, revealing your <<pussy>>. 
+		"Oh, what's this hiding under your penis?"
+		Leighton questions as <<person1>><<he>> grabs your penis and <<if $player.ballsExist>>lifts your balls<<else>>moves it aside<</if>>, revealing your <<pussy>>.
 		"A hermaphrodite! Quite the rarity, indeed."
 		<<schoolrep_naked>>
 		<br><br>
@@ -868,7 +872,7 @@ boys sit quietly and avoid looking at each other.
 :: Penis Inspection Flaunt No Penis
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 <<if !$worn.genitals.type.includes("hidden")>>
 	<<push_nnpc_genderknown true>>
 <</if>>
@@ -905,31 +909,31 @@ of you before turning to look. <<He>> gasps and falls backwards when <<he>> sees
 
 <<elseif $delinquency gte 400>>
 	<br><br>
-	
-	Leighton's eyes narrow into slits. <<Hes>> thoroughly unimpressed by your display. 
-	"As I recall I specifically said this was a penis inspection. Now, it might just be me, but you don't seem to have one of those. How do you figure we settle that issue?" 
+
+	Leighton's eyes narrow into slits. <<Hes>> thoroughly unimpressed by your display.
+	"As I recall I specifically said this was a penis inspection. Now, it might just be me, but you don't seem to have one of those. How do you figure we settle that issue?"
 	The look in <<his>> eyes suggests <<he>> has an idea of <<his>> own.
 	<br><br>
 
-	"You," Leighton says, pointing at a boy who's already had his turn. "Come here." The boy quietly obeys. 
-	Stood in front of you, Leighton looks at you with challenging eyes. "This is a boy," <<he>> says. 
+	"You," Leighton says, pointing at a boy who's already had his turn. "Come here." The boy quietly obeys.
+	Stood in front of you, Leighton looks at you with challenging eyes. "This is a boy," <<he>> says.
 	In a swift motion, <<he>> pulls the boy's shorts down, revealing his penis. The boy stifles a whimper.
-	<br> 
-	"And this is a penis." <<He>> seems to find some pleasure in the boy's uncomfortable situation. 
+	<br>
+	"And this is a penis." <<He>> seems to find some pleasure in the boy's uncomfortable situation.
 	Enough to calm down, anyways. You cover yourself up slowly, ignoring your classmates' snickering.<<trauma 6>><<stress 6>><<gtrauma>><<gstress>>
-	<br><br> 
+	<br><br>
 
-	"Don't think I'm done with you just yet," Leighton adds as you finish getting dressed. 
+	"Don't think I'm done with you just yet," Leighton adds as you finish getting dressed.
 	"Wasting my time, during a government mandated inspection, even." <<person1>><<He>> gives you a sly smile.
-	<br> 
+	<br>
 	"Any young adult such as yourself should know better. I'll be seeing you in my office after school."
 	<<detention 3>><<gdelinquency>><<schoolrep_naked>>
 	<br><br>
 <<else>>
 	"Just sit down. Girls will be inspected another day. Wait your turn." Many of the girls look nervous all of a sudden.
-	
+
 	<<if $malechance gt 0>>
-		One of the boys raises his voice in protest. It seems he liked the view. A simple glare from Leighton is enough to force him into silence, though. 
+		One of the boys raises his voice in protest. It seems he liked the view. A simple glare from Leighton is enough to force him into silence, though.
 		<br><br>
 	<</if>>
 
@@ -939,10 +943,10 @@ of you before turning to look. <<He>> gasps and falls backwards when <<he>> sees
 	<<if $inspection.gender_appearance is "f" and $inspection.choice is "join">>
 		Leighton shakes <<person1>><<his>> head, annoyed that <<he>> let this happen.
 	<</if>>
-	"May I use this chance to remind you all," Leighton starts, "That these inspections are government mandated and not a chance for the more... morally challenged here to show off their parts." 
-	<br> 
+	"May I use this chance to remind you all," Leighton starts, "That these inspections are government mandated and not a chance for the more... morally challenged here to show off their parts."
+	<br>
 	Although Leighton didn't name you specifically, the entire class looks your way.
-	<br><br> 
+	<br><br>
 
 <</if>>
 <<link [[Next|Penis Inspection End]]>><</link>>
@@ -951,7 +955,7 @@ of you before turning to look. <<He>> gasps and falls backwards when <<he>> sees
 :: Penis Inspection Forced
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 <<schoolrep_naked>>
 <<if !$worn.genitals.type.includes("hidden")>>
 	<<push_nnpc_genderknown true>>
@@ -991,7 +995,7 @@ As Leighton prepares <<person1>><<his>> camera, you watch the <<person4>><<perso
 You grit your teeth in annoyance. Leighton forcing you to come up was bad enough, but having to endure these remarks is just humiliating. You've had enough of it.
 <br><br>
 
-Acting on impulse, 
+Acting on impulse,
 
 <<if !$worn.under_lower.type.includes("naked")>>
 	<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
@@ -1043,7 +1047,7 @@ This process continues down the line. Leighton takes pictures and the pair take
 
 <<if $inspection.choice is "join">>
 	<<if $player.penisExist>>
-		Leighton soon arrives beside you, and looks at you expectantly. 
+		Leighton soon arrives beside you, and looks at you expectantly.
 		<<if $player.vaginaExist>>
 			<<if $schoolrep.herm gte 4>>
 				Your face flushes as you realise most people already know what is in your $worn.lower.name.
@@ -1063,7 +1067,7 @@ This process continues down the line. Leighton takes pictures and the pair take
 		<<link [[Run away|Penis Inspection Run Away]]>><<detention 4>><<status -10>><</link>><<gdelinquency>><<lcool>>
 		<br>
 	<<else>>
-		Leighton soon arrives beside you, and looks at you expectantly. 
+		Leighton soon arrives beside you, and looks at you expectantly.
 		<<if $schoolrep.crossdress gte 4>>
 			Your face flushes as you realise most people already know what is in your $worn.lower.name.
 		<<else>>
@@ -1089,45 +1093,50 @@ This process continues down the line. Leighton takes pictures and the pair take
 		<<if ($schoolrep.herm gte 4 or $schoolrep.crossdress gte 4) and $inspection.gender_appearance is "f">>
 			You notice people shooting you dirty looks. They know your secret. The boy next to you jabs you in the side and starts to say something, but he falls silent when he sees Leighton approaching, his gaze dropping to his feet.
 			<br><br>
-			
+
 			Leighton comes to a stop in front of you.
 		<<else>>
-			Leighton slowly proceeds down the line, until <<he>> finally arrives in front of you. 
+			Leighton slowly proceeds down the line, until <<he>> finally arrives in front of you.
 		<</if>>
-		
+
 		<<if $genderknown.includes("Leighton")>>
 			<<if $player.gender is "h">>
 				<<He>> regards you with a dark smirk. "Surely you didn't think I would have forgotten about your... peculiar little package deal, did you?"
-				<<He>> seems eager to 'inspect' you. 
+				<<He>> seems eager to 'inspect' you.
 			<<elseif $player.gender is "m" and $inspection.gender_appearance is "f">>
 				<<His>> expression fails to hide <<his>> contempt. "Now then," <<he>> says. "Your little... preferences aside, nobody is allowed to skip the health checks. Not you, not anyone."
 			<</if>>
-		<br><br> 
+		<br><br>
 		<</if>>
-		
-		<<He>> looks at you with demanding eyes. 
-		"Today, if you wouldn't mind too greatly," <<he>> says mockingly. 
+
+		<<He>> looks at you with demanding eyes.
+		"Today, if you wouldn't mind too greatly," <<he>> says mockingly.
 	<<else>>
-		Leighton walks down the line until <<he>> reaches you. "Your turn," <<he>> demands. 
+		Leighton walks down the line until <<he>> reaches you. "Your turn," <<he>> demands.
 		"But I don't have a-" You try to explain your situation to Leighton, but <<he>> doesn't listen to you.
 		<br>
-		
-		"Either you follow instructions, or you can visit me in detention every day for the rest of the week," <<he>> says in a dark tone. 
+
+		"Either you follow instructions, or you can visit me in detention every day for the rest of the week," <<he>> says in a dark tone.
 	<</if>>
-	<br><br> 
-	
+	<br><br>
+
 	<<if !$player.penisExist>>
 		<<if $submissive lte 850 and $exhibitionism gte 35>>
-			<<link [[Comply indignantly|Penis Inspection Forced Defiant]]>><</link>><<exhibitionist3>><<defianttext>><br>
+			<<link [[Comply indignantly|Penis Inspection Forced Defiant]]>><</link>><<exhibitionist3>><<defianttext>>
+			<br>
 		<</if>>
-		<<link [[Expose yourself|Penis Inspection Forced]]>><<trauma 6>><<stress 6>><</link>><<gstress>><<gtrauma>><br>
+		<<link [[Expose yourself|Penis Inspection Forced]]>><<trauma 6>><<stress 6>><</link>><<gstress>><<gtrauma>>
+		<br>
 	<<else>>
-		<<link [[Expose yourself|Penis Inspection Expose]]>><<stress 6>><<trauma 6>><</link>><<gstress>><<gtrauma>><br>
+		<<link [[Expose yourself|Penis Inspection Expose]]>><<stress 6>><<trauma 6>><</link>><<gstress>><<gtrauma>>
+		<br>
 		<<if $exhibitionism gte 55>>
-			<<link [[Flaunt|Penis Inspection Flaunt]]>><</link>><<exhibitionist4>><br>
+			<<link [[Flaunt|Penis Inspection Flaunt]]>><</link>><<exhibitionist4>>
+			<br>
 		<</if>>
 	<</if>>
-	<<link [[Run away|Penis Inspection Run Away]]>><<detention 4>><<status -10>><</link>><<gdelinquency>><<lcool>><br>
+	<<link [[Run away|Penis Inspection Run Away]]>><<detention 4>><<status -10>><</link>><<gdelinquency>><<lcool>>
+	<br>
 <<else>>
 	<<if $player.penisExist>>
 		<<if $schoolrep.herm gte 4 or $schoolrep.crossdress gte 4>>
@@ -1165,13 +1174,13 @@ has a bundle of them in <<person1>><<his>> hand.
 		<<He>> leans in close and whispers, low enough that the rest of the class won't hear. "Don't be afraid of showing off. There are plenty of folks who'd love a glimpse at what you've got down there."
 	<<elseif $genderknown.includes("Leighton") and $player.gender is "f">>
 		/*crossdressing case*/
-		
+
 		<<He>> gives you a critical look. "As I said, participation is mandatory from all girls in the class, regardless of their... predilections."
 	<<else>>
 		<<He>> leers at your crotch. "Hiding something special down there? I suppose we'll find out soon enough."
 	<</if>>
 	<br>
-	
+
 	<<if !$player.vaginaExist>>
 		You tell Leighton that <<hes>> making a mistake. <<He>> narrows <<his>> eyes and crosses <<his>> arms. "Is that so? Then prove it."
 	<<else>>
@@ -1233,7 +1242,7 @@ aren't speaking much, and shift their legs uncomfortably.
 
 :: Pussy Inspection Flaunt No Pussy
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
 	<<if $worn.under_lower.type.includes("naked")>>
 		Wasting no time, you climb atop the desk and lift your skirt to your chin.
@@ -1280,7 +1289,7 @@ The class erupts into whispering when they see your <<penis>>.
 
 "I know," you say. "But seeing as I'm already here..." You make peace signs with your hands and give your hips a slight shake, making your <<penis>> jiggle. Leighton pauses, then smiles and takes a picture.
 <br>
-"I'll overlook it this one time. If anyone else is feeling funny: don't, please." 
+"I'll overlook it this one time. If anyone else is feeling funny: don't, please."
 <br>
 
 <<if $worn.genitals.type.includes("chastity")>>
@@ -1296,7 +1305,7 @@ The class erupts into whispering when they see your <<penis>>.
 
 :: Pussy Inspection Comply
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<fameexhibitionism 30 pic>>
+<<fameexhibitionism 30 "pic">>
 
 <<if $worn.under_lower.type.includes("naked")>>
 	You stare between your feet. "I-I'm not wearing any panties," you whisper.
@@ -1307,7 +1316,7 @@ The class erupts into whispering when they see your <<penis>>.
 	<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
 		You climb atop the desk and lift your skirt just above your <<genitals>>.
 	<<else>>
-		You climb atop the desk and pull down your $worn.lower.name. 
+		You climb atop the desk and pull down your $worn.lower.name.
 	<</if>>
 <<else>>
 	<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
@@ -1337,13 +1346,13 @@ You look away as Leighton takes a picture.
 	Leighton doesn't mention your belt.
 <<elseif $player.bodyliquid.vagina.semen + $player.bodyliquid.vaginaoutside.semen gte 2>>
 	<br><br>
-	"My, my, look at that," Leighton laughs. "You're dripping. You've been making friends.<<if pregnancyBellyVisible()>> You even have the belly to show the results.<</if>>"
+	"My, my, look at that," Leighton laughs. "You're dripping. You've been making friends.<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">> You even have the belly to show the results.<</if>>"
 	<br>
 	You feel your cheeks flush as <<he>> takes another picture.
 	<br><br>
 <<elseif $player.bodyliquid.vagina.goo + $player.bodyliquid.vaginaoutside.goo gte 2>>
 	<br><br>
-	"My, my, look at that!" Leighton laughs. "You're dripping! What have you been up to?!<<if pregnancyBellyVisible()>> You even have the belly to show the results.<</if>>"
+	"My, my, look at that!" Leighton laughs. "You're dripping! What have you been up to?!<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">> You even have the belly to show the results.<</if>>"
 	<br>
 	You feel your cheeks flush as <<he>> takes another picture.
 	<br><br>
@@ -1364,15 +1373,15 @@ You look away as Leighton takes a picture.
 <<if $inspection.choice is "forced">>
 	"All done. That wasn't so bad, was it?" Leighton says with a smile. "I hope you've learnt your lesson about telling the truth. If not, we'll have plenty of time to correct that in detention."<<detention 3>><<gdelinquency>>
 	<br>
-	
+
 	<<if $submissive gte 1150>>
-		Resisting the urge to cry, 
+		Resisting the urge to cry,
 	<<elseif $submissive lte 850>>
-		Biting back any smart remarks, 
+		Biting back any smart remarks,
 	<<else>>
-		Staring down at your feet, 
+		Staring down at your feet,
 	<</if>>
-	
+
 	you drop from the desk and take your place in the line.
 <<elseif $inspection.gender_appearance is "m">>
 	<<if $player.gender is "h">>
@@ -1399,7 +1408,7 @@ You look away as Leighton takes a picture.
 
 :: Pussy Inspection Flaunt
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<fameexhibitionism 50 pic>>
+<<fameexhibitionism 50 "pic">>
 
 <<if $worn.under_lower.type.includes("naked")>>
 	<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
@@ -1430,7 +1439,7 @@ You lean back and spread your legs, giving the whole class a look. <<exhibitioni
 	You put one hand between your legs, spread your pussy wide open, and then squeeze, making cum run down both legs. With the
 	other hand you make a peace sign to the camera.
 
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<elseif $player.gender is "h">>
 	Letting go of your erection, you put one hand between your legs<<if $player.ballsExist>>, lift your <<testicles>> out of the way,<</if>> and spread your pussy wide open, while making a peace sign with the other hand.
 <<else>>
@@ -1444,19 +1453,19 @@ Leighton pauses, then smiles as <<he>> takes a picture.
 <br><br>
 
 <<if $inspection.choice is "forced">>
-	"All done. That wasn't so bad, was it? You even looked like you were having fun!" Leighton laughs before adding, 
+	"All done. That wasn't so bad, was it? You even looked like you were having fun!" Leighton laughs before adding,
 	"I'd excuse you for trying to sneak your way out of participating earlier, but rules are rules, I'm afraid."<<detention 2>><<gdelinquency>>
 	/*lighter punishment for the pc's enthusiastic compliance*/
 <<elseif $inspection.gender_appearance is "m">>
 	<<if $player.gender is "h">>
-		"I nearly overlooked your... unique situation, what with your state of dress," Leighton says. 
+		"I nearly overlooked your... unique situation, what with your state of dress," Leighton says.
 		"Good thing you came up on your own. You almost missed your inspection." <<He>> laughs as <<he>> beckons the next student forward.
 		<br>
-		
+
 		You put your clothes back on and take your place in the line, your heart still thumping.
 	<<else>>
 		<<schoolrep_naked>>
-		"It's unusual for a girl to dress like that, you know," Leighton says. 
+		"It's unusual for a girl to dress like that, you know," Leighton says.
 		"Good thing you came up on your own. You almost missed your inspection." <<He>> laughs as <<he>> beckons the next student forward.
 		<br>
 		You put your clothes back on and take your place in the line, your heart still thumping. Some of your classmates give you odd looks.
@@ -1473,13 +1482,13 @@ Leighton pauses, then smiles as <<he>> takes a picture.
 
 :: Pussy Inspection Forced
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<fameexhibitionism 30 pic>>
+<<fameexhibitionism 30 "pic">>
 
 <<if $worn.under_lower.type.includes("naked")>>
 	<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
 		You climb atop the desk and lift your skirt just above your <<genitals>>.
 	<<else>>
-		You climb atop the desk and pull down your $worn.lower.name. 
+		You climb atop the desk and pull down your $worn.lower.name.
 	<</if>>
 <<else>>
 	<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
@@ -1496,11 +1505,11 @@ Leighton pauses, then smiles as <<he>> takes a picture.
 <<if !$worn.genitals.type.includes("hidden")>>
 	<<push_nnpc_genderknown true>>
 <</if>>
-Leighton instinctively snaps a picture, then furrows <<his>> brow after a moment's thought. 
+Leighton instinctively snaps a picture, then furrows <<his>> brow after a moment's thought.
 "Oh. So you are a boy." <<He>> mutters a halfhearted apology, but doesn't seem particularly bothered by <<his>> mistake. "Go take a seat, then."
 <br>
 
-You glance at Leighton's camera. <<He>> notices your gaze and feigns a reassuring smile. 
+You glance at Leighton's camera. <<He>> notices your gaze and feigns a reassuring smile.
 "I suppose we won't be needing that picture then, will we? Not to worry, I'll delete it after the inspection."
 <br>
 
@@ -1581,36 +1590,43 @@ You feel your <<nipples>> stand on end. <<person1>><<He>> takes a picture.
 	<<if $player.gender_appearance is "m">>
 		<<if $genderknown.includes("Leighton") and $player.gender isnot "m">>
 			"You might be the biggest in the class," <<he>> smirks. "Very impressive for a 'boy'."
-			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 30 pic>>
+			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 30 "pic">>
 		<<else>>
 			"You might be the biggest in the class," <<he>> says. "Very impressive for a boy."
-			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 30 pic>>
+			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 30 "pic">>
 		<</if>>
 	<<else>>
 		"You might be the biggest in the class," <<he>> says.
-		<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 30 pic>>
+		<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 30 "pic">>
 	<</if>>
 <<elseif $player.breastsize gte 6>>
 	<<if $player.gender_appearance is "m">>
 		"Nice pair," <<he>> says.
-		<<if $player.gender is "m">><<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><</if>><<fameexhibitionism 30 pic>>
+		<<if $player.gender is "m">>
+			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">>
+		<</if>>
+		<<fameexhibitionism 30 "pic">>
 	<<else>>
 		"Nice pair," <<he>> says.
-	<<if $player.gender is "m">><<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><</if>><<fameexhibitionism 30 pic>><</if>>
+		<<if $player.gender is "m">>
+			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">>
+		<</if>>
+		<<fameexhibitionism 30 "pic">>
+	<</if>>
 <<elseif $player.breastsize gte 1>>
 	<<if $player.gender_appearance is "m">>
 		"Cute pair," <<he>> says.
-		<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 30 pic>>
+		<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 30 "pic">>
 	<<else>>
 		"Cute pair," <<he>> says.
-		<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 30 pic>>
+		<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 30 "pic">>
 	<</if>>
 <<else>>
 	<<if $player.gender_appearance is "m">>
 		<<fameexhibitionism 10>>
 	<<else>>
 		"Don't be ashamed about being flat," <<he>> says while leering at you.
-		<<insecurity "breasts_tiny" 20>><<ginsecurity "breasts_tiny">><<fameexhibitionism 30 pic>>
+		<<insecurity "breasts_tiny" 20>><<ginsecurity "breasts_tiny">><<fameexhibitionism 30 "pic">>
 	<</if>>
 <</if>>
 <<gtrauma>><<gstress>><<trauma 6>><<stress 6>>
@@ -1667,42 +1683,42 @@ You feel your <<nipples>> stand on end. <<person1>><<He>> takes a picture.
 			<<if $genderknown.includes("Leighton") and $player.gender isnot "m">>
 				"Nice pair," <<he>> says with relish while holding your shirt open. "Especially for a 'boy'."
 				<<He>> steps back and takes a picture with one motion before you can cover yourself.
-				<<fameexhibitionism 30 pic>>
+				<<fameexhibitionism 30 "pic">>
 			<<else>>
 				"Nice pair," <<he>> says with relish while holding your shirt open. "Especially for a boy."
 				<<He>> steps back and takes a picture with one motion before you can cover yourself.
-				<<fameexhibitionism 30 pic>>
+				<<fameexhibitionism 30 "pic">>
 			<</if>>
 		<<else>>
 			"Impressive pair," <<he>> says with relish while holding your shirt open. <<He>> steps back and takes a picture
 			with one motion before you can cover yourself.
-			<<fameexhibitionism 30 pic>>
+			<<fameexhibitionism 30 "pic">>
 		<</if>>
 	<<elseif $player.breastsize gte 2>>
 		<<if $player.gender_appearance is "m">>
 			<<if $genderknown.includes("Leighton") and $player.gender isnot "m">>
 				"Nice pair," <<he>> says with relish while holding your shirt open. "Especially for a 'boy'." <<He>> steps back and takes a
 				picture with one motion before you can cover yourself.
-				<<fameexhibitionism 30 pic>>
+				<<fameexhibitionism 30 "pic">>
 			<<else>>
 				"Nice pair," <<he>> says with relish while holding your shirt open. "Especially for a boy." <<He>> steps back and takes a
 				picture with one motion before you can cover yourself.
-				<<fameexhibitionism 30 pic>>
+				<<fameexhibitionism 30 "pic">>
 			<</if>>
 		<<else>>
 			"Nice pair," <<he>> says with relish while holding your shirt open. <<He>> steps back and takes a picture with one motion
 			before you can cover yourself.
-			<<fameexhibitionism 30 pic>>
+			<<fameexhibitionism 30 "pic">>
 		<</if>>
 	<<else>>
 		<<if $player.gender_appearance is "m">>
 			"I don't know what's got you so riled," <<he>> says while holding your shirt open.
 			<<He>> steps back and takes a picture with one motion.
-			<<fameexhibitionism 10 pic>>
+			<<fameexhibitionism 10 "pic">>
 		<<else>>
 			"I know why you're behaving this way," <<he>> says while holding your shirt open. "You're ashamed about being flat."
 			<<He>> steps back and takes a picture with one motion before you can cover yourself.
-			<<fameexhibitionism 30 pic>>
+			<<fameexhibitionism 30 "pic">>
 		<</if>>
 	<</if>>
 	<<gdelinquency>><<detention 4>><<gtrauma>><<gstress>><<garousal>><<trauma 6>><<stress 6>><<arousal 600>>
@@ -1728,40 +1744,40 @@ You open your shirt wide so that everyone can see. Your <<breasts>> tumble out.
 	<<if $player.gender_appearance is "m">>
 		<<if $genderknown.includes("Leighton") and $player.gender is "m">>
 			"You might be the biggest in the class," <<he>> says. "Very impressive for a 'boy'."
-			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 40 pic>>
+			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 40 "pic">>
 		<<else>>
 			"You might be the biggest in the class," <<he>> says. "Very impressive for a boy."
-			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 40 pic>>
+			<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 40 "pic">>
 		<</if>>
 	<<else>>
 	"You might be the biggest in the class," <<he>> says.
-	<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 40 pic>>
+	<<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><<fameexhibitionism 40 "pic">>
 	<</if>>
 <<elseif $player.breastsize gte 6>>
 You open your shirt wide so that everyone can see your <<breasts>>.
 	<<if $player.gender_appearance is "m">>
 	"Nice pair," <<he>> says.
-	<<if $player.gender is "m">><<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><</if>><<fameexhibitionism 40 pic>>
+	<<if $player.gender is "m">><<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><</if>><<fameexhibitionism 40 "pic">>
 	<<else>>
 	"Nice pair," <<he>> says.
-	<<if $player.gender is "m">><<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><</if>><<fameexhibitionism 40 pic>>
+	<<if $player.gender is "m">><<insecurity "breasts_big" 20>><<ginsecurity "breasts_big">><</if>><<fameexhibitionism 40 "pic">>
 	<</if>>
 <<elseif $player.breastsize gte 1>>
 You open your shirt wide so that everyone can see your <<breasts>>.
 	<<if $player.gender_appearance is "m">>
 	"Cute pair," <<he>> says.
-	<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 40 pic>>
+	<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 40 "pic">>
 	<<else>>
 	"Cute pair," <<he>> says.
-	<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 40 pic>>
+	<<insecurity "breasts_small" 20>><<ginsecurity "breasts_small">><<fameexhibitionism 40 "pic">>
 	<</if>>
 <<else>>
 You open your shirt wide so that everyone can see your <<breasts>>.
 	<<if $player.gender_appearance is "m">>
-	<<fameexhibitionism 15 pic>>
+	<<fameexhibitionism 15 "pic">>
 	<<else>>
 	"Don't be ashamed about being flat," <<he>> says while leering at you.
-	<<insecurity "breasts_tiny" 20>><<ginsecurity "breasts_tiny">><<fameexhibitionism 40 pic>>
+	<<insecurity "breasts_tiny" 20>><<ginsecurity "breasts_tiny">><<fameexhibitionism 40 "pic">>
 	<</if>>
 <</if>>
 <br><br>
@@ -1775,7 +1791,7 @@ moving to the next student.
 "I like showing them off," you whisper. <<He>> takes several pictures before moving to the next student.
 <</if>>
 <<exhibitionism4>>
-<br><br>
+
 <<link [[Next|Breast Inspection End]]>><</link>>
 <br>
 
@@ -1799,7 +1815,7 @@ a moment before taking a picture.
 	"Like what you see?" you whisper.
 <</if>>
 <<exhibitionism1>>
-<<fameexhibitionism 20 pic>>
+<<fameexhibitionism 20 "pic">>
 Leighton doesn't respond, but kneels to take a second picture, something <<he>> didn't do to any other student.
 <br><br>
 
diff --git a/game/overworld-town/loc-school/library.twee b/game/overworld-town/loc-school/library.twee
index db16dc9314d536f4abfb07b73900de2702f94b48..ece1f40d610daf7be3892877f186ad77789c023d 100644
--- a/game/overworld-town/loc-school/library.twee
+++ b/game/overworld-town/loc-school/library.twee
@@ -29,7 +29,7 @@ Next to it is a small basket with returned and not yet sorted books.
 <<if ($month is "november" and $monthday gte 24) or $month is "december">>
 	You notice a strange, olive-coloured book tucked amidst the rest.
 <</if>>
-<<if $english lt 200>>
+<<if currentSkillValue('english') lt 200>>
 	You wonder if there may be something more interesting here if you were one of those bookworms.
 <</if>>
 
@@ -153,7 +153,7 @@ Next to it is a small basket with returned and not yet sorted books.
 		<br><br>
 		<<nnpc_He "Leighton">> begins to lead you towards the rental counter. "Your friend will be sharing in your punishment.<<if $studyBooks.stolen isnot "none">><<set $studyBooks.stolen to "none">><<unset $sydneyStolenKnown>> Oh, and I'll be taking that stolen book back.<</if>>"
 		<br><br>
-		A few students linger, but a glare from Leighton hurries them out. Leighton locks the door behind them. 
+		A few students linger, but a glare from Leighton hurries them out. Leighton locks the door behind them.
 		<br><br>
 		<<link [[Next|Sydney Leighton Spank]]>><<set $phase to 4>><</link>>
 		<br>
@@ -175,15 +175,15 @@ Next to it is a small basket with returned and not yet sorted books.
 			<<if _sydney_location is "library" and ($sydneySeen is undefined or !$sydneySeen.includes("library"))>>
 				<<if $sydneySeen>>Sydney<<else>>A student<</if>> sits at the rental counter, shuffling papers and stamping cards.
 				<br>
-				<<link [[Counter|Sydney Library Intro]]>><</link>>
+				<<ind>><<link [[Counter|Sydney Library Intro]]>><</link>>
 				<br><br>
 			<<elseif _sydney_location isnot "library">>
-				<<link [[Counter|Library Rental Counter]]>><<set $counterApproach to 1>><</link>>
+				<<ind>><<link [[Counter|Library Rental Counter]]>><<set $counterApproach to 1>><</link>>
 				<br><br>
 			<<elseif _sydney_location is "library">>
 				Sydney sits at the desk of the rental counter, shuffling papers and stamping cards.
 				<br>
-				<<link [[Approach Sydney|Library Rental Counter]]>><<set $counterApproach to 1>><</link>>
+				<<ind>><<link [[Approach Sydney|Library Rental Counter]]>><<set $counterApproach to 1>><</link>>
 				<br><br>
 			<</if>>
 		<</if>>
@@ -192,13 +192,13 @@ Next to it is a small basket with returned and not yet sorted books.
 			You see a student working on a solution for the maths competition.
 			<br>
 
-			<<link [[Approach|Maths Library Student]]>><</link>>
+			<<ind>><<link [[Approach|Maths Library Student]]>><</link>>
 			<br><br>
 		<</if>>
 		<<if $exposed lte 0 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and $luncheaten is 1>>
 			Kylar sits at a desk, scribbling something.
 			<br>
-			<<link [[Approach Kylar|Kylar Library]]>><<set $kylar_text_trigger to true>><</link>>
+			<<ind>><<link [[Approach Kylar|Kylar Library]]>><<set $kylar_text_trigger to true>><</link>>
 			<br><br>
 		<</if>>
 		<<if $exposed gte 1>>
@@ -221,10 +221,10 @@ Next to it is a small basket with returned and not yet sorted books.
 			<br>
 		<</if>>
 		/*indev - scarlet book possible to be taken. English 200+ required*/
-		<<if $english gte 300>>
+		<<if currentSkillValue('english') gte 300>>
 			<<scarleticon>><<link [[Take "Raul and Janet" from the basket (0:01)|ScarletBook1]]>><<pass 1>><<set $scarletExitPassage to "School Library">><</link>>
 			<br>
-		<<elseif $english gte 200>>
+		<<elseif currentSkillValue('english') gte 200>>
 			<<scarleticon>><<link [[Take the medium-sized scarlet book from the basket (0:01)|ScarletBook1]]>><<pass 1>><</link>>
 			<br>
 		<</if>>
@@ -255,7 +255,7 @@ Next to it is a small basket with returned and not yet sorted books.
 <<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 <<if $danger gte (9900 - $allure) and $schoolday is 1 and $schoolstate isnot "early" and $schoolstate isnot "late">>
 	<<if $rng gte 51>>
-		<<generatey1>><<generatey2>>While you are minding your own business, a <<person1>><<person>> and <<person2>><<person>> start harassing you.
+		<<generatey1>><<generatey2>>While you are minding your own business, a <<fullGroup>> start harassing you.
 		<br><br>
 
 		<<link [[Ignore them|School Library Harass]]>><<set $phase to 0>><<trauma 2>><<stress 2>><</link>><<gtrauma>><<gstress>>
@@ -348,7 +348,7 @@ Next to it is a small basket with returned and not yet sorted books.
 		<<link [[Next|School Library]]>><</link>>
 		<br>
 	<<else>>
-		<<generate1>><<generate2>><<person1>>A <<person>> and <<person2>><<person>> walk along the street outside the window. They will see you if they look through.
+		<<generate1>><<generate2>>A <<fullGroup>> walk along the street outside the window. They will see you if they look through.
 		<br><br>
 
 		<<link [[Risk it|Library Study Risk]]>><</link>>
@@ -533,7 +533,7 @@ You follow <<him>> down the corridor toward the entrance. "H-here," <<he>> says
 
 	<<link [[Next|School Library]]>><<endevent>><</link>>
 <<elseif $phase is 2>>
-	<<NPCStatusCheck "Sydney">>
+	<<run statusCheck("Sydney")>>
 	You shout for Sydney. The <<person2>><<person>> sneers. "Oh no, not Sydney, <<nnpc_he "Sydney">>'s gonna write on us, whatever will we do?" The two begin to laugh.
 	<br>
 	However, they're cut off by the thwap of a ruler against skin. The <<person1>><<person>> cries out in pain. You turn to see Sydney's furious gaze, just in time for a second ruler to bounce off of the <<person2>><<persons>> head.
@@ -554,7 +554,7 @@ You follow <<him>> down the corridor toward the entrance. "H-here," <<he>> says
 			<br><br>
 			<<nnpc_He "Sydney">> pulls away after a moment.
 		<<else>>
-			You feel Sydney's arms wrap around you. 
+			You feel Sydney's arms wrap around you.
 		<</if>>
 		"I hope they didn't hurt you." You spend some time reassuring <<nnpc_him "Sydney">>, but <<nnpc_he "Sydney">> still seems hesitant to leave your side. After some time, <<nnpc_he "Sydney">> returns to the rental counter, looking back over <<nnpc_his "Sydney">> shoulder a few times.
 		<br><br>
@@ -715,7 +715,7 @@ You follow <<him>> down the corridor toward the entrance. "H-here," <<he>> says
 		A sign hangs from the front. <span class="blue">"In class"</span>.
 		<br><br>
 		<<link [[Leave|School Library]]>><<endevent>><<set $eventskip to 1>><</link>>
-		<br>		
+		<br>
 	<<default>>
 		<<if $schoolday is 1 and $schoolstate isnot "early" and $schoolstate isnot "late" and _counterApproach is 1>>
 			No one's there. You ring the bell. No one responds.
@@ -740,7 +740,7 @@ You follow <<him>> down the corridor toward the entrance. "H-here," <<he>> says
 
 :: Book Rental
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<sydneySchedule>><<NPCStatusCheck "Sydney">>
+<<sydneySchedule>><<run statusCheck("Sydney")>>
 You
 <<switch $bookRent>>
 	<<case "return">>
@@ -821,7 +821,7 @@ You
 					Sydney looks down at the book and grins. "Such a sinful read. Don't have too much fun, now." <<He>> hands the book back to you<<if $sydneyromance is 1>>, and gently places <<his>> hand on yours when you reach for it. "Maybe we can re-enact Act 3 Scene V sometime." <<arousal 1000>><<garousal>><<else>>.<</if>>
 				<<default>>
 					Sydney looks down at the book and frowns. "A story full of love and sin." <<if $temple_rank>><<He>> leans in and whispers. "Jordan's actually a big fan of this book, but don't tell <<nnpc_him "Jordan">> I told you! <<nnpc_He "Jordan">> says it's a good cautionary tale of the consequences of lust."<</if>> <<He>> hands the book back to you. "Enjoy."
-			<</switch>>			
+			<</switch>>
 		<<else>>
 			a $studyBooks.rented textbook.
 			<<if $sydneyromance is 1>>
@@ -868,7 +868,7 @@ You
 
 :: Book Rental Return Stolen
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<sydneySchedule>><<NPCStatusCheck "Sydney">>
+<<sydneySchedule>><<run statusCheck("Sydney")>>
 You return the stolen
 <<if $phase is 6>>
 	<<if $per_npc.pinch isnot undefined>>
diff --git a/game/overworld-town/loc-school/main.twee b/game/overworld-town/loc-school/main.twee
index 2708b01305cdb544ea9df7e7da8340cedeec4e91..3d40468078eedf5c432527fcb27545505cb68009 100644
--- a/game/overworld-town/loc-school/main.twee
+++ b/game/overworld-town/loc-school/main.twee
@@ -41,15 +41,15 @@
 	<<link [[Everything fades to black...|School Passout]]>><</link>>
 <<elseif $adultshopintro is undefined and $adultshopunlocked is undefined and $adultshopintrosirris is undefined and $schoolstate is "afternoon" and $weekday is 6 and $exposed lte 0>>
 	<<set $adultshopintrosirris to 1>>
-	
+
 	Sirris rushes from the main building, both arms clutching a large cardboard box. <<npc Sirris>><<person1>><<He>> seems eager about something. <<He>> stops by <<his>> car, and awkwardly fumbles for the keys jangling in <<his>> pocket.
 	<br><br>
-	
-	
+
+
 	<<link [[Offer to help|School Sirris Help]]>><<npcincr Sirris love 1>><</link>><<glove>>
 	<br>
 	<<link [[Just watch|School Sirris Watch]]>><</link>>
-	
+
 <<else>>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 <<if $danger gte (9900 - $allure) and $eventskip is 0>>
@@ -188,7 +188,7 @@ The school gate is shut and sealed by a sturdy padlock.
 	You are outside the school changing rooms. You need to pass through them to access the pool.
 	<br><br>
 <<else>>
-	You are outside the school changing rooms. You need to pass through them to access the pool. You hear chatters on both side of the changing rooms.
+	You are outside the school changing rooms. You need to pass through them to access the pool. You hear chatter from both sides.
 	<br><br>
 <</if>>
 
@@ -202,7 +202,7 @@ The school gate is shut and sealed by a sturdy padlock.
 <<if $player.gender is "f" and $changingroomstate is "empty">>
 	<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<arousal 300>><</link>><<garousal>>
 	<br>
-<<elseif $player.gender is "f" and  $schoolrep.crossdress gte 3>>
+<<elseif $player.gender is "f" and $schoolrep.crossdress gte 3>>
 	<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><<arousal 600>><<stress 12>><</link>><<ggarousal>>
 	<br>
 <<elseif $player.gender is "f">>
@@ -216,7 +216,7 @@ The school gate is shut and sealed by a sturdy padlock.
 <<if $player.gender is "m" and $changingroomstate is "empty">>
 	<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><<arousal 300>><</link>><<garousal>>
 	<br><br>
-<<elseif $player.gender is "m" and  $schoolrep.crossdress gte 3>>
+<<elseif $player.gender is "m" and $schoolrep.crossdress gte 3>>
 	<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><<arousal 600>><<stress 12>><</link>><<ggarousal>>
 	<br><br>
 <<elseif $player.gender is "m">>
@@ -543,7 +543,7 @@ You haul yourself over the fence and drop down on the other side.
 <</if>>
 <br><br>
 <<if ($player.gender_appearance is $clothingselector) and !$genderknown.includes("Leighton")>> <!-- Leighton didn't expect this and checks the PC's records for their sex -->
-	<<He>> looks slightly confused for a moment, before turning back to <<his>> computer to look something up. <<He>> skims briefly before 
+	<<He>> looks slightly confused for a moment, before turning back to <<his>> computer to look something up. <<He>> skims briefly before
 		<<if $player.gender is "h">><!-- implication: PC's ambiguous sex is recorded as medical information -->
 			gasping at what <<he>> finds.
 		<<elseif $backgroundTraits.includes("crossdresser")>><!-- deliberately ambiguous implication: PC has been crossdressing for long enough for it to be on file -->
@@ -551,7 +551,7 @@ You haul yourself over the fence and drop down on the other side.
 		<<else>>
 			quirking a brow at what <<he>> finds and typing something in.
 		<</if>>
-		 <<He>> looks back up and says, "I'm sorry, but this uniform is all I have. Now, get dressed."
+		<<He>> looks back up and says, "I'm sorry, but this uniform is all I have. Now, get dressed."
 	<<set $genderknown.pushUnique("Leighton")>><<if $player.gender is "h">><<detention -1>><</if>> <!-- Leighton is too surprised to be angry at herm PC right now -->
 <<elseif $player.gender is $clothingselector and $genderknown.includes("Leighton")>>
 	<<He>> looks at you sternly and scoffs. "If you want to dress as a <<print ($clothingselector is "m" ? "girl" : "boy")>>, that's your prerogative, but perhaps you should come dressed like it next time. Now, get dressed."
@@ -623,7 +623,7 @@ A group of young students round the corner and stop when they see you, eyes wide
 <<lcool>><<gtrauma>><<gstress>><<stress 1>><<trauma 1>><<status -10>>
 <br><br>
 
-A minute passes before a <<generatey1>><<generatey2>><<person1>><<person>> and <<person2>><<person>> round the corner. They initially react like the first group but, proving to be more inquisitive, they approach you.
+A minute passes before a <<generatey1>><<generatey2>><<fullGroup>> round the corner. They initially react like the first group but, proving to be more inquisitive, they approach you.
 <br><br>
 
 "There's a button here," says the <<person>>. "What do you think it does?" <<He>> raises <<his>> arm and hovers a finger over it.
@@ -657,7 +657,7 @@ A minute passes before a <<generatey1>><<generatey2>><<person1>><<person>> and <
 		<<orgasm>><<exhibitorgasm>>
 		<</if>>
 
-	The buzzing comes to an abrupt stop. A shameful part of you feels disappointed, but the <<person2>><<person>> reaches for the button yet again. This time, the contraption doesn't give you time to warm up, sending violent shock waves through you. You involuntarily jerk, delighting the <<person1>><<person>> and <<person2>><<person>>.
+	The buzzing comes to an abrupt stop. A shameful part of you feels disappointed, but the <<person2>><<person>> reaches for the button yet again. This time, the contraption doesn't give you time to warm up, sending violent shock waves through you. You involuntarily jerk, delighting the <<fullGroup>>.
 	<br><br>
 
 	<<arousal 2000>>
@@ -683,7 +683,7 @@ A minute passes before a <<generatey1>><<generatey2>><<person1>><<person>> and <
 		<<orgasm>><<exhibitorgasm>>
 		<</if>>
 
-	The buzzing comes to an abrupt stop. A shameful part of you feels disappointed, but the <<person2>><<person>> reaches for the button yet again. This time, the contraption doesn't give you time to warm up, sending violent shock waves through you. You involuntarily jerk, delighting the <<person1>><<person>> and <<person2>><<person>>.
+	The buzzing comes to an abrupt stop. A shameful part of you feels disappointed, but the <<person2>><<person>> reaches for the button yet again. This time, the contraption doesn't give you time to warm up, sending violent shock waves through you. You involuntarily jerk, delighting the <<fullGroup>>.
 	<br><br>
 
 	<<arousal 2000>>
@@ -710,9 +710,9 @@ A minute passes before a <<generatey1>><<generatey2>><<person1>><<person>> and <
 
 	<<if random(1) is 0>>
 		<<hand_gag 0 left>>
-		"Shhh, <<pshes>> waking up." A <<person1>><<person>> and <<person2>><<person>> stand over you. You're lying in a shed on the school grounds. Before you can speak, the <<person1>><<person>> smothers your mouth with <<his>> hand. "Now's our chance, no one will know!"
+		"Shhh, <<pshes>> waking up." A <<fullGroup>> stand over you. You're lying in a shed on the school grounds. Before you can speak, the <<person1>><<person>> smothers your mouth with <<his>> hand. "Now's our chance, no one will know!"
 	<<else>>
-		"Shhh, <<pshes>> waking up." A <<person1>><<person>> and <<person2>><<person>> stand over you. You're lying in a shed on the school grounds.
+		"Shhh, <<pshes>> waking up." A <<fullGroup>> stand over you. You're lying in a shed on the school grounds.
 
 		Before you can speak,
 		<<person1>>
@@ -728,7 +728,7 @@ A minute passes before a <<generatey1>><<generatey2>><<person1>><<person>> and <
 
 			Before you can move to do anything about this, the <<person2>><<person>> drops onto your midriff, knocking the wind from you, and grabbing onto your hands to stop you from fighting.
 			<<He>> <<if $pronoun is "f">>giggles mischievously<<else>>chuckles softly<</if>>.
-			"You're not going anywhere, <<girl>>".
+			"You're not going anywhere, <<girl>>."
 			<br><br>
 
 			This leaves you powerless to stop the <<person1>><<person>> pressing <<his>> penis against your mouth.
@@ -741,7 +741,7 @@ A minute passes before a <<generatey1>><<generatey2>><<person1>><<person>> and <
 
 			Before you can move to do anything about this, the <<person2>><<person>> drops onto your midriff, knocking the wind from you, and grabbing onto your hands to stop you from fighting.
 			<<He>> <<if $pronoun is "f">>giggles mischievously<<else>>chuckles softly<</if>>.
-			"You're not going anywhere, <<girl>>".
+			"You're not going anywhere, <<girl>>."
 			<br><br>
 			<<if $facesitdisable is "f">>
 				You are powerless to stop the <<person1>><<person>>. You watch as <<his>> pussy draws closer and closer.
@@ -863,7 +863,7 @@ The <<group>> recoil in pain. <<tearful>> you seize the opportunity and escape f
 			<<link [[Next|School Rear Playground]]>><</link>>
 			<br>
 		<<else>>
-			The <<person1>><<person>> and <<person2>><<person>> cry out as Whitney's goons descend on them. You seize the opportunity to scurry outside.<<status 1>><<gcool>>
+			The <<fullGroup>> cry out as Whitney's goons descend on them. You seize the opportunity to scurry outside.<<status 1>><<gcool>>
 			<br><br>
 
 			<<clotheson>>
@@ -1720,7 +1720,7 @@ The commotion attracts a crowd.
 
 <<elseif $rescue is 1 and $alarm is 1>>
 
-	A whistle blows from the school entrance. The audience disperses as Leighton marches closer. The <<person1>><<person>> and <<person2>><<person>> are grasped by the arm and dragged away. They afford you one last evil look.
+	A whistle blows from the school entrance. The audience disperses as Leighton marches closer. The <<fullGroup>> are grasped by the arm and dragged away. They afford you one last evil look.
 	<<lcool>><<status -1>><<gdelinquency>><<detention 6>>
 	<br><br>
 
@@ -2000,7 +2000,7 @@ Blushing with shame,
 <</if>>
 <br><br>
 
-The <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> each stare at your crotch, astonishment on their faces.
+The <<fullGroup>> each stare at your crotch, astonishment on their faces.
 <br>
 "It's true!"
 <br>
@@ -2045,7 +2045,7 @@ You cover yourself and leave before they get any ideas. They don't stop you.
 	<</if>>
 <</if>>
 
-The <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> each stare at your crotch, astonishment on their faces.
+The <<fullGroup>> each stare at your crotch, astonishment on their faces.
 <br>
 "It's true!"
 <br>
@@ -2176,7 +2176,7 @@ The <<person>> stammers an incoherent response, so you take <<his>> hand and pul
 		"Sorry to bother you," you say. "I was daydreaming."
 	<</if>>
 	You walk away from the <<person>> before <<he>> responds.
-	<br><br>	
+	<br><br>
 <<else>>
 	You try to ignore the urging voice, <span class="red">but it's a struggle.</span> You manage to tear yourself away from the <<person>> before you say anything, and almost stumble as you escape.
 	<br><br>
diff --git a/game/overworld-town/loc-school/maths-project.twee b/game/overworld-town/loc-school/maths-project.twee
index cacbdd453f88004e88929eef5d6b096dacbda339..a83f8228035920581528349296c2762f1a6a656e 100644
--- a/game/overworld-town/loc-school/maths-project.twee
+++ b/game/overworld-town/loc-school/maths-project.twee
@@ -303,7 +303,7 @@ You take the stimulant, sit down, and get to work.
 	<</if>>
 	<<link [[Next|Maths Project Void]]>><</link>>
 	<br>
-<<elseif $mathsstimrobin isnot 1 and $schoolday is 0 and $daystate isnot "night" and $robinmissing isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $location is "home">>
+<<elseif $mathsstimrobin isnot 1 and $schoolday is 0 and $daystate isnot "night" and $robinmissing is 0 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $location is "home">>
 	<<set $mathsstimrobin to 1>>
 	<<npc Robin>><<person1>>
 	You sit back and admire your work. You feel a strange heat just beneath your skin. Your visions blurs, and everything fades to black.
@@ -359,7 +359,7 @@ You tell Robin you're fine, and thank <<him>> for bringing you to your bed. <<He
 	<<set $consensual to 1>>
 	<<neutral 1>>
 	<<maninit>>
-	<<set $enemytrust += 500>><<set $speechdisable to 1>>
+	<<set $enemytrust += 500>>
 	<<set $enemyarousalmax to 600>>
 <</if>>
 <<set $enemyanger to 0>>
@@ -642,7 +642,7 @@ The <<person>> looks at you with a wry smile.
 	<br>
 	<</if>>
 <<else>>
-"Supplies are scarce," <<he>> says. "Very scarce. £5000 per dose. Don't try to negotiate. There are plenty of rich kids looking to impress mummy and daddy."
+"Supplies are scarce," <<he>> says. "Very scarce. £5000 per dose. Don't try to negotiate. There are plenty of rich brats looking to impress mummy and daddy."
 <br><br>
 
 	<<if $money gte 500000>>
@@ -921,9 +921,9 @@ Inside is a table covered with cider cans and playing cards. As if a game were i
 
 	<<endcombat>>
 
-	<<link [[Smile and make peace signs with your fingers|Maths Abduction Smile]]>><<fameexhibitionism 50 pic>><<trauma 6>><<stress -6>><</link>><<gtrauma>><<lstress>>
+	<<link [[Smile and make peace signs with your fingers|Maths Abduction Smile]]>><<fameexhibitionism 50 "pic">><<trauma 6>><<stress -6>><</link>><<gtrauma>><<lstress>>
 	<br>
-	<<link [[Frown and make "fuck you" signs with your fingers|Maths Abduction Frown]]>><<fameexhibitionism 50 pic>><<trauma -6>><<stress 6>><</link>><<gstress>><<ltrauma>>
+	<<link [[Frown and make "fuck you" signs with your fingers|Maths Abduction Frown]]>><<fameexhibitionism 50 "pic">><<trauma -6>><<stress 6>><</link>><<gstress>><<ltrauma>>
 	<br>
 	<<link [[Cover your face|Maths Abduction Cover]]>><<trauma 6>><<stress 6>><<pain 6>><</link>><<gtrauma>><<gstress>><<gpain>>
 	<br>
@@ -969,9 +969,9 @@ Inside is a table covered with cider cans and playing cards. As if a game were i
 
 	<<endcombat>>
 
-	<<link [[Smile and make peace signs with your fingers|Maths Abduction Smile 2]]>><<famerape 50 pic>><<trauma 6>><<stress -6>><</link>><<gtrauma>><<lstress>>
+	<<link [[Smile and make peace signs with your fingers|Maths Abduction Smile 2]]>><<famerape 50 "pic">><<trauma 6>><<stress -6>><</link>><<gtrauma>><<lstress>>
 	<br>
-	<<link [[Frown and make "fuck you" signs with your fingers|Maths Abduction Frown 2]]>><<famerape 50 pic>><<trauma -6>><<stress 6>><</link>><<gstress>><<ltrauma>>
+	<<link [[Frown and make "fuck you" signs with your fingers|Maths Abduction Frown 2]]>><<famerape 50 "pic">><<trauma -6>><<stress 6>><</link>><<gstress>><<ltrauma>>
 	<br>
 	<<link [[Cover your face|Maths Abduction Cover 2]]>><<trauma 6>><<stress 6>><<pain 6>><</link>><<gtrauma>><<gstress>><<gpain>>
 	<br>
@@ -1822,9 +1822,9 @@ You pass the judges on the way down from the stage. You take your seat and wait
 <<set $outside to 0>><<set $location to "town">><<effects>>
 
 <<if $worn.under_lower.type.includes("naked")>>
-	<<fameexhibitionism 60 pic>><<set $mathsexposed to "genitals">>
+	<<fameexhibitionism 60 "pic">><<set $mathsexposed to "genitals">>
 <<else>>
-	<<fameexhibitionism 30 pic>><<set $mathsexposed to "undies">>
+	<<fameexhibitionism 30 "pic">><<set $mathsexposed to "undies">>
 <</if>>
 
 You keep your skirt held down with one hand and continue with the presentation. Whitney's friends join in the tugging. Your $worn.lower.name becomes tighter, until just a finger of fabric protects your <<genitals>> from the audience.
@@ -1892,9 +1892,9 @@ Heart still thumping, you step down from the stage. You take your seat and wait
 <<set $outside to 0>><<set $location to "town">><<effects>>
 
 <<if $worn.under_lower.type.includes("naked")>>
-	<<fameexhibitionism 60 pic>><<set $mathsexposed to "genitals">>
+	<<fameexhibitionism 60 "pic">><<set $mathsexposed to "genitals">>
 <<else>>
-	<<fameexhibitionism 30 pic>><<set $mathsexposed to "undies">>
+	<<fameexhibitionism 30 "pic">><<set $mathsexposed to "undies">>
 <</if>>
 
 You keep your clothes held up with one hand and continue with the presentation. Whitney's friends join in the tugging. Your $worn.lower.name becomes tighter, until just a finger of fabric protects your <<genitals>> from the audience.
@@ -1981,7 +1981,7 @@ Leighton, River and the two guests confer on stage for a moment.
 
 	You climb the stage and shake Leighton's hand as <<he>> smiles for a waiting photographer. <<He>> hands you the trophy. There's <<moneyGain 2000>> inside.
 	The audience cheer and applaud.
-	<<npcincr River love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 pic>>
+	<<npcincr River love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 "pic">>
 	<br><br>
 
 	<<if $mathsexposed isnot undefined>>
diff --git a/game/overworld-town/loc-school/science-project.twee b/game/overworld-town/loc-school/science-project.twee
index f4a336e1547eb0e9f19819b2e273854304e07105..708f0da3e9188359d8622895d40156c9591266cd 100644
--- a/game/overworld-town/loc-school/science-project.twee
+++ b/game/overworld-town/loc-school/science-project.twee
@@ -91,7 +91,7 @@ You can only submit one project to the fair.
 	<br><br>
 	It would be silly to continue your work at this point. You dump the now obsolete project in a bin, feeling somewhat bitter over the wasted effort.
 	<br><br>
-	
+
 	<<if $location is "home">>
 		<<link [[Next|Bedroom]]>><</link>>
 	<<else>>
@@ -123,7 +123,7 @@ You can only submit one project to the fair.
 	<br><br>
 	It would be silly to continue your work at this point. You dump the now obsolete project in a bin, feeling somewhat bitter over the wasted effort.
 	<br><br>
-	
+
 	<<if $location is "home">>
 		<<link [[Next|Bedroom]]>><</link>>
 	<<else>>
@@ -149,7 +149,7 @@ The things you do for school.
 	<br><br>
 	It would be silly to continue your work at this point. You dump the now obsolete project in a bin, feeling somewhat bitter over the wasted effort.
 	<br><br>
-	
+
 	<<if $location is "home">>
 		<<link [[Next|Bedroom]]>><</link>>
 	<<else>>
@@ -282,7 +282,7 @@ The <<person2>><<person>> starts chatting with the display owner to their other
 	<span class="red">You bump the display, jostling <<his>> project and drawing <<his>> attention.</span> <<His>> mouth gapes when <<he>> sees you. <<He>> guards <<his>> display more vigilantly from then on.
 	<<status -10>><<lcool>>
 	<br><br>
-	
+
 	<<skulduggeryuse>>
 
 	<<person2>>Leighton and Sirris arrive to examine the <<persons>> project. Not even Leighton can find much wrong with it. <<person1>><<He>> comments as much before moving on. The <<person2>><<person>> looks relieved as the teachers approach yours.
@@ -409,7 +409,7 @@ The teachers confer on the stage, then Leighton steps up to the microphone. "We'
 
 	You climb the stage and shake Leighton's hand as <<he>> smiles at a waiting photographer. <<He>> hands you the trophy. There's <<moneyGain 500>> inside.
 	The audience cheer and applaud. The <<person2>><<person>> looks upset, but claps along.
-	<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 pic>>
+	<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 "pic">>
 	<br><br>
 
 	<<endevent>><<npc Sirris>><<person1>>Sirris follows you off the stage. "I'm so happy you took to the project with such enthusiasm," <<he>> says. <<He>> and Leighton herd you and the other students from the building.
@@ -428,7 +428,7 @@ The teachers confer on the stage, then Leighton steps up to the microphone. "We'
 
 	You climb the stage and shake Leighton's hand as <<he>> smiles at a waiting photographer. <<He>> hands you the trophy. There's <<moneyGain 500>> inside.
 	The audience cheer and applaud. The <<person2>><<person>> looks upset, but claps along.
-	<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 pic>>
+	<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 "pic">>
 	<br><br>
 
 	A group of students surround you as you climb down from the stage. They want to hear the story of how you collected the mushrooms that only grow deep in the woods, deeper than the bravest of them have ventured. Leighton herds you and the other students from the hall.
@@ -458,7 +458,7 @@ The teachers confer on the stage, then Leighton steps up to the microphone. "We'
 
 	<<else>>
 		The <<person2>><<person>> looks upset, but claps along.
-		<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 pic>><<famesex 100 pic>><<set $money += 50000>>
+		<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 "pic">><<famesex 100 "pic">><<set $money += 50000>>
 		<br><br>
 
 		The photographer accosts you as you leave the stage, wanting to know more about how you acquired your data. Leighton herds you and the other students from the hall.
@@ -493,7 +493,7 @@ The teachers confer on the stage, then Leighton steps up to the microphone. "We'
 <<set $outside to 0>><<set $location to "town">><<effects>>
 
 The <<person>> snatches the trophy and runs from the hall. The audience boos, probably unaware of why you won.
-<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 pic>><<famesex 100 pic>>
+<<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 "pic">><<famesex 100 "pic">>
 <br><br>
 
 The photographer accosts you as you leave the stage, wanting to know more about how you acquired your data. Leighton herds you and the other students from the hall.
@@ -512,7 +512,7 @@ The photographer accosts you as you leave the stage, wanting to know more about
 <<if $physiqueSuccess>>
 
 You try to keep hold of the trophy, and manage to <span class="green">push the <<person>> to the ground.</span> "It's not fair!" <<he>> shouts. <<He>> scrambles to <<his>> feet and runs from the hall.
-<<set $money += 50000>><<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 pic>><<famesex 100 pic>>
+<<set $money += 50000>><<npcincr Sirris love 5>><<llltrauma>><<trauma -120>><<famebusiness 100 "pic">><<famesex 100 "pic">>
 <br><br>
 
 The photographer accosts you as you leave the stage, wanting to know more about how you acquired your data. Leighton herds you and the other students from the hall.
@@ -528,7 +528,7 @@ The photographer accosts you as you leave the stage, wanting to know more about
 <<else>>
 
 You try to keep hold of the trophy, <span class="red">but the <<person>> is stronger.</span> <<He>> twists it from your grip and run from the hall. The audience boos, probably unaware of why you won.
-<<llltrauma>><<trauma -120>><<famebusiness 100 pic>><<famesex 100 pic>>
+<<llltrauma>><<trauma -120>><<famebusiness 100 "pic">><<famesex 100 "pic">>
 <br><br>
 
 The photographer accosts you as you leave the stage, wanting to know more about how you acquired your data. Leighton herds you and the other students from the hall.
diff --git a/game/overworld-town/loc-school/special-olive.twee b/game/overworld-town/loc-school/special-olive.twee
index 25a9ab46e625dd7e9fbbffbd4521f2a810d8b5bc..921331d298135f31a35ffdf2d281d00034dfb5e4 100644
--- a/game/overworld-town/loc-school/special-olive.twee
+++ b/game/overworld-town/loc-school/special-olive.twee
@@ -8,7 +8,7 @@
 		<<set $NPCList[0].penisdesc to "tiny penis">>
 		<<set $NPCList[0].penissize to 1>>
 	<</if>>
-	<<set $NPCList[0].fullDescription to ($NPCList[0].pronoun is "m" ? "Mr." : "Ms.") + " Pinch">>
+	<<set $NPCList[0].fullDescription to ($NPCList[0].pronoun is "m" ? "Mr" : "Ms") + " Pinch">>
 	<<npcClothesName $NPCList[0] "robinGiftChristmas">>
 	<<saveNPC 0 pinch>>
 <</if>>
@@ -283,7 +283,7 @@ The windows were dark, no one knew <<he>> was coming,
 <br>
 <span class="black">As <<he>> slid down the chimney, 'twasn't a cinch.</span>
 <br>
-If Mr. Claus could, so could <<if $pronoun is "m">>Mr<<else>>Ms<</if>>. Pinch!
+If Mr Claus could, so could <<if $pronoun is "m">>Mr<<else>>Ms<</if>>. Pinch!
 <br><br>
 
 <<link [[Keep reading|Olive Book Full 4]]>><</link>>
@@ -296,7 +296,7 @@ If Mr. Claus could, so could <<if $pronoun is "m">>Mr<<else>>Ms<</if>>. Pinch!
 <br>
 <span class="black">Where the stockings were hung in a row.</span>
 <br>
-<<He>> sneered as he pinched them, one at a time,
+<<He>> sneered as <<he>> pinched them, one at a time,
 <br>
 <span class="black">"These ought to be the first to go!"</span>
 <br><br>
@@ -335,7 +335,7 @@ A <<girl>>, a <<lass>> by the name of Lew,
 
 "Why are you taking our presents?" <<pshe>> asked.
 <br>
-<span class="black">"Please, tell me, <<if $pronoun is "m">>Santa<<else>>Mrs.<</if>> Claus!"</span>
+<span class="black">"Please, tell me, <<if $pronoun is "m">>Santa<<else>>Mrs<</if>> Claus!"</span>
 <br>
 So dastardly clever, <<he>> spun <<pher>> a ruse
 <br>
@@ -897,11 +897,11 @@ They reached for <<pinchhis>> throat
 		<<set $pinchSong to 2>>
 		<br><br>
 
-		"You're a rapist, <<if $pinchPronoun is "m">>Mr.<<else>>Missus<</if>> Pinch."
+		"You're a rapist, <<if $pinchPronoun is "m">>Mr<<else>>Missus<</if>> Pinch."
 		<br>
 		<span class="black">"You really are a tear."</span>
 		<br>
-		"Your sex skills are appalling, you're as intimate as a bear, <<if $pinchPronoun is "m">>Mr.<<else>>Missus<</if>> Pinch."
+		"Your sex skills are appalling, you're as intimate as a bear, <<if $pinchPronoun is "m">>Mr<<else>>Missus<</if>> Pinch."
 		<br>
 		<span class="black">"You're a bad egg, greasy as a rotten pear!"</span>
 		<br><br>
@@ -910,24 +910,24 @@ They reached for <<pinchhis>> throat
 		<<set $pinchSong to 1>>
 		<br><br>
 
-		"You're a molester, <<if $pinchPronoun is "m">>Mr.<<else>>Missus<</if>> Pinch."
+		"You're a molester, <<if $pinchPronoun is "m">>Mr<<else>>Missus<</if>> Pinch."
 		<br>
 		<span class="black">"You vye for empty holes."</span>
 		<br>
-		"Your brain is utterly, sexually droll, you've semen in your soul, <<if $pinchPronoun is "m">>Mr.<<else>>Missus<</if>> Pinch."
+		"Your brain is utterly, sexually droll, you've semen in your soul, <<if $pinchPronoun is "m">>Mr<<else>>Missus<</if>> Pinch."
 		<br>
-		<span class="black">"I wouldn't fuck you with twenty-seven and a half meters of roll!"</span>
+		<span class="black">"I wouldn't fuck you with twenty-seven and a half metres of roll!"</span>
 		<br><br>
 	<<elseif $pinchSong is 1>>
 		They continue to sing.
 		<<set $pinchSong to 4>>
 		<br><br>
 
-		"You are rancid, <<if $pinchPronoun is "m">>Mr.<<else>>Missus<</if>> Pinch."
+		"You are rancid, <<if $pinchPronoun is "m">>Mr<<else>>Missus<</if>> Pinch."
 		<br>
 		<span class="black">"You have maggots in your ass."</span>
 		<br>
-		"You have all the subtle qualities of a bitch in heat, <<if $pinchPronoun is "m">>Mr.<<else>>Missus<</if>> Pinch."
+		"You have all the subtle qualities of a bitch in heat, <<if $pinchPronoun is "m">>Mr<<else>>Missus<</if>> Pinch."
 		<br>
 		<span class="black">"Given a choice between the two of you, I'd take the bitch in heat!"</span>
 		<br><br>
@@ -1090,7 +1090,7 @@ You liked it,
 	<<set $real_time to $time>>
 	<<set $statFreeze to true>>
 
-	<<set $minute to 0>> 
+	<<set $minute to 0>>
 	<<set $hour to 21>>
 	<<set $time to 1260>>
 	<<set $month to "december">>
@@ -1130,10 +1130,6 @@ You liked it,
 	<<set $real_wolfgirl to $wolfgirl>>
 	<<set $real_cat to $cat>>
 	<<set $real_cow to $cow>>
-	<<set $real_famesex to $famesex>>
-	<<set $real_famerape to $famerape>>
-	<<set $real_fameexhibitionism to $fameexhibitionism>>
-	<<set $real_famescrap to $famescrap>>
 	<<set $real_fame to $fame>>
 	<<set $real_sexStats to clone($sexStats)>>
 	<<set $real_skulduggery to $skulduggery>>
@@ -1303,10 +1299,6 @@ You liked it,
 	<<set $cat to $real_cat>>
 	<<set $cow to $real_cow>>
 	<<showTransformations>>
-	<<set $famesex to $real_famesex>>
-	<<set $famerape to $real_famerape>>
-	<<set $fameexhibitionism to $real_fameexhibitionism>>
-	<<set $famescrap to $real_famescrap>>
 	<<set $fame to $real_fame>>
 	<<set $sexStats to clone($real_sexStats)>>
 	<<set $skulduggery to $real_skulduggery>>
diff --git a/game/overworld-town/loc-school/special-scarlet.twee b/game/overworld-town/loc-school/special-scarlet.twee
index 8cfed86f60c02f49d98d63cfc4fb8adff92490f0..39e4fb444605e9cc8e24fa870bf03576716e58e5 100644
--- a/game/overworld-town/loc-school/special-scarlet.twee
+++ b/game/overworld-town/loc-school/special-scarlet.twee
@@ -15,22 +15,22 @@ Feb 2019
 <<else>>
 	You settle in bed with the scarlet book titled "Raul and Janet".
 <</if>>
-<<if $english gte 600>>
+<<if currentSkillValue('english') gte 600>>
 	You know the book very well. It's a classic English drama from 1616. It tells the tragic story of two lovers.
 	<br><br>
 	<<link [[Read (0:20)|ScarletBook2]]>><<pass 20>><<stress -6>><<englishskill>><</link>><<genglish>><<lstress>>
 	<br>
-<<elseif $english gte 500>>
+<<elseif currentSkillValue('english') gte 500>>
 	It's a classic story of two lovers from the seventeenth century.
 	<br><br>
 	<<link [[Read (0:20)|ScarletBook2]]>><<pass 20>><<stress -6>><<englishskill>><</link>><<genglish>><<lstress>>
 	<br>
-<<elseif $english gte 400>>
+<<elseif currentSkillValue('english') gte 400>>
 	You know that book. It tells the story of two lovers from the seventeenth century.
 	<br><br>
 	<<link [[Read (0:20)|ScarletBook2]]>><<pass 20>><<englishskill>><</link>><<genglish>>
 	<br>
-<<elseif $english gte 300>>
+<<elseif currentSkillValue('english') gte 300>>
 	This title sounds familiar. Isn't that the one about those two lovers from middle ages?
 	<br><br>
 	<<link [[Read (0:20)|ScarletBook2]]>><<pass 20>><<englishskill>><</link>><<genglish>>
@@ -50,7 +50,7 @@ You're reading "Raul and Janet".
 <br><br>
 The book tells the story of two lovers from few centuries ago. Raul is the son of a poor tailor, but from the honest work he prefers night trips in search of adventures. Janet is a young polite girl from a wealthy family and daughter of local baron and ruler of the city. Despite the differences between them they fall in love with each other.
 <br><br>
-<<if $english gte 400>>
+<<if currentSkillValue('english') gte 400>>
 	You slowly delve into the text.
 	<br><br>
 	<<link [[Continue reading (0:20)|ScarletBook3]]>><<pass 20>><<englishskill>><</link>><<genglish>>
@@ -70,7 +70,7 @@ You're reading "Raul and Janet".
 <br><br>
 The book tells the story of two lovers from the seventeenth century. Raul is the son of a poor tailor, but from the honest work he prefers night trips in search of adventures. Janet is a young polite girl from a wealthy family and daughter of local baron and ruler of the city. Despite the differences between them they fall in love with each other but Janet's father is against their acquaintances, stating that the street boy is not the right fiancée for his daughter. One day, Raul convinces his beloved to run away together...
 <br><br>
-<<if $english gte 500>>
+<<if currentSkillValue('english') gte 500>>
 	This is a tale of forbidden love and although it does not end well, reading it gives you a strange joy.
 	<br><br>
 	<<link [[Continue reading (0:20)|ScarletBook4]]>><<pass 20>><<stress -6>><<englishskill>><<arousal 1200>><</link>><<genglish>><<lstress>><<ggarousal>>
@@ -95,7 +95,7 @@ It turns out eventually that the baron's fears were real. When Janet's father or
 <br><br>
 With each act, the book becomes darker and scarier. Every time you read it you have a view of innocent pure girl in white dress and a dangerous and lustful lad in front of your eyes. You feel a mix of jealousy, lust and anger. And you like it.
 <br><br>
-<<if $english gte 600 and $arousal gte ($arousalmax / 5) * 2>>
+<<if currentSkillValue('english') gte 600 and $arousal gte ($arousalmax / 5) * 2>>
 	You're not just reading a book any more. All scenes and feelings are described so perfectly that you clearly feel like you are there. Like you are one of them.
 	<br><br>
 <<else>>
@@ -124,7 +124,7 @@ With each act, the book becomes darker and scarier. Every time you read it you h
 		<br>
 	<</if>>
 <</if>>
-<<if $english gte 600 and $arousal gte ($arousalmax / 5) * 2>>
+<<if currentSkillValue('english') gte 600 and $arousal gte ($arousalmax / 5) * 2>>
 	<<link [[Imagine yourself as Janet|ScarletBook5]]>><<pass 30>><<arousal 600>><</link>><<garousal>>
 	<br>
 <</if>>
@@ -313,7 +313,7 @@ Receiveth eft f'r justice!"<span class="black"> (Get ready for justice!)</span>
 :: ScarletBook10
 A duel begins between Raul and William. Raul has the upper hand, but the moment he is about to kill William, Janet stabs him with a dagger.
 <br><br>
-He gets furious, strikes her back, accidentally piercing her with a sword. He is shocked realising what just happened. William uses the opportunity and finishes his opponent with his blade.
+He gets furious, strikes her back, accidentally piercing her with a sword. He is shocked once realising what just happened. William uses the opportunity and finishes his opponent with his blade.
 <br><br>
 The history ends with both would-be lovers looking into one another's eyes for the last time, then the darkness overwhelms them.
 <br><br>
@@ -571,10 +571,6 @@ The words you have just read echo in your head. You can no longer ignore what yo
 <<set $real_wolfgirl to $wolfgirl>>
 <<set $real_cat to $cat>>
 <<set $real_cow to $cow>>
-<<set $real_famesex to $famesex>>
-<<set $real_famerape to $famerape>>
-<<set $real_fameexhibitionism to $fameexhibitionism>>
-<<set $real_famescrap to $famescrap>>
 <<set $real_fame to $fame>>
 <<set $real_sexStats to clone($sexStats)>>
 <<set $real_skulduggery to $skulduggery>>
@@ -698,10 +694,6 @@ The words you have just read echo in your head. You can no longer ignore what yo
 <<set $cat to $real_cat>>
 <<set $cow to $real_cow>>
 <<showTransformations>>
-<<set $famesex to $real_famesex>>
-<<set $famerape to $real_famerape>>
-<<set $fameexhibitionism to $real_fameexhibitionism>>
-<<set $famescrap to $real_famescrap>>
 <<set $fame to $real_fame>>
 <<set $sexStats to clone($real_sexStats)>>
 <<set $skulduggery to $real_skulduggery>>
diff --git a/game/overworld-town/loc-school/toilets-gloryhole.twee b/game/overworld-town/loc-school/toilets-gloryhole.twee
index efd7af55ae9d2d40819b118e1680961113ece865..b8519b3b95b4187fb830f1531de4e330a13a2243 100644
--- a/game/overworld-town/loc-school/toilets-gloryhole.twee
+++ b/game/overworld-town/loc-school/toilets-gloryhole.twee
@@ -47,7 +47,7 @@
 	<span class="green">Students mill around in the hallways outside. </span>
 	<<set _busy to 40>>
 <<case "first" "second" "third" "fourth" "fifth">>
-	A few student walk around the halls with hall passes.
+	A few students walk around the halls with hall passes.
 	<<set _busy to 1>>
 <<default>>
 	<span class="red">The hallway is silent. </span>
@@ -56,7 +56,7 @@
 <br><br>
 
 <!-- Set event probability based on hallway business, sex fame, oral skill, and price -->
-<<set _prob to (_busy + $famesex/50 + $oralskill/25 - 2*($school_gloryhole_price/100))>>
+<<set _prob to (_busy + $fame.sex/50 + $oralskill/25 - 2*($school_gloryhole_price/100))>>
 <<if _busy is 0>><<set _prob to 0>><</if>>
 <<set _prob to Math.clamp(_prob, 0, 100)>>
 <<set _rnd to random(0, 100)>>
@@ -191,13 +191,13 @@ The <<person>> glares at you. "Look at the mess you're making in my bathrooms, <
 <<if $delinquency gte 600>>
 	<span class="red"><<He>> grabs you by the ear and trots you into a nearby janitors' closest.</span> "I've heard about what a hassle you are in class from the teachers; since you seem to enjoy selling your body and making a mess of the school, you can share a piece with me."
 	<br><br>
-	<<He>> lunges at you...
+	<<He>> lunges at you.
 	<br><br>
 	<<link [[Next|Janitor Closet Rape]]>><<set $molestationstart to 1>><</link>>
-<<elseif $famesex gte 1000>>
+<<elseif $fame.sex gte 1000>>
 	<span class="red"><<He>> grabs you by the hair and marches you into a nearby janitors' closest.</span> "I've seen pictures of you from my friends; since you seem to like slutting it up and making a mess of the school, you pay me back with your ass."
 	<br><br>
-	<<He>> lunges at you...
+	<<He>> lunges at you.
 	<br><br>
 	<<link [[Next|Janitor Closet Rape]]>><<set $molestationstart to 1>><</link>>
 <<else>>
@@ -205,7 +205,7 @@ The <<person>> glares at you. "Look at the mess you're making in my bathrooms, <
 	<<case 1>>
 		<span class="red"><<He>> grabs you by the arm and pulls you into a nearby janitors' closest.</span> "Since you like selling your body and messing up my school, you can share a piece with me."
 		<br><br>
-		<<He>> lunges at you...
+		<<He>> lunges at you.
 		<br><br>
 		<<link [[Next|Janitor Closet Rape]]>><<set $molestationstart to 1>><</link>>
 	<<default>>
@@ -254,9 +254,9 @@ The <<person>> glares at you. "Look at the mess you're making in my bathrooms, <
 	<<ejaculation>>
 	"Don't go whining to no one," the <<person1>><<person>> says.
 	<<if $delinquency gte 600>>
-		"Not that they'll believe <span class="red">a juvenile delinquent</span> like you."
-	<<elseif $famesex gte 1500>>
-		"Not that they'll believe <span class="red">a whore</span> like you."
+		"Not that they'll believe a <span class="red">delinquent</span> like you."
+	<<elseif $fame.sex gte 1500>>
+		"Not that they'll believe a <span class="red">whore</span> like you."
 	<<else>>
 		"Not that they'll believe you anyway."
 	<</if>>
diff --git a/game/overworld-town/loc-school/toilets.twee b/game/overworld-town/loc-school/toilets.twee
index 3293f49cc6587a473b507313d412d585988675e5..2ac2279d9bfa37191f384b7a4e05705c6c01e65a 100644
--- a/game/overworld-town/loc-school/toilets.twee
+++ b/game/overworld-town/loc-school/toilets.twee
@@ -322,7 +322,7 @@ You hiss at the <<beasttype>>. <<bHe>> backs away from you, <<bhis>> ears turned
 		<br>
 	<</if>>
 <<elseif $phase is 4>>
-	"Listen." you say. "Take my things and I'll find you and shove a rail spike up your worthless arseholes."
+	"Listen," you say. "Take my things and I'll find you and shove a rail spike up your worthless arseholes."
 	<br><br>
 	Something in your tone affects them. "Calm down, you fucking psycho. We're just messing with you." Once they're gone you peek out the stall, and see your clothes safely where you left them.
 	<br><br>
diff --git a/game/overworld-town/loc-school/widgets-events.twee b/game/overworld-town/loc-school/widgets-events.twee
index ddd8be37dec9a74e3c61e2733b95b100764a5913..67746356af13d67a41562cd464073d3b243c31a6 100644
--- a/game/overworld-town/loc-school/widgets-events.twee
+++ b/game/overworld-town/loc-school/widgets-events.twee
@@ -7,7 +7,7 @@
 			<<generateym1>><<generateym2>><<generateym3>>
 			You hear voices approaching, and manage to hide in a stall before you're caught with your <<lewdness>> on display.
 			<br><br>
-			A <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> enter the room, chatting amongst themselves.
+			A <<fullGroup>> enter the room, chatting amongst themselves.
 			<<storeon "schoolboys" "check">>
 			<<if _store_check is 1 and $malechance isnot "m">>
 				The voices suddenly stop. The <<person1>><<person>> breaks the silence. "Who would leave these clothes here? We should probably take them to lost and found." They have your clothes!
@@ -28,7 +28,7 @@
 			<<generateyf1>><<generateyf2>><<generateyf3>>
 			You hear voices approaching, and manage to hide in a stall before you're caught with your <<lewdness>> on display.
 			<br><br>
-			A <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> enter the room, chatting amongst themselves.
+			A <<fullGroup>> enter the room, chatting amongst themselves.
 			<<storeon "schoolgirls" "check">>
 			<<if _store_check is 1 and $malechance isnot "f">>
 				The voices stop abruptly. The <<person1>><<person>> breaks the silence. "Who would leave these clothes here? We should probably take them to lost and found." They have your clothes!
@@ -124,7 +124,7 @@
 		<<if $bus is "boys">>
 			<<generateym1>><<generateym2>><<generateym3>>
 			<<if $player.gender_appearance is "f">>
-				A <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> enter the room, chatting amongst themselves. They freeze upon seeing you. "What's a <<girl>> doing in here?" The <<person1>><<person>> says, the quiver in <<his>> voice betraying <<his>> nerves.
+				A <<fullGroup>> enter the room, chatting amongst themselves. They freeze upon seeing you. "What's a <<girl>> doing in here?" The <<person1>><<person>> says, the quiver in <<his>> voice betraying <<his>> nerves.
 				<br><br>
 				<<link [[Apologise and leave|School Toilets Encounter]]>><<set $phase to 1>><<stress 2>><</link>><<gstress>>
 				<br>
@@ -137,7 +137,7 @@
 					<</if>>
 				<</if>>
 			<<else>>
-				A <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> enter the room, chatting amongst themselves. They pay you no heed and soon leave.
+				A <<fullGroup>> enter the room, chatting amongst themselves. They pay you no heed and soon leave.
 				<br><br>
 				<<endevent>>
 				<<link [[Next|School Boy's Toilets]]>><<set $eventskip to 1>><</link>>
@@ -146,7 +146,7 @@
 		<<else>>
 			<<generateyf1>><<generateyf2>><<generateyf3>>
 			<<if $player.gender_appearance is "m">>
-				A <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> enter the room, chatting amongst themselves. They freeze upon seeing you. "What's a <<girl>> doing in here?" The <<person1>><<person>> says, the quiver in <<his>> voice betraying <<his>> nerves.
+				A <<fullGroup>> enter the room, chatting amongst themselves. They freeze upon seeing you. "What's a <<girl>> doing in here?" The <<person1>><<person>> says, the quiver in <<his>> voice betraying <<his>> nerves.
 				<br><br>
 				<<link [[Apologise and leave|School Toilets Encounter]]>><<set $phase to 1>><<stress 2>><</link>><<gstress>>
 				<br>
@@ -159,7 +159,7 @@
 					<</if>>
 				<</if>>
 			<<else>>
-				A <<person1>><<person>>, <<person2>><<person>> and <<person3>><<person>> enter the room, chatting amongst themselves. They pay you no heed and soon leave.
+				A <<fullGroup>> enter the room, chatting amongst themselves. They pay you no heed and soon leave.
 				<br><br>
 				<<endevent>>
 				<<link [[Next|School Girl's Toilets]]>><<set $eventskip to 1>><</link>>
@@ -223,7 +223,7 @@
 
 	<<schoolfameboard>>
 
-<<elseif $famebestiality + $famerape + $fameprostitution + $famesex gte 4000 and $schoolfameblackmail is undefined>>
+<<elseif fameSum("sex","rape","prostitution","bestiality") gte 4000 and $schoolfameblackmail is undefined>>
 	<<set $schoolfameblackmail to 0>>
 	<<npc Leighton>><<person1>>The headteacher emerges from <<his>> office and motions for you to enter. <<He>> wears a strange smile on <<his>> face.
 	<br><br>
@@ -866,12 +866,12 @@
 				<br>
 			<<elseif $rng gte 61 and $hypnosis gte 1>>
 				<<generatey1>><<person1>>
-				You see a <<person>> watching you from near the bike shed. <<He>> looks away when your eyes meet <<hers>>. It's hard to tell at this distance, but <<he>> might be blushing. 
+				You see a <<person>> watching you from near the bike shed. <<He>> looks away when your eyes meet <<hers>>. It's hard to tell at this distance, but <<he>> might be blushing.
 				<br><br>
 
 				<span class="blue">You feel something shift in your consciousness, as if you're entering a trance.</span> Then you find yourself stood in front of the <<personsimple>>, a salacious offer on the tip of your tongue. <<He>> watches you, waiting and wearing a nervous expression.
 				<br><br>
-				
+
 				A wordless voice urges you to continue.
 				<br><br>
 
@@ -906,8 +906,8 @@
 				<<link [[Ignore|Playground Footage Ignore]]>><<stress 12>><<status -20>><</link>><<llcool>><<ggstress>>
 				<br>
 			<<else>>
-				<<generatey1>><<generatey2>><<person1>>
-				You overhear a <<person>> and <<person2>><<person>> sharing their crushes.
+				<<generatey1>><<generatey2>>
+				You overhear a <<fullGroup>> sharing their crushes.
 				<<set $rng to random(1, 100)>>
 				<<if $rng gte 96 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
 					The <<person1>><<person>> admits to having a thing for Robin.
@@ -969,14 +969,14 @@
 				<</if>>
 			<</if>>
 		<<elseif $rng gte 61 and $schoolrep.herm gte 5 and !$worn.face.type.includes("mask")>>
-			<<generatey1>><<generatey2>><<generatey3>><<person1>>
-			A <<person>>, <<person2>><<person>>, and <<person3>><<person>> surround you.
+			<<generatey1>><<generatey2>><<generatey3>>
+			A <<fullGroup>> surround you.
 			<br><br>
 			"This is the one," the <<person1>><<person>> says. "The freak with a cock and pussy."
 			<br><br>
 			"Nice," says a <<person2>><<person>>, leering at your crotch. "How about you show us?" <<He>> makes a grab for your $worn.lower.name, but you dodge out of the way.
 			<br><br>
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"So, with that growing belly of <<phers>>," the <<person3>><<person>> questions, staring at your pregnant belly. "Do you think <<pshe>> got <<pherself>> pregnant with <<pher>> own semen?"
 				<br><br>
 				<<famepregnancy 1>>
@@ -996,8 +996,8 @@
 				<br>
 			<</if>>
 		<<elseif $rng gte 61 and $schoolrep.crossdress gte 5 and $player.gender isnot $player.gender_appearance and !$worn.face.type.includes("mask")>>
-			<<generatey1>><<generatey2>><<generatey3>><<person1>>
-			A <<person>>, <<person2>><<person>>, and <<person3>><<person>> surround you.
+			<<generatey1>><<generatey2>><<generatey3>>
+			A <<fullGroup>> surround you.
 			<br><br>
 			"This is the one," the <<person1>><<person>> says. "They say <<pshes>> really a <<if $player.gender is "f">>girl<<else>>boy<</if>>."
 			<br><br>
@@ -1103,12 +1103,12 @@
 	"Take <<pher>> clothes!"
 	<br><br>
 
-	Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor. 
+	Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor.
 	<br><br>
 
 	Whitney's breathing is heavier. <<He>> speaks, "Only... I get to kidnap you. Got it?" The group leaves with Whitney glancing back at you.<<npcincr Whitney dom 3>><<stress 6>><<gstress>><<ggdom>>
 	<br><br>
-	
+
 	<<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>>
 	<br>
 <<elseif $bullyevent is 1>><<set $bullyevent += 1>>
@@ -1342,17 +1342,17 @@ For better or worse, whatever they're doing apparently doesn't involve you... Ye
 				<br><br>
 			<</if>>
 
-		"Good to know you're thinking ahead. I'll be checking up on you," <<he>> laughs. "Don't let me catch you wearing any."
-		<br><br>
+			"Good to know you're thinking ahead. I'll be checking up on you," <<he>> laughs. "Don't let me catch you wearing any."
+			<br><br>
 
-		<<endevent>>
-		<<link [[Next|Hallways]]>><<set $eventskip to 1>><<set $whitneypantiescheck to 1>><</link>>
-		<br>
+			<<endevent>>
+			<<link [[Next|Hallways]]>><<set $eventskip to 1>><<set $whitneypantiescheck to 1>><</link>>
+			<br>
 		<<else>>
-		<<link [[Let it happen|Bully Panties]]>><<trauma 6>><<stress 3>><<set $submissive += 1>><<npcincr Whitney dom 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gdom>>
-		<br>
-		<<link [[Fight|Bully Fight]]>><<set $fightstart to 1>><<set $submissive -= 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
-		<br>
+			<<link [[Let it happen|Bully Panties]]>><<trauma 6>><<stress 3>><<set $submissive += 1>><<npcincr Whitney dom 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gdom>>
+			<br>
+			<<link [[Fight|Bully Fight]]>><<set $fightstart to 1>><<set $submissive -= 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
+			<br>
 		<</if>>
 
 	<<elseif $whitneypantiescheck is 1>>
@@ -1361,29 +1361,29 @@ For better or worse, whatever they're doing apparently doesn't involve you... Ye
 		<br><br>
 
 		<<if $worn.under_lower.type.includes("naked") and playerHasButtPlug()>>
-		<<His>> eyes widen as he feels the toy. "Well, that's a fun surprise," he grins.
-		<br><br>
-		"Good <<girl>>," <<he>> says. "I'll check again later."
-		<br><br>
+			<<His>> eyes widen as <<he>> feels the butt plug. "Well, that's a fun surprise," <<he>> grins.
+			<br><br>
+			"Good <<girl>>," <<he>> says. "I'll check again later."
+			<br><br>
 
-		<<endevent>>
-		<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
-		<br>
+			<<endevent>>
+			<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
+			<br>
 		<<elseif $worn.under_lower.type.includes("naked")>>
-		"Good <<girl>>," <<he>> says. "I'll check again later."
-		<br><br>
+			"Good <<girl>>," <<he>> says. "I'll check again later."
+			<br><br>
 
-		<<endevent>>
-		<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
-		<br>
+			<<endevent>>
+			<<link [[Next|Hallways]]>><<set $eventskip to 1>><</link>>
+			<br>
 		<<else>>
-		"Bad <<girl>>," Whitney chides, smiling. "I'll have to take everything now."
-		<br><br>
+			"Bad <<girl>>," Whitney chides, smiling. "I'll have to take everything now."
+			<br><br>
 
-		<<link [[Let it happen|Bully Panties]]>><<trauma 6>><<stress 3>><<set $submissive += 1>><<npcincr Whitney dom 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gdom>>
-		<br>
-		<<link [[Fight|Bully Fight]]>><<set $fightstart to 1>><<set $submissive -= 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
-		<br>
+			<<link [[Let it happen|Bully Panties]]>><<trauma 6>><<stress 3>><<set $submissive += 1>><<npcincr Whitney dom 1>><</link>><<gtrauma>><<gstress>><<garousal>><<gdom>>
+			<br>
+			<<link [[Fight|Bully Fight]]>><<set $fightstart to 1>><<set $submissive -= 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
+			<br>
 		<</if>>
 
 	<<else>>
@@ -1470,7 +1470,7 @@ For better or worse, whatever they're doing apparently doesn't involve you... Ye
 	<<npc Whitney>><<person1>>
 
 	A pair of hands grab you from behind and give you a shove.
-	<<if $physique gte random(4000,16000)>>
+	<<if currentSkillValue('physique') gte random(4000,16000)>>
 		You barely manage to keep your footing.
 		<br><br>
 
@@ -1653,7 +1653,7 @@ For better or worse, whatever they're doing apparently doesn't involve you... Ye
 	<<if !$worn.genitals.type.includes("hidden")>>
 		<<run $genderknown.pushUnique("Whitney")>>
 	<</if>>
-	
+
 	<<schoolrep_naked>>
 <</widget>>
 <<widget "eventwhitneyparasiteexposeupper">>
@@ -1735,12 +1735,12 @@ For better or worse, whatever they're doing apparently doesn't involve you... Ye
 	"Take <<pher>> clothes!"
 	<br><br>
 
-	Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor. 
+	Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor.
 	<br><br>
 
 	Whitney's breathing is heavier. <<He>> speaks, "Only... I get to kidnap you. Got it?" <<He>> roughly shoves you through the gate, not taking <<his>> eyes off you.<<npcincr Whitney dom 3>><<stress 6>><<gstress>><<ggdom>>
 	<br><br>
-	
+
 	<<endevent>><<set $eventskip to 1>>
 	<<playground>>
 <<elseif $bullyeventoutside is 0>><<set $bullyeventoutside += 1>>
@@ -2012,7 +2012,7 @@ Whitney looms around a corner and rests <<his>> arm on your shoulder. <<His>> fr
 <</widget>>
 
 <<widget "kylarhallways">>
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<set $rng to random(1, 100)>>
 <<if _kylarStatus.includes("Love")>>
 	<<if $rng gte 60>>
diff --git a/game/overworld-town/loc-school/widgets.twee b/game/overworld-town/loc-school/widgets.twee
index 238d9d072998ca1971720b0c3c35a96fb87b4a78..c50df12db594289d786a0626dcb1f1c4bb1b31dc 100644
--- a/game/overworld-town/loc-school/widgets.twee
+++ b/game/overworld-town/loc-school/widgets.twee
@@ -24,9 +24,7 @@
 		<<set $schoolstate to "late">><<set $schoollesson to 0>>
 	<</if>>
 
-	<!-- changing room is in use a bit longer than school is in session.
-	  -- also include changing times before first, after fifth and
-	  -- during mIdday break -->
+	<!-- changing room is in use a bit longer than school is in session. also include changing times before first, after fifth and during midday break -->
 	<<set $changingroomstate to "empty">>
 	<<if $time gte (9 * 60 - 2) and $time lte (15 * 60 + 4)>>
 		<<if $time lte ($hour * 60 + 4) or $time gte ($hour * 60 + 58)>>
@@ -179,26 +177,26 @@
 <<widget "changingrooms">>
 
 <<if $exposed gte 2>>
-  <<if $player.gender_appearance is "m">>
-	<<if $exhibitionism gte 75>>
-	<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><</link>><<exhibitionist5>>
-	<br>
-	<</if>>
-  <<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>>
-  <br>
-  <<else>>
-	<<if $exhibitionism gte 75>>
-		<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>><<exhibitionist5>>
+	<<if $player.gender_appearance is "m">>
+		<<if $exhibitionism gte 75>>
+			<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><</link>><<exhibitionist5>>
+			<br>
+		<</if>>
+		<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>>
+		<br>
+	<<else>>
+		<<if $exhibitionism gte 75>>
+			<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>><<exhibitionist5>>
+			<br>
+		<</if>>
+		<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><</link>>
 		<br>
 	<</if>>
-  <<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><</link>>
-  <br>
-  <</if>>
 <<else>>
-<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>>
-<br>
-<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><</link>>
-<br>
+		<<maleicon>><<link [[Boys' changing room|School Boy Changing Room]]>><</link>>
+		<br>
+		<<femaleicon>><<link [[Girls' changing room|School Girl Changing Room]]>><</link>>
+		<br>
 <</if>>
 
 <</widget>>
@@ -206,138 +204,138 @@
 :: Widgets Events Science [widget]
 <<widget "eventsscience">>
 <<if $rng gte 91 and $player.gender_appearance is "m" and $worn.legs.name is "girl's gym socks">>
-<<generates1>><<person1>>A <<person>> looks at your feet. "Why are you wearing girl's socks?" <<he>> asks loudly. "Do they make you feel pretty?" <<His>> friends start laughing.
-<br><br>
+	<<generates1>><<person1>>A <<person>> looks at your feet. "Why are you wearing girl's socks?" <<he>> asks loudly. "Do they make you feel pretty?" <<His>> friends start laughing.
+	<br><br>
 
-<<link [[Kick|Science Kick]]>><<stress -12>><<trauma -6>><<detention 3>><</link>><<gdelinquency>><<ltrauma>><<lstress>>
-<br>
-<<link [[Ignore|Science Lesson]]>><<stress 6>><<trauma 6>><<endevent>><</link>><<gtrauma>><<gstress>>
-<br>
+	<<link [[Kick|Science Kick]]>><<stress -12>><<trauma -6>><<detention 3>><</link>><<gdelinquency>><<ltrauma>><<lstress>>
+	<br>
+	<<link [[Ignore|Science Lesson]]>><<stress 6>><<trauma 6>><<endevent>><</link>><<gtrauma>><<gstress>>
+	<br>
 
 <<elseif $rng gte 91 and $player.gender_appearance is "f" and $worn.legs.name is "boy's gym socks">>
-<<generates1>><<person1>>A <<person>> looks at your feet. "Why are you wearing boy's socks?" <<he>> asks loudly. "Do you think they'll make people forget you're a slut?" <<His>> friends start laughing.
-<br><br>
+	<<generates1>><<person1>>A <<person>> looks at your feet. "Why are you wearing boy's socks?" <<he>> asks loudly. "Do you think they'll make people forget you're a slut?" <<His>> friends start laughing.
+	<br><br>
 
-<<link [[Kick|Science Kick]]>><<stress -12>><<trauma -6>><<detention 3>><</link>><<gdelinquency>><<ltrauma>><<lstress>>
-<br>
-<<link [[Ignore|Science Lesson]]>><<stress 6>><<trauma 6>><<endevent>><</link>><<gtrauma>><<gstress>>
-<br>
+	<<link [[Kick|Science Kick]]>><<stress -12>><<trauma -6>><<detention 3>><</link>><<gdelinquency>><<ltrauma>><<lstress>>
+	<br>
+	<<link [[Ignore|Science Lesson]]>><<stress 6>><<trauma 6>><<endevent>><</link>><<gtrauma>><<gstress>>
+	<br>
 
 <<elseif $rng gte 81>>
-<<npc Sirris>><<generates2>><<person2>>The class conducts an experiment with chemicals.
-<br><br>
-
-A <<person>> splashes your clothes with acid! "Sorry, I slipped," <<he>> says, smirking.
-
-<<set $worn.upper.integrity -= 20>>
-<<set $worn.lower.integrity -= 20>>
-<<set $worn.under_lower.integrity -= 20>>
-
-<<integritycheck>>
-<<exposure>>
-<br><br>
-  <<if !$worn.upper.type.includes("naked") and !$worn.lower.type.includes("naked")>>
-  It's not a very potent acid, but it does leave your clothing worse for wear.
-  <br><br>
-
-  <<link [[Next|Science Lesson]]>><<endevent>><</link>>
-  <br>
-  <<else>>
-  The acid eats through your clothes, and you soon find yourself exposed in front of the entire class! You do your best to conceal your <<lewdness>> as Sirris rushes over with some towels.
-	  <<if $exhibitionismaction is "excited">>
-		You let the class have a good look at your <<nudity>>.
-	  <<else>>
-		You cover up and try to hide your exposed parts, but not before the rest of the class get a good look.
-	  <</if>>
-
-  <br><br>
-  <<towelup>>
-
-  <<link [[Next|Science Lesson]]>><<endevent>><</link>>
-  <br>
-  <</if>>
+	<<npc Sirris>><<generates2>><<person2>>The class conducts an experiment with chemicals.
+	<br><br>
+
+	A <<person>> splashes your clothes with acid! "Sorry, I slipped," <<he>> says, smirking.
+
+	<<set $worn.upper.integrity -= 20>>
+	<<set $worn.lower.integrity -= 20>>
+	<<set $worn.under_lower.integrity -= 20>>
+
+	<<integritycheck>>
+	<<exposure>>
+	<br><br>
+	<<if !$worn.upper.type.includes("naked") and !$worn.lower.type.includes("naked")>>
+		It's not a very potent acid, but it does leave your clothing worse for wear.
+		<br><br>
+
+		<<link [[Next|Science Lesson]]>><<endevent>><</link>>
+		<br>
+	<<else>>
+		The acid eats through your clothes, and you soon find yourself exposed in front of the entire class! You do your best to conceal your <<lewdness>> as Sirris rushes over with some towels.
+		<<if $exhibitionismaction is "excited">>
+			You let the class have a good look at your <<nudity>>.
+		<<else>>
+			You cover up and try to hide your exposed parts, but not before the rest of the class get a good look.
+		<</if>>
+
+		<br><br>
+		<<towelup>>
+
+		<<link [[Next|Science Lesson]]>><<endevent>><</link>>
+		<br>
+	<</if>>
 <<elseif $rng gte 61>>
-<<npc Sirris>><<person1>>Sirris asks you to come to the front of the class.
-<br><br>
+	<<npc Sirris>><<person1>>Sirris asks you to come to the front of the class.
+	<br><br>
 
-<<link [[Next|Science Event3]]>><</link>>
-<br>
+	<<link [[Next|Science Event3]]>><</link>>
+	<br>
 
 <<elseif $rng gte 41>>
-The class arrange themselves around the terrariums lining the edge of the room. You observe the plants contained within and try to identify the species.
-<br><br>
+	The class arrange themselves around the terrariums lining the edge of the room. You observe the plants contained within and try to identify the species.
+	<br><br>
 
-<<link [[Next|Science Terrarium]]>><</link>>
-<br>
+	<<link [[Next|Science Terrarium]]>><</link>>
+	<br>
 
 <<elseif $rng gte 21>>
-A group of delinquents decide to pick on you.
-<br><br>
+	A group of delinquents decide to pick on you.
+	<br><br>
 
-<<link [[Ask the teacher for help|Science Pick]]>><<status -10>><</link>><<lcool>>
-<br>
-<<link [[Endure it|Science Pick]]>><<set $phase to 1>><<stress 2>><<trauma 2>><</link>><<gtrauma>><<gstress>>
-<br>
+	<<link [[Ask the teacher for help|Science Pick]]>><<status -10>><</link>><<lcool>>
+	<br>
+	<<link [[Endure it|Science Pick]]>><<set $phase to 1>><<stress 2>><<trauma 2>><</link>><<gtrauma>><<gstress>>
+	<br>
 
 <<elseif $rng gte 1>>
-Sirris asks everyone to group up into pairs.
-<br><br>
-<<set $rng to random(1, 100)>>
-
-  <<if $cool gte 80>>
-  You find a partner and together dissect a<<if $rng gte 75>> sheep's eye<<elseif $rng gte 50>>n insect<<elseif $rng gte 25>> worm<<else>> frog<</if>>.
-  <br><br>
-
-  <<link [[Just focus on the dissection|Science Dissection]]>><<scienceskill>><</link>><<gscience>>
-  <br>
-  <<link [[Joke around with your partner|Science Dissection]]>><<trauma -1>><<stress -2>><<status 1>><<set $phase to 1>><</link>><<ltrauma>><<lstress>><<gcool>>
-  <br>
-  <<else>>
-  <<npc Sirris>><<person1>>The other students avoid you, and you find yourself unable to find a partner. Sirris carries in a plastic box, but stops to speak to you when <<he>> sees that you're alone.
-  <br><br>
-
-  "I have a special job for you. There's another box like this one in the shed just next to the school entrance. Could you bring it here?"
-  <br><br>
-
-  You walk to the shed, which is unlocked, and find the box just inside. It's really heavy! You can barely lift it, but manage to carry it back into the school.
-  <<physique>><<endevent>>
-  <br><br>
-	<<if $rng gte 21>>
-	You arrive back at the classroom, where the rest of the class is busy dissecting frogs. Lacking a partner, you get one all to yourself.
-	<<gscience>><<scienceskill>>
+	Sirris asks everyone to group up into pairs.
 	<br><br>
+	<<set $rng to random(1, 100)>>
 
-	<<link [[Next|Science Lesson]]>><<endevent>><</link>>
-	<br>
+	<<if $cool gte 80>>
+		You find a partner and together dissect a<<if $rng gte 75>> sheep's eye<<elseif $rng gte 50>>n insect<<elseif $rng gte 25>> worm<<else>> frog<</if>>.
+		<br><br>
+
+		<<link [[Just focus on the dissection|Science Dissection]]>><<scienceskill>><</link>><<gscience>>
+		<br>
+		<<link [[Joke around with your partner|Science Dissection]]>><<trauma -1>><<stress -2>><<status 1>><<set $phase to 1>><</link>><<ltrauma>><<lstress>><<gcool>>
+		<br>
 	<<else>>
-	<<generatey1>><<generatey2>><<generatey3>>
-	You walk past three delinquents smoking in a corridor. You didn't see them coming due to the box blocking your view. They start hounding you down the hall.
+		<<npc Sirris>><<person1>>The other students avoid you, and you find yourself unable to find a partner. Sirris carries in a plastic box, but stops to speak to you when <<he>> sees that you're alone.
+		<br><br>
 
-	<<person1>>The <<person>> grabs the hem of your $worn.lower.name and tries to tug them down!
+		"I have a special job for you. There's another box like this one in the shed just next to the school entrance. Could you bring it here?"
+		<br><br>
 
-	<<if $worn.under_lower.type.includes("naked")>>
-	<span class="lewd">You shiver as you realise you aren't wearing any underwear!</span>
-	<</if>>
-	<br><br>
+		You walk to the shed, which is unlocked, and find the box just inside. It's really heavy! You can barely lift it, but manage to carry it back into the school.
+		<<physique>><<endevent>>
+		<br><br>
+		<<if $rng gte 21>>
+			You arrive back at the classroom, where the rest of the class is busy dissecting frogs. Lacking a partner, you get one all to yourself.
+			<<gscience>><<scienceskill>>
+			<br><br>
 
-	"Let's see what <<pshes>> got on under this," the <<person2>><<person>> and <<person3>><<person>> move closer, intending to join in.
-	<br><br>
+			<<link [[Next|Science Lesson]]>><<endevent>><</link>>
+			<br>
+		<<else>>
+			<<generatey1>><<generatey2>><<generatey3>>
+			You walk past three delinquents smoking in a corridor. You didn't see them coming due to the box blocking your view. They start hounding you down the hall.
 
-	You're unable to protect yourself while your arms are occupied by the box. You'll have to bend over to put the box down without breaking anything inside, but you feel that doing so would make you even more vulnerable.
-	<br><br>
+			<<person1>>The <<person>> grabs the hem of your $worn.lower.name and tries to tug them down!
 
-	<<link [[Drop the box and protect yourself|Science Dissection]]>><<set $phase to 2>><<detention 2>><</link>><<gdelinquency>>
-	<br>
-	<<link [[Just endure it|Science Dissection]]>><<set $phase to 3>><<stress 2>><<trauma 2>><</link>><<gtrauma>><<gstress>>
-	<br>
-	<<link [[Bend over and put the box down gently|Science Dissection]]>><<set $phase to 4>><</link>>
+			<<if $worn.under_lower.type.includes("naked")>>
+				<span class="lewd">You shiver as you realise you aren't wearing any underwear!</span>
+			<</if>>
+			<br><br>
+
+			"Let's see what <<pshes>> got on under this," the <<person2>><<person>> and <<person3>><<person>> move closer, intending to join in.
+			<br><br>
+
+			You're unable to protect yourself while your arms are occupied by the box. You'll have to bend over to put the box down without breaking anything inside, but you feel that doing so would make you even more vulnerable.
+			<br><br>
+
+			<<link [[Drop the box and protect yourself|Science Dissection]]>><<set $phase to 2>><<detention 2>><</link>><<gdelinquency>>
+			<br>
+			<<link [[Just endure it|Science Dissection]]>><<set $phase to 3>><<stress 2>><<trauma 2>><</link>><<gtrauma>><<gstress>>
+			<br>
+			<<link [[Bend over and put the box down gently|Science Dissection]]>><<set $phase to 4>><</link>>
+		<</if>>
 	<</if>>
-  <</if>>
 <</if>>
 <</widget>>
 
 <<widget "eventssciencesafe">>
-<<if $scienceproject is "none" and $yeardays gte 2 and $mathsprojectdays isnot (21 + (7 - $weekday))>>
+<<if $scienceproject is "none" and $days gte 2 and $mathsprojectdays isnot (21 + (7 - $weekday))>>
 	<<set $scienceproject to "ongoing">><<set $scienceprojectdays to (21 + (7 - $weekday))>>
 	<<npc Sirris>><<person1>><<scienceprojectstart>>
 	"The science fair will be held in a few weeks," Sirris announces. "Taking part is optional, but it's a good opportunity to learn in a more practical way. The theme is local wildlife. I have a project idea for each of you, but you can come up with your own if you like."
@@ -398,12 +396,12 @@ Sirris asks everyone to group up into pairs.
 		"I know that was quite explicit," Sirris says. "But good scientists aren't squeamish. Humans are animals. And this is simply observing animal behaviour. And as well as knowing the facts and terminology, it's important that you understand what real sex is and what it looks like."
 		<<awarenessup 200 1>>
 	<<else>>
-		It has a strong educational focus, talking extensively about sexual health, STIs, pregnancy, contraception and consent.
+		It has a strong educational focus, talking extensively about sexual health, STIs, <<if $pregnancyspeechdisable is "f">>pregnancy, <</if>>contraception and consent.
 		It goes into the basic mechanics of sex with some simple diagrams labelling the body parts and cell types involved.
 		<<awarenessup 100 1>>
 		<br><br>
 		The classroom has a laid-back atmosphere. Some students watch, but few with any real interest and many carry on chatting throughout.
-		<<if pregnancyBellyVisible()>>You're constantly reminded of the situation you're currently in, and the precious life inside of you.<<lstress>><<stress -10>><</if>>
+		<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>You're constantly reminded of the situation you're currently in, and the precious life inside of you.<<lstress>><<stress -10>><</if>>
 	<</if>>
 	<br><br>
 	<<link [[Next|Science Lesson]]>><<endevent>><</link>>
@@ -447,59 +445,55 @@ Sirris asks everyone to group up into pairs.
 			<<gscience>><<scienceskill>>
 		<</if>>
 	<<elseif $scienceprogression gte 1>>
-	"I need you to undress for this part. Don't worry, you can keep your underwear on."
-	<br><br>
-	<<if $rng % 3 == 0>>
-	  The <<personsimple>> runs straight out of the room and does not return.
-	  <br><br>
-	  "I suppose we'll have to make do with the old anatomy charts then," Sirris says. "Sorry class."
-	<<elseif $rng % 4 == 0>>
-	  The <<personsimple>> whispers something to Sirris.
-	  <br><br>
-	  Sirris turns bright red and quickly asks the <<person>> to sit back down. "On second thoughts, class, ah... We'll use the anatomy charts," Sirris says. "They're... clearer."
+		"I need you to undress for this part. Don't worry, you can keep your underwear on."
+		<br><br>
+		<<if $rng % 3 == 0>>
+			The <<personsimple>> runs straight out of the room and does not return.
+			<br><br>
+			"I suppose we'll have to make do with the old anatomy charts then," Sirris says. "Sorry class."
+		<<elseif $rng % 4 == 0>>
+			The <<personsimple>> whispers something to Sirris.
+			<br><br>
+			Sirris turns bright red and quickly asks the <<person>> to sit back down. "On second thoughts, class, ah... We'll use the anatomy charts," Sirris says. "They're... clearer."
+		<<else>>
+			<<print either("The <<personsimple>> excitedly agrees.", "The <<personsimple>> cheerfully agrees.", "The <<personsimple>> casually agrees.", "The <<personsimple>> reluctantly agrees.", "The <<personsimple>> looks like he wants to cry, but nods meekly.", "The <<personsimple>> tearfully agrees.")>>
+			<<He>> strips to <<his>> underwear, which immediately grabs the class's attention.
+			Sirris continues with the lesson, pointing to parts of the <<persons>> body and explaining various functions.
+			Sirris soon finishes the demonstration, inviting the <<person>> to dress, sit down and rejoin the class.
+			<br><br>
+
+			While you feel a little bad for the <<person>>, it definitely made the session more interesting and you think you learned something.
+			<<gscience>><<scienceskill>>
+		<</if>>
 	<<else>>
-	  <<if $pronoun is "m">>
-	  <<print either("The boy excitedly agrees.", "The boy cheerfully agrees.", "The boy casually agrees.", "The boy reluctantly agrees.", "The boy looks like he wants to cry, but nods meekly.", "The boy tearfully agrees.")>>
-	  <<else>>
-	  <<print either("The girl excitedly agrees.", "The girl cheerfully agrees.", "The girl casually agrees.", "The girl reluctantly agrees.", "The girl looks like she wants to cry, but nods meekly.", "The girl tearfully agrees.")>>
-	  <</if>>
-	  <<He>> strips to <<his>> underwear, which immediately grabs the class's attention.
-	  Sirris continues with the lesson, pointing to parts of the <<persons>> body and explaining various functions.
-	  Sirris soon finishes the demonstration, inviting the <<person>> to dress, sit down and rejoin the class.
-	  <br><br>
-
-	  While you feel a little bad for the <<person>>, it definitely made the session more interesting and you think you learned something.
-	  <<gscience>><<scienceskill>>
-	<</if>>
-  <<else>>
-	"Don't worry, we're not going to do anything invasive."
-	<br><br>
-	Over the next few minutes, Sirris talks about various bones and organs, pointing to parts of the <<persons>> body to demonstrate location. It's interesting.
-	<<gscience>><<scienceskill>>
-  <</if>>
-  <br><br>
-
-  <<link [[Next|Science Lesson]]>><<endevent>><</link>>
-  <br>
+		"Don't worry, we're not going to do anything invasive."
+		<br><br>
+		Over the next few minutes, Sirris talks about various bones and organs, pointing to parts of the <<persons>> body to demonstrate location. It's interesting.
+		<<gscience>><<scienceskill>>
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Science Lesson]]>><<endevent>><</link>>
+	<br>
 
 <<elseif $rng gte 1>>
-  <<if $dissociation gte 1>>
-<<npc Sirris>><<person1>>Sirris approaches you. "Is everything okay?" <<he>> asks. "You don't look... well."
-<br><br>
+	<<if $dissociation gte 1>>
+		<<npc Sirris>><<person1>>Sirris approaches you. "Is everything okay?" <<he>> asks. "You don't look... well."
+		<br><br>
 
-<<link [[I'm fine|Science Event2]]>><</link>>
-<br>
-<<link [[Break down|Science Event2]]>><<set $phase to 1>><</link>>
-<br>
-  <<else>>
-Sirris approaches you. "Is there anything I can help clarify for you?"
-<br><br>
+		<<link [[I'm fine|Science Event2]]>><</link>>
+		<br>
+		<<link [[Break down|Science Event2]]>><<set $phase to 1>><</link>>
+		<br>
+	<<else>>
+		Sirris approaches you. "Is there anything I can help clarify for you?"
+		<br><br>
 
-<<link [[Yes|Science Event2]]>><<set $phase to 2>><<scienceskill 1>><</link>><<gscience>>
-<br>
-<<link [[No|Science Event2]]>><<set $phase to 3>><</link>>
-<br>
-  <</if>>
+		<<link [[Yes|Science Event2]]>><<set $phase to 2>><<scienceskill 1>><</link>><<gscience>>
+		<br>
+		<<link [[No|Science Event2]]>><<set $phase to 3>><</link>>
+		<br>
+	<</if>>
 <</if>>
 <</widget>>
 
@@ -507,22 +501,22 @@ Sirris approaches you. "Is there anything I can help clarify for you?"
 <<widget "eventsmaths">>
 <<if $rng gte 91 and (($wolfgirl gte 4 and $transformationParts.wolf.ears isnot "hidden") or ($cat gte 4 and $transformationParts.cat.ears isnot "hidden"))>>
 
-<<npc River>><<person1>>River marches up and down the class. <<He>> stops beside you.
-  <<if $riverbite isnot 1>>
-	<<set $riverbite to 1>>
+	<<npc River>><<person1>>River marches up and down the class. <<He>> stops beside you.
+	<<if $riverbite isnot 1>>
+		<<set $riverbite to 1>>
 		"That headband is against school regulations," <<he>> says, grabbing one of your <<if $wolfgirl gte 4>>wolf<<else>>cat<</if>> ears.
-  <<else>>
+	<<else>>
 		"You're still wearing that silly headband?" <<he>> says. "I thought I made myself clear." <<He>> grabs one of your <<if $wolfgirl gte 4>>wolf<<else>>cat<</if>> ears.
-  <</if>>
-<<He>> tugs painfully.<<gpain>><<gstress>><<set $pain += 10>><<stress 1>>
-<br><br>
+	<</if>>
+	<<He>> tugs painfully.<<gpain>><<gstress>><<set $pain += 10>><<stress 1>>
+	<br><br>
 
-<<link [[Bite|Maths Event Bite]]>><<npcincr River dom -1>><<npcincr River love -1>><<detention 6>><<stress -12>><<trauma -6>><<set $submissive -= 10>><</link>><<gdelinquency>><<ltrauma>><<lstress>>
-<br>
-<<link [[Endure|Maths Event Endure]]>><<npcincr River dom 1>><<stress 6>><<trauma 6>><<set $pain += 20>><<set $submissive += 5>><</link>><<gpain>><<gtrauma>><<gstress>>
-<br>
+	<<link [[Bite|Maths Event Bite]]>><<npcincr River dom -1>><<npcincr River love -1>><<detention 6>><<stress -12>><<trauma -6>><<set $submissive -= 10>><</link>><<gdelinquency>><<ltrauma>><<lstress>>
+	<br>
+	<<link [[Endure|Maths Event Endure]]>><<npcincr River dom 1>><<stress 6>><<trauma 6>><<set $pain += 20>><<set $submissive += 5>><</link>><<gpain>><<gtrauma>><<gstress>>
+	<br>
 
-<<elseif $fameexhibitionism gte 500 and $delinquency gte 500 and $mathrulerin is 0 and $worn.genitals.name isnot "chastity belt">>
+<<elseif $fame.exhibitionism gte 500 and $delinquency gte 500 and $mathrulerin is 0 and $worn.genitals.name isnot "chastity belt">>
 
 	<<npc River>><<person1>>
 	You hear River's phone buzzing and without even checking it <<he>> suddenly says <<he>> needs to leave the classroom and will be back in a few minutes.
@@ -544,8 +538,8 @@ Sirris approaches you. "Is there anything I can help clarify for you?"
 	<br>
 
 <<elseif $rng gte 81>>
-<<npc River>><<person1>>
-River gives the class some equations to solve while <<he>> manages paperwork.
+	<<npc River>><<person1>>
+	River gives the class some equations to solve while <<he>> manages paperwork.
 	<<if $whitneymaths is "seat">>
 		<<endevent>>
 		<<npc Whitney>><<person1>>
@@ -597,12 +591,12 @@ River gives the class some equations to solve while <<he>> manages paperwork.
 	<<link [[Comply grudgingly|Maths Whitney Oral]]>><<set $phase to 0>><<trauma 6>><<stress 6>><<npcincr Whitney dom 1>><<set $submissive += 1>><<set $molestationstart to 1>><</link>><<gtrauma>><<gstress>><<gdom>>
 	<br>
 	<<if $promiscuity gte 55>>
-	<<link [[Comply enthusiastically|Maths Whitney Oral]]>><<set $phase to 1>><<npcincr Whitney dom 1>><<set $submissive += 1>><<set $sexstart to 1>><</link>><<promiscuous4>><<gdom>>
-	<br>
+		<<link [[Comply enthusiastically|Maths Whitney Oral]]>><<set $phase to 1>><<npcincr Whitney dom 1>><<set $submissive += 1>><<set $sexstart to 1>><</link>><<promiscuous4>><<gdom>>
+		<br>
 	<</if>>
 	<<if $whitneyromance is 1>>
-	<<link [[Comply lovingly|Maths Whitney Oral]]>><<set $phase to 2>><<trauma 6>><<npcincr Whitney dom 1>><<npcincr Whitney love 1>><<set $submissive += 1>><<set $sexstart to 1>><</link>><<promiscuous1>><<gtrauma>><<glove>><<gdom>>
-	<br>
+		<<link [[Comply lovingly|Maths Whitney Oral]]>><<set $phase to 2>><<trauma 6>><<npcincr Whitney dom 1>><<npcincr Whitney love 1>><<set $submissive += 1>><<set $sexstart to 1>><</link>><<promiscuous1>><<gtrauma>><<glove>><<gdom>>
+		<br>
 	<</if>>
 	<<link [[Refuse|Maths Whitney Oral Refuse]]>><<stress 6>><<npcincr Whitney dom -1>><</link>><<gstress>><<ldom>>
 
@@ -649,7 +643,7 @@ River gives the class some equations to solve while <<he>> manages paperwork.
 				<</if>>
 			<</if>>
 		<<else>>
-			You brush the ruler away and fix your $worn.lower.name, 
+			You brush the ruler away and fix your $worn.lower.name,
 			but not before the class get a good look at your <<print $worn.under_lower.anus_exposed is 1 ? "bare ass" : $worn.under_lower.name>>.
 			<<gtrauma>><<gstress>><<trauma 1>><<stress 1>>
 			<br><br>
@@ -728,18 +722,7 @@ River gives the class some equations to solve while <<he>> manages paperwork.
 	"<<pShes>> mine, <<person2>><<if $pronoun is "m">>pervert<<else>>slut<</if>>," <<person1>><<he>> hisses. "Now I'm gonna make sure you remember it."
 	<br><br>
 
-	<<set $rng to random(1, 100)>>
-	<<if $rng gte 81>>
-		The <<person2>><<person>> looks terrified.
-	<<elseif $rng gte 61>>
-		The <<person2>><<person>> looks defiant.
-	<<elseif $rng gte 41>>
-		The <<person2>><<person>> looks angry.
-	<<elseif $rng gte 21>>
-		The <<person2>><<person>> looks scared.
-	<<else>>
-		The <<person2>><<person>> looks confused.
-	<</if>>
+	The <<person2>><<person>> looks <<print either("terrified","defiant","angry","scared","confused")>>.
 	<br><br>
 
 	<<link [[Watch|Maths Whitney Watch]]>><<npcincr Whitney dom 1>><</link>><<gdom>>
@@ -750,19 +733,18 @@ River gives the class some equations to solve while <<he>> manages paperwork.
 	<br>
 
 <<elseif $rng gte 41>><<set $rng to random(1, 100)>>
+	<<npc River>><<person1>>
 
-<<npc River>><<person1>>
-
-River stands beside your table. "I need you to deliver a message for me. To the head." <<He>> hands you a sealed envelope.
-<br><br>
+	River stands beside your table. "I need you to deliver a message for me. To the head." <<He>> hands you a sealed envelope.
+	<br><br>
 
-You leave the classroom.
-<br><br>
-<<endevent>>
-<<link [[Open the envelope|Maths Note]]>><<detention 6>><<set $phase to 1>><</link>><<gdelinquency>>
-<br>
-<<link [[Just deliver it|Maths Note]]>><</link>>
-<br>
+	You leave the classroom.
+	<br><br>
+	<<endevent>>
+	<<link [[Open the envelope|Maths Note]]>><<detention 6>><<set $phase to 1>><</link>><<gdelinquency>>
+	<br>
+	<<link [[Just deliver it|Maths Note]]>><</link>>
+	<br>
 
 <<elseif $rng gte 31 and ($whitneymaths is "active" or $whitneymaths is "seat")>>
 
@@ -800,7 +782,7 @@ You leave the classroom.
 		<br>
 		<<if $promiscuity gte 15>>
 			<<set $skulduggerydifficulty to 300>>
-			<<link [["Expose "  + $NPCList[0].pronouns.him + " further"|Maths Whitney Shirt Expose]]>><<def 1>><<npcincr Whitney lust 5>><<npcincr Whitney dom -1>><</link>><<skulduggerydifficulty>><<promiscuous2>><<ldom>><<glust>>
+			<<link [["Expose " + $NPCList[0].pronouns.him + " further"|Maths Whitney Shirt Expose]]>><<def 1>><<npcincr Whitney lust 5>><<npcincr Whitney dom -1>><</link>><<skulduggerydifficulty>><<promiscuous2>><<ldom>><<glust>>
 			<br>
 		<</if>>
 	<<else>>
@@ -817,157 +799,159 @@ You leave the classroom.
 		<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 		<br>
 	<</if>>
-<<elseif $rng gte 21>><<set $rng to random(1, 100)>>
-  <<if $maths lte 499>>
-  <<generates1>><<person1>>
-River has a studious <<person>> help you with the material.
-	<<if $cool gte (($coolmax / 5) * 2)>>
-	<<He>> is happy to help, and your understanding of the material improves.<<lstress>><<stress -4>><<gmaths>><<mathsskill>>
-	<br><br>
+<<elseif $rng gte 21>>
+	<<set $rng to random(1, 100)>>
+	<<if currentSkillValue('maths') lte 499>>
+		<<generates1>><<person1>>
+		River has a studious <<person>> help you with the material.
+		<<if $cool gte (($coolmax / 5) * 2)>>
+			<<He>> is happy to help, and your understanding of the material improves.<<lstress>><<stress -4>><<gmaths>><<mathsskill>>
+			<br><br>
 
-	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
-	<<elseif $cool gte ($coolmax / 5)>>
-	<<He>> doesn't seem particularly happy with the arrangement, but you do learn something.<<gmaths>><<mathsskill>>
-	<br><br>
+			<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+		<<elseif $cool gte ($coolmax / 5)>>
+			<<He>> doesn't seem particularly happy with the arrangement, but you do learn something.<<gmaths>><<mathsskill>>
+			<br><br>
 
-	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
-	<<else>>
-	<<He>> is clearly embarrassed to be seen with you; <<he>> never looks at you, and rarely speaks. You don't learn anything.
-	<br><br>
+			<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+		<<else>>
+			<<He>> is clearly embarrassed to be seen with you; <<he>> never looks at you, and rarely speaks. You don't learn anything.
+			<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
-	<</if>>
-  <<else>><<generates1>>
-	<<if $eventsmaths4 is 1 and $rng gte 71>>
-As you are doing well in this class, River has you sit with a <<person1>><<person>> who isn't doing so well, and instructs you to help them. The <<person>> is not at all happy with the arrangement. After a few minutes of trying to explain the material to them, you feel a hand grope your butt.
-<br><br>
+			<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+		<</if>>
+	<<else>>
+		<<generates1>>
+		<<if $eventsmaths4 is 1 and $rng gte 71>>
+			As you are doing well in this class, River has you sit with a <<person1>><<person>> who isn't doing so well, and instructs you to help them. The <<person>> is not at all happy with the arrangement. After a few minutes of trying to explain the material to them, you feel a hand grope your butt.
+			<br><br>
 
-<<link [[Ignore it|Maths Event3]]>><<trauma 2>><<stress 2>><<arousal 200>><<set $phase to 3>><<set $eventsmaths4 to 1>><</link>><<gtrauma>><<gstress>><<garousal>>
-<br>
-<<link [[Move away|Maths Event3]]>><<detention 2>><<set $phase to 1>><</link>><<gdelinquency>>
-<br>
-<<if $whitneymaths is "seat">>
-	<<link [[Tell Whitney|Maths Event3 Whitney]]>><<npcincr Whitney dom 1>><</link>><<gdom "Whitney">>
-	<br>
-<</if>>
+			<<link [[Ignore it|Maths Event3]]>><<trauma 2>><<stress 2>><<arousal 200>><<set $phase to 3>><<set $eventsmaths4 to 1>><</link>><<gtrauma>><<gstress>><<garousal>>
+			<br>
+			<<link [[Move away|Maths Event3]]>><<detention 2>><<set $phase to 1>><</link>><<gdelinquency>>
+			<br>
+			<<if $whitneymaths is "seat">>
+				<<link [[Tell Whitney|Maths Event3 Whitney]]>><<npcincr Whitney dom 1>><</link>><<gdom "Whitney">>
+				<br>
+			<</if>>
 
-	<<elseif $rng gte 41>><<set $eventsmaths4 to 1>>
-As you are doing well in this class, River has you sit with a <<person1>><<person>> who isn't doing so well, and instructs you to help them. The <<person>> is not at all happy with the arrangement. After a few minutes of trying to explain the material to them, you feel a hand grope your butt.
-<br><br>
+		<<elseif $rng gte 41>><<set $eventsmaths4 to 1>>
+			As you are doing well in this class, River has you sit with a <<person1>><<person>> who isn't doing so well, and instructs you to help them. The <<person>> is not at all happy with the arrangement. After a few minutes of trying to explain the material to them, you feel a hand grope your butt.
+			<br><br>
 
-<<link [[Ignore it|Maths Event3]]>><<trauma 2>><<stress 2>><<arousal 200>><<set $phase to 2>><</link>><<gtrauma>><<gstress>><<garousal>>
-<br>
-<<link [[Move away|Maths Event3]]>><<detention 2>><<set $phase to 1>><</link>><<gdelinquency>>
-<br>
-<<if $whitneymaths is "seat">>
-	<<link [[Tell Whitney|Maths Event3 Whitney]]>><<npcincr Whitney dom 1>><</link>><<gdom "Whitney">>
-	<br>
-<</if>>
+			<<link [[Ignore it|Maths Event3]]>><<trauma 2>><<stress 2>><<arousal 200>><<set $phase to 2>><</link>><<gtrauma>><<gstress>><<garousal>>
+			<br>
+			<<link [[Move away|Maths Event3]]>><<detention 2>><<set $phase to 1>><</link>><<gdelinquency>>
+			<br>
+			<<if $whitneymaths is "seat">>
+				<<link [[Tell Whitney|Maths Event3 Whitney]]>><<npcincr Whitney dom 1>><</link>><<gdom "Whitney">>
+				<br>
+			<</if>>
 
-	<<elseif $rng gte 1>>
-As you are doing well in this class, River has you sit with a <<person1>><<person>> who isn't doing so well, and instructs you to help them. The <<person>> is not at all happy with the arrangement, but they listen to you without incident.
-<br><br>
+		<<elseif $rng gte 1>>
+			As you are doing well in this class, River has you sit with a <<person1>><<person>> who isn't doing so well, and instructs you to help them. The <<person>> is not at all happy with the arrangement, but they listen to you without incident.
+			<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+			<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+		<</if>>
 	<</if>>
-  <</if>>
 <<else>>
-<<npc River>><<person1>><<generates2>>
-While River's back is turned, someone throws a pen at <<his>> back. <<He>> stops speaking, and slowly turns to face the class. <<person2>>The <<person>> sat behind you points at you. "<<pShe>> did it!"
-<br><br>
-  <<if $delinquency gte 400>>
-	<<if $whitneymaths is "seat">>
-		River looks at you. <<person1>>"I should have known it would be you. Wait outside." You know arguing won't help, so you stand to leave.<<gstress>><<stress 2>>
-		<br><br>
+	<<npc River>><<person1>><<generates2>>
+	While River's back is turned, someone throws a pen at <<his>> back. <<He>> stops speaking, and slowly turns to face the class. <<person2>>The <<person>> sat behind you points at you. "<<pShe>> did it!"
+	<br><br>
+	<<if $delinquency gte 400>>
+		<<if $whitneymaths is "seat">>
+			River looks at you. <<person1>>"I should have known it would be you. Wait outside." You know arguing won't help, so you stand to leave.<<gstress>><<stress 2>>
+			<br><br>
 
-		Whitney stands beside you. "Sit down," River says. Whitney ignores <<him>> and leaves the class behind you.
-		<br><br>
+			Whitney stands beside you. "Sit down," River says. Whitney ignores <<him>> and leaves the class behind you.
+			<br><br>
+		<<else>>
+			River looks at you. <<person1>>"I should have known it would be you. Wait outside." You know arguing won't help, so you stand and leave.<<gstress>><<stress 2>>
+			<br><br>
+		<</if>>
+
+		<<link [[Next|Maths Event4]]>><<endevent>><</link>>
 	<<else>>
-		River looks at you. <<person1>>"I should have known it would be you. Wait outside." You know arguing won't help, so you stand and leave.<<gstress>><<stress 2>>
+		<<person1>>River is not fooled by the <<person2>><<person>>, and sends them out.
 		<br><br>
-	<</if>>
 
-  <<link [[Next|Maths Event4]]>><<endevent>><</link>>
-  <<else>>
-  <<person1>>River is not fooled by the <<person2>><<person>>, and sends them out.
-  <br><br>
-
-  <<link [[Next|Maths Lesson]]>><<endevent>><</link>>
-  <</if>>
+		<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<</if>>
 <</if>>
 <</widget>>
 
 <<widget "eventsmathssafe">>
-<<if $mathsproject is "none" and $yeardays gte 23 and $scienceprojectdays isnot (21 + (7 - $weekday))>><<set $mathsproject to "ongoing">><<set $mathsprojectdays to (21 + (7 - $weekday))>>
-<<mathsprojectstart>>
-<<npc River>><<person1>><<generatey2>>"Everyone listen," River announces. <<He>> knocks on <<his>> desk. "That includes you at the back. I have something special for you today. We hold an annual competition for students in your year." This grabs a <<person2>><<person>> at the front's attention. <<He>> sits upright.
-<<if $whitneymaths is "active" or $whitneymaths is "seat">>
-	Whitney is less impressed, and reclines in <<nnpc_his "Whitney">> seat with an open textbook resting on <<nnpc_his "Whitney">> face.
-<</if>>
-<br><br>
+	<<if $mathsproject is "none" and $days gte 23 and $scienceprojectdays isnot (21 + (7 - $weekday))>><<set $mathsproject to "ongoing">><<set $mathsprojectdays to (21 + (7 - $weekday))>>
+	<<mathsprojectstart>>
+	<<npc River>><<person1>><<generatey2>>"Everyone listen," River announces. <<He>> knocks on <<his>> desk. "That includes you at the back. I have something special for you today. We hold an annual competition for students in your year." This grabs a <<person2>><<person>> at the front's attention. <<He>> sits upright.
+	<<if $whitneymaths is "active" or $whitneymaths is "seat">>
+		Whitney is less impressed, and reclines in <<nnpc_his "Whitney">> seat with an open textbook resting on <<nnpc_his "Whitney">> face.
+	<</if>>
+	<br><br>
 
-"You have a few weeks to solve it," River continues as <<person1>><<he>> hands out booklets. "Whoever provides the most intelligent answer wins. We don't expect anyone to find the solution. That's not the point." <<He>> places a black and white booklet in front of you. You open it. It's incomprehensible.
-<br><br>
+	"You have a few weeks to solve it," River continues as <<person1>><<he>> hands out booklets. "Whoever provides the most intelligent answer wins. We don't expect anyone to find the solution. That's not the point." <<He>> places a black and white booklet in front of you. You open it. It's incomprehensible.
+	<br><br>
 
-The <<person2>><<persons>> arm shoots up. "Yes?" River asks.
-<br><br>
+	The <<person2>><<persons>> arm shoots up. "Yes?" River asks.
+	<br><br>
 
-"You haven't covered this," the <<person>> says. <<His>> voice quivers. You're relieved that you're not alone.
-<br><br>
+	"You haven't covered this," the <<person>> says. <<His>> voice quivers. You're relieved that you're not alone.
+	<br><br>
 
-River smiles. "Well observed," <<person1>><<he>> says. "You're all on equal footing. Even if you haven't paid attention in the past. Participation is optional. There's a reward for the winner, but don't prioritise it over your school work."
-<br><br>
+	River smiles. "Well observed," <<person1>><<he>> says. "You're all on equal footing. Even if you haven't paid attention in the past. Participation is optional. There's a reward for the winner, but don't prioritise it over your school work."
+	<br><br>
 
-<<He>> hands out the last of the booklets. "The problem was made for this competition, so don't think you can find the answer somewhere. And don't ask your parents for help," <<he>> adds. <<He>> avoids looking in your direction. "We can always tell. The competition will be held at the town hall, where you will be judged. Good luck."
-<br><br>
+	<<He>> hands out the last of the booklets. "The problem was made for this competition, so don't think you can find the answer somewhere. And don't ask your parents for help," <<he>> adds. <<He>> avoids looking in your direction. "We can always tell. The competition will be held at the town hall, where you will be judged. Good luck."
+	<br><br>
 
-<span class="gold">Maths competition added to journal.</span>
-<br><br>
+	<span class="gold">Maths competition added to journal.</span>
+	<br><br>
 
-<<endevent>>
+	<<endevent>>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 81>>
-<<npc River>><<person1>>
-River gives the class some equations to solve while <<he>> manages paperwork.
+	<<npc River>><<person1>>
+	River gives the class some equations to solve while <<he>> manages paperwork.
 
-<<if $whitneymaths is "seat" or $whitneymaths is "active">>
-	<<endevent>>
-	<<npc Whitney>><<person1>>
-	Even Whitney keeps quiet, though <<he>> might just be asleep.
-<<else>>
-	Even the delinquents keep quiet, careful to avoid River's attention.
-<</if>>
-<br><br>
+	<<if $whitneymaths is "seat" or $whitneymaths is "active">>
+		<<endevent>>
+		<<npc Whitney>><<person1>>
+		Even Whitney keeps quiet, though <<he>> might just be asleep.
+	<<else>>
+		Even the delinquents keep quiet, careful to avoid River's attention.
+	<</if>>
+	<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 71>>
-  <<generates1>><<generates2>><<person1>><<set _coinflip to random(0,1)>>
-  River assigns a high-performing student, a <<person>>, to support one of the struggling delinquents near you.
-  <br><br>
-  <<if $rng % 3 is 0>>
-	It goes well. Both students get along and seem to benefit from the arrangement.
-  <<else>>
-	It is a disaster. The delinquent, a <<person2>><<person>>, resents the <<person1>><<persons>> help, and soon starts bullying <<him>>. Out of the corner of your eye you watch as things escalate out of control.
-	<<if _coinflip>>
-	River calls an end to the session before things go too far.
+	<<generates1>><<generates2>><<person1>><<set _coinflip to random(0,1)>>
+	River assigns a high-performing student, a <<person>>, to support one of the struggling delinquents near you.
+	<br><br>
+	<<if $rng % 3 is 0>>
+		It goes well. Both students get along and seem to benefit from the arrangement.
 	<<else>>
-	River investigates when the <<person1>><<person>> screams. <<if $rng % 2>>River sends out the perpetrator.<<else>>Somehow the <<person1>><<person>> ends up being blamed and is given detention.
-	<</if>>
+		It is a disaster. The delinquent, a <<person2>><<person>>, resents the <<person1>><<persons>> help, and soon starts bullying <<him>>. Out of the corner of your eye you watch as things escalate out of control.
+		<<if _coinflip>>
+		River calls an end to the session before things go too far.
+		<<else>>
+		River investigates when the <<person1>><<person>> screams. <<if $rng % 2>>River sends out the perpetrator.<<else>>Somehow the <<person1>><<person>> ends up being blamed and is given detention.
+		<</if>>
+		<</if>>
 	<</if>>
-  <</if>>
-  <br><br>
+	<br><br>
 
-  <<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 61>>
-<<npc River>><<person1>>
-River demonstrates equations on a whiteboard and occasionally asks questions, picking on students <<he>> thinks aren't paying attention.
-<br><br>
+	<<npc River>><<person1>>
+	River demonstrates equations on a whiteboard and occasionally asks questions, picking on students <<he>> thinks aren't paying attention.
+	<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 51>>
 	<<if $whitneymaths is "seat" or $whitneymaths is "active">>
@@ -980,33 +964,33 @@ River demonstrates equations on a whiteboard and occasionally asks questions, pi
 	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 41>>
-<<npc River>><<person1>>
-River demonstrates equations on a whiteboard and occasionally asks questions, picking on students <<he>> thinks aren't paying attention. This time, <<he>> picks on you.
-<br><br>
+	<<npc River>><<person1>>
+	River demonstrates equations on a whiteboard and occasionally asks questions, picking on students <<he>> thinks aren't paying attention. This time, <<he>> picks on you.
+	<br><br>
 
-  <<if $maths gte 500>>
-  You know the answer, but answering such a tough question correctly will make the other students think you strange.
-  <br><br>
+	<<if currentSkillValue('maths') gte 500>>
+		You know the answer, but answering such a tough question correctly will make the other students think you strange.
+		<br><br>
 
-  <<link [[Answer|Maths Event2]]>><<status -10>><</link>><<lcool>>
-  <br>
-  <<link [[Pretend you don't know|Maths Event2]]>><<detention 2>><<stress 2>><<set $phase to 1>><</link>><<gstress>><<gdelinquency>>
-  <<else>>
-  The question is quite difficult and beyond you, so you tell <<him>> you don't know.
-  <br><br>
+		<<link [[Answer|Maths Event2]]>><<status -10>><</link>><<lcool>>
+		<br>
+		<<link [[Pretend you don't know|Maths Event2]]>><<detention 2>><<stress 2>><<set $phase to 1>><</link>><<gstress>><<gdelinquency>>
+	<<else>>
+		The question is quite difficult and beyond you, so you tell <<him>> you don't know.
+		<br><br>
 
-"Of course you don't." Fortunately <<he>> doesn't belabour the point, and continues lecturing.
-<<set $stress += 20>><<gstress>>
-<br><br>
+		"Of course you don't." Fortunately <<he>> doesn't belabour the point, and continues lecturing.
+		<<set $stress += 20>><<gstress>>
+		<br><br>
 
-  <<link [[Next|Maths Lesson]]>><<endevent>><</link>>
-  <</if>>
+		<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<</if>>
 
 <<elseif $rng gte 35>>
 
-You're called up to the front to answer a question. You walk up and write your answer on the board. River seems satisfied. You sit back down, but feel a sharp pain. Standing up and reaching back, you feel a tack stuck in your <<bottom>>.
-<<pain 2>><<stress 6>><<gpain>><<gstress>>
-<br><br>
+	You're called up to the front to answer a question. You walk up and write your answer on the board. River seems satisfied. You sit back down, but feel a sharp pain. Standing up and reaching back, you feel a tack stuck in your <<bottom>>.
+	<<pain 2>><<stress 6>><<gpain>><<gstress>>
+	<br><br>
 
 	<<if $whitneymaths is "active">>
 		You remove it and sit back down. You hear Whitney laugh behind you.
@@ -1017,7 +1001,7 @@ You're called up to the front to answer a question. You walk up and write your a
 	<</if>>
 	<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 31>>
 
@@ -1028,35 +1012,36 @@ You're called up to the front to answer a question. You walk up and write your a
 	<<else>>
 		The class studies trigonometry, filling worksheets while River paces the room. Some students covertly stab each other with compass points.
 	<</if>>
-<br><br>
+	<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 21>>
-<<npc River>><<person1>>
-The class studies geometry, filling worksheets while River paces around the room, looking over shoulders and pointing out every little mistake.
-<br><br>
+	<<npc River>><<person1>>
+	The class studies geometry, filling worksheets while River paces around the room, looking over shoulders and pointing out every little mistake.
+	<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<elseif $rng gte 11>>
-<<generates1>><<generates2>><<person1>>
-A <<person>> is called to the front of the class to solve an equation on the board. As <<he>> is writing, a <<person2>><<person>> leans forward and uses a ruler to flash the unwitting <<person1>><<personsimple>>'s underwear to the class.
-<<if ($rng % 4) is 0>>
-However it turns out the <<person>> isn't wearing any, leading to lots of cheering, and a detention for both the humiliated <<personsimple>> and the <<person2>><<person>> with the ruler.
-<<else>>The <<personsimple>> slaps away the ruler, and River fixes the <<person2>><<person>> with a glare.
-<br><br>
-The class goes on.
-<</if>>
-<br><br>
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<generates1>><<generates2>><<person1>>
+	A <<person>> is called to the front of the class to solve an equation on the board. As <<he>> is writing, a <<person2>><<person>> leans forward and uses a ruler to flash the unwitting <<person1>><<personsimple>>'s underwear to the class.
+	<<if ($rng % 4) is 0>>
+		However it turns out the <<person>> isn't wearing any, leading to lots of cheering, and a detention for both the humiliated <<personsimple>> and the <<person2>><<person>> with the ruler.
+	<<else>>
+		The <<personsimple>> slaps away the ruler, and River fixes the <<person2>><<person>> with a glare.
+		<br><br>
+		The class goes on.
+	<</if>>
+	<br><br>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 
 <<else>>
-<<npc River>><<person1>>
-River demonstrates equations on a whiteboard before handing out worksheets for the class to complete.
-<br><br>
+	<<npc River>><<person1>>
+	River demonstrates equations on a whiteboard before handing out worksheets for the class to complete.
+	<br><br>
 
-<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
+	<<link [[Next|Maths Lesson]]>><<endevent>><</link>>
 <</if>>
 <</widget>>
 
@@ -1121,20 +1106,20 @@ River demonstrates equations on a whiteboard before handing out worksheets for t
 	<<link [[Next|English Lesson]]>><<endevent>><</link>>
 	<br>
 <<elseif $rng gte 91 and $goocount + $semencount gte 10>>
-<<npc Doren>><<person1>>
-Doren stops beside your desk. "You smell... odd," <<he>> says. "Almost like..."
-<br><br>
+	<<npc Doren>><<person1>>
+	Doren stops beside your desk. "You smell... odd," <<he>> says. "Almost like..."
+	<br><br>
 
-<<generates2>><<person2>>A <<person>> cuts <<person1>><<him>> off. "<<pShe>> smells like cum <<sir>>." Giggling erupts around the class.
-<br><br>
-<<person1>>
+	<<generates2>><<person2>>A <<person>> cuts <<person1>><<him>> off. "<<pShe>> smells like cum <<sir>>." Giggling erupts around the class.
+	<br><br>
+	<<person1>>
 
-  <<if $promiscuity gte 35>>
-  <<link [[Own it|English Events Own]]>><</link>><<promiscuous3>>
-  <br>
-  <</if>>
-  <<link [[Stare down in shame|English Events Stare]]>><<trauma 6>><<stress 6>><<status -10>><<npcincr Doren love 1>><</link>><<gtrauma>><<gstress>><<lcool>>
-  <br>
+	<<if $promiscuity gte 35>>
+		<<link [[Own it|English Events Own]]>><</link>><<promiscuous3>>
+		<br>
+	<</if>>
+	<<link [[Stare down in shame|English Events Stare]]>><<trauma 6>><<stress 6>><<status -10>><<npcincr Doren love 1>><</link>><<gtrauma>><<gstress>><<lcool>>
+	<br>
 
 <<elseif $rng gte 81>>
 	<<if $cool lt 40>>
@@ -1167,7 +1152,7 @@ Doren stops beside your desk. "You smell... odd," <<he>> says. "Almost like..."
 			<</if>>
 			<<if $kylarenglishstate is "active" or $kylarenglishstate is "watching">>
 				<br><br>
-				
+
 				Kylar blushes and looks away, but <<nnpc_he "Kylar">> clearly saw.<<npcincr Kylar lust 1>><<glust>>
 			<</if>>
 		<<else>>
@@ -1219,56 +1204,57 @@ Doren stops beside your desk. "You smell... odd," <<he>> says. "Almost like..."
 
 <<elseif $rng gte 71 and $kylarenglishstate is "active">>
 
-<<npc Kylar>><<person1>>Doren calls Kylar up to the front of the class to recite <<his>> poem. It's a love poem, about you. <<He>> looks overjoyed to be sharing it.
-<<status -10>><<lcool>>
-<br><br>
-
-<<if $player.penisExist and $genderknown.includes("Kylar")>>
-Part of it makes bold claims about the prodigious girth of your penis. Your face heats up.<<status 1>><<gcool>>
-<br><br>
-<</if>>
+	<<npc Kylar>><<person1>>Doren calls Kylar up to the front of the class to recite <<his>> poem. It's a love poem, about you. <<He>> looks overjoyed to be sharing it.
+	<<status -10>><<lcool>>
+	<br><br>
 
-Several students giggle and stare. A <<generates2>><<person2>><<person>> shunts <<his>> seat to put distance between you.
-<br><br>
-<<person1>>
+	<<if $player.penisExist and $genderknown.includes("Kylar")>>
+		Part of it makes bold claims about the prodigious girth of your penis. Your face heats up.<<status 1>><<gcool>>
+		<br><br>
+	<</if>>
 
-Kylar sits back down and smiles, oblivious to the embarrassment <<he>> caused.
-<br><br>
-<<endevent>>
-<<link [[Next|English Lesson]]>><</link>>
-<br>
+	Several students giggle and stare. A <<generates2>><<person2>><<person>> shunts <<his>> seat to put distance between you.
+	<br><br>
+	<<person1>>
 
-<<elseif $rng gte 61>>
-	<<if $english gte 500>>
-	<<npc Doren>><<person1>>Doren approaches your desk. "I think you've sussed this material, so while the rest of the class works, I've got a message I need delivered to the caretaker's outbuilding." <<He>> hands you a note containing a list of theatre props. "Just slip it beneath the door."
+	Kylar sits back down and smiles, oblivious to the embarrassment <<he>> caused.
 	<br><br>
 	<<endevent>>
+	<<link [[Next|English Lesson]]>><</link>>
+	<br>
 
-	<<if $outbuildingvisited is 1>>
-		You arrive at the outbuilding where the <<print $outbuildingBeast>> attacked you. Were you to take your time and be careful, you could avoid another such encounter. You would miss some of the lesson though.
+<<elseif $rng gte 61>>
+	<<if currentSkillValue('english') gte 500>>
+		<<npc Doren>><<person1>>Doren approaches your desk. "I think you've sussed this material, so while the rest of the class works, I've got a message I need delivered to the caretaker's outbuilding." <<He>> hands you a note containing a list of theatre props. "Just slip it beneath the door."
 		<br><br>
+		<<endevent>>
 
-		<<link [[Be careful|English Outbuilding]]>><<set $phase to 0>><<detention 1>><</link>><<gdelinquency>>
-		<br>
-		<<link [[Risk it|English Outbuilding]]>><<set $phase to 1>><</link>>
-		<br>
-	<<else>><<set $outbuildingvisited to 1>>
-		<<beastNEWinit 1 dog>><<set $outbuildingBeast to $NPCList[0].type>>
-		You head to the outbuilding behind the school and slip the note beneath the door as instructed. As you turn however, you find a <<beasttype>> baring its teeth and advancing on you.
-		<br><br>
-		
-		<<if $monster is 1 or $bestialitydisable is "f">>
-			<<link [[Next|English Outbuilding Molestation]]>><<set $molestationstart to 1>><</link>>
+		<<if $outbuildingvisited is 1>>
+			You arrive at the outbuilding where the <<print $outbuildingBeast>> attacked you. Were you to take your time and be careful, you could avoid another such encounter. You would miss some of the lesson though.
+			<br><br>
+
+			<<link [[Be careful|English Outbuilding]]>><<set $phase to 0>><<detention 1>><</link>><<gdelinquency>>
+			<br>
+			<<link [[Risk it|English Outbuilding]]>><<set $phase to 1>><</link>>
 			<br>
 		<<else>>
-			You manage to flee back to the classroom, though not unscathed.<<beastescape>>
+			<<set $outbuildingvisited to 1>>
+			<<beastNEWinit 1 dog>><<set $outbuildingBeast to $NPCList[0].type>>
+			You head to the outbuilding behind the school and slip the note beneath the door as instructed. As you turn however, you find a <<beasttype>> baring its teeth and advancing on you.
 			<br><br>
-			<<integritycheck>><<towelup>>
 
-			<<link [[Next|English Lesson]]>><<endevent>><</link>>
+			<<if $monster is 1 or $bestialitydisable is "f">>
+				<<link [[Next|English Outbuilding Molestation]]>><<set $molestationstart to 1>><</link>>
+				<br>
+			<<else>>
+				You manage to flee back to the classroom, though not unscathed.<<beastescape>>
+				<br><br>
+				<<integritycheck>><<towelup>>
+
+				<<link [[Next|English Lesson]]>><<endevent>><</link>>
+			<</if>>
+			<!-- Modified for Beast People -->
 		<</if>>
-		<!-- Modified for Beast People -->
-	<</if>>
 
 	<<else>>
 		Doren takes a special interest in your progress, and doesn't give you a chance to relax.
@@ -1279,72 +1265,72 @@ Kylar sits back down and smiles, oblivious to the embarrassment <<he>> caused.
 	<</if>>
 
 <<elseif $rng gte 41>>
-  <<if $delinquency gte 400>>
-  <<npc Doren>><<person1>>In a bid to keep the classroom ruckus down, Doren has the less controllable students separated, which includes you <<if $kylarenglishstate is "active">>and Kylar<</if>>. <<He>><<endevent>> seats you next to a quiet <<generates1>><<person1>><<person>> who never causes any trouble.
-  <br><br>
+	<<if $delinquency gte 400>>
+		<<npc Doren>><<person1>>In a bid to keep the classroom ruckus down, Doren has the less controllable students separated, which includes you <<if $kylarenglishstate is "active">>and Kylar<</if>>. <<He>><<endevent>> seats you next to a quiet <<generates1>><<person1>><<person>> who never causes any trouble.
+		<br><br>
 
-  After a few minutes the <<persons>> pen rolls on the floor. <<He>> reaches down to pick it up, rests a hand on your thigh and leans in close. "No one will believe you." <<His>> hand travels up your thigh.
+		After a few minutes the <<persons>> pen rolls on the floor. <<He>> reaches down to pick it up, rests a hand on your thigh and leans in close. "No one will believe you." <<His>> hand travels up your thigh.
 
-	<<if $kylarenglishstate is "active">>
-	Until Kylar grabs <<his>> wrist and tugs <<him>> closer.
-	<br><br>
-	<<endevent>>
-	<<npc Kylar>><<person1>>"Mine," Kylar whispers. <<He>> flashes the knife in <<his>> pocket. There are no arguments.
-	<br><br>
+		<<if $kylarenglishstate is "active">>
+			Until Kylar grabs <<his>> wrist and tugs <<him>> closer.
+			<br><br>
+			<<endevent>>
+			<<npc Kylar>><<person1>>"Mine," Kylar whispers. <<He>> flashes the knife in <<his>> pocket. There are no arguments.
+			<br><br>
 
-	<<endevent>>
+			<<endevent>>
 
-	<<link [[Next|English Lesson]]>><</link>>
+			<<link [[Next|English Lesson]]>><</link>>
 
-	<<else>>
-	<<He>> sits back down, but continues to molest you.
-	<br><br>
+		<<else>>
+			<<He>> sits back down, but continues to molest you.
+			<br><br>
 
-	<<link [[Call for help|English Event2]]>><<detention 1>><</link>><<gdelinquency>>
-	<br>
-	<<link [[Endure it|English Event2 Molest]]>><<stress 4>><<trauma 4>><</link>><<gstress>><<gtrauma>>
-	<br>
-	<</if>>
-  <<elseif $kylarenglishstate is "active">>
-  Some delinquents take an interest in you. One tries to grope, but is cowed by a look from Kylar.
-  <br><br>
+			<<link [[Call for help|English Event2]]>><<detention 1>><</link>><<gdelinquency>>
+			<br>
+			<<link [[Endure it|English Event2 Molest]]>><<stress 4>><<trauma 4>><</link>><<gstress>><<gtrauma>>
+			<br>
+		<</if>>
+	<<elseif $kylarenglishstate is "active">>
+		Some delinquents take an interest in you. One tries to grope, but is cowed by a look from Kylar.
+		<br><br>
 
-  <<link [[Next|English Lesson]]>><</link>>
-  <br>
-  <<else>>
-  Some delinquents take an interest in you, and sneak gropes and fondles while the teacher isn't looking.
-  <<gtrauma>><<gstress>><<trauma 2>><<stress 2>>
-  <br><br>
+		<<link [[Next|English Lesson]]>><</link>>
+		<br>
+	<<else>>
+		Some delinquents take an interest in you, and sneak gropes and fondles while the teacher isn't looking.
+		<<gtrauma>><<gstress>><<trauma 2>><<stress 2>>
+		<br><br>
 
-  <<link [[Next|English Lesson]]>><</link>>
-  <</if>>
+		<<link [[Next|English Lesson]]>><</link>>
+	<</if>>
 <<elseif $rng gte 21>>
-Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the front of the classroom, a foot protrudes into your path and trips you up.
-  <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
-	<<if $worn.under_lower.name is "naked" or $worn.under_lower.anus_exposed is 1>>
-	Your skirt flares up as you fall to your knees, revealing your bare butt to the whole class. You struggle to your feet, face turning red, as the class whistles and jeers.
-	<<stress 3>><<trauma 3>><<gstress>><<gtrauma>>
-	<br><br>
+	Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the front of the classroom, a foot protrudes into your path and trips you up.
+	<<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>
+		<<if $worn.under_lower.name is "naked" or $worn.under_lower.anus_exposed is 1>>
+			Your skirt flares up as you fall to your knees, revealing your bare butt to the whole class. You struggle to your feet, face turning red, as the class whistles and jeers.
+			<<stress 3>><<trauma 3>><<gstress>><<gtrauma>>
+			<br><br>
+		<<else>>
+			Your skirt flares up as you fall to your knees, revealing your $worn.under_lower.name to the whole class. You struggle to your feet, face turning red, as the class whistles and jeers.
+			<<stress 1>><<trauma 1>><<gstress>><<gtrauma>>
+			<br><br>
+		<</if>>
 	<<else>>
-	Your skirt flares up as you fall to your knees, revealing your $worn.under_lower.name to the whole class. You struggle to your feet, face turning red, as the class whistles and jeers.
-	<<stress 1>><<trauma 1>><<gstress>><<gtrauma>>
-	<br><br>
+		You fall forward onto your knees, and the class laughs as you struggle back to your feet.<<stress 1>><<gstress>>
+		<br><br>
 	<</if>>
-  <<else>>
-  You fall forward onto your knees, and the class laughs as you struggle back to your feet.<<stress 1>><<gstress>>
-  <br><br>
-  <</if>>
-<<link [[Next|English Lesson]]>><</link>>
+	<<link [[Next|English Lesson]]>><</link>>
 <<else>>
-<<generates1>><<person1>>A breeze blows through the classroom, rustling hair and lifting a <<person1>><<persons>> paper off <<his>> desk. It lands on the floor next to you. <<He>> walks over and bends to pick it up, almost sticking <<his>> butt in your face.
-<br><br>
-  <<if $promiscuity gte 15>>
-<<link [[Pinch|English Events Pinch]]>><</link>><<promiscuous2>>
-<br>
-  <</if>>
-<<link [[Avert your eyes|English Lesson]]>><<endevent>><</link>>
-<br>
-<</if>>
+	<<generates1>><<person1>>A breeze blows through the classroom, rustling hair and lifting a <<person1>><<persons>> paper off <<his>> desk. It lands on the floor next to you. <<He>> walks over and bends to pick it up, almost sticking <<his>> butt in your face.
+	<br><br>
+	<<if $promiscuity gte 15>>
+		<<link [[Pinch|English Events Pinch]]>><</link>><<promiscuous2>>
+		<br>
+	<</if>>
+	<<link [[Avert your eyes|English Lesson]]>><<endevent>><</link>>
+	<br>
+	<</if>>
 <</widget>>
 
 <<widget "eventsenglishsafe">>
@@ -1459,7 +1445,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<br><br>
 
 	Chair legs scrape across the ground. Kylar shuffles through the room, books clutched to <<his>> chest and eyes fixed on the empty seat beside you. <<He>> almost makes it. A <<generatey2>><<person2>><<person>> shoves <<person1>><<him>> aside and takes the seat for <<person2>><<himself>>. <<He>> doesn't give Kylar a single glance.
-	  <br><br>
+	<br><br>
 
 	Someone screams. <<person1>>Kylar remains stood, a <span class="red">knife</span> in <<his>> hand. <<He>> glares at the <<person2>><<person>> through <<person1>><<his>> dark fringe. The <<person2>><<person>> scrambles backwards over the desk, knocking it over and tumbling to the ground. The other students fall over each other trying to reach the door.
 	<br><br>
@@ -1492,7 +1478,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<br><br>
 
 	<<link [[Sit somewhere else|English Kylar Move]]>><<npcincr Kylar love -5>><</link>><<lllove>>
-  <br>
+	<br>
 	<<link [[Stay seated|English Lesson]]>><<endevent>><<npcincr Kylar love 1>><<npcincr Kylar rage -1>><</link>><<glove>><<lksuspicion>>
 	<br>
 
@@ -1620,9 +1606,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		<br><br>
 	<</if>>
 
-	The <<person>> returns to <<his>> friends.
-
-	"I wonder who took it," one says aloud. <<person1>>"Doesn't <<he>> seem so innocent?"
+	The <<person>> returns to <<his>> friends. "I wonder who took it," one says aloud. <<person1>>"Doesn't <<he>> seem so innocent?"
 	<br>
 	<<if $robinromance is 1>>
 		One of them whispers and points at you.
@@ -1667,21 +1651,16 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<<link [[Next|History Lesson]]>><<endevent>><</link>>
 	<br>
 <<elseif $rng gte 35 and $robinhistory is "seat">>
-	<<npc Robin>><<person1>>
+	<<npc Robin 1>>
+	<<npc Winter 2>><<person2>>
 	Winter asks Robin to come to the front of the class. "I have some historical garments I need modelled. They're in your size."
 	<br><br>
 
 	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 20>>
-		Robin stares at the window, forcing Winter to repeat <<himself>>. Robin shuffles from <<his>> seat and disappears behind the screen.
+		Robin stares at the window, forcing Winter to repeat <<himself>>. Robin shuffles from <<person1>><<his>> seat and disappears behind the screen.
 		<br><br>
 
-		<<He>> reppears a few moments later, wearing a
-		<<if random(1, 2) is 2>>
-			dress.
-		<<else>>
-			soldier's uniform.
-		<</if>>
-		<<He>> stares at the carpet, and doesn't say a word.
+		<<He>> reppears a few moments later, wearing a <<print either("dress", "soldier's uniform")>>. <<He>> stares at the carpet, and doesn't say a word.
 		<br><br>
 
 		Winter begins discussing the outfit, but Robin's demeanor makes the class uncomfortable. You included. Winter cuts the demonstration short.
@@ -1700,7 +1679,8 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		Robin nods, and walks behind the screen at the corner of the classroom.
 
 		<<if random(1, 2) is 2>>
-			<<He>> reappears wearing a <<nnpc_gendery "Robin">>'s traditional outfit, and a genuine smile. The segment proves to be interesting. Winter asks Robin to perform a small show to demonstrate the outfit's historical significance, acting appropriately per <<his>> attire.
+			<<person1>><<He>> reappears wearing a <<nnpc_gendery "Robin">>'s traditional outfit, and a genuine smile. The segment proves to be interesting.
+			Winter asks Robin to perform a small show to demonstrate the outfit's historical significance, acting appropriately per <<his>> attire.
 			<br><br>
 
 			Robin changes back, and sits beside you, still smiling.
@@ -1711,12 +1691,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		<<else>>
 			Winter asks Robin to hurry up. Robin's head peeks around the screen for a moment.
 			<br><br>
-			"I-I don't know if I can wear this," <<he>> replies. "It's for
-			<<if $pronoun is "m">>
-				girls."
-			<<else>>
-				boys."
-			<</if>>
+			"I-I don't know if I can wear this," <<person1>><<he>> replies. "It's for <<print ($pronoun is "m" ? "girls" : "boys")>>."
 			<br><br>
 
 			"Don't be bashful," Winter says. "We have a lot to cover."
@@ -1730,7 +1705,9 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 			<</if>>
 			<br><br>
 
-			The segment proves interesting, though Robin is uncomfortable. Winter asks <<him>> to perform a small show to demonstrate the outfit's historical significance, acting appropriately per <<his>> attire. Robin plays along, but is careful not to let the skimpy garment reveal too much.
+			The segment proves interesting, though Robin is uncomfortable.
+			Winter asks <<him>> to perform a small show to demonstrate the outfit's historical significance, acting appropriately per <<his>> attire.
+			Robin plays along, but is careful not to let the skimpy garment reveal too much.
 			<br><br>
 
 			Robin changes back, and sits beside you, looking relieved.
@@ -1741,11 +1718,14 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		<</if>>
 	<</if>>
 <<elseif $rng gte 27>>
-	<<npc Winter>><<person1>>Winter asks you to come to the front of the class. "I have some historical garments I need modelled, they're in your size." <<He>> gestures to the screen at the corner of the room.
+	<<npc Winter>><<person1>>Winter asks you to come to the front of the class. "I have some historical garments I need modelled, they're in your size."
+	<<He>> gestures to the screen at the corner of the room.
 	<br><br>
 
 	<<if $delinquency gte 400>>
-		Behind the screen you find a revealing traditional outfit. You hold it up for a closer look. It won't leave much to the imagination; there's barely enough fabric to conceal your <<breasts>> and crotch. It looks like it'll barely fit you, and the fabric is so taut you'll need to undress before putting it on.
+		Behind the screen you find a revealing traditional outfit. You hold it up for a closer look.
+		It won't leave much to the imagination; there's barely enough fabric to conceal your <<breasts>> and crotch.
+		It looks like it'll barely fit you, and the fabric is so taut you'll need to undress before putting it on.
 		<br><br>
 
 		<<link [[Put it on|History Events Revealing Dress]]>><<stress 6>><<trauma 6>><</link>><<gstress>><<gtrauma>>
@@ -1756,7 +1736,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<<elseif $delinquency gte 200>>
 		<<if $player.gender_appearance is "m">>
 			Behind the screen you find a traditional girl's outfit.
-			<<if $player.gender is "f" or $player.gender is "h">>
+			<<if $player.gender isnot "m">>
 				The class thinks you're a boy, so if you wear this in front of them, they'll think you're crossdressing.
 			<</if>>
 			It looks like it'll barely fit you, and the fabric is taut so you'll need to undress before putting it on.
@@ -1768,7 +1748,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 			<br>
 		<<elseif $player.gender_appearance is "f">>
 			Behind the screen you find a traditional boy's outfit.
-			<<if $player.gender is "m" or $player.gender is "h">>
+			<<if $player.gender isnot "f">>
 				The class thinks you're a girl, so if you wear this in front of them, they'll think you're crossdressing.
 			<</if>>
 			It looks like it'll barely fit you, and the fabric is taut so you'll need to undress before putting it on.
@@ -1781,9 +1761,9 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		<</if>>
 	<<else>>
 		Behind the screen you find
-		<<if $history gte 500>>
+		<<if currentSkillValue('history') gte 500>>
 			<<print either("a 19th century American merchant's outfit","a 17th century Caribbean privateer outfit","some late Victorian merchant's garb","a replica WWI officer's uniform")>>.
-		<<elseif $history gte 300>>
+		<<elseif currentSkillValue('history') gte 300>>
 			<<print either("a bright, old-fashion outfit","a Pirate costume","clothes like people wear in old photos","a soldier costume")>>.
 		<<else>>
 			some <<print either("old outfit","traditional outfit","old-style clothes")>>.
@@ -1851,7 +1831,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 
 	Rather than placing your book on your desk, <<he>> drops it on the floor beside you. "Oops, how clumsy of me. You'd better pick it up before the teacher gets back." The rest of the class turns to watch.
 	<br><br>
-	<<if $skulduggery gte 100>><<set $skulduggerydifficulty to 400>>
+	<<if currentSkillValue('skulduggery') gte 100>><<set $skulduggerydifficulty to 400>>
 		<<link [[Trick them|History Events Trick]]>><</link>><<skulduggerydifficulty>>
 		<br>
 	<</if>>
@@ -1863,7 +1843,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 <<else>>
 	<<npc Winter>><<person1>>Winter gives the class a thin smile as <<he>> unveils the pillory in the corner of the room. "We're fortunate to have such a rare antique! I'll need somebody to help me demonstrate its use." <<He>> looks around the room. "Any volunteers?"
 	<br><br>
-	<<if $history gte 800>>
+	<<if currentSkillValue('history') gte 800>>
 		No one volunteers, of course. Winter looks at you. "To the front of the class, please."
 		<br><br>
 		<<link [[Refuse|History Lesson]]>><<detention 1>><<endevent>><</link>><<gdelinquency>>
@@ -1871,7 +1851,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		<<link [[Go to the front of the class|History Lesson Pillory]]>><<historyskill>><<stress 2>><</link>><<ghistory>><<gstress>>
 		<br>
 
-	<<elseif $history gte 600>>
+	<<elseif currentSkillValue('history') gte 600>>
 		No one volunteers, of course. Winter looks at you. "To the front of the class, please."
 		<br><br>
 		<<link [[Refuse|History Lesson]]>><<endevent>><<detention 1>><</link>><<gdelinquency>>
@@ -1905,10 +1885,10 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 <<elseif $rng gte 71>>
 	<<generates1>><<person1>><<set _coinflip to random(0,1)>>
 	Winter calls a <<person>> to the front of the class and asks <<him>> to model some historical clothes.
-	<<if $history gte 700>>
+	<<if currentSkillValue('history') gte 700>>
 		The clothes look like <<print either("early-medieval servant's garb,", "Tudor-era court clothes for a noble family, possibly the St. Clairs,", "those worn by a medieval 'runner' or courier,", "a pre-industrial Naval uniform,", "stable-boy garb,")>> unless you are mistaken.
 		<<if $rng % 2>>However, judging by the <<print either("stitching,","colouring","hems","cut","'Made in Indonesia' label")>> these are only replicas.<<else>>As far as you can tell, these are genuine historical garments.<</if>>
-	<<elseif $history gte 300>>
+	<<elseif currentSkillValue('history') gte 300>>
 		They look like the stuff from <<print either("those plays you do in English where people say 'Hark!'","that TV show about posh old people in a huge house.","that TV show with all the beards and axes.","those old War photos.","those Roman things where everyone wears sheets.")>>
 		Winter gets unusually excited discussing the context of the clothes.
 	<<else>>
@@ -1944,7 +1924,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<br>
 <<elseif $rng gte 61>>
 	Winter asks the class a question.
-	<<if $history gte 400>>
+	<<if currentSkillValue('history') gte 400>>
 		You think you know the answer.
 		<br><br>
 		<<link [[Raise your hand|History Lesson Answer]]>><<stress 2>><<historyskill>><</link>><<ghistory>><<gstress>>
@@ -2052,7 +2032,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 <<elseif $rng gte 81>>
 
 	<<generates1>><<generates2>>A fight breaks out on the other side of the pool.
-	As Mason swims over to break it up, a <<person1>><<person>> and <<person2>><<person>> swim up to you, and trap you between them.
+	As Mason swims over to break it up, a <<fullGroup>> swim up to you, and trap you between them.
 	The <<person>> starts fondling your butt from behind while the <<person1>><<person>> speaks.
 	"You look lonely, <<bitch>>. Don't worry, we're here to keep you company."
 	<br><br>
@@ -2111,14 +2091,14 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 
 <<elseif $rng gte 61 and $worn.lower.type.includes("naked") and !_underOutfit>>
 	<<set $rng to random(1, 100)>>
-	<<npc Mason>><<person1>>Mason points at you. "Climb out, I want to see your diving technique." 
+	<<npc Mason>><<person1>>Mason points at you. "Climb out, I want to see your diving technique."
 	<<if pregnancyBellyVisible()>>
 		Face flushing, you remind <<him>> that you're <<if $exposed gte 1>>naked and <</if>>pregnant.
 		<<He>> looks to your belly, embarrassed. "Oh, my mistake..." <<He>> pauses briefly, "Wouldn't want to hurt the baby."
 		<br><br>
 		<<link [[Next|Swimming Lesson]]>><<endevent>><</link>>
 	<<elseif $exposed gte 1>>
-		Face flushing, you remind <<him>> that you're naked beneath the water. <<He>> looks away, embarrassed. 
+		Face flushing, you remind <<him>> that you're naked beneath the water. <<He>> looks away, embarrassed.
 		"You still need to dive," <<he>> says. "I'll try to distract the other students."
 		<br><br>
 
@@ -2154,7 +2134,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		You come back up to the surface. Mason gives you a thumbs up, then directs <<his>> attention elsewhere.
 		You feel like something is amiss, and then you realise, your <<undies>> <<underlowerplural>> gone!
 		<br><br>
-		
+
 		<<set $rng to random(1, 100)>>
 		<<if $school gte 1600 or $rng lt 80>>
 			Seeing your clothes floating several feet away, you quickly swim over and cover up. You glance around the pool, you don't think anybody noticed.
@@ -2164,7 +2144,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 			<<link [[Next|Swimming Lesson]]>><<endevent>><</link>>
 			<br>
 		<<else>>
-			
+
 			<<endevent>><<generates1>><<person1>><<underlowerstrip>>
 			You look around and see your clothes floating in the water. You swim towards them, but a <<person>> beats you to it.
 			<<He>> holds them out of your reach and smiles at you. "Stripping in public? Who'd have known a nerd like you would be so perverted."
@@ -2189,7 +2169,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 
 <<elseif $rng gte 21>>
 	<<generates1>><<generates2>><<generates3>>
-	A <<person1>><<person>>, <<person2>><<person>>, and <<person3>><<person>> start picking on you, following and touching you beneath the water.
+	A <<fullGroup>> start picking on you, following and touching you beneath the water.
 	You could try to swim away from them, but it might make things worse if you fail.
 	<br><br>
 
@@ -2235,18 +2215,18 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 		<<He>> patrols the outskirts of the pool, giving pointers to those who seem to be struggling.
 		<br><br>
 	<<else>>
-		Mason has the class practise diving. 
+		Mason has the class practise diving.
 		<<He>> watches from the outskirts of the pool, giving pointers to those who seem to be struggling.
 		<br><br>
 	<</if>>
 
-	<<if $swimmingskill lte 100>>
+	<<if currentSkillValue('swimmingskill') lte 100>>
 		You're not very good at swimming, and struggle to even stay above the surface of the water.
-	<<elseif $swimmingskill lte 300>>
+	<<elseif currentSkillValue('swimmingskill') lte 300>>
 		You're not a very fast swimmer, and need to take frequent breaks due to the strain on your muscles.
-	<<elseif $swimmingskill lte 500>>
+	<<elseif currentSkillValue('swimmingskill') lte 500>>
 		You're not a bad swimmer, but you've a long way to go.
-	<<elseif $swimmingskill lte 900>>
+	<<elseif currentSkillValue('swimmingskill') lte 900>>
 		You're a pretty good swimmer, among the best in the class.
 	<<else>>
 		You're a very good swimmer, easily the best in the class.
@@ -2262,14 +2242,14 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	You step into the pool room. <<covered>>
 	<br><br>
 <<else>>
-	<<npc Mason>><<generatey2>><<generatey3>>You take a deep breath, and walk into the pool room with your <<lewdness>> on display. 
-	A <<person2>><<person>> sees you first. <<He>> clutches <<his>> hands to <<his>> face and squeals. 
+	<<npc Mason>><<generatey2>><<generatey3>>You take a deep breath, and walk into the pool room with your <<lewdness>> on display.
+	A <<person2>><<person>> sees you first. <<He>> clutches <<his>> hands to <<his>> face and squeals.
 	The rest of the class follow suit, with varying reactions ranging from glee to embarrassment and amusement to displeasure in the case of the more prudish students.
 	<<if $player.penisExist>>
 		<<if $player.penissize is 4>>
 			<<if $malechance lt 100>>
 				The girls' eyes seem glued to your <<genitals>>, and a few start exchanging excited whispers with each other.
-				A few of the boys are clearly less than gleeful at your naked presence. <<if $malechance gt 0>>Others seem interested.<</if>>	
+				A few of the boys are clearly less than gleeful at your naked presence. <<if $malechance gt 0>>Others seem interested.<</if>>
 			<<else>>
 				The boys stare your <<genitals>>, and a few start exchanging excited whispers with each other.
 			<</if>>
@@ -2445,7 +2425,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 				<<link [[Rent a history textbook (£20)|Book Rental]]>><<set $money -= 2000>><<set $bookRent to "rent">><<set $phase to 4>><<set $studyBooks.rented to "history">><</link>><<if $statdisable is "f">> | <span class="green">+ Passive History</span><</if>>
 				<br>
 			<</if>>
-			<<if $english gte 300 and $studyBooks.stolen isnot "Raul and Janet">>
+			<<if currentSkillValue('english') gte 300 and $studyBooks.stolen isnot "Raul and Janet">>
 				<<link [[Rent "Raul and Janet" (£20)|Book Rental]]>><<set $money -= 2000>><<set $bookRent to "rent">><<set $phase to 5>><<set $studyBooks.rented to "Raul and Janet">><</link>>
 				<br>
 			<</if>>
@@ -2486,7 +2466,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 				<<link [[Steal a history textbook|Book Rental]]>><<set $bookRent to "steal">><<set $studyBooks.stolen to "history">><</link>><<crime>><<if $statdisable is "f">> | <span class="green">+ Passive History</span><</if>>
 				<br>
 			<</if>>
-			<<if $english gte 300 and $studyBooks.rented isnot "Raul and Janet">>
+			<<if currentSkillValue('english') gte 300 and $studyBooks.rented isnot "Raul and Janet">>
 				<<link [[Steal "Raul and Janet"|Book Rental]]>><<set $phase to 5>><<set $bookRent to "steal">><<set $studyBooks.stolen to "Raul and Janet">><</link>><<crime>>
 				<br>
 			<</if>>
@@ -2549,8 +2529,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 <</if>>
 <</widget>>
 
-<!-- "upperruined" doesn't take sets into account, so use "strip" and destroy
-	 the carried towel parts -->
+<!-- "upperruined" doesn't take sets into account, so use "strip" and destroy the carried towel parts -->
 <<widget "droptowel">>
 	<<if _toweldrop is "both">>
 		<<generalStrip "upper">>
@@ -2562,8 +2541,7 @@ Doren asks you to demonstrate your grammar on the whiteboard. As you walk to the
 	<</if>>
 <</widget>>
 
-<!-- Will check if the pc can drop a towel to expose themselves. Returns its
-	 result in "_exlevel" and "_toweldrop".-->
+<!-- Will check if the pc can drop a towel to expose themselves. Returns its result in "_exlevel" and "_toweldrop".-->
 <<widget "checkdroptowel">>
 	<<set _bottom to "nothing">>
 	<<set _top to "nothing">>
diff --git a/game/overworld-town/loc-sea/events.twee b/game/overworld-town/loc-sea/events.twee
index f1552a656f4d11e960a0720f085e770f06b4d109..42dec9a95b9a2e01d902e4f50f6f66c2544bedb7 100644
--- a/game/overworld-town/loc-sea/events.twee
+++ b/game/overworld-town/loc-sea/events.twee
@@ -382,7 +382,6 @@
 <<water>><<effects>>
 You <<nervously>> remove your <<bottoms>>, exposing yourself beneath the water. Once removed, it's easy to untangle it from the seaweed.
 <<exhibitionism1>>
-<br><br>
 <<destinationeventend>>
 
 :: Sea Tangle
@@ -579,7 +578,7 @@ The creature loses interest in you, and returns to the depths. <<tearful>> you s
 <<water>><<effects>>
 <<set $squidcount += 1>>
 You feel a thrill as you let the squid continue its devilish work.<<deviancy1>>
-<br><br>
+
 <<destinationeventend>>
 
 :: Sea Pull
@@ -790,11 +789,11 @@ The <<person1>><<person>> grumbles, but is convinced. They clear a space for you
 <<effects>>
 
 You dance for the three <<if $NPCList[0].pronoun is "f" and $NPCList[1].pronoun is "f" and $NPCList[2].pronoun is "f">>fisherwomen<<else>>fishermen<</if>>.
-<<if $danceskill gte 800>>
+<<if currentSkillValue('danceskill') gte 800>>
 	You're confident in your abilities, and you think you know what they want to see.
-<<elseif $danceskill gte 400>>
+<<elseif currentSkillValue('danceskill') gte 400>>
 	You think you're okay at this, but you hope their standards aren't too high.
-<<elseif $danceskill gte 100>>
+<<elseif currentSkillValue('danceskill') gte 100>>
 	This isn't your first dance by any means, but it's a strange situation and you worry they won't like it.
 <<else>>
 	You don't really know what you're doing, but do your best to be graceful. You hope it's enough.
diff --git a/game/overworld-town/loc-sea/main.twee b/game/overworld-town/loc-sea/main.twee
index 23df644323ff057eb891df7ca7ac7399c2aab603..24c140a20f5c40c257666f4d34d2d272ec5ca2f7 100644
--- a/game/overworld-town/loc-sea/main.twee
+++ b/game/overworld-town/loc-sea/main.twee
@@ -4,7 +4,7 @@
 You are swimming in the sea along the beach.
 <<if $daystate is "day">>
 	<<if $weather is "clear">>
-		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of teenagers are playing volleyball.
+		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of students are playing volleyball.
 	<<elseif $weather is "overcast">>
 		The clouds have driven away most would-be visitors, but there are still people strolling along the water's edge.
 	<<elseif $weather is "rain">>
@@ -14,7 +14,7 @@ You are swimming in the sea along the beach.
 	<</if>>
 <<elseif $daystate is "dawn">>
 	<<if $weather is "clear">>
-		It is a popular destination for joggers, some have dogs with them. A few families are setting up windbreakers. A group of teenagers are playing volleyball.
+		It is a popular destination for joggers, some have dogs with them. A few families are setting up windbreakers. A group of students are playing volleyball.
 	<<elseif $weather is "overcast">>
 		It is a popular destination for joggers, some have dogs with them. Fog blocks your view of the ocean.
 	<<elseif $weather is "rain">>
@@ -24,7 +24,7 @@ You are swimming in the sea along the beach.
 	<</if>>
 <<elseif $daystate is "dusk">>
 	<<if $weather is "clear">>
-		Families are leaving as the sun sets. A group of teenagers are playing volleyball.
+		Families are leaving as the sun sets. A group of students are playing volleyball.
 	<<elseif $weather is "overcast">>
 		It is mostly deserted, but some people are strolling along the water's edge.
 	<<elseif $weather is "rain">>
@@ -34,7 +34,7 @@ You are swimming in the sea along the beach.
 	<</if>>
 <<elseif $daystate is "night">>
 	<<if $weather is "clear">>
-		It appears deserted, save for a group of teenagers who are drinking around a fire.
+		It appears deserted, save for a group of students who are drinking around a fire.
 	<<elseif $weather is "overcast">>
 		It appears deserted.
 	<<elseif $weather is "rain">>
diff --git a/game/overworld-town/loc-sea/widgets.twee b/game/overworld-town/loc-sea/widgets.twee
index 9fd6494ff406595adfba6a8ad08bf8d46b27dc87..8f25a3ec338a2cd315e04e6abceada6ed592b0f6 100644
--- a/game/overworld-town/loc-sea/widgets.twee
+++ b/game/overworld-town/loc-sea/widgets.twee
@@ -207,7 +207,7 @@ You feel something rub against your leg. You look down and see the culprit, an e
 <<generate1>><<generate2>>
 A fishing boat turns towards you, and heads in your direction. The net envelops you, and you are hoisted onto the deck.
 <br><br>
-A <<person1>><<person>> and <<person2>><<person>> smile down at you. "We got ourselves a lively one," says the <<person1>><<person>>.
+A <<fullGroup>> smile down at you. "We got ourselves a lively one," says the <<person1>><<person>>.
 <br><br>
 
 <<link [[Next|Boat Molestation]]>><<set $molestationstart to 1>><</link>>
diff --git a/game/overworld-town/loc-shop/clothing-v2.twee b/game/overworld-town/loc-shop/clothing-v2.twee
index f1013dfb18bf0144b39ed46d568b4e95425b195d..41227b2df64f423db5a2c4922a5d9b8c8f7cef0e 100644
--- a/game/overworld-town/loc-shop/clothing-v2.twee
+++ b/game/overworld-town/loc-shop/clothing-v2.twee
@@ -347,6 +347,16 @@
 									<<updateclotheslist _shopLocation _csslot _outfits>>
 								<</link>>
 							<</capture>>
+							<<set $_count to getOwnedClothingCount(_item.index, $_realSlot)>>
+							<<if $_count isnot 0>>
+								<span class="white">
+									&nbsp;|
+									<<if !_compact>>
+										Owned:
+									<</if>>
+									$_count
+								</span>
+							<</if>>
 							<<if _unlocked>>
 								<span class="gold">&nbsp;| Unlocked</span>
 							<</if>>
@@ -360,7 +370,7 @@
 						</div>
 					<<else>>
 						<!-- Price tag -->
-						<span class="clothing-price"><<printmoney `getClothingCost(_item,$clothingShopSlot)` true>></span>
+						<span class="clothing-price"><<printmoney `getClothingCost(_item, $_realSlot)` true>></span>
 						<!-- Integrity, Reveal and Warmth indicators -->
 						<<if !$shopDefaults.compactMode>>
 							<div class="clothing-integrity">
@@ -446,7 +456,7 @@
 		<<set _temp_choice to clone(setup.clothes[$clothingShopSlot][$clothes_choice])>>
 		<<set _realSlot to ($clothingShopSlot is "all" ? _item.realSlot : $clothingShopSlot)>>
 		<<set _realIndex to _temp_choice.index>>
-		
+
 		<!-- Unlocked text -->
 		<<if $specialClothes[_temp_choice.name.replace(/ /g,"")] is "unlocked">>
 			<<specialClothesHint>>
@@ -474,7 +484,7 @@
 		<br><br>
 		<<shoptraits>>
 		<<set _slimeSlots to ["over_upper","over_lower","upper","lower","under_upper","under_lower"]>>
-		<<if !_slimeSlots.includes($clothingShopSlot) or $willpower gte 800 or _temp_choice.reveal gte 500 or _temp_choice.type.includesAny("school", "event") or $corruption_slime lt 80>>
+		<<if !_slimeSlots.includes($clothingShopSlot) or currentSkillValue('willpower') gte 800 or _temp_choice.reveal gte 500 or _temp_choice.type.includesAny("school", "event") or $corruption_slime lt 80>>
 			<div class="clothing-colours-div">
 				<<set _hiddenMannequin = $images is 1 ? "" : "hidden">>
 				<!-- Item preview -->
@@ -692,7 +702,7 @@
 		</div>
 		<!-- Update text of "Buy and send home" button -->
 		<!-- <<run $(() => { $('#buy-multiple-slider input').on('change', () => { new Wikifier (null, "<<updateclotheslist>>") }); })>> -->
-		<<run $(() => { 
+		<<run $(() => {
 			$('#buy-multiple-slider input').on('input change', () => {
 				let cost = getClothingCost(_temp_choice, $clothingShopSlot);
 				let el = $('#buy-send-home > .buy-button > .buy-button-inner > a');
diff --git a/game/overworld-town/loc-shop/cosmetics.twee b/game/overworld-town/loc-shop/cosmetics.twee
index 382742d1940fc33e3c632aaa95af377cda7cc687..3cb6dc002128def116c150d4f2e979035e162611 100644
--- a/game/overworld-town/loc-shop/cosmetics.twee
+++ b/game/overworld-town/loc-shop/cosmetics.twee
@@ -22,10 +22,14 @@
 
 You are in the cosmetics store. Several shelvings stand before you, filled with all kinds of colourful tubes, jars and boxes.
 <br><br>
-<<link [[Look at lipsticks|Cosmetics Lipstick]]>><</link>><br>
-<<link [[Look at eye shadows|Cosmetics Eyeshadow]]>><</link>><br>
-<<link [[Look at mascaras|Cosmetics Mascara]]>><</link>><br>
-<<link [[Look at hair dyes|Cosmetics Dyes]]>><</link>><br>
+<<link [[Look at lipsticks|Cosmetics Lipstick]]>><</link>>
+<br>
+<<link [[Look at eye shadows|Cosmetics Eyeshadow]]>><</link>>
+<br>
+<<link [[Look at mascaras|Cosmetics Mascara]]>><</link>>
+<br>
+<<link [[Look at hair dyes|Cosmetics Dyes]]>><</link>>
+<br>
 <<link [[Leave|Shopping Centre Top]]>><</link>>
 
 :: Cosmetics Lipstick
@@ -111,18 +115,23 @@ _textIntro
 		<<set _buy = $daystate == "night" ? "Steal" : "Buy">>
 		<<if _isConsumable == true>>
 			<<set _usesText = _usesPerBuy > 1 ? " ("+_usesPerBuy+" uses)" : "">>
-			<<link [[_buy+_usesText|_passageCurrent]]>><<addConsumableCosmetics _itemType $cosmeticsChoice _usesPerBuy>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>><br>
+			<<link [[_buy+_usesText|_passageCurrent]]>><<addConsumableCosmetics _itemType $cosmeticsChoice _usesPerBuy>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>>
+			<br>
 			<<if _canUseNow == true>>
-				<<link [[_buy+_usesText+" and apply"+(_usesPerBuy > 1 ? " one" : "")+" right now"|_passageCurrent]]>><<addConsumableCosmetics _itemType $cosmeticsChoice _usesPerBuy-1>><<set $makeup[_itemType] = $cosmeticsChoice>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>><br>
+				<<link [[_buy+_usesText+" and apply"+(_usesPerBuy > 1 ? " one" : "")+" right now"|_passageCurrent]]>><<addConsumableCosmetics _itemType $cosmeticsChoice _usesPerBuy-1>><<set $makeup[_itemType] = $cosmeticsChoice>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>>
+				<br>
 			<</if>>
 		<<else>>
-			<<link [[_buy+" and send home"|_passageCurrent]]>><<set $makeup.owned[_itemType].push($cosmeticsChoice)>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>><br>
+			<<link [[_buy+" and send home"|_passageCurrent]]>><<set $makeup.owned[_itemType].push($cosmeticsChoice)>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>>
+			<br>
 			<<if _canUseNow == true>>
-				<<link [[_buy+" and use right now"|_passageCurrent]]>><<set $makeup.owned[_itemType].push($cosmeticsChoice)>><<set $makeup[_itemType] = $cosmeticsChoice>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>><br>
+				<<link [[_buy+" and use right now"|_passageCurrent]]>><<set $makeup.owned[_itemType].push($cosmeticsChoice)>><<set $makeup[_itemType] = $cosmeticsChoice>><<if $daystate is "night">><<crimeup _price/100>><<else>><<set $money -= _price>><</if>><</link>><<if $daystate is "night">><<crime>><</if>>
+				<br>
 			<</if>>
 		<</if>>
 	<<else>>
-		<span class="purple">You can't afford the purchase.</span><br><br>
+		<span class="purple">You can't afford the purchase.</span>
+		<br><br>
 	<</if>>
 <</if>>
 <<link [[Go back|Cosmetics Store]]>><<unset $cosmeticsChoice>><</link>>
diff --git a/game/overworld-town/loc-shop/furniture.twee b/game/overworld-town/loc-shop/furniture.twee
new file mode 100644
index 0000000000000000000000000000000000000000..18725f6d2be2771b1632409a2d8d0be8baad2954
--- /dev/null
+++ b/game/overworld-town/loc-shop/furniture.twee
@@ -0,0 +1,309 @@
+:: Furniture Shop
+<<set $outside to 0>><<set $location to "shopping_centre">><<effects>>
+
+/* TODO: Turn this shop into an actual megastore where you can get lost and encounter tentacles. Tentakea?*/
+
+You are in the furniture shop. Most of its stock is too large for your room.
+<br><br>
+
+<<if $daystate is "night">>
+	You are alone in the darkness.
+	<br><br>
+<<elseif $exposed gte 1>>
+	You hide in a cupboard to protect your dignity.
+	<br><br>
+<</if>>
+
+<<if $stress gte $stressmax>>
+	<<passoutshop>>
+<<else>>
+	<<if $hour is 21>>
+		It's closing time. Security is herding everyone outside.
+		<<if $exposed gte 1>>
+			Panic swells within you as you realise how embarassed you'll be should security find you exposed like this.
+		<</if>>
+		<br><br>
+		<<if $exposed lte 0>>
+			<<link [[Go outside|High Street]]>><</link>>
+			<br>
+		<<else>>
+			<<link [[Hide until it's over (1:00)|Furniture Shop]]>><<pass 1 hour>><</link>>
+		<</if>>
+	<<else>>
+		<<if $daystate is "night" and $hour isnot 21 and $furnitureshoptheft isnot 1>>
+			<<link [[Examine the cash register|Furniture Shop Register]]>><</link>>
+			<br>
+		<</if>>
+		<<if $exposed lte 0 and $daystate isnot "night" and $hour isnot 21>>
+			<<link [[Catalogue|Furniture Shop Catalogue]]>><</link>>
+			<br>
+		<</if>>
+		<<if ($exposed lte 0 and $daystate isnot "night" and $hour isnot 21) or ($hour gte 21 and $furnitureshoptheft isnot 1)>>
+			<br>
+			Wallpaper and posters are stacked in a corner.
+			<br>
+			<<link [[Paperhangings|Furniture Shop Papers]]>><</link>>
+			<br>
+		<</if>>
+		<<link [[Leave|Shopping Centre]]>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Furniture Shop Papers
+
+<<run Furniture.in('bedroom')>>
+You approach the paperhangings corner. Samples of pre-made posters and wallpaper are on display. For an additional fee, you can have a custom design imprinted instead.
+<br><br>
+
+<<set _availablePosters to {
+	"Cowgirl"	: "cowgirl",
+	"Cat"		: "cat",
+	"Puppy"		: "puppy"
+}>>
+
+<<set _posterCost to Furniture.get('poster', true).cost()>>
+<<if $daystate is "night" and $hour isnot 21 and $furnitureshoptheft isnot 1>>
+	<<listbox "_chosenPoster" autoselect>>
+		<<optionsfrom _availablePosters>>
+	<</listbox>>
+	<<link [[Steal|Furniture Shop Papers]]>>
+		<<run Furniture.set('poster', 'poster', {
+			name	: _chosenPoster,
+			nameCap	: _chosenPoster.toUpperFirst()
+		})>>
+		<<crimeup 5>>
+	<</link>><<gcrime>>
+	<br>
+<<elseif $daystate is "night">>
+	<span class="purple">You've already stolen from the store.</span> You should wait before taking anything else.
+	<br>
+<<elseif $money gte _posterCost>>
+	Select a pre-made poster:
+	<br>
+	<<listbox "_chosenPoster" autoselect>>
+		<<optionsfrom _availablePosters>>
+	<</listbox>>
+	<<link [['Buy (£' + _posterCost / 100 + ')'|Furniture Shop Papers]]>>
+		<<set $money -= _posterCost>>
+		<<run Furniture.set('poster', 'poster', {
+			name	: _chosenPoster,
+			nameCap	: _chosenPoster.toUpperFirst()
+		})>>
+	<</link>>
+	<br><br>
+	<<if $money gte _posterCost * 2>>
+		Request a custom poster design:
+		<br>
+		<<textbox "_chosenPosterCustom" "">>
+		<<link [['Buy (£' + _posterCost / 50 + ')'|Furniture Shop Papers]]>>
+			<<set $money -= _posterCost * 2>>
+			<<set _normalisedName to _chosenPosterCustom.toLowerCase()>>
+			<<run Furniture.set('poster', 'poster', {
+				name	: _normalisedName,
+				nameCap	: _normalisedName.toUpperFirst()
+			})>>
+		<</link>>
+		<br>
+	<</if>>
+
+	<br>
+<<else>>
+	You can't afford a poster.
+	<br>
+<</if>>
+<br><br>
+
+<<set _availableWallpapers to {
+	"Vines"			: "vines",
+	"Tentacles"		: "tentacles",
+	"Plainwhite"	: "plainwhite",
+	"Wavywhite"		: "wavywhite",
+	"Cowgirls"		: "cowgirls",
+	"Hearts"		: "hearts",
+	"Trees"			: "trees",
+	"Crosses"		: "crosses"
+}>>
+
+<<set _wallpaperCost to Furniture.get('wallpaper', true).cost()>>
+<<if $daystate is "night" and $hour isnot 21 and $furnitureshoptheft isnot 1>>
+	<<listbox "_chosenWallpaper" autoselect>>
+		<<optionsfrom _availableWallpapers>>
+	<</listbox>>
+	<br>
+	<<link [[Steal|Furniture Shop Papers]]>>
+		<<run Furniture.set('wallpaper', 'wallpaper', {
+			name	: _chosenWallpaper,
+			nameCap	: _chosenWallpaper.toUpperFirst()
+		})>>
+		<<crimeup 5>>
+	<</link>><<gcrime>>
+	<br>
+<<elseif $money gte _wallpaperCost>>
+	Select a pre-made wallpaper:
+	<br>
+	<<listbox "_chosenWallpaper" autoselect>>
+		<<optionsfrom _availableWallpapers>>
+	<</listbox>>
+	<<link [['Buy (£' + _wallpaperCost / 100 + ')'|Furniture Shop Papers]]>>
+		<<set $money -= _wallpaperCost>>
+		<<run Furniture.set('wallpaper', 'wallpaper', {
+			name	: _chosenWallpaper,
+			nameCap	: _chosenWallpaper.toUpperFirst()
+		})>>
+	<</link>>
+	<br>
+	<br>
+	<<if $money gte _wallpaperCost * 2>>
+		Request a custom wallpaper design:
+		<br>
+		<<textbox "_chosenWallpaperCustom" "">>
+		<<link [['Buy (£' + _wallpaperCost / 50 + ')'|Furniture Shop Papers]]>>
+			<<set $money -= _wallpaperCost * 2>>
+			<<set _normalisedName to _chosenWallpaperCustom.toLowerCase()>>
+			<<run Furniture.set('wallpaper', 'wallpaper', {
+				name	: _normalisedName,
+				nameCap	: _normalisedName.toUpperFirst()
+			})>>
+		<</link>>
+		<br>
+		<br>
+	<</if>>
+	<br>
+<<else>>
+	You can't afford new wallpaper.
+	<br>
+	<br>
+<</if>>
+
+<<link [[Back|Furniture Shop]]>><</link>>
+<br>
+
+:: Furniture Shop Catalogue [exitCheckBypass]
+<<effects>>
+
+<<set $chosenFurnitureCategory to $chosenFurnitureCategory || "bed">>
+<<dynamic "furnitureUpdate" "furniture-update-container">>
+<br><br>
+<<link [[Back|Furniture Shop]]>>
+	<<run delete $chosenFurnitureCategory>>
+<</link>>
+<br><br>
+<<furnitureCatalogue>>
+<br>
+
+:: Widgets Furniture [widget]
+
+<<widget "furnitureUpdate">>
+	<<if $boughtfurniturename isnot undefined>>
+		You buy the $boughtfurniturename. It'll be delivered by the time you get home.
+		<br>
+		<<run delete $boughtfurniturename>>
+	<<else>>
+		You skim through the furniture catalogue. "No Refunds!" is printed along the top.
+	<</if>>
+	<br><br>
+
+	<<switch $chosenFurnitureCategory>>
+		<<case "bed">>
+			You browse the beds. Some are sold as double beds, but they'd barely pass as single for a middle-aged adult.
+		<<case "table">>
+			You browse the tables. They're huge, but some of the corner tables might fit in your room.
+		<<case "chair">>
+			You browse the chairs. A pair could fit in your room, if you find a small enough table.
+		<<case "wardrobe">>
+			You browse the wardrobes. Some are near-identical to your old wardrobe in size.
+		<<case "decoration">>
+			You browse the decorations. You struggle to find anything suitable for your room.
+		<<case "windowsill">>
+			You browse the miscellaneous goods. Odds and ends of dubious utility line the page.
+		<<default>>
+			/* Do nothing */
+	<</switch>>
+<</widget>>
+
+<<widget "furnitureCatalogue">>
+	<hr>
+	__Furniture__
+	<br>
+	<<dynamic "furnitureLinks" "furniture-category-container">>
+	<<dynamic "furnitureList" "furniture-menu-container">>
+<</widget>>
+
+<<widget "furnitureLinks">>
+	<<set _furnitureLinks to [
+		{ id: 'bed', label: 'Bed' },
+		{ id: 'table', label: 'Table' },
+		{ id: 'chair', label: 'Chairs' },
+		{ id: 'wardrobe', label: 'Wardrobe' },
+		{ id: 'decoration', label: 'Decorations' },
+		{ id: 'windowsill', label: 'Miscellaneous' }
+	]>>
+	<<for _i = 0; _i < _furnitureLinks.length; _i++>>
+		<<set _furniLink = _furnitureLinks[_i]>>
+		<a
+			@class="($chosenFurnitureCategory is _furniLink.id ? 'selected' : '')"
+			@id="Dynamic.eventBinder(_furniLink.id)"
+			onclick="(id) => $chosenFurnitureCategory = id"
+		>_furniLink.label</a><<if _i < _furnitureLinks.length - 1>> | <</if>>
+	<</for>>
+<</widget>>
+
+<<widget "furnitureList">>
+	<<set $currentFurnishing to Furniture.get($chosenFurnitureCategory)>>
+	Currently installed in your bedroom:
+	<<if $currentFurnishing>>
+		<<furnitureicon $currentFurnishing.iconFile>>
+		$currentFurnishing.nameCap
+		<a onclick="document.getElementById('furnitureDetails').classList.toggle('hidden')">Extra Info</a>
+		<div id="furnitureDetails" class="hidden">
+			$currentFurnishing.description
+			<br><br>
+			<<if $currentFurnishing.type>>
+				<<if $currentFurnishing.type.includes('comfy')>> Improves sleep quality. <</if>>
+				<<if $currentFurnishing.type.includes('double')>> Has enough space for a proper sleepover. <</if>>
+			<</if>>
+		</div>
+	<<else>>
+		Nothing.
+	<</if>>
+	<br><br>
+
+	<<generateFurnitureShopStock>>
+<</widget>>
+
+<<widget "generateFurnitureShopStock">>
+	<!-- TODO: Cache items beloning to a particular category. -->
+	<<for $_key, $_furnishing range setup.furniture>>
+		<<set $_isInCategory to $_furnishing.category.includes($chosenFurnitureCategory)>>
+		<<set $_isDefault to $_furnishing.type.includes('starter')>>
+		<<set $_isCurrent to !(!$currentFurnishing or $_key isnot $currentFurnishing.id)>>
+		<<set $_isShowing to $_furnishing.hasOwnProperty('showFn') ? $_furnishing.showFn() : true>>
+		<<if $_isInCategory and !$_isDefault and !$_isCurrent and $_isShowing>>
+			<div class="furnitureBlock no-numberify">
+				<<furnitureicon $_furnishing.iconFile>> $_furnishing.nameCap |
+				<<if $_furnishing.type>>
+					<<if $_furnishing.type.includes('comfy')>> Comfortable | <</if>>
+					<<if $_furnishing.type.includes('single')>> Single | <</if>>
+					<<if $_furnishing.type.includes('double')>> Double | <</if>>
+					<<if $_furnishing.type.includes('spacious')>> Spacious | <</if>>
+					<<if $_furnishing.type.includes('organiser')>> Organiser | <</if>>
+				<</if>>
+				<<set $_cost to $_furnishing.cost()>>
+				<<set $_name to $_furnishing.name>>
+				<<if $money gte $_cost>>
+					<<capture $_key $_cost $_name>>
+						<<link [["£" + $_cost/100|Furniture Shop Catalogue]]>>
+							<<set $money -= $_cost>>
+							<<run Furniture.set($_key, $chosenFurnitureCategory)>>
+							<<set $boughtfurniturename to $_name>>
+							<<run Furniture.wardrobeUpdate()>>
+						<</link>>
+					<</capture>>
+				<<else>>
+					<span class="red"><<print "£"+$_cost/100>></span>
+				<</if>>
+			</div>
+		<</if>>
+	<</for>>
+<</widget>>
diff --git a/game/overworld-town/loc-shop/hairDressers.twee b/game/overworld-town/loc-shop/hairDressers.twee
index f00f5176bfb5ea8d6e3dd0303e6b32de7338c382..d8374a3ef3127d4c8eb322293ed5ce6a034e22f4 100644
--- a/game/overworld-town/loc-shop/hairDressers.twee
+++ b/game/overworld-town/loc-shop/hairDressers.twee
@@ -281,7 +281,7 @@ You hand over the money and <<he>> gets to work.
 	<br><br>
 <</if>>
 
-<<if _sydney>>
+<<if _sydneyPresent>>
 	<<if (!_cancel or _currentCost gt 0) and $money gte _currentCost>>
 		<<link [[Continue|Sydney Hairdressers Session]]>>
 			<<set $money -= _currentCost>>
diff --git a/game/overworld-town/loc-shop/main.twee b/game/overworld-town/loc-shop/main.twee
index fffed6988225ab6b5bf0af94898b1b92fdbebcdf..fa61389d8b6b0685e852533f1afe167f0a11a942 100644
--- a/game/overworld-town/loc-shop/main.twee
+++ b/game/overworld-town/loc-shop/main.twee
@@ -500,6 +500,8 @@ Their bodies shudder in unison as they reach orgasm.
 			<br>
 			<<tattooicon>><<link [[Tattoo parlour (0:01)|Tattoo Parlour Lock]]>><<pass 1>><</link>>
 			<br>
+			<<wardrobeicon>><<link [[Furniture Shop (0:01)|Furniture Shop]]>><<pass 1>><</link>>
+			<br>
 			/*<<closedstoreicon>><<link [[Empty shop (0:01)|EmptyStore]]>><<pass 1>><<set $shopFloor to "top">><</link>>
 			<br>*/
 			<br>
@@ -568,6 +570,8 @@ Their bodies shudder in unison as they reach orgasm.
 			<br>
 			<<tattooicon>><<link [[Tattoo parlour (0:01)|Tattoo Parlour]]>><<pass 1>><</link>>
 			<br>
+			<<wardrobeicon>><<link [[Furniture Shop (0:01)|Furniture Shop]]>><<pass 1>><</link>>
+			<br>
 			/*Comment out when a new shop is added in its place, uncomment when required*/
 			/*Used to keep the `Go Upstairs` and High Street` in lines with the top floor*/
 			/*<<closedstoreicon>><<link [[Empty shop (0:01)|EmptyStore]]>><<pass 1>><<set $shopFloor to "bottom">><</link>>
diff --git a/game/overworld-town/loc-shop/petShop.twee b/game/overworld-town/loc-shop/petShop.twee
index 62f490d634dc2451eee69692c0474c76cb9da835..97b3299073c1150a5f7e249f41f4d3d85fb4f762 100644
--- a/game/overworld-town/loc-shop/petShop.twee
+++ b/game/overworld-town/loc-shop/petShop.twee
@@ -20,18 +20,18 @@
 <<set _container to $container.home>><<set _pregnancy to $sexStats.anus.pregnancy>>
 You are in the pet shop. <<if $daystate is "night">>Most of the animals are sleeping at the moment<<else>>A handful of the small animals turn to look in your direction<</if>>. They all look cute but you doubt Bailey will let you keep any.
 <br><br>
-<<if $seenPets isnot true and $daystate isnot "night" and $famebestiality gte 200 and $bestialitydisable is "f" and ($monsterchance lt 100 or $monsterhallucinations is "t")>>
+<<if $seenPets isnot true and $daystate isnot "night" and $fame.bestiality gte 200 and $bestialitydisable is "f" and ($monsterchance lt 100 or $monsterhallucinations is "t")>>
 	<<set $seenPets to true>><<generate1>><<person1>>
-	<<if $famebestiality gte 600>>
+	<<if $fame.bestiality gte 600>>
 		A <<person>> confronts you as you walk into the store. <<He>>'s wearing a nametag and the uniform of the place. <<His>> tone is polite, but firm.
 		"Those animals are under my responsibility, and I don't want you to touch them in any way. If you're not here to buy something, please leave." <<stress 12>><<ggstress>>
 		<br><br>
-	<<elseif $famebestiality gte 400>>
+	<<elseif $fame.bestiality gte 400>>
 		One of the workers has taken to following your every step. You can't evade <<his>> wary gaze. <<stress 6>><<gstress>>
 		<br><br>
 	<<else>>
 		The shopkeepers keep a close eye on you every time you get close to the animals. You're not sure why.
-		<br><br>  
+		<br><br>
 	<</if>>
 	<<endevent>>
 <<elseif $seenPets isnot true and $daystate isnot "night">>
diff --git a/game/overworld-town/loc-shop/stolenClothes.twee b/game/overworld-town/loc-shop/stolenClothes.twee
index 9333db3b5e8745a270ff9cd9be6346991d541be2..ba147512e867973327d18590651b9f19b746a53d 100644
--- a/game/overworld-town/loc-shop/stolenClothes.twee
+++ b/game/overworld-town/loc-shop/stolenClothes.twee
@@ -2,7 +2,7 @@
 <<effects>>
 <<ShowUnderEquip "over">>
 <<ShowUnderEquip "normal">>
-<<if $skulduggery lt 100>>
+<<if currentSkillValue('skulduggery') lt 100>>
 	A security guard watches the entrance. There's no other way out, so you put everything back before leaving.
 	<<clothingReset>>
 <<else>>
diff --git a/game/overworld-town/loc-shop/widgets.twee b/game/overworld-town/loc-shop/widgets.twee
index 9d10a76510ad6ee14a32579e46481e8ddc79ba6a..5ce23688a661f0802982c30a7f8ce56d1329c2d9 100644
--- a/game/overworld-town/loc-shop/widgets.twee
+++ b/game/overworld-town/loc-shop/widgets.twee
@@ -118,7 +118,7 @@ Forth argument - item index*/
 	<br><br>
 	<<shoptraits>>
 	<<set _slimeSlots to ["over_upper","over_lower","upper","lower","under_upper","under_lower"]>>
-	<<if !_slimeSlots.includes($clothingShopSlot) or $willpower gte 800 or _temp_choice.reveal gte 500 or _temp_choice.type.includesAny("school", "event") or $corruption_slime lt 80>>
+	<<if !_slimeSlots.includes($clothingShopSlot) or currentSkillValue('willpower') gte 800 or _temp_choice.reveal gte 500 or _temp_choice.type.includesAny("school", "event") or $corruption_slime lt 80>>
 		<<if _temp_choice.colour_options.length gt 1>>
 			<<run _temp_choice.colour_options.pushUnique("random")>>
 			There's a range of colours to choose from:
@@ -674,27 +674,27 @@ Secondary Colour:
 
 <<widget "shopClothingFilterLoadTraits">>
 <<set _clothingTraitTypes to [
-  "cool",
-  "costume",
-  "dance",
-  "dark",
-  "diving",
-  "eerie",
-  "fetish",
-  "formal",
-  "glasses",
-  "heels",
-  "holy",
-  "mask",
-  "normal",
-  "rainproof",
-  "rugged",
-  "school",
-  "serving",
-  "sleep",
-  "stealthy",
-  "swim",
-  "tanLines"
+	"cool",
+	"costume",
+	"dance",
+	"dark",
+	"diving",
+	"eerie",
+	"fetish",
+	"formal",
+	"glasses",
+	"heels",
+	"holy",
+	"mask",
+	"normal",
+	"rainproof",
+	"rugged",
+	"school",
+	"serving",
+	"sleep",
+	"stealthy",
+	"swim",
+	"tanLines"
 ]>>
 
 <<set _clothingTraitTypes to _clothingTraitTypes.sort(shopClothingFilterSortOnDescription)>>
@@ -1033,7 +1033,7 @@ Name: <input id="colorName" type="text" value="Custom" maxlength="30" onfocus="V
 <<if $undergroundbrothelescaped>>
 	<<set $specialClothes["slutshirt"] to "unlocked">>
 <</if>>
-<<if $days gte 47>>
+<<if $yeardays gte 47 and $yeardays lte 90>>
 	<<set $specialClothes["witchdress"] to "unlocked">>
 	<<set $specialClothes["vampirejacket"] to "unlocked">>
 	<<set $specialClothes["witchhat"] to "unlocked">>
@@ -1044,7 +1044,7 @@ Name: <input id="colorName" type="text" value="Custom" maxlength="30" onfocus="V
 	<<set $specialClothes["scarecrowshirt"] to "unlocked">>
 	<<set $specialClothes["scarecrowhat"] to "unlocked">>
 <</if>>
-<<if $days gte 102>>
+<<if $yeardays gte 102 and $yeardays lte 181>>
 	<<set $specialClothes["christmasdress"] to "unlocked">>
 	<<set $specialClothes["christmasshirt"] to "unlocked">>
 	<<set $specialClothes["christmastrousers"] to "unlocked">>
@@ -1052,7 +1052,7 @@ Name: <input id="colorName" type="text" value="Custom" maxlength="30" onfocus="V
 	<<set $specialClothes["christmaslegwarmers"] to "unlocked">>
 	<<set $specialClothes["minisnowman"] to "unlocked">>
 <</if>>
-<<if $days gte 156>>
+<<if $yeardays gte 156 and $yeardays lte 181>>
 	<<set $specialClothes["rose"] to "unlocked">>
 <</if>>
 <<if $brothelshowdata.intro>>
diff --git a/game/overworld-town/loc-spa/main.twee b/game/overworld-town/loc-spa/main.twee
index 7ba098bce0423caef9719188fc35b55100126d20..cf644c1f724c1396057601ab6ba2a7b98d5a8074 100644
--- a/game/overworld-town/loc-spa/main.twee
+++ b/game/overworld-town/loc-spa/main.twee
@@ -625,8 +625,8 @@ You leave the <<person>> to <<his>> mirth, and return to your room, covering you
 <<stealclothes>>
 
 <<covered>> You crouch and peek around the corner. There's no one around. <<tearful>> you creep down the hall. You hear voices up ahead.
-<<generate1>><<generate2>><<person1>>
-Two members of staff, a <<person>> and a <<person2>><<person>>, chat in a staff room.
+<<generate1>><<generate2>>
+Two members of staff, a <<fullGroup>>, chat in a staff room.
 <br><br>
 
 <<if $submissive gte 1150>>
diff --git a/game/overworld-town/loc-spa/widgets.twee b/game/overworld-town/loc-spa/widgets.twee
index 3ef5b6cd7897ec29af12f9d354ed526937b719df..f71ae8b9822e75ab0c64e8dd78ec984f644d01b8 100644
--- a/game/overworld-town/loc-spa/widgets.twee
+++ b/game/overworld-town/loc-spa/widgets.twee
@@ -310,7 +310,7 @@ A <<person>> enters,
 You move your hands back up the <<persons>> back. <<He>> occasionally moans, but is otherwise quiet. Then <<he>> starts to snore.
 <br><br>
 
-<<if $skulduggery gte 100>>
+<<if currentSkillValue('skulduggery') gte 100>>
 	<<if $rng gte 51>>
 		<<set $phase to 0>>
 		You spy a gold <<if $pronoun is "f">>necklace<<else>>chain<</if>> around <<his>> neck.
@@ -329,7 +329,7 @@ You move your hands back up the <<persons>> back. <<He>> occasionally moans, but
 <br>
 <<link [[Take a break|Spa Tired Break]]>><<stress -6>><<tiredness -6>><</link>><<ltiredness>><<lstress>>
 <br>
-<<if $skulduggery gte 100>>
+<<if currentSkillValue('skulduggery') gte 100>>
 	<<set $skulduggerydifficulty to 500>>
 	<<link [[Rob|Spa Tired Steal]]>><</link>><<skulduggerydifficulty>><<crime>>
 <</if>>
diff --git a/game/overworld-town/loc-spa/work.twee b/game/overworld-town/loc-spa/work.twee
index 634e26b0bb0095613d10cd449c007223c5f91163..cd5de2670dedec4414208e3c99f06a4409638cab 100644
--- a/game/overworld-town/loc-spa/work.twee
+++ b/game/overworld-town/loc-spa/work.twee
@@ -1047,7 +1047,7 @@ The <<person>> lies back and shuts <<his>> eyes.
 
 <<link [[Finish your client|Spa Lewd Hand Finish]]>><</link>>
 <br>
-<<link [[Demand more money|Spa Lewd Hand 2]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 600>>
+<<link [[Demand more money|Spa Lewd Hand 2]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 600>>
 <br>
 
 :: Spa Lewd Hand Finish
@@ -1090,7 +1090,7 @@ The <<person>> lies back and shuts <<his>> eyes.
 
 	<<link [[Finish|Spa Lewd Hand Finish]]>><</link>>
 	<br>
-	<<link [[Demand more money|Spa Lewd Hand 3]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 800>>
+	<<link [[Demand more money|Spa Lewd Hand 3]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 800>>
 	<br>
 <<else>>
 	<<if random(1, 10) gte 4>>
@@ -1129,7 +1129,7 @@ The <<person>> lies back and shuts <<his>> eyes.
 
 	<<link [[Finish|Spa Lewd Hand Finish]]>><</link>>
 	<br>
-	<<link [[Demand more money|Spa Lewd Hand 4]]>><</link>><<skill_difficulty handskill "Hand Skill" 1 1100>>
+	<<link [[Demand more money|Spa Lewd Hand 4]]>><</link>><<skill_difficulty "$handskill" "Hand Skill" 1 1100>>
 	<br>
 
 <<else>>
@@ -1232,9 +1232,9 @@ Your hands are occupied. You need to use something else.
 <br><br>
 
 
-<<link [[Use your thighs|Spa Lewd Thigh]]>><<thighskill 5>><</link>><<skill_difficulty thighskill "Thigh Skill" 1 400>><<gthighskill>>
+<<link [[Use your thighs|Spa Lewd Thigh]]>><<thighskill 5>><</link>><<skill_difficulty "$thighskill" "Thigh Skill" 1 400>><<gthighskill>>
 <br>
-<<link [[Use your ass|Spa Lewd Bottom]]>><<bottomskill 5>><</link>><<skill_difficulty bottomskill "Ass Skill" 1 400>><<gbottomskill>>
+<<link [[Use your ass|Spa Lewd Bottom]]>><<bottomskill 5>><</link>><<skill_difficulty "$bottomskill" "Ass Skill" 1 400>><<gbottomskill>>
 <br>
 
 
@@ -1282,7 +1282,7 @@ Your hands are occupied. You need to use something else.
 
 	<<link [[Finish|Spa Lewd Thigh Finish]]>><</link>>
 	<br>
-	<<link [[Demand more money|Spa Lewd Thigh 2]]>><</link>><<skill_difficulty thighskill "Thigh Skill" 300 700>>
+	<<link [[Demand more money|Spa Lewd Thigh 2]]>><</link>><<skill_difficulty "$thighskill" "Thigh Skill" 300 700>>
 	<br>
 
 <<else>>
@@ -1427,7 +1427,7 @@ Your hands are occupied. You need to use something else.
 
 	<<link [[Finish|Spa Lewd Bottom Finish]]>><</link>>
 	<br>
-	<<link [[Demand more money|Spa Lewd Bottom 2]]>><</link>><<skill_difficulty bottomskill "Bottom Skill" 300 700>>
+	<<link [[Demand more money|Spa Lewd Bottom 2]]>><</link>><<skill_difficulty "$bottomskill" "Bottom Skill" 300 700>>
 	<br>
 
 <<else>>
diff --git a/game/overworld-town/loc-street/barb.twee b/game/overworld-town/loc-street/barb.twee
index 776825f74c9a50519f6a6cd75588db2e623bf229..0e1e09662d2b3ece83c1549d3144d6504eb966e5 100644
--- a/game/overworld-town/loc-street/barb.twee
+++ b/game/overworld-town/loc-street/barb.twee
@@ -20,7 +20,7 @@ You are on Barb Street. Silver blocks of flats tower all around you. You can hea
 <<if $police_access_card is 1>>
 	Your <span class="teal">police access card</span> can open a door at the side of the station.
 	<<set $phase to 10>>
-<<elseif $skulduggery gte 600 and (($daystate isnot "night" and $rng lte 25) or ($daystate is "night" and $rng lte 20))>>
+<<elseif currentSkillValue('skulduggery') gte 600 and (($daystate isnot "night" and $rng lte 25) or ($daystate is "night" and $rng lte 20))>>
 	<<set $phase to 10>>
 	<br>
 	<span class="teal">With a thief's eye you see what others miss.</span> You notice a couple of police dragging
diff --git a/game/overworld-town/loc-street/bondage-events.twee b/game/overworld-town/loc-street/bondage-events.twee
index 9a300aaa6aa4d3e15c5824b8e1bf4a002e8995fd..3f6046b5e9be626fbec2c41bbab9a5794b506b8e 100644
--- a/game/overworld-town/loc-street/bondage-events.twee
+++ b/game/overworld-town/loc-street/bondage-events.twee
@@ -499,7 +499,7 @@ The <<beasttype>> whimpers and flees.
 		You hear footsteps approaching. Panicked, you struggle to pull away from the <<beasttype>>. It holds you in place.
 		<br><br>
 
-		"Well what do we have here," a voice says. "A bitch getting bred in the middle of the street."
+		"Well what do we have here," a voice says. "A bitch getting <<bred>> in the middle of the street."
 		<br><br>
 		<<if $worn.face.type.includes("gag")>>
 			You mumble through your gag, trying to ask for help. Not that you're sure that would do any good.
@@ -620,7 +620,7 @@ The <<beasttype>> whimpers and flees.
 	<</if>>
 <<elseif $finish is 1>>
 	<<if $enemyejaculated gte 1>><<famebestiality 1>>
-		The <<beastsplural>> looks satisfied. Their handler laughs. "Good <<bitch>>. Here's a few quid. Enough for a doggy whore."
+		The <<beastsplural>> seem satisfied. Their handler laughs. "Good <<bitch>>. Here's a few quid. Enough for a doggy whore."
 		<br><br>
 		You've gained <span class="gold">£5.</span>
 		<br><br>
@@ -642,16 +642,16 @@ The <<beasttype>> whimpers and flees.
 	<<destinationbondage>>
 <<else>>
 	<<if $rng gte 51 and $daystate isnot "night" or $rng gte 76>>
-        <<set $rescued += 1>>
-        <<silently>><<beastsplural>><<set _beastspluraltext to _text_output>><</silently>>
-        <<endcombat>>
-        "Leave that <<girl>> alone," you hear someone shout. The _beastspluraltext are tugged away from you. You hear them being dragged away.
-        <br><br>
-        /* clearing up ghost dogs for old saves */
-        <<if $per_npc.three_dogs>>
-            <<clearNPC three_dogs>>
-        <</if>>
-        <<generate1>><<person1>>
+		<<set $rescued += 1>>
+		<<silently>><<beastsplural>><<set _beastspluraltext to _text_output>><</silently>>
+		<<endcombat>>
+		"Leave that <<girl>> alone," you hear someone shout. The _beastspluraltext are tugged away from you. You hear them being dragged away.
+		<br><br>
+		/* clearing up ghost dogs for old saves */
+		<<if $per_npc.three_dogs>>
+			<<clearNPC three_dogs>>
+		<</if>>
+		<<generate1>><<person1>>
 
 		Footsteps approach. A hand gropes at your blindfold. "It's okay," the voice says. "I got you."
 		<<blindfoldremove>>
diff --git a/game/overworld-town/loc-street/cliff.twee b/game/overworld-town/loc-street/cliff.twee
index 86b476a25ba09574e48e9cb4a884ef315a6f0738..58d81c428ae7c12d3eb6cd481e941186c391c1e0 100644
--- a/game/overworld-town/loc-street/cliff.twee
+++ b/game/overworld-town/loc-street/cliff.twee
@@ -37,23 +37,38 @@ There's a path leading down to the beach.
 	<</if>>
 <</if>>
 
-<<if ndef $pillory_tenant>><<setup_pillory>><</if>>
-<<if $pillory_tenant.exists is 1>> /* If someone is in pillory... */
-	<<if $days gt $pillory_tenant.endday>>/* If sentence finished before today. */
-		<<setup_pillory>>
-	<<elseif ($days is $pillory_tenant.endday)>>
-		<<if $hour gt $pillory_tenant.endhour>> /* If ended earlier today */
+<<if $robinmissing is "pillory">> <!-- Robin is in pillory, or is scheduled to be -->
+	<<if $hour lt 15>>
+		<<if $robinPillory.known is 1>>
+			Robin will be locked in the pillory today at <<ampm 15 00>>.
+			<br><br>
+		<<else>>
+			The pillory is empty, but a crowd is starting to gather regardless.
+		<</if>>
+	<<else>>
+		You see Robin in the pillory. You are unsure when <<nnpc_he "Robin">> is scheduled for release.
+		<<set $robinPillory.known to 1>> <!-- known means you know that robin is in the pillory -->
+		<br><br>
+	<</if>>
+<<else>>
+	<<if ndef $pillory_tenant>><<setup_pillory>><</if>>
+	<<if $pillory_tenant.exists is 1>> /* If someone is in pillory... */
+		<<if $days gt $pillory_tenant.endday>>/* If sentence finished before today. */
 			<<setup_pillory>>
-		<<elseif $hour is $pillory_tenant.endhour>> /* If ending now? */
-			<<end_npc_pillory>>
-		<<else>> /* Sentence ongoing. */
+		<<elseif ($days is $pillory_tenant.endday)>>
+			<<if $hour gt $pillory_tenant.endhour>> /* If ended earlier today */
+				<<setup_pillory>>
+			<<elseif $hour is $pillory_tenant.endhour>> /* If ending now? */
+				<<end_npc_pillory>>
+			<<else>> /* Sentence ongoing. */
+				<<npc_pillory>>
+			<</if>>
+		<<else>> /* Sentence ongoing to tomorrow. */
 			<<npc_pillory>>
 		<</if>>
-	<<else>> /* Sentence ongoing to tomorrow. */
-		<<npc_pillory>>
+	<<elseif $rng %10 is 0>> /* Pillory empty gives 10% chance of new person */
+		<<new_npc_pillory>>
 	<</if>>
-<<elseif $rng %10 is 0>> /* Pillory empty gives 10% chance of new person */
-	<<new_npc_pillory>>
 <</if>>
 
 <<if $arousal gte $arousalmax>>
@@ -112,7 +127,14 @@ There's a path leading down to the beach.
 			<<mathicon>><<link [[Attend maths competition|Maths Competition]]>><</link>>
 			<br>
 		<</if>>
-		<<if $pillory_tenant.exists is 1 and $exposed lte 0>>
+		<<if $robinmissing is "pillory" and $exposed lte 0>>
+			<<if $hour gte 15 and $hour lte 22>>
+				<<pilloryicon>><<link [[Watch pillory (0:10)|Robin Pillory Watch]]>><<pass 10>><</link>>
+			<<elseif $hour gte 23>>
+				<<pilloryicon>><<link [[Watch pillory (0:10)|Robin Pillory Failure]]>><<pass 10>><</link>>
+			<</if>>
+			<br>
+		<<elseif $pillory_tenant.exists is 1 and $exposed lte 0>>
 			<<pilloryicon>><<link [[Watch pillory (0:10)|Cliff Street Pillory]]>><<pass 10>><</link>>
 			<br>
 		<</if>>
@@ -231,12 +253,12 @@ When the decent people are all in bed - you might dare do lewder things.
 	<<if $rng gte 75>>
 	<<set $pillory_tenant.fruit += 1>>
 		<span class="teal">hitting <<him>> full in the face.</span> <<His>> expression is hilarious.
-		<<if $physique gte ($physiquesize / 7) * 4>>You put a lot of strength behind it, it must have hurt.<</if>>
+		<<if currentSkillValue('physique') gte ($physiquesize / 7) * 4>>You put a lot of strength behind it, it must have hurt.<</if>>
 		<<llstress>><<stress -12>>
 		<br>
 		The crowd cheer and laugh.
 	<<else>>
-		but miss entirely.<<if $physique lte ($physiquesize / 7) * 3>> Some people nearby mock your feeble throw.<</if>>
+		but miss entirely.<<if currentSkillValue('physique') lte ($physiquesize / 7) * 3>> Some people nearby mock your feeble throw.<</if>>
 	<</if>>
 <<elseif $phase is 1>>
 	You slurp up the cream from <<the_pillory_persons>> ass and groin. The crowd watch, awed.
diff --git a/game/overworld-town/loc-street/connudatus.twee b/game/overworld-town/loc-street/connudatus.twee
index 77035ae1cf61a3e926dca9c9cd4618e89e65b280..429c1ed09486efa773745eec241c77b1c4994761 100644
--- a/game/overworld-town/loc-street/connudatus.twee
+++ b/game/overworld-town/loc-street/connudatus.twee
@@ -19,7 +19,7 @@ You are on Connudatus Street. The numerous clubs, bars and restaurants make it t
 <<if $arousal gte $arousalmax>>
 	<<orgasmstreet>>
 <</if>>
-<<if $skulduggery gte 200 and $skulduggeryDintro isnot 1>>
+<<if currentSkillValue('skulduggery') gte 200 and $skulduggeryDintro isnot 1>>
 	<<set $skulduggeryDintro to 1>>
 	Your experience breaking the rules of society lets you look at the street in a new light. So many people with their valuables close at hand, and lightly guarded. <span class="gold">You can now rob people on Connudatus Street.</span>
 	<br><br>
@@ -60,7 +60,7 @@ You are on Connudatus Street. The numerous clubs, bars and restaurants make it t
 	<<link [[Next|Connudatus VIP Rape]]>><<set $molestationstart to 1>><</link>>
 	<br>
 <<elseif $brothel_rivalry is undefined and $NPCName[$NPCNameList.indexOf("Darryl")].love gte 10 and !$possessed>>
-	
+
 	A car screeches to a halt in front of you. A door swings open, <span class="pink">and a strong pair of arms pull you in.</span>
 	<br><br>
 
@@ -68,7 +68,7 @@ You are on Connudatus Street. The numerous clubs, bars and restaurants make it t
 	<br>
 
 
-	
+
 <<else>>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if ($danger gte (9900 - $allure) or $eventforced) and $eventskip is 0>>
@@ -206,7 +206,7 @@ You are on Connudatus Street. The numerous clubs, bars and restaurants make it t
 	<</if>>
 <<elseif $enemyhealth lte 0>>
 
-	The <<person1>><<person>> loses <<his>> footing and tumbles into the street, just as a car approaches. It swerves to avoid the <<him>>, and collides with a street light.
+	The <<person1>><<person>> loses <<his>> footing and tumbles into the street, just as a car approaches. It swerves to avoid <<him>>, and collides with a street light.
 	<br><br>
 
 	The driver emerges, furious, and shouts at the <<person>>. <<tearful>> you seize the opportunity and run to safety.
diff --git a/game/overworld-town/loc-street/domus.twee b/game/overworld-town/loc-street/domus.twee
index aebff6cb31cedd0bbc802c932908e539af380add..f0e3d6ddc258cac5a619b0ccdb352d9c8694afa5 100644
--- a/game/overworld-town/loc-street/domus.twee
+++ b/game/overworld-town/loc-street/domus.twee
@@ -78,7 +78,7 @@ You are on Domus Street. The orphanage is here. The street is dominated by small
 			<br><br>
 			<span class="gold">"We're hosting a grand opening event, today only.</span> We're open until <<ampm 21 00>>. Hope you can make it."
 			<br><br>
-			
+
 			<<He>> crosses the street to hand out a flyer to another pedestrian.
 			<br><br>
 			<<endevent>>
@@ -140,4 +140,4 @@ You are on Domus Street. The orphanage is here. The street is dominated by small
 :: Domus Alley
 <<set $location to "alley">>
 
-<<street2>>
\ No newline at end of file
+<<street2>>
diff --git a/game/overworld-town/loc-street/events.twee b/game/overworld-town/loc-street/events.twee
index 1ff8f68dd21976b25f5acc1385f9591829a5a3f9..3dcf746129909a294d512d9553294d7f8bfa9772 100644
--- a/game/overworld-town/loc-street/events.twee
+++ b/game/overworld-town/loc-street/events.twee
@@ -393,7 +393,7 @@ You hasten your pace to escape the remarks.
 	<<destinationeventend>>
 <<elseif $phase is 3>>
 	<<if $rng lte 30>>
-		You launch into action. The <<person1>><<person>> is holding the <<person3>><<persons>> throat with one hand, while struggling to get <<his>> underwear past <<his>> knees with the other, leaving  <<person1>><<him>> lined up for a running <<if $NPCList[0].penis isnot "none">>punt to the cock.<<else>>cunt-punt.<</if>> <<He>> curls up with a blood-curdling howl.
+		You launch into action. The <<person1>><<person>> is holding the <<person3>><<persons>> throat with one hand, while struggling to get <<his>> underwear past <<his>> knees with the other, leaving <<person1>><<him>> lined up for a running <<if $NPCList[0].penis isnot "none">>punt to the cock.<<else>>cunt-punt.<</if>> <<He>> curls up with a blood-curdling howl.
 		<br><br>
 		The <<person2>><<person>> looks up. The surprise in <<his>> eyes turns to fury. As <<he>> starts to rise, the crazed <<person3>><<person>> attacks from below, kicking <<person2>><<him>> in the groin, and clawing <<his>> face. <<person3>><<He>> struggles free and limps away, leaving the <<person1>><<person>> in the fetal position, gasping.
 		<br><br>
@@ -922,9 +922,9 @@ They close in around you. You don't think they'll take refusal well.
 :: Street Ex Dignity Show
 <<effects>>
 <<if $phase is 1>>
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
-	<<fameexhibitionism 5 pic>>
+	<<fameexhibitionism 5 "pic">>
 <</if>>
 <<if $leftarm is "bound" and $rightarm is "bound">>
 	<<flaunting>> you turn your body, giving the <<person>> and <<his>> friends clear view of your body.
@@ -969,9 +969,9 @@ They spend a few minutes filming you. You try not to make it easy for them, but
 :: Street Ex Dignity Quiet
 <<effects>>
 <<if $phase is 1>>
-	<<fameexhibitionism 10 vid>>
+	<<fameexhibitionism 10 "vid">>
 <<else>>
-	<<fameexhibitionism 5 vid>>
+	<<fameexhibitionism 5 "vid">>
 <</if>>
 
 They spend a few minutes filming you. They don't leave many angles, or any part of your body, unexplored.
@@ -987,9 +987,9 @@ They spend a few minutes filming you. They don't leave many angles, or any part
 
 <<effects>>
 <<if $phase is 1>>
-	<<fameexhibitionism 30 vid>>
+	<<fameexhibitionism 30 "vid">>
 <<else>>
-	<<fameexhibitionism 15 vid>>
+	<<fameexhibitionism 15 "vid">>
 <</if>>
 <<if $leftarm is "bound" and $rightarm is "bound">>
 	You twirl with a flourish,
@@ -1616,7 +1616,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 		you pull the front of your waistband down
 	<</if>>
 	and give the <<person>> a fleeting glimpse of your <<genitals>>.
-	<<if $player.gender_appearance isnot $player.gender>>
+	<<if $player.gender_appearance isnot $player.gender and $NudeGenderDC gt 0>>
 		The <<person>> does a double take, while <<he>> definitely wasn't expecting such a flagrant act of exhibitionism <<he>> also clearly was not expecting you to be a <<if $player.gender is "m">>boy<<elseif $player.gender is "h">>hermaphrodite<<else>>girl<</if>>.
 	<<else>>
 		<<if $daystate is "day">>
@@ -1716,18 +1716,24 @@ Your cries attract the attention of the people passing by the alley's entrance.
 	<</if>>
 	A cool breeze passes over your exposed <<genitals>>.
 	<br><br>
-	<<if $player.gender_appearance is $player.gender>><<He>> stares for a moment, smiling, transfixed.<<else>>"So it's true. They said you were actually a <<if $player.gender is "m">>boy."<<elseif $player.gender is "h">>hermaphrodite."<<else>>girl."<</if>><</if>>
+	<<if $player.gender_appearance is $player.gender>>
+		<<He>> stares for a moment, smiling, transfixed.
+	<<elseif $player.gender is "h" or $NudeGenderDC gt 0>>
+		"So it's true. They said you were actually a <<if $player.gender is "m">>boy."<<elseif $player.gender is "h">>hermaphrodite."<<else>>girl."<</if>>
+	<<else>>
+		<<He>> hums in thought, then smiles. "Not what I had in mind, but it'll do."
+	<</if>>
 	With trembling hands, <<he>> starts snapping pictures of your <<genitals>> from different angles.
 	<<if $player.vaginaExist>>
 		<<if $player.bodyliquid.anus.semen gte 3 and $player.virginity.vaginal is true>>
 			Suddenly <<his>> eyes widen and <<his>> camera snaps wildly.
 			<br>
-			<<if $player.penisExist and pregnancyBellyVisible()>>
+			<<if $player.penisExist and pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Such a shot! Cum bubbling out of your asshole and running down over that perfect virgin pussy," <<he>> looks up at you in awe. "You are a virgin, right? Looks untouched. Unlike your ass..." <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "You got yourself pregnant? While still being a virgin? How is that even possible?"
 				<br><br>
 				<<He>> continues to bombard you with similar questions. "Is it your own child, or someone else's?"
 				<<famepregnancy 1>>
-			<<elseif pregnancyBellyVisible()>>
+			<<elseif pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Such a shot! Cum bubbling out of your asshole and running down over that perfect virgin pussy," <<he>> looks up at you in awe. "You are a virgin, right? Looks untouched. Unlike your ass..." <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "You got pregnant? While still being a virgin? How is that even possible?"
 				<<famepregnancy 1>>
 			<<else>>
@@ -1738,14 +1744,14 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br>
 			"I can't believe I got these. These," <<he>> smiles. "Are pure treasure."
 			<br><br>
-		<<elseif $famerape gte 400 and $player.virginity.vaginal is true>>
+		<<elseif $fame.rape gte 400 and $player.virginity.vaginal is true>>
 			<br>
-			<<if $player.penisExist and pregnancyBellyVisible()>>
+			<<if $player.penisExist and pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Wow. Half the town's watched you scream and squeal," <<he>> gasps. "Yet you managed to keep your legs closed. This pussy looks untouched..." <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "You got yourself pregnant? While still being a virgin? How is that even possible?"
 				<br><br>
 				<<He>> continues to bombard you with similar questions. "Is it your own child, or someone else's?"
 				<<famepregnancy 1>>
-			<<elseif pregnancyBellyVisible()>>
+			<<elseif pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Wow. Half the town's watched you scream and squeal," <<he>> gasps. "Yet you managed to keep your legs closed. This pussy looks untouched..." <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "You got pregnant? While still being a virgin? How is that even possible?"
 				<<famepregnancy 1>>
 			<<else>>
@@ -1758,16 +1764,16 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br><br>
 		<<elseif $player.virginity.vaginal is true>><<He>> stops in shock.
 			<br>
-			<<if $player.penisExist and pregnancyBellyVisible()>>
-				<<if $sexStats.vagina.pregnancy.totalBirthEvents is 0>>"Your hymen looks intact?" <</if>><<he>> gasps. "Lucky me, finding a virgin pussy. <<if $physique gte ($physiquesize / 7) * 4>>Good work..."<<else>>Watch out, girl..."<</if>> <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "You got yourself pregnant? While still being a virgin? How is that even possible?"
+			<<if $player.penisExist and pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
+				<<if $sexStats.vagina.pregnancy.totalBirthEvents is 0>>"Your hymen looks intact?" <</if>><<he>> gasps. "Lucky me, finding a virgin pussy. <<if currentSkillValue('physique') gte ($physiquesize / 7) * 4>>Good work..."<<else>>Watch out, girl..."<</if>> <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "You got yourself pregnant? While still being a virgin? How is that even possible?"
 				<br><br>
 				<<He>> continues to bombard you with similar questions. "Is it your own child, or someone else's?"
 				<<famepregnancy 1>>
-			<<elseif pregnancyBellyVisible()>>
-				<<if $sexStats.vagina.pregnancy.totalBirthEvents is 0>>"Your hymen looks intact?" <</if>><<he>> gasps. "Lucky me, finding a virgin pussy. <<if $physique gte ($physiquesize / 7) * 4>>Good work..."<<else>>Watch out, girl..."<</if>> <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "How did you get yourself pregnant? While still being a virgin? How is that even possible?"
+			<<elseif pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
+				<<if $sexStats.vagina.pregnancy.totalBirthEvents is 0>>"Your hymen looks intact?" <</if>><<he>> gasps. "Lucky me, finding a virgin pussy. <<if currentSkillValue('physique') gte ($physiquesize / 7) * 4>>Good work..."<<else>>Watch out, girl..."<</if>> <<He>> stops and looks at your belly. "Wait," <<he>> pauses. "How did you get yourself pregnant? While still being a virgin? How is that even possible?"
 				<<famepregnancy 1>>
 			<<else>>
-				<<if $sexStats.vagina.pregnancy.totalBirthEvents is 0>>"Your hymen looks intact?" <</if>><<he>> gasps. "Lucky me, finding a virgin pussy. <<if $physique gte ($physiquesize / 7) * 4>>Good work! You look like you can take care of yourself!"<<else>>Watch out, girl. Little thing like you will be lucky to last a week!"<</if>>
+				<<if $sexStats.vagina.pregnancy.totalBirthEvents is 0>>"Your hymen looks intact?" <</if>><<he>> gasps. "Lucky me, finding a virgin pussy. <<if currentSkillValue('physique') gte ($physiquesize / 7) * 4>>Good work! You look like you can take care of yourself!"<<else>>Watch out, girl. Little thing like you will be lucky to last a week!"<</if>>
 			<</if>>
 			<br><br>
 			After a lot of camera snaps, <<he>> stops and browses through the photos on <<his>> phone.
@@ -1777,7 +1783,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 		<<elseif $player.penisExist>>
 			<br>
 			"So what's it like having both of them!?" <<he>> exclaims. "Shit! I've never seen... So you can literally go fuck yourself?! You... wow..."
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				<<He>> stops and looks at your belly. "Wait, so did someone else get you pregnant or did you do it to yourself?"
 				<<famepregnancy 1>>
 			<</if>>
@@ -1789,7 +1795,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 		<<elseif $player.bodyliquid.vagina.semen gte 3>>
 			<br>
 			"That can't be cum?! It is just pouring out of that pussy!" <<he>> looks up at you in awe.
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"You filthy little cumdump! No wonder you got yourself pregnant."
 				<<famepregnancy 1>>
 			<<else>>
@@ -1804,7 +1810,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<<His>> eyes widen.
 			<br>
 			"I just got a great shot of cum bubbling out your asshole," <<he>> looks up at you in awe.
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Oh, so being pregnant wasn't the only reason you were walking so slow."
 				<<famepregnancy 1>>
 			<<else>>
@@ -1817,8 +1823,8 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br><br>
 		<<elseif $player.bodyliquid.vagina.semen gte 1>>
 			<br>
-			"Nice! Cum seeping out of your pussy," <<he>> says. "You just let your little boyfriend drain his balls right up in there?
-			<<if pregnancyBellyVisible()>>
+			"Nice! Cum seeping out of your pussy," <<he>> says. "You just let your boyfriend drain his balls right up in there?
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				You better look after his child."
 				<<famepregnancy 1>>
 			<<else>>
@@ -1831,8 +1837,8 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br><br>
 		<<elseif $player.bodyliquid.anus.semen gte 1>>
 			<br>
-			"Look at that! So you <<if $pronoun is "m">>let<<else>>make<</if>> your little boyfriend cum in your ass?" <<he>> laughs.
-			<<if pregnancyBellyVisible()>>
+			"Look at that! So you <<if $pronoun is "m">>let<<else>>make<</if>> your boyfriend cum in your ass?" <<he>> laughs.
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Not like it's stopped you from getting pregnant."
 				<<famepregnancy 1>>
 			<<else>>
@@ -1846,7 +1852,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 		<<elseif $arousal gte ($arousalmax / 5) * 3>>
 			<br>
 			"You're so wet," <<he>> says.
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Is this turning you on, or is your pregnancy fucking with your hormones?"
 				<<famepregnancy 1>>
 			<<else>>
@@ -1857,10 +1863,10 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br>
 			"These," <<he>> grins. "Will come in handy!"
 			<br><br>
-		<<elseif $famerape gte 600>>
+		<<elseif $fame.rape gte 600>>
 			<br>
 			"They say you get off from being raped," <<he>> says.
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Like, you do it deliberately, and considering the large belly you have... the more the merrier."
 				<<famepregnancy 1>>
 			<<else>>
@@ -1877,10 +1883,10 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br>
 			"These," <<he>> grins. "Will come in handy!"
 			<br><br>
-		<<elseif $famesex gte 600>>
+		<<elseif $fame.sex gte 600>>
 			<br>
 			"They say you're quite the slut," <<he>> says.
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"That you can't get enough. That you always want to be pregnant."
 				<<famepregnancy 1>>
 			<<else>>
@@ -1897,7 +1903,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br><br>
 		<<elseif $wolfgirl gte 4 and (!["hidden", "disabled"].includes($transformationParts.wolf.pubes) or !["hidden", "disabled"].includes($transformationParts.wolf.pits))>>
 			<br>
-			<<if pregnancyBellyVisible()>>
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Wow," <<he>> says. "So hairy! Those wolf children in your belly?"
 				<<famepregnancy 1>>
 			<<else>>
@@ -1910,8 +1916,8 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br><br>
 		<<elseif $vaginalstat gte 101>>
 			<br>
-			"Wow!" <<he>> exclaims. 
-			<<if pregnancyBellyVisible()>>
+			"Wow!" <<he>> exclaims.
+			<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 				"Looks like this cunt's either taken a lot of dick or you've given birth to too many children!"
 				<<famepregnancy 1>>
 			<<else>>
@@ -1947,7 +1953,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br><br>
 		<<elseif $player.virginity.anal is true>>
 			<br>
-			"Your ass looks intact," <<he>> comments. <<if $physique gte ($physiquesize / 7) * 4>>"You look like you can take care of yourself! In this town you might need to."<<else>>"You must be new around here. Skinny thing like you will be lucky to last a week in this town."<</if>>
+			"Your ass looks intact," <<he>> comments. <<if currentSkillValue('physique') gte ($physiquesize / 7) * 4>>"You look like you can take care of yourself! In this town you might need to."<<else>>"You must be new around here. Skinny thing like you will be lucky to last a week in this town."<</if>>
 			<br><br>
 			After a lot of camera snaps, <<he>> stops and browses through the photos on <<his>> phone.
 			<br>
@@ -1969,7 +1975,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br>
 			"These," <<he>> grins. "Will come in handy!"
 			<br><br>
-		<<elseif $famerape gte 600>>
+		<<elseif $fame.rape gte 600>>
 			<br>
 			"They say you get off on being raped," <<he>> says. "That you need a rough ass pounding to even get it up nowadays."
 			<br><br>
@@ -1979,7 +1985,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br>
 			"These," <<he>> grins. "Will come in handy!"
 			<br><br>
-		<<elseif $famesex gte 600>>
+		<<elseif $fame.sex gte 600>>
 			<br>
 			"They say you're quite the rake," <<he>> says. "That you love putting it about."
 			<br><br>
@@ -2023,7 +2029,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 	Well, <<he>> wants a collection of pictures of your <<if $player.gender_appearance is "m">>penis<<else>>pussy<</if>>.
 	<br> You have a lewd idea.
 	<br>
-	"I'll show you everything then." you say.
+	"I'll show you everything then," you say.
 	<br>
 	You lay down and spread your legs to give <<him>> a good view of your pussy lips.
 	<br>
@@ -2232,7 +2238,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 			<br>
 			"What do I owe you for such amazing sex? Just name your price."
 			<br><br>
-			<<if $skulduggery gte 700>>
+			<<if currentSkillValue('skulduggery') gte 700>>
 				<span class="gold">Thanks to your knowledge of trickery and deceit, you smell a rat. The car. The person. Everything feels wrong. This feels like a setup.</span>
 				<br><br>
 			<</if>>
@@ -2308,7 +2314,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 
 <<set $outside to 0>><<effects>>
 <<if $phase is 0>>
-	"There's no charge, <<if $skulduggery gte 700 or $stealtarget isnot "">>Officer,<<else>><<if $pronoun is "m">>sir,<<else>>ma'am,<</if>><</if>>" you smile. "I'm not a prostitute!"
+	"There's no charge, <<if currentSkillValue('skulduggery') gte 700 or $stealtarget isnot "">>Officer,<<else>><<if $pronoun is "m">>sir,<<else>>ma'am,<</if>><</if>>" you smile. "I'm not a prostitute!"
 	<br><br>
 	"Right..." <<he>> says. "Then I guess you should better be on your way."
 	<br><br>
@@ -2448,7 +2454,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<famebestiality 2>>
 	<<beastejaculation>>
-	<<person2>>"I hope your owner won't mind us breeding you like that," says the <<person>>. They leave you lying on the pavement.
+	<<person2>>"I hope your owner won't mind us <<if $pregnancyspeechdisable is "f">>breeding<<else>>fucking<</if>> you like that," says the <<person>>. They leave you lying on the pavement.
 	<<tearful>> you rise to your feet.
 	<br><br>
 	<<clotheson>>
@@ -2588,12 +2594,12 @@ You wake up by the side of the road, leaning against a wall. A <<generate1>><<pe
 	You don't remember your predicament until you look down, and feel your face flush. <<covered>> "Oh I wouldn't worry about that," <<he>> says. "I've taken so many pictures already. Can't wait to show the <<if $pronoun is "m">>guys<<else>>girls<</if>>. Anyway, I've places to be."
 	<<gtrauma>><<trauma 6>>
 	<br><br>
-	<<fameexhibitionism 20 pic>>
+	<<fameexhibitionism 20 "pic">>
 <<elseif $exposed gte 1>>
 	You don't remember your predicament until you look down, and feel your face flush. <<covered>> "Oh I wouldn't worry about that," <<he>> says. "I've taken so many pictures already. Can't wait to show the <<if $pronoun is "m">>guys<<else>>girls<</if>>. Anyway, I've places to be."
 	<<gtrauma>><<trauma 6>>
 	<br><br>
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
 	"You alright? I almost called an ambulance, but I thought it might look bad," <<he>> says, giving a sheepish smile.
 	<br><br>
@@ -2619,7 +2625,8 @@ You wake up by the side of the road, leaning against a wall. A <<generate1>><<pe
 
 <<set $outside to 1>><<effects>>
 You follow the <<beasttype>> down the alley. <<bHe>> rounds a corner.
-<<if $rng gte 99 and ($monster is 1 or $bestialitydisable is "f")>><!-- Modified for Beast People -->
+
+<<if $stray_happiness lte random(1, 100) and random(1, 100) gte 98 and ($monster is 1 or $bestialitydisable is "f")>><!-- Modified for Beast People -->
 	You find <<bhim>> stood in the middle of the alley, looking at you. You hear a growl to your right and left. You're surrounded.
 	<br><br>
 	<<endevent>>
@@ -3198,11 +3205,11 @@ Several spectators jeer and comment. You hear camera clicks and glance back to s
 	"Officer!" you cry.
 	<br>
 	The <<person2>><<person>> half-heartedly flaps the <<person3>><<person>> away.
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 <<else>>
 	You quickly look away in shame.
 	After a while the <<person2>><<person>> half-heartedly flaps the <<person3>><<person>> away.
-	<<fameexhibitionism 15 pic>>
+	<<fameexhibitionism 15 "pic">>
 <</if>>
 <br><br>
 The <<person1>><<person>> finally emerges. "Forget it. There's been a break-in out at one of the major farms. We need to go help out with that."
@@ -3800,7 +3807,7 @@ You grab the tentacle and try to hold it still.<<deviancy1>>
 
 <<set $outside to 1>><<set $location to "town">><<effects>>
 You reach for the tentacle, and carefully touch it with your fingers. For a moment it stiffens, but it relaxes as you rub it and starts pulsing against your hand. <<deviancy3>>
-<br>
+
 You wrap your fingers around it and start stroking. The tentacle throbs and pulses in rhythm with your strokes. After a dozen strokes its pulses grow stronger, and shivers run through it. It ejaculates slime all over your hands.
 <<arousal 3>>
 <<set $player.bodyliquid.leftarm.goo += 1>><<set $player.bodyliquid.rightarm.goo += 1>>
@@ -4043,7 +4050,7 @@ You pull away from the tentacle, hoping to shake it off.
 
 <<set $outside to 1>><<effects>><<set $rng to random(1, 100)>>
 The figure gets closer.
-<<if $famerape gte ($rng * 2) and $rng gte 15>>
+<<if $fame.rape gte ($rng * 2) and $rng gte 15>>
 	<<person1>><<He>> stares at your face a moment, then looks over your shoulder and nods. "It's <<phim>>," <<he>> says.
 	<br><br>
 	The other figure grasps your shoulder from behind.
@@ -4052,19 +4059,19 @@ The figure gets closer.
 	<br>
 <<else>>
 	<<set _possibleFames to []>>
-	<<if $famescrap gte ($rng * 5)>>
+	<<if $fame.scrap gte ($rng * 5)>>
 		<<set _possibleFames.push("scrap")>>
 	<</if>>
-	<<if $famegood gte ($rng * 5)>>
+	<<if $fame.good gte ($rng * 5)>>
 		<<set _possibleFames.push("good")>>
 	<</if>>
-	<<if $famebusiness gte ($rng * 5)>>
+	<<if $fame.business gte ($rng * 5)>>
 		<<set _possibleFames.push("business")>>
 	<</if>>
-	<<if $famesocial gte ($rng * 5)>>
+	<<if $fame.social gte ($rng * 5)>>
 		<<set _possibleFames.push("social")>>
 	<</if>>
-	<<if $famemodel gte ($rng * 5)>>
+	<<if $fame.model gte ($rng * 5)>>
 		<<set _possibleFames.push("model")>>
 	<</if>>
 	<<if _possibleFames.length is 0>>
@@ -4139,7 +4146,7 @@ The figure gets closer.
 				The pair gossip about the local elite. You remember a few names they mention, but since you were never particularly interested in the backstage politics, you mostly smile and nod. Once they exhaust their tattles, they shake your hand and leave.
 				<br><br>
 			<<case "model">>
-				<span class = "green">who's been <<if $famemodel gte 1000>>in magazine ads<<else>>on ad posters around the town<</if>> recently?</span>" the <<person1>><<person>> asks as <<he>> takes off <<his>> hood.
+				<span class = "green">who's been <<if $fame.model gte 1000>>in magazine ads<<else>>on ad posters around the town<</if>> recently?</span>" the <<person1>><<person>> asks as <<he>> takes off <<his>> hood.
 				<br><br>
 				<<if $submissive gte 1150>>
 					"That... ma-maybe, yes..." you mutter staring at your feet.
@@ -4355,7 +4362,7 @@ You run through the empty streets and alleys, rounding each corner in a bid to e
 		<br>
 	<<else>>
 		<<if $tower_creature_intro gte 2>>
-			The <<tower_creature_text>> steps closer to you, 
+			The <<tower_creature_text>> steps closer to you,
 
 			<<if $NPCList[0].monster is "monster">>
 				a scowl forming on <<bhis>> face as <<bhe>> stares at you. "Got uglier," <<bhe>> remarks in a frustrated tone. "Not pretty anymore." Disappointed, <<bhe>> prowls into the darkness.
@@ -4783,7 +4790,7 @@ You fall several feet before the air catches you, and brings you to the street b
 		"Not worth it," <<bhe>> growls.
 	<<else>>
 		It growls, but doesn't pursue.
-	<</if>>	
+	<</if>>
 	<<bHe>> curls up falls back into a disturbed sleep.
 	<br><br>
 
@@ -4932,26 +4939,26 @@ The <<tower_creature_text>> lumbers over to you, stopping just within arm's reac
 	<</if>>
 
 	<<bHe>> scurries to retrieve <<bhis>> discarded treasure, but <<bhe>> can only watch it disappear into the mist below. <<bHe>> stands at the precipice, gripping one of the pipes hard enough to dent the metal.
-    <br><br>
+	<br><br>
 
-    Your moment of triumph is short-lived. <<bHe>> slowly turns around to face you, eyes narrowed into glowing yellow slits. <<bHis>> breathing is heavy.
+	Your moment of triumph is short-lived. <<bHe>> slowly turns around to face you, eyes narrowed into glowing yellow slits. <<bHis>> breathing is heavy.
 	<<if $NPCList[0].monster is "monster">>
 		"Ungrateful..." <<bhe>> growls.
 	<<else>>
 		<<bHe>> growls.
 	<</if>>
-    <br><br>
+	<br><br>
 
-    In a blur of motion, <<bhe>> bounds towards you, kicking up the debris littered about the place.
+	In a blur of motion, <<bhe>> bounds towards you, kicking up the debris littered about the place.
 
 	<<if $NPCList[0].monster is "monster">>
 		<<bHe>> grabs you by the throat, lifting you up with alarming strength and hefting you onto the mattress.
 	<<else>>
 		<<bHe>> bites down on your ankle, yanking you from the pile and dragging you to the mattress.
 	<</if>>
-    <br><br>
+	<br><br>
 
-    By the time you come to your senses, the <<tower_creature_text>> is already on top of you, snarling.
+	By the time you come to your senses, the <<tower_creature_text>> is already on top of you, snarling.
 	<br><br>
 
 	<<link [[Next|Monster Tower Rape]]>><<set $phase to 1>><<set $molestationstart to 1>><</link>>
@@ -5194,7 +5201,7 @@ You shove the <<person>> against a dumpster, where <<he>> falls to the ground.
 	<<endevent>>
 
 	<<destinationeventend>>
-<<elseif $corruption_slime gte ($willpower / 10)>>
+<<elseif $corruption_slime gte (currentSkillValue('willpower') / 10)>>
 	<<if $promiscuity gte 55>>
 		<<set $slimeDefyCooldown to 4>>
 	<<else>>
@@ -5354,7 +5361,7 @@ The crowd backs away as you scream. Others keep going, until they see the hesita
 	<<endevent>>
 
 	<<destinationeventend>>
-<<elseif $corruption_slime gte ($willpower / 10)>>
+<<elseif $corruption_slime gte (currentSkillValue('willpower') / 10)>>
 	<<if $promiscuity gte 55>>
 		<<set $slimeDefyCooldown to 6>>
 	<<else>>
@@ -5619,32 +5626,32 @@ One by one, the van is cleared of cargo. <<physique 6>>
 
 <<set $rng to random(1, 100)>>
 <<set $danger to random(1, 10000)>>
-	<<if $danger gte (9900 - $allure) and $rng gte 51 and $beauty gte ($beautymax * 0.8)>>
-		You're lifting the last box from the van when you hear the doors slam behind you. You try to open them, <span class="red">but they've been locked from the outside.</span><<gstress>><<stress 6>>
-		<br><br>
+<<if $danger gte (9900 - $allure) and $rng gte 51 and $beauty gte ($beautymax * 0.8)>>
+	You're lifting the last box from the van when you hear the doors slam behind you. You try to open them, <span class="red">but they've been locked from the outside.</span><<gstress>><<stress 6>>
+	<br><br>
 
-		You check the front of the van, but a metal sheet separates you and the driver's seat.
-		<br><br>
+	You check the front of the van, but a metal sheet separates you and the driver's seat.
+	<br><br>
 
-		The engine comes to life. You lurch as the van moves.
-		<br><br>
+	The engine comes to life. You lurch as the van moves.
+	<br><br>
 
-		<<set $skulduggerydifficulty to 1100>>
-		<<link [[Search carefully for a way out|Street Van Search]]>><</link>><<skulduggerydifficulty>>
-		<br>
-		<<link [[Bash the door open|Street Van Bash]]>><</link>><<physiquedifficulty 1 22000>>
-		<br>
-		<<link [[Just wait (1:00)|Street Van Journey]]>><<pass 60>><</link>>
-		<br>
-	<<else>>
-		"Thanks," the <<person>> says as you put down the last box. "You're a life saver. Here you go, every penny earned."
+	<<set $skulduggerydifficulty to 1100>>
+	<<link [[Search carefully for a way out|Street Van Search]]>><</link>><<skulduggerydifficulty>>
+	<br>
+	<<link [[Bash the door open|Street Van Bash]]>><</link>><<physiquedifficulty 1 22000>>
+	<br>
+	<<link [[Just wait (1:00)|Street Van Journey]]>><<pass 60>><</link>>
+	<br>
+<<else>>
+	"Thanks," the <<person>> says as you put down the last box. "You're a life saver. Here you go, every penny earned."
 
-		<span class="gold">You've made £30.</span>
-		<<set $money += 3000>>
-		<br><br>
-		<<endevent>>
-		<<destinationeventend>>
-	<</if>>
+	<span class="gold">You've made £30.</span>
+	<<set $money += 3000>>
+	<br><br>
+	<<endevent>>
+	<<destinationeventend>>
+<</if>>
 
 :: Street Van Search
 <<effects>><<set $outside to 0>>
@@ -5713,10 +5720,10 @@ You feel the van rumble along. At first it stops and starts, likely due to traff
 You travel for what feels like an hour, until you come to a stop. The <<person>> throws open the van doors, revealing the interior of a barn. <<Hes>> not alone. Three others stand with <<him>>, examining you.
 <br><br>
 
-<<person2>>"You weren't lying," a <<person>> says. "Good stock. Would make a fine breeder."
+<<person2>>"You weren't lying," a <<person>> says. "Good stock. Would make a fine <<if $pregnancyspeechdisable is "f">>breeder<<else>>addition<</if>>."
 <br><br>
 
-<<person3>>"Breeder?" a <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> advances on you, a metal chain and collar in <<his>> hand.
+<<person3>><<if $speechpregnancydisable is "f">>"Breeder?"<<else>>"Personally,"<</if>> a <<person>> interjects. "I'm more interested in the produce. Gonna make a killing." <<He>> advances on you, a metal chain and collar in <<his>> hand.
 <br><br>
 
 <<link [[Protest|Street Van Protest]]>><<def 1>><<stress 6>><<trauma -6>><</link>><<gstress>><<ltrauma>>
@@ -5738,7 +5745,7 @@ You travel for what feels like an hour, until you come to a stop. The <<person>>
 	"I don't know what you perverts are planning," you say. "But you can fuck off."
 	<br><br>
 
-	All three laugh. "I said <<pshe>> would make a fine breeder," the <<person2>><<person>> says. "With a fire like that, seems I'm right."
+	All three laugh. "I said <<pshe>> would make a fine <<if $pregnancyspeechdisable is "f">>breeder<<else>>addition<</if>>," the <<person2>><<person>> says. "With a fire like that, seems I'm right."
 	<br><br>
 <<else>>
 	"Don't do this," you say. "It'll come back to haunt you."
@@ -5860,8 +5867,11 @@ You refuse the <<persons>> offer and continue on your way.
 
 :: Street Van Bailey
 <<set $outside to 0>><<set $location to "farm">><<effects>>
+<<generate2>><<generate3>>
 
-You ride in darkness for what feels like an hour. You must have left the town far behind. At last, the vehicle comes to a stop, and you hear the back doors open. A rough hand grabs your hood and tugs it off your head. Before your eyes adjust, you're pulled from the vehicle onto a straw-strewn floor.
+You ride in darkness for what feels like an hour.
+You must have left the town far behind. At last, the vehicle comes to a stop, and you hear the back doors open.
+A rough hand grabs your hood and tugs it off your head. Before your eyes adjust, you're pulled from the vehicle onto a straw-strewn floor.
 <br><br>
 
 You look around. You're in a barn. A <<person2>><<person>> and <<person3>><<person>> grin at you.
@@ -6377,27 +6387,27 @@ Surprised by your reaction, <<he>> relaxes and mumbles "Uhmm... Yeah... just be
 <br><br>
 <<He>> eagerly reciprocates with one arm, pulling you close.
 <<if $player.breastsize gte 2 and $NPCList[0].breastsize gte 2>>
-   The tight hug squeezes your <<breasts>> against the <<person>>'s $NPCList[0].breastsdesc. <<arousal 300>>
-
-   <<set $rng to random(0, 100)>>
-   <<if $rng gte 70>>
-      You clearly feel <<his>> hard nipples. Your <<nipples>> harden in response. <<arousal 300>>
-   <<elseif $rng gte 25>>
-      You think you feel <<his>> nipples harden in response. The feeling makes your <<nipples>> hard as well. <<arousal 300>>
-   <<elseif $rng gte 25>>
-      Your <<nipples>> harden in response.
-   <</if>>
+	The tight hug squeezes your <<breasts>> against the <<person>>'s $NPCList[0].breastsdesc. <<arousal 300>>
+
+	<<set $rng to random(0, 100)>>
+	<<if $rng gte 70>>
+		You clearly feel <<his>> hard nipples. Your <<nipples>> harden in response. <<arousal 300>>
+	<<elseif $rng gte 25>>
+		You think you feel <<his>> nipples harden in response. The feeling makes your <<nipples>> hard as well. <<arousal 300>>
+	<<elseif $rng gte 25>>
+		Your <<nipples>> harden in response.
+	<</if>>
 <<elseif $player.breastsize gte 2>>
-   The tight hug squeezes your <<breasts>> against the <<person>>. Your <<nipples>> harden in response.
-   <<arousal 300>>
+	The tight hug squeezes your <<breasts>> against the <<person>>. Your <<nipples>> harden in response.
+	<<arousal 300>>
 <<elseif $NPCList[0].breastsize gte 2>>
-   The tight hug squeezes you against the <<person>>'s $NPCList[0].breastsdesc. <<arousal 300>>
-   <<set $rng to random(0, 100)>>
-   <<if $rng gte 66>>
-      You clearly feel <<his>> hard nipples. <<arousal 300>>
-   <<elseif $rng gte 33>>
-      You feel <<his>> nipples harden in response. <<arousal 300>>
-   <</if>>
+	The tight hug squeezes you against the <<person>>'s $NPCList[0].breastsdesc. <<arousal 300>>
+	<<set $rng to random(0, 100)>>
+	<<if $rng gte 66>>
+		You clearly feel <<his>> hard nipples. <<arousal 300>>
+	<<elseif $rng gte 33>>
+		You feel <<his>> nipples harden in response. <<arousal 300>>
+	<</if>>
 <</if>>
 <br>
 <<His>> other arm continues groping and fondling your <<bottom>>, but more gently than before.
@@ -6408,7 +6418,7 @@ Surprised by your reaction, <<he>> relaxes and mumbles "Uhmm... Yeah... just be
 	After a couple of minutes, you feel a warmth build within you, and brace yourself, hugging the <<person>> more tightly. You let out a subtle moan, as you pass the point of no return.
 	<<orgasm>>
 
-	"Did you just cum in the street from having your bottom played with?" <<he>> asks. "Damn, you're a real <<slut>><<if pregnancyBellyVisible()>>, but I guess your belly already shows that<</if>>."
+	"Did you just cum in the street from having your bottom played with?" <<he>> asks. "Damn, you're a real <<slut>><<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>, but I guess your belly already shows that<</if>>."
 
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if $danger gte (9900 - $allure)>>
@@ -6420,7 +6430,7 @@ Surprised by your reaction, <<he>> relaxes and mumbles "Uhmm... Yeah... just be
 		<br>
 		<<link [[Struggle|Street Bottom Struggle]]>><<set $submissive -= 1>><</link>><<physiquedifficulty 5000>>
 	<<else>>
-		<<He>> breaks the hug and smacks your <<bottom>> as your shudders subside. "I knew you'd like it." <<He>> walks away with a smirk on his face.
+		<<He>> breaks the hug and smacks your <<bottom>> as your shudders subside. "I knew you'd like it." <<He>> walks away with a smirk on <<his>> face.
 		<br><br>
 
 		<<endevent>>
@@ -6443,9 +6453,9 @@ You let the <<person>> grope and fondle your <<bottom>> as <<he>> pleases. <<He>
 <<if $arousal gte $arousalmax>>
 	You feel a warmth build within you, despite the violent and intruding nature of the fondling. You pass the point of no return.
 	<<orgasm>>
-	
+
 	"Did you just cum in the street from having your bottom played with?" <<he>> asks. "Damn, you're a real <<slut>><<if pregnancyBellyVisible()>>, but I guess your belly already shows that<</if>>."
-	
+
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if $danger gte (9900 - $allure)>>
 		<<He>> moves <<his>> hand to where your genitals are and continues, "Say, why don't we have some fun in that alley over there."
@@ -6554,7 +6564,7 @@ You struggle against the <<persons>> grasp, kicking <<his>> shins while trying t
 	<</if>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
 	<<if $enemyanger gte ($enemyangermax / 5) * 3>>
-		<<if pregnancyBellyVisible()>>
+		<<if pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 			<<He>> shouts, "You better run <<slut>>, before I end up doing something I regret."
 		<<else>>
 			<<He>> pushes you onto the ground shouting, "Stupid <<slut>>!"
@@ -6882,7 +6892,7 @@ You hasten your steps.
 :: Street Offer Listen
 <<effects>>
 
-You turn to face the <<person>>. "We need a model," <<he>> says. Our regular <<girl>> can't make it. Everything's above board. Fully clothed. You'll get £200 for three hours work. How about it?."
+You turn to face the <<person>>. "We need a model," <<he>> says. Our regular <<girl>> can't make it. Everything's above board. Fully clothed. You'll get £200 for three hours work. How about it?"
 <br><br>
 
 <<link [[Accept (3:00)|Street Offer Accept]]>><</link>>
@@ -7171,7 +7181,7 @@ You shake your head and keep walking.
 	<<elseif $phase is 4>>
 		An excited chatter bursts from the group. They keep glancing at you. As you walk on, you make out "Did you see that?!", "What a slut!" and "So sexy!"
 	<<elseif $phase is 5>>
-		The <<person>> grins at <<his>> friend and exclaims "Did you see that? <<pShes>> shameless!". <<His>> friend replies "Wouldn't you be with such a body?" Proudly, you walk on.
+		The <<person>> grins at <<his>> friend and exclaims "Did you see that? <<pShes>> shameless!" <<His>> friend replies "Wouldn't you be with such a body?" Proudly, you walk on.
 	<<else>>
 		You walk on, beaming with pride.
 	<</if>>
@@ -7190,9 +7200,9 @@ You shake your head and keep walking.
 	<<elseif $phase is 4>>
 		An angry chatter bursts from the group. They're all looking your way, shouting abuse. "Slut!" "Shame on you!" "Pervert!" You hurry along.
 	<<elseif $phase is 5>>
-		The <<person>> grins at <<his>> friend and exclaims "<<pShes>> shameless!". <<His>> friend glares at you and shouts "You're a pervert!". You quickly walk away.
+		The <<person>> grins at <<his>> friend and exclaims "<<pShes>> shameless!" <<His>> friend glares at you and shouts "You're a pervert!" You quickly walk away.
 	<<else>>
-		Someone starts shouting "Pervert!". You hurry on.
+		Someone starts shouting "Pervert!" You hurry on.
 	<</if>>
 	<<gstress>><<stress 12>>
 	<<gtrauma>><<trauma 12>>
@@ -7208,7 +7218,7 @@ You shake your head and keep walking.
 		<<endevent>><<generate1>><<set $NPCList[0] to clone($secNPC)>>
 		A short while later, you suddenly spot the <<person1>><<person>> right next to you.
 		Taking advantage of your confusion, <<he>> grabs you, and shoves you into a nearby alley.
-		<<He>> spits "Shameless slut! I'll show you!".
+		<<He>> spits "Shameless slut! I'll show you!"
 	<<elseif $phase is 2>>
 		You only notice that the <<person1>><<person>> followed you, when <<he>> grabs you, and drags you into a nearby alley.
 		<<He>> bellows "Filthy slut! I'll teach you a lesson!"
@@ -7218,8 +7228,9 @@ You shake your head and keep walking.
 		<<He>> grabs you close, and hisses "I'll give you what you deserve!" in your ear.
 	<<elseif $phase is 4>>
 		Two streets further, you suddenly get the feeling of someone sneaking up on you.
-		You turn around, and look straight into the angry face of a <<person1>><<person>>. You recognise <<him>> as part of the group.<br>
-		Before you can react, <<he>> pushes you into a nearby alley and throws <<himself>> against you, shrieking "You need a lesson!".
+		You turn around, and look straight into the angry face of a <<person1>><<person>>. You recognise <<him>> as part of the group.
+		<br>
+		Before you can react, <<he>> pushes you into a nearby alley and throws <<himself>> against you, shrieking "You need a lesson!"
 	<<elseif $phase is 5>>
 		You walk a short while, when all of a sudden, you're pulled into an alley by the <<person1>><<person>>.
 		<<He>> presses you against a wall, and barks "I'll show you what we do with perverts here!"
@@ -7462,7 +7473,7 @@ Your cries attract the attention of the people passing by the alley's entrance.
 	<<if $monster is 1>>
 		<span class="green">and the <<beasttype>> grasps it in <<bhis 0>> own.</span> You shake.
 	<<else>>
-		<span class="green">and the <<beasttype>> rests <<bhis 0>> paw on it.</span> You shake
+		<span class="green">and the <<beasttype>> rests <<bhis 0>> paw on it.</span> You shake.
 	<</if>>
 	<<takeHandholdingVirginity $NPCList[0].fullDescription "consensual">><<llstress>><<stress -12>>
 	<br><br>
@@ -7590,11 +7601,11 @@ You ignore them, and continue your journey.
 
 You punch the <<person>> in the face, putting a stop to the torrent of abuse.
 
-<<if $physique gte 15000>>
+<<if currentSkillValue('physique') gte 15000>>
 	The force sends <<him>> staggering into the road.
-<<elseif $physique gte 10000>>
+<<elseif currentSkillValue('physique') gte 10000>>
 	<<He>> looks surprised as <<he>> staggers backward.
-<<elseif $physique gte 5000>>
+<<elseif currentSkillValue('physique') gte 5000>>
 	<<He>> winces, and raises <<his>> arms to protect <<himself>>.
 <<else>>
 	<<He>> winces, and looks surprised.
@@ -7874,7 +7885,7 @@ The <<person>> opens <<his>> mouth to argue, but decides against it. <<He>> leav
 	<<if $daystate isnot "night">>
 		<<enable_rescue>>
 	<</if>>
-	
+
 <</if>>
 
 <<effects>>
@@ -8155,11 +8166,11 @@ You try to speak, but can't find the words. You feel the <<person>> catch you in
 <<if $daystate is "night">>
 	You nod in agreement and begin to remove your clothes. The darkness of the night provides all the cover you need. The group seems shocked, but they don't stop you. <<exhibitionism5>>
 	<br>
-	
+
 	<<if $worn.upper.type.includes("naked") and $worn.under_upper.type.includes("naked")>>You stroke your chest and run your hands over<<else>>You start with your<<if !$worn.upper.type.includes("naked")>> $worn.upper.name<</if>><<if !$worn.upper.type.includes("naked") and !$worn.under_upper.type.includes("naked")>> and<</if>><<if !$worn.under_upper.type.includes("naked")>> $worn.under_upper.name<</if>>, exposing<</if>> your <<breasts>>. The night air caresses your nipples. The group looks eager, taking out their phones. They start to take pictures of you.
 	<<overupperstrip>><<upperstrip>><<underupperstrip>>
 	<br>
-	
+
 	The <<person2>><<person>> leers at your chest and runs <<his>> tongue across <<his>> lips.
 	<<if $player.perceived_breastsize lte 0>>
 		<<if $player.gender_appearance is "m">>
@@ -8234,19 +8245,19 @@ You try to speak, but can't find the words. You feel the <<person>> catch you in
 		<</if>>
 	<</if>>
 	<br><br>
-	
+
 	You turn your back to them,<<if !$worn.lower.type.includes("naked") or !$worn.under_lower.type.includes("naked")>> and next take off your<<if !$worn.lower.type.includes("naked")>> $worn.lower.name<</if>><<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>> and<</if>><<if !$worn.under_lower.type.includes("naked")>> $worn.under_lower.name<</if>>,<</if>> exposing your <<bottom>>. You feel a mixture of embarrassment and excitement, knowing that anyone could end up noticing your little show. The <<person2>><<person>> begins to rub the front of <<his>> <<if $pronoun is "f">>skirt<<else>>trousers<</if>>.
 	<br><br>
-	
+
 	You turn back to face them, your <<genitals>> shamelessly on display.
-	
+
 	<<if $player.gender is "h">>
 		They gawk at the sight, but they seem no less turned on.
 		<br>
 		"Both...?" the <<person>> murmurs. "Fuck it, a slut's a slut." <<He>> quickens <<his>> rubbing.
 		<br>
 		"Wait 'til I show this around," the <<person3>><<person>> snickers, taking a picture.
-	<<elseif $player.gender_appearance isnot $player.gender>>
+	<<elseif $player.gender_appearance isnot $player.gender and $NudeGenderDC gt 0>>
 		Their expressions range from shock to lust.
 		<br>
 		"Oh, you're a <<if $player.gender is "m">>boy<<else>>girl<</if>>?" the <<person1>><<person>> asks, looking somewhat disappointed.
@@ -8255,12 +8266,12 @@ You try to speak, but can't find the words. You feel the <<person>> catch you in
 	<<else>>
 		They cheer at the sight, snapping pictures as they ogle your bare body. <<flaunting>> you make little effort to stop them, striking seductive poses and coyly twirling away when they get a bit grabby.
 	<</if>>
-	<<overlowerstrip>><<lowerstrip>><<underlowerstrip>><<fameexhibitionism 6 pic>>
+	<<overlowerstrip>><<lowerstrip>><<underlowerstrip>><<fameexhibitionism 6 "pic">>
 	<br><br>
-	
+
 	They seem pleased by your display, but you can tell by the look in their eyes that they're hungry for more.
 	<br><br>
-	
+
 	<<set $tipmod to 2>>
 	<<if $promiscuity gte 75>>
 		<<link [[Offer your body|Street Private Show Sex]]>><<set $crossdressing to 0>><<set $phase to 1>><<set $sexstart to 1>><</link>><<promiscuous5>>
@@ -8273,10 +8284,10 @@ You try to speak, but can't find the words. You feel the <<person>> catch you in
 <<else>>
 	You nod in agreement and begin to take off your clothes. <<exhibitionism5>>
 	<br>
-	
+
 	The <<person1>><<person>> quickly stops you, to the disappointment of <<his>> friends. "Not here," <<he>> says, looking around. A good amount of people are still on the street. "Let's find a more secluded place."
 	<br><br>
-	
+
 	<<link [[Next|Street Private Show Alley]]>><<set $phase to 1>><</link>>
 	<br>
 <</if>>
@@ -8297,7 +8308,7 @@ You try to speak, but can't find the words. You feel the <<person>> catch you in
 <<if $worn.upper.type.includes("naked") and $worn.under_upper.type.includes("naked")>>You stroke your chest and run your hands over<<else>>You start with your<<if !$worn.upper.type.includes("naked")>> $worn.upper.name<</if>><<if !$worn.upper.type.includes("naked") and !$worn.under_upper.type.includes("naked")>> and<</if>><<if !$worn.under_upper.type.includes("naked")>> $worn.under_upper.name<</if>>, exposing<</if>> your <<breasts>>. The group looks eager, taking out their phones. They start to take pictures of you.
 <<overupperstrip>><<upperstrip>><<underupperstrip>>
 <br>
-	
+
 The <<person2>><<person>> leers at your chest and runs <<his>> tongue across <<his>> lips.
 <<if $player.perceived_breastsize lte 0>>
 	<<if $player.gender_appearance is "m">>
@@ -8393,7 +8404,7 @@ You turn back to face them, your <<genitals>> shamelessly on display.
 <<else>>
 	They cheer at the sight, snapping pictures as they ogle your bare body. <<flaunting>> you make little effort to stop them, striking seductive poses and coyly twirling away when they get a bit grabby.
 <</if>>
-<<overlowerstrip>><<lowerstrip>><<underlowerstrip>><<fameexhibitionism 6 pic>>
+<<overlowerstrip>><<lowerstrip>><<underlowerstrip>><<fameexhibitionism 6 "pic">>
 <br><br>
 
 They seem pleased by your display, but you can tell by the look in their eyes that they're hungry for more.
@@ -8420,7 +8431,7 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 		"You know… you can do more than just look..."
 	<</if>>
 	you say, presenting yourself. It takes only a moment for them to understand what you mean. They grin, and move towards you. <<promiscuity5>>
-	
+
 	<<set $sexstart to 0>>
 	<<consensual>>
 	<<set $consensual to 1>>
@@ -8460,16 +8471,16 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 	<<tipset>>
 	"Thanks, <<girl>>," the <<person1>><<person>> says, tossing a wad of cash at your feet. "It was worth every penny." <<He>> laughs as <<he>> leads <<his>> friends out of the alley.
 	<br><br>
-	
+
 	<<tearful>> you scrounge the money up off the ground. <<tipreceive>>
 <<elseif $enemyhealth lte 0>>
 	You shove the <<person1>><<person>> into the others, and they topple into a heap. <<tearful>> you run away before they have a chance to recover.
 <<else>>
 	<<set $tipmod -= 0.5>><<tipset>>
-	
+
 	The <<person1>><<person>> curls <<his>> lip in disgust as <<he>> backs away from you. "Fucking tease. Keep acting like a slut and someone's gonna put you in your place." <<He>> pulls a handful of bank notes from <<his>> pocket and tosses them over <<his>> shoulder, grumbling as <<he>> leads <<his>> friends out of the alley.
 	<br><br>
-	
+
 	<<tearful>> you scrounge the money up off the ground. <<tipreceive>>
 <</if>>
 <br><br>
@@ -8499,7 +8510,7 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 	They erupt into cheers at your orgasmic spasms, tossing money at you with one hand and rubbing themselves with the other.
 	<<set $tipmod += 0.2>>
 <<elseif random(1, 5) is 1>>
-	You fondle yourself as the group takes pictures of your lewd display.<<garousal>><<genitalarousal 100>><<fameexhibitionism 2 pic>>
+	You fondle yourself as the group takes pictures of your lewd display.<<garousal>><<genitalarousal 100>><<fameexhibitionism 2 "pic">>
 <<else>>
 	You fondle yourself. The group watches with great interest.<<garousal>><<genitalarousal 100>>
 <</if>>
@@ -8512,7 +8523,7 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 	<<link [[Continue|Street Private Show Masturbate]]>><</link>><<nexttext>>
 	<br>
 <</if>>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Street Private Show Masturbate Finish]]>><<set $finish to 1>><</link>>
@@ -8538,10 +8549,10 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 		<br>
 		A devious smile grows on the <<person1>><<persons>> face. "Poor thing. Maybe we should lend <<pher>> a hand."
 		<br><br>
-		
+
 		The three of them close in around you, blocking your escape.
 		<br><br>
-		
+
 		<<link [[Next|Street Private Show Sex]]>><<set $finish to 0>><<set $crossdressing to 0>><<set $molestationstart to 1>><</link>>
 		<br>
 	<<else>>
@@ -8556,10 +8567,10 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 
 		"Thanks, <<girl>>," the <<person1>><<person>> says. "It was worth every penny." <<He>> pulls a handful of cash out of <<his>> pocket and drops it in front of you, laughing as <<he>> leads <<his>> friends out of the alley.
 		<br><br>
-		
+
 		<<tearful>> you scrounge the money up off the ground. <<tipreceive>>
 		<br><br>
-		
+
 		<<clotheson>>
 		<<endevent>>
 		<<destinationeventend>>
@@ -8574,13 +8585,13 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 	<<else>>
 		<span class="red">An unfamiliar voice rings out from the far end of the alley.</span> "Oi, what's that racket? Who's there?"
 	<</if>>
-	
+
 	The group's enthusiastic demeanor changes in an instant, and they frantically scramble away from you. <<tearful>> you follow suit, grabbing your clothes and the money they dropped before ducking behind a bin.
 	<br><br>
-	
+
 	Once you're certain it's safe, you get dressed and climb out of your hiding spot. You count the money you managed to scrape up. You grabbed most of it, but you ended up leaving some of it behind in your haste. <<tipreceive>>
 	<br><br>
-	
+
 	<<clotheson>>
 	<<destinationeventend>>
 <</if>>
@@ -8605,14 +8616,14 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 <<if $rng gte _rapeChance>>
 	They seem disappointed, and don't take it very well. The <<person1>><<person>> grabs you by the arm. "Oh no, you aren't getting away with just that," <<he>> says.
 	<br><br>
-	
+
 	<<link [[Next|Street Private Show Sex]]>><<set $crossdressing to 0>><<set $molestationstart to 1>><</link>>
 	<br>
 <<else>>
 	<<tipset>>
 	They seem disappointed, but don't pressure you further. You dress yourself and take your money before leaving the alley. <<tipreceive>>
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endevent>>
 	<<destinationeventend>>
@@ -8625,29 +8636,29 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 	<<if $submissive gte 1150>>
 		You quietly refuse their offer. The <<person2>><<person>> leans in uncomfortably close, cupping a hand to <<his>> ear.
 		<br><br>
-		
+
 		"What's that?" <<he>> sneers. "Speak up."
 		<br>
 		"I think <<pshe>> said we can do whatever we want with a slut like <<pher>>," the <<person3>><<person>> interjects. The <<group>> begins to close in around you.
 	<<elseif $submissive lte 850>>
 		You angrily refuse their offer. The three seem annoyed by your behaviour.
 		<br><br>
-		
+
 		"We gave you a fair deal," the <<person2>><<person>> spits. "Guess you need to be taught a lesson about what you exhibitionist sluts are good for."
 	<<else>>
 		You refuse their offer. The three seem disappointed.
 		<br><br>
-		
+
 		"We gave you a fair deal," the <<person2>><<person>> spits. "Guess you need to be taught a lesson about what you exhibitionist sluts are good for."
 	<</if>>
 	<br>
-	
+
 	"Sorry <<girl>>, but we're not taking no for an answer," the <<person1>><<person>> says.
 	<br><br>
-	
+
 	You try to escape, but they grab you and pull you into a nearby alley, tossing you onto the ground. The <<group>> loom over you.
 	<br><br>
-	
+
 	<<link [[Next|Street Private Show Sex]]>><<set $molestationstart to 1>><</link>>
 	<br>
 <<else>>
@@ -8659,7 +8670,7 @@ They seem pleased by your display, but you can tell by the look in their eyes th
 		You refuse their offer. The three seem disappointed, but don't pressure you further. You turn your back to them, unsure how you feel about that conversation.<<stress 6>><<gstress>>
 	<</if>>
 	<br><br>
-	
+
 	<<endevent>>
 	<<destinationeventend>>
 <</if>>
@@ -8680,16 +8691,16 @@ You close your eyes and take slow, deep breaths. Soon enough, you fall unconscio
 	<<drugs 20>>
 	<span class="green">You break loose, gulping down breaths of fresh air.</span> You try to run away, but you wind up tripping. Your body feels heavy and sluggish, but you persevere, get up and keep running.
 	<br><br>
-	
+
 	The perpetrator doesn't try to get you back. Instead, <<he>> calls out, saying <<he>> can explain, but you run as fast as you can without looking back.
 	<br><br>
-	
+
 	<<endevent>>
 	<<destinationeventend>>
 <<else>>
 	You start hyperventilating and try to struggle free, <span class="red">but your movements start to feel sluggish.</span> Your vision begins to darken. Soon enough, you fall unconscious.
 	<br><br>
-	
+
 	<<link [[Next|Street Kidnap Wake]]>><<pass 20>><<drugs 240>><<garousal>><<arousal 1000>><</link>>
 	<br>
 <</if>>
@@ -8741,27 +8752,27 @@ You hear a voice whisper in your ear. "Mmm, you're finally awake." They give you
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
-	
+
 	<<set $money += 10000>>
 	The <<person>> tackles you in a bear hug, squealing with delight.
 	<br>
 	"Yes! I knew it! I knew you were special. My fetish was finally satisfied. It has been so long since I came that hard!"
 	<br><br>
-	
+
 	<<He>> starts giving you big sloppy kisses. Despite the circumstances, all the affection makes you feel warm inside. The drugs might have something to do with that.
 	<br><br>
-	
+
 	After a few more kisses, <<he>> puts you down, pats your head, and gives you <span class="gold">£100</span>. "Please take this. You most definitely deserve it!" <<he>> says excitedly. <<He>> eventually calms down, then continues with an awkward smile.
 	<br>
 	"Sorry for the whole kidnapping thing. After seeing you have sex with so many other people, I knew you would like it! To make up for it, though, I'll give you a ride home."
 	<br><br>
-	
+
 	<<link [[Accept|Street Kidnap Ride Accept]]>><<stress 2>><</link>><<gstress>>
 	<br>
 	<<link [[Refuse|Street Kidnap Ride Refuse]]>><</link>>
 	<br>
 <<elseif $enemyhealth lte 0>>
-	As you land the final blow, your blindfold falls off. You scamper off into the corner. You carefully eye <<him>>, watching <<his>> every movement. 
+	As you land the final blow, your blindfold falls off. You scamper off into the corner. You carefully eye <<him>>, watching <<his>> every movement.
 	<br><br>
 
 	The <<person>> gives a sad sigh and staggers towards you. You <<if $submissive gte 1150>>curl up defensively<<elseif $submissive lte 850>>narrow your eyes in defiance<<else>>brace yourself for another assault<</if>>, but <<he>> doesn't harm you, instead undoing your binds.
@@ -8770,7 +8781,7 @@ You hear a voice whisper in your ear. "Mmm, you're finally awake." They give you
 	<br>
 	"I just wanted someone to satisfy my fetish! I never meant any harm. I see you having sex all the time. I thought you would have been the one."
 	<br><br>
-	
+
 	<<He>> sighs again, slumping against the wall. "You can go. Just leave me here." <<He>> looks like <<hes>> about to burst into tears.
 	<br><br>
 
@@ -8798,7 +8809,6 @@ You decide to make a break for it before the <<person>> changes <<his>> mind. <<
 <<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "domus">>
 
 You do feel a little bad for <<him>>. You decide to give <<him>> at least some sort of pleasure and ask <<him>> if <<he>> still wants a fuck. <<promiscuity3>>
-<br><br>
 
 <<He>> looks at you, annoyed. "Since you're offering, just use your hand or something and leave." You grab their <<if $NPCList[0].penis isnot "none">>cock<<else>>pussy<</if>> and <<handtext>> get to work. As you go through the motions, you glance at <<his>> face. <<He>> looks happy, no matter how much <<he>> tries to hide it.
 <br><br>
@@ -8878,29 +8888,29 @@ The <<person>> leads you out of <<his>> house and to <<his>> car. Though wary, y
 	<<pass 30>>
 	The <<person>> raises an eyebrow. "That's a bit of a ways out, but I don't mind." <<He>> smiles again. "Anything for you."
 	<br><br>
-	
+
 	The car finally pulls into the countryside. The <<person>> gives you one last head pat and unlocks the doors. "Have a good night! Maybe I'll be lucky enough to see you again."
 	<br><br>
-	
+
 	<<tearful>> you exit the car. The <<person>> lingers for a moment, before waving and driving away.
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<link [[Next|Farmland]]>><</link>>
 	<br>
 <<else>>
 	<<pass 5>>
 	After a short drive, the car arrives at the destination. The <<person>> gives you one last head pat and unlocks the doors. "Have a good night! Maybe I'll be lucky enough to see you again."
 	<br><br>
-	
+
 	<<tearful>> you exit the car. The <<person>> lingers for a moment, before waving and driving away.
 	<br><br>
-	
+
 	<<clotheson>>
 	<<endcombat>>
-	
+
 	<<destination5>>
 <</if>>
 
@@ -8922,7 +8932,7 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 :: Street Private Photoshoot Refuse
 <<set $outside to 1>><<effects>>
 	<<if $submissive gte 1150>>
-		"I'm sorry." you say, staring at your feet. "There's something I need to do."
+		"I'm sorry," you say, staring at your feet. "There's something I need to do."
 	<<elseif $submissive lte 850>>
 		You shake your head. "I don't have time for that."
 	<<else>>
@@ -8945,7 +8955,7 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 		<<if $submissive gte 1150>>
 			You nod in consent and follow the <<person>> to a nearby quiet alley.
 		<<elseif $submissive lte 850>>
-			"Alright, I can spare a few minutes." you say. You lead the <<person>> to a nearby quiet alley.
+			"Alright, I can spare a few minutes," you say. You lead the <<person>> to a nearby quiet alley.
 		<<else>>
 			You agree and, together with the <<person>>, find a nearby quiet alley.
 		<</if>>
@@ -8983,7 +8993,7 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 		<</if>>
 		<<His>> smile falters. "Oh, I thought you'd be different." <<he>> says, rueful.
 		<br><br>
-		<<if random(0, 10000) lt $famemodel + $seductionskill + $allure>>
+		<<if random(0, 10000) lt $fame.model + $seductionskill + $allure>>
 			<<set $tipmod += 0.25>>
 			<<His>> smile soon returns. "But I understand." <<he>> nods. "You're right, it's your job and you get paid for it. Alright, I'll pay you."
 			<br><br>
@@ -9053,14 +9063,14 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 				<</if>>
 			<<else>>
 				<<if _clothing_strip_sequence is 0>>
-					<<flaunting>> you tug off your $worn.under_upper.name, revealing your <<breasts>>. 
+					<<flaunting>> you tug off your $worn.under_upper.name, revealing your <<breasts>>.
 				<<elseif _clothing_strip_sequence is 1>>
-					You $worn.under_upper.name comes next, revealing your <<breasts>>. 
+					You $worn.under_upper.name comes next, revealing your <<breasts>>.
 				<<else>>
 					<<if $worn.under_lower.exposed lte 0>>
-						Your $worn.under_upper.name follows, revealing your <<breasts>>. 
+						Your $worn.under_upper.name follows, revealing your <<breasts>>.
 					<<else>>
-						Finally, you peel off your $worn.under_upper.name, revealing your <<breasts>>. 
+						Finally, you peel off your $worn.under_upper.name, revealing your <<breasts>>.
 					<</if>>
 				<</if>>
 			<</if>>
@@ -9068,13 +9078,13 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 		<</if>>
 		You feel your nipples harden in response to being revealed.<<arousal 300>><<garousal>>
 		<br><br>
-		The <<persons>> jaw drops at the unexpected show. 
+		The <<persons>> jaw drops at the unexpected show.
 		<<if $trance is 0>>
-		 	You smile to <<him>> as you coyly cross your arms over your chest, and <<he>> regains <<his>> senses. 
-		 <<else>>
-		 	Seeing you stand calm and collected despite your public exposure, <<he>> regains <<his>> senses. 
-		 <</if>>
-		 <<He>> starts snapping more pictures while showering you with frenzied praises.
+			You smile to <<him>> as you coyly cross your arms over your chest, and <<he>> regains <<his>> senses.
+		<<else>>
+			Seeing you stand calm and collected despite your public exposure, <<he>> regains <<his>> senses.
+		<</if>>
+		<<He>> starts snapping more pictures while showering you with frenzied praises.
 		<br><br>
 		<<if $trance gte 1>>
 			<span class="blue">Your head feels pleasantly empty.</span> You feel a growing urge to act even lewder.
@@ -9106,7 +9116,7 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 		<<if $tipmod gt 0>>
 			<<set $tipmod += 0.25>>
 		<</if>>
-		
+
 		Swaying to imagined rhythm, <<if $worn.feet.name isnot "naked">>you kick off your <<print $worn.feet.name>> as <</if>>you approach the <<person>>. You come to a stop in front of <<him>> and, resting your hands on <<his>> shoulders, gently push <<him>> down to <<his>> knees. Although visibly confused, the <<person>> complies. <<if $trance is 1>><<He>> seems to be as entranced as you are.<</if>>
 		<br><br>
 		<<feetstrip>>
@@ -9138,14 +9148,14 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 		<br><br>
 		The <<person>> seizes a sharp breath. <<He>> grabs your thighs to steady <<himself>>. <<He>> blinks repeatedly as <<he>> stares up at you, enraptured. <<His>> hands shake too much to take any more pictures, and it's clear that right now it's the last thing on <<his>> mind. <<His>> mouth move a few times, but no sound comes out.
 		<br><br>
-		Then, shaking like a leaf, the <<person>> draws closer. <<He>> never breaks eye contact, until <<his>> lips touch your skin, just above your navel, and <<he>> flinches, perhaps expecting you'll push <<him>> away. But no push comes. 
+		Then, shaking like a leaf, the <<person>> draws closer. <<He>> never breaks eye contact, until <<his>> lips touch your skin, just above your navel, and <<he>> flinches, perhaps expecting you'll push <<him>> away. But no push comes.
 		<<if $trance gte 1>>
 			You stand, passive and compliant, and let <<his>> mouth linger.
 		<<else>>
 			High on adrenaline, you stroke the <<personsimple>>'s hair as you let <<his>> mouth linger for a while. You feel fully in control, sexy and powerful.
 		<</if>>
 		<br><br>
-		<<if random(0, 10000) lt $famemodel + $seductionskill + $allure>>
+		<<if random(0, 10000) lt $fame.model + $seductionskill + $allure>>
 			The <<person>> pulls back. <<He>> seeks your eyes again and, rising from <<his>> knees, starts to pull off <<his>> <<npcClothesText $NPCList[0] "lower">>. <<His>> intentions are clear.
 			<br><br>
 			<<if $trance gte 1>>
@@ -9174,7 +9184,7 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 				<br>
 			<</if>>
 		<<else>>
-			The <<person>> pulls back. "Thank you." <<he>> says. 
+			The <<person>> pulls back. "Thank you." <<he>> says.
 			<<if $tipmod gt 0>>
 				<<tipset>>
 				"Forgive me for what I said. You really are special, after all." <<He>> hands you a handful of bank notes and leaves the alley.<<tipreceive>>
@@ -9402,7 +9412,7 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 <<destinationeventend>>
 
 :: Street Private Photoshoot End
-/* $phase 0: silent pass-through, 1: with pc request  */
+/* $phase 0: silent pass-through, 1: with pc request */
 <<set $outside to 1>><<effects>>
 
 <<if $phase gte 1>>
@@ -9424,7 +9434,34 @@ Despite the <<persons>> sincere tone, you think better of accepting a ride from
 	<<He>> seems disappointed, but doesn't pressure you further. <<He>> thanks you for humouring <<him>> and leaves the alley with a friendly wave.
 <</if>>
 <br><br>
-	
+
 <<clotheson>>
 <<endevent>>
 <<destinationeventend>>
+
+:: Street Flash
+<<effects>>
+<<if $phase is 0>>
+	You hurriedly avert your eyes. The <<person>> closes <<his>> trench coat and quickly walks away, beaming.
+<<else>>
+	You realise what is happening and, before the <<person>> can walk away, pull open your <<outfit>>,
+	<<upperstrip>><<lowerstrip>><<exposure>>
+	exposing your <<undertop>> and <<undies>> with a triumphant smirk.
+	<br><br>
+	<<if $exposed gte 2>>
+		<<He>> blushes, not expecting this outcome, and hurriedly escapes the situation. <<He>> only remembers to redo <<his>> trench coat halfway down the street.
+	<<else>>
+		<<He>> cracks a grin and winks at you, before redoing <<his>> trench coat and walking away.
+	<</if>>
+	<<if $phase is 2>>
+		<<exhibitionism2>>
+	<<elseif $phase is 4>>
+		<<exhibitionism4>>
+	<<elseif $phase is 5>>
+		<<exhibitionism5>>
+	<</if>>
+<</if>>
+
+<<clotheson>>
+<<endevent>>
+<<destinationeventend>>
\ No newline at end of file
diff --git a/game/overworld-town/loc-street/main.twee b/game/overworld-town/loc-street/main.twee
index ac51d8120b3c39b3628f9f266e2834bc1c418c3e..1acb48f6e1bc5a95fb497bd2a587c6477e86f89f 100644
--- a/game/overworld-town/loc-street/main.twee
+++ b/game/overworld-town/loc-street/main.twee
@@ -12,7 +12,10 @@ You've pushed yourself too much.
 <<set $danger to random(1, 10000)>>
 <<if $danger gte (9900 - $allure)>><<set $dangerstreet to random(1, 100)>><</if>>
 <<if $danger lt (9900 - $allure)>><<set $safestreet to random(1, 100)>><</if>>
-<<if $NPCName[$NPCNameList.indexOf("Whitney")].state is "active" and $NPCName[$NPCNameList.indexOf("Whitney")].dom lte 1 and $whitneyromance isnot 1 and $dangerstreet gte 1 and $NPCName[$NPCNameList.indexOf("Whitney")].init is 1>>
+<<if $dangerstreet gte 1 and $wolfgirl gte 6 and random(1, 2) is 2>>
+	<<link [[Wake up|Pound Abduction]]>><</link>>
+	<br>
+<<elseif $NPCName[$NPCNameList.indexOf("Whitney")].state is "active" and $NPCName[$NPCNameList.indexOf("Whitney")].dom lte 1 and $whitneyromance isnot 1 and $dangerstreet gte 1 and $NPCName[$NPCNameList.indexOf("Whitney")].init is 1>>
 	<<link [[Wake up|Whitney Abduction]]>><</link>>
 <<elseif ($loveInterest.primary is "Eden" or $loveInterest.secondary is "Eden" or $loveInterest.tertiary is "Eden") and $edenfreedom gte 2 and random(1,3) is 1>>
 	<<set $dangerstreet to 0>>
diff --git a/game/overworld-town/loc-street/oxford.twee b/game/overworld-town/loc-street/oxford.twee
index 089dbf6a99b8015ae79610e31532399a6cd999ee..41832589bfbe51cb969c5b49f175555aaf3f6b75 100644
--- a/game/overworld-town/loc-street/oxford.twee
+++ b/game/overworld-town/loc-street/oxford.twee
@@ -74,7 +74,7 @@ You are on Oxford Street. There's an eclectic mix of buildings, but most notable
 		A car pulls up beside you. The door opens, revealing a <<if $pronoun is "m">>man in a suit<<else>>woman in a smart dress<</if>>. It's Avery. "I'll give you a lift," <<he>> says. "Get in."
 	<<else>>
 		<<set $averyschoolpickupintro to 1>>
-		An expensive-looking car parks in front of you. Most of the students around you stop to gaze at it in awe. The windows lower and you recognise its driver, it's Avery. "There you are," <<he>> says with a smile. "I was on my way back home from work, so I thought I'd come pick you up."
+		An expensive-looking car parks in front of you. Most of the students around you stop to gaze at it in awe. The windows lower and you recognise its driver; it's Avery. "There you are," <<he>> says with a smile. "I was on my way back home from work, so I thought I'd come pick you up."
 		<br><br>
 
 		A few students murmur amongst themselves. They're wondering how you could possibly afford such treatment.<<gcool>><<status 1>>
@@ -95,12 +95,12 @@ You are on Oxford Street. There's an eclectic mix of buildings, but most notable
 			<<map "oxford">>
 			<br>
 		<</if>>
-		<<run getRobinLocation()>>
+		<<set _robin to statusCheck("Robin")>>
 		<<if $robindebtevent gte 1>>
 		<<elseif $hour is 15 and _robin_location is "school" and $exposed lte 0>>
 			You see Robin looking through shop windows.
 			<br><br>
-			<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 80>>
+			<<if _robin.trauma gte 80>>
 				<<link [[Walk home with Robin (0:40)|Robin Walk Home]]>><<run setRobinLocationOverride("orphanage", 15)>><<endevent>><<pass 40>><</link>><<glove>>
 				<br><br>
 			<<else>>
diff --git a/game/overworld-town/loc-street/starfish.twee b/game/overworld-town/loc-street/starfish.twee
index 295a708ac5f2c2ef2d32cfa28f16579697acb4a8..2dc2b84a6441b08d31589ac4996408ee9a334c49 100644
--- a/game/overworld-town/loc-street/starfish.twee
+++ b/game/overworld-town/loc-street/starfish.twee
@@ -30,6 +30,12 @@ You are on Starfish Street. Wind blows in from the ocean.
 
 <<if $stress gte $stressmax and !$possessed>>
 	<<passoutstreet>>
+<<elseif $bailey_pound is 2>>
+	<<set $bailey_pound to 3>>
+	Two ambulances are parked outside the animal pound. <<generate1>><<person1>>A <<person>> pushes a covered stretcher into the back of one, and they drive away.
+	<br><br>
+	<<link [[Next|Starfish Street]]>><<endevent>><</link>>
+	<br>
 <<else>>
 	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 	<<if ($danger gte (9900 - $allure) or $eventforced) and $eventskip is 0>>
@@ -50,6 +56,16 @@ You are on Starfish Street. Wind blows in from the ocean.
 		<<arcadeicon>><<link [[Arcade (0:01)|Arcade Lock]]>><<pass 1>><</link>>
 		<br>
 		<</if>>
+		<<if $openinghours is 1>>
+			<<ind>><<link [[Dog pound (0:01)|Pound]]>><<pass 1>><</link>>
+			<br>
+		<<elseif $hour is $closinghour>>
+			<span class="blue">People are leaving the dog pound.</span> It must be closing time.
+			<br>
+		<<else>>
+			<<ind>><<link [[Dog pound|Pound Lock]]>><</link>>
+			<br>
+		<</if>>
 		<br>
 		<<if $exposed gte 1 and $daystate isnot "night">>
 		<<else>>
diff --git a/game/overworld-town/loc-street/widgets.twee b/game/overworld-town/loc-street/widgets.twee
index e7c8bcfdb346f942b231bf236a92b4e1e6139ee6..e33960cdcf97394f68e6b6c99f2339dab39fd287 100644
--- a/game/overworld-town/loc-street/widgets.twee
+++ b/game/overworld-town/loc-street/widgets.twee
@@ -298,7 +298,7 @@ Your bare foot steps on something sharp. It's a loose rock.
 		<<gpain>><<gstress>><<pain 4>><<stress 6>>
 		<br><br>
 		<<if !$worn.over_lower.type.includes("naked")>>
-			Your $worn.over_lower.name scrapes against the ground. You hear a tear.
+			Your $worn.over_lower.name scrape<<if $worn.over_lower.plural isnot 1>>s<</if>> against the ground. You hear a tear.
 			<<set $worn.over_lower.integrity -= 10>>
 			<br><br>
 			<<if $worn.over_lower.integrity lte 0>>
@@ -308,7 +308,7 @@ Your bare foot steps on something sharp. It's a loose rock.
 				<br><br>
 			<</if>>
 		<<elseif !$worn.lower.type.includes("naked")>>
-			Your $worn.lower.name scrapes against the ground. You hear a tear.
+			Your $worn.lower.name scrape<<if $worn.lower.plural isnot 1>>s<</if>> against the ground. You hear a tear.
 			<<set $worn.lower.integrity -= 10>>
 			<br><br>
 			<<if $worn.lower.integrity lte 0>>
@@ -329,7 +329,7 @@ Your bare foot steps on something sharp. It's a loose rock.
 		<<gpain>><<gstress>><<pain 4>><<stress 6>>
 		<br><br>
 		<<if !$worn.over_lower.type.includes("naked")>>
-			Your $worn.over_lower.name scrapes against the ground. You hear a tear.
+			Your $worn.over_lower.name scrape<<if $worn.over_lower.plural isnot 1>>s<</if>> against the ground. You hear a tear.
 			<<set $worn.over_lower.integrity -= 10>>
 			<br><br>
 			<<if $worn.over_lower.integrity lte 0>>
@@ -339,7 +339,7 @@ Your bare foot steps on something sharp. It's a loose rock.
 				<br><br>
 			<</if>>
 		<<elseif !$worn.lower.type.includes("naked")>>
-			Your $worn.lower.name scrapes against the ground. You hear a tear.
+			Your $worn.lower.name scrape<<if $worn.lower.plural isnot 1>>s<</if>> against the ground. You hear a tear.
 			<<set $worn.lower.integrity -= 10>>
 			<br><br>
 			<<if $worn.lower.integrity lte 0>>
@@ -388,21 +388,30 @@ You move from shadow to shadow, dashing through patches of light as quickly as y
 <br><br>
 <<beastNEWinit 1 dog>>
 
-You hear a growl from a nearby alley and instinctively freeze in place. You regain control as a shaggy black <<beasttype>> emerges from the darkness, teeth bared.
-<br><br>
+<<if $stray_happiness gte random(1, 100)>>
+	You hear a growl from a nearby alley and instinctively freeze in place. You regain control as you see a pair of eyes glint in the darkness.<<gstress>><<stress 6>>
+	<br><br>
+	You make a quick escape.
+	<br><br>
+	<<endevent>>
+	<<destinationeventend>>
+<<else>>
+	You hear a growl from a nearby alley and instinctively freeze in place. You regain control as a shaggy black <<beasttype>> emerges from the darkness, teeth bared.
+	<br><br>
 
-<<if $monster is 1 or $bestialitydisable is "f">>
-	<<link [[Run|StreetEx3]]>><<set $phase to 0>><</link>><<athleticsdifficulty 1 600>>
-	<br>
+	<<if $monster is 1 or $bestialitydisable is "f">>
+		<<link [[Run|StreetEx3]]>><<set $phase to 0>><</link>><<athleticsdifficulty 1 600>>
+		<br>
 
-	<!-- Modified for Beast People -->
-	<<link [[Try to befriend it|StreetEx3]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
-	<br>
-<<else>>
-	<<link [[Run|StreetEx3]]>><<set $phase to 0>><<set $athleticsSuccess to true>><</link>>
+		<!-- Modified for Beast People -->
+		<<link [[Try to befriend it|StreetEx3]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
+		<br>
+	<<else>>
+		<<link [[Run|StreetEx3]]>><<set $phase to 0>><<set $athleticsSuccess to true>><</link>>
+		<br>
+	<</if>>
 	<br>
 <</if>>
-<br>
 
 <</widget>>
 
@@ -577,7 +586,7 @@ You hear voices up ahead, and take cover down a stairwell leading to a basement.
 <<widget "street4">>
 <<set $rng to random(1, 100)>>
 <<generate1>><<person1>>A <<person1>><<person>> approaches you.
-<<if $rng gte 65 and $fameexhibitionism gte 400>>
+<<if $rng gte 65 and $fame.exhibitionism gte 400>>
 	"Hey I recognise you! You're that <<girl>> who likes showing off. Want to make some money? I'll give you £50 if I can take some pictures of your <<if $player.gender_appearance is "m">>penis<<else>>pussy<</if>> for my... collection."
 	<br><br>
 
@@ -643,7 +652,7 @@ You hear voices up ahead, and take cover down a stairwell leading to a basement.
 <</if>>
 
 <<if $promiscuity gte 15>>
-	<<if $rng lte 15 and ($crime gte 1000 or $fameprostitution gte 400)>>
+	<<if $rng lte 15 and ($crime gte 1000 or $fame.prostitution gte 400)>>
 		<<link [[Get in|Street Car]]>><<set $phase to 10>><</link>><<promiscuous2>>
 		<br>
 	<<else>>
@@ -653,7 +662,7 @@ You hear voices up ahead, and take cover down a stairwell leading to a basement.
 <</if>>
 
 <<if $promiscuity lte 14 and $uncomfortable.prostituting is false>>
-	<<if $rng lte 15 and ($crime gte 1000 or $fameprostitution gte 400)>>
+	<<if $rng lte 15 and ($crime gte 1000 or $fame.prostitution gte 400)>>
 		<<link [[Reluctantly get in|Street Car]]>><<set $desperateaction to 1>><<set $phase to 10>><</link>><<promiscuous2>>
 		<br>
 	<<else>>
@@ -819,7 +828,7 @@ A <<generates1>><<person1>><<person>> leans out of a passing car and hurls a lar
 <<widget "streetnight1">>
 <!-- Modified for Beast People -->
 <<beastNEWinit 3 dog>>
-<<if $monster is 1 or $bestialitydisable is "f">>
+<<if $stray_happiness lte random(1, 100) and $monster is 1 or $bestialitydisable is "f">>
 	Your journey is interrupted by a savage growl emerging from the darkness. You turn to avoid it, only to face a pair of glowing eyes. You're surrounded.
 	<br><br>
 	<<link [[Next|Street Dogs]]>><<set $molestationstart to 1>><</link>>
@@ -1003,7 +1012,7 @@ You take cover in a bus shelter, just as a bus rounds the corner. It slows down
 <<widget "streetpolice">>
 
 	<<set $rng1 to random(1, 100)>><<set $rng2 to random(1, 100)>><<set $rng3 to random(1, 100)>><<set $rng4 to random(1, 100)>>
-	<<if $skulduggery gte 700 and $rng4 gte 40 and $policemolestation gte 4>>
+	<<if currentSkillValue('skulduggery') gte 700 and $rng4 gte 40 and $policemolestation gte 4>>
 		<<if $streetpoliceintro isnot 1>>
 			<<set $streetpoliceintro to 1>>
 			There are those around most never see. The pickpockets and predators, the muggers, kidnappers and thieves, the opportunistic rapists with hungry, reptilian eyes. They don't skulk in shadows like amateurs -
@@ -1421,7 +1430,7 @@ You stumble in your heels and fall forwards. As your face approaches the ground,
 <</widget>>
 
 <<widget "kylarwatched">>
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 
 <<if $dangerevent gte 81>>
 	<<set $kylarwatchedtimer -= 1>>
@@ -1495,7 +1504,7 @@ You stumble in your heels and fall forwards. As your face approaches the ground,
 		<</if>>
 	<</if>>
 
-<<elseif _kylarStatus.includes("LoveLust")>>
+<<elseif _kylarStatus.includesAll("Love","Lust")>>
 	<<set $kylarwatchedtimer to 0>><<rngWraith 2 "night">>
 
 	<<npc Kylar>><<person1>>Something tugs your arm. It's Kylar. "H-hi," <<he>> gulps. <<He>> tries to pull you toward a dark alley. "We need privacy. I need you to do things to me."
@@ -1648,7 +1657,7 @@ You stumble in your heels and fall forwards. As your face approaches the ground,
 		<<elseif $rng gte 21>>
 			<<generate1>><<person1>>A group of <<if $pronoun is "m">>boys<<else>>girls<</if>> smile at you as they walk past. They keep looking back at you and whisper to each other. You make out the words "broodmother" and "slut". You blush.
 		<<else>>
-			<<generate1>><<generate2>>A <<person1>><<person>> points at you across the road and turns to <<his>> friend. "That's the one," <<he>> says, "that slut I was telling you about  The fucktoy that wants to be knocked up." You blush.
+			<<generate1>><<generate2>>A <<person1>><<person>> points at you across the road and turns to <<his>> friend. "That's the one," <<he>> says, "that slut I was telling you about. The fucktoy that wants to be knocked up." You blush.
 		<</if>>
 		<<gtrauma>><<gstress>><<trauma 3>><<stress 3>>
 		<br><br>
@@ -1855,7 +1864,7 @@ A hooded figure bumps into you. A note falls from the folds of their coat, landi
 <<set $rng to random(0,100)>>
 You round a corner and walk right into a <<generate1>><<person1>><<person>>, causing the large package that they were holding to fall to the ground.
 <br><br>
-<<if $fameexhibitionism gte 400 or $famesex gte 400 or $fameprostitution gte 400 or $famerape gte 400>>
+<<if $fame.exhibitionism gte 400 or $fame.sex gte 400 or $fame.prostitution gte 400 or $fame.rape gte 400>>
 	"Careful <<girl>>," <<he>> says while checking the package. Happy it isn't damaged, <<he>> takes another look at you and continues,
 	"You look familiar. Do I know you from somewhere?"
 	<br><br>
@@ -1885,13 +1894,13 @@ You round a corner and walk right into a <<generate1>><<person1>><<person>>, cau
 
 <<widget "streetexshow">>
 <<generate1>><<generate2>><<generate3>><<person1>>
-<<if $fameexhibitionism gte 1000>>
+<<if $fame.exhibitionism gte 1000>>
 	You notice some <<group>> coming towards you. One of them, a <<person>>, points at you, and says something to the other two. Your first instinct is to run, but they're already too close. They surround you, making sure not to attract any attention.
 	<br><br>
-	
+
 	"Hey <<girl>>," the <<person>> says. "You're that slut that likes showing off, right?" <<He>> puts a hand in <<his>> pocket. You feel tense, but relax a little once <<he>> takes out a few bank notes. "How about a little private show?"
 	<br><br>
-	
+
 	<<if $exhibitionism gte 75>>
 		<span class="lewd">A particularly lewd idea strikes you.</span> Stripping right here, out in the open, would be even more exciting.
 		<br>
@@ -1909,10 +1918,10 @@ You round a corner and walk right into a <<generate1>><<person1>><<person>>, cau
 	<br><br>
 	"Cute outfit," <<he>> calls out. "But I bet you'd look better without it."
 	<br><br>
-	
+
 	The group bursts into laughter. Your face flushes as you increase your pace, leaving them and their crude remarks behind you.<<stress 3>><<trauma 3>><<gstress>><<gtrauma>>
 	<br><br>
-	
+
 	<<endevent>>
 	<<destinationeventend>>
 <</if>>
@@ -1921,12 +1930,12 @@ You round a corner and walk right into a <<generate1>><<person1>><<person>>, cau
 <<widget "streetkidnap">>
 <<generate1>><<person1>>
 You spot a hooded figure skulking under a streetlamp.
-<<if $famebestiality + $famerape + $famesex gte random(1000, 4000)>>
+<<if fameSum("sex","rape","bestiality") gte random(1000, 4000)>>
 	You pay them little mind as you pass, until you suddenly feel something grab your shoulder. You freeze up from fear and start taking deep breaths.
 	<br>
 	As you turn your head, an arm tightly wraps around your waist. A damp rag is roughly clamped over your mouth and nose.
 	<br><br>
-	
+
 	<<link [[Struggle|Street Kidnap Struggle]]>><</link>><<physiquedifficulty 2000 12000>>
 	<br>
 	<<link [[Give in|Street Kidnap Give]]>><<stress 6>><<trauma 6>><</link>><<gstress>><<gtrauma>>
@@ -1934,7 +1943,7 @@ You spot a hooded figure skulking under a streetlamp.
 <<else>>
 	It turns to regard you before hastily walking in the other direction.<<stress 3>><<gstress>>
 	<br><br>
-	
+
 	<<endevent>>
 	<<destinationeventend>>
 <</if>>
@@ -1981,7 +1990,7 @@ You smell freshly baked pastries, and hear a knock on a nearby door. You recogni
 
 <<widget "streetmodelshow">>
 <<generate1>><<person1>>
-<<if $famemodel gte 400>>
+<<if $fame.model gte 400>>
 	A <<person>> steps in front of you, a smile on <<his>> face.
 	<br><br>
 
@@ -2002,15 +2011,54 @@ You smell freshly baked pastries, and hear a knock on a nearby door. You recogni
 
 	"You've got looks of a model, <<lass>>," <<he>> smirks. "Wanna pose for a few shots? I've got my camera right here." <<His>> hand cups <<his>> crotch, leaving no doubt about <<his>> intentions.
 	<br><br>
-	
+
 	Your face flushes. Pulling free from <<his>> grasp you hasten away, leaving the <<person>> and <<his>> crude remarks behind you.<<stress 3>><<trauma 3>><<gstress>><<gtrauma>>
 	<br><br>
-	
+
 	<<endevent>>
 	<<destinationeventend>>
 <</if>>
 <</widget>>
 
+<<widget "streetnpcflash">>
+	<<generate1>><<person1>>
+	While walking
+	<<if $location is "alley">>
+		through the alley,
+	<<else>>
+		down the street,
+	<</if>>
+	a <<person>> in a trench coat walks up to you. "Excuse me," <<he>> asks, "<<print either("is there something on my coat","how does my coat look","do you see any stains")>>?"
+	<br><br>
+
+	You stop and look at <<his>> coat for a moment. As you're staring, the <<person>> grins and opens <<his>> trench coat before you can look away, <<npcRevealText $NPCList[0] "both">>, in all <<his>> glory.
+	<<if $exhibitionism gte 75 and $worn.under_lower.type.includes("naked")>>
+		<br><br>
+		<<link [["Flash " + $NPCList[0].pronouns.him + " back"|Street Flash]]>><<set $phase to 5>><</link>><<exhibitionist5>><<lstress>><<garousal>>
+		<br>
+		<<link [[Ignore|Street Flash]]>><<set $phase to 0>><<stress 3>><</link>><<gstress>>
+	<<elseif $exhibitionism gte 55 and $player.gender_appearance is "f" and $worn.under_upper.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>
+		<br><br>
+		<<link [["Flash " + $NPCList[0].pronouns.him + " back"|Street Flash]]>><<set $phase to 4>><</link>><<exhibitionist4>><<lstress>><<garousal>>
+		<br>
+		<<link [[Ignore|Street Flash]]>><<set $phase to 0>><<stress 3>><</link>><<gstress>>
+	<<elseif $exhibitionism gte 15 and !$worn.under_lower.type.includes("naked") and ($player.gender_appearance is "m" or !$worn.under_upper.type.includes("naked"))>>
+		<br><br>
+		<<link [["Flash " + $NPCList[0].pronouns.him + " back"|Street Flash]]>><<set $phase to 2>><</link>><<exhibitionist2>><<lstress>><<garousal>>
+		<br>
+		<<link [[Ignore|Street Flash]]>><<set $phase to 0>><<stress 3>><</link>><<gstress>>
+	<<else>>
+		<<stress 6>><<trauma 3>><<arousal 600>><<gstress>><<gtrauma>><<garousal>>
+		<br><br>
+
+		<<He>> closes <<his>> trench coat and quickly walks away, leaving you stunned.
+		<br><br>
+
+		<<endevent>>
+		<<destinationeventend>>
+	<</if>>
+<</widget>>
+
 :: Widget Passout Street [widget]
 <<widget "passoutstreet">>
 /*ToDo: Pregnancy, remove $pregnancyTesting to properly enable*/
@@ -2629,37 +2677,37 @@ You find a quiet place and open the <<wallet>>.
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 36>>
-			<<if $famesex gte random(1, 1000)>>
+			<<if $fame.sex gte random(1, 1000)>>
 				<<streetsexfame>>
 			<<else>>
 				<<eventsstreetnight>>
 			<</if>>
 		<<elseif $dangerevent lte 45>>
-			<<if $famerape gte random(1, 1000)>>
+			<<if $fame.rape gte random(1, 1000)>>
 				<<streetrapefame>>
 			<<else>>
 				<<eventsstreetnight>>
 			<</if>>
 		<<elseif $dangerevent lte 54>>
-			<<if $famebestiality gte random(1, 1000)>>
+			<<if $fame.bestiality gte random(1, 1000)>>
 				<<streetbestialityfame>>
 			<<else>>
 				<<eventsstreetnight>>
 			<</if>>
 		<<elseif $dangerevent lte 63>>
-			<<if $fameprostitution gte random(1, 1000)>>
+			<<if $fame.prostitution gte random(1, 1000)>>
 				<<streetprostitutionfame>>
 			<<else>>
 				<<eventsstreetnight>>
 			<</if>>
 		<<elseif $dangerevent lte 72>>
-			<<if $famepregnancy gte random(1, 1000)>>
+			<<if $fame.pregnancy gte random(1, 1000)>>
 				<<streetpregnancyfame>>
 			<<else>>
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 81>>
-			<<if $fameexhibitionism gte random(1, 1000)>>
+			<<if $fame.exhibitionism gte random(1, 1000)>>
 				<<streetexhibitionismfame>>
 			<<else>>
 				<<eventsstreetnight>>
@@ -2766,7 +2814,7 @@ You find a quiet place and open the <<wallet>>.
 	<<elseif $NPCName[$NPCNameList.indexOf("Avery")].state isnot "dismissed" and $averyseen isnot 1 and $weekday is 7 and $daystate is "day" and ($scienceproject is "won" or $scienceproject is "done" or $NPCName[$NPCNameList.indexOf("Avery")].init is 1)>>
 		<<set $averyseen to 1>>
 		<<streetavery>>
-	<<elseif $fame gte 3000 and $photo_known is undefined>>
+	<<elseif fameTotal() gte 3000 and $photo_known is undefined>>
 		<<set $photo_known to 1>>
 		<<street_niki>>
 		<<set $niki_seen to "street">>
@@ -2791,37 +2839,37 @@ You find a quiet place and open the <<wallet>>.
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 36>>
-			<<if $famesex gte random(1, 1000)>>
+			<<if $fame.sex gte random(1, 1000)>>
 				<<streetsexfame>>
 			<<else>>
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 45>>
-			<<if $famerape gte random(1, 1000)>>
+			<<if $fame.rape gte random(1, 1000)>>
 				<<streetrapefame>>
 			<<else>>
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 54>>
-			<<if $famebestiality gte random(1, 1000)>>
+			<<if $fame.bestiality gte random(1, 1000)>>
 				<<streetbestialityfame>>
 			<<else>>
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 63>>
-			<<if $fameprostitution gte random(1, 1000)>>
+			<<if $fame.prostitution gte random(1, 1000)>>
 				<<streetprostitutionfame>>
 			<<else>>
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 72>>
-			<<if $famepregnancy gte random(1, 1000)>>
+			<<if $fame.pregnancy gte random(1, 1000)>>
 				<<streetpregnancyfame>>
 			<<else>>
 				<<eventsstreetday>>
 			<</if>>
 		<<elseif $dangerevent lte 81>>
-			<<if $fameexhibitionism gte random(1, 1000)>>
+			<<if $fame.exhibitionism gte random(1, 1000)>>
 				<<streetexhibitionismfame>>
 			<<else>>
 				<<eventsstreetday>>
@@ -2912,7 +2960,7 @@ You find a quiet place and open the <<wallet>>.
 <</widget>>
 
 <<widget "eventsstreetday">>
-<<set $dangerevent to random(1, 180)>>
+<<set $dangerevent to random(1, 184)>>
 <<set $rng to random(1, 100)>>
 <<if $location is "alley" and $schoolday isnot 1 and $bullytimer gte $rng and $NPCName[$NPCNameList.indexOf("Whitney")].init is 1 and $NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon" and $pillory_tenant.special.name isnot "Whitney" and $whitney_park is undefined>>
 	<<set $bullytimer to 0>>
@@ -2966,11 +3014,13 @@ You find a quiet place and open the <<wallet>>.
 	<<streetexshow>>
 <<elseif $dangerevent lte 180>>
 	<<streetmodelshow>>
+<<elseif $dangerevent lte 184>>
+	<<streetnpcflash>>
 <</if>>
 <</widget>>
 
 <<widget "eventsstreetnight">>
-<<set $dangerevent to random(1, 154)>>
+<<set $dangerevent to random(1, 158)>>
 <<set $rng to random(1, 100)>>
 <<if $location is "alley" and $schoolday isnot 1 and $bullytimer gte $rng and $NPCName[$NPCNameList.indexOf("Whitney")].init is 1 and $NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon" and $pillory_tenant.special.name isnot "Whitney" and $whitney_park is undefined>>
 	<<set $bullytimer to 0>>
@@ -3022,6 +3072,8 @@ You find a quiet place and open the <<wallet>>.
 	<<destinationeventend>>
 <<elseif $dangerevent lte 154>>
 	<<streetmodelshow>>
+<<elseif $dangerevent lte 158>>
+	<<streetnpcflash>>
 <</if>>
 <</widget>>
 
diff --git a/game/overworld-town/loc-street/wolf.twee b/game/overworld-town/loc-street/wolf.twee
index 041bc7b093fd1c69c0db0e1f7068fdae2646ee9d..54016b730e1eb5c796798e435ab7811334f33776 100644
--- a/game/overworld-town/loc-street/wolf.twee
+++ b/game/overworld-town/loc-street/wolf.twee
@@ -42,9 +42,9 @@ You are on Wolf Street. The nearby forest bleeds into the town here, particularl
 		<br>
 			<<if $soup_kitchen_known is 1 and $exposed lte 0>>
 				<<if $hour gte 18 and $hour lte 20>>
-				<<soupkitchenicon>><<link [[Soup kitchen (0:01)|Soup Kitchen]]>><<pass 1>><</link>>
+					<<soupkitchenicon>><<link [[Soup kitchen (0:01)|Soup Kitchen]]>><<pass 1>><</link>>
 				<<else>>
-				<<soupkitchenicon>><<link [[Soup kitchen (0:01)|Soup Kitchen Closed]]>><<pass 1>><</link>>
+					<<soupkitchenicon>><<link [[Soup kitchen (0:01)|Soup Kitchen Closed]]>><<pass 1>><</link>>
 				<</if>>
 			<br>
 			<</if>>
diff --git a/game/overworld-town/loc-strip club/events.twee b/game/overworld-town/loc-strip club/events.twee
index 2a91eea3bc0af43599574da5e7797d9183fae99f..4c86383d0cc102d9f6f9db47863f1b153b7f8953 100644
--- a/game/overworld-town/loc-strip club/events.twee	
+++ b/game/overworld-town/loc-strip club/events.twee	
@@ -265,7 +265,6 @@ The <<person3>><<person>> looks on the verge of tears. <<He>> picks up <<his>> t
 
 You shake your head at security, leaving you at the mercy of the <<person2>><<person>>.
 <<promiscuity4>>
-<br><br>
 
 <<if $NPCList[1].penis isnot "none">>
 	The <<person2>><<person>> thrusts against your <<bottom>>. Each time it feels like you're about to be penetrated, <<his>> $NPCList[1].penisdesc slides between your cheeks instead. You glance back, and see <<him>> cast occasional wary glances at security. Seems both are unsure how far things can be pushed.
@@ -668,8 +667,7 @@ You continue to ignore the <<person>>. <<He>> insults you under <<his>> breath,
 :: Bartending VIP Patron
 <<set $outside to 0>><<set $location to "strip_club">><<effects>>
 
-You walk over to the <<person>>. <<He>> doesn't look at your face the entire time, instead staring at your <<if $player.penisExist>><<penis>>.<<else>><<breasts>>.<</if>><<if $phase is 1>><<else>><<promiscuity2>><</if>>
-<br>
+You walk over to the <<person>>. <<He>> doesn't look at your face the entire time, instead staring at your <<if $player.penisExist>><<penis>>.<<else>><<breasts>>.<</if>><<if $phase is 1>><br><br><<else>><<promiscuity2>><</if>>
 
 <<He>> continues to stare even after you arrive.
 <<if $submissive gte 1150>>
@@ -1347,7 +1345,7 @@ The rest of the shift passes without event. <<tipreceive>>
 You enter Darryl's office. <<Hes>> standing by <<his>> desk, hunched over an open book. <<Hes>> doesn't realise you're there until you're stood right beside <<him>>.
 <br><br>
 
-"Oh, sorry," <<he>> says, turning to face you. <<if $skulduggery gte 200>><<He>> shuts the book and covers it with another.<</if>> "I was lost in thought. Is everything okay downstairs?"
+"Oh, sorry," <<he>> says, turning to face you. <<if currentSkillValue('skulduggery') gte 200>><<He>> shuts the book and covers it with another.<</if>> "I was lost in thought. Is everything okay downstairs?"
 <br><br>
 
 You tell <<him>> what happened, and what you overheard. "I'm sorry you have to go through this," <<he>> says when you're finished. "I'll have someone wait for you outside. It's just a precaution, but they'll make sure you get home safely."
diff --git a/game/overworld-town/loc-strip club/main.twee b/game/overworld-town/loc-strip club/main.twee
index 228980da7eaa7396105e8b91b92c39f9a4088096..6c468004601ac7f2af176efbd5e7a78c862df5fb 100644
--- a/game/overworld-town/loc-strip club/main.twee	
+++ b/game/overworld-town/loc-strip club/main.twee	
@@ -388,13 +388,13 @@ You get to work supplying the patrons with overpriced drinks and snacks. <<if $d
 	<br><br>
 
 	<<if $rng gte 96>>
-		You overhear a <<generate1>><<generate2>><<person1>><<person>> and <<person2>><<person>> discussing their sexual exploits. <<if $awareness gte 400>>Sounds pretty vanilla.<<else>>You must have misheard though. <span class="lewd"><i>That's not an appropriate way to use an aquarium!</i></span> <<gawareness>><<awareness 1>><</if>><<endevent>>
+		You overhear a <<generate1>><<generate2>><<fullGroup>> discussing their sexual exploits. <<if $awareness gte 400>>Sounds pretty vanilla.<<else>>You must have misheard though. <span class="lewd"><i>That's not an appropriate way to use an aquarium!</i></span> <<gawareness>><<awareness 1>><</if>><<endevent>>
 		<br><br>
 	<<elseif $rng gte 91>>
-		You overhear a <<generate1>><<generate2>><<person1>><<person>> and <<person2>><<person>> discussing their sexual exploits. <<if $awareness gte 200>>Sounds pretty vanilla.<<else>>You must have misheard though. <span class="lewd"><i>People don't really do such things!</i></span> <<gawareness>><<awareness 1>><</if>><<endevent>>
+		You overhear a <<generate1>><<generate2>><<fullGroup>> discussing their sexual exploits. <<if $awareness gte 200>>Sounds pretty vanilla.<<else>>You must have misheard though. <span class="lewd"><i>People don't really do such things!</i></span> <<gawareness>><<awareness 1>><</if>><<endevent>>
 		<br><br>
 	<<elseif $rng gte 86>>
-		You overhear a <<generate1>><<generate2>><<person1>><<person>> and <<person2>><<person>> discussing their sexual exploits. <<if $awareness gte 100>>Sounds pretty vanilla.<<else>>You must have misheard though. <span class="lewd">They can't really be talking about putting <i>that</i> in such a place!</span> <<gawareness>><<awareness 1>><</if>><<endevent>>
+		You overhear a <<generate1>><<generate2>><<fullGroup>> discussing their sexual exploits. <<if $awareness gte 100>>Sounds pretty vanilla.<<else>>You must have misheard though. <span class="lewd">They can't really be talking about putting <i>that</i> in such a place!</span> <<gawareness>><<awareness 1>><</if>><<endevent>>
 		<br><br>
 
 	<</if>>
@@ -427,7 +427,7 @@ Some patrons eye you up, but they're mostly distracted by the dancers. <<tiprece
 <<widget "eventsbartending">>
 <<set $rng to random(1, 100)>>
 <<if $rng gte 100>>
-	<<generate1>><<person1>>"Hey," says a voice behind you. You turn to the counter, and see a <<person>> leaning against it. <<He>> wears an expensive <<if $pronoun is "f">>dress.<<else>>suit.<</if>> "Why don't you bring your little ass closer? I might have something in my pocket."
+	<<generate1>><<person1>>"Hey," says a voice behind you. You turn to the counter, and see a <<person>> leaning against it. <<He>> wears an expensive <<if $pronoun is "f">>dress.<<else>>suit.<</if>> "Why don't you bring that ass closer? I might have something in my pocket."
 	<br><br>
 
 	There's no question that <<his>> intentions are lewd.
@@ -486,7 +486,7 @@ Some patrons eye you up, but they're mostly distracted by the dancers. <<tiprece
 	<</if>>
 	<br>
 <<elseif $rng gte 41 and $bartendaction is "vip">>
-	<<generate1>><<person1>>"Hey," says a voice behind you. You turn to the counter, and see a <<person>> leaning against it. <<He>> wears an expensive <<if $pronoun is "f">>dress.<<else>>suit.<</if>> "Why don't you bring your little ass closer? I might have something in my pocket."
+	<<generate1>><<person1>>"Hey," says a voice behind you. You turn to the counter, and see a <<person>> leaning against it. <<He>> wears an expensive <<if $pronoun is "f">>dress.<<else>>suit.<</if>> "Why don't you bring that ass closer? I might have something in my pocket."
 	<br><br>
 
 	There's no question that <<his>> intentions are lewd.
@@ -810,7 +810,7 @@ You manage to knock <<him>> prone. <<He>> struggles to stand up, but it gives yo
 <<set $outside to 0>><<set $location to "strip_club">><<effects>>
 <<towelup>>
 <<if $phase is 0>><<npcincr Darryl dom -5>>
-"It was nothing." you say, doing your best to suppress the tremor in your voice. Darryl responds, "It wasn't nothing, you saved me!" <<He>> stands closer to you, <<his>> voice dropping to a whisper. "I just froze up, it was so horrible..." <<He>> trails off as you put your arms around <<him>>. <<He>> leans against you and quietly sobs.
+"It was nothing," you say, doing your best to suppress the tremor in your voice. Darryl responds, "It wasn't nothing, you saved me!" <<He>> stands closer to you, <<his>> voice dropping to a whisper. "I just froze up, it was so horrible..." <<He>> trails off as you put your arms around <<him>>. <<He>> leans against you and quietly sobs.
 <br><br>
 
 You guide <<him>> to <<his>> office and you spend the rest of your shift comforting <<him>> and chatting.
@@ -836,7 +836,7 @@ Darryl embraces you and
 <<generate1>><<person1>>Once escorted from the building, a <<person>> bumps into you on the street. "I'm so sorry! Here, you dropped this." <<He>> practically forces a slip of paper into your hand, then marches away before you can say anything.
 <br><br>
 
-You read the paper, it has the address of a building on Harvest Street followed by a brief message: "If you're fed up with being treated like a child, come see us." <span class="gold">You can now access the suspicious building on Harvest Street.</span>
+You read the paper, it has the address of a building on Harvest Street followed by a brief message: "If you're looking for grander opportunities, come see us." <span class="gold">You can now access the suspicious building on Harvest Street.</span>
 <br><br>
 
 <<set $brothelknown to 1>><<set $stripclubfailed to 0>>
@@ -890,7 +890,7 @@ Staying low, you dart across the pavement towards the alley.
 	<br>
 	"Did you see <<pher>> face?"
 	<br>
-	"Nah, <<pshe>> was too quick. Had $haircolour hair though. Maybe we'll see <<phim>> inside."
+	"Nah, <<pshe>> was too quick. Had <<haircolourtext>> hair though. Maybe we'll see <<phim>> inside."
 	<br>
 	"We should check the alley out. <<pShe>> might still be there."
 	<br><br>
diff --git a/game/overworld-town/loc-temple/events.twee b/game/overworld-town/loc-temple/events.twee
index ea180185d8e8469eea336be35c501b803d6031d3..5c166f7162635254d70ef6136a4247aab0b4ef49 100644
--- a/game/overworld-town/loc-temple/events.twee
+++ b/game/overworld-town/loc-temple/events.twee
@@ -48,7 +48,7 @@ You sit on the grass beside the initiates.
 
 :: Temple Garden Join Sydney
 
-<<temple_effects>><<effects>><<NPCStatusCheck "Sydney">>
+<<temple_effects>><<effects>><<run statusCheck("Sydney")>>
 You sit on the grass beside Sydney. <<sydneyGreeting>> <<if $sydneyromance is 1>><<He>> scoots closer to you, and puts <<his>> head on your shoulder.<<else>><<He>> smiles at you.<</if>>
 <<if $temple_rank is "initiate">>
 	They're happy to accept you. You recognise a couple from school.
@@ -242,7 +242,7 @@ The <<person1>><<monk>> leads you to Danube Street, and up to one of the mansion
 <br><br>
 <<pass 30>>
 The rest of the street continues in much the same way. Some homes are more polite than others.
-<<if $skulduggery gte 400>>
+<<if currentSkillValue('skulduggery') gte 400>>
 	<span class="purple">You notice the <<monk>> trace a holy symbol on each doorframe as <<he>> reaches to knock.</span>
 	<<gawareness>><<awareness 1>>
 <</if>>
diff --git a/game/overworld-town/loc-temple/garden.twee b/game/overworld-town/loc-temple/garden.twee
index ee70490fa9a8f87ef45338784c16814ffecacc7b..0fe37ea444cb4e540880f2019c674a5f6b748cfe 100644
--- a/game/overworld-town/loc-temple/garden.twee
+++ b/game/overworld-town/loc-temple/garden.twee
@@ -167,7 +167,7 @@ You ask a priest what work needs doing around the garden. You're asked to tend t
 		<<tending_text>> It doesn't take long. You're just finishing up when Jordan arrives from the temple, a <<person3>><<person>> in tow.
 		<br><br>
 
-		Jordan whispers to the <<person2>><<monk>>, who smiles and looks at you. "Keep shovelling," <<he>> says. "This young'un is attempting the trial." You return to work, shovelling more coal onto the fire while the <<monk>> encourages the flame with a pair of bellows.
+		Jordan whispers to the <<person2>><<monk>>, who smiles and looks at you. "Keep shovelling," <<he>> says. "This one is attempting the trial." You return to work, shovelling more coal onto the fire while the <<monk>> encourages the flame with a pair of bellows.
 		<br><br>
 
 		The <<monk>> grabs a shovel and starts spreading the coals into a thin bed. You follow suit. You soon have the bed ready. The <<person3>><<person>> looks on, apprehensive.
@@ -862,7 +862,7 @@ You keep low as you move between hedges, peeking around each corner before makin
 <<else>>
 	<<endevent>>
 	<<generate1>><<generate2>>
-	You see a nun's habit hanging on a line <<if $weather is "rain">>that's been shifted out of the rain in haste<<elseif $weather is "snow">>that's been shifted out of the snow in haste<<else>>above a bed of flowers<</if>>. There are some towels on the same line. The towels are closer. A <<person1>><<person>> and <<person2>><<person>>, each wearing a habit, are tending to a flower bed nearby. Their backs are turned.
+	You see a nun's habit hanging on a line <<if $weather is "rain">>that's been shifted out of the rain in haste<<elseif $weather is "snow">>that's been shifted out of the snow in haste<<else>>above a bed of flowers<</if>>. There are some towels on the same line. The towels are closer. A <<fullGroup>>, each wearing a habit, are tending to a flower bed nearby. Their backs are turned.
 	<br><br>
 	<<set $skulduggerydifficulty to 700>>
 	<<link [[Steal habit|Temple Garden Habit]]>><<set $skulduggerydifficulty to 700>><<crimeup 50>><</link>><<skulduggerydifficulty>><<crime>>
diff --git a/game/overworld-town/loc-temple/main.twee b/game/overworld-town/loc-temple/main.twee
index c81063fea4219c925975e0d14ae37bd1570bc255..b29a6c5921b95d1e93895934303b374bb4220322 100644
--- a/game/overworld-town/loc-temple/main.twee
+++ b/game/overworld-town/loc-temple/main.twee
@@ -42,14 +42,14 @@ You are in the main hall of the temple. Stone walls and pillars tower into darkn
 			The figure turns. It's Jordan, holding Sydney by the arm. "My child," <<he>> says. "<span class="red">Sydney has failed <<nnpc_his "Sydney">> chastity examination.</span>
 		<<else>>
 			"My child," says a voice from the side. It's Jordan, holding Sydney by the arm. "<span class="red">Sydney has failed <<nnpc_his "Sydney">> chastity examination.</span>
-		<</if>>	
+		<</if>>
 		We know you're the one responsible, and you must be purified alongside <<nnpc_him "Sydney">>. I'm sorry." <<He>> produces a small bell from <<his>> robes, and rings.
 		<br><br>
 		Jordan releases Sydney, who quickly clings to you.
 		<br><br>
 		<<endevent>>
 		<<link [[Next|Sydney Temple Punish Intro]]>><</link>>
-		<br>		
+		<br>
 	<<else>>
 		<<npc Jordan>><<person1>>
 		<<if $daystate isnot "night" and $daystate isnot "dusk">>
@@ -73,7 +73,7 @@ You are in the main hall of the temple. Stone walls and pillars tower into darkn
 
 <<elseif _sydneyTemple and $sydneyAnalRosary>>
 	<<npc Sydney>><<person1>>
-	<<NPCStatusCheck "Sydney">>
+	<<run statusCheck("Sydney")>>
 	<<unset $sydneyAnalRosary>>
 	<<if _sydneyStatus.includes("pure")>>
 		You spot Sydney peeking out from behind a pillar, fiddling with something in <<his>> hands. <span class="lewd">It's a string of anal beads.</span> The same one from the store.
@@ -115,7 +115,7 @@ You are in the main hall of the temple. Stone walls and pillars tower into darkn
 
 <<elseif $dance_job_intro and $jordan_ritual_dance is undefined and ($grace gte 80 and $temple_rank is "initiate" or $temple_rank is "monk" or $temple_rank is "priest")>>
 	<<npc Jordan>><<person1>>
-	"My child," says a voice from the side. It's Jordan, looking more haggard than usual. A rogue strand of hair falls between <<his>> eyes. "I must ask a favour. <span class="gold">Do you know Charlie?</span> Forgive me my inquiry, but you have something of a reputation as a dancer.
+	"My child," says a voice from the side. It's Jordan, looking more haggard than usual. A rogue strand of hair falls between <<his>> eyes. "I must ask a favour. <span class="gold">Do you know Charlie?</span> Forgive me my enquiry, but you have something of a reputation as a dancer."
 	<br><br>
 
 	"One of our flock recently found work at a manor on Danube Street. They've since disappeared. This manor is known to hire entertainers. Should your work take you there, keep an eye out for anything unusual, but be careful. I'm not asking you to put yourself at risk. If you find anything, please just report back to me. Thank you."
@@ -126,7 +126,7 @@ You are in the main hall of the temple. Stone walls and pillars tower into darkn
 <<elseif $adultshopgrandopening is true and _sydneyTemple is true and $NPCName[$NPCNameList.indexOf("Sydney")].init is 1 and $adultshopunlocked isnot true>>
 	<<set $adultshopopeningsydney to true>>
 	<<npc Sydney>><<person1>>
-	<<NPCStatusCheck "Sydney">>
+	<<run statusCheck("Sydney")>>
 	Sydney almost bumps into you on the way out.
 	<<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("corruptLust")>>
 		"Aha," <<he>> says, grasping your forearm. "I was hoping to run into you. Come on, we're missing the grand opening!"
@@ -855,7 +855,7 @@ You tell Jordan you were attacked. <<He>> listens without a word, only speaking
 	<br>
 <<else>>
 	<<if $templetest isnot "failed">>
-		<<if $famegood gte 0>>
+		<<if $fame.good gte 0>>
 			Jordan observes you, unblinking. "Admission to the <<if $player.gender_appearance is "m">>brotherhood<<else>>sisterhood<</if>> is restricted to virgins, and those who have made amends via the trial of purity."
 			<br><br>
 			<<link [[Virginity test|Temple Test]]>><<set $phase to 1>><</link>>
@@ -878,14 +878,13 @@ You tell Jordan you were attacked. <<He>> listens without a word, only speaking
 	<<else>>
 		"I'm sorry child," Jordan says. "Admission to the <<if $player.gender_appearance is "m">>brotherhood<<else>>sisterhood<</if>> is restricted to virgins, and those who have made amends via the trial of purity."
 		<br><br>
-			<<if $famegood gte 0>>
+			<<if $fame.good gte 0>>
 				<<link [[Ask about trial|Temple Trial Intro]]>><</link>>
 				<br>
 				<<link [[Leave|Temple]]>><<endevent>><</link>>
 				<br>
 			<<else>>
 				"You also need a modest reputation for kindness. We do important work, and it requires people trust us. If you pray here you'll often see someone going round with a collection plate. Giving to charity would be a good way to prove yourself."
-			<br><br>
 				<br><br>
 				"Return when you're better known and we'll discuss the next step. Thank you for your interest." <<He>> turns back to the altar.
 				<br><br>
@@ -1180,7 +1179,7 @@ You look down to examine it yourself. It doesn't feel as tight or uncomfortable
 <<He>> leads you out of the main hall and into a small room. "Please undress," <<he>> says. You ignore your apprehension and remove your clothing.
 
 <<if $worn.genitals.origin is "temple">>
-	<<He>> produces a sinister bladed instrument from <<his>> robes and kneels in front of you. 
+	<<He>> produces a sinister bladed instrument from <<his>> robes and kneels in front of you.
 	Seconds later, the belt lies ruined on the floor and your <<genitals_are 1>> once again exposed and vulnerable.
 	<br><br>
 	<<He>> stands up. "All done. If you would like a replacement you know where to find me." <<He>> leaves you alone in the room.
@@ -1465,7 +1464,7 @@ You stare at the <<person>>. <<His>> smile falters. "They'll believe me," you sa
 You describe the problems you've had, and how they started when a slime entered your ear. Jordan listens with a blank look.
 <br><br>
 
-<<Hes>> silent for a moment. "There are stories," <<he>> begins. "Of old creatures like you describe. One of our artifacts details how to remove them. There was an altar at the old temple. <i>The afflicted would lie on it during a blood moon.</i>"
+<<Hes>> silent for a moment. "There are stories," <<he>> begins. "Of old creatures like you describe. One of our artefacts details how to remove them. There was an altar at the old temple. <i>The afflicted would lie on it during a blood moon.</i>"
 <br><br>
 
 "It doesn't matter though," <<he>> adds. "The old temple <i>sank beneath the lake</i> centuries ago. Students sometimes go out there after school. Entering the forest alone is a bad idea, and the ruin is... tainted."
@@ -1633,7 +1632,7 @@ The <<person2>><<monk>> smothers the coals with a bucket of sand as Jordan leads
 You step forward as quick as you can. You feel the coals heat beneath you.
 <<pain 1>>
 <br><br>
-<<if ($willpower / 10) gte (($pain - 100) + random(1, 100))>>
+<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100))>>
 	<span class="green">A little sting isn't enough to stop you.</span>
 	<<gwillpower>><<willpower 1>>
 	<br><br>
@@ -1655,7 +1654,7 @@ You step forward as quick as you can. You feel the coals heat beneath you.
 You step forward again. The coals are even hotter.
 <<pain 2>>
 <br><br>
-<<if ($willpower / 10) gte (($pain - 100) + random(1, 100))>>
+<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100))>>
 	<span class="green">Still nothing you can't handle.</span>
 	<<gwillpower>><<willpower 1>>
 	<br><br>
@@ -1677,7 +1676,7 @@ You step forward again. The coals are even hotter.
 You step forward again, now about halfway across the coals. The heat continues to build.
 <<pain 3>>
 <br><br>
-<<if ($willpower / 10) gte (($pain - 100) + random(1, 100))>>
+<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100))>>
 	<span class="green">You feel your soles burn, but you're determined to continue.</span>
 	<<gwillpower>><<willpower 1>>
 	<br><br>
@@ -1699,7 +1698,7 @@ You step forward again, now about halfway across the coals. The heat continues t
 You tense as your foot comes down again, the coals now hotter still.
 <<pain 4>>
 <br><br>
-<<if ($willpower / 10) gte (($pain - 100) + random(1, 100))>>
+<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100))>>
 	<span class="green">You manage to keep your cool.</span>
 	<<gwillpower>><<willpower 1>>
 	<br><br>
@@ -1721,7 +1720,7 @@ You tense as your foot comes down again, the coals now hotter still.
 You cringe as your foot comes down again. You're so close.
 <<pain 5>>
 <br><br>
-<<if ($willpower / 10) gte (($pain - 100) + random(1, 100))>>
+<<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100))>>
 	<span class="green">You wonder if you'll need to visit the hospital after. You don't care.</span>
 	<<gwillpower>><<willpower 1>>
 	<br><br>
@@ -2113,7 +2112,6 @@ You're led through the tunnel and back to the temple. The others are silent the
 <<masturbationstart>>
 <<set $timer to random(10, 30)>>
 You search for a secluded spot. It's not easy, as the temple is so busy. You watch a pillar in the corner of the room for several minutes. No one goes behind it. You sneak over and sit. <<exhibitionism4>>
-<br><br>
 	<<if $angel gte 6>>
 	<span class="red">You feel disgusted with yourself.</span>
 	<br><br>
@@ -2125,7 +2123,7 @@ You search for a secluded spot. It's not easy, as the temple is so busy. You wat
 <<if $timer lte 1>>
 	<<if $NPCName[$NPCNameList.indexOf("Sydney")].init is 1 and _sydney_location is "temple">>
 		<<link [[Continue|Temple Masturbation Sydney]]>><</link>><<nexttext>>
-		<br>		
+		<br>
 	<<else>>
 		<<link [[Continue|Temple Masturbation Finish]]>><</link>><<nexttext>>
 		<br>
@@ -2134,7 +2132,7 @@ You search for a secluded spot. It's not easy, as the temple is so busy. You wat
 	<<link [[Continue|Temple Masturbation]]>><</link>><<nexttext>>
 <br>
 <</if>>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Temple Masturbation Finish]]>><<set $finish to 1>><</link>>
diff --git a/game/overworld-town/loc-temple/prayer.twee b/game/overworld-town/loc-temple/prayer.twee
index 2e026f9b1ea66c7963a11878c02c1727f0798f05..490b67705dfe4d10f2421f9376dc84b6f63d9b42 100644
--- a/game/overworld-town/loc-temple/prayer.twee
+++ b/game/overworld-town/loc-temple/prayer.twee
@@ -140,7 +140,6 @@ The air is thick with the smell of a sweet incense. You can't see where its bein
 
 :: Temple Prayer
 <<temple_effects>><<pass 60>><<effects>>
-<<NPCStatusCheck "Kylar Sydney">>
 <<set _rng to random(1,7)>>
 
 <<set $hallucinogen += 60>>
@@ -174,6 +173,7 @@ You sit on the cushion, and pray. The incense makes you feel light and dizzy.
 			<<lstress>><<stress -6>>
 		<</if>>
 	<<case 2>>
+		<<run statusCheck("Kylar")>>
 		<<if $NPCName[$NPCNameList.indexOf("Kylar")].love gte 60 and $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and random(1, 2) is 2>>
 			Your thoughts turn to Kylar,
 				<<if _kylarStatus.includes("Rage")>>
@@ -276,6 +276,7 @@ You sit on the cushion, and pray. The incense makes you feel light and dizzy.
 			<<lstress>><<stress -6>>
 		<</if>>
 	<<case 6>>
+		<<run statusCheck("Sydney")>>
 		<<if $NPCName[$NPCNameList.indexOf("Sydney")].love gte 90 and random(1, 2) is 2>>
 			Your thoughts turn to Sydney,
 			<<if ($templePromised is "Sydney" and $player.virginity.temple is false) or $NPCName[$NPCNameList.indexOf("Sydney")].virginity.temple is false or ($templePromised isnot "Sydney" and !_sydneyVirgin)>>
diff --git a/game/overworld-town/loc-temple/science-project.twee b/game/overworld-town/loc-temple/science-project.twee
index 1444daca68d0035ddf077c0abf91a04704c8f602..f575f2347bd9f82ed481460e8523f1296b9e5b51 100644
--- a/game/overworld-town/loc-temple/science-project.twee
+++ b/game/overworld-town/loc-temple/science-project.twee
@@ -104,7 +104,7 @@ You try to pick the old bronze lock. At your touch, the old chain crumbles and t
 	<span class="red">You fail to catch it.</span> It clatters against the ground, sending echoes through the building.
 	<br><br>
 	<<skulduggeryuse>>
-	
+
 	<<generateTemple 1>><<person1>> A <<person>> dressed as a <<monk>> storms down the corridor. "What are you up to?" <<he>> asks. <<He>> spots the lock on the floor.
 	<<stress 6>><<gstress>>
 	<br><br>
diff --git a/game/overworld-town/loc-temple/soup-kitchen.twee b/game/overworld-town/loc-temple/soup-kitchen.twee
index 8a8c44aced9903146bc7a155c9a0816912b6820a..7792a940cd81d20d9cfcacb4acdb04426709032b 100644
--- a/game/overworld-town/loc-temple/soup-kitchen.twee
+++ b/game/overworld-town/loc-temple/soup-kitchen.twee
@@ -72,7 +72,7 @@ A couple of minutes later the <<monk>> returns, several others in tow. You follo
 
 <<set $outside to 0>><<set $location to "town">><<effects>>
 The other <<monks>> shuffle in and begin to work out how to carry everything.
-<<if $physique gte 12000>>
+<<if currentSkillValue('physique') gte 12000>>
 	A burly <<monk>> asks for your help lifting the oven.
 <<else>>
 	They give you a box of cutlery to carry.
@@ -84,7 +84,7 @@ Together, you and the <<monks>> carry the kitchen out the back door and across t
 You enter Domus street, and see the orphanage up ahead. The <<monk>> stops. "Trouble <<if $pronoun is "m">>lads<<else>>girls<</if>>," <<he>> says. You see why. Bailey stands beside an open car, talking to a <<generate4>><<person4>><<person>> you don't recognise. "We don't want to get spotted."
 <br><br>
 <<person3>>
-<<if $physique gte 12000>>
+<<if currentSkillValue('physique') gte 12000>>
 	"We should wait around the corner," the burly <<monk>> suggests. "They won't hang around forever." <<He>> places the oven on the ground. You're glad to have a break.
 	<<gtiredness>><<tiredness 6>><<physique 6>>
 	<br><br>
@@ -192,13 +192,14 @@ River pierces you with <<his>> blue eyes. "I didn't expect to see you here," <<h
 <br>
 
 :: Soup Kitchen Work
-
 <<set $outside to 0>><<set $location to "temple">><<effects>>
 You help River work the kitchen. You cut vegetables ready for cooking and clean up any spillages made throughout the hall.
 <br><br>
+<<cleareventpool>>
 <<if $danger gte (9900 - $allure)>>
-	<<if $rng gte 61>>
-		You're bent over one such spillage when you feel a hand on your <<bottom>>. You turn to see a <<npc River>><<generate2>><<person2>><<person>> groping you. <<He>> squeezes.
+	<<addinlineevent "kitchen_grope" 2>>
+		<<npc River>><<generate2>><<person2>>
+		You're bent over one such spillage when you feel a hand on your <<bottom>>. You turn to see a <<person>> groping you. <<He>> squeezes.
 		<<gstress>><<gtrauma>><<stress 6>><<trauma 6>>
 		<br><br>
 		<<link [[Ignore|Soup Kitchen Grope Ignore]]>><<set $submissive += 1>><<stress 6>><<arousal 600>><</link>><<gstress>><<garousal>>
@@ -207,8 +208,10 @@ You help River work the kitchen. You cut vegetables ready for cooking and clean
 		<br>
 		<<link [[Get angry|Soup Kitchen Grope Angry]]>><<set $submissive -= 1>><<stress -6>><<trauma -6>><<npcincr River love -1>><</link>><<llove>><<ltrauma>><<lstress>>
 		<br>
-	<<elseif $rng gte 21>>
-		<<npc River>><<generate2>><<person2>>"Hey cutie," a <<person>> says to you as you're cutting up a carrot. "How about we go-"
+	<</addinlineevent>>
+	<<addinlineevent "kitchen_preposition" 2>>
+		<<npc River>><<generate2>><<person2>>
+		"Hey cutie," a <<person>> says to you as you're cutting up a carrot. "How about we go-"
 		<br><br>
 		<<Hes>> interrupted by a ladle whack to the hand. "I want none of that in my kitchen," River says, giving the <<person>> another whack. "Keep those thoughts to yourself, or get out." <<person1>><<He>> looks pale despite <<his>> stern voice.
 		<br><br>
@@ -217,12 +220,14 @@ You help River work the kitchen. You cut vegetables ready for cooking and clean
 		<<endevent>>
 		<<link [[Next|Soup Kitchen]]>><</link>>
 		<br>
-	<<else>>
+	<</addinlineevent>>
+	<<addinlineevent "kitchen_van" 1>>
+		<<generate1>><<generate2>><<generate3>><<person1>>
 		River asks you to bring more vegetables in from a van outside.
 		<br><br>
 		You're on the way back, crate in hands, when you hear a voice around the corner of the building.
 		<br><br>
-		<<generate1>><<generate2>><<generate3>><<person1>>"You didn't think you'd get away, did you?" says a husky <<personsimple>>'s voice. "Cheating the boss like that, you'll be lucky if you don't end up in the pit."
+		"You didn't think you'd get away, did you?" says a husky <<personsimple>>'s voice. "Cheating the boss like that, you'll be lucky if you don't end up in the pit."
 		<br><br>
 		"I-It was an accident," a voice stammers in response. A third voice laughs.
 		<br><br>
@@ -232,28 +237,33 @@ You help River work the kitchen. You cut vegetables ready for cooking and clean
 		<br>
 		<<link [[Ignore|Soup Kitchen Ignore]]>><</link>>
 		<br>
-	<</if>>
+	<</addinlineevent>>
 <<else>>
-	<<if $rng gte 81>>
-		<<npc River>><<person1>>An argument at the far end of the hall becomes heated. River asks you to handle the soup while <<he>> deals with it. You get to work spooning ladle fulls into bowls for the waiting crowd. You need to work fast to keep up with the flow of people, but manage to do so without making a mess.
+	<<addinlineevent "kitchen_argument" 1>>
+		<<npc River>><<person1>>
+		An argument at the far end of the hall becomes heated. River asks you to handle the soup while <<he>> deals with it. You get to work spooning ladle fulls into bowls for the waiting crowd. You need to work fast to keep up with the flow of people, but manage to do so without making a mess.
 		<br><br>
 		River returns a few minutes later. <<He>> seems pleased you were able to handle things.
 		<br><br>
 		<<endevent>>
 		<<link [[Next|Soup Kitchen]]>><</link>>
 		<br>
-	<<elseif $rng gte 61>>
+	<</addinlineevent>>
+	<<addinlineevent "kitchen_baking" 1>>
 		River asks you to take a batch of freshly baked bread from the oven. You replace the previous tray just as it empties.
 		<br><br>
 		<<link [[Next|Soup Kitchen]]>><</link>>
 		<br>
-	<<elseif $rng gte 41>>
+	<</addinlineevent>>
+	<<addinlineevent "kitchen_honest_work" 1>>
 		You spend most of the hour on your hands and knees, cleaning up spilled soup.
 		<br><br>
 		<<link [[Next|Soup Kitchen]]>><</link>>
 		<br>
-	<<elseif $rng gte 21>>
-		<<generate1>><<person1>>A <<monk>> spills soup down <<his>> habit. "Clumsy," River mutters. "Go rinse yourself down in the back. You." River points at your chest. "Get <<him>> a spare set of clothes from the temple."
+	<</addinlineevent>>
+	<<addinlineevent "kitchen_habit_spill" 1>>
+		<<generate1>><<person1>>
+		A <<monk>> spills soup down <<his>> habit. "Clumsy," River mutters. "Go rinse yourself down in the back. You." River points at your chest. "Get <<him>> a spare set of clothes from the temple."
 		<br><br>
 		You walk to the temple as instructed. You find a <<monk>> sweeping the floor near the entrance. You explain what happened, and <<he>> retrieves a fresh habit for <<his>> clumsy colleague.
 		<br><br>
@@ -263,14 +273,17 @@ You help River work the kitchen. You cut vegetables ready for cooking and clean
 		<br>
 		<<link [[Leave the clean habit|Soup Kitchen Habit]]>><</link>>
 		<br>
-	<<else>>
-		<<generatey1>><<person1>> You notice a <<person>> you recognise from the orphanage. "D-don't tell anyone you saw me," <<he>> says. "Bailey doesn't like us eating here."
+	<</addinlineevent>>
+	<<addinlineevent "kitchen_orphan" 1>>
+		<<generatey1>><<person1>>
+		You notice a <<person>> you recognise from the orphanage. "D-don't tell anyone you saw me," <<he>> says. "Bailey doesn't like us eating here."
 		<br><br>
 		<<endevent>>
 		<<link [[Next|Soup Kitchen]]>><</link>>
 		<br>
-	<</if>>
+	<</addinlineevent>>
 <</if>>
+<<runeventpool>>
 
 :: Soup Kitchen Investigate
 
diff --git a/game/overworld-town/loc-temple/widgets.twee b/game/overworld-town/loc-temple/widgets.twee
index 248b48a9c3a2e7a7fe155acd9839210ba77bab5b..b3b022f947314509d38b06c86672bd8672c5beb8 100644
--- a/game/overworld-town/loc-temple/widgets.twee
+++ b/game/overworld-town/loc-temple/widgets.twee
@@ -358,7 +358,7 @@
 		<br>
 	<<elseif $fallenangel gte 2>>
 		<<generatey1>><<generate2>><<person1>>
-		You realise everyone avoids looking at you. Except a <<person>>, who stares at your broken halo in wonder. <<His>> <<person2>><<father>> covers <<his>> eyes and drags <<him>> away.
+		You realise everyone avoids looking at you. Except a <<person>>, who stares at your broken halo in wonder. <<His>> <<person2>><<father>> covers <<person1>><<his>> eyes and drags <<him>> away.
 		<<gtrauma>><<trauma 6>>
 		<br><br>
 		<<endevent>>
@@ -415,7 +415,7 @@
 		<br>
 	<</if>>
 
-<<elseif $rng gte 63 and pregnancyBellyVisible()>>
+<<elseif $rng gte 63 and pregnancyBellyVisible() and $pregnancyspeechdisable is "f">>
 	<<generatey1>><<generate2>>
 	You spot a <<person1>><<person>> taking glances at your belly. <<He>> turns to a <<person2>><<person>>, seemingly <<person1>><<his>> <<person2>><<father>>, and asks, "Is <<pshe>> pregnant?"
 	<br><br>
@@ -478,7 +478,7 @@
 		<br><br>
 
 		<<if _sydneyTemple>>
-			<<NPCStatusCheck "Sydney">>
+			<<run statusCheck("Sydney")>>
 			<<if _sydneyStatus.includes("corrupt")>>
 				You think Sydney might see it too.
 			<<else>>
diff --git a/game/overworld-town/skul-connudatus/main.twee b/game/overworld-town/skul-connudatus/main.twee
index 583fd0c010d0c2bf8eef1294065bc3b9e1868aa7..4aee40da53be45d510b81d319ef73aaa45391fc8 100644
--- a/game/overworld-town/skul-connudatus/main.twee
+++ b/game/overworld-town/skul-connudatus/main.twee
@@ -27,7 +27,7 @@ You scan the crowds.
 		<br>
 	<</if>>
 <<elseif $rng gte 60>>
-	<<generate1>><<generate2>>A <<person1>><<person>> and <<person2>><<person>> sit outside a restaurant. The <<person1>><<persons>> <<wallet>> sits atop a bag by <<his>> legs.
+	<<generate1>><<generate2>>A <<fullGroup>> sit outside a restaurant. The <<person1>><<persons>> <<wallet>> sits atop a bag by <<his>> legs.
 	<br><br>
 	<<link [[Take it|Connudatus Thievery Restaurant]]>><<crimeup 5>><</link>><<crime>>
 	<br>
diff --git a/game/overworld-town/skul-shops/main.twee b/game/overworld-town/skul-shops/main.twee
index 0c5cc290e9e6365cfdbb5c28a3dd543f184fc622..9b798118a52f8faef6d5976e28e7b354b8aa4ad9 100644
--- a/game/overworld-town/skul-shops/main.twee
+++ b/game/overworld-town/skul-shops/main.twee
@@ -164,6 +164,47 @@ There's <<printmoney $tip>>.
 	<br>
 <</if>>
 
+:: Furniture Shop Register
+
+<<set $outside to 0>><<effects>><<set $lock to 200>>
+A standard cash register sits on a counter. It's locked tight.
+<br><br>
+<<if currentSkillValue('skulduggery') gte $lock>>
+	<span class="green">The lock looks easy to pick.</span>
+	<br><br>
+	<<link [[Pick it (0:10)|Furniture Shop Register Sneak]]>><<pass 10>><<crimeup 1>><</link>><<crime>>
+	<br>
+<<else>>
+	<span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>>
+	<br><br>
+<</if>>
+<<link [[Leave|Furniture Shop]]>><</link>>
+<br>
+
+:: Furniture Shop Register Sneak
+
+<<set $outside to 0>><<effects>><<set $lock to 200>>
+<<set $furnitureshoptheft to 1>>
+<<set $tip to random(3000, 9000)>>
+<<set $tip to Math.round($tip)>>
+You deftly open the cash register and count out the money inside.
+There's <<printmoney $tip>>.
+<br><br>
+<<if $skulduggery lt 300>>
+	<<skulduggeryskilluse>>
+<<else>>
+	<span class="blue">There's nothing more you can learn from locks this simple.</span>
+<</if>>
+<br><br>
+<<if $rng gte 86>>
+	<<skulshopevents>>
+<<else>>
+	<<link [[Take it|Furniture Shop]]>><<set $money += $tip>><<set $crime += ($tip / 100)>><</link>><<crime>>
+	<br>
+	<<link [[Leave it|Furniture Shop]]>><</link>>
+<</if>>
+<br>
+
 :: Hairdressers Register
 
 <<set $outside to 0>><<effects>><<set $lock to 200>>
diff --git a/game/overworld-town/special-avery/main.twee b/game/overworld-town/special-avery/main.twee
index 1aaa7effb68d1dc385558e21edb99e230a8eb9c4..3cc9aa8142fd37374daffc94da6076be11d74917 100644
--- a/game/overworld-town/special-avery/main.twee
+++ b/game/overworld-town/special-avery/main.twee
@@ -590,7 +590,7 @@ You lay back on the bed, and feeling the soft fabric on your bare skin instantly
 You are snapped out of your reverie by a click from the door. Your heart begins to race as the door slowly opens, with Avery walking in shortly after. <<His>> eyes widen as <<he>> notices you, before smiling and walking over.
 <br><br>
 <<if $averyragerevealed is 1>>
-	"I hope this is your way of saying you'll be on your best behavior, <<pcpetname "Avery">>." <<His>> expression softens.
+	"I hope this is your way of saying you'll be on your best behaviour, <<pcpetname "Avery">>." <<His>> expression softens.
 <<else>>
 	"You certainly know how to start the night, <<pcpetname "Avery">>."
 <</if>>
@@ -740,7 +740,8 @@ You glance at the visibly steaming water.
 		<<link [[Strip naked|Avery Hotel Bath Naked]]>><<set $endear += 10>><<npcincr Avery love 3>><</link>><<exhibitionist3>><<gendear>><<gglove>>
 		<br>
 	<<else>>
-		You are not lewd enough to fully expose yourself here.<br>
+		You are not lewd enough to fully expose yourself here.
+		<br>
 	<</if>>
 	<<link [[Accept|Avery Hotel Bath Swimwear]]>><<npcincr Avery love 1>><</link>><<glove>>
 	<br>
@@ -754,7 +755,8 @@ You glance at the visibly steaming water.
 		<<link [[Strip naked|Avery Hotel Bath Naked]]>><<set $endear += 10>><<npcincr Avery love 3>><</link>><<exhibitionist3>><<gendear>><<gglove>>
 		<br>
 	<<else>>
-		You are not lewd enough to fully expose yourself here.<br>
+		You are not lewd enough to fully expose yourself here.
+		<br>
 	<</if>>
 	<<link [[Accept|Avery Hotel Bath Swimwear]]>><<npcincr Avery love 1>><</link>><<glove>>
 	<br>
@@ -775,12 +777,15 @@ You glance at the visibly steaming water.
 	<br><br>
 
 	<<if $exhibitionism gte 55>>
-		Being naked in the suite would be one thing, but you're out in the open...<br>
+		Being naked in the suite would be one thing, but you're out in the open...
+		<br>
 	<</if>>
 	<<if $worn.under_lower.type.includes("naked")>>
-		You aren't even wearing any underwear!<br>
+		You aren't even wearing any underwear!
+		<br>
 	<<elseif $player.gender_appearance isnot "m" and $worn.under_upper.type.includes("naked")>>
-			You aren't wearing an under top! Your <<breasts>> would be exposed!<br>
+			You aren't wearing an under top! Your <<breasts>> would be exposed!
+			<br>
 		<<if $exhibitionism gte 15>>
 			<<link [[Go in topless|Avery Hotel Bath Topless]]>><<set $endear += 10>><<npcincr Avery love 1>><</link>><<exhibitionist2>><<gendear>><<glove>>
 			<br>
@@ -796,7 +801,8 @@ You glance at the visibly steaming water.
 		<<link [[Strip naked|Avery Hotel Bath Naked]]>><<set $endear += 10>><<npcincr Avery love 3>><</link>><<exhibitionist3>><<gendear>><<gglove>>
 		<br>
 	<<else>>
-		You are not lewd enough to fully expose yourself here.<br>
+		You are not lewd enough to fully expose yourself here.
+		<br>
 	<</if>>
 	<<link [[Refuse|Avery Hotel Refuse]]>><<npcincr Avery love -1>><<npcincr Avery rage 5>><</link>><<llove>><<garage>>
 	<br><br>
@@ -907,7 +913,8 @@ There's idle chatter, mostly Avery talking about <<his>> week. For a long while,
 	<<flashbackschool>>
 	You're snapped out of it by Avery shaking you. "Hey! What's wrong, <<pcpetname "Avery">>? What happened to you?"
 	<br><br>
-	You tell <<him>> about it, without really meaning to, but the words simply won't stop coming forward. <<His>> expression turns dark as <<he>> holds you close. <<npcincr Avery love 1>><<set $endear -=10>><<npcincr Avery rage -20>><<glove>><<lendear>><<lllarage>>
+	You tell <<him>> about it, without really meaning to, but the words simply won't stop coming forward. <<His>> expression turns dark as <<he>> holds you close.
+	<<npcincr Avery love 1>><<set $endear -=10>><<npcincr Avery rage -20>><<glove>><<lendear>><<lllarage>>
 	<br><br>
 	"Maybe we should call it an early night. I've got just the thing to keep your mind off of your troubles." <<He>> gets out of the hot tub, offering you a hand.
 	<br><br>
@@ -1179,7 +1186,7 @@ You take a sip of the drink. It's immediately apparent that this is no ordinary
 <<effects>><<set $underlowerwet to 0>><<set $underupperwet to 0>>
 <<npc Avery>><<person1>>
 <<if $phase is 0>>
-	 <<He>> pauses for a moment. "On second thought, perhaps it would be best if you went home early. Unless you could stand to spend the night with me," <<he>> says, throwing <<his>> arms up in the air.
+	<<He>> pauses for a moment. "On second thought, perhaps it would be best if you went home early. Unless you could stand to spend the night with me," <<he>> says, throwing <<his>> arms up in the air.
 <<elseif $phase is 1>>
 	You take Avery's hand as <<he>> pulls you from the hot tub. The two of you dry off and get dressed before walking back into the suite. <<He>> winces as <<he>> sees the time. "It's been a lovely night, <<pcpetname "Avery">>. Would you care to spend the rest of it with me? Or would you prefer I take you home?"
 <<elseif $phase is 2>>
@@ -1365,7 +1372,7 @@ You roll over, forcing Avery off of you.
 <br><br>
 You hear <<him>> mumble something, but <<he>> quickly rolls over and goes quiet.
 <br><br>
-<<link [[Next|Avery Hotel Morning]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>><<ltiredness>>
+<<link [[Next|Avery Hotel Morning]]>><<set $sleephour to 8>><<incrementautosave>><</link>><<ltiredness>>
 <br>
 
 :: Avery Hotel Morning
@@ -1384,7 +1391,7 @@ You hear <<him>> mumble something, but <<he>> quickly rolls over and goes quiet.
 	<<if _wakingEffect isnot undefined>>
 		Looking to Avery who is
 	<<else>>
-		You wake up to Avery 
+		You wake up to Avery
 	<</if>>
 	already dressed and your <<if $worn.upper.set is $worn.lower.set>>$worn.upper.name<<else>>$worn.upper.name and $worn.lower.name<</if>> laying on the end of the bed, neatly folded. "Good morning, <<pcpetname "Avery">>."
 	<br><br>
@@ -1494,7 +1501,7 @@ Avery carries you all the way to your room, laying you in your bed. "Thank you f
 	<<set $money += (($NPCName[$NPCNameList.indexOf("Avery")].love * 10 + $endear * 10 + 10) * 100)>>
 	<<He>> nods, smiling. <<He>> begins thumbing through some money, handing you <span class="gold">£<<print ($NPCName[$NPCNameList.indexOf("Avery")].love * 10 + $endear * 10 + 10)>></span>. "You should buy something nice for yourself. My treat."
 	<br><br>
-	<<He>> takes you by the hand again, leading you out of the suite and to the lobby. It takes <<him>> a few minutes to get you checked out, but soon enough the two of you are on your way to the orphanage. <<He>> seems happy enough with your behavior.
+	<<He>> takes you by the hand again, leading you out of the suite and to the lobby. It takes <<him>> a few minutes to get you checked out, but soon enough the two of you are on your way to the orphanage. <<He>> seems happy enough with your behaviour.
 	<br><br>
 	<<storeon "averyCar" "check">>
 	<<if _store_check is 1>>
@@ -1631,27 +1638,27 @@ A <<person2>><<person>> approaches Avery, and grasps <<person1>><<his>> hand.
 <<He>> turns to you.
 <<if $worn.face.type.includes("mask")>>
 	"Such a mysterious companion. This isn't a masquerade, but I'll let it slide. We all have our secrets."
-<<elseif $famesocial gte 1000>>
+<<elseif $fame.social gte 1000>>
 	<<if _averyPartyUnrecognised>>
 		"You certainly know how to make an impression, gracing us with one such as <<pher>>."
 	<<else>>
 		"Avery must be moving up in the world, to be accompanied by one such as you."
 	<</if>>
 	<<He>> gives you a small bow.
-<<elseif $famesocial gte 600>>
+<<elseif $fame.social gte 600>>
 	"I'm honoured that you would grace us this evening." <<He>> gives you a small bow.
-<<elseif $famesocial gte 400>>
+<<elseif $fame.social gte 400>>
 	"Thank you for gracing us with your presence this evening."
-<<elseif $famesocial gte 200>>
+<<elseif $fame.social gte 200>>
 	<<if _averyPartyUnrecognised>>
 		"I recognise your companion. I admit <<pshes>> more dignified than our guests' usual fare."
 	<<else>>
 		"I recognise your companion, Avery. I admit I expected you to bring a cheap whore again."
 	<</if>>
 	<<He>> laughs.
-<<elseif $famesocial gte 100>>
+<<elseif $fame.social gte 100>>
 	"A pleasure."
-<<elseif $famesocial gte 30>>
+<<elseif $fame.social gte 30>>
 	<<if _averyPartyUnrecognised>>
 		"And likewise to you.
 	<<else>>
@@ -1673,11 +1680,11 @@ Another couple enter behind you, stealing <<his>> attention. "More guests," <<he
 
 <<person1>>You and Avery enter a great hall. A band plays in the corner. Well-dressed guests chat in groups as servants weave through them, holding trays of drinks. A few nod at Avery.
 
-<<if $famesocial gte 1000>>
+<<if $fame.social gte 1000>>
 	More nod at you.
-<<elseif $famesocial gte 600>>
+<<elseif $fame.social gte 600>>
 	As many nod at you.
-<<elseif $famesocial gte 400>>
+<<elseif $fame.social gte 400>>
 	Some even nod at you.
 <<else>>
 <</if>>
@@ -1857,17 +1864,18 @@ Avery tries to pull you in one direction, but you pull <<him>> in another.
 <<if $danceSuccess>>
 	<<He>> resists for a moment, <span class="green">but then goes along with it.</span>
 
-	<<if $danceskill gte 600>>
+	<<if currentSkillValue('danceskill') gte 600>>
 		You're good at this, after all.
-	<<elseif $danceskill gte 400>>
+	<<elseif currentSkillValue('danceskill') gte 400>>
 		You're a confident dancer, but you're careful not to show <<him>> up.
-	<<elseif $danceskill gte 100>>
+	<<elseif currentSkillValue('danceskill') gte 100>>
 		It's not your first dance, but you worry you'll show <<him>> up. However, you manage to follow the music without problem.
 	<<else>>
 		You worry you'll show <<him>> up, until you notice the other dancers are novices themselves.
 	<</if>>
 
-	Avery dances well. You've soon attracted quite an audience. <<danceskilluse>><<gglove>><<ggendear>><<npcincr Avery love 3>><<set $endear += 20>>
+	Avery dances well. You've soon attracted quite an audience.
+	<<danceskilluse>><<gglove>><<ggendear>><<npcincr Avery love 3>><<set $endear += 20>>
 	<br><br>
 
 	You continue dancing. The other couples stop, more interested in watching you and Avery. All except one other couple, who have attracted an audience of their own.
@@ -1877,7 +1885,8 @@ Avery tries to pull you in one direction, but you pull <<him>> in another.
 	<br>
 
 <<else>>
-	<span class="red">Your feet get tangled,</span> and you're both left sprawled on the floor. Several people laugh. Avery tries to laugh it off <<himself>>, but you're sure <<hes>> angry. <<danceskilluse>><<garage>><<llove>><<lendear>><<npcincr Avery rage 5>><<npcincr Avery love -1>><<set $endear -= 5>><<gstress>><<stress 6>><<gpain>><<pain 6>>
+	<span class="red">Your feet get tangled,</span> and you're both left sprawled on the floor. Several people laugh. Avery tries to laugh it off <<himself>>, but you're sure <<hes>> angry.
+	<<danceskilluse>><<garage>><<llove>><<lendear>><<npcincr Avery rage 5>><<npcincr Avery love -1>><<set $endear -= 5>><<gstress>><<stress 6>><<gpain>><<pain 6>>
 	<br><br>
 
 	You sit out the rest of the dance, and watch the other couples. Avery doesn't say much, even when the party wraps up and several guests approach to bid <<him>> goodbye. It doesn't help that a few make jabs at the mishap on the dance floor.
@@ -1907,9 +1916,9 @@ The guests like the idea. So does Avery, and the other couple. Particularly one
 
 The other couple are up first. The musicians begin a new piece, faster still than anything they've played yet. The couple manage to keep up.
 
-<<if $danceskill gte 800>>
+<<if currentSkillValue('danceskill') gte 800>>
 	They're good. Really good. But you think you're better.
-<<elseif $danceskill gte 400>>
+<<elseif currentSkillValue('danceskill') gte 400>>
 	They're good. Really good. Winning would be a challenge.
 <<else>>
 	They're good. Really good. You don't like your chances.
@@ -1997,7 +2006,8 @@ The couple finish to uproarious applause. It's your turn. You and Avery take eac
 	<</if>>
 
 <<else>>
-	<span class="red">Unfortunately,</span> Avery isn't happy to take your lead with so many watching, and you keep stepping on each other's feet. You catch a glimpse of the <<person3>><<person>>, a smug smile on <<his>> face. <<danceskilluse>><<lendear>><<set $endear -= 10>>
+	<span class="red">Unfortunately,</span> Avery isn't happy to take your lead with so many watching, and you keep stepping on each other's feet. You catch a glimpse of the <<person3>><<person>>, a smug smile on <<his>> face.
+	<<danceskilluse>><<lendear>><<set $endear -= 10>>
 	<br><br>
 	By the time the music stops, it's clear you've lost. The audience applaud anyway, though it's muted compared to what your competition received.
 	<br><br>
@@ -2137,7 +2147,8 @@ Avery stares for a moment, then knees in front of you. "Allow me." <<He>> wraps
 	<<link [[Search for something to cover with|Avery Party Dance Search]]>><</link>>
 	<br>
 <<else>>
-	Avery stares at you a moment, then throws you the towel. "Fine," <<he>> says, a twinge of irritance in <<his>> voice. You cover yourself.<<towelup>>
+	Avery stares at you a moment, then throws you the towel. "Fine," <<he>> says, a twinge of irritation in <<his>> voice. You cover yourself.
+	<<towelup>>
 	<br><br>
 
 	<<link [[Next|Avery Party Dance Return]]>><</link>>
@@ -3126,9 +3137,9 @@ The rest of the journey is uneventful. Robin stays close to you the whole way.
 <<set $outside to 0>><<effects>>
 You climb into Avery's car, and <<he>> drives you to the orphanage.
 <<if $averyCrimeTracker is undefined>>
-  <<set _crimeEvent to true>>
+	<<set _crimeEvent to true>>
 <<elseif $averyCrimeTracker gte 1000>>
-  <<set _crimeEvent to true>>
+	<<set _crimeEvent to true>>
 <</if>>
 <<if $crime gte 2000 and _crimeEvent is true and $NPCName[$NPCNameList.indexOf("Avery")].rage gte random(20, 100) and $averyragerevealed is 1>>
 	You follow the road as expected, until you take a turn onto Barb Street.
@@ -3231,7 +3242,7 @@ You quickly open the door and step out from the car. Avery frowns, and you
 :: Avery School Pickup Plead
 <<effects>><<pain 5>>
 You can barely contain the panic. "Please, no!" you say. "You wouldn't make me go through that, would you?"
-You lean over and hold onto <<him>>, looking into <<his>> eyes. "I had no choice. Please believe me. I'll be on my best behavior from now on." <<His>> expression softens.
+You lean over and hold onto <<him>>, looking into <<his>> eyes. "I had no choice. Please believe me. I'll be on my best behaviour from now on." <<His>> expression softens.
 <br><br>
 
 <<He>> places a hand on your head, and smiles again. "You have to understand," <<he>> says. "If someone like me was seen with a known criminal?"
@@ -3255,7 +3266,7 @@ Before you can take off your seat belt, you hear Avery clear <<his>> throat, and
 
 :: Avery School Pickup Threaten
 <<effects>>
-You look at Avery and scoff. "You expect me to believe you'd give me up that easily?" you say.  "If you're not bluffing, then we have nothing else to discuss." You reach for the door, but <<he>> grabs your hand.
+You look at Avery and scoff. "You expect me to believe you'd give me up that easily?" you say."If you're not bluffing, then we have nothing else to discuss." You reach for the door, but <<he>> grabs your hand.
 <br><br>
 
 "You don't realise the stakes," <<he>> snarls. "If you step out of this car, I'll-"
@@ -3329,7 +3340,7 @@ You lean into Avery, placing a hand on <<his>> lap.
 <<elseif $submissive lte 850>>
 	"Blackmail is a weakness of mine. It gets me all hot and bothered."
 <<else>>
-	"I know what you want. I'll give it to you, if you forget about my behavior."
+	"I know what you want. I'll give it to you, if you forget about my behaviour."
 <</if>>
 <<promiscuity1>>
 
@@ -3486,9 +3497,12 @@ You keep away from the bar and enter the restroom, finding the <<person>> <<if $
 	<<He>> glances at you as you enter and recognises you, waving a friendly greeting.
 <</if>>
 <br><br>
-<<link [[Encourage date|Avery Dismissal Encourage]]>><<trauma 6>><<stress 6>><<hope 2>><</link>><<gtrauma>><<gstress>><<ghope>><br>
-<<link [[Warn about Avery|Avery Dismissal Warn]]>><<trauma -20>><<stress -20>><<hope -1>><</link>><<lltrauma>><<llstress>><<lhope>><br>
-<<link [[Threaten|Avery Dismissal Threaten]]>><<stress 6>><<reb -1>><</link>><<gstress>><<lreb>><br>
+<<link [[Encourage date|Avery Dismissal Encourage]]>><<trauma 6>><<stress 6>><<hope 2>><</link>><<gtrauma>><<gstress>><<ghope>>
+<br>
+<<link [[Warn about Avery|Avery Dismissal Warn]]>><<trauma -20>><<stress -20>><<hope -1>><</link>><<lltrauma>><<llstress>><<lhope>>
+<br>
+<<link [[Threaten|Avery Dismissal Threaten]]>><<stress 6>><<reb -1>><</link>><<gstress>><<lreb>>
+<br>
 
 :: Avery Dismissal Encourage
 <<effects>>
@@ -3578,9 +3592,12 @@ You wonder how different this would go if you weren't in public.
 <<He>> sips <<his>> wine casually, but you can see that <<he>> has a tight grip on <<his>> glass.
 <br><br>
 
-<<link [[Apologise|Avery Dismissal Apologise]]>><</link>><br>
-<<link [[Break-up with Avery|Avery Dismissal Break]]>><</link>><br>
-<<link [[Throw the drink in Avery's face|Avery Dismissal Throw]]>><<trauma -20>><<stress -20>><</link>><<lltrauma>><<llstress>><br>
+<<link [[Apologise|Avery Dismissal Apologise]]>><</link>>
+<br>
+<<link [[Break-up with Avery|Avery Dismissal Break]]>><</link>>
+<br>
+<<link [[Throw the drink in Avery's face|Avery Dismissal Throw]]>><<trauma -20>><<stress -20>><</link>><<lltrauma>><<llstress>>
+<br>
 
 :: Avery Dismissal Confront
 <<effects>>
@@ -3646,9 +3663,12 @@ Avery turns and faces you. "I had given you plenty of chances to fix your behavi
 <<He>> stops paying attention to you and returns to <<his>> glass of wine. The conversation is clearly over.
 <br><br>
 
-<<link [[Get on your knees and beg|Avery Dismissal Beg]]>><<trauma 3>><<stress 3>><<npcincr Avery love 5>><<npcincr Avery rage -70>><</link>><<gtrauma>><<gstress>><<gglove>><<lllarage>><br>
-<<link [[Break-up with Avery|Avery Dismissal Break]]>><</link>><br>
-<<link [[Throw the drink in Avery's face|Avery Dismissal Throw]]>><<trauma -20>><<stress -20>><</link>><<lltrauma>><<llstress>><br>
+<<link [[Get on your knees and beg|Avery Dismissal Beg]]>><<trauma 3>><<stress 3>><<npcincr Avery love 5>><<npcincr Avery rage -70>><</link>><<gtrauma>><<gstress>><<gglove>><<lllarage>>
+<br>
+<<link [[Break-up with Avery|Avery Dismissal Break]]>><</link>>
+<br>
+<<link [[Throw the drink in Avery's face|Avery Dismissal Throw]]>><<trauma -20>><<stress -20>><</link>><<lltrauma>><<llstress>>
+<br>
 
 :: Avery Dismissal Beg
 <<effects>>
diff --git a/game/overworld-town/special-eden/main.twee b/game/overworld-town/special-eden/main.twee
index 81ef48266a63ceb210f20e09d7f986a87e0667cd..dc8dafc2f5170109d4437c0e438d8e567003fbfd 100644
--- a/game/overworld-town/special-eden/main.twee
+++ b/game/overworld-town/special-eden/main.twee
@@ -185,7 +185,7 @@ closing the door behind you.
 	<<He>> offers you a glass of water, then retrieves a first aid kit, before tending to your various bruises.
 	<br><br>
 
-	"Here," <<he>> says. "Take these. Painkillers. They'll help". You take the tablets and drink the water. You feel much better.
+	"Here," <<he>> says. "Take these. Painkillers. They'll help." You take the tablets and drink the water. You feel much better.
 	<<lpain>><<lstress>><<ltrauma>><<pain -10>><<stress -10>><<trauma -2>>
 	<br><br>
 <</if>>
@@ -215,7 +215,7 @@ You shake your head, and try to explain that you can't go with <<him>>, that you
 "So this is all more important than me?" <<he>> asks. <<He>> glances around the street.
 <br><br>
 
-<<if $english gte 500>>
+<<if currentSkillValue('english') gte 500>>
 	"It's not that," you protest. "I just have to do these things. I have obligations here, in town. I am sorry that I haven't been able to come and see you, and I will, I just need a little more time. I promise."
 	<br><br>
 
@@ -314,7 +314,7 @@ You arrive at the park.
 		Eden steers you away whenever possible.
 	<</if>>
 <<elseif $daystate is "dusk">>
-	There are many people around. Teenagers hang out in the playground.
+	There are many people around. Students hang out in the playground.
 	Eden takes a long detour to avoid the playground, and steers you away from other people wherever possible.
 <<elseif $daystate is "night">>
 	There is no one around. Eden relaxes.
@@ -420,7 +420,7 @@ You arrive at the park.
 	<<case "river">>
 		You arrive at the riverbank.
 		<<if $daystate is "dusk">>
-			A group of teenagers hang out near the nearby bridge.
+			A group of students hang out near the nearby bridge.
 		<<else>>
 			You pass a couple of families, making the most of the nice weather.
 		<</if>>
diff --git a/game/overworld-town/special-kylar/christmas.twee b/game/overworld-town/special-kylar/christmas.twee
index 026102e522c566ac84970abece3cd32ef23b6ccd..a98e121c71c8efb8ecdfcff104bdd28a65558e32 100644
--- a/game/overworld-town/special-kylar/christmas.twee
+++ b/game/overworld-town/special-kylar/christmas.twee
@@ -91,9 +91,9 @@ And covers <<his>> bare chest.
 <br>
 Just a pair of
 <<if $pronoun is "m">>
-    undies,
+	undies,
 <<else>>
-    panties,
+	panties,
 <</if>>
 <br>
 Covering all the rest.
@@ -118,21 +118,21 @@ Is a snow-covered Kylar!
 <<effects>>
 
 <<if $phase is 0>>
-    You tug down the red dress
-    <br>
-    And drop it at your feet.
-    <br>
-    <<He>> takes it, so grateful.
-    <br>
-    <<His>> face red like a beet.
+	You tug down the red dress
+	<br>
+	And drop it at your feet.
+	<br>
+	<<He>> takes it, so grateful.
+	<br>
+	<<His>> face red like a beet.
 <<else>>
-    You stand still and goggle.
-    <br>
-    As Kylar tries to stand.
-    <br>
-    One arm on <<his>> bare chest.
-    <br>
-    Reaching out with one hand.
+	You stand still and goggle.
+	<br>
+	As Kylar tries to stand.
+	<br>
+	One arm on <<his>> bare chest.
+	<br>
+	Reaching out with one hand.
 <</if>>
 <br><br>
 
@@ -201,22 +201,22 @@ Said just like a mantra.
 
 :: Kylar Christmas 8
 <<effects>>
-Kylar's role <<he>> accepts, 
+Kylar's role <<he>> accepts,
 <br>
-Thinking through these percepts, 
+Thinking through these percepts,
 <br>
-Beware of your night gaze, 
+Beware of your night gaze,
 <br>
-Shushing voices that raise. 
+Shushing voices that raise.
 <br><br>
 
-Wait with expectant eyes, 
+Wait with expectant eyes,
 <br>
-Much in need of surprise, 
+Much in need of surprise,
 <br>
 No santa would want to disappoint
 <br>
-Lover's eyes at knifepoint. 
+Lover's eyes at knifepoint.
 <br><br>
 
 <<link [[Next|Kylar Christmas 9]]>><</link>>
@@ -231,7 +231,7 @@ As they jump and they cheer.
 <br>
 Handing out sweet gifts
 <br>
-As more orphans appear. 
+As more orphans appear.
 <br><br>
 
 One by one get their share.
@@ -264,7 +264,7 @@ Kylar shakes, naught to do.
 <br>
 Beneath skirt, hopes you like.
 <br>
-"Maybe Christmas doesn't come from a store, 
+"Maybe Christmas doesn't come from a store,
 <br>
 Maybe Christmas means a little bit more."
 <br>
@@ -273,11 +273,11 @@ Something else then, of use,
 Thing to lover seduce.
 <br><br>
 
-<span class="lewd"><<His>> own 
+<span class="lewd"><<His>> own
 <<if $pronoun is "m">>
-    undies,
+	undies,
 <<else>>
-    panties
+	panties
 <</if>>
 it is!</span>
 <br>
@@ -285,7 +285,7 @@ Removed with no restraint.
 <br>
 You grabbed gift with surprise,
 <br>
-Could yours be such a prize? 
+Could yours be such a prize?
 <<if $kylarSeen.includes("commando")>>
 	<br>
 	For <<his>> kindness, for <<his>> jewel,
@@ -309,9 +309,9 @@ Kylar runs kind of cool.
 You do too, you're no fool.
 <br><br>
 
-Now so safe and so far, 
+Now so safe and so far,
 <br>
-You think through the saga, 
+You think through the saga,
 <br>
 Of your Santa Kylar.
 <br><br>
diff --git a/game/overworld-town/special-kylar/halloween.twee b/game/overworld-town/special-kylar/halloween.twee
index 6f492923fcd752396dd1c000ddf65e42e6a8fbc3..e0194bdc35a1629839c64a6c399c03ab4f249bf7 100644
--- a/game/overworld-town/special-kylar/halloween.twee
+++ b/game/overworld-town/special-kylar/halloween.twee
@@ -264,7 +264,7 @@ You hold Kylar's hand the rest of the way back to town. <<takeHandholdingVirgini
 <br>
 
 :: Kylar Halloween Sex
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
 	<<consensual>>
@@ -292,7 +292,7 @@ You hold Kylar's hand the rest of the way back to town. <<takeHandholdingVirgini
 
 :: Kylar Halloween Sex Finish
 <<set $outside to 0>><<effects>>
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 	<<He>> lies on the ground beside you, <<his>> costume disheveled. <<tearful>> you climb to your feet.
@@ -408,7 +408,7 @@ Kylar lifts it, and pulls a corkscrew from <<his>> pocket. <<He>> uncorks it wit
 
 There's a strange purple fruit on the label.
 
-<<if $history gte 500>>
+<<if currentSkillValue('history') gte 500>>
 	<span class="green">You're reminded of a story Winter told during history class.</span> The town used to make a wine they claimed was <span class="lewd">a love potion.</span> The recipe lost to time. A surviving bottle should be worth a lot.
 	<br><br>
 
@@ -475,7 +475,7 @@ You throw your arms around Kylar, and smother <<him>> with kisses. <<He>> wraps
 <br>
 
 :: Kylar Halloween Mansion Sex
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
 	<<consensual>>
@@ -501,7 +501,7 @@ You throw your arms around Kylar, and smother <<him>> with kisses. <<He>> wraps
 <</if>>
 
 :: Kylar Halloween Mansion Sex Finish
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<set $outside to 0>><<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -711,7 +711,7 @@ Kylar's eye close, and <<he>> breathes a sigh of relief.
 <br>
 
 :: Kylar Halloween Known Sex
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
 	<<consensual>>
@@ -737,7 +737,7 @@ Kylar's eye close, and <<he>> breathes a sigh of relief.
 <</if>>
 
 :: Kylar Halloween Known Sex Finish
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<set $outside to 0>><<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -1044,7 +1044,7 @@ You peer up the staircase, into the gloom above. Kylar points <<his>> torch up,
 
 You follow <<him>> up the creaky staircase, and into the closest room. Several tall pieces of furniture line the walls. A large, four poster bed stands near the window. Unlike the other furniture, it's not covered in a grey sheet, though one lies on the floor beside it.
 <br><br>
-<<if $skulduggery gte 400>>
+<<if currentSkillValue('skulduggery') gte 400>>
 	<span class="blue">You feel your hair stand on end.</span> There's no dust on the bed. The sheet was moved recently. The thought has barely entered your mind when you hear movement. You manage to jump aside just as a hand lunges from beneath one of the sheets, accompanied by a terrible screech.
 	<br><br>
 
diff --git a/game/overworld-town/special-kylar/main.twee b/game/overworld-town/special-kylar/main.twee
index a864277465dc5fc223953528f357493af053e142..975efc86d2704cdd2ad72ea1ead23307cd13705f 100644
--- a/game/overworld-town/special-kylar/main.twee
+++ b/game/overworld-town/special-kylar/main.twee
@@ -2,10 +2,10 @@
 <<widget "kylargag">>
 	<<set $mouthuse to "gagged">>
 	<<facewear 4>>
-	<<if $pronoun is "m">>
-		<<He>> pulls a knife from <<his>> pocket.
-	<<else>>
+	<<if $NPCName[$NPCNameList.indexOf("Kylar")].clothes.lower.name.includes("skirt")>>
 		<<He>> pulls a knife from beneath <<his>> skirt.
+	<<else>>
+		<<He>> pulls a knife from <<his>> pocket.
 	<</if>>
 	<<His>> smile doesn't falter. "You're just grouchy because we've been apart too long. Here."
 	<<He>> cuts a piece from a roll of tape at <<his>> side, and sticks it over your mouth.
@@ -40,352 +40,317 @@
 <</widget>>
 
 <<widget "kylaroptions">>
-<<kylaroptionstext>>
-
-<<if $location is "school" and $hour isnot 12>>
-	<<if _kylarStatus.includes("Love")>>
-		<<He>> looks at <<his>> watch. "I need to go," <<he>> says. "I'll be late for my lesson." <<He>> keeps looking over <<his>> shoulder as <<he>> walks.
-		<br><br>
-	<<else>>
-		<<He>> looks at <<his>> watch, mumbles something, then walks away.
+	<<set _kylar to statusCheck("Kylar")>>
+	<<if _args[0] isnot "notext">>
+		<<kylaroptionstext>>
 		<br><br>
 	<</if>>
-	<<kylaroptionsleave>>
-<<elseif ($bus is "starfish" or $bus is "park") and $daystate isnot "day">>
-	<<if _kylarStatus.includes("Love")>>
-		<<He>> looks at <<his>> watch. "I need to go," <<he>> says. "They're waiting for me." <<He>> keeps looking over <<his>> shoulder as <<he>> walks.
-		<br><br>
-	<<else>>
-		<<He>> looks at <<his>> watch, mumbles something, then walks away.
+
+	<<if $location is "school" and $hour isnot 12>>
+		<<if _kylarStatus.includes("Love")>>
+			<<He>> looks at <<his>> watch. "I need to go," <<he>> says. "I'll be late for my lesson." <<He>> keeps looking over <<his>> shoulder as <<he>> walks.
+		<<else>>
+			<<He>> looks at <<his>> watch, mumbles something, then walks away.
+		<</if>>
 		<br><br>
-	<</if>>
-	<<kylaroptionsleave>>
-<<else>>
-	<<if !$kylarDaily.walkKiss and $kylar_action is "walk">>
-		<<link [[Kiss|Kylar Walk In The Park End 2]]>><</link>><<glove>><<glust>><<llksuspicion>><<kissvirginitywarning>><<NPCvirginitywarning "Kylar" "kiss">>
-		<br>
-	<</if>>
-	<<link [[Chat (0:15)|Kylar Chat]]>><<pass 15>><<npcincr Kylar love 1>><<npcincr Kylar rage -1>><<stress -2>><</link>><<lstress>><<glove>><<lksuspicion>>
-	<br>
-	<<if _kylarStatus.includes("Love")>>
-		<<link [[Flirt (0:15)|Kylar Tease]]>><<pass 15>><<npcincr Kylar love 1>><<npcincr Kylar lust 1>><<stress -2>><</link>><<promiscuous1>><<lstress>><<glove>><<glust>>
-	<<else>>
-		<<link [[Tease (0:15)|Kylar Tease]]>><<pass 15>><<npcincr Kylar love 1>><<npcincr Kylar lust 1>><<stress -2>><</link>><<promiscuous1>><<lstress>><<glove>><<glust>>
-	<</if>>
-	<br>
-	<<if $kylar_action is "panties" and $promiscuity gte 35 and ($whitneypantiescheck is 1 or $exhibitionism gte 75 or $kylarSeen.includes("home"))>>
-		<<if $pronoun is "m">>
-			<<link [[Ask Kylar for his underwear|Kylar Tease Underwear]]>><<arousal 600>><<npcincr Kylar lust 3>><</link>><<promiscuous3>><<garousal>><<gglust>>
+
+		<<kylaroptionsleave>>
+	<<elseif ($bus is "starfish" or $bus is "park") and $daystate isnot "day">>
+		<<if _kylarStatus.includes("Love")>>
+			<<He>> looks at <<his>> watch. "I need to go," <<he>> says. "They're waiting for me." <<He>> keeps looking over <<his>> shoulder as <<he>> walks.
 		<<else>>
-			<<link [[Ask Kylar for her panties|Kylar Tease Underwear]]>><<arousal 600>><<npcincr Kylar lust 3>><</link>><<promiscuous3>><<garousal>><<gglust>>
+			<<He>> looks at <<his>> watch, mumbles something, then walks away.
 		<</if>>
+		<br><br>
+
+		<<kylaroptionsleave>>
+	<<else>>
+		<<link [[Chat (0:15)|Kylar Chat]]>><<pass 15>><<npcincr Kylar love 1>><<npcincr Kylar rage -1>><<stress -2>><</link>><<lstress>><<glove>><<lksuspicion>>
 		<br>
-	<</if>>
-	<<if $kylar_action is "tease" and $promiscuity gte 15 and _kylarStatus.includes("Love") and (($location is "school" and $kylarDaily.invite isnot "school") or ($location isnot "school" and $kylarDaily.invite isnot "home"))>>
-		<<link [[Take it further|Kylar Tease 2]]>><<npcincr Kylar lust 3>><</link>><<promiscuous2>><<gglust>>
-		<br>
-	<</if>>
-	<<if $bus is "starfish">>
-		<<link [[Play a game (0:15)|Kylar Game]]>><<pass 15>><<stress -2>><<npcincr Kylar love 1>><</link>><<glove>><<lstress>>
+		<<set _linkText to (_kylarStatus.includes("Love") ? "Flirt (0:15)" : "Tease (0:15)")>>
+		<<link [[_linkText|Kylar Tease]]>><<pass 15>><<npcincr Kylar love 1>><<npcincr Kylar lust 1>><<stress -2>><</link>><<promiscuous1>><<lstress>><<glove>><<glust>>
 		<br>
-	<</if>>
-	<<if $location is "school">>
-		<<if $NPCName[$NPCNameList.indexOf("Kylar")].love gte 10 and $milkshake gte 2>>
-			<<link [[Offer milkshake (0:20)|Kylar Give Milkshake]]>><<pass 20>><<set $milkshake -= 2>><<npcincr Kylar love 1>><<npcincr Kylar rage -1>><<stress -5>><</link>><<lstress>><<glove>><<lksuspicion>>
+		<<if $kylar_action is "tease" and $promiscuity gte 15 and _kylarStatus.includes("Love") and !$kylarDaily.invite>>
+			<<link [[Take it further|Kylar Tease 2]]>><<npcincr Kylar lust 3>><</link>><<promiscuous2>><<gglust>>
 			<br>
 		<</if>>
-		<<if $NPCName[$NPCNameList.indexOf("Kylar")].love gte 20 and $milkshake gte 1>>
-			<<link [[Share milkshake (0:20)|Kylar Share Milkshake]]>><<pass 20>><<set $milkshake -= 1>><<npcincr Kylar love 2>><<npcincr Kylar rage -1>><<stress -10>><</link>><<lstress>><<gglove>><<lksuspicion>>
+		<<if $bus is "starfish">>
+			<<link [[Play a game (0:15)|Kylar Game]]>><<pass 15>><<stress -2>><<npcincr Kylar love 1>><</link>><<glove>><<lstress>>
+			<br>
+		<</if>>
+		<<if $location is "school">>
+			<<if _kylar.love gte 10 and $milkshake gte 2>>
+				<<link [[Offer milkshake (0:20)|Kylar Give Milkshake]]>><<pass 20>><<set $milkshake -= 2>><<npcincr Kylar love 1>><<npcincr Kylar rage -1>><<stress -5>><<set $kylar_action to "milkshake">><</link>><<lstress>><<glove>><<lksuspicion>>
+				<br>
+			<</if>>
+			<<if _kylar.love gte 20 and $milkshake gte 1>>
+				<<link [[Share milkshake (0:20)|Kylar Share Milkshake]]>><<pass 20>><<set $milkshake -= 1>><<npcincr Kylar love 2>><<npcincr Kylar rage -1>><<stress -10>><<set $kylar_action to "milkshake">><</link>><<lstress>><<gglove>><<lksuspicion>>
+				<br>
+			<</if>>
+		<</if>>
+		<<if $bus is "park" and !$kylarDaily.walk and _kylarStatus.includes("Love")>>
+			<<link [[Ask to go for a walk (0:15)|Kylar Walk In The Park]]>><<pass 15>><<stress -3>><<npcincr Kylar love 1>><<npcincr Kylar rage -3>><<set $kylarDaily.walk to true>><</link>><<lstress>><<glove>><<llksuspicion>>
+			<br>
+		<</if>>
+		<<if $loft_known is 1 and $loft_kylar isnot 1 and _kylar.love gte 90 and $kylar_action isnot "loft">>
+			<<link [[Tell Kylar about the orphanage loft|Kylar Loft]]>><</link>>
+			<br>
+		<</if>>
+		<<if checkSextoysGift("Kylar") and isLoveInterest("Kylar") and checkIfNPCHasCategorySextoy("Kylar","strap-on").length <= 5>>
+			<<link [[Gift Kylar a strap-on|Kylar Gift Strap-on]]>><</link>><<glove>><<lksuspicion>><<gglust>><<lstress>>
 			<br>
 		<</if>>
-	<</if>>
-	<<if $bus is "park" and !$kylarDaily.walk and _kylarStatus.includes("Love")>>
-		<<link [[Ask to go for a walk (0:15)|Kylar Walk In The Park]]>><<pass 15>><<stress -3>><<npcincr Kylar love 1>><<npcincr Kylar rage -3>><<set $kylarDaily.walk to true>><</link>><<lstress>><<glove>><<llksuspicion>>
-		<br>
-	<</if>>
-	<<if $loft_known is 1 and $loft_kylar isnot 1 and $NPCName[$NPCNameList.indexOf("Kylar")].love gte 90 and $kylar_action isnot "loft">>
-		<<link [[Tell Kylar about the orphanage loft|Kylar Loft]]>><</link>>
-		<br>
-	<</if>>
-	<<if window.checkSextoysGift("Kylar") == 1 and ($loveInterest.primary is "Kylar" or $loveInterest.secondary is "Kylar" or $loveInterest.tertiary is "Kylar")>>
-		<<link [[Gift Kylar a strap-on|Kylar Gift Strap-on]]>><</link>><<glove>><<lksuspicion>><<gglust>><<lstress>>
-		<br>
-	<</if>>
 
-	<<if random(1, 100) gte 61 and _kylarStatus.includes("Love") and $kylar_action isnot "stop">>
-		<<link [[Leave|Kylar Stop]]>><</link>>
-		<br>
-	<<else>>
-		<<kylaroptionsleave>>
+		<<kylaroptionsleave true>>
 	<</if>>
-<</if>>
 <</widget>>
 
 <<widget "kylaroptionsleave">>
+	<<run statusCheck("Kylar")>>
+	<<set $_kylarCanStopYou to _args[0] is true>>
 
-<<if $kylar_action isnot "stop">>
-	<<if $bus is "park">>
-	<<link [[Leave|Park]]>><<endevent>><<unset $kylar_action>><</link>>
-	<br>
-	<<elseif $bus is "schoollibrary">>
-	<<link [[Leave|School Library]]>><<endevent>><<unset $kylar_action>><</link>>
-	<br>
-	<<elseif $bus is "starfish">>
-	<<link [[Leave|Arcade]]>><<endevent>><<unset $kylar_action>><</link>>
+	<<if $kylar_action is "stop">>
+		<<link [[Shake off|Kylar Shake]]>><<npcincr Kylar rage 5>><</link>><<ggksuspicion>>
+	<<elseif $_kylarCanStopYou and random(1, 100) lte 40 and _kylarStatus.includes("Love")>>
+		<<link [[Leave|Kylar Stop]]>><</link>>
 	<<else>>
-	<<link [[Leave|School Rear Playground]]>><<endevent>><<unset $kylar_action>><</link>>
-	<br>
+		<<switch $bus>>
+			<<case "park">>
+				<<set $_dest to "Park">>
+			<<case "schoollibrary">>
+				<<set $_dest to "School Library">>
+			<<case "starfish">>
+				<<set $_dest to "Arcade">>
+			<<default>>
+				<<set $_dest to "School Rear Playground">>
+		<</switch>>
+		<<link [[Leave|$_dest]]>><<endevent>><<unset $kylar_action>><</link>>
 	<</if>>
-<</if>>
+	<br>
 <</widget>>
 
 <<widget "kylaroptionstext">>
-<<NPCStatusCheck "Kylar">>
-<<set $rng to random(1, 100)>>
-<<if $kylar_text_trigger is true>>
-	<<unset $kylar_text_trigger>>
-	<<if _kylarStatus.includes("Love")>>
-		<<if !$kylarSeen.includes("chatIntro")>>
+	<<set _kylar to statusCheck("Kylar")>>
+	<<set $rng to random(1, 100)>>
+	<<if $kylar_text_trigger is true>>
+		<<unset $kylar_text_trigger>>
+		<<if _kylarStatus.includes("Love") and !$kylarSeen.includes("chatIntro")>>
 			<<set $kylarSeen.pushUnique("chatIntro")>>
 			<<He>> clenches <<his>> fists and lifts <<his>> head, looking you straight in the eye. "H-hey," <<he>> says.
-				<<if $kylarSeen.includes("home")>>
-				"I-I'm sorry about the thing in your bedroom." <<He>> gulps. 
-					<<if $kylarignored isnot 1>>
-						"I just wanted to thank you for helping me."
-					<<else>>
-						"I just wanted to t-tell you you're very <<if $player.gender_appearance is "m">>handsome<<else>>pretty<</if>>."
-					<</if>>
+			<<if $kylarSeen.includes("home")>>
+				"I-I'm sorry about the thing in your bedroom." <<He>> gulps.
+				<<if $kylarignored isnot 1>>
+					"I just wanted to thank you for helping me."
 				<<else>>
-					<<if $kylarignored isnot 1>>
-						"Thank you for helping me. Back then."
-					<<else>>
-						"You're very <<if $player.gender_appearance is "m">>handsome<<else>>pretty<</if>>."
-					<</if>>
+					"I just wanted to t-tell you you're very <<print ($player.gender_appearance is "m" ? "handsome" : "pretty")>>."
+				<</if>>
+			<<else>>
+				<<if $kylarignored isnot 1>>
+					"Thank you for helping me. Back then."
+				<<else>>
+					"You're very <<print ($player.gender_appearance is "m" ? "handsome" : "pretty")>>."
 				<</if>>
+			<</if>>
 			<<He>> looks away.
-			<br><br>
 		<<elseif $bus is "park" and $kylar.fountain is 1 and $season is "winter" and !$kylarSeen.includes("fountainWinter")>>
 			<<set $kylarSeen.pushUnique("fountainWinter")>>
 			<<He>> seems spellbound. The constantly running water and the cold temperature has caused much of the fountain's structure to freeze over and form icicles thicker than your arm, and at least twice as long. Near the centre, some water remains unfrozen.
 			"It's so pretty. It's the most amazing thing I've ever seen!" <<He>> glances at you. "W-well, second most."
-			<br><br>
-		<<elseif $famesex gte 100 and $rng gte 91 and $kylarfameconfront isnot 1 and $kylar.fameStage is undefined>>
-			<<set $kylarfameconfront to 1>><<set $kylar.fameStage to 0>>
-			"I-I found a strange picture of you," <<he>> says. "Someone doctored it to make it look like you were doing lewd things." <<He>> laughs. "Some people have no shame."
-			<<npcincr Kylar rage 3>><<gksuspicion>>
-			<br><br>
-		<<elseif $famesex gte 300 and $rng gte 91 and $kylarfameconfront isnot 1 and $kylar.fameStage is 0>>
-			<<set $kylarfameconfront to 1>><<set $kylar.fameStage to 1>>
-			"I-I found another strange picture of you," <<he>> laughs. "Doctored to make it look like you were doing lewd things." <<He>> laughs again. "You must be popular with perverts."
-			<<npcincr Kylar rage 10>><<ggksuspicion>>
-			<br><br>
-		<<elseif $famesex gte 500 and $rng gte 91 and $kylarfameconfront isnot 1 and $kylar.fameStage is 1>>
-			<<set $kylarfameconfront to 1>>
-			"Y-you'll never guess what I found," <<he>> laughs. "More doctored pictures of you doing perverted things." <<His>> laughter reaches a hysterical pitch. "S-Someone spent a lot of time on them. There are so many."
-			<<gggksuspicion>><<npcincr Kylar rage 30>>
-			<br><br>
+		<<elseif $rng gte 91 and !$kylarDaily.fameConfronted and $fame.sex gte ($kylar.fameStage * 2) + 100>>
+			<<if $kylar.fameStage is 0>> /* $fame.sex is 100+ */
+				<<set $kylarDaily.fameConfronted to true>><<set $kylar.fameStage to 1>>
+				"I-I found a strange picture of you," <<he>> says. "Someone doctored it to make it look like you were doing lewd things." <<He>> laughs. "Some people have no shame."
+				<<npcincr Kylar rage 3>><<gksuspicion>>
+			<<elseif $kylar.fameStage is 1>> /* $fame.sex is 300+ */
+				<<set $kylarDaily.fameConfronted to true>><<set $kylar.fameStage to 2>>
+				"I-I found another strange picture of you," <<he>> laughs. "Doctored to make it look like you were doing lewd things." <<He>> laughs again. "You must be popular with perverts."
+				<<npcincr Kylar rage 10>><<ggksuspicion>>
+			<<elseif $kylar.fameStage is 2>> /* $fame.sex is 500+ */
+				<<set $kylarDaily.fameConfronted to true>>
+				"Y-you'll never guess what I found," <<he>> laughs. "More doctored pictures of you doing perverted things." <<His>> laughter reaches a hysterical pitch. "S-Someone spent a lot of time on them. There are so many."
+				<<npcincr Kylar rage 30>><<gggksuspicion>>
+			<</if>>
 		<<elseif _kylarStatus.includes("Rage")>>
 			"You came to see me," <<he>> says. "Of course you did. Why wouldn't you." <<He>> laughs.
-			<br><br>
+		<<elseif $kylar.fountain is 1 and $rng gte 85>>
+			<<He>> tosses another coin into the fountain.
 		<<else>>
 			<<He>> smiles at you.
-			<br><br>
 		<</if>>
-	<<elseif $bus is "park" and $kylar.fountain is 1 and $season is "winter" and !$kylarSeen.includes("fountainWinter")>>
-		<<set $kylarSeen.pushUnique("fountainWinter")>>
-		<<He>> seems spellbound. The constantly running water and the cold temperature has caused much of the fountain's structure to freeze over and form icicles thicker than your arm, and at least twice as long. Near the centre, some water remains unfrozen.
-		"It's so pretty. It's the most amazing thing I've ever seen!" <<He>> glances at you. "W-well, second most."
-		<br><br>
-	<<elseif $famesex gte 100 and $rng gte 91 and $kylarfameconfront isnot 1 and $kylar.fameStage is undefined>>
-		<<set $kylarfameconfront to 1>><<set $kylar.fameStage to 0>>
-		"I-I found a strange picture of you," <<he>> says. "Someone doctored it to make it look like you were doing lewd things." <<He>> laughs. "Some people have no shame."
-		<<npcincr Kylar rage 3>><<gksuspicion>>
-		<br><br>
-	<<elseif $famesex gte 300 and $rng gte 91 and $kylarfameconfront isnot 1 and $kylar.fameStage is 0>>
-		<<set $kylarfameconfront to 1>><<set $kylar.fameStage to 1>>
-		"I-I found another strange picture of you," <<he>> laughs. "Doctored to make it look like you were doing lewd things." <<He>> laughs again. "You must be popular with perverts."
-		<<npcincr Kylar rage 10>><<ggksuspicion>>
-		<br><br>
-	<<elseif $famesex gte 500 and $rng gte 91 and $kylarfameconfront isnot 1 and $kylar.fameStage is 1>>
-		<<set $kylarfameconfront to 1>>
-		"Y-you'll never guess what I found," <<he>> laughs. "More doctored pictures of you doing perverted things." <<His>> laughter reaches a hysterical pitch. "S-Someone spent a lot of time on them. There are so many."
-		<<gggksuspicion>><<npcincr Kylar rage 30>>
-		<br><br>
-	<<elseif _kylarStatus.includes("Rage")>>
-		"You came to see me," <<he>> says. "Of course you did. Why wouldn't you." <<He>> laughs.
-		<br><br>
-	<<elseif $kylar.fountain is 1 and $rng gte 85>>
-		<<He>> tosses another coin into the fountain.
 	<<else>>
-		<<He>> smiles at you.
-		<br><br>
-	<</if>>
-<<else>>
-	<<if $NPCName[$NPCNameList.indexOf("Kylar")].love gte 90 and $spray lt $spraymax and !$kylarDaily.spray is true>><<set $kylarDaily.spray to true>>
-		"I made you something," <<he>> says as <<he>> rummages in <<his>> bag. <<He>> hands you a charge for your pepper spray. "I made it myself. It'll keep sluts and perverts away." <<He>> beams.
-		<<spray 1>><<gspray>>
-		<br><br>
+		<<if _kylar.love gte 90 and $spray lt $spraymax and !$kylarDaily.spray>>
+			<<set $kylarDaily.spray to true>>
+			"I made you something," <<he>> says as <<he>> rummages in <<his>> bag. <<He>> hands you a charge for your pepper spray.
+			"I made it myself. It'll keep sluts and perverts away." <<He>> beams.
+			<<spray 1>><<gspray>>
+
+		<<elseif $kylar.riddle is 2>>
+			<<set $kylar.riddle to 0>>
+			"<<print either("A sphinx", "Shadow", "Plumbers", "A jester", "Blue", "The letter E", "French fries", "Leighton", "An eraser", "A snake",
+				"Eggs", "Pepper spray", "Forty-two", "Me", "Autumn", "A video game", "A horror movie", "Insight", "Raul and Janet", "The sewers", "Footsteps",
+				"Starting", "Yesterday, today and tomorrow", "Fire", "Because they were on the left side of the street")>>,"
+			<<he>> says<<if $bus is "starfish" and _kylarStatus.includes("Love")>>, not taking <<his>> attention off the game<</if>>.
+			"<<print (_kylarStatus.includes("Love") ? "The" : "Th-the")>> riddle from yesterday. That's the answer, right?"
+			<br><br>
 
-	<<elseif $kylar.riddle is 2>>
-		<<set $kylar.riddle to 0>>
-		"<<print either("A sphinx", "Shadow", "Plumbers", "A jester", "Blue", "The letter E", "French fries", "Leighton", "An eraser", "A snake", "Eggs", "Pepper spray", "Forty-two", "Me", "Autumn", "A video game", "A horror movie", "Insight", "Raul and Janet", "The sewers", "Footsteps", "Starting", "Yesterday, today and tomorrow", "Fire", "Because they were on the left side of the street")>>," <<he>> says<<if $bus is "starfish" and _kylarStatus.includes("Love")>>, not taking <<his>> attention off the game<</if>>.
-		"Th<<if !_kylarStatus.includes("Love")>>-th<</if>>e riddle from yesterday. That's the answer, right?"
-		<br><br>
-		<<He>> <<print either("got it right", "got it right", "got it right", "got it wrong", "got it wrong", "was close", "was way off", "probably forgot what your riddle was", "got it right. You're surprised, it was a toughie")>>.
-		<br><br>
-	<<else>>
-		<<He>> blushes and looks away.
-		<br><br>
+			<<He>> <<print either("got it right", "got it right", "got it right", "got it wrong", "got it wrong", "was close", "was way off",
+			"probably forgot what your riddle was", "got it right. You're surprised, it was a toughie")>>.
+		<<else>>
+			<<He>> blushes and looks away.
+		<</if>>
 	<</if>>
-<</if>>
 <</widget>>
 
 <<widget "dismissKylar">>
-<<npcset Kylar state "prison">>
-<<if $loveInterest.primary is "Kylar">>
-	<<if $loveInterest.secondary isnot "None">>
-		<<set $loveInterest.primary to $loveInterest.secondary>>
+	<<npcset Kylar state "prison">>
+	<<if $loveInterest.primary is "Kylar">>
+		<<if $loveInterest.secondary isnot "None">>
+			<<set $loveInterest.primary to $loveInterest.secondary>>
+			<<set $loveInterest.secondary to "None">>
+		<<else>>
+			<<set $loveInterest.primary to "None">>
+		<</if>>
+		<span class="red">Kylar has been imprisoned. <<nnpc_He "Kylar">> is no longer your love interest.</span>
+	<<elseif $loveInterest.secondary is "Kylar">>
 		<<set $loveInterest.secondary to "None">>
+		<span class="red">Kylar has been imprisoned. <<nnpc_He "Kylar">> is no longer your love interest.</span>
+	<<elseif $kylarenglish gte 1>>
+		<span class="red">Kylar has been imprisoned. <<nnpc_He "Kylar">> can no longer be claimed as your love interest.</span>
 	<<else>>
-		<<set $loveInterest.primary to "None">>
+		<span class="red">Kylar has been imprisoned.</span>
 	<</if>>
-	<span class="red">Kylar has been imprisoned. <<nnpc_He "Kylar">> is no longer your love interest.</span>
-<<elseif $loveInterest.secondary is "Kylar">>
-	<<set $loveInterest.secondary to "None">>
-	<span class="red">Kylar has been imprisoned. <<nnpc_He "Kylar">> is no longer your love interest.</span>
-<<elseif $kylarenglish gte 1>>
-	<span class="red">Kylar has been imprisoned. <<nnpc_He "Kylar">> can no longer be claimed as your love interest.</span>
-<<else>>
-	<span class="red">Kylar has been imprisoned.</span>
-<</if>>
-<br><br>
+	<br><br>
 <</widget>>
 
 <<widget "kylarFinish">>
-<<if $player.gender is "h">>
-	<<set $penisuse to "othermouth">><<set $penisstate to "othermouth">>
-	<<set $NPCList[$npcrow[$npc.indexOf('Kylar')]].mouth to "penis">>
-	<<He>> licks up the base of your shaft, while rubbing your pussy entrance with one hand.
-	<<He>> uses <<his>> other hand to hold your penis steady, and engulfs it with <<his>> mouth.
-	<<takeNPCVirginity "Kylar" "oral">> <<His>> tongue runs along the glans. "It's perfect," <<he>> mumbles around your penis. "It's so perfect."
-	<<if $insecurity_penis_tiny gte 1 and $player.penissize lte 0 and $acceptance_penis_tiny lte 999>>
-		<<acceptance "penis_tiny" 10>>
-		<<gacceptance>>
-	<<elseif $insecurity_penis_small gte 1 and $player.penissize is 1 and $acceptance_penis_small lte 999>>
-		<<acceptance "penis_small" 10>>
-		<<gacceptance>>
-	<<elseif $insecurity_penis_big gte 1 and $player.penissize gte 3 and $acceptance_penis_big lte 999>>
-		<<acceptance "penis_big" 10>>
-		<<gacceptance>>
-	<</if>>
-	<br><br>
+	<<set _kylarNPC to $NPCList[$npcrow[$npc.indexOf('Kylar')]]>>
+	<<if $player.penisExist and $player.vaginaExist>>
+		<<set $penisuse to "othermouth">><<set $penisstate to "othermouth">>
+		<<set _kylarNPC.mouth to "penis">>
+		<<He>> licks up the base of your shaft, while rubbing your pussy entrance with one hand.
+		<<He>> uses <<his>> other hand to hold your penis steady, and engulfs it with <<his>> mouth.
+		<<takeNPCVirginity "Kylar" "oral">> <<His>> tongue runs along the glans. "It's perfect," <<he>> mumbles around your penis. "It's so perfect."
+		<<gpenisacceptance 10>>
+		<br><br>
+
+		<<arousal 2500>>
+		<<if $arousal lte $arousalmax>>
+			<<His>> attentions suddenly turn to your pussy. <<He>> thrusts two fingers in, making consistent pistoning motions.
+			Between <<his>> thrusting, <<his>> sucking, and the way <<he>> looks up at you in nigh-worship, you can't hold back any longer.
+			<<set $arousal to $arousalmax>>
+			<br><br>
+
+		<</if>>
+		<<orgasm>><<penileejacstat>><<penilestat>>
+
+	<<elseif $player.penisExist>>
+		<<set $penisuse to "othermouth">><<set $penisstate to "othermouth">>
+		<<set _kylarNPC.mouth to "penis">>
+		<<He>> licks up the base of your shaft, before wrapping around it with <<his>> hand.
+		<<He>> strokes it slowly but firmly, while also guiding it to <<his>> mouth.
+		You can feel <<his>> breath on your tip for a few seconds, before <<he>> wraps <<his>> mouth around the glans.
+		<<takeNPCVirginity "Kylar" "oral">> "It's perfect," <<he>> mumbles around your penis. "It's so perfect."
+		<<gpenisacceptance 10>>
+		<br><br>
 
-	<<arousal 2500>>
-	<<if $arousal gte $arousalmax>>
+		<<arousal 2500>>
+		<<if $arousal lte $arousalmax>>
+			<<He>> sticks to licking at first, but soon lurches forward and impales <<his>> throat on your <<genitals>>.
+			<<His>> free hand grabs your <<bottom>>, and <<he>> uses it as leverage to push <<himself>> further onto you.
+			Between <<his>> sucking and the way <<he>> looks up at you in nigh-worship, you can't hold back any longer.
+			<<set $arousal to $arousalmax>>
+			<br><br>
+
+		<</if>>
 		<<orgasm>><<penileejacstat>><<penilestat>>
+
 	<<else>>
-		<<His>> attentions suddenly turn to your pussy. <<He>> thrusts two fingers in, making consistent pistoning motions. Between <<his>> thrusting, <<his>> sucking, and the way <<he>> looks up at you in nigh-worship, you can't hold back any longer.
+		<<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">>
+		<<set _kylarNPC.mouth to "vagina">>
+		<<He>> probes your labia with <<his>> tongue for a few seconds, before thrusting <<his>> entire face as deep into your <<genitals>> as <<he>> can.
+		<<His>> small hands grasp your <<bottom>> and pull you closer to <<him>>.
+		<<if $player.virginity.vaginal is true and $sexStats.vagina.pregnancy.totalBirthEvents gt 0>>
+			<<His>> tongue brushes against your hymen, and <<he>> prods it, but not hard enough to penetrate it.
+			<<if _kylarNPC.penis isnot "none">>"Later," <<he>> whispers.<</if>>
+		<<elseif $vaginafucked is 1>>
+			You feel <<his>> cum slide out of your pussy, and <<he>> pushes it back in with <<his>> tongue. "Keep my mark in you," <<he>> murmurs.
+		<</if>>
 		<br><br>
 
-		<<set $arousal to $arousalmax>>
-		<<if $arousal gte $arousalmax>><<orgasm>><<penileejacstat>><<penilestat>><</if>>
+		<<arousal 2500>>
+		<<if $arousal lte $arousalmax>>
+			<<He>> removes a hand from your <<bottom>> and grasps your clit. <<He>> rubs it with <<his>> free hand, making consistent circular motions.
+			Between <<his>> rubbing, <<his>> licking, and the way <<he>> looks up at you in nigh-worship, you can't hold back any longer.
+			<<set $arousal to $arousalmax>>
+			<br><br>
+
+		<</if>>
+		<<orgasm>>
 	<</if>>
 
-<<elseif $player.penisExist>>
-	<<set $penisuse to "othermouth">><<set $penisstate to "othermouth">>
-	<<set $NPCList[$npcrow[$npc.indexOf('Kylar')]].mouth to "penis">>
-	<<He>> licks up the base of your shaft, before wrapping around it with <<his>> hand.
-	<<He>> strokes it slowly but firmly, while also guiding it to <<his>> mouth.
-	You can feel <<his>> breath on your tip for a few seconds, before <<he>> wraps <<his>> mouth around the glans.
-	<<takeNPCVirginity "Kylar" "oral">> "It's perfect," <<he>> mumbles around your penis. "It's so perfect."
-	<<if $insecurity_penis_tiny gte 1 and $player.penissize lte 0 and $acceptance_penis_tiny lte 999>>
-		<<acceptance "penis_tiny" 10>>
-		<<gacceptance>>
-		<<set _acceptanceGained to true>>
-	<<elseif $insecurity_penis_small gte 1 and $player.penissize is 1 and $acceptance_penis_small lte 999>>
-		<<acceptance "penis_small" 10>>
-		<<gacceptance>>
-		<<set _acceptanceGained to true>>
-	<<elseif $insecurity_penis_big gte 1 and $player.penissize gte 3 and $acceptance_penis_big lte 999>>
-		<<acceptance "penis_big" 10>>
-		<<gacceptance>>
-		<<set _acceptanceGained to true>>
+	Kylar grasps the backs of your thighs greedily. Once your convulsions stop, <<he>> pulls away from your <<genitals>>
+	<<if !$player.penisExist>>
+		and smiles, <<his>> face wet with your lewd fluids.
+	<<elseif $semen_amount gte 1>>
+		and swallows, before opening <<his>> mouth to you. <<He>> swallowed every drop.
+	<<else>>
+		and smiles.
 	<</if>>
 	<br><br>
 
-	<<arousal 2500>>
-	<<if $arousal gte $arousalmax>>
-		<<orgasm>><<penileejacstat>><<penilestat>>
-	<<else>>
-		<<He>> sticks to licking at first, but soon lurches forward and impales <<his>> throat on your <<genitals>>. <<His>> free hand grabs your <<bottom>>, and <<he>> uses it as leverage to push <<himself>> further onto you. Between <<his>> sucking and the way <<he>> looks up at you in nigh-worship, you can't hold back any longer.
+	<<if _acceptanceAchieved>>
+		You think about what Kylar said, and realisation dawns on you. Your <<penis>> is beautiful. Why should you care what other people say about it?
+		You've gained the
+		<<switch _acceptanceAchieved>>
+			<<case "penis_tiny">> <span class="green">Acceptance: Tiny Penis</span>
+			<<case "penis_small">> <span class="green">Acceptance: Small Penis</span>
+			<<case "penis_big">> <span class="green">Acceptance: Big Penis</span>
+		<</switch>>
+		trait.
 		<br><br>
-
-		<<set $arousal to $arousalmax>>
-		<<if $arousal gte $arousalmax>><<orgasm>><<penileejacstat>><<penilestat>><</if>>
 	<</if>>
+<</widget>>
 
-<<else>>
-	<<He>> probes your labia with <<his>> tongue for a few seconds, before thrusting <<his>> entire face as deep into your <<genitals>> as <<he>> can. <<His>> small hands grasp your <<bottom>> and pull you closer to <<him>>.
-	<<if $vaginalvirginity is 1 and $sexStats.vagina.pregnancy.totalBirthEvents gt 0>>
-		<<His>> tongue brushes against your hymen, and <<he>> prods it, but not hard enough to penetrate it. <<if $NPCList[0].penis isnot "none">>"Later," <<he>> whispers.<</if>>
-	<<elseif $vaginafucked is 1>>
-		You feel <<his>> cum slide out of your pussy, and <<he>> pushes it back in with <<his>> tongue. "Keep my mark in you," <<he>> murmurs.
+<<widget "kylarRandomUnderwear">>
+	<<if !_kylar>>
+		<<set _kylar to statusCheck("Kylar")>>
 	<</if>>
+	<<set $_underwearGender to _args[0] or _kylar.pronoun>> <!-- Futureproofing for kylar crossdressing -->
+	<<set $_underwearSet to []>>
 
-	<br><br>
-	<<arousal 2500>>
-	<<if $arousal gte $arousalmax>>
-		<<orgasm>>
+	<<set $_colour to ["black", "white", "grey", "pink", "red", "green"].random()>>
+	<<set $_colourBase to ["black", "white", "white"].filter(c => c !== $_colour).random()>>
+
+	<!-- gender neutral underwear -->
+	<!-- <<set $_underwearSet.push()>> --> /* empty for now */
+
+	<<if $_underwearGender is "m">>
+		<<set $_underwearSet.push(
+			{id: 4, desc: "XX briefs", simpleDesc: "briefs", colourDesc: "XX briefs", hasAcc: false},
+		)>>
 	<<else>>
-		<<He>> removes a hand from your <<bottom>> and grasps your clit. <<He>> rubs it with <<his>> free hand, making consistent circular motions. Between <<his>> rubbing, <<his>> licking, and the way <<he>> looks up at you in nigh-worship, you can't hold back any longer.
-		<br><br>
-		<<set $arousal to $arousalmax>>
-		<<if $arousal gte $arousalmax>><<orgasm>><</if>>
+		<<set $_underwearSet.push(
+			{id: 20, desc: "panties with XX and YY stripes", simpleDesc: "panties", colourDesc: "XX and XX striped panties", hasAcc: true},
+			{id: 1, desc: "XX panties", simpleDesc: "panties", colourDesc: "XX panties", hasAcc: false},
+		)>>
 	<</if>>
-<</if>>
-Kylar grasps the backs of your thighs greedily. Once your convulsions stop, <<he>> pulls away from your <<genitals>>
-<<if $semen_amount gte 1 or !$player.penisExist>>
-	and swallows, before opening <<his>> mouth to you. <<He>> swallowed every drop.
-<<else>>
-	and smiles.
-<</if>>
-<br><br>
-<<if _acceptanceGained>>
-	<<if $acceptance_penis_tiny gte 1000>>
-		You think about what Kylar said, and realisation dawns on you. Your <<penis>> is beautiful. Why should you care what other people say about it? You've gained the <span class="green">Acceptance: Tiny Penis</span> trait.
-		<br><br>
-	<<elseif $acceptance_penis_small gte 1000>>
-		You think about what Kylar said, and realisation dawns on you. Your <<penis>> is beautiful. Why should you care what other people say about it? You've gained the <span class="green">Acceptance: Small Penis</span> trait.
-		<br><br>
-	<<elseif $acceptance_penis_big gte 1000>>
-		You think about what Kylar said, and realisation dawns on you. Your <<penis>> is beautiful. Why should you care what other people say about it? You've gained the <span class="green">Acceptance: Big Penis</span> trait.
-		<br><br>
+	<<set _kylarUndies to $_underwearSet.random()>>
+
+	<<if _kylarUndies.hasAcc>>
+		<!-- If the underwear has two colours, the second colour is its base, so "white with red stripes" and "red" both use $_colour for "red" -->
+		<<set _kylarUndies.colour to $_colourBase>>
+		<<set _kylarUndies.colourAcc to $_colour>>
+	<<else>>
+		<<set _kylarUndies.colour to $_colour>>
 	<</if>>
-<</if>>
-<</widget>>
 
-<<widget "kylarStatusCheck">>
-<!-- USAGE: if Kylar's love is over 50, <<if _kylarStatus.includes("Love")>>; if otherwise, <<else>> -->
-<<set _kylarStatus to "">>
-<<if $NPCName[$NPCNameList.indexOf("Kylar")].love gte 50>>
-	<<set _kylarStatus to "Love">>
-<<else>>
-	 <<set _kylarStatus to "">>
-<</if>>
-<!-- USAGE: if Kylar's lust is over 60, <<if _kylarStatus.includes("Lust")>>; otherwise, <<else>>  -->
-<<if $NPCName[$NPCNameList.indexOf("Kylar")].lust gte 60>>
-	<<set _kylarStatus += "Lust">>
-<</if>>
-<!-- USAGE: if Kylar's jealousy is over 90: <<if _kylarStatus.includes("MaxRage")>>; otherwise if Kylar's jealousy is over 60: <<elseif _kylarStatus.includes("Rage")>>; otherwise if Kylar's jealousy is over 30: <<if !_kylarStatus.includes("Calm")>>; otherwise, <<else>> -->
-<<if $NPCName[$NPCNameList.indexOf("Kylar")].rage gte 90>>
-	<<set _kylarStatus += "MaxRage">>
-<<elseif $NPCName[$NPCNameList.indexOf("Kylar")].rage gte 60>>
-	<<set _kylarStatus += "Rage">>
-<<elseif $NPCName[$NPCNameList.indexOf("Kylar")].rage gte 30>>
-	<<set _kylarStatus += "Sus">>
-<<else>>
-	<<set _kylarStatus += "Calm">>
-<</if>>
+	<!-- Replace the XX and YY in the descriptions with the colours that have been randomly chosen -->
+	<<set _kylarUndies.desc to _kylarUndies.desc.replace("XX", _kylarUndies.colour).replace("YY", _kylarUndies.colourAcc)>>
+	<<set _kylarUndies.colourDesc to _kylarUndies.colourDesc.replace("XX", _kylarUndies.colour).replace("YY", _kylarUndies.colourAcc)>>
+
+	<<if !($kylarSeen.includes("commando") or $kylarDaily.underwear)>>
+		<<set $kylarDaily.underwear to _kylarUndies>>
+	<</if>>
 <</widget>>
 
 :: Kylar Intro Intervene
@@ -395,7 +360,7 @@ You walk up to the <<person2>><<person>>. Both <<he>> and the bullied <<nnpc_gen
 <br><br>
 
 <<if $submissive gte 1150>>
-	You avert your eyes. "L-let <<person1>><<him>> go," you say. "Don't be mean."
+	You avert your eyes. "L-let <<nnpc_him "Kylar">> go," you say. "Don't be mean."
 <<elseif $submissive lte 850>>
 	"Let <<nnpc_him "Kylar">> go," you demand. "Or it'll be you up against that locker."
 <<else>>
@@ -405,7 +370,7 @@ You walk up to the <<person2>><<person>>. Both <<he>> and the bullied <<nnpc_gen
 The <<person>> regards you for a moment, then laughs. Some of the audience join in. <<He>> releases the bullied <<nnpc_gendery "Kylar">>'s collar. "Sure thing," <<he>> manages through wheezes. "I don't want any trouble." <<His>> laughter redoubles. <<He>> staggers away.
 <br><br>
 
-The bullied <<nnpc_gendery "Kylar">> picks up <<person1>><<his>> bag and starts gathering the contents. "Th-thank you," <<he>> stutters. "I-I'm," <<he>> looks at you, but blushes and looks away. "I'm Kylar." You thought <<he>> was younger than you, but <<he>> seems the same age.
+The bullied <<person1>><<personsimple>> picks up <<his>> bag and starts gathering the contents. "Th-thank you," <<he>> stutters. "I-I'm," <<he>> looks at you, but blushes and looks away. "I'm Kylar." You thought <<he>> was younger than you, but <<he>> seems the same age.
 <<if $devlevel lte 6>>
 	Even with your small stature, <<hes>> only a little taller than you.
 <<elseif $devlevel lte 10>>
@@ -424,10 +389,10 @@ The bullied <<nnpc_gendery "Kylar">> picks up <<person1>><<his>> bag and starts
 :: Kylar Intro Help
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 
-You pick up the bullied <<person1>><<nnpc_gendery "Kylar">>'s bag and gather <<his>> books and pens. The <<person2>><<person>> soon finishes <<his>> game, and drops <<his>> victim to the ground. <<He>> and the audience lose interest.
+You pick up the bullied <<person1>><<personsimple>>'s bag and gather <<his>> books and pens. The <<person2>><<person>> soon finishes <<his>> game, and drops <<his>> victim to the ground. <<He>> and the audience lose interest.
 <br><br>
 
-You're the only one still paying <<person1>><<him>> attention when you walk up to the bullied <<nnpc_gendery "Kylar">> and hold out <<his>> things. <<He>> steps back as if threatened.
+You're the only one still paying <<person1>><<him>> attention when you walk up to the bullied <<personsimple>> and hold out <<his>> things. <<He>> steps back as if threatened.
 <br><br>
 
 <<if $submissive gte 1150>>
@@ -531,6 +496,7 @@ They place it on a table, then step around it into view. It's Kylar. <<His>> hai
 
 :: Kylar Basement 3
 <<set $outside to 0>><<set $location to "school">><<effects>>
+<<set _kylar to statusCheck("Kylar")>>
 
 <<if $phase is 0>>
 <<elseif $phase is 1>>
@@ -561,7 +527,7 @@ They place it on a table, then step around it into view. It's Kylar. <<His>> hai
 
 "You're so rough," <<he>> laughs. "I'm powerless. Do what you want to me."
 
-<<if $NPCList[0].penis isnot "none">>
+<<if _kylar.penis isnot "none">>
 	<<He>> pushes your thighs up and sits on the edge of the chair, pushing against your groin.
 <<else>>
 	<<He>> climbs on top of you.
@@ -573,24 +539,23 @@ They place it on a table, then step around it into view. It's Kylar. <<His>> hai
 <br>
 
 :: Kylar Basement Rape
-<<NPCStatusCheck "Kylar">>
 <<if $molestationstart is 1>>
+	<<set _kylar to statusCheck("Kylar")>>
 	<<set $molestationstart to 0>>
 	<<controlloss>>
 	<<violence 1>>
 	<<neutral 1>>
 	<<molested>>
 	<<maninit>><<set $enemyarousalmax *= 2>><<set $kylar.raped += 1>>
-	<<set _kylar to $NPCList[0]>>
 	<<set _kylar.lefthand to ($worn.under_lower.type.includes("naked") ? 0 : "underlowerclothes")>>
 	<<set _kylar.righthand to ($worn.lower.type.includes("naked") ? 0 : "lowerclothes")>>
 	<<if _kylar.vagina isnot "none" and $player.penisExist and (_kylar.pronoun is "f" or _kylar.penis is "none")>>
 		<<set _kylar.vagina to "penisentrance">><<set $penisuse to "othervagina">><<set $penisstate to "entrance">>
-		<<set _kylar.location.genitals to "genitals">>
+		<<set $NPCList[0].location.genitals to "genitals">>
 	<</if>>
 	<<if _kylar.penis isnot "none" and $player.vaginaExist and (_kylar.pronoun is "m" or _kylar.vagina is "none")>>
 		<<set _kylar.penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">>
-		<<set _kylar.location.genitals to "genitals">><<set $vaginatarget to 0>>
+		<<set $NPCList[0].location.genitals to "genitals">><<set $vaginatarget to 0>>
 	<</if>>
 <</if>>
 
@@ -622,7 +587,7 @@ They place it on a table, then step around it into view. It's Kylar. <<His>> hai
 	"We're going to do this every day," <<he>> says. "Forever."
 
 	<<if !$worn.face.type.includes("gag")>>
-		<<He>> kisses your mouth. <<takeKissVirginity "Kylar" "rape">>
+		<<He>> kisses your mouth. <<takeKissVirginity "Kylar" `($loveInterest.primary is "Kylar" or $loveInterest.secondary is "Kylar"?"loveRape":"rape")`>>
 		<<if _npcKissVirginTemp>>
 			"That was my first kiss," <<he>> whispers. "After so long. We have so many other firsts ahead of us, my love."
 		<</if>>
@@ -656,7 +621,6 @@ They place it on a table, then step around it into view. It's Kylar. <<His>> hai
 <<if $phase is 0>>
 
 <<elseif $phase is 1>>
-
 	<<if $submissive gte 1150>>
 		"P-please no," you say. "Don't hurt anyone!"
 	<<elseif $submissive lte 850>>
@@ -664,7 +628,7 @@ They place it on a table, then step around it into view. It's Kylar. <<His>> hai
 	<<else>>
 		"Don't hurt anyone," you say. "You'll regret it."
 	<</if>>
-<br><br>
+	<br><br>
 
 	<<if $rng gte 51>>
 		"But if I don't," Kylar says. "I'd have to keep you chained up all the time."
@@ -672,12 +636,9 @@ They place it on a table, then step around it into view. It's Kylar. <<His>> hai
 	<<else>>
 		<<kylargag>>
 	<</if>>
-
 <<elseif $phase is 2>>
-
 	<<kylarangry>>
 	<<kylargag>>
-
 <</if>>
 <<generate2>><<person2>>
 A door opens above. "<<Hes>> here," Kylar says, not dropping the axe. A <<person>> wearing a vicar's robe staggers down the stairs. <<He>> takes a swig of an unmarked bottle and surveys the room.
@@ -812,7 +773,7 @@ Kylar watches as you are led away. <<person1>><<He>> weeps harder.
 :: Kylar Basement Car
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 
-<<generatePolice 1>><<generatePolice 2>>A <<person1>><<person>> and <<person2>><<person>> lead you up the stairs. You emerge in a school hallway.
+<<generatePolice 1>><<generatePolice 2>>A <<fullGroup>> lead you up the stairs. You emerge in a school hallway.
 
 <<if $schoolday is 1 and $schoolstate isnot "early" and $schoolstate isnot "late">>
 	Students are being lined up outside and a register taken. The police march you through, giving the other students lots to gossip about no doubt, until you're through the gates and out of sight.
@@ -828,15 +789,13 @@ Kylar watches as you are led away. <<person1>><<He>> weeps harder.
 
 Your bedroom door is ajar. You peek through the gap. Nothing seems to be amiss, until you look in your wardrobe.
 
-<<for _i to 0; _i lt $wardrobe.under_lower.length; _i++>>
-	<<if $wardrobe.under_lower[_i].one_piece isnot 1>>
-	<<set _temp to _i>>
-	<</if>>
-<</for>>
+<<set _stolen to $wardrobe.under_lower.filter(n => n.one_piece != 1 && !n.type.includes("swim")).pluck()>>
 
-<<if _temp>>
-	Your $wardrobe.under_lower[_temp].name <<if $wardrobe.under_lower[_temp].plural is 1>>are<<else>>is<</if>> missing. You search the floor, but turn up nothing.
-	<<set $wardrobe.under_lower.deleteAt(_temp)>>
+<<if _stolen>>
+	<span class="red">Your _stolen.name <<print (_stolen.plural ? "are" : "is")>> missing.</span> You search the floor, but turn up nothing.
+	<<set $wardrobe.under_lower.delete(_stolen)>>
+	<<set $kylarStolenUnderwear to _stolen>>
+	<!-- Note to future developers: you can now use $kylarStolenUnderwear to refer to the underwear that Kylar stole. -->
 <<else>>
 	The clothes are hung in a haphazard manner. Someone took them off and put them back in a hurry.
 <</if>>
@@ -928,8 +887,6 @@ You turn to leave. Kylar grasps your wrist. "Wh-where are you going?" <<he>> say
 <br><br>
 
 <<kylaroptions>>
-<<link [[Shake off|Kylar Shake]]>><<npcincr Kylar rage 5>><</link>><<ggksuspicion>>
-<br>
 
 :: Kylar Shake
 <<set $outside to 0>><<effects>>
@@ -941,87 +898,93 @@ You shake off Kylar's grip and leave. <<He>> watches you with <<his>> fists clen
 <<kylaroptionsleave>>
 
 :: Kylar Tease
-<<set $outside to 0>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 0>><<effects>>
 <<set $kylar_action to "tease">>
+<<set _kylar to statusCheck("Kylar")>>
+<<cleareventpool>>
 
 <<if _kylarStatus.includes("Love")>>
-	<<if $rng gte 91>>
+	<<if $genderknown.includes("Kylar")>>
+		<<addinlineevent "kylarFlirtClothesPull">>
+			You pull your $worn.lower.name taut against your <<genitals>>. "I may need a smaller size," you say. Kylar stands in front of you to shield you from view.
+		<</addinlineevent>>
+	<</if>>
+	<<addinlineevent "kylarFlirtPat">>
 		You pat Kylar's head. <<His>> eyes close in bliss.
-	<<elseif $rng gte 81>>
-		You pull your $worn.lower.name taut against your <<genitals>>. "I may need a smaller size," you say. Kylar stands in front of you to shield you from view.
-		<<if $worn.genitals.type.includes("hidden")>>
-			<<set $genderknown.pushUnique("Kylar")>>
-		<</if>>
-	<<elseif $rng gte 71>>
+	<</addinlineevent>><<addinlineevent "kylarFlirtWhisper">>
 		You whisper something naughty into Kylar's ear. "D-don't," <<he>> says, smiling. "Someone might hear you."
-	<<elseif $rng gte 61>>
+	<</addinlineevent>><<addinlineevent "kylarFlirtCheek">>
 		You lick Kylar's cheek. <<He>> licks you back.
-	<<elseif $rng gte 51>>
+	<</addinlineevent>><<addinlineevent "kylarFlirtUndies">>
+		<<set _kylarLower to _kylar.clothes.lower.name>>
 		<<if $kylarSeen.includes("commando") or $kylarDaily.undies is true>>
 			You ask to see Kylar's underwear. "Just to make sure you don't have any, of course," you say.
-			<<if $pronoun is "m">>
-				<<He>> blushes, but pulls down the hem of <<his>> shorts, revealing <<his>> <<if $NPCList[0].penis isnot "none">>$NPCList[0].penisdesc<<else>>pussy<</if>>.
+			<<if _kylarLower.includes("skirt")>>
+				<<He>> blushes, but lifts the side of <<his>> _kylarLower,
 			<<else>>
-				<<He>> blushes, but lifts the side of <<his>> skirt, revealing <<his>> <<if $NPCList[0].penis isnot "none">>$NPCList[0].penisdesc<<else>>pussy<</if>>
+				<<He>> blushes, but pulls down the hem of <<his>> _kylarLower,
 			<</if>>
+			revealing
+			<<set _penis to (_kylar.penissize gte 3 ? "a few inches of <<his>> _kylar.penisdesc" : "<<his>> _kylar.penisdesc")>>
+			<<print (_kylar.penis isnot "none" ? (_kylar.vagina isnot "none" ? "<<his>> pussy and _penis" : "_penis") : "<<his>> pussy")>>.
 			<<arousal 100>><<garousal>>
 			<br><br>
+
 			"I-I'm not wearing any," <<he>> whispers. "Are you happy?"
 			<br><br>
+
 			You kiss <<him>> on the cheek and let that speak for itself.
 		<<else>>
+			<<if !$kylarDaily.underwear>>
+				<<kylarRandomUnderwear>>
+			<</if>>
 			You ask to see Kylar's underwear. "Or maybe," you say, "you don't have any on?"
-			<<if $pronoun is "m">>
-				<<He>> pulls down the hem of <<his>> shorts to reveal white briefs.
+			<!-- Note for future writers: you COULD use $kylarStolenUnderwear here to reveal kylar is wearing the underwear they stole from the player. -->
+			<<if _kylarLower.includes("skirt")>>
+				<<He>> blushes, but lifts the side of <<his>> _kylarLower to reveal
 			<<else>>
-				<<He>> lifts the side of <<his>> skirt to reveal panties with white and pink stripes.
+				<<He>> blushes, but pulls down the hem of <<his>> _kylarLower to reveal
 			<</if>>
+			<<print $kylarDaily.underwear.desc>>.
 			<br><br>
+
 			"D-don't tell anyone," <<he>> says. "That's for you only."
-			<<if $promiscuity gte 35 and !$kylarSeen.includes("commando") and ($whitneypantiescheck is 1 or $exhibitionism gte 75 or $kylarSeen.includes("home")) and (($location is "school" and $hour is 12) or ($location isnot "school" and $daystate is "day" and (!$NPCName[$NPCNameList.indexOf("Kylar")].love gte 80 or !_kylarStatus.includes("Lust") or !$kylarDaily.invite is "home")))>>
-				<<set $kylar_action to "panties">>
-				<br><br>
-				<<if $kylarSeen.includes("home")>>
-					You remember seeing Kylar snooping around your room, as well as noticing a pair of underwear missing before that, and
-				<<elseif $whitneypantiescheck is 1>>
-					You remember the deal Whitney made with you, about coming to school with no underwear, and
-				<<else>>
-					You think of your own experiences with being exposed in public, and
-				<</if>>
-				<span class="lewd">a lewd idea strikes you.</span>
-				<br>
+			<<if $promiscuity gte 35 and !$kylarSeen.includes("commando") and ($whitneypantiescheck is 1 or $exhibitionism gte 75 or $kylarSeen.includes("home")) and !(($location is "park" or $bus is "starfish") and _kylar.love gte 80 and _kylar.lust gte 80 and $kylarDaily.invite isnot "home")>>
+				<<set _lewdIdea to true>>
 			<</if>>
 		<</if>>
-	<<elseif $rng gte 41>>
+	<</addinlineevent>><<addinlineevent "kylarFlirtThigh">>
 		You lay your hand on Kylar's inner thigh. <<He>> widens <<his>> legs slightly to allow you better access.
-	<<elseif $rng gte 31>>
+	<</addinlineevent>><<addinlineevent "kylarFlirtEar">>
 		You blow into Kylar's ear. <<He>> smiles and blows into yours in response.
-		<<if $rng gte 26>>
+		<<if random(0,1)>>
 			"Your ears were very sensitive in my dream," <<he>> says. "I guess they're not as sensitive here."
 			<<gstress>><<stress 1>>
 			<br>
 		<</if>>
-	<<elseif $rng gte 21>>
+	<</addinlineevent>><<addinlineevent "kylarFlirtBonk">>
 		You lean in to whisper something naughty in Kylar's ear, but end up bonking your head on <<hers>>. <<He>> had turned to lean in at the same time.
 		<<gpain>><<pain 3>>
 		<br><br>
 		<<He>> quickly checks to make sure you're okay, before you both burst into giggles.
-	<<elseif $rng gte 11>>
+	<</addinlineevent>><<addinlineevent "kylarFlirtStare">>
 		You cup Kylar's cheek with your hand and stare into <<his>> eyes. <<He>> looks at you for a few seconds, before moving your hand to <<his>> mouth and pressing a kiss into your palm.
-	<<else>>
-		<<if random(1,11) is 11 and $sadism_level gte 3>>
-			You whisper to Kylar that you really like hurting others. When you hit or bite into someone and hear them grunt in pain, you feel a thrill. Even outside of sex, in an actual fight, it fills you with perverse glee. Kylar opens <<his>> mouth, but closes it again. <<He>> doesn't respond.
-		<<elseif random(1,11) is 11 and $sadism_level gte 1>>
-			You whisper to Kylar that you like hurting others. You feel guilty about it, but with how you've been abused, it feels nice to inflict that pain on someone else. "I can lend you my knife during sex if you want," <<he>> says. You're not sure you want to go that far.
-			<<gstress>><<stress 3>>
-			<br>
+	<</addinlineevent>><<addinlineevent "kylarFlirtKink">>
+		<<if random(1,11) is 11 and $sadism_level gte 1>>
+			<<if $sadism_level gte 3>>
+				You whisper to Kylar that you really like hurting others. When you hit or bite into someone and hear them grunt in pain, you feel a thrill. Even outside of sex, in an actual fight, it fills you with perverse glee. Kylar opens <<his>> mouth, but closes it again. <<He>> doesn't respond.
+			<<else>>
+				You whisper to Kylar that you like hurting others. You feel guilty about it, but with how you've been abused, it feels nice to inflict that pain on someone else. "I can lend you my knife during sex if you want," <<he>> says. You're not sure you want to go that far.
+				<<gstress>><<stress 3>>
+				<br>
+			<</if>>
 		<<elseif random(1,11) is 10 and $orgasmtrait gte 1>>
 			You whisper to Kylar that you can't be satisfied with just one orgasm. You want two, three, more. Dozens if you have the time to spare. Hundreds if you thought your body could handle it. "I can make that happen," <<he>> says. "Promise."
 		<<elseif random(1,11) is 9 and $choketrait gte 1>>
 			You whisper to Kylar that you really like being choked, the tighter the better. The feeling of being pleasured while you can't breathe drives you wild. "I'll do it if you want me to," <<he>> says. "But I don't want to hurt you."
 		<<elseif random(1,11) is 8 and $ejactrait gte 1>>
-			You whisper to Kylar that you love being covered in cum. The feeling of being drenched in lewd fluid is somehow calming to you. It makes you feel safe, wanted. It's proof that you're still here. It also just... smells really nice. 
-			<<if $NPCList[0].penis isnot "none">>
+			You whisper to Kylar that you love being covered in cum. The feeling of being drenched in lewd fluid is somehow calming to you. It makes you feel safe, wanted. It's proof that you're still here. It also just... smells really nice.
+			<<if _kylar.penis isnot "none">>
 				"I can make that happen," <<he>> says. "Just give me a few... hours?"
 			<<else>>
 				<<He>> seems disheartened.
@@ -1047,11 +1010,11 @@ You shake off Kylar's grip and leave. <<He>> watches you with <<his>> fists clen
 		<<elseif random(1,11) is 2 and $masochism_level gte 1>>
 			You whisper to Kylar that you like being hurt. The thought of someone slapping you, or digging their fingernails into you, makes you blush. "I'll do it if you want me to," <<he>> says. "But I don't want to hurt you."
 		<<elseif random(1,11) is 1 and $milkdranktrait gte 1>>
-			You whisper to Kylar that you really love breast milk. Besides the obvious appeal of sucking on someone's breast, the milk is always warm, creamy, and delicious. 
+			You whisper to Kylar that you really love breast milk. Besides the obvious appeal of sucking on someone's breast, the milk is always warm, creamy, and delicious.
 			<<if $trauma gte ($traumamax / 5) * 3>>
-				Sometimes, when they stroke the back of your head while you're suckling, it makes you feel wanted. Almost like you're with... You cut yourself off. 
+				Sometimes, when they stroke the back of your head while you're suckling, it makes you feel wanted. Almost like you're with... You cut yourself off.
 			<</if>>
-			<<if $pronoun is "m">>
+			<<if _kylar.pronoun is "m">>
 				<<He>> seems disheartened.
 			<<else>>
 				"I can make that happen," <<he>> says. "There must be a way for me to start lactating."
@@ -1060,47 +1023,43 @@ You shake off Kylar's grip and leave. <<He>> watches you with <<his>> fists clen
 			You whisper to Kylar one of your deepest fantasies.
 			"<<print either("Before marriage? You're so lewd,","I can make that happen,","I think I can make that happen,","You what?","That's... um, perfectly normal,","You too?!","Maybe sometime we can do that together,")>>" <<he>> says.
 		<</if>>
-	<</if>>
+	<</addinlineevent>>
 <<else>>
-	<<if $rng gte 91>>
+	<<if $genderknown.includes("Kylar")>>
+		<<addinlineevent "kylarTeaseClothesPull">>
+			You pull your $worn.lower.name taut against your <<genitals>>. "I may need a smaller size," you say. Kylar's face turns red.
+		<</addinlineevent>>
+	<</if>>
+	<<addinlineevent "kylarTeasePat">>
 		You pat Kylar's head. <<He>> recoils from each touch as if struck. When you stop, <<he>> whispers, "M-more."
-	<<elseif $rng gte 81>>
-		You pull your $worn.lower.name taut against your <<genitals>>. "I may need a smaller size," you say. Kylar's face turns red.
-		<<if $worn.genitals.type.includes("hidden")>>
-			<<set $genderknown.pushUnique("Kylar")>>
-		<</if>>
-	<<elseif $rng gte 71>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseWhisper">>
 		You whisper something naughty into Kylar's ear. <<He>> looks away and blushes.
-	<<elseif $rng gte 61>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseCheek">>
 		You lick Kylar's cheek. <<He>> tenses, but rests <<his>> hand on the spot you touched.
-	<<elseif $rng gte 51>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseUndies">>
 		You ask Kylar what sort of underwear <<he>> has on. "Or maybe," you say. "You don't have any?" <<He>> trembles.
-	<<elseif $rng gte 41>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseThigh">>
 		You lay your hand on Kylar's inner thigh. <<He>> flinches and clenches <<his>> legs shut, crushing your hand. "S-sorry!" <<He>> yelps, opening them again.
 		<<gpain>><<pain 3>>
 		<br>
-	<<elseif $rng gte 31>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseEar">>
 		You blow into Kylar's ear. <<His>> breathing becomes funny for a moment.
-	<<elseif $rng gte 21>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseBonk">>
 		You whisper something naughty into Kylar's ear. <<He>> whimpers.
-	<<elseif $rng gte 11>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseStare">>
 		You cup Kylar's cheek with your hand and stare into <<his>> eyes. <<He>> stares back at you, like a deer in headlights. You can feel <<him>> trembling, and decide to remove your hand before you scare <<him>> away.
-	<<else>>
+	<</addinlineevent>><<addinlineevent "kylarTeaseKink">>
 		<<if random(1,11) is 11 and $sadism_level gte 3>>
 			You whisper to Kylar that you really like hurting others. When you hit or bite into someone and hear them grunt in pain, you feel a thrill. Even outside of sex, in an actual fight, it fills you with perverse glee. <<He>> looks away, sweating.
 		<<elseif random(1,11) is 11 and $sadism_level gte 1>>
 			You whisper to Kylar that you like hurting others. You feel guilty about it, but with how you've been abused, it feels nice to inflict that pain on someone else. <<He>> looks away, blushing.
 		<<elseif random(1,11) is 10 and $orgasmtrait gte 1>>
-			You whisper to Kylar that you can't be satisfied with just one orgasm. You want two, three, more. Dozens if you have the time to spare.  Hundreds if you thought your body could handle it. <<He>> looks away, blushing.
+			You whisper to Kylar that you can't be satisfied with just one orgasm. You want two, three, more. Dozens if you have the time to spare. Hundreds if you thought your body could handle it. <<He>> looks away, blushing.
 		<<elseif random(1,11) is 9 and $choketrait gte 1>>
 			You whisper to Kylar that you really like being choked, the tighter the better. The feeling of being pleasured while you can't breathe drives you wild. <<He>> looks away, blushing.
 		<<elseif random(1,11) is 8 and $ejactrait gte 1>>
-			You whisper to Kylar that you love being covered in cum. The feeling of being drenched in lewd fluid is somehow calming to you. It makes you feel safe, wanted. It's proof that you're still here. It also just... smells really nice. 
-			<<if $NPCList[0].penis isnot "none">>
-				<<He>> looks away, blushing.
-			<<else>>
-				<<He>> looks away, frowning.
-			<</if>>
+			You whisper to Kylar that you love being covered in cum. The feeling of being drenched in lewd fluid is somehow calming to you. It makes you feel safe, wanted. It's proof that you're still here. It also just... smells really nice.
+			<<He>> looks away, <<print (_kylar.penis isnot "none" ? "blushing" : "frowning")>>.
 		<<elseif random(1,11) is 7 and $molesttrait gte 1>>
 			You whisper to Kylar that even though you wish you weren't molested all the time, part of you is still excited by it. The knowledge that complete strangers are driven to do such things, just because of your body, makes you shiver. <<He>> looks away, frowning.
 			<br><br>
@@ -1108,7 +1067,7 @@ You shake off Kylar's grip and leave. <<He>> watches you with <<his>> fists clen
 			You whisper to Kylar that even though you hate all the rapists in town, part of you is still excited by them. Somehow, the feeling of being taken against your will isn't as scary as it used to be. <<He>> looks away, frowning.
 			<br><br>
 		<<elseif random(1,11) is 5 and $bestialitytrait gte 1>>
-			You whisper to Kylar that you find <<if $bestialitydisable is "f">>beasts<<else>>monsters<</if>> almost as good as people, sometimes better. Their instinct-driven, animalistic mating makes you shiver. <<He>> looks away, wide-eyed.
+			You whisper to Kylar that you find <<print ($bestialitydisable is "f" ? "beasts" : "monsters")>> almost as good as people, sometimes better. Their instinct-driven, animalistic mating makes you shiver. <<He>> looks away, wide-eyed.
 			<br><br>
 		<<elseif random(1,11) is 4 and $tentacletrait gte 1>>
 			You whisper to Kylar that you've fantasised about being accosted by a hoard of tentacles to have their way with you. Writhing, thrusting, wrapping around you and using your every hole to obey their primal urges. <<He>> looks away, blushing.
@@ -1119,23 +1078,38 @@ You shake off Kylar's grip and leave. <<He>> watches you with <<his>> fists clen
 		<<elseif random(1,11) is 2 and $masochism_level gte 1>>
 			You whisper to Kylar that you like being hurt. The thought of someone slapping you, or digging their fingernails into you, makes you blush. <<He>> looks away, blushing.
 		<<elseif random(1,11) is 1 and $milkdranktrait gte 1>>
-			You whisper to Kylar that you really love breast milk. Besides the obvious appeal of sucking on someone's breast, the milk is always warm, creamy, and delicious. 
+			You whisper to Kylar that you really love breast milk. Besides the obvious appeal of sucking on someone's breast, the milk is always warm, creamy, and delicious.
 			<<if $trauma gte ($traumamax / 5) * 3>>
-				Sometimes, when they stroke the back of your head while you're suckling, it makes you feel wanted. Almost like you're with... You cut yourself off. 
-			<</if>>
-			<<if $pronoun is "m">>
-				<<He>> looks away, frowning.
-			<<else>>
-				<<He>> looks away, blushing.
+				Sometimes, when they stroke the back of your head while you're suckling, it makes you feel wanted. Almost like you're with... You cut yourself off.
 			<</if>>
+			<<He>> looks away, <<print (_kylar.pronoun is "m" ? "frowning" : "blushing")>>.
 		<<else>>
 			You whisper to Kylar one of your deepest fantasies. <<He>> looks away, <<print either("blushing","frowning","wide-eyed","sweating","hiding a smile")>>.
 		<</if>>
-	<</if>>
+	<</addinlineevent>>
 <</if>>
+<<runeventpool>>
 <<promiscuity1>>
 
-<<if ($location is "park" or $bus is "starfish") and $NPCName[$NPCNameList.indexOf("Kylar")].love gte 80 and $NPCName[$NPCNameList.indexOf("Kylar")].lust gte 80 and $kylarDaily.invite isnot "home">>
+<<if _lewdIdea>>
+	<<if $kylarSeen.includes("home")>>
+		You remember seeing Kylar snooping around your room, as well as noticing a pair of underwear missing before that, and
+	<<elseif $whitneypantiescheck is 1>>
+		You remember the deal Whitney made with you, about coming to school with no underwear, and
+	<<else>>
+		You think of your own experiences with being exposed in public, and
+	<</if>>
+	<span class="lewd">a lewd idea strikes you.</span>
+	<br><br>
+
+	<<kylaroptionstext>>
+	<br><br>
+
+	<<link [[`Ask Kylar for ${_kylar.pronouns.his} ${$kylarDaily.underwear.simpleDesc}`|Kylar Tease Underwear]]>><<arousal 600>><<npcincr Kylar lust 3>><</link>><<promiscuous3>><<garousal>><<gglust>>
+	<br><br>
+	<<kylaroptions "notext">>
+
+<<elseif ($location is "park" or $bus is "starfish") and _kylar.love gte 80 and _kylar.lust gte 80 and $kylarDaily.invite isnot "home">>
 	<<set $kylarDaily.invite to "home">>
 	Kylar stares at you, eyes full of intensity. It melts away at once. "D-do you," <<he>> manages before averting <<his>> eyes. "Do you want to go somewhere private, where we can do th-things?"
 	<br><br>
@@ -1274,7 +1248,7 @@ pushing you down to the bed.
 <br>
 
 :: Kylar Orphanage Sex
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
 	<<consensual>>
@@ -1301,9 +1275,9 @@ pushing you down to the bed.
 
 :: Kylar Orphanage Sex Finish
 
-<<set $outside to 0>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 0>><<effects>><<run statusCheck("Kylar")>>
 <<if $enemyarousal gte $enemyarousalmax>>
-	<<ejaculation>><<npcincr Kylar lust -20>>
+	<<ejaculation>><<npcincr Kylar lust -20>><<lllust>>
 
 	<<He>> lies on top of you for a few moments, eyes closed in contentment.
 	<<if $orgasmcurrent is 0 and !$worn.genitals.type.includes("chastity")>>
@@ -1453,29 +1427,29 @@ You snuggle under the covers with Kylar.
 <br><br>
 
 <<if $sleeptrouble is 1 and $controlled is 0>>
-	<<link [[Sleep for 10 hours|Sleep]]>><<set $sleephour to 10>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
+	<<link [[Sleep for 10 hours|Sleep]]>><<set $sleephour to 10>><<incrementautosave>><</link>> (<<timeAfterXHours 10>>)<<ltiredness>>
 	<br>
-	<<link [[Sleep for 9 hours|Sleep]]>><<set $sleephour to 9>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
+	<<link [[Sleep for 9 hours|Sleep]]>><<set $sleephour to 9>><<incrementautosave>><</link>> (<<timeAfterXHours 9>>)<<ltiredness>>
 	<br>
 <</if>>
 
-<<link [[Sleep for 8 hours|Sleep]]>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
+<<link [[Sleep for 8 hours|Sleep]]>><<set $sleephour to 8>><<incrementautosave>><</link>> (<<timeAfterXHours 8>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 7 hours|Sleep]]>><<set $sleephour to 7>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
+<<link [[Sleep for 7 hours|Sleep]]>><<set $sleephour to 7>><<incrementautosave>><</link>> (<<timeAfterXHours 7>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 6 hours|Sleep]]>><<set $sleephour to 6>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
+<<link [[Sleep for 6 hours|Sleep]]>><<set $sleephour to 6>><<incrementautosave>><</link>> (<<timeAfterXHours 6>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 5 hours|Sleep]]>><<set $sleephour to 5>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
+<<link [[Sleep for 5 hours|Sleep]]>><<set $sleephour to 5>><<incrementautosave>><</link>> (<<timeAfterXHours 5>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 4 hours|Sleep]]>><<set $sleephour to 4>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
+<<link [[Sleep for 4 hours|Sleep]]>><<set $sleephour to 4>><<incrementautosave>><</link>> (<<timeAfterXHours 4>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 3 hours|Sleep]]>><<set $sleephour to 3>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
+<<link [[Sleep for 3 hours|Sleep]]>><<set $sleephour to 3>><<incrementautosave>><</link>> (<<timeAfterXHours 3>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 2 hours|Sleep]]>><<set $sleephour to 2>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
+<<link [[Sleep for 2 hours|Sleep]]>><<set $sleephour to 2>><<incrementautosave>><</link>> (<<timeAfterXHours 2>>)<<ltiredness>>
 <br>
-<<link [[Sleep for 1 hour|Sleep]]>><<set $sleephour to 1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
+<<link [[Sleep for 1 hour|Sleep]]>><<set $sleephour to 1>><<incrementautosave>><</link>> &#8194;(<<timeAfterXHours 1>>)<<ltiredness>>
 <br>
-<<link [[Just sleep|Sleep]]>><<set $sleephour to -1>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>> (??:??)<<ltiredness>>
+<<link [[Just sleep|Sleep]]>><<set $sleephour to -1>><<incrementautosave>><</link>> (??:??)<<ltiredness>>
 <br><br>
 
 <<link [[Just cuddle (0:30)|Kylar Orphanage Cuddle]]>><<set $kylarbed to 0>><<set $phase to 1>><</link>>
@@ -1530,7 +1504,7 @@ Kylar's grip on your hand tightens, before <<he>> lunges forward and kisses you
 <<link [[Next|Kylar Orphanage Cuddle 2]]>><<set $phase to 1>><</link>>
 
 :: Kylar Orphanage Cuddle Berate
-<<effects>><<NPCStatusCheck "Kylar">>
+<<effects>><<run statusCheck("Kylar")>>
 
 <<if $submissive gte 1150>>
 	"You're being creepy again," you say. "I don't think we're there yet." 'Love' is a bit much for what you have, you think.
@@ -1545,7 +1519,7 @@ Kylar's grip on your hand tightens, before <<he>> lunges forward and kisses you
 <br><br>
 
 <<if !_kylarStatus.includes("Calm")>>
-	<<He>> gapes at you for a moment, before scowling. <<He>> clenches his fists and shakes them, then turns and stomps away from you. <<He>> flings the door open and storms out.
+	<<He>> gapes at you for a moment, before scowling. <<He>> clenches <<his>> fists and shakes them, then turns and stomps away from you. <<He>> flings the door open and storms out.
 <<else>>
 	<<He>> gapes at you for a moment, before sniffling. <<He>> slowly backs away from you, then turns and runs to the door. <<He>> takes a moment to swipe at <<his>> eyes before bolting out.
 <</if>>
@@ -1554,7 +1528,7 @@ Kylar's grip on your hand tightens, before <<he>> lunges forward and kisses you
 <<link [[Next|Bedroom]]>><<endevent>><</link>>
 
 :: Kylar Orphanage Cuddle Ignore
-<<effects>><<NPCStatusCheck "Kylar">>
+<<effects>><<run statusCheck("Kylar")>>
 
 You decide to ignore what <<hes>> saying. <<His>> stammering slowly stops, and <<he>> falls silent.
 <<if !_kylarStatus.includes("Calm")>>
@@ -1571,7 +1545,8 @@ You decide to ignore what <<hes>> saying. <<His>> stammering slowly stops, and <
 
 <<if $phase is 1>>
 	Eventually <<he>> pulls back from you, looking disappointed. "I shouldn't stay here much longer," <<he>> says. <<if $hour gte 18 or $hour lte 7>>"They're waiting for me."<</if>>You look at <<him>>. <<His>> hair is sticking to <<his>> face<<if $makeup.lipstick isnot 0>>, and <<his>> mouth is smeared with your lipstick<</if>>. You reach forward and brush <<his>> hair away, and <<he>> smiles.
-<br><br>
+	<br><br>
+	
 	"I'm so happy you love me back," <<he>> says. "Well, of course I am, but I'm also relieved. That was... that was the first time I told you I loved you<<if $kylarSeen.includes("saidLove")>>, and meant it<</if>>. I was so scared that you'd... not accept me. That you'd think I was going too fast." <<He>> grabs your hand in both of <<hers>>. "Thank you. For... thank you."
 <<else>>
 	<<He>> stands up from the bed, looking disappointed. "I shouldn't stay here much longer," <<he>> says. <<if $hour gte 18 or $hour lte 7>>"They're waiting for me."<</if>>You look at <<him>>. <<His>> hair is sticking to <<his>> face. You reach forward and brush <<his>> hair away, and <<he>> smiles.
@@ -1581,7 +1556,7 @@ You decide to ignore what <<hes>> saying. <<His>> stammering slowly stops, and <
 <<if $hour lte 18 and $hour gte 7>>
 	<<if $weather is "rain" or $weather is "snow">>
 		<<link [[Walk to the arcade together (0:15)|Kylar Arcade Walk]]>><<pass 15>><</link>>
-	<br>
+		<br>
 	<<else>>
 		<<link [[Walk to the park together (0:15)|Kylar Park Walk]]>><<pass 15>><</link>>
 		<br>
@@ -1602,7 +1577,7 @@ You decide to ignore what <<hes>> saying. <<His>> stammering slowly stops, and <
 <</if>>
 <br><br>
 
-"Pfft, sure," the <<person>> says. "Doesn't change you getting down and dirty with <<nnpc_him "Kylar">>." <<He>> spat the word like it was mud in his mouth. "I guess you wouldn't mind if I told everyone!"
+"Pfft, sure," the <<person>> says. "Doesn't change you getting down and dirty with <<nnpc_him "Kylar">>." <<He>> spat the word like it was mud in <<his>> mouth. "I guess you wouldn't mind if I told everyone!"
 <br><br>
 
 <<He>> turns and leaves your room. Kylar mutters to <<person1>><<himself>>, but smiles at you, grateful.
@@ -1614,7 +1589,7 @@ You decide to ignore what <<hes>> saying. <<His>> stammering slowly stops, and <
 <<link [[Next|Kylar Orphanage Cuddle]]>><</link>>
 
 :: Kylar Orphanage Sleep Berate
-<<effects>><<NPCStatusCheck "Kylar">>
+<<effects>><<run statusCheck("Kylar")>>
 
 <<if $submissive gte 1150>>
 	You turn to Kylar. "How did you get in-"
@@ -1664,7 +1639,7 @@ Content, you walk back to the bed. Kylar gazes at you with reverence. <<person1>
 <<link [[Next|Kylar Orphanage Cuddle]]>><<set $phase to 2>><</link>>
 
 :: Kylar Orphanage Rape
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $molestationstart is 1>>
 	<<set $molestationstart to 0>>
 	<<endevent>><<npc Kylar>><<person1>>
@@ -1725,7 +1700,7 @@ Kylar stops under the door frame on <<his>> way out.
 	<<He>> quickly darts back in to kiss you one more time, then leaves without a sound.
 	<<arousal 600>><<garousal>>
 <<else>>
-<<He>> shoots you a longing look, then leaves without a sound.
+	<<He>> shoots you a longing look, then leaves without a sound.
 <</if>>
 <br><br>
 
@@ -1751,17 +1726,13 @@ You accompany Kylar to the arcade. <<He>> grasps your hand once outside the orph
 <<kylaroptions>>
 
 :: Kylar Tease 2
-<<effects>><<NPCStatusCheck "Kylar">>
-<<if $location is "school">>
-	<<set $kylarDaily.invite to "school">>
-<<else>>
-	<<set $kylarDaily.invite to "home">>
-<</if>>
+<<effects>><<set _kylar to statusCheck("Kylar")>>
+<<set $kylarDaily.invite to ($location is "school" ? "school" : "home")>>
 
 You lean in again, and press your lips to Kylar's cheek, lingering for a few seconds. You can feel <<his>> cheek shift as <<he>> smiles. You're not done yet, though. You hold <<his>> head in place with one hand and kiss <<him>> again, this time a little lower, near the jawline. You keep kissing <<him>>, going over <<his>> chin and down <<his>> neck. <<His>> breathing becomes heavy.
 <br><br>
 
-You rest your other hand on <<his>> <<if $pronoun is "m">>shorts<<else>>skirt<</if>>, right over <<his>> crotch, and press down gently. <<He>> gasps, and you take the opportunity to suck on the inside of <<his>> neck. The gasp turns into a desperate moan.
+You rest your other hand on <<his>> _kylar.clothes.lower.name, right over <<his>> crotch, and press down gently. <<He>> gasps, and you take the opportunity to suck on the inside of <<his>> neck. The gasp turns into a desperate moan.
 <br><br>
 
 <<if $submissive gte 1150>>
@@ -1790,7 +1761,7 @@ You rest your other hand on <<his>> <<if $pronoun is "m">>shorts<<else>>skirt<</
 <br>
 
 :: Kylar Tease 2 Decline
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $submissive gte 1150>>
 	"S-sorry," you say, leaning away from <<him>>. "Not now."
 <<elseif $submissive lte 850>>
@@ -1813,13 +1784,27 @@ You rest your other hand on <<his>> <<if $pronoun is "m">>shorts<<else>>skirt<</
 
 :: Kylar Tease Bathroom
 <<effects>><<set $outside to 0>><<set $location to $school>>
+<<set _kylar to statusCheck("Kylar")>>
 
-You lean close, and whisper your invite into Kylar's ear. <<He>> shivers. <<promiscuity2>>
-<br><br>
+You lean close, and whisper your invite into Kylar's ear. <<He>> shivers.
+<<promiscuity2>>
 
 Kylar hugs your arm on the walk over, as if afraid you'll run. The halls are empty, and you reach the bathrooms without anyone noticing you.
-<<if $player.gender isnot $pronoun or ($player.gender is "h" and $player.gender_appearance isnot $pronoun)>>
-	<<He>> hesitates a bit when you walk into the <<if $player.gender is "m" or ($player.gender is "h" and $player.gender_appearance is "m")>>boy's<<else>>girl's<</if>> bathroom, but follows you anyway.
+<<if $player.gender is "h" or ($backgroundTraits.includes("crossdresser") and $player.gender isnot $player.gender_appearance)>>
+	<<set $kylarBathroomGender to $player.gender_appearance>>
+<<else>>
+	<<set $kylarBathroomGender to $player.gender>>
+<</if>>
+<<if $kylarBathroomGender isnot _kylar.pronoun>>
+	<<set _boy to ($kylarBathroomGender is "m" ? "boy" : "girl")>>
+	<<if $submissive gte 1150 + random(0,250) + _kylar.lust>>
+		<<He>> hesitates a bit when you approach the _boy's bathroom.
+		"Umm, c-could we use the <<print (_kylar.pronoun is "m" ? "boy": "girl")>>'s room instead?"
+		<<set $kylarBathroomGender to _kylar.pronoun>>
+		You don't refuse.
+	<<else>>
+		<<He>> hesitates a bit when you walk into the _boy's bathroom, but follows you anyway.
+	<</if>>
 <</if>>
 <br><br>
 
@@ -1829,7 +1814,7 @@ The bathroom is empty. You make your way to a stall and pull Kylar in. <<Hes>> u
 <<link [[Next|Kylar Bathroom Sex]]>><<set $sexstart to 1>><</link>>
 
 :: Kylar Bathroom Sex
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
 	<<consensual>>
@@ -1856,7 +1841,7 @@ The bathroom is empty. You make your way to a stall and pull Kylar in. <<Hes>> u
 <</if>>
 
 :: Kylar Bathroom Sex Finish
-<<NPCStatusCheck "Kylar">>
+<<set _kylar to statusCheck("Kylar")>>
 <<set $outside to 0>><<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>><<npcincr Kylar lust -20>>
@@ -1874,47 +1859,40 @@ The bathroom is empty. You make your way to a stall and pull Kylar in. <<Hes>> u
 		<<kylarFinish>>
 	<</if>>
 
-	<<clotheson>>
-	<<endcombat>>
-	<<npc Kylar>><<person1>>
-
 <<elseif $enemyhealth lte 0>>
 	"Ow!" Kylar collapses against the stall door. "D-did I do something wrong?"
 	<<lllove>><<npcincr Kylar love -3>>
 	<br><br>
 	<<tearful>> you stand up and inch away from <<him>>.
 	<br><br>
-	<<clotheson>>
-	<<endcombat>>
-	<<npc Kylar>><<person1>>
 
 <<else>>
 	"D-did I do something wrong?" Kylar asks as <<he>> pulls away from you.
 	<br><br>
 	<<tearful>> you stand up.
 	<br><br>
-	<<clotheson>>
-	<<endcombat>>
-	<<npc Kylar>><<person1>>
 <</if>>
 
+<<clotheson>>
+<<endcombat>>
+<<npc Kylar>><<person1>>
+
 <<if $hour isnot 12>>
 	<<He>> looks at <<his>> watch. "I need to go," <<he>> says. "I'll be late for my lessons." <<He>> keeps looking over <<his>> shoulder as <<he>> walks out.
-	<<if $player.gender isnot $pronoun or ($player.gender is "h" and $player.gender_appearance isnot $pronoun)>>
-		<<He>> flinches upon hearing laughter from the halls. Somebody saw <<him>> come out of the <<if $player.gender is "m" or ($player.gender is "h" and $player.gender_appearance is "m")>>boy's<<else>>girl's<</if>> bathroom.
+	<<if $kylarBathroomGender isnot _kylar.pronoun and random(1,100) lte 75>>
+		<<He>> flinches upon hearing laughter from the halls. Somebody saw <<him>> come out of the <<print ($kylarBathroomGender is "m" ? "boy" : "girl")>>'s bathroom.
 	<</if>>
 	<br><br>
-	<<if $player.gender is "m" or ($player.gender is "h" and $player.gender_appearance is "m")>>
-		<<link [[Next|School Boy's Toilets]]>><</link>>
-	<<else>>
-		<<link [[Next|School Girl's Toilets]]>><</link>>
-	<</if>>
+
+	<<set _destination to ($kylarBathroomGender is "m" ? "School Boy's Toilets" : "School Girl's Toilets")>>
+	<<link [[Next|_destination]]>><</link>>
 
 <<else>>
-	"Let's go back to where we were," <<he>> says.
+	"Let's go back to the <<print ($weather is "rain" or $weather is "snow" ? "library" : "playground")>>," <<he>> says.
 	<br><br>
 	<<link [[Next|Kylar Bathroom Return]]>><</link>>
 <</if>>
+<<unset $kylarBathroomGender>>
 <br>
 
 :: Kylar Bathroom Return
@@ -1931,17 +1909,21 @@ The bathroom is empty. You make your way to a stall and pull Kylar in. <<Hes>> u
 
 :: Kylar Tease Underwear
 <<effects>>
+<<set _kylar to statusCheck("Kylar")>>
 <<set $kylar_action to "underwear">>
+<<if !$kylarDaily.underwear>>
+	<<kylarRandomUnderwear>>
+<</if>>
+<<set _kylarLower to _kylar.clothes.lower.name>><<set _kylarUnderLower to $kylarDaily.underwear.simpleDesc>>
 
 <<if $submissive gte 1150>>
-	"This might be weird, but... can I have your <<if $pronoun is "m">>underwear<<else>>panties<</if>>?" you ask, blushing.
+	"This might be weird, but... can I have your _kylarUnderLower?" you ask, blushing.
 <<elseif $submissive lte 850>>
-	"Cute <<if $pronoun is "m">>undies<<else>>panties<</if>>," you say. "I'll take them."
+	"Cute _kylarUnderLower," you say. "I'll take them."
 <<else>>
-	"Can you give me your <<if $pronoun is "m">>underwear<<else>>panties<</if>>?" you ask.
+	"Can you give me your _kylarUnderLower?" you ask.
 <</if>>
 <<promiscuity3>>
-<br><br>
 
 Kylar balks at your words, looking at you nervously. "W-what?"
 <br><br>
@@ -1950,28 +1932,53 @@ Kylar balks at your words, looking at you nervously. "W-what?"
 	"It's only fair, since you took mine," you say. "...I think. Please?"
 	<br><br>
 
-	You notice <<he>> makes no move to deny your accusation. 
+	You notice <<he>> makes no move to deny your accusation.
 <<else>>
-	"I just... want them," you say. "Please?" 
+	"I just... want them," you say. "Please?"
 	<br><br>
 <</if>>
 
-<<if $pronoun is "m">>
-	Biting <<his>> lip, Kylar quickly looks around to make sure <<he>> has privacy. Once <<hes>> sure nobody's watching, <<he>> lifts <<his>> shorts and, in a complex maneuver you can't quite follow, manages to remove <<his>> briefs without removing <<his>> shorts.
+<<if _kylarLower.includes("skirt") and _kylar.penis isnot "none">>
+	"But... I-I'm wearing a skirt," <<he>> says in a hushed tone, fearful of being overheard.
+	<<if _kylar.penissize gte 3>>
+		"If I take off my _kylarUnderLower, m-my skirt won't cover my... You know..."
+	<<else>>
+		"If I take off my _kylarUnderLower, people c-could see m-my... You know..."
+	<</if>>
 	<br><br>
-	<<He>> averts <<his>> eyes and hands them to you in a bunch. They're still warm.
-	<<arousal 600>><<garousal>>
+
+	<<if $submissive gte 1150>>
+		"Yeah, but... Isn't that exciting?" you respond.
+	<<elseif $submissive lte 850>>
+		"That shouldn't be a problem if you try not to get hard, then," you respond curtly.
+	<<else>>
+		"Yeah. Isn't that exciting?" you respond, ignoring <<his>> concerns.
+	<</if>>
 	<br><br>
-	<<underlowersend 4 wardrobe white>>
 
+	Whimpering, Kylar quickly looks around to make sure <<he>> has privacy. Once <<hes>> sure nobody's watching,
+	<<he>> reaches under <<his>> _kylarLower and slides <<his>> $kylarDaily.underwear.colourDesc down <<his>> legs.
+	As <<he>> raises <<his>> legs to step out of the _kylarUnderLower, you can clearly see
+	<<if _kylar.penissize gte 3>>
+		the flaccid length of <<his>> _kylar.penisdesc hanging freely beneath <<his>> skirt.
+	<<else>>
+		<<his>> flaccid penis beneath <<his>> skirt.
+	<</if>>
 <<else>>
-	Biting <<his>> lip, Kylar quickly looks around to make sure <<he>> has privacy. Once <<hes>> sure nobody's watching, <<he>> reaches under <<his>> skirt and pulls <<his>> panties off.
-	<br><br>
-	<<He>> averts <<his>> eyes and hands them to you in a bunch. They're still warm.
-	<<arousal 600>><<garousal>>
-	<br><br>
-	<<underlowersend 20 wardrobe white pink>>
+	Biting <<his>> lip, Kylar quickly looks around to make sure <<he>> has privacy. Once <<hes>> sure nobody's watching,
+	<<if _kylarLower.includes("skirt")>>
+		<<he>> reaches under <<his>> _kylarLower and pulls off <<his>> $kylarDaily.underwear.colourDesc.
+	<<else>>
+		<<he>> lifts <<his>> _kylarLower and, in a complex maneuver you can't quite follow, manages to remove <<his>> $kylarDaily.underwear.colourDesc without removing <<his>> _kylarLower.
+	<</if>>
 <</if>>
+<br><br>
+
+<<He>> averts <<his>> eyes and hands <<his>> _kylarUnderLower to you in a bunch. They're still warm.
+<<arousal 600>><<garousal>>
+<br><br>
+
+<<underlowersend $kylarDaily.underwear.id wardrobe $kylarDaily.underwear.colour $kylarDaily.underwear.colourAcc>>
 
 <<link [[Thank Kylar|Kylar Tease Underwear Thank]]>><<npcincr Kylar love 1>><</link>><<glove>>
 <br>
@@ -1979,34 +1986,43 @@ Kylar balks at your words, looking at you nervously. "W-what?"
 
 :: Kylar Tease Underwear Thank
 <<effects>>
+<<set _kylar to statusCheck("Kylar")>>
+<<set _kylarUnderLower to $kylarDaily.underwear?.simpleDesc or "underwear">>
 <<set $kylarDaily.undies to true>>
 
 <<if $submissive gte 1150>>
-	"Thank you," you say, holding the <<if $pronoun is "m">>underwear<<else>>panties<</if>> to your chest. "I'll treasure these."
+	"Thank you," you say, holding the _kylarUnderLower to your chest. "I'll treasure these."
 	<br><br>
+
 	Kylar smiles in response, shuffling to get comfortable with the sudden breeze.
 <<elseif $submissive lte 850>>
-	"Thanks," you say, holding the <<if $pronoun is "m">>underwear<<else>>panties<</if>> up. "These'll come in handy later."
+	"Thanks," you say, holding the _kylarUnderLower. "These'll come in handy later."
 	<br><br>
-	Kylar smiles in response, shuffling to get comfortable with the sudden breeze. The implications of what you said hit <<him>> a few seconds later, and <<he>> blushes bright red.
+
+	Kylar smiles in response, shuffling to get comfortable with the sudden breeze on <<his>> privates.
+	The implications of what you said hit <<him>> a few seconds later, and <<he>> blushes bright red.
 	<<npcincr Kylar lust 1>><<glust>>
 <<else>>
 	"Thanks, Kylar," you say, smiling. "I know it was a weird thing to ask."
 	<br><br>
+
 	Kylar smiles in response and waves off your concerns, shuffling to get comfortable with the sudden breeze.
 <</if>>
 <br><br>
 
+<<set $kylarDaily.underwear to {}>> <!-- this ensures that kylar won't generate new underwear today -->
 <<kylaroptions>>
 
 :: Kylar Tease Underwear Commando
 <<effects>>
+<<set _kylar to statusCheck("Kylar")>>
 <<set $kylarSeen.pushUnique("commando")>>
+<<set _kylarUnderLower to $kylarDaily.underwear?.simpleDesc or "underwear">>
 
 <<if $submissive gte 1150>>
-	"Thank you," you say, holding the <<if $pronoun is "m">>underwear<<else>>panties<</if>> to your chest. You blush. "Can you, um... stay like this? Tomorrow and, uh, later?"
+	"Thank you," you say, holding the _kylarUnderLower to your chest. You blush. "Can you, um... stay like this? Tomorrow and, uh, later?"
 <<elseif $submissive lte 850>>
-	"Thanks," you say, holding the <<if $pronoun is "m">>underwear<<else>>panties<</if>> up. "Now don't put more on tomorrow. Or again."
+	"Thanks," you say, holding the _kylarUnderLower. "Now don't put any on tomorrow. Or again."
 <<else>>
 	"Thanks, Kylar," you say, smiling. "Can you not wear more anymore?"
 <</if>>
@@ -2021,10 +2037,11 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 <<He>> seems embarrassed, so you lean in and kiss <<him>> on the cheek. <<He>> doesn't become any less embarrassed, but offers you a smile.
 <br><br>
 
+<<set $kylarDaily.underwear to {}>> <!-- this ensures that kylar won't generate new underwear today -->
 <<kylaroptions>>
 
 :: Kylar Chat
-<<set $outside to 0>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 0>><<effects>><<run statusCheck("Kylar")>>
 <<set $kylar_action to "chat">>
 
 <<if _kylarStatus.includes("Love")>>
@@ -2065,8 +2082,8 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 				<<gksuspicion>><<glust>><<npcincr Kylar lust 1>><<npcincr Kylar rage 1>>
 			<</if>>
 		<<elseif $skin[_bodypart].special is "Sydney">>
-            <<if $sydneyDaily.kylarFrown>>
-                You chat with Kylar. <<He>> stares at the <<tattoo _bodypart>> on your <<bodypart _bodypart>> and shakes <<his>> head. "You need to stop letting <<nnpc_him "Sydney">> do that."
+			<<if $sydneyDaily.kylarFrown>>
+				You chat with Kylar. <<He>> stares at the <<tattoo _bodypart>> on your <<bodypart _bodypart>> and shakes <<his>> head. "You need to stop letting <<nnpc_him "Sydney">> do that."
 				<<He>> grumpily lifts <<his>> hair to reveal <span class="purple">"Kylar >:("</span> still written on <<his>> forehead from lunch.
 			<<elseif $skin[_bodypart].lewd is 1>>
 				<<set $kylarSeen.pushUnique("sydneyWriting")>>
@@ -2105,7 +2122,7 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 				<<case "magic">>
 					"How'd you make it glow like that?" <<he>> asks.
 				<<case "lipstick" "mud">>
-					"Is that <<print $skin[_bodypart].pen>>" <<he>> asks. "Weird thing to use."
+					"Is that <<print $skin[_bodypart].pen>>?" <<he>> asks. "Weird thing to use."
 				<<default>>
 					"That won't stay on forever, you know," <<he>> says. "I used to write on myself a lot when I was younger. The ink always fades away eventually."
 			<</switch>>
@@ -2133,7 +2150,7 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 	<<elseif $rng gte 31>>
 		You chat with Kylar. <<He>> pulls out <<his>> sketchbook and starts drawing
 		<<if $bus is "starfish">>
-			<<print either("the arcade cabinet", "the main character of the game", "a coin on the ground", "a little kid jumping for joy nearby", "a spider web strung in a ceiling corner")>>.
+			<<print either("the arcade cabinet", "the main character of the game", "a coin on the ground", "the joystick and buttons", "a spider web strung in a ceiling corner")>>.
 		<<elseif $bus is "schoollibrary">>
 			<<print either("one of the bookshelves", "the beaker picture on a biology textbook", "the half-full return basket", "the rain-splattered window", "a spider web strung in a ceiling corner")>>.
 		<<elseif $season is "winter">>
@@ -2143,46 +2160,64 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 		<</if>>
 		<<He>> turns to show it to you. It's good.
 	<<elseif $rng gte 26>>
-		You chat with Kylar. <<He>> pulls out <<his>> sketchbook and starts drawing a picture of you. <<He>> doesn't so much as glance at you for reference, but it's still very accurate.
+		You chat with Kylar. <<He>> pulls out <<his>> sketchbook and starts drawing a picture of you.
+		<<He>> doesn't so much as glance at you for reference, but it's still very accurate.
 	<<elseif $rng gte 21>>
-		You chat with Kylar. <<He>> pulls out <<his>> sketchbook and starts drawing a picture of you in a silly <<print either("outfit", "hat")>>. Your laughter draws <<his>> attention, and <<he>> smiles.
-	<<elseif $rng gte 11 and $kylar.riddle is 0>>
-		<<set $kylar.riddle to 1>>
-		You tell Kylar a riddle you read about recently. "I haven't heard that one before," <<he>> says. <<He>> scrunches up <<his>> face in thought for a few seconds.
-	<<elseif $rng gte 11 and $kylar.riddle is 1>>
-		<<if $dissociation gte 1>>
-			You chat with Kylar. "Your eyes," <<he>> says, out of nowhere. <<He>> stares at you for a few seconds, before pulling you into a hug. "It'll be okay. I promise."
-			<<trauma -12>><<lltrauma>>
+		You chat with Kylar. <<He>> pulls out <<his>> sketchbook and starts drawing a picture of you in a silly <<print either("outfit", "hat")>>.
+		Your laughter draws <<his>> attention, and <<he>> smiles.
+	<<elseif $rng gte 11>>
+		<<if $kylar.riddle is 0>>
+			<<set $kylar.riddle to 1>>
+			You tell Kylar a riddle you read about recently. "I haven't heard that one before," <<he>> says. <<He>> scrunches up <<his>> face in thought for a few seconds.
 		<<else>>
-			You chat with Kylar. "I like your eyes," <<he>> says. "Sorry. That came out of nowhere."
+			<<if $dissociation gte 1>>
+				You chat with Kylar. "Your eyes," <<he>> says, out of nowhere. <<He>> stares at you for a few seconds, before pulling you into a hug.
+				"It'll be okay. I promise."
+				<<trauma -12>><<lltrauma>>
+			<<else>>
+				You chat with Kylar. "I like your eyes," <<he>> says. "Sorry. That came out of nowhere."
+			<</if>>
 		<</if>>
 	<<else>>
 		<<if _kylarStatus.includes("Rage")>>
 			You chat with Kylar. <<He>> reaches <<his>> hand to your hair and runs <<his>> fingers through. It feels nice.
 		<<else>>
-			You chat with Kylar. <<He>> reaches <<his>> hand to your hair, but draws it back and looks at you. "Can I?" At your nod of assurance, <<he>> reaches forward and runs <<his>> fingers through. It feels nice.
+			You chat with Kylar. <<He>> reaches <<his>> hand to your hair, but draws it back and looks at you.
+			"Can I?" At your nod of assurance, <<he>> reaches forward and runs <<his>> fingers through. It feels nice.
 		<</if>>
 		<<ltiredness>><<tiredness -6>>
 		<br><br>
-        <<if ($angel gte 4 and $transformationParts.angel.halo isnot "hidden" or $fallenangel gte 2 and $transformationParts.fallenAngel.halo isnot "hidden") and $rng % 2 is 0>>
-            After a while, <<his>> eyes turn to your <<if $fallenangel>>broken <</if>>halo, and <<he>> slowly reaches <<his>> hand up to touch it. <<His>> brow furrows as <<his>> hand reaches nothing, and <<he>> squints at the air above your head. "I could've sworn there was..." <<He>> retracts <<his>> hand and returns to stroking your hair, a confused frown on <<his>> face.
-            <br><br>
-		<<elseif ($demon gte 2 and $transformationParts.demon.horns isnot "hidden") and ($cow gte 2 and $transformationParts.cow.horns isnot "hidden")>>
-			After a while, <<he>> reaches up and pokes your demon horns. "Are these real?" <<he>> asks. "What about these ones?" <<His>> hand drifts down to your cow horns. For a few minutes, <<he>> alternates between the two sets, sometimes stroking, sometimes tapping.
+
+		<<set _tf to checkTFparts()>>
+		<<set _tfSplit to random(0,1)>>
+		<<if (_tf.angelHalo or _tf.fallenAngelHalo) and _tfSplit is 0>>
+			After a while, <<his>> eyes turn to your <<if $fallenangel>>broken <</if>>halo, and <<he>> slowly reaches <<his>> hand up to touch it.
+			<<His>> brow furrows as <<his>> hand reaches nothing, and <<he>> squints at the air above your head.
+			"I could've sworn there was..." <<He>> retracts <<his>> hand and returns to stroking your hair, a confused frown on <<his>> face.
+			<br><br>
+		<<elseif _tf.demonHorns and _tf.cowHorns>>
+			After a while, <<he>> reaches up and pokes your demon horns. "Are these real?" <<he>> asks.
+			"What about these ones?" <<His>> hand drifts down to your cow horns.
+			For a few minutes, <<he>> alternates between the two sets, sometimes stroking, sometimes tapping.
 			<br><br>
-		<<elseif ($demon gte 2 and $transformationParts.demon.horns isnot "hidden" and $rng % 2 is 0) or ($cow gte 2 and $transformationParts.cow.horns isnot "hidden" and $rng % 2 is 1)>>
-			After a while, <<he>> reaches up and pokes your horns. "Are these real?" <<he>> asks. For a few minutes, <<he>> alternates between stroking and tapping your horns, seemingly entranced.
+		<<elseif (_tf.demonHorns and _tfSplit is 0) or (_tf.cowHorns and _tfSplit is 1)>>
+			After a while, <<he>> reaches up and pokes your horns. "Are these real?" <<he>> asks.
+			For a few minutes, <<he>> alternates between stroking and tapping your horns, seemingly entranced.
 			<br><br>
-		<<elseif ($wolfgirl gte 4 and $transformationParts.wolf.ears isnot "hidden" and $rng % 2 is 1) or ($cat gte 4 and $transformationParts.cat.ears isnot "hidden" and $rng % 2 is 1)>>
-			After a while, <<his>> hand brushes against your <<if $wolfgirl gte 4>>wolf<<else>>cat<</if>> ears. You shiver, <<if $wolfgirl gte 4>>whining<<else>>purring<</if>> at <<his>> touch. <<He>> smiles. "Are they sensitive?" For a few minutes, <<he>> scratches around your ears, blowing into them at one point.
-			<<if ($wolfgirl gte 6 and $transformationParts.wolf.tail isnot "hidden") or ($cat gte 6 and $transformationParts.cat.tail isnot "hidden")>>
-				Your tail <<if $wolfgirl gte 6>>wags happily<<else>>swishes in contentment<</if>>, brushing against <<him>> on occasion.
+		<<elseif (_tf.wolfEars or _tf.catEars) and _tfSplit is 1>>
+			After a while, <<his>> hand brushes against your <<print (_tf.wolfEars ? "wolf" : "cat")>> ears.
+			You shiver, <<print (_tf.wolfEars ? "whining" : "purring")>> at <<his>> touch.
+			<<He>> smiles. "Are they sensitive?" For a few minutes, <<he>> scratches around your ears, blowing into them at one point.
+			<<if _tf.wolfTail or _tf.catTail>>
+				Your tail <<print (_tf.wolfTail ? "wags happily" : "swishes in contentment")>>, brushing against <<him>> on occasion.
 			<</if>>
 			<br><br>
-		<<elseif $harpy gte 4 and $transformationParts.bird.plumage isnot "hidden" and $rng % 2 is 1>>
-			After a while, <<he>> brings <<his>> other hand to you and brushes your plumage. "Are these feathers?" <<he>> asks. For a few minutes, <<he>> strokes your hair with one hand and your plumage with the other.
-			<<if $player.perceived_breastsize gte 3 or $player.gender_appearance is "f" or $player.gender is "f" and $genderknown.includes("Kylar")>>
-				At one point, <<his>> hand brushes against your chest, and <<he>> flinches back. "S-sorry, I didn't mean to... sorry." After that, <<he>> sticks to looking at your plumage, not touching.
+		<<elseif _tf.birdPlumage and _tfSplit is 1>>
+			After a while, <<he>> brings <<his>> other hand to you and brushes your plumage. "Are these feathers?" <<he>> asks.
+			For a few minutes, <<he>> strokes your hair with one hand and your plumage with the other.
+			<<if $player.perceived_breastsize gte 3 or $player.gender_appearance is "f" or ($player.gender is "f" and $genderknown.includes("Kylar"))>>
+				At one point, <<his>> hand brushes against your chest, and <<he>> flinches back.
+				"S-sorry, I didn't mean to... sorry." After that, <<he>> sticks to looking at your plumage, not touching.
 			<</if>>
 			<br><br>
 		<</if>>
@@ -2221,16 +2256,16 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 <<kylaroptions>>
 
 :: Kylar Game
-<<set $outside to 0>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 0>><<effects>><<run statusCheck("Kylar")>>
 <<set $kylar_action to "game">>
 
 <<if $kylar.play isnot 1>>
 	<<if $submissive gte 1150>>
-	"L-let's play a game," you say. "It'll be fun!"
+		"L-let's play a game," you say. "It'll be fun!"
 	<<elseif $submissive lte 850>>
-	"Bet I could do better," you say. "I'll join in."
+		"Bet I could do better," you say. "I'll join in."
 	<<else>>
-	"It has a multiplayer mode," you say. "Can I play?"
+		"It has a multiplayer mode," you say. "Can I play?"
 	<</if>>
 <<else>>
 	You ask if <<he>> would like to play again.
@@ -2261,7 +2296,7 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 	You play a cooperative first person shooter. You kill lots of <<print either("zombies", "pirates", "aliens", "soldiers", "criminals", "mutants")>>.
 	<<set $phase to 0>>
 <<elseif $rng gte 31>>
-	You play a cooperative <<if random(1, 2) is 1>>shmup<<else>>beat 'em up<</if>>.
+	You play a cooperative <<print either("shmup","beat 'em up")>>.
 	<<set $phase to 0>>
 <<else>>
 	You play the versus mode in a fighting game.
@@ -2335,7 +2370,7 @@ You nod, and <<he>> blushes. You think <<hes>> going to turn you down, but <<he>
 <</if>>
 
 :: Kylar Arcade Angry
-<<effects>><<NPCStatusCheck "Kylar">>
+<<effects>><<run statusCheck("Kylar")>>
 
 You turn and face the pair.
 <<if $submissive gte 1150>>
@@ -2347,47 +2382,41 @@ You turn and face the pair.
 <</if>>
 <br><br>
 
-The pair laugh. "Or what?" the <<person2>><<person>> says. "You gonna fight for your <<nnpc_girlfriend "Kylar">>?"
+The pair laugh. "Or what?" the <<person2>><<person>> says. "You gonna fight for your <<person1>><<personsimple>>friend?"
 <br><br>
 
 <<if _kylarStatus.includes("Love")>>
-	"You better listen to <<phim>>," Kylar says from behind. "My <<if $player.gender_appearance is "m">>boyfriend<<else>>girlfriend<</if>> is really strong."
+	"You better listen to <<phim>>," Kylar says from behind. "My <<girlfriend>> is really strong."
 	<br><br>
 
 	The pair laugh harder, but don't try anything physical. They continue to mock Kylar until someone from the arcade staff shoos them out.
 	<br><br>
-
-	<<endevent>><<npc Kylar>><<person1>>
-	<<kylaroptions>>
 <<else>>
 	The pair laugh harder, and continue to mock Kylar until someone from the arcade staff shoos them out.
 	<br><br>
 
-	"Th-thank you," Kylar manages once they're gone. <<He>> doesn't make eye contact.
+	"Th-thank you," Kylar manages once they're gone. <<person1>><<He>> doesn't make eye contact.
 	<br><br>
-
-	<<endevent>><<npc Kylar>><<person1>>
-	<<kylaroptions>>
 <</if>>
 
+<<endevent>><<npc Kylar>><<person1>>
+<<kylaroptions>>
+
 :: Kylar Arcade Ignore
 <<effects>>
 You ignore the pair. They say a few more disparaging things about Kylar, but they don't hang around long.
 <br><br>
 
 <<if $phase is 0>>
-	You lose the game. Kylar doesn't say anything.
-	<br><br>
-	<<endevent>><<npc Kylar>><<person1>>
-	<<kylaroptions>>
-
+	You lose the game.
 <<else>>
-	You win the game, but there's no sense of achievement. Kylar doesn't say anything.
-	<br><br>
-	<<endevent>><<npc Kylar>><<person1>>
-	<<kylaroptions>>
-
+	You win the game, but there's no sense of achievement.
 <</if>>
+Kylar doesn't say anything.
+<br><br>
+
+<<endevent>><<npc Kylar>><<person1>>
+<<kylaroptions>>
 
 :: Kylar Encourage
 <<effects>>
@@ -2434,7 +2463,7 @@ You don't win, but have fun anyway. Kylar doesn't gloat.
 
 You wrap an arm around Kylar's waist. <<His>> body freezes, then melts against you. <<He>> loses <<his>> sense of coordination, and can only offer a token defence as you turn things around and win the game.
 <<promiscuity1>>
-<br><br>
+
 "Sorry," you say, and plant a kiss on <<his>> cheek. <<He>> doesn't care that <<he>> lost.
 <br><br>
 
@@ -2442,7 +2471,6 @@ You wrap an arm around Kylar's waist. <<His>> body freezes, then melts against y
 
 :: Kylar Give Milkshake
 <<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>>
-<<set $kylar_action to "milkshake">>
 
 You take out your milkshake and show it to Kylar. "You brought me something?" <<He>> says, looking at the creamy treat.
 <br><br>
@@ -2453,7 +2481,6 @@ You nod and hand the cup over to Kylar. <<He>> looks delighted. You spend the ne
 
 :: Kylar Share Milkshake
 <<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>>
-<<set $kylar_action to "milkshake">>
 
 You take out your milkshake and show it to Kylar. "You brought me something?" <<He>> says, looking at the creamy treat.
 <br><br>
@@ -2670,7 +2697,7 @@ You raise a knee into <<his>> crotch. <<He>> yelps in surprise as you lean forwa
 <</if>>
 
 :: Kylar Canteen Away
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<sydneySchedule>>
 
 <<if $submissive gte 1150>>
 	"It's rude to barge," you say. "Please leave us be."
@@ -2687,14 +2714,15 @@ Kylar laughs. "I-I forgot," <<he>> says. "I have somewhere I need to be." <<He>>
 "I feel bad sending <<him>> away," Robin says when <<hes>> gone. "Everyone picks on <<him>>."
 <br><br>
 <<endevent>><<npc Robin>><<person1>>
-<<if $sydneyromance is 1 and _sydney_location is "canteen" and random(1, 100) gte 50>>
+<<if $sydneyromance is 1 and _sydney_location is "library" and $schoolstate is "lunch" and $minute lte 35 and random(1, 100) gte 50>>
+	/* Checks if _sydney_location is "library" instead of "canteen" because it's impossible for it to be "canteen" given the time passed from eating with Robin */
 	You chat with Robin while eating. You notice Sydney stand up from the corner of the canteen, gathering <<nnpc_his "Sydney">> books and speedwalking to the library. <<nnpc_He "Sydney">> stops by your table to smooch you on the cheek, nearly dropping one of <<nnpc_his "Sydney">> books from leaning down. <<arousal 50>><<garousal>>
 	<br><br>
 	<<if $robinnote is 1 and $robinromance isnot 1>>
 		Robin stops in the middle of <<his>> sentence. "You're popular. Sydney's a good fit for you. I'm happy for you." <<Hes>> smiling, but <<he>> can't hide the sadness in <<his>> voice.
 		You chat with <<him>> while eating, and try to stay off the topic of Sydney.
 	<<elseif $robinromance is 1>>
-		Robin stops in the middle of <<his>> sentence and gives Sydney a blank stare, who's already rushing to the library again. 
+		Robin stops in the middle of <<his>> sentence and gives Sydney a blank stare, who's already rushing to the library again.
 		<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 50>>
 			<<He>> pouts, and kisses you on the cheek in the same spot Sydney did. "I do it better."
 		<<else>>
@@ -2849,7 +2877,7 @@ You finish the food. "I'm going to wait in the classroom," Robin says when you'r
 <br>
 
 :: Canteen Lunch Kylar
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Kylar")>>
 <<endevent>><<npc Kylar>><<person1>>
 
 You sit beside Kylar and say hello.
@@ -2871,7 +2899,7 @@ You sit beside Kylar and say hello.
 	<br><br>
 	<<npc Whitney 2>><<person2>>
 
-	"Thought I saw my favourite slut sitting next to a freak," <<he>> says before grabbing you by the hair and forcing your lips against <<his>>.<<takeKissVirginity "Whitney" `($whitneyromance is 1?"loveInterest":"rape")`>>
+	"Thought I saw my favourite slut sitting next to a freak," <<he>> says before grabbing you by the hair and forcing your lips against <<hers>>.<<takeKissVirginity "Whitney" `($whitneyromance is 1?"loveInterest":"rape")`>>
 	<<gstress>><<stress 6>>
 	<br><br>
 
@@ -2963,7 +2991,7 @@ Whitney forces <<his>> tongue into your mouth, so you bite it.
 Heads turn around the canteen. You pull Kylar closer.
 <br><br>
 
-"Fucking freaks," Whitneys says. "I'm done with you losers." <<He>> leaves the canteen, <<his>> cronies in tow.
+"Fucking freaks," Whitney says. "I'm done with you losers." <<He>> leaves the canteen, <<his>> cronies in tow.
 <br><br>
 
 The other students lose interest. You finish your food beside a relieved Kylar. <<person1>><<He>> carries your trays away once finished, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
@@ -2978,7 +3006,7 @@ The other students lose interest. You finish your food beside a relieved Kylar.
 <br><br>
 
 Whitney lunges for the smaller student, grasps <<person1>><<his>> collar, and shoves <<him>> against a wall. Kylar's panicked gaze meets yours for a moment, before Whitney obscures your view.
-<<if $loveInterest.primary is "Kylar" or $loveInterest.secondary is "Kylar">><<gstress>><<stress 6>><</if>>
+<<if isLoveInterest("Kylar")>><<gstress>><<stress 6>><</if>>
 <br><br>
 
 Excited at the prospect of violence, other students gather around.
@@ -3014,7 +3042,7 @@ Excited at the prospect of violence, other students gather around.
 	<br><br>
 
 	<<if $cool gte 240>><<enable_rescue>><</if>>
-	<<if $robinmissing isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60>><<enable_rescue>><</if>>
+	<<if $robinmissing is 0 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60>><<enable_rescue>><</if>>
 <</if>>
 
 <<effects>>
@@ -3045,7 +3073,7 @@ Excited at the prospect of violence, other students gather around.
 <</if>>
 
 :: Canteen Kylar Whitney Intervene Finish
-<<effects>><<NPCStatusCheck "Kylar">>
+<<effects>><<run statusCheck("Kylar")>>
 
 <<if $enemyhealth lte 0>>
 	You bring Whitney to <<his>> knees, and the crowd cheers for you. <<gcool>><<status 1>>
@@ -3055,7 +3083,7 @@ Excited at the prospect of violence, other students gather around.
 	<<endcombat>>
 
 	<<npc Kylar 1>><<person1>><<npc Whitney 2>><<person2>>
-	<<if $loveInterest.primary is "Kylar" or $loveInterest.secondary is "Kylar">>
+	<<if isLoveInterest("Kylar")>>
 		<<if $submissive gte 1150>>
 			"Bullying me is one thing," you say. "But please leave my <<nnpc_girlfriend "Kylar">> alone."
 		<<elseif $submissive lte 850>>
@@ -3075,7 +3103,7 @@ Excited at the prospect of violence, other students gather around.
 		<<npcincr Kylar rage -10>><<llksuspicion>>
 	<</if>>
 	<br><br>
-	
+
 	Whitney pushes <<himself>> away from you, and scrambles into the crowd.
 	<br><br>
 
@@ -3085,8 +3113,8 @@ Excited at the prospect of violence, other students gather around.
 	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
-	<<link [[Next|Canteen]]>><<endevent>><</link>><br>
-	<br>
+	<<link [[Next|Canteen]]>><<endevent>><</link>>
+	<br><br>
 
 
 <<elseif $enemyarousal gte $enemyarousalmax>>
@@ -3103,13 +3131,14 @@ Excited at the prospect of violence, other students gather around.
 	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
-	<<link [[Next|Canteen]]>><<endevent>><</link>><br>
+	<<link [[Next|Canteen]]>><<endevent>><</link>>
+	<br>
 
 <<elseif $alarm is 1 and $rescue is 1>><<set $rescued += 1>>
 	Your shout is drowned by the noise of the canteen. Whitney pulls <<his>> arm back, readying a blow, but is interrupted by someone wrapping their arms around it from behind.
 	<br><br>
 
-	<<if $robinmissing isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60>>
+	<<if $robinmissing is 0 and $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60>>
 		<span class="green">It's Robin.</span> Another pair of students jump in to assist, and grasp Whitney's other arm. The weight becomes too much, and they tumble backwards.
 		<br><br>
 	<<elseif $cool gte 240>>
@@ -3133,8 +3162,8 @@ Excited at the prospect of violence, other students gather around.
 	The other students lose interest after Whitney's departure. You finish your food beside a relieved Kylar. <<He>> carries your trays away once you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
-	<<link [[Next|Canteen]]>><<endevent>><</link>><br>
-	<br>
+	<<link [[Next|Canteen]]>><<endevent>><</link>>
+	<br><br>
 
 <<else>>
 	Whitney gains the upper hand, pinning you to the wall. "Stupid little shit!" <<He>> knees you in the stomach, and you keel over. <<He>> leaves you on the canteen floor.<<lcool>><<status -10>>
@@ -3149,7 +3178,7 @@ Excited at the prospect of violence, other students gather around.
 
 	"I-I'm sorry," <<he>> says, touching your arm. "I'm sorry I couldn't help you." <<He>> glares in the direction that Whitney left in.
 	<<if _kylarStatus.includes("Rage")>>
-		 "Stupid rat," <<he>> hisses under <<his>> breath. "Worthless, stupid, horrible, just wanna..." <<His>> muttering becomes inaudible.
+		"Stupid rat," <<he>> hisses under <<his>> breath. "Worthless, stupid, horrible, just wanna..." <<His>> muttering becomes inaudible.
 	<<else>>
 		"I want to be able to stand up to <<nnpc_him "Whitney">>. Especially for you. B-but <<nnpc_hes "Whitney">> so..." <<He>> trails off.
 	<</if>>
@@ -3157,7 +3186,8 @@ Excited at the prospect of violence, other students gather around.
 	<<tearful>> you finish your food beside a brooding Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 	<br><br>
 
-	<<link [[Next|Canteen]]>><<endevent>><</link>><br>
+	<<link [[Next|Canteen]]>><<endevent>><</link>>
+	<br>
 <</if>>
 
 :: Canteen Kylar Whitney Encourage
@@ -3169,7 +3199,8 @@ Excited at the prospect of violence, other students gather around.
 Whitney smirks at you, but Kylar looks betrayed.
 <br><br>
 
-<<link [[Next|Canteen Kylar Whitney Fight]]>><</link>><br>
+<<link [[Next|Canteen Kylar Whitney Fight]]>><</link>>
+<br>
 
 :: Canteen Kylar Whitney Fight
 <<effects>>
@@ -3230,12 +3261,13 @@ Something clatters to the ground beside Kylar as <<he>> gets <<his>> footing. <<
 Whitney regains some composure as <<he>> follows Leighton from the room. <<He>> shoots you a teasing look as <<he>> disappears through the doors.
 <br><br>
 
-<<link [[Next|Canteen Kylar Cheer 2]]>><</link>><br>
+<<link [[Next|Canteen Kylar Cheer 2]]>><</link>>
+<br>
 
 :: Canteen Kylar Cheer 2
 <<effects>>
 
-The crowd disperses, leaving a lone, trembling Kylar on the ground. You approach <<person1>><<him>>, <<his>> eyes staring into space. You extend your hand to <<his>>.
+The crowd disperses, leaving a lone, trembling Kylar on the ground. You approach <<person1>><<him>>, <<his>> eyes staring into space. You extend your hand to <<hers>>.
 <br><br>
 
 Your touch makes <<him>> jump, and you find the knife pointed at you in a blink.
@@ -3258,10 +3290,11 @@ You smile and squeeze <<his>> other hand. <<He>> drops the knife with a horrifie
 You continue eating, sat beside a dazed Kylar. <<He>> carries your trays away when you're done, then walks in the direction of the <<if $weather is "rain" or $weather is "snow">>library<<else>>rear playground<</if>>.
 <br><br>
 
-<<link [[Next|Canteen]]>><<endevent>><</link>><br>
+<<link [[Next|Canteen]]>><<endevent>><</link>>
+<br>
 
 :: Canteen Whitney Cheer
-<<effects>><<NPCStatusCheck "Kylar">>
+<<effects>><<run statusCheck("Kylar")>>
 
 <<if $submissive gte 1150>>
 	"P-please win, Whitney!" you shout.
@@ -3293,7 +3326,8 @@ Kylar stirs on the ground.
 	"What a fucking nutcase," Whitney says. <<person2>><<He>> gives you a playful shove. "I expect a reward for winning later, slut." <<He>> leaves the canteen, <<his>> cronies in tow.
 	<br><br>
 
-	<<link [[Next|Canteen]]>><</link>><<endevent>><br>
+	<<link [[Next|Canteen]]>><</link>><<endevent>>
+	<br>
 
 <<else>>
 	<span class="green">Kylar doesn't attack.</span> <<person1>><<He>> doesn't move at all.
@@ -3307,18 +3341,19 @@ Kylar stirs on the ground.
 
 	"To my office," <<he>> continues "Now!"
 	<br><br>
-	
+
 	Whitney shrugs, and follows without protest. "See you later," <<person2>><<he>> says as <<he>> passes. "Slut. I expect a reward for winning."
 	<br><br>
 
 	You look back to Kylar, but <<person1>><<hes>> already gone. The other students disperse.
 	<br><br>
 
-	<<link [[Next|Canteen]]>><</link>><<endevent>><br>
+	<<link [[Next|Canteen]]>><</link>><<endevent>>
+	<br>
 <</if>>
 
 :: Kylar Library
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Kylar")>>
 
 <<npc Kylar>><<person1>>
 You approach Kylar's desk.
@@ -3332,7 +3367,7 @@ You approach Kylar's desk.
 <<kylaroptions>>
 
 :: Kylar Playground
-<<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Kylar")>>
 
 <<npc Kylar>><<person1>>
 You approach Kylar's stump.
@@ -3346,7 +3381,7 @@ You approach Kylar's stump.
 <<kylaroptions>>
 
 :: Kylar Park
-<<set $outside to 1>><<set $location to "park">><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 1>><<set $location to "park">><<effects>><<run statusCheck("Kylar")>>
 
 <<npc Kylar>><<person1>>
 <<if $kylar.fountain is 1>>
@@ -3364,7 +3399,7 @@ You approach Kylar's stump.
 <<kylaroptions>>
 
 :: Kylar Arcade
-<<set $outside to 1>><<set $location to "arcade">><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 1>><<set $location to "arcade">><<effects>><<run statusCheck("Kylar")>>
 
 <<npc Kylar>><<person1>>
 You approach Kylar. <<Hes>> racking up quite a score.
@@ -3380,13 +3415,8 @@ You approach Kylar. <<Hes>> racking up quite a score.
 :: Street Kylar Rob
 <<set $outside to 1>><<set $location to "town">><<effects>>
 
-You search the <<persons>> <<wallet>>. There's
-
-<<if $rng gte 81>><<moneyGain 25 true true>> inside.
-<<elseif $rng gte 61>><<moneyGain 20 true true>> inside.
-<<elseif $rng gte 41>><<moneyGain 15 true true>> inside.
-<<elseif $rng gte 21>><<moneyGain 10 true true>> inside.
-<<else>><<moneyGain 5 true true>> inside.<</if>>
+<<set _money to random(1,5) * 5>>
+You search the <<persons>> <<wallet>>. There's <<moneyGain _money true true>> inside.
 <br><br>
 
 <<endevent>>
@@ -3487,7 +3517,7 @@ You run for the cover of a <<if $bus is "park">>bush<<else>>parked car<</if>> an
 <<destinationeventend>>
 
 :: Street Kylar Refuse
-<<set $outside to 1>><<set $location to "town">><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 1>><<set $location to "town">><<effects>><<run statusCheck("Kylar")>>
 
 <<if $submissive gte 1150>>
 	You look away from Kylar. "S-sorry," you say. "Not today."
@@ -3541,7 +3571,9 @@ You run for the cover of a <<if $bus is "park">>bush<<else>>parked car<</if>> an
 <br>
 <<if $promiscuity gte 15 and $submissive lte 500>>
 	<<if $footdisable is "f">>
-		<<link [[Punish sexually|Street Kylar Foot]]>><<set $submissive -= 1>><</link>><<promiscuous2>><<defianttext>>
+		<<link [[Punish with your foot|Street Kylar Foot]]>><<set $submissive -= 1>><</link>><<promiscuous2>><<defianttext>>
+		<br>
+		<<link [[Punish with your hand|Street Kylar Hand]]>><<set $submissive -= 1>><</link>><<promiscuous2>><<defianttext>>
 	<<else>>
 		<<link [[Punish sexually|Street Kylar Hand]]>><<set $submissive -= 1>><</link>><<promiscuous2>><<defianttext>>
 	<</if>>
@@ -3579,54 +3611,60 @@ You turn your back to Kylar, shaking off <<his>> grip. <<He>> grasps your ankle,
 
 :: Street Kylar Foot
 <<set $outside to 1>><<set $location to "town">><<effects>>
+<<set _kylar to statusCheck("Kylar")>>
 
-You kick Kylar on to <<his>> back and stand over <<him>>.
+You kick Kylar onto <<his>> back and stand over <<him>>.
 <br><br>
 
 "You think you can threaten me without consequence?" you say.
 
-<<if $pronoun is "f">>
-	<<if $NPCList[0].penis isnot "none">>
-		<<if $kylarSeen.includes("commando")>>
-			You flick up <<his>> skirt with your foot, and press your toes against <<his>> exposed $NPCList[0].penisdesc. "At least you remembered my rule," you say. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
-			<br><br>
+<<set _kylarLower to _kylar.clothes.lower.name>>
 
-			You rub <<him>> with your foot, and feel <<him>> erect beneath you. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and semen erupts, covering your foot.
-			<<feetejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.feet.semen += 2>>
-		<<else>>
-			You flick up <<his>> skirt with your foot, and press your toes against <<his>> striped panties. You feel <<his>> length beneath. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
-			<br><br>
+<<if _kylarLower.includes("skirt") and $kylarSeen.includes("commando")>>
+	You flick up <<his>> _kylarLower with your foot, and press your toes against <<his>> exposed <<print (_kylar.penis isnot "none" ? _kylar.penisdesc : "pussy")>>. "At least you remembered my rule," you say. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
+	<br><br>
 
-			You rub <<him>> with your foot, and feel <<him>> erect beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and a wet patch appears on <<his>> underwear.
-			<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
-		<</if>>
+	You rub <<him>> with your foot, and feel <<him>> begin to <<print (_kylar.penis isnot "none" ? "erect" : "moisten")>> beneath you. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?"
+	<<if _kylar.penis isnot "none">>
+		<<He>> squirms, so you rub harder, and keep rubbing until
+		<<switch _kylar.penissize>>
+			<<case 1>> <<he>> shudders and semen erupts, wetting the bottom of your foot.
+			<<case 2>> <<he>> shudders and semen erupts, covering your foot.
+			<<case 3>> <<he>> shudders and semen erupts, covering your foot and quickly spreading down <<his>> thighs.
+			<<case 4>> <<he>> shudders and semen erupts, covering your foot and quickly spreading down <<his>> thighs to form a pool around <<him>>.
+		<</switch>>
+		<<feetejacstat>><<ejacstat>><<set $hygiene += 1000>><<set $player.bodyliquid.feet.semen += 2>>
 	<<else>>
-		<<if $kylarSeen.includes("commando")>>
-			You flick up <<his>> skirt with your foot, and press your toes against <<his>> exposed pussy. "At least you remembered my rule," you say. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
-			<br><br>
-
-			You rub <<him>> with your foot, and feel <<him>> moisten beneath you. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
-		<<else>>
-			You flick up <<his>> skirt with your foot, and press your toes against <<his>> striped panties. You feel <<his>> pussy beneath. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
-			<br><br>
-
-			You rub <<him>> with your foot, and feel <<him>> moisten beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
-		<</if>>
+		<<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
 	<</if>>
 <<else>>
-	<<if $NPCList[0].penis isnot "none">>
-		You press your foot against <<his>> crotch. You feel <<his>> length beneath. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
-		<br><br>
-
-		You rub <<him>> with your foot, and feel <<him>> erect beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and a wet patch appears on <<his>> shorts.
+	<<if _kylarLower.includes("skirt")>>
+		<<if !$kylarDaily.underwear>>
+			<<kylarRandomUnderwear "f">>
+		<</if>>
+		<<set _kylarUnderLower to $kylarDaily.underwear.simpleDesc>>
+		You flick up <<his>> _kylarLower with your foot, and press your toes against <<his>> _kylarUnderLower.
+	<<else>>
+		You press your foot against <<his>> crotch.
+	<</if>>
+	You feel <<his>> <<print (_kylar.penis isnot "none" ? "length" : "pussy")>> beneath. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
+	<br><br>
+
+	You rub <<him>> with your foot, and feel <<him>> begin to <<print (_kylar.penis isnot "none" ? "erect" : "moisten")>> beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?"
+	<<if _kylar.penis isnot "none">>
+		<<He>> squirms, so you rub harder, and keep rubbing until
+		<<set _pants to (_kylarLower.includes("skirt") ? _kylarUnderLower : _kylarLower)>>
+		<<switch _kylar.penissize>>
+			<<case 1 2>> <<he>> shudders and a wet patch appears on <<his>> _pants.
+			<<case 3>>   <<he>> shudders and a wet patch appears on <<his>> _pants, quickly spreading down the sides.
+			<<case 4>>   <<he>> shudders and a wet patch appears on <<his>> _pants, quickly spreading down the sides and even leaking out to form a pool around <<him>>.
+		<</switch>>
 		<<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<set $player.bodyliquid.feet.semen += 1>>
 	<<else>>
-		You press your foot against <<his>> crotch. You feel <<his>> pussy beneath. <<He>> grasps your ankle and makes a weak effort to stop you, but you push down harder and <<he>> lies back with a yelp.
-		<br><br>
-
-		You rub <<him>> with your foot, and feel <<him>> moisten beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
+		<<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
 	<</if>>
 <</if>>
+<<npcincr Kylar lust -20>><<lllust>>
 <br><br>
 
 "Idiot," you say. "You got my foot slimy."
@@ -3640,60 +3678,61 @@ You leave <<him>> panting on the ground.
 
 :: Street Kylar Hand
 <<set $outside to 1>><<set $location to "town">><<effects>>
+<<set _kylar to statusCheck("Kylar")>>
 
 You push Kylar against the wall and loom over <<him>>.
 <br><br>
 
 "You think you can threaten me without consequence?" you say.
 
-<<if $pronoun is "f">>
-	<<if $NPCList[0].penis isnot "none">>
-		<<if $kylarSeen.includes("commando")>>
-			You flick up <<his>> skirt with your left hand, and press your fingers against <<his>> exposed $NPCList[0].penisdesc. "At least you remembered my rule," you say. <<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
-			<br><br>
+<<set _kylarLower to _kylar.clothes.lower.name>>
 
-			You pump <<his>> length, and feel <<him>> erect beneath you. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and semen erupts, covering your hand and arm.
-			<<handejacstat>><<ejacstat>>
-		<<else>>
-			You flick up <<his>> skirt with your left hand, and press your fingers against <<his>> striped panties. You feel <<his>> length beneath. <<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
-			<br><br>
+<<if _kylarLower.includes("skirt") and $kylarSeen.includes("commando")>>
+	You flick up <<his>> _kylarLower with your left hand, and press your fingers against <<his>> exposed <<print (_kylar.penis isnot "none" ? _kylar.penisdesc : "pussy")>>. "At least you remembered my rule," you say.
+	<<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
+	<br><br>
 
-			You rub <<him>> with the palm of your hand, and feel <<him>> erect beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and a wet patch appears on <<his>> underwear.
-			<<handejacstat>><<ejacstat>>
-		<</if>>
+	<<if _kylar.penis isnot "none">>
+		You pump <<his>> length, and feel <<him>> begin to erect beneath you. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and semen erupts, covering your hand and arm.
+		<<handejacstat>><<ejacstat>>
 	<<else>>
-		<<if $kylarSeen.includes("commando")>>
-			You flick up <<his>> skirt with your left hand, and press your fingers against <<his>> exposed pussy. "At least you remembered my rule," you say. <<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
-			<br><br>
-
-			You pump your fingers in <<his>> pussy, and feel <<him>> moisten around you. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
-		<<else>>
-			You flick up <<his>> skirt with your left hand, and press your fingers against <<his>> striped panties. You feel <<his>> pussy beneath. <<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
-			<br><br>
-
-			You rub <<him>> with the palm of your hand, and feel <<him>> moisten beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
-		<</if>>
+		You pump your fingers in <<his>> pussy, and feel <<him>> begin to moisten around you. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
 	<</if>>
 <<else>>
-	<<if $NPCList[0].penis isnot "none">>
-		You press your left hand against <<his>> crotch. You feel <<his>> length beneath. <<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
-		<br><br>
-
-		You rub <<him>> with the palm of your hand, and feel <<him>> erect beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and a wet patch appears on <<his>> shorts.
+	<<if _kylarLower.includes("skirt")>>
+		<<if !$kylarDaily.underwear>>
+			<<kylarRandomUnderwear>>
+		<</if>>
+		<<set _kylarUnderLower to $kylarDaily.underwear.simpleDesc>>
+		You flick up <<his>> _kylarLower with your left hand, and press your fingers against <<his>> _kylarUnderLower.
+	<<else>>
+		You press your left hand against <<his>> crotch.
+	<</if>>
+	You feel <<his>> <<print (_kylar.penis isnot "none" ? "length" : "pussy")>> beneath.
+	<<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
+	<br><br>
+
+	You rub <<him>> with the palm of your hand, and feel <<him>> begin to <<print (_kylar.penis isnot "none" ? "erect" : "moisten")>> beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?"
+	<<if _kylar.penis isnot "none">>
+		<<He>> squirms, so you rub harder, and keep rubbing until
+		<<set _pants to (_kylarLower.includes("skirt") ? _kylarUnderLower : _kylarLower)>>
+		<<switch _kylar.penissize>>
+			<<case 1 2>> <<he>> shudders and a wet patch appears on <<his>> _pants.
+			<<case 3>>   <<he>> shudders and a wet patch appears on <<his>> _pants, quickly spreading down the sides.
+			<<case 4>>   <<he>> shudders and a wet patch appears on <<his>> _pants, quickly spreading down the sides and even leaking out to form a pool around <<him>>.
+		<</switch>>
 		<<handejacstat>><<ejacstat>>
 	<<else>>
-		You press your left hand against <<his>> crotch. You feel <<his>> pussy beneath. <<He>> opens <<his>> mouth to say something, but you cover it with your other hand, slipping your thumb inside.
-		<br><br>
-
-		You rub <<him>> with the palm of your hand, and feel <<him>> moisten beneath the fabric. "Is this what you want?" you ask in a teasing tone. "To get off in the middle of the street?" <<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
+		<<He>> squirms, so you rub harder, and keep rubbing until <<he>> shudders and moans.
 	<</if>>
 <</if>>
+<<npcincr Kylar lust -20>><<lllust>>
 <br><br>
 
 You remove your right hand from <<his>> mouth, and hold your left hand in front of <<him>>. "You made a mess of my hand," you say. "Clean it up."
 <br><br>
 
-Kylar looks at you and furrows <<his>> eyebrows, before hesitantly reaching for your hand. You slap <<his>> arm away and shove your hand in <<his>> face. <<He>> gulps, before leaning forward and licking your hand. <<He>> keeps licking until none of <<his>> <<if $NPCList[0].penis isnot "none">>cum<<else>>juices<</if>> remain.
+Kylar looks at you and furrows <<his>> eyebrows, before hesitantly reaching for your hand. You slap <<his>> arm away and shove your hand in <<his>> face. <<He>> gulps, before leaning forward and licking your hand. <<He>> keeps licking until none of <<his>> <<if _kylar.penis isnot "none">>cum<<else>>juices<</if>> remain.
 <br><br>
 
 When <<he>> finishes, <<he>> opens <<his>> mouth to say something. You turn away and leave <<him>> standing by the alleyway.
@@ -3703,7 +3742,7 @@ When <<he>> finishes, <<he>> opens <<his>> mouth to say something. You turn away
 <<destinationeventend>>
 
 :: Street Kylar Sex
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
 	<<consensual>>
@@ -3746,7 +3785,7 @@ When <<he>> finishes, <<he>> opens <<his>> mouth to say something. You turn away
 <</if>>
 
 :: Street Kylar Sex Finish
-<<set $outside to 0>><<set $location to "town">><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 0>><<set $location to "town">><<effects>><<run statusCheck("Kylar")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>><<npcincr Kylar lust -20>>
@@ -3772,40 +3811,26 @@ When <<he>> finishes, <<he>> opens <<his>> mouth to say something. You turn away
 	<br><br>
 
 	<<tearful>> you rise from the mattress.
-	<br><br>
-
-	<<clotheson>>
-	<<endcombat>>
-
-	<<destinationeventend>>
 
 <<elseif $enemyhealth lte 0>>
-
 	You shove Kylar back against the mattress.
 	<br><br>
 
 	<<tearful>> you run from the alley.
-	<br><br>
-
-	<<clotheson>>
-	<<endcombat>>
-
-	<<destinationeventend>>
 
 <<else>>
-
 	"O-okay," Kylar stammers. "You must be busy. We'll do this again." You feel <<him>> watch you leave.
-	<br><br>
 
-	<<clotheson>>
-	<<endcombat>>
+<</if>>
+<br><br>
 
-	<<destinationeventend>>
+<<clotheson>>
+<<endcombat>>
 
-<</if>>
+<<destinationeventend>>
 
 :: Street Kylar Rape
-<<NPCStatusCheck "Kylar">>
+<<run statusCheck("Kylar")>>
 <<if $molestationstart is 1>>
 	<<set $molestationstart to 0>>
 	<<controlloss>>
@@ -3826,7 +3851,8 @@ When <<he>> finishes, <<he>> opens <<his>> mouth to say something. You turn away
 <<effects>>
 <<effectsman>><<man>>
 <<if $NPCList[0].righthand is "none">>
-	<<He>> holds the knife to your throat. <<if $enemyarousal gte ($enemyarousalmax / 3)>>It trembles in <<his>> grip.<</if>><<gpain>><<violence 5>><br><br>
+	<<He>> holds the knife to your throat. <<if $enemyarousal gte ($enemyarousalmax / 3)>>It trembles in <<his>> grip.<</if>><<gpain>><<violence 5>>
+	<br><br>
 <</if>>
 <<stateman>>
 <br><br>
@@ -3855,28 +3881,14 @@ When <<he>> finishes, <<he>> opens <<his>> mouth to say something. You turn away
 	<br><br>
 
 	<<tearful>> you rise from the mattress.
-	<br><br>
-
-	<<clotheson>>
-	<<endcombat>>
-
-	<<destinationeventend>>
 
 <<elseif $enemyhealth lte 0>>
-
 	You shove Kylar back against the mattress.
 	<br><br>
 
 	<<tearful>> you run from the alley.
-	<br><br>
-
-	<<clotheson>>
-	<<endcombat>>
-
-	<<destinationeventend>>
 
 <<else>>
-
 	<<generate2>><<person2>>A <<person>> appears at the end of the alley. "Is everything okay over there?" <<he>> shouts.
 	<br><br>
 
@@ -3884,14 +3896,14 @@ When <<he>> finishes, <<he>> opens <<his>> mouth to say something. You turn away
 	<br><br>
 
 	The <<person2>><<person>> hesitates, but leaves when Kylar steps forward.<<person1>> It gives you the chance you need. <<tearful>> you climb off the mattress and run in the opposite direction. Kylar pulls the knife back as if to hurl it, but only embeds it in the mattress at <<his>> feet. <<He>> drops to <<his>> knees and buries <<his>> face in <<his>> hands as you turn the corner.
-	<br><br>
 
-	<<clotheson>>
-	<<endcombat>>
+<</if>>
+<br><br>
 
-	<<destinationeventend>>
+<<clotheson>>
+<<endcombat>>
 
-<</if>>
+<<destinationeventend>>
 
 :: Kylar Parasites Feed
 <<set $outside to 0>><<set $location to "home">><<effects>>
@@ -3914,11 +3926,7 @@ You see a small note near to the <<print _container.name>> with the letter "K" o
 	<br><br>
 	You bury them.
 	<<ggtrauma>>
-	<<if _pregnancy.namesChildren is true>>
-		<<set _traumaMulti to 2>>
-	<<else>>
-		<<set _traumaMulti to 1>>
-	<</if>>
+	<<set _traumaMulti to (_pregnancy.namesChildren is true ? 2 : 1)>>
 	<<trauma `30 * _traumaMulti * _container.deadCreatures`>>
 	<<if $wraith and $wraith.state isnot "" and $wraithShow>>
 		<<unset $wraithShow>>
@@ -3952,8 +3960,8 @@ You tell Kylar about the loft at the orphanage, and ask if <<he>> has any though
 <br><br>
 
 <<if $money gte 2000000>>
-<<link [[Set up lab (£20000 3:00)|Kylar Loft 2]]>><<set $money -= 2000000>><<set $loft_kylar to 1>><<set $loft_upgrade += 1>><<pass 180>><</link>>
-<br><br>
+	<<link [[Set up lab (£20000 3:00)|Kylar Loft 2]]>><<set $money -= 2000000>><<set $loft_kylar to 1>><<set $loft_upgrade += 1>><<pass 180>><</link>>
+	<br><br>
 <</if>>
 
 <<kylaroptions>>
@@ -3969,9 +3977,9 @@ You return to the orphanage without incident. You don't need to wait long. Kylar
 
 You tug the cable, reveal the hidden staircase, and ascend. Kylar investigates each room until <<he>> finds one <<he>> deems suitable. "Good," <<he>> says, placing <<his>> bags on a creaky old table. <<He>> starts setting up the equipment while explaining how it all works.
 
-<<if $science gte 700>>It sounds straightforward.
-<<elseif $science gte 500>>It sounds easy enough.
-<<elseif $science gte 300>>You think you understand, but you don't feel confident.
+<<if currentSkillValue('science') gte 700>>It sounds straightforward.
+<<elseif currentSkillValue('science') gte 500>>It sounds easy enough.
+<<elseif currentSkillValue('science') gte 300>>You think you understand, but you don't feel confident.
 <<else>>It's a bit complex for you.<</if>>
 <br><br>
 
@@ -4019,23 +4027,26 @@ When you pull away <<his>> eyes remain closed. <<He>> looks serene, if red-faced
 
 :: Kylar Loft Lewd
 <<set $outside to 0>><<set $location to "home">><<effects>>
+<<set _kylar to statusCheck("Kylar")>>
+<<npc Kylar>>
 
-You shove <<him>> back against the table, holding <<him>> down with one hand while the other creeps down <<his>> tummy.
+You shove Kylar back against the table, holding <<him>> down with one hand while the other creeps down <<his>> tummy.
 
-<<if $NPCList[0].gender is "f">>
-	<<if $NPCList[0].penis isnot "none">>
-	<span class="purple">You flick up <<his>> skirt, </span><span class="lewd">revealing <<his>> $NPCList[0].penisdesc.</span>
-	<<else>>
-	<span class="purple">You flick up <<his>> skirt, </span><span class="lewd">revealing <<his>> pussy.</span>
-	<</if>>
+<<set _kylarLower to _kylar.clothes.lower.name>>
+<<if _kylarLower.includes("skirt")>>
+	<span class="purple">You flick up <<his>> _kylarLower,</span>
 <<else>>
-	<<if $NPCList[0].penis isnot "none">>
-	<span class="purple">You pull down <<his>> shorts, </span><span class="lewd">revealing <<his>> $NPCList[0].penisdesc.</span>
-	<<else>>
-	<span class="purple">You pull down <<his>> shorts, </span><span class="lewd">revealing <<his>> pussy.</span>
-	<</if>>
+	<span class="purple">You pull down <<his>> _kylarLower,</span>
+<</if>>
+<<if _kylar.penis isnot "none" and _kylar.vagina isnot "none">>
+	<span class="lewd">revealing <<his>> _kylar.penisdesc and dripping pussy.</span>
+<<elseif _kylar.penis isnot "none">>
+	<span class="lewd">revealing <<his>> _kylar.penisdesc.</span>
+<<else>>
+	<span class="lewd">revealing <<his>> dripping pussy.</span>
 <</if>>
 <br><br>
+
 <<if $kylarSeen.includes("commando")>>
 	"You remembered my rule," you tease. "But is that the only reason?"
 <<else>>
@@ -4045,18 +4056,52 @@ You shove <<him>> back against the table, holding <<him>> down with one hand whi
 
 "I-It's not like that," <<he>> says.
 <br><br>
-<<if $NPCList[0].penis isnot "none">>
-"Oh?" you reply. "Then why are you already erect?" You run your fingers up and down <<his>> length.
-<br><br>
 
-<<He>> squirms a bit too forcefully for this to continue, so you push <<him>> onto <<his>> side and slide in behind <<him>>. You cradle <<his>> head with one hand, and wrap the other around <<his>> waist, before continuing the assault on <<his>> penis. <<He>> doesn't last long. <<His>> whole body shudders.
-<br><br>
+<<if _kylar.penis isnot "none" and _kylar.vagina isnot "none">>
+	"Oh?" you reply. "Then why are you already erect? And you're wet, too." You dip your fingers into <<his>> <<pussy>>, wetting them with <<his>> fluids.
+	You gently run your slickened fingers up and down <<his>> length, spreading <<his>> fluids over <<his>> own dick.
+	<br><br>
+
+	<<He>> squirms a bit too forcefully for this to continue, so you push <<him>> onto <<his>> side and slide in behind <<him>>.
+	You rest <<his>> head on your shoulder, and wrap both hands around <<his>> waist, before continuing the assault on <<his>> _kylar.penisdesc and dripping <<pussy>>.
+	<<He>> doesn't last long. <<His>> whole body shudders.
+	<br><br>
+	
+	You feel Kylar's <<pussy>> squeeze down on your fingers and <<his>> _kylar.penisdesc spasm in your grip, then
+<<elseif _kylar.penis isnot "none">>
+	"Oh?" you reply. "Then why are you already erect?" You run your fingers up and down <<his>> length.
+	<br><br>
+
+	<<He>> squirms a bit too forcefully for this to continue, so you push <<him>> onto <<his>> side and slide in behind <<him>>.
+	You cradle <<his>> head with one hand, and wrap the other around <<his>> waist, before continuing the assault on <<his>> penis.
+	<<He>> doesn't last long.
+	<br><br>
+
+	You feel Kylar's _kylar.penisdesc spasm in your grip, then
 <<else>>
-"Oh?" you reply. "Then why are you already wet?" Your push a finger against <<his>> clitoris, and rub.
-<br><br>
+	"Oh?" you reply. "Then why are you already wet?" You push a finger against <<his>> clit, and rub.
+	<br><br>
 
-<<He>> squirms a bit too forcefully for this to continue, so you push <<him>> onto <<his>> side and slide in behind <<him>>. You cradle <<his>> head with one hand, and wrap the other around <<his>> waist, before continuing the assault on <<his>> pussy. <<He>> doesn't last long. <<His>> whole body shudders.
-<br><br>
+	<<He>> squirms a bit too forcefully for this to continue, so you push <<him>> onto <<his>> side and slide in behind <<him>>.
+	You cradle <<his>> head with one hand, and wrap the other around <<his>> waist, before continuing the assault on <<his>> pussy.
+	<<He>> doesn't last long. <<His>> whole body shudders.
+	<br><br>
+<</if>>
+
+<<if _kylar.penis isnot "none">>
+	<<switch Math.clamp(_kylar.penissize, 1, 4)>>
+		<<case 4>>
+			cum erupts from the head, surging high into the air and splattering down onto <<his>> tummy and crotch as you continue to pump <<his>> length.
+			Eventually, <<his>> spasms die down while <<his>> cum continues to steadily ooze from <<his>> tip.
+		<<case 3>>
+			cum erupts from the head, splattering onto <<his>> tummy and crotch as you continue to pump <<his>> length.
+		<<case 2>>
+			cum shoots from the tip, splattering onto <<his>> tummy.
+		<<case 1>>
+			cum squirts from the tip, a few drops splattering onto <<his>> tummy while the rest drools down <<his>> shaft.
+	<</switch>>
+<<else>>
+	/* pussy orgasm text, add your own writing here */
 <</if>>
 
 You kiss <<his>> cheek. "Thank you for helping," you say. "The other orphans are grateful, even if they don't show it."
@@ -4087,7 +4132,7 @@ Kylar nods, still looking at <<his>> feet. <<He>> opens <<his>> mouth to speak,
 <br>
 
 :: Kylar Walk In The Park
-<<set $location to "park">><<set $outside to 1>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $location to "park">><<set $outside to 1>><<effects>><<run statusCheck("Kylar")>>
 <<set $kylar_action to "walk">>
 <<set $dateCount.Total++>><<set $dateCount.Kylar++>>
 <<if $weather is "clear">>
@@ -4138,7 +4183,7 @@ The two of you begin to walk around the park, enjoying the view.
 <br>
 
 :: Kylar Walk In The Park 2
-<<set $outside to 1>><<effects>><<NPCStatusCheck "Kylar">>
+<<set $outside to 1>><<effects>><<run statusCheck("Kylar")>>
 <<if $phase is 1>>
 	<<if _kylarStatus.includes("Rage")>>
 		<<if $submissive gte 1150>>
@@ -4189,13 +4234,17 @@ The two of you continue walking.
 <br><br>
 
 <<if $money gte 10>>
-	<<link [[Toss a coin (£0.10)|Kylar Fountain Wish]]>><<set $money -= 10>><<trauma -3>><<set $kylar.fountainCoin to 1>><</link>><<ltrauma>><br>
+	<<link [[Toss a coin (£0.10)|Kylar Fountain Wish]]>><<set $money -= 10>><<trauma -3>><<set $kylar.fountainCoin to 1>><</link>><<ltrauma>>
+	<br>
 <</if>>
-<<link [[Take a coin from the fountain and toss it|Kylar Fountain Wish]]>><<set $kylar.fountainCoin to 0>><</link>><br>
+<<link [[Take a coin from the fountain and toss it|Kylar Fountain Wish]]>><<set $kylar.fountainCoin to 0>><</link>>
+<br>
 <<if $kylar.fountain is 1>>
-	<<link [[Sit at the fountain|Kylar Walk In The Park End]]>><</link>><br>
+	<<link [[Sit at the fountain|Kylar Walk In The Park End]]>><</link>>
+	<br>
 <<else>>
-	<<link [[Move on|Kylar Walk In The Park End]]>><</link>><br>
+	<<link [[Move on|Kylar Walk In The Park End]]>><</link>>
+	<br>
 <</if>>
 <br>
 
@@ -4231,7 +4280,7 @@ The two of you continue walking.
 <br>
 
 :: Kylar Walk In The Park End
-<<set $outside to 1>><<effects>><<set $phase to 0>><<NPCStatusCheck "Kylar">>
+<<set $outside to 1>><<effects>><<set $phase to 0>><<run statusCheck("Kylar")>>
 <<if $kylar.fountain is 0>>
 	You walk back to the bench with Kylar.
 <<else>>
@@ -4241,17 +4290,26 @@ The two of you continue walking.
 	<<He>> pulls you down to sit with <<him>>. "That was... interesting," you say. Kylar looks around. Suddenly, <<he>> kisses you on the lips and holds your shoulders.
 	<<takeKissVirginity "Kylar" `($kylarenglish gte 1?"loveInterest":"romantic")`>>
 	<br><br>
-	<<link [[Kiss back|Kylar Walk In The Park End 2]]>><<if _npcKissVirginTemp>><<set $phase to 10>><<else>><<set $phase to 1>><</if>><<npcincr Kylar love 1>><<npcincr Kylar lust 1>><<npcincr Kylar rage -1>><</link>><<glove>><<glust>><<lksuspicion>>
+	<<link [[Kiss back|Kylar Walk In The Park End 2]]>><<set $phase to (_npcKissVirginTemp ? 10 : 1)>><<npcincr Kylar love 1>><<npcincr Kylar lust 1>><<npcincr Kylar rage -1>><</link>><<glove>><<glust>><<lksuspicion>>
 	<br>
 	<<link [[Pull away|Kylar Walk In The Park End 2]]>><<set $phase to 2>><<npcincr Kylar love -1>><<npcincr Kylar rage 1>><</link>><<llove>><<gksuspicion>>
-<<elseif _kylarStatus.includes("Sus")>>
-	You take a seat next to <<him>>. "That was fun," you say. <<He>> looks happy.
-	<br><br>
-	<<kylaroptions>>
 <<else>>
-	You take a seat next to <<him>>. "That was fun, we should do it again," you say. <<He>> looks overjoyed.
+	<<if _kylarStatus.includes("Sus")>>
+		You take a seat next to <<him>>. "That was fun," you say. <<He>> looks happy.
+	<<else>>
+		You take a seat next to <<him>>. "That was fun, we should do it again," you say. <<He>> looks overjoyed.
+	<</if>>
 	<br><br>
-	<<kylaroptions>>
+
+	<<if !$kylarDaily.walkKiss>>
+		<<kylaroptionstext>>
+		<br><br>
+		<<link [[Kiss|Kylar Walk In The Park End 2]]>><</link>><<glove>><<glust>><<llksuspicion>><<kissvirginitywarning>><<NPCvirginitywarning "Kylar" "kiss">>
+		<br>
+		<<kylaroptions "notext">>
+	<<else>>
+		<<kylaroptions>>
+	<</if>>
 <</if>>
 <br>
 
diff --git a/game/overworld-town/special-leighton/main.twee b/game/overworld-town/special-leighton/main.twee
index af7014228efba4ac3dc5394d0a1d8e8ea343aeff..c21aae1e4a29d812a4433b53e1400f99a387a807 100644
--- a/game/overworld-town/special-leighton/main.twee
+++ b/game/overworld-town/special-leighton/main.twee
@@ -54,7 +54,7 @@
 :: Leighton Club Blackmail
 <<set $outside to 0>><<effects>>
 
-You nod. Leighton reaches over to the camera as the <<person1>><<person>> and <<person2>><<person>> rise to their feet.
+You nod. Leighton reaches over to the camera as the <<fullGroup>> rise to their feet.
 <br><br>
 
 <<link [[Next|Leighton Club Blackmail Sex]]>><<set $sexstart to 1>><</link>>
@@ -101,7 +101,7 @@ Leighton watches with a blank expression, occasionally sipping wine.
 
 "I'll see you at school," Leighton says, picking up the camera and dropping some notes on the table. <<tearful>> you count the money. You've gained <<moneyGain 70>>.
 <br><br>
-<<fameprostitution 30 vid>><<set $prostitutionstat += 1>>
+<<fameprostitution 30 "vid">><<set $prostitutionstat += 1>>
 <<clotheson>>
 <<endcombat>>
 
@@ -111,7 +111,7 @@ Leighton watches with a blank expression, occasionally sipping wine.
 
 <<person2>>The <<person>> falls to the floor in pain. <<tearful>> you seize the opportunity and flee the room.
 <br><br>
-<<famescrap 30 vid>>
+<<famescrap 30 "vid">>
 
 <<clotheson>>
 <<endcombat>>
@@ -177,7 +177,7 @@ Leighton watches with a blank expression, occasionally sipping wine.
 
 "I'll see you at school," Leighton says, picking up the camera and dropping some notes on the table. <<tearful>> you count the money. You've gained <<moneyGain 30>>.
 <br><br>
-<<famerape 30 vid>><<set $forcedprostitutionstat += 1>><<fameprostitution 30 vid>>
+<<famerape 30 "vid">><<set $forcedprostitutionstat += 1>><<fameprostitution 30 "vid">>
 <<clotheson>>
 <<endcombat>>
 
@@ -186,7 +186,7 @@ Leighton watches with a blank expression, occasionally sipping wine.
 
 <<person2>>The <<person>> falls to the floor in pain. <<tearful>> you seize the opportunity and flee the room.
 <br><br>
-<<famescrap 30 vid>>
+<<famescrap 30 "vid">>
 
 <<clotheson>>
 <<endcombat>>
@@ -245,12 +245,12 @@ Leighton watches with a blank expression, occasionally sipping wine.
 <<if $monster is 1>>
 	"Thanks for the fun," the <<beasttype>> says suddenly. "So many dirty people come through here. You're fun, though. I like you."
 <</if>>
-<<fameprostitution 30 vid>><<famebestiality 30 vid>><<set $prostitutionstat += 1>>
+<<fameprostitution 30 "vid">><<famebestiality 30 "vid">><<set $prostitutionstat += 1>>
 
 <<elseif $enemyhealth lte 0>>
 The <<beasttype 0>> whimpers and hides behind Leighton. <<if $monster is 1>>"I don't like <<phim>>!"<</if>> <<tearful>> you seize the opportunity and flee the room.
 <br><br>
-<<famescrap 30 vid>>
+<<famescrap 30 "vid">>
 
 <<else>>
 
@@ -315,13 +315,13 @@ Leighton watches with a blank expression, occasionally sipping wine.
 
 "That position suits you," Leighton says, picking up the camera and dropping some notes on the table. "See you at school." <<tearful>> you count the money. You've gained <<moneyGain 100>>
 <br><br>
-<<famebestiality 30 vid>><<famerape 30 vid>><<set $forcedprostitutionstat += 1>><<fameprostitution 30 vid>>
+<<famebestiality 30 "vid">><<famerape 30 "vid">><<set $forcedprostitutionstat += 1>><<fameprostitution 30 "vid">>
 
 <<else>>
 
 The <<beasttype 0>> whimpers and hides behind Leighton. <<if $monster is 1>>"I don't like <<phim>>!"<</if>> <<tearful>> you seize the opportunity and flee the room.
 <br><br>
-<<famescrap 30 vid>>
+<<famescrap 30 "vid">>
 <br><br>
 
 <</if>>
@@ -424,7 +424,7 @@ The <<person1>><<person>> backs away from you. Leighton tuts, but leaves without
 <br>
 "To teach," you start massaging <<his>> chest.
 <br>
-"Two young," you move your hands lower.
+"Two beautiful," you move your hands lower.
 <br>
 "Supple," you slide your fingers down <<his>> stomach.
 <br>
@@ -677,7 +677,7 @@ Without warning, <span class="red">the wardrobe door is flung open,</span> revea
 <<if $enemyarousal gte $enemyarousalmax>>
 <<ejaculation>>
 
-Satisfied, <<person1>> the <<person>> and <<person2>> <<person>> fix their clothing. <<endevent>><<npc Leighton>><<person1>>Leighton smiles and walks over to the camera. "I'm going to enjoy watching this," <<he>> says, throwing some coins at you. You've earned <<moneyGain 30>>.
+Satisfied, the <<fullGroup>> fix their clothing. <<endevent>><<npc Leighton>><<person1>>Leighton smiles and walks over to the camera. "I'm going to enjoy watching this," <<he>> says, throwing some coins at you. You've earned <<moneyGain 30>>.
 <br><br>
 
 <<tearful>> you watch Leighton and <<his>> friends leave the room.
@@ -690,7 +690,7 @@ Satisfied, <<person1>> the <<person>> and <<person2>> <<person>> fix their cloth
 
 <<else>>
 
-<<person1>>The <<person>> and <<person2>><<person>> back away from you, giving you the chance you need. <<tearful>> you flee the room.
+The <<fullGroup>> back away from you, giving you the chance you need. <<tearful>> you flee the room.
 <br><br>
 
 <<clotheson>>
@@ -746,7 +746,7 @@ Satisfied, <<person1>> the <<person>> and <<person2>> <<person>> fix their cloth
 
 <<endevent>><<generate1>><<generate2>><<person1>>
 
-A <<person>> and <<person2>><<person>> enter the room, closing the door behind them. "You've forgotten your place," Leighton continues. "Time for a lesson." The pair step closer, and grasp your arms. Leighton smiles and produces a camera.
+A <<fullGroup>> enter the room, closing the door behind them. "You've forgotten your place," Leighton continues. "Time for a lesson." The pair step closer, and grasp your arms. Leighton smiles and produces a camera.
 <br><br>
 
 <<link [[Next|Club Cosplay Rape 2]]>><<set $molestationstart to 1>><</link>>
diff --git a/game/overworld-town/special-robin/console.twee b/game/overworld-town/special-robin/console.twee
index b16c4f17b6628d791044762ac3ea90dcfc8c610f..0d5e818dfab0a0289d7858a7169f3f5c948d0336 100644
--- a/game/overworld-town/special-robin/console.twee
+++ b/game/overworld-town/special-robin/console.twee
@@ -58,13 +58,13 @@
 :: Robin Play
 
 <<set $outside to 0>><<set $location to "home">><<effects>>
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<set _robin to statusCheck("Robin")>>
 <!-- robin cdquest 1 event -->
 <<if $rng gte 85 and _robin.cdquest is 1 and _robin.crossdressing gte 2 and !$robinDaily.cdevent and _robin.trauma lte 20>>
 	You play a cooperative game with <<him>>. You're about to win the stage when there's a knock on the door.
 	<br><br>
 
-	Robin, still wearing <<his>> 
+	Robin, still wearing <<his>>
 	<<if _robin.pronoun is "f">>
 		<<npcClothesText _robin "upper">> and chest binder,
 	<<else>>
diff --git a/game/overworld-town/special-robin/crossdressing.twee b/game/overworld-town/special-robin/crossdressing.twee
index ebd170f7fdb69ebc974d43881297c598edaccafb..be3944fbe2891a02ebf9818dd182da4bff973d90 100644
--- a/game/overworld-town/special-robin/crossdressing.twee
+++ b/game/overworld-town/special-robin/crossdressing.twee
@@ -14,7 +14,7 @@
 
 :: Robin Caught CD
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<!-- flip pronoun while the player doesn't recognize robin -->
 	<<genderswap>>
 	<<run npcEquipSet(_robin, setup.npcClothesSets.find(n => n.name === (_robin.pronoun is "m" ? "femaleTown1" : "maleTown1")))>>
@@ -39,7 +39,7 @@
 	<<if $pronoun is "f">>
 		She wipes away some of her makeup with her hand.
 	<<else>>
-		You recognize his voice.
+		You recognise his voice.
 	<</if>>
 	<span class="green">It's Robin</span>.
 	<!-- restore pronoun -->
@@ -66,12 +66,12 @@
 	<br>
 	<<link [[Softly Dissuade|Robin CD Soft Discourage]]>><<npcincr Robin love 1>><</link>><<glove>>
 	<br>
-	<<link [[Berate|Robin CD Harsh Discourage]]>><<npcincr Robin dom -3>><<stress 4>><<npcincr Robin love -5>><</link>><<ggstress>><<lllove>><<lldom>>
+	<<link [[Berate|Robin CD Harsh Discourage]]>><<npcincr Robin dom -3>><<stress 4>><<npcincr Robin love -5>><<npcincr Robin trauma 3>><</link>><<gstress>><<grtrauma>><<lllove>><<lldom>>
 	<br>
 
 :: Robin CD Encourage
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.crossdress to 2>>
 	<<set _robin.cdquest to 1>>
 	<<set $robinDaily.cdevent to 1>>
@@ -141,7 +141,7 @@
 
 :: Robin CD Soft Discourage
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<run delete _robin.crossdress>>
 
 	<<if $submissive gte 1150>>
@@ -171,7 +171,7 @@
 
 :: Robin CD Harsh Discourage
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<run delete _robin.crossdress>>
 
 	"Robin, why would you dress like that? Do you not have any shame?" Still in shock, your words come out harshly.
@@ -196,9 +196,54 @@
 	<<endevent>>
 	<<link [[Leave|Bedroom]]>><</link>>
 
+:: Robin Caught CD Knock
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+<<if $submissive gte 1150>>
+	You tap on the door. There's no response, save for a soft rustling from inside. A moment later, the door cracks open, and Robin steps out. Despite <<his>> smile, you can't help but notice <<hes>> blushing.
+	<br><br>
+
+	"Come in!" <<he>> chirps. "It's not like I was in the middle of anything." <<He>> gives you a playful shove and hops onto <<his>> bed. You take a seat beside <<him>>.
+<<elseif $submissive lte 850>>
+	You pound the door. A yelp greets you from the other side. "H-hold on!" Robin stammers. A flurry of frantic footsteps and slamming drawers follows, until the door swings open, revealing a red-faced Robin.
+	<br><br>
+
+	"You scared me," <<he>> pants, flopping down on <<his>> bed. You sit beside <<him>> as <<he>> catches <<his>> breath.
+<<else>>
+	You knock on the door. Robin gasps on the other side. "J-just a minute!" <<he>> stammers. Clothes rustle from the other side, until the door finally opens. Robin pulls you inside. <<Hes>> blushing.
+	<br><br>
+
+	"Thanks for waiting," <<he>> sighs. "You can come in now." You enter the room and take a seat on the bed.
+<</if>>
+<br><br>
+
+<<link [[Ask about the note|Robin Caught CD Note]]>><</link>>
+<br>
+<<robinoptions>>
+
+:: Robin Caught CD Note
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+<<He>> tenses up. "N-note?" <<he>> echoes. "I was... studying. And I didn't want to be bothered." <<He>> pauses. "I-I'm not mad at you, though! I was gonna take a break anyway, and..."
+<br><br>
+
+<<He>> keeps babbling in avoidance of your question. Eventually, <<hes>> silent.
+<<if $robinconsole is 0>>
+	<<His>> gaze lost in <<his>> lap,
+<<else>>
+	<<His>> focus lost to the television,
+<</if>>
+you're left to stew in your curiosity.
+<br><br>
+
+<span class="blue">Perhaps if you hadn't knocked, you'd have caught what <<he>> was doing.</span>
+<br><br>
+
+<<robinoptions>>
+
 :: Robin CD Door SV Start
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<npc Robin>><<person1>>
 
 	/* Scene Viewer is difficult to use so this is a fake passage that you only reach from within it. */
@@ -206,7 +251,7 @@
 	You play a cooperative game with <<him>>. You're about to win the stage when there's a knock on the door.
 	<br><br>
 
-	Robin, still wearing <<his>> 
+	Robin, still wearing <<his>>
 	<<if _robin.pronoun is "f">>
 		<<npcClothesText _robin "upper">> and chest binder,
 	<<else>>
@@ -221,7 +266,7 @@
 
 :: Robin CD Door Answer
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set $robinDaily.cdevent to 1>>
 	<<generatey2>>
 
@@ -245,7 +290,6 @@
 
 :: Robin CD Door Ignore
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
 	<<set $robinDaily.cdevent to 1>>
 	<<generatey2>>
 
@@ -265,9 +309,8 @@
 
 :: Robin CD Door Encourage
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.cdquest to 2>>
-	<<generatey2>>
 
 	<<if $submissive gte 1150>>
 		"I think you'll be ok," you whisper to <<person1>><<him>>.
@@ -280,7 +323,7 @@
 
 	With your encouragement, Robin responds. "I'm free now, come in!" A <<person2>><<person>> opens the door and looks at the both of you.
 	"Oh, I didn't know you had some friends over already," <<he>> says before looking directly at Robin.
-	"Wait a second, Robin? You look like a <<print (_robin.pronoun is "m" ? "girl" : "boy")>> wearing that. I didn't recognize you at first."
+	"Wait a second, Robin? You look like a <<print (_robin.pronoun is "m" ? "girl" : "boy")>> wearing that. I didn't recognise you at first."
 	<br><br>
 
 	<<if _robin.dom gte 60>>
@@ -291,7 +334,7 @@
 	<br><br>
 
 	Robin helps the <<person2>><<person>> for a while, smiling every time <<he>> mentions something about <<person1>><<his>> current outfit.
-	Eventually they finish and as they leave Robin looks at you, excited. "<<person2>><<He>> didn't recognise me at first!" Robin blurts out. "I can't believe it."
+	Eventually they finish and as they leave Robin looks at you, excited. <<person2>>"<<He>> didn't recognise me at first!" Robin blurts out. "I can't believe it."
 	<br><br>
 
 	<<if $submissive gte 1150>>
@@ -308,8 +351,6 @@
 
 :: Robin CD Door Discourage
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
-	<<generatey2>>
 
 	You look at Robin and shake your head.
 	<br><br>
@@ -354,7 +395,7 @@
 
 :: Robin CD Socialise
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.cdquest to 3>>
 
 	Robin smiles at you as you approach. <<person1>><<He>> looks indistinguishable from a <<print (_robin.pronoun is "m" ? "girl" : "boy")>>.
@@ -378,7 +419,7 @@
 
 :: Robin CD Socialise Defend
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	<<if $backgroundTraits.includes("crossdresser") or $player.gender isnot $player.gender_appearance>>
 		<<if $submissive gte 1150>>
@@ -390,11 +431,11 @@
 		<</if>>
 	<<else>>
 		<<if $submissive gte 1150>>
-			You move closer to Robin, "<<person1>><<He>>'s nothing like that..."
+			You move closer to Robin, <<person1>>"<<Hes>> nothing like that..."
 		<<elseif $submissive lte 850>>
 			You move between the <<person2>><<person>> and Robin. "What did you say to <<person1>><<him>>?"
 		<<else>>
-			You frown at the <<person2>><<person>>. "<<person1>><<He>> hasn't done anything wrong."
+			You frown at the <<person2>><<person>>. <<person1>>"<<He>> hasn't done anything wrong."
 		<</if>>
 	<</if>>
 	<br><br>
@@ -418,12 +459,12 @@
 
 :: Robin CD Socialise Change
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	<<if $submissive gte 1150>>
 		You move closer to Robin, "Can we talk about something else?"
 	<<elseif $submissive lte 850>>
-		"That's right, I am." you say bluntly, looking at them until they break eye contact.
+		"That's right, I am," you say bluntly, looking at them until they break eye contact.
 	<<else>>
 		"So Robin was telling me about a test they had the other day," you bluntly try to change the subject.
 	<</if>>
@@ -450,14 +491,14 @@
 	<<set _uniqueoptions to true>>
 	<<robinroom>>
 
-	<<if $season is "winter">>	
+	<<if $season is "winter">>
 		<<set _stand to "hot chocolate stand">>
 		<<set _inLocation to "in the park">>
 	<<else>>
 		<<set _stand to "lemonade stand">>
 		<<set _inLocation to "on the beach">>
 	<</if>>
-	Robin looks at the clock on the wall and sighs. "I need to get my _stand set up." 
+	Robin looks at the clock on the wall and sighs. "I need to get my _stand set up."
 	<<He>> slowly gets up. "I'll get changed, then I'll be _inLocation if you want to see me."
 	<br><br>
 
@@ -478,7 +519,6 @@
 
 :: Robin's Stand CD Explain Demo
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
 
 	<<if $submissive gte 1150>>
 		You slowly move up to Robin and hug <<him>>. "Are you alright?" You ask softly.
@@ -505,7 +545,7 @@
 
 :: Robin's Stand CD Explain Full
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	<<if $submissive gte 1150>>
 		You slowly move up to Robin and hug <<him>>. "Are you alright?" You ask softly.
@@ -571,7 +611,6 @@
 	<</if>>
 	<br><br>
 
-	<!-- TODO: fix this pass time -->
 	<<link [[Go with Robin (1:00)|Robin's Stand CD Accept]]>><<pass 60>><<npcincr Robin love 5>><</link>><<gglove>>
 	<br>
 	<<link [[Say you can't|Robin's Stand CD Refuse]]>><<npcincr Robin love -5>><</link>><<lllove>>
@@ -579,7 +618,7 @@
 
 :: Robin's Stand CD Refuse
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.cdstanddenial to 1>>
 
 	<<if $submissive gte 1150>>
@@ -609,7 +648,7 @@
 :: Robin's Stand CD Accept
 	<<set $outside to 1>><<set $location to ($season is "winter" ? "park" : "beach")>><<effects>>
 	<<set $robinmoney += 10>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<generateNPC 2 a>>
 
 	<<if $submissive gte 1150>>
@@ -641,7 +680,6 @@
 
 :: Robin's Stand CD Listen
 	<<set $outside to 1>><<set $location to ($season is "winter" ? "park" : "beach")>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
 
 	You position yourself where you won't be seen and listen in. On closer inspection it seems that a <<person2>><<person>> is harassing Robin.
 	You strain your ears to listen in.
@@ -660,7 +698,7 @@
 
 :: Robin's Stand CD Intervene
 	<<set $outside to 1>><<set $location to ($season is "winter" ? "park" : "beach")>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.crossdress to 4>>
 	<<set _robin.cdquest to 4>>
 
@@ -687,7 +725,7 @@
 		"I just want to sell my <<print ($season is "winter" ? "hot chocolate" : "lemonade")>>, so if you're not going to buy anything could you please leave us alone?"
 		<br><br>
 
-		The <<person2>><<person>> doesn't seem dissuaded however. "I like it when they're fiesty." <<He>> says before moving a hand towards Robin's crotch.
+		The <<person2>><<person>> doesn't seem dissuaded however. "I like it when they're feisty." <<He>> says before moving a hand towards Robin's crotch.
 		<<He>> doesn't get very far, however, before it's slapped away by Robin.
 		<br><br>
 
@@ -713,7 +751,7 @@
 		<<if $submissive gte 1150>>
 			"I'm glad <<person2>><<he>>'s gone." You breathe a sigh of relief. "Are you okay Robin?"
 		<<elseif $submissive lte 850>>
-			"That asshole doesn't know what <<person2>><<he>>'s talking about." You say, rubbing Robin's shoulder. "Ignore <<him>>."
+			"That asshole doesn't know what <<person2>><<he>>'s talking about," You say, rubbing Robin's shoulder. "Ignore <<him>>."
 		<<else>>
 			"Good thing <<person2>><<he>>'s gone," you say while smiling at Robin. "You going to be alright?"
 		<</if>>
@@ -740,7 +778,7 @@
 			When it's over you move over to Robin. "I'm so sorry." You tenderly hold <<person1>><<him>> close to you.
 		<<elseif $submissive lte 850>>
 			You shove the <<person2>><<person>> away, but not before they manage to get a good grope in.
-			"Oh shit, Robin are you alright?" You gently shake Robin to snap <<him>> out of it.
+			"Oh shit, Robin are you alright?" You gently shake Robin to snap <<person1>><<him>> out of it.
 		<<else>>
 			You move to stop <<person2>><<him>> but <<he>> gets a good grab in before you can move <<his>> hand away.
 			"You ok?" You whisper into Robin's ear, low enough that the <<personsimple>> cannot hear.
@@ -784,7 +822,7 @@
 
 :: Robin's Stand CD Wait
 	<<set $outside to 1>><<set $location to ($season is "winter" ? "park" : "beach")>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	Unable to bring yourself to intervene, you wait a bit longer to see what will happen.
 	<br><br>
@@ -845,7 +883,7 @@
 			<<He>> then quickly walks off, leaving Robin shaking there silently.
 			<br><br>
 		<</if>>
-		
+
 		You move out of hiding to approach Robin now that the <<person2>><<personsimple>> is leaving. <<person1>><<He>> looks shaken.
 		<<if $submissive gte 1150>>
 			"Sorry I wasn't there for you." You feel <<him>> trembling as you hug <<him>>. "Are you alright??"
@@ -869,7 +907,7 @@
 
 :: Robin's Stand CD Reassure
 	<<set $outside to 1>><<set $location to ($season is "winter" ? "park" : "beach")>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.crossdress to 4>>
 	<<set _robin.cdquest to 4>>
 	<<person1>>
@@ -899,7 +937,7 @@
 	You separate and continue to operate the stand together. Fortunately the rest of the customers are amicable.
 	<br><br>
 
-	<<clearsinglenpc 1>>
+	<<endevent>>
 	<<if $season is "winter">>
 		<<link [[Offer help (0:30)|Robin Chocolate Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
 		<br>
@@ -914,7 +952,7 @@
 
 :: Robin's Stand CD Discourage
 	<<set $outside to 1>><<set $location to ($season is "winter" ? "park" : "beach")>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.cdstanddenial to 1>>
 
 	<<if $submissive gte 1150>>
@@ -958,7 +996,7 @@
 
 :: Robin School CD SV Intro
 	<<npc Robin>><<person1>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	You enter Robin's room, <<he>>'s standing in front of <<his>> mirror holding a
 	<<print (_robin.pronoun is "m" ? "girl's" : "boy's")>> school uniform in front of <<him>>.
 	<<He>> seems focused on how <<he>> looks and doesn't notice you at first.
@@ -1002,7 +1040,7 @@
 
 :: Robin School CD Compliment
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	<<if $submissive gte 1150>>
 		"You look really nice in that," you say just loud enough for Robin to hear. <<He>> turns towards you.
@@ -1034,7 +1072,6 @@
 
 :: Robin School CD Refuse
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
 
 	<<if $submissive gte 1150>>
 		"I don't think I can do today, sorry," you say quietly.
@@ -1052,7 +1089,7 @@
 
 :: Robin School CD Accept
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.cdquest to 5>>
 	<<set _robin.crossdress to 5>>
 
@@ -1078,7 +1115,7 @@
 
 :: Robin School CD Change
 	<<set $outside to 0>><<set $location to "home">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	<<if $phase is 1>>
 		You can't help but watch, seeing Robin change in front of you.<<arousal 150>><<garousal>>
@@ -1104,7 +1141,7 @@
 
 :: Robin School CD Walk
 	<<set $outside to 1>><<set $location to "town">><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	The walk to school is the same as usual, save for Robin's excited banter about how great today will be.
 	Some passing students give <<him>> strange looks, but <<he>> takes it all in stride. When you arrive, Robin looks at you and smiles.
@@ -1115,7 +1152,7 @@
 
 :: Canteen Lunch Robin CD 1
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<sydneySchedule>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _whitney to $NPCName[$NPCNameList.indexOf("Whitney")]>>
 	<<set _robin.cdquest to 6>>
 	<<npc Robin>><<person1>>
@@ -1153,14 +1190,13 @@
 		<br><br>
 
 		<<npc Whitney 2>><<person2>>
-		"Hey bitches." Whitney says as <<he>> slams <<his>> hand down hard next to where you and Robin are sitting.
+		"Hey, bitches," Whitney says as <<he>> slams <<his>> hand down hard next to where you and Robin are sitting.
 		<br><br>
-		
+
 		<<if _robin.dom gte 60>>
 			Robin stays silent, opting to take a bite from <<person1>><<his>> food instead.
 			<br><br>
 
-			<!-- could add a scene here where the player blocks the tray but gets covered in food themselves -->
 			Whitney's amused smirk quickly goes away, replaced with an angry scowl.
 			"What are you supposed to be now? A <<genderswap>><<personsimple>>?"
 			Whitney spits at Robin's face.
@@ -1200,7 +1236,7 @@
 
 			As Whitney storms off, <<person2>><<he>> takes <<his>> friends with <<him>>.
 		<<elseif _robin.dom gte 60>>
-			Robin stays silent and tries to take another bite of <<his>> food, but you can see <<him>> shaking slightly.
+			Robin stays silent and tries to take another bite of <<person1>><<his>> food, but you can see <<him>> shaking slightly.
 			The students who were talking to Robin previously have all gone silent, opting to stare at <<him>> or Whitney instead.
 			<br><br>
 
@@ -1215,7 +1251,7 @@
 			"Serves you right, bitch." As Whitney storms off, <<person2>><<he>> takes <<his>> friends with <<him>>.
 		<<else>>
 
-			Robin sniffles and hides <<his>> face from Whitney with <<his>> hands. <<He>> opens <<his>> mouth but Whitney interrupts.
+			Robin sniffles and hides <<person1>><<his>> face from Whitney with <<his>> hands. <<He>> opens <<his>> mouth but Whitney interrupts.
 			<br><br>
 
 			"Hey slut, don't you know how to act?" Whitney flips Robin's lunch on top of <<him>>. "You look at people who are talking to you!"
@@ -1249,7 +1285,7 @@
 
 		Robin scrambles to <<person1>><<his>> feet in a panic, only to slip on some of the food pooling around <<his>> feet. <<He>> tumbles to the floor.
 		The other students who were talking to Robin are either laughing at <<his>> expense or having their own conversations. "Ouch..."
-		
+
 	<</if>>
 	<br><br>
 
@@ -1258,7 +1294,6 @@
 
 :: Canteen Lunch Robin CD 2
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<sydneySchedule>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
 
 	<<if $submissive gte 1150>>
 		You quickly grab one of your napkins and dab the yoghurt from Robin's face.
@@ -1301,7 +1336,7 @@
 			<<else>>
 				You give Robin one last kiss on the lips before removing your $worn[$_layer].name.
 			<</if>>
-			
+
 			<<if !$worn.under_lower.type.includes("naked") and !playerHasStrapon()>>
 				Your $worn.under_lower.name soon <<print ($worn.under_lower.plural ? "follow" : "follows")>> suit.
 			<</if>>
@@ -1394,12 +1429,12 @@
 			<<set $player.penissize to $playerPenisSizeBackup>>
 			<<unset $playerPenisSizeBackup>>
 		<</if>>
-	
+
 	<</widget>>
 
 :: School Infirmary Robin CD Intro
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _robin.cdquest to 7>>
 	<<npc Robin>><<person1>>
 	<<dontHideForNow>>
@@ -1423,7 +1458,7 @@
 	"Huh, nobody's here?" Robin looks around the room.
 	<br><br>
 
-	You guide Robin to a bed and lie <<him>> down. 
+	You guide Robin to a bed and lie <<him>> down.
 	<<if $submissive gte 1150>>
 		You motion towards Robin. "Your clothes..."
 	<<elseif $submissive lte 850>>
@@ -1445,7 +1480,7 @@
 	<<else>>
 		revealing <<his>> _robinUnderUpper.
 	<</if>>
-	Robin looks away as you take the dirty _robinUpper and set it aside. 
+	Robin looks away as you take the dirty _robinUpper and set it aside.
 	<br><br>
 
 	<<He>> kicks off <<his>> shoes, allowing you to pull down <<his>> _robinLower as well. Underneath, you see
@@ -1489,7 +1524,7 @@
 
 :: School Infirmary Robin CD Kiss
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	<<if $submissive gte 1150>>
 		You look at Robin with parted lips, <<he>> takes the message and leans forward to kiss you.
@@ -1523,7 +1558,7 @@
 			<<if _robin.dom gte 40>>
 				<<He>> lightly gropes one of them, softly holding it in <<his>> hand as <<he>> kisses.
 			<<else>>
-				<<He>> rubs <<his>> chest against your <<breasts>>, causing your nipples to rub against <<his>>.
+				<<He>> rubs <<his>> chest against your <<breasts>>, causing your nipples to rub against <<hers>>.
 			<</if>>
 		<</if>>
 	<<else>>
@@ -1565,7 +1600,8 @@
 
 :: School Infirmary Robin CD No Sex
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
+	<<earnFeat "Robin's Song">>
 
 	<<if $phase is 1>>
 		<<if $submissive gte 1150>>
@@ -1615,11 +1651,11 @@
 		<<He>> hugs you tightly before leaving the room.
 	<</if>>
 	<br><br>
-	
+
 	<<robinInfirmaryVariableCleanup>>
 
 	<<if $schoolstate is "lunch" or $schoolstate is "fourth">>
-		<<link [[Next|School History Robin CD Enter]]>><<clotheson>><<dontHideRevert>><</link>>
+		<<link [[Next|School History Robin CD Enter]]>><<endevent>><<clotheson>><<dontHideRevert>><</link>>
 	<<else>>
 		<<link [[Next|Hallways]]>><<endevent>><<clotheson>><<dontHideRevert>><</link>>
 	<</if>>
@@ -1627,21 +1663,21 @@
 
 :: School Infirmary Robin CD Receive Oral
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 
 	<<if $robinCDI.acts is 0>>
 		<<robinInfirmaryCDUndressLower>>
 		<br><br>
 	<</if>>
 
-	<<if $phase is 0>>  <!-- blowjob from Robin -->
+	<<if $phase is 0>> <!-- blowjob from Robin -->
 		Robin's eyes don't stop looking at your <<penis>>. <<He>> slowly brings <<his>> mouth closer to it before looking up at you.
 		<<if _robin.dom gte 40>>
 			"Can I?" Robin looks eager.
 		<<else>>
 			"Do you mind if I..." Robin doesn't look like <<he>> can finish <<his>> sentence.
 		<</if>>
-		You nod. <<He>> tentatively sticks <<his>> tongue out to lick it. 
+		You nod. <<He>> tentatively sticks <<his>> tongue out to lick it.
 		<br><br>
 
 		<<if _robin.virginity.oral>>
@@ -1659,6 +1695,8 @@
 		<br><br>
 
 		<<switch $player.penissize>>
+			<<case -1 0>>
+				<<He>> struggles to keep <<his>> mouth on it for a moment, before resorting to kissing it instead of trying to suck it.
 			<<case 1>>
 				Eventually <<he>> takes it all the way down to the base and makes a pleased noise as <<he>> sucks.
 			<<case 2>>
@@ -1683,12 +1721,13 @@
 				"Hahh- Sorry about that, um, got carried away."
 				<<He>> returns to your penis, but seems to focus <<his>> efforts on what <<he>> can reach. Shortly after that,
 			<<default>>
-				ERROR MESSAGE
+				Robin gags on your penis, retching. "Sorry," <<he>> says. "I didn't expect you to have a penis size of <<print $player.penissize>>.
+				<span class="red">It's a bug.</span> Could you report this to Vrelnir when you get the chance?"
 		<</switch>>
 		Robin starts using <<his>> tongue to swirl around your penis as <<he>> moves.
 		<<arousal 5000>><<gggarousal>>
 		<br><br>
-		
+
 		<<if $arousal gte $arousalmax>>
 			<<silently>><<orgasm>><</silently>>
 			<<set $robinCDI.whoOrgasmed to "pc">>
@@ -1706,7 +1745,7 @@
 			"Jeez! Warn me when you're gonna do that! You know we're not supposed to make a mess in here."
 			<br><br>
 			<<if $robinCDI.acts is 0>>
-				Then, as <<he>> strokes your cock, <<he>> adds, 
+				Then, as <<he>> strokes your cock, <<he>> adds,
 				<<if _robin.dom gte 40>>
 					"I hope you've still got more for me. I'm not done yet."
 				<<else>>
@@ -1717,7 +1756,7 @@
 				Robin snuggles up next to you with a happy sigh. "I'm so glad you enjoyed yourself," <<he>> smiles at you.
 			<</if>>
 		<<else>>
-			
+
 			You feel yourself about to orgasm when <<he>> stops.
 			<<if $robinCDI.acts is 0>>
 				"I came up with a better idea," <<he>> says, voice shaking with excitement as <<he>> lies back on the bed.
@@ -1725,7 +1764,7 @@
 				"Sorry, my jaw is hurting," <<he>> looks dejected. "I'm sorry I couldn't get you to finish," <<he>> sighs and hugs you.
 			<</if>>
 		<</if>>
-	<<else>>  <!-- eat out by Robin -->
+	<<else>><!-- eat out by Robin -->
 		Robin starts kissing you again, though this time <<his>> hands wander towards your chest.
 		<<He>> gently circles <<his>> fingertip around your nipple as <<he>> nibbles your lower lip. It soon becomes erect due to <<his>> fingernail tracing it.
 		Robin breaks the kiss, closing <<his>> eyes and starting to create a trail down your neck and to your chest.
@@ -1835,7 +1874,7 @@
 
 :: School Infirmary Robin CD Penetrate
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _hole to ($phase is 1 ? "ass" : "vagina")>>
 
 	<<if playerHasStrapon()>>
@@ -1869,7 +1908,7 @@
 		<<case 0>>
 			You easily fit the entire length within Robin.
 			<br><br>
-			
+
 			<<He>> smiles at you, reassuringly. "I don't mind if it's a little small, it's you that I care about."
 		<<case 1>>
 			You keep going until Robin reaches the base of your <<penis>>. <<He>> smiles and makes a pleased sigh.
@@ -1999,7 +2038,7 @@
 				You hold onto Robin tightly as you ride out your respective orgasms.
 			<</if>>
 		<</if>>
-	<<else>> 
+	<<else>>
 		Robin curls <<his>> toes and gives a particularly long moan. <<His>> muscles start to clench and unclench as <<he>> holds you especially close to <<him>>.
 		<<if _robin.dom gte 40>>
 			"Keep going! I'm gonna cum!" Robin squeezes you as <<he>> moans.
@@ -2019,7 +2058,7 @@
 
 :: School Infirmary Robin CD Get Penetrated
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _hole to ($phase is 1 ? "ass" : "vagina")>>
 
 	<!-- Feel free to add a Robin strap-on version -->
@@ -2144,18 +2183,18 @@
 
 :: School Infirmary Robin CD Give Oral
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<set _action to ($phase is 0 ? "blowjob" : "eat out")>>
 
 	<<if $robinCDI.acts is 0>> <!-- first act, preparing for penetration -->
 		<<robinInfirmaryCDUndressLower>>
 		<br><br>
-		
+
 		<<if _action is "blowjob">>
 			<<set $NPCList[0].intro to 1>>
 		<<elseif _action is "eat out">>
 			<<if $submissive gte 1150>>
-				"I want to make you feel good..." You mumble. 
+				"I want to make you feel good..." you mumble.
 			<<elseif $submissive lte 850>>
 				You make a lewd gesture using your fingers and your tongue. "I'd love to get a taste," you say.
 			<<else>>
@@ -2165,10 +2204,10 @@
 
 			Robin flushes. "S-sure!"
 		<</if>>
-		
+
 		<<set _soaked to (_robin.vagina isnot "none" ? "arousal-soaked" : "")>>
 		<<if _robin.pronoun is "f">>
-			<<He>> opens up the front of <<his>> _soaked boxers, revealing <<his>> 
+			<<He>> opens up the front of <<his>> _soaked boxers, revealing <<his>>
 		<<else>>
 			<<He>> slides <<his>> _soaked panties down to <<his>> knees, revealing <<his>>
 		<</if>>
@@ -2362,9 +2401,13 @@
 		<</if>>
 		"I'm gonna need a minute. That was... intense." <<He>> collapses back on the bed.
 		<<set $robinCDI.whoOrgasmed to "robin">>
-		
+
 	<<else>>
-		This is an error.
+		Robin frowns. "Sorry, I'm not... sure what to do here? <span class="red">I think __action being set to _action is a bug.</span>
+		Could you report this to Vrelnir when you get the chance?"
+		<br><br>
+
+		<<He>> awkwardly pats the top of your head, unsure of what else to do.
 	<</if>>
 	<br><br>
 
@@ -2373,7 +2416,6 @@
 
 :: School Infirmary Robin CD Aftercare
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
 	<<npcincr Robin lust -100>>
 	<<earnFeat "Robin's Song">>
 	You and Robin lie close together on the infirmary bed, holding each other in a warm embrace.
@@ -2393,7 +2435,7 @@
 	<br><br>
 
 	<<He>> starts to clean <<his>> clothes off, which have now mostly dried. Throwing them on, <<he>> smiles at you as you fix your clothing.
-	"Thanks," <<he>> says. "Not just for this, but for everything." 
+	"Thanks," <<he>> says. "Not just for this, but for everything."
 	<<if $schoolstate is "lunch" or $schoolstate is "fourth">>
 		<<He>> gives you a big hug before holding your hand and leading you to your class.
 	<</if>>
@@ -2405,7 +2447,7 @@
 	<<robinInfirmaryVariableCleanup>>
 
 	<<if $schoolstate is "lunch" or $schoolstate is "fourth">>
-		<<link [[Next|School History Robin CD Enter]]>><<clotheson>><<dontHideRevert>><</link>>
+		<<link [[Next|School History Robin CD Enter]]>><<endevent>><<clotheson>><<dontHideRevert>><</link>>
 	<<else>>
 		<<link [[Next|Hallways]]>><<endevent>><<clotheson>><<dontHideRevert>><</link>>
 	<</if>>
@@ -2413,7 +2455,7 @@
 
 :: School History Robin CD Enter
 	<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<npc Robin 1>>
 	<<npc Winter 2>>
 
diff --git a/game/overworld-town/special-robin/flirt.twee b/game/overworld-town/special-robin/flirt.twee
index 206d6a171148ba8738acab1b4c697bbc4d5b2bfb..9df986f9afc1b127402419b3552c93d48cc45b5f 100644
--- a/game/overworld-town/special-robin/flirt.twee
+++ b/game/overworld-town/special-robin/flirt.twee
@@ -1,7 +1,7 @@
 :: Robin Flirt Room
 
 <<set $outside to 0>><<set $location to "home">><<effects>>
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<set _robin to statusCheck("Robin")>>
 <<set _kissType to ($robinromance gte 1 ? "loveInterest" : "romantic")>>
 <<switch random(1, 9)>>
 	<<case 1>>
@@ -68,13 +68,13 @@
 			<<if $handskill gte 800>>
 				You feel <<him>> stifle a moan as you massage <<his>> shoulders. The more knots you work out, the more flushed <<his>> face gets.
 				Afterwards, <<he>> turns to you and gives a quiet thanks, <<his>> face still red.
-				<<npcincr Robin lust 1>><<npcincr Robin trauma -2>><<glust>><<ltrauma>>
+				<<npcincr Robin lust 1>><<npcincr Robin trauma -2>><<glust>><<lrtrauma>>
 			<<elseif $handskill gte 400>>
 				You feel <<his>> muscles relax. "I wish I could repay you somehow." <<He>> leans back into your hands, serenity on <<his>> face.
-				<<npcincr Robin trauma -2>><<ltrauma>>
+				<<npcincr Robin trauma -2>><<lrtrauma>>
 			<<else>>
 				<<He>> tries to get into it, but has trouble relaxing. You don't think you achieve much, but <<he>> smiles and thanks you when you finish regardless.
-				<<npcincr Robin trauma -1>><<ltrauma>>
+				<<npcincr Robin trauma -1>><<lrtrauma>>
 			<</if>>
 		<<elseif $robinromance gte 1>>
 			<<if $handskill gte 800>>
@@ -85,23 +85,23 @@
 					<<npcincr Robin lust 2>><<glust>>
 				<<else>>
 					Robin turns to you when you finish, <<his>> face flushed. You kiss <<his>> nose for good measure, and <<he>> hugs you.
-					<<npcincr Robin lust 2>><<npcincr Robin trauma -2>><<glust>><<ltrauma>>
+					<<npcincr Robin lust 2>><<npcincr Robin trauma -2>><<glust>><<lrtrauma>>
 				<</if>>
 			<<elseif $handskill gte 400>>
 				You feel <<his>> muscles relax. <<He>> leans back into your hands, clearly enjoying <<himself>>.
 				When you finish, <<he>> turns and strokes your hair. "I needed that, thank you."
-				<<npcincr Robin trauma -2>><<ltrauma>>
+				<<npcincr Robin trauma -2>><<lrtrauma>>
 			<<else>>
 				<<He>> tries to get into it, though you can tell <<hes>> having some trouble. After you finish <<he>> hugs you with a smile.
 				"I should try giving you a massage sometime."
-				<<npcincr Robin trauma -1>><<ltrauma>>
+				<<npcincr Robin trauma -1>><<lrtrauma>>
 			<</if>>
 		<</if>>
 	<<case 4>>
 		You poke Robin to get <<his>> attention. <<He>> turns to you, <<his>> cheeks lighting up as <<he>> realises how close you are.
 		<<if _robin.lovestage lte 3>>
 			A conflicted look runs across <<his>> face. <<He>> gives you a quick hug before shifting away. "Sorry," <<he>> says. "I didn't realise I was so close."
-			<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<ltrauma>>
+			<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<lrtrauma>>
 		<<elseif _robin.lovestage lte 5 and $robinromance isnot 1 and _robin.dom gte 40>>
 			<<He>> gives you a kiss on the nose before giving you a hug. "You're the best."
 			<<if $submissive gte 1150>>
@@ -118,7 +118,7 @@
 			<<He>> gives you a big hug that lingers for longer than usual. <<His>> hands rub your back, then leans forward to whisper in your ear.
 			"I really like you," <<he>> says. <<He>> dodges further inquiry.
 			<<npcincr Robin lust 1>><<glust>>
-			
+
 		<<elseif $robinromance gte 1>>
 			<<if _robin.dom gte 40>>
 				<<He>> gives you a gentle smile, then kisses you. <<His>> tongue prods your lips, but <<he>> pulls away before you part them. "I love you."
@@ -138,7 +138,7 @@
 			<<else>>
 				<<He>> kisses your nose. "I love you."
 				<br><br>
-				
+
 				You give <<him>> a proper kiss in response.
 				<<He>> melts under your touch. You pull away, and <<he>> gives you a longing look.
 				<<takeKissVirginity "Robin" _kissType>><<arousal 150>><<npcincr Robin lust 3>><<garousal>><<glust>>
@@ -147,9 +147,9 @@
 	<<case 5>>
 		<<if _robin.lovestage lte 4>>
 			<<if $worn.upper.name isnot "naked" or !$worn.under_upper.type.includes("naked")>>
-				You displace your 
+				You displace your
 				<<if $worn.upper.name isnot "naked">>
-					$worn.upper.name. 
+					$worn.upper.name.
 				<<else>>
 					$worn.under_upper.name.
 				<</if>>
@@ -166,7 +166,7 @@
 			<<npcincr Robin lust 2>><<glust>>
 		<<elseif _robin.lovestage gte 5 and _robin.dom gte 40>>
 			<<if $robinromance gte 1>>
-				You open your mouth to flirt with Robin, but <<he>> beats you to it, shifting close and placing <<his>> hand on yours. 
+				You open your mouth to flirt with Robin, but <<he>> beats you to it, shifting close and placing <<his>> hand on yours.
 				<<set _clothesSet to setup.npcClothesSets.find(set => set.name === _robin.clothes.set)>>
 				<<if _clothesSet.outfit is 1>>
 					<<He>> tugs on <<his>> outfit and encourages you to <<npcUndressText _robin "upper">>.
@@ -209,7 +209,7 @@
 			<<if $worn.upper.name isnot "naked" or !$worn.under_upper.type.includes("naked")>>
 				You displace your
 				<<if $worn.upper.name isnot "naked">>
-					$worn.upper.name. 
+					$worn.upper.name.
 				<<else>>
 					$worn.under_upper.name.
 				<</if>>
@@ -243,7 +243,7 @@
 			<br><br>
 
 			"I'm glad you like my hair so much." <<He>> seems to relax as you continue to play for a few minutes, enjoying the silence of your company.
-			<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<ltrauma>>
+			<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<lrtrauma>>
 		<<elseif _robin.lovestage lte 5 and $robinromance isnot 1>>
 			<<He>> leans into your hand slightly, giving you a better position.
 			<br><br>
@@ -251,11 +251,11 @@
 			<<if _robin.dom gte 40>>
 				<<He>> cups your cheek in <<his>> hand while you idly mess with <<his>> hair. You both relax, staring into each other's eyes for a few minutes before breaking off.
 				"That was really nice." <<He>> seems very happy with your actions.
-				<<npcincr Robin love 1>><<npcincr Robin dom 1>><<npcincr Robin trauma -1>><<glove>><<gdom>><<ltrauma>>
+				<<npcincr Robin love 1>><<npcincr Robin dom 1>><<npcincr Robin trauma -1>><<glove>><<gdom>><<lrtrauma>>
 			<<else>>
 				<<He>> looks you in the eyes. You look back at <<him>> and smile as you keep playing with <<his>> hair. <<He>> flushes but maintains the eye contact.
 				When you do break off, it looks like <<he>>'s about to say something but stops <<himself>>.
-				<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<ltrauma>>
+				<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<lrtrauma>>
 			<</if>>
 		<<elseif $robinromance gte 1>>
 			<<He>> moves closer to you.
@@ -274,7 +274,7 @@
 					"Thanks." <<He>> pauses for a moment before beginning to play with your hair as well. You look at each other longingly before eventually coming in for a quick kiss.
 					<<takeKissVirginity "Robin" _kissType>>
 					"You make my heart flutter, and I love it."
-				<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<ltrauma>>
+				<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<lrtrauma>>
 				<</if>>
 			<<elseif $submissive lte 850>>
 				You move to pull <<him>> into a kiss.
@@ -298,8 +298,8 @@
 					<br><br>
 					Robin gives you a smirk as <<he>> places <<his>> hand over yours, moving it down slowly until it reaches <<his>> collarbone.
 					<<if $promiscuity gt 54>>
-						You smirk back and run a hand through the top of <<his>> <<npcClothesText _robin "upper">>, 
-						tugging it upward slightly before <<he>> places a hand on yours. 
+						You smirk back and run a hand through the top of <<his>> <<npcClothesText _robin "upper">>,
+						tugging it upward slightly before <<he>> places a hand on yours.
 						<br><br>
 
 						"N-not now," <<he>> says, looking incredibly flushed.
@@ -328,9 +328,9 @@
 		<br><br>
 
 		<<if _robin.lovestage lte 5 and $robinromance isnot 1>>
-			<<He>> smiles playfully as <<he>> pokes you on the shoulder. "Please, you and I both know that _character1Name could never beat 
-			 _character2Name. <<He>> has the power of <<print either ("flight", "overwhelming cuteness", "really big lasers", "sharp feathers", "friendship")>>!" 
-			Robin starts to list off many of _character2Name's powers, and doesn't realise that you've been slowly moving closer to <<him>> 
+			<<He>> smiles playfully as <<he>> pokes you on the shoulder. "Please, you and I both know that _character1Name could never beat
+			_character2Name. <<He>> has the power of <<print either ("flight", "overwhelming cuteness", "really big lasers", "sharp feathers", "friendship")>>!"
+			Robin starts to list off many of _character2Name's powers, and doesn't realise that you've been slowly moving closer to <<him>>
 			as <<he>> counts on <<his>> fingers. When <<he>> turns and notices your proximity, <<he>> freezes mid sentence.
 			<br><br>
 			<<if $submissive gte 1150>>
@@ -350,8 +350,8 @@
 					"W-well," you falter. "Maybe with <<if $player.gender_appearance is "m">>his manly charm<<else>>her womanly wiles<</if>>?"
 					<br><br>
 
-					"I could see that." <<He>> turns to you. "_character1Name would be all close and personal." <<He>> moves a bit closer. "When in the heat of the moment..." <<His>> lips 
-					are almost touching yours. "_character2Name realises how beautiful <<pshe>> is." Any pretence of the argument is broken as 
+					"I could see that." <<He>> turns to you. "_character1Name would be all close and personal." <<He>> moves a bit closer. "When in the heat of the moment..." <<His>> lips
+					are almost touching yours. "_character2Name realises how beautiful <<pshe>> is." Any pretence of the argument is broken as
 					<<his>> lips meet yours, causing you to melt in <<his>> embrace. After a while, Robin breaks off, "I could see _character1Name winning in that case."
 					<<takeKissVirginity "Robin" _kissType>>
 					<br><br>
@@ -372,16 +372,16 @@
 					You feel a playful jab on your shoulder. "I love you too, silly."
 					<<arousal 150>><<npcincr Robin love 1>><<npcincr Robin lust 1>><<garousal>><<glove>><<glust>>
 				<<else>>
-					"By telling _character2Name how much <<pshe>> loves <<him>> of course," 
-					you say matter of factly. "<<pShe>>'d tell <<him>> about all the things <<he>> does that make 
+					"By telling _character2Name how much <<pshe>> loves <<him>> of course,"
+					you say matter of factly. "<<pShe>>'d tell <<him>> about all the things <<he>> does that make
 					<<pher>> heart ache."
 					<br><br>
 
 					Robin is tearing up as <<he>> hugs you tightly. "That... that would definitely beat <<him>>." After a long tender moment in each other's arms you break the hug.
-					<<npcincr Robin love 1>><<npcincr Robin trauma -2>><<glove>><<ltrauma>>
+					<<npcincr Robin love 1>><<npcincr Robin trauma -2>><<glove>><<lrtrauma>>
 				<</if>>
 			<<else>>
-				Robin smiles, "How can _character1Name beat <<his>> 
+				Robin smiles, "How can _character1Name beat <<his>>
 				<<print either ("flight", "overwhelming cuteness", "really big lasers", "sharp feathers", "power of friendship")>>?"
 				<br><br>
 
@@ -391,7 +391,7 @@
 					<br><br>
 
 					Robin gives you a gentle kiss on the cheek. "I think they already have."
-					<<npcincr Robin love 1>><<npcincr Robin trauma -2>><<glove>><<ltrauma>>
+					<<npcincr Robin love 1>><<npcincr Robin trauma -2>><<glove>><<lrtrauma>>
 				<<elseif $submissive lte 850>>
 					kiss <<him>> on the lips briefly. "By taking care of <<him>> and making sure nobody hurts <<him>>."
 					<<takeKissVirginity "Robin" _kissType>>
@@ -401,9 +401,9 @@
 					<br><br>
 
 					"I'm talking about you," you say before hugging <<him>> deeply for a long minute.
-					<<npcincr Robin love 1>><<npcincr Robin trauma -2>><<glove>><<ltrauma>>
+					<<npcincr Robin love 1>><<npcincr Robin trauma -2>><<glove>><<lrtrauma>>
 				<<else>>
-					hug <<him>> tightly before whispering softly into <<his>> ear, "_character1Name would tell <<him>> that the 
+					hug <<him>> tightly before whispering softly into <<his>> ear, "_character1Name would tell <<him>> that the
 					years they've spent together have made <<phim>> as happy as can be."
 					<br><br>
 
@@ -433,11 +433,11 @@
 			<<else>>
 				<<print either ("My new favourite game's supposed to update-", "Somebody offered to take care of my chor-", "I got up early to make lunch for every-")>>
 			<</if>>
-			wait, d-did you just say <<print (_petname)>>?" Robin's face goes pure red. "I thought only people who were dating did that." <<He>> looks away, 
-			<<his>> voice quieter than usual. 
+			wait, d-did you just say <<print (_petname)>>?" Robin's face goes pure red. "I thought only people who were dating did that." <<He>> looks away,
+			<<his>> voice quieter than usual.
 			<<if _robin.lovestage gte 4>>
 				<<if _robin.dom gte 40>>
-					"Maybe I should say you're <<print (_petname)>> too, to make it even." <<He>> turns back to you in an attempts to recover, 
+					"Maybe I should say you're <<print (_petname)>> too, to make it even." <<He>> turns back to you in an attempts to recover,
 					<<his>> face still red.
 				<<else>>
 					"B-but it does make me feel nice that you'd use that word for me." <<His>> voice is barely a whisper, and you strain to hear <<him>>.
@@ -459,16 +459,16 @@
 				<<else>>
 					<<print either ("My favourite game's supposed to update-", "Somebody offered to take care of my chor-", "I got up early to make lunch for every-")>>
 				<</if>>
-				wait <<print (_petname)>>?" Robin flushes at your pet name for <<him>>. "That'll take some more getting used to." <<He>> blushes but smiles 
+				wait <<print (_petname)>>?" Robin flushes at your pet name for <<him>>. "That'll take some more getting used to." <<He>> blushes but smiles
 				warmly at you.
 			<<else>>
 				"Great! How was yours, Sweetie?" <<He>> smiles, pleased with <<himself>>. "Knew I'd get used to it eventually."
 			<</if>>
-			<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<ltrauma>>
+			<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<lrtrauma>>
 		<</if>>
 	<<case 9>>
 		<<set _uniqueoptions to false>>
-		Your eyes linger towards Robin's lips. 
+		Your eyes linger towards Robin's lips.
 		<<if $submissive gte 1150>>
 			"You have something right here," you say quietly before wiping your mouth.
 		<<elseif $submissive lte 850>>
@@ -508,7 +508,7 @@
 					<<set _uniqueoptions to true>>
 					<<He>> smiles until <<he>> processes what you said. "Wait, what?" <<He>> covers <<his>> face with <<his>> hands.
 					<<promiscuity1>>
-					
+
 					<<link [[Relent|Robin Flirt Room Relent]]>><<npcincr Robin love 1>><</link>><<glove>>
 					<br>
 					<<link [[Keep Teasing|Robin Flirt Room Tease]]>><<npcincr Robin dom -1>><<npcincr Robin love -1>><</link>><<llove>><<ldom>>
@@ -532,7 +532,7 @@
 
 					Robin takes this opportunity to lean in for a quick kiss. "That's for tricking me," <<he>> says while smiling.
 				<<elseif $submissive lte 850>>
-					"You did. Actually I think you might still have some," you say, going for a repeat performance but <<he>> moves to stop you.
+					"There was. Actually I think you might still have some," you say, going for a repeat performance but <<he>> moves to stop you.
 					<br><br>
 
 					"Nice try," Robin says, smiling before moving in to kiss you.
@@ -553,11 +553,11 @@
 					You hum in response and you both move closer to each other. You wrap your arms around <<his>> shoulders and pull <<him>> into a deep kiss.
 				<</if>>
 				<<takeKissVirginity "Robin" _kissType>>
-				<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<ltrauma>>
+				<<npcincr Robin love 1>><<npcincr Robin trauma -1>><<glove>><<lrtrauma>>
 			<</if>>
 		<</if>>
 <</switch>>
-<!-- Promiscuity1 already has a double br inside it.  -->
+<!-- Promiscuity1 already has a double br inside it. -->
 <<if !_uniqueoptions>>
 	<br>
 	<<promiscuity1>>
@@ -579,7 +579,7 @@ Robin hugs you. "No, it's alright. Thanks for caring about me enough to check th
 You make a kissing sound with your lips, causing <<him>> to get even more embarassed.
 <br><br>
 
-"Please stop rubbing it in," <<he>> whines. You eventually relent when you see <<his>> embarassment has turned to sulking. 
+"Please stop rubbing it in," <<he>> whines. You eventually relent when you see <<his>> embarrassment has turned to sulking.
 "You can be really mean sometimes," <<he>> says.
 <br><br>
 
diff --git a/game/overworld-town/special-robin/halloween.twee b/game/overworld-town/special-robin/halloween.twee
index b8160b841416dea9fb4029977fdc6c8a03aefecd..aa8d9f21ad66a4896220aeb1f435ef5f8b33979e 100644
--- a/game/overworld-town/special-robin/halloween.twee
+++ b/game/overworld-town/special-robin/halloween.twee
@@ -2,7 +2,7 @@
 
 <<set $outside to 0>><<set $location to "home">><<effects>>
 <<npc Robin>><<person1>>
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<set _robin to statusCheck("Robin")>>
 <<if $halloween_robin_costume is "witch">>
 	You approach Robin. <<He>> peeks at you beneath the witch hat.
 <<elseif $halloween_robin_costume is "vampire">>
@@ -366,7 +366,7 @@ Robin stares at <<his>> feet, too embarrassed to say anything.
 <br><br>
 
 <<if $promiscuity gte 35 and $robinromance is 1>>
-<<link [[Propose threesome|Robin Trick Threesome]]>><</link>><<promiscuous3>>
+<<link [[Propose threesome|Robin Trick Threesome]]>><<npcincr Robin trauma 1>><</link>><<promiscuous3>><<grtrauma>>
 <br>
 <</if>>
 <<link [[Pull Robin away|Robin Trick Pull]]>><<npcincr Robin love 1>><</link>><<glove>>
@@ -375,7 +375,7 @@ Robin stares at <<his>> feet, too embarrassed to say anything.
 <<link [[Slap|Robin Trick Slap]]>><<npcincr Robin dom -1>><<npcincr Robin love 1>><</link>><<ldom>>
 <br>
 <</if>>
-<<link [[Ignore|Robin Trick Ignore]]>><</link>>
+<<link [[Ignore|Robin Trick Ignore]]>><<npcincr Robin trauma 3>><</link>><<grtrauma>>
 <br>
 
 :: Robin Trick Pull
@@ -454,12 +454,17 @@ Robin remains quiet as you move to the next house, but stays close to you. You h
 
 :: Robin Trick Threesome
 <<set $outside to 0>><<set $location to "town">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
-<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 20>>
+<<if _robin.dom gte 20>>
 	You walk up to Robin and the <<person2>><<person>>. "Why don't the three of us find somewhere private?" you ask. "The orphans will be okay for a few minutes."
 	<<promiscuity3>>
-
-	The <<person>> looks eager, but Robin keeps <<person1>><<his>> eyes locked on <<his>> feet <span class="red">and shakes <<his>> head.</span> "I don't want to."
+	The <<person>> looks eager, but Robin keeps <<person1>><<his>> eyes locked on <<his>> feet <span class="red">and shakes <<his>> head.</span>
+	<<if _robin.trauma gte 30>>
+		"No... I won't." You can see tears starting to build in <<his>> eyes, but <<he>> stands firm.
+	<<else>>
+		"I don't want to."
+	<</if>>
 	<br><br>
 
 	You take Robin's hand and try to pull <<him>> away. The <<person2>><<person>> grasps <<person1>><<his>> other arm and tugs. "Mine," the <<person2>><<person>> growls. "Fuck off."
@@ -486,6 +491,9 @@ Robin remains quiet as you move to the next house, but stays close to you. You h
 	<<if $seductionrating gte $seductionrequired>>
 
 	"Sure," the <<person>> says. Robin keeps <<person1>><<his>> eyes locked on <<his>> feet, <span class="green">but nods.</span>
+	<<if _robin.trauma gte 30>>
+		You can see tears building in <<his>> eyes.
+	<</if>>
 	<br><br>
 
 	You tell the orphans you won't be long, before being led into the house. You pass a noisy room. It sounds like there's a party inside. You enter a ground-level bedroom, and the <<person2>><<person>> closes the door behind you.
@@ -611,7 +619,7 @@ You return to the orphanage, bags full of sweets.
 You walk with Robin to <<his>> room. <<if $halloween_robin_costume is "ghost">><<He>> pulls the sheet off <<his>> head.<<else>><<Hes>> still dressed as a $halloween_robin_costume.<</if>> <<He>> looks tired, but smiles at you. "Thank you for coming," <<he>> says. "It made the orphans easier to manage."
 <br><br>
 
-<<link [[Hug (0:05)|Robin Trick Hug]]>><<npcincr Robin love 1>><<pass 5>><</link>><<glove>>
+<<link [[Hug (0:05)|Robin Trick Hug]]>><<npcincr Robin love 1>><<npcincr Robin trauma -2>><<pass 5>><</link>><<glove>><<lrtrauma>>
 <br>
 <<if $robinromance is 1>>
 <<link [[Kiss|Robin Trick Kiss]]>><<set $sexstart to 1>><<npcincr Robin love 1>><</link>><<promiscuous1>><<glove>>
@@ -687,7 +695,6 @@ You climb atop Robin, pushing <<him>> down onto the bed. <<He>> gasps as your li
 
 Robin clings to you. "I'm so lucky to have you," <<he>> says, burying <<his>> face in your neck.
 <<promiscuity1>>
-<br><br>
 
 <<clotheson>>
 <<endcombat>>
diff --git a/game/overworld-town/special-robin/lemonade.twee b/game/overworld-town/special-robin/lemonade.twee
index 2a5ebcbc13d910408c967fb158c41bef07d3c632..40ae4eb6c9bded866bf561520e540ab76849e685 100644
--- a/game/overworld-town/special-robin/lemonade.twee
+++ b/game/overworld-town/special-robin/lemonade.twee
@@ -1,7 +1,7 @@
 :: Robin's Lemonade
 
 <<location "beach">><<effects>>
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if $robinlemonadeintro isnot 1>><<set $robinlemonadeintro to 1>>
 	<<npc Robin>><<person1>>You see Robin stood behind <<his>> lemonade stand. <<He>> waves when <<he>> sees you.
@@ -9,9 +9,14 @@
 
 	"Hey," <<he>> says as you draw close. <<He>> beams. "It's nice to see you. I want you to try my lemonade." <<He>> mixes together water, lemon juice and sugar and hands you the glass. "On the house." It's very sweet.
 	<br><br>
-
 	<<else>>
-	<<npc Robin>><<person1>>You see Robin stood behind <<his>> lemonade stand. <<He>> waves when <<he>> sees you.
+	<<npc Robin>><<person1>>
+	<<if _robin.trauma gte 40>>
+		You see Robin stood behind <<his>> lemonade stand. <<He>> flinches whenever somebody passes <<him>>.
+		When <<he>> sees you, <<he>> gives a timid wave.
+	<<else>>
+		You see Robin stood behind <<his>> lemonade stand. <<He>> waves when <<he>> sees you.
+	<</if>>
 	<<if _robin.crossdressing is 2>>
 		<<if _robin.pronoun is "f">>
 			<<if _robin.breastsize gte 9>> /* massive, huge, gigantic, enormous */
@@ -22,7 +27,7 @@
 				but you can see the swell of <<his>> breasts when you look for it.
 			<<elseif _robin.breastsize gte 3>> /* small, pert, modest */
 				Robin's normally <<breastsizedesc _robin.breastsize>> breasts are nearly undetectable under <<his>> chest binding.
-			<<elseif _robin.breastsize gte 1>> /* budding, tiny */
+			<<elseif _robin.breastsize gte 0>> /* budding, tiny */
 				Robin's normally <<breastsizedesc _robin.breastsize>> breasts are completely undetectable under <<his>> chest binding.
 			<</if>>
 			<<He>> looks happy though.
@@ -34,7 +39,7 @@
 
 <</if>>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><<endevent>><</link>>
 <br>
@@ -43,37 +48,53 @@
 
 <<location "beach">><<effects>>
 <<npc Robin>><<person1>>
+<<set _robin to statusCheck("Robin")>>
+
 <<if $leftarm is "bound" or $rightarm is "bound">>
 	<<He>> looks at your arms. "Oh. You can't help like that. Here." <<He>> walks behind you, and undoes your bindings with deft hands.<<unbind>>
 	<br><br>
 <</if>>
 <<if $hour gte 17>>
-	"I'd like help carrying my stuff home," Robin says. "People don't buy much lemonade once it's this late."
+	<<if _robin.trauma gte 40>>
+		"Hey, do you think you can walk me home?" Robin says, shivering. "I don't think I can handle any more of this."
+	<<else>>
+		"I'd like help carrying my stuff home," Robin says. "People don't buy much lemonade once it's this late."
+	<</if>>
 	<br><br>
+
 	You walk with Robin back to the orphanage.
 	<br><br>
+
 	<<if $arousal gte $arousalmax>>
 		You're almost back when your body finally betrays you.
 		<<orgasm>>
 		Robin politely looks away, but can't help but be affected.<<npcincr Robin lust 1>>
 		<br>
 	<</if>>
-
 	<<endevent>>
 	<<link [[Next|Orphanage]]>><</link>>
 	<br>
 <<else>>
-	<<He>> smiles.
+	<<He>> smiles<<if _robin.trauma gte 40>> weakly<</if>>.
 	<<if $rng gte 81 and $cow gte 6 and $livestock_intro isnot undefined>>
-		"I have everything I need. You're welcome to stay though. I would like the company."
+		<<if _robin.trauma gte 40>>
+			"I think I'm okay right now, but could you please stay with me?" Robin asks you as <<he>> fidgets.
+		<<else>>
+			"I have everything I need. You're welcome to stay though. I would like the company."
+		<</if>>
 		<br><br>
 		You keep Robin company while <<he>> runs the stand, and chat with <<him>> while there are no customers.
 		<<npcincr Robin love 1>><<glove>><<ltrauma>><<lstress>><<trauma -3>><<stress -6>>
 		<br><br>
 
-		<<if $NPCName[$NPCNameList.indexOf("Robin")].dom gte 60>>
+		<<if _robin.dom gte 60>>
 			<<generate2>><<person2>>
-			A <<person>> approaches the stand. "Welcome," Robin says. "One pound for fresh lemonade."
+			A <<person>> approaches the stand.
+			<<if _robin.trauma gte 40>>
+				"Hi," Robin says, looking down. "O-one pound for lemonade if that's okay."
+			<<else>>
+				"Welcome," Robin says. "One pound for fresh lemonade."
+			<</if>>
 			<br><br>
 			"Sure, sweetie," the <<person>> says before turning to you. They sprout a lecherous, crooked smile. "I remember you. From the farm. Why don't you come with me? I'll bring you home." They hold their hand out.
 			<br><br>
@@ -84,7 +105,12 @@
 
 		<<else>>
 			<<generate2>><<person2>>
-			A <<person>> approaches the stand. "Welcome," Robin says. "One pound for fresh lemonade."
+			A <<person>> approaches the stand.
+			<<if _robin.trauma gte 40>>
+				"Hi," Robin says, looking down. "O-one pound for lemonade if that's okay."
+			<<else>>
+				"Welcome," Robin says. "One pound for fresh lemonade."
+			<</if>>
 			<br><br>
 			"Sure, sweetie," the <<person>> says before turning to you. They sprout a lecherous, crooked smile. "I remember you. From the farm. Why don't you come with me? I'll bring you home." They hold their hand out.
 			<br><br>
@@ -96,7 +122,7 @@
 			<br><br>
 
 			<<endevent>>
-			<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+			<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 			<br>
 			<<link [[Leave|Beach]]>><</link>>
 			<br>
@@ -104,7 +130,12 @@
 	<<elseif $rng gte 61>>
 		<<if $robinsignintro isnot 1>>
 			<<set $robinsignintro to 1>>
-			<<He>> crouches behind the stand, and emerges holding a sign. It has "Robin's Lemonade" written on it, with directions beneath. "Could you walk across the beach carrying this? More customers would help a lot."
+			<<He>> crouches behind the stand, and emerges holding a sign. It has "Robin's Lemonade" written on it, with directions beneath.
+			<<if _robin.trauma gte 40>>
+				"Hey... can you hold this sign and walk around a bit? Just to help get some more customers."
+			<<else>>
+				"Could you walk across the beach carrying this? More customers would help a lot."
+			<</if>>
 			<br><br>
 		<<else>>
 			"Could you advertise my stand again? It really helped last time."
@@ -122,25 +153,47 @@
 			<br>
 		<</if>>
 	<<elseif $rng gte 21>>
-		"I need more water. I go through it so quickly. I don't like asking because it's heavy, but could you buy some more? You'll need to go to the High Street to find it cheap. They charge too much nearby." <<He>> hands you £2. "That's enough for a large bottle."
+		<<if _robin.trauma gte 40>>
+			"I'm out of water. I don't want to be alone but could you buy some more?" Robin says nervously. "There's some on High Street that's cheap, but there's some nearby and I don't want you to be away very long..."
+			<<He>> places <<his>> hand in yours, giving you £20. <<His>> hand lingers longer than necessary. "Please, hurry back."
+			<<set _extramoney to true>>
+		<<else>>
+			"I need more water. I go through it so quickly. I don't like asking because it's heavy, but could you buy some more? You'll need to go to the High Street to find it cheap. They charge too much nearby." <<He>> hands you £2. "That's enough for a large bottle."
+		<</if>>
 		<br><br>
-		As you leave the beach you see a shop selling large bottles of water. Robin was right, it's expensive here. It would be much harder to carry the water all the way from the High Street though.
+		<<if _robin.trauma gte 40>>
+			As you leave the beach you see a shop selling large bottles of water. Robin's money is just enough to cover four. You could get some from High Street, but you worry about leaving Robin alone for too long.
+		<<else>>
+			As you leave the beach you see a shop selling large bottles of water. Robin was right, it's expensive here. It would be much harder to carry the water all the way from the High Street though.
+		<</if>>
 		<br><br>
 		<<link [[Go to the High Street|Robin's Lemonade High]]>><</link>>
 		<br>
 		<<if $money gte 2000>>
-			<<link [[Buy water with your own money (£20)|Robin's Lemonade Buy]]>><<set $money -= 2000>><</link>>
+			<<link [[Buy water with your own money (£20)|Robin's Lemonade Buy]]>><<set $phase to 0>><<set $money -= 2000>><</link>>
+			<br>
+		<</if>>
+		<<if _extramoney>>
+			<<link [[Buy water with Robin's money|Robin's Lemonade Buy]]>><<set $phase to 1>><</link>>
 			<br>
 		<</if>>
 		<<set $skulduggerydifficulty to 200>>
 		<<link [[Steal the water|Robin's Lemonade Steal]]>><<crimeup 20>><</link>><<skulduggerydifficulty>><<crime>>
 		<br>
 		<<if $promiscuity gte 15>>
-			<<link [[Flirt for cheaper water|Robin's Lemonade Seduction]]>><</link>><<promiscuous2>>
+			<<if _extramoney>>
+				<<link [[Flirt for cheaper water|Robin's Lemonade Seduction]]>><<set $phase to 1>><</link>><<promiscuous2>>
+			<<else>>
+				<<link [[Flirt for cheaper water|Robin's Lemonade Seduction]]>><<set $phase to 0>><</link>><<promiscuous2>>
+			<</if>>
 			<br>
 		<</if>>
 	<<else>>
-		"I have everything I need. You're welcome to stay though. I would like the company."
+		<<if _robin.trauma gte 40>>
+			"I think I'm okay right now, but could you please stay with me?" Robin asks you as <<he>> fidgets.
+		<<else>>
+			"I have everything I need. You're welcome to stay though. I would like the company."
+		<</if>>
 		<br><br>
 		You keep Robin company while <<he>> runs the stand, and chat with <<him>> while there are no customers.
 		<<npcincr Robin love 1>><<glove>><<ltrauma>><<lstress>><<trauma -3>><<stress -6>>
@@ -148,7 +201,12 @@
 		<<set $danger to random(1, 10000)>><<set $dangerevent to 0>>
 		<<if $danger gte (9900 - $allure) and $robinbeachpolice isnot 1>>
 			<<set $robinbeachpolice to 1>>
-			<<endevent>><<generatePolice 1>><<generatePolice 2>><<person1>>A <<person>> and <<person2>><<person>>, both dressed in police uniforms, approach the stand. "Welcome," Robin begins. "One pound for fresh-"
+			<<endevent>><<generatePolice 1>><<generatePolice 2>>A <<fullGroup>>, both dressed in police uniforms, approach the stand.
+			<<if _robin.trauma gte 40>>
+				Robin looks intimidated by them, "O-one pound fo-"
+			<<else>>
+				"Welcome," Robin begins. "One pound for fresh-"
+			<</if>>
 			<br><br>
 			"Shush," <<person1>>the <<person>> interrupts. "We're here to see your permit."
 			<br><br>
@@ -156,7 +214,7 @@
 			<br><br>
 			"That's right. Don't tell me you don't have one?"
 			<br><br>
-			"I don't think the kid has one," the <<person2>><<person>> says. "That's twenty years in prison, easy." The colour drains from Robin's face.
+			"I don't think <<nnpc_he "Robin">> has one," the <<person2>><<person>> says. "That's twenty years in prison, easy." The colour drains from Robin's face.
 			<br><br>
 			"Yeah," the <<person1>><<person>> says. "Or we can fine you £100. Up to you."
 			<br><br>
@@ -187,7 +245,7 @@
 			<</if>>
 			<br>
 			<<endevent>>
-			<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+			<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 			<br>
 			<<link [[Leave|Beach]]>><</link>>
 			<br>
@@ -199,17 +257,40 @@
 
 <<location "beach">><<effects>>
 <<generate2>><<person2>>
+<<set _robin to statusCheck("Robin")>>
+
 You walk to the other end of the populated part of the beach, and then back to Robin. <<person1>><<Hes>> servicing a <<person2>><<person>>.
 <br><br>
-"That'll be one pound please."
-<br><br>
-"Thanks," the <<person>> says. "You interested in making a little extra? I know a quiet place we could go."
-<br><br>
-Robin looks confused. "But I need my stand in a busy place so people can see it. Thanks for trying to help though."
-<br><br>
-"No," the <<person>> says. "You know what, forget it."
-<br><br>
-Robin notices you as the <<person>> leaves.<<person1>> "Business has improved a lot," <<he>> says. "Thank you."
+<<if _robin.trauma gte 40>>
+	"One pound please, if that's ok."
+	<br><br>
+
+	"Here," the <<person>> says. "You interested in making a little extra? I love the shy ones."
+	<br><br>
+
+	Robin's eyes go wide. "No! No, I-I'm alright." <<person1>><<He>> takes a deep breath and tries to hand the <<person2>><<person>> <<his>> lemonade, but
+	<<person1>><<his>> shaking hands slip. Lemonade spills all over the table and on the <<person2>><<personsimple>>'s shoes.
+	<br><br>
+
+	"Hey! Watch it, brat!" the <<person2>><<person>> fumes. Robin flinches and holds <<person1>><<his>> hands over <<his>> face.
+	<br><br>
+
+	Robin notices you as the <<person2>><<person>> storms off. <<person1>><<He>> sniffles but tries to smile at you. "Thanks for helping."
+<<else>>
+	"That'll be one pound please."
+	<br><br>
+
+	"Thanks," the <<person>> says. "You interested in making a little extra? I know a quiet place we could go."
+	<br><br>
+
+	Robin looks confused. "But I need my stand in a busy place so people can see it. Thanks for trying to help though."
+	<br><br>
+
+	"No," the <<person>> says. "You know what, forget it."
+	<br><br>
+
+	Robin notices you as the <<person>> leaves.<<person1>> "Business has improved a lot," <<he>> says. "Thank you."
+<</if>>
 <br><br>
 <<if $arousal gte $arousalmax>>
 	You try to reply, but you can't concentrate.
@@ -218,21 +299,22 @@ Robin notices you as the <<person>> leaves.<<person1>> "Business has improved a
 	<br><br>
 <</if>>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
 
 :: Robin's Lemonade Flirt
-
 <<location "beach">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+<!-- I feel like this can be turned into a function -->
 <<set $seductiondifficulty to 4000>>
 <<seductioncheck>>
 <br><br>
 <<if $seductionskill lt 1000>><span class="gold">You feel more confident in your powers of seduction.</span><</if>><<seductionskilluse>>
 <br><br>
 <<promiscuity2>>
-<br><br>
+
 <<if $seductionrating gte $seductionrequired>>
 	You decide to be more assertive, flirting with potential customers and disarming them with charm. When you return to Robin there's a queue. <<He>> smiles at you.
 	<br><br>
@@ -240,7 +322,7 @@ Robin notices you as the <<person>> leaves.<<person1>> "Business has improved a
 	<<glove>><<npcincr Robin love 1>><<ltrauma>><<lstress>><<trauma -3>><<stress -6>><<set $robinmoney += 5>>
 	<br><br>
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Beach]]>><</link>>
 	<br>
@@ -248,18 +330,39 @@ Robin notices you as the <<person>> leaves.<<person1>> "Business has improved a
 	<<generate2>><<person2>>
 	You turn on the charm, but still can't get anyone interested. You return to Robin. <<person1>><<Hes>> servicing a <<person2>><<person>>.
 	<br><br>
-	"That'll be one pound please."
-	<br><br>
-	"Thanks," the <<person>> says. "You interested in making a little extra? I know a quiet place we could go."
-	<br><br>
-	Robin looks confused. "But I need my stand in a busy place so people can see it. Thanks for trying to help though."
-	<br><br>
-	"That's not what I-," the <<person>> says. "You know what, forget it."
-	<br><br>
-	Robin notices you as the <<person>> leaves.<<person1>>"Business has improved a lot," <<he>> says. "Thank you."
+		<<if _robin.trauma gte 40>>
+		"One pound please, if that's ok."
+		<br><br>
+
+		"Here," the <<person>> says. "You interested in making a little extra? I love the shy ones."
+		<br><br>
+
+		Robin's eyes go wide. "No! No, I-I'm alright." <<person1>><<He>> takes a deep breath and tries to hand the <<person2>><<person>> <<his>> lemonade, but
+		<<person1>><<his>> shaking hands slip. Lemonade spills all over the table and on the <<person2>><<personsimple>>'s shoes.
+		<br><br>
+
+		"Hey! Watch it, brat!" the <<person2>><<person>> fumes. Robin flinches and holds <<person1>><<his>> hands over <<his>> face.
+		<br><br>
+
+		Robin notices you as the <<person2>><<person>> storms off. <<person1>><<He>> sniffles but tries to smile at you. "Thanks for helping."
+	<<else>>
+		"That'll be one pound please."
+		<br><br>
+
+		"Thanks," the <<person>> says. "You interested in making a little extra? I know a quiet place we could go."
+		<br><br>
+
+		Robin looks confused. "But I need my stand in a busy place so people can see it. Thanks for trying to help though."
+		<br><br>
+
+		"No," the <<person>> says. "You know what, forget it."
+		<br><br>
+
+		Robin notices you as the <<person>> leaves.<<person1>> "Business has improved a lot," <<he>> says. "Thank you."
+	<</if>>
 	<br><br>
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Beach]]>><</link>>
 	<br>
@@ -268,17 +371,28 @@ Robin notices you as the <<person>> leaves.<<person1>> "Business has improved a
 :: Robin's Lemonade High
 
 <<location "beach">><<effects>>
-You walk to the High Street and buy a large bottle of water. You return to the beach. Robin waves at you. "Thank you. I'd need to close the stand if not for you." <<He>> hugs you.
-<br>
+<<set _robin to statusCheck("Robin")>>
+
+You walk to the High Street and buy a large bottle of water. You return to the beach.
+<<if _robin.trauma gte 40>>
+	Robin waves you over. <<He>>'s shaking. "I was so worried that something happened to you!" <<He>> hugs you tightly. <<npcincr Robin trauma 1>><<grtrauma>>
+<<else>>
+	Robin waves at you. "Thank you. I'd need to close the stand if not for you." <<He>> hugs you.
+<</if>>
+<br><br>
 <<if $arousal gte $arousalmax>>
 	The hug pushed your aroused body over the edge.
 	<<orgasm>>
 	Robin releases you in surprise, and can't help but be affected.<<npcincr Robin lust 1>>
-	<br>
+	<br><br>
+<</if>>
+<<if _robin.trauma gte 40>>
+	You quietly put Robin's change back on <<his>> table.
+	<<set $robinmoney += 2>>
+	<br><br>
 <</if>>
-<br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
@@ -286,20 +400,35 @@ You walk to the High Street and buy a large bottle of water. You return to the b
 :: Robin's Lemonade Buy
 
 <<location "beach">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
-You buy four large bottles of water and haul them back to Robin. Their weight makes it slow going as you need to take frequent breaks, but it's not too far. Robin rushes over to help when <<he>> sees you. "How did you-" <<he>> pauses. "You can't have carried these all that way."
-<br><br>
+You buy four large bottles of water and haul them back to Robin. Their weight makes it slow going as you need to take frequent breaks, but it's not too far. Robin rushes over to help when <<he>> sees you.
+<<if _robin.trauma gte 40>>
+	"Thank you so much! I'm glad you weren't gone that long, I was starting to get worried." Robin looks like a load has been taken off <<his>> back.
+	When you get back to <<his>> stand <<he>> hugs you tightly.
+	<<if $phase is 0>>
+		<br><br>
 
-"I found it discounted at a closer shop," you say.
-<br><br>
+		You quietly leave the £20 <<he>> gave you on the stand.
+		<<set $robinmoney += 2>>
+	<<else>>
+		<<set $robinmoney -= 2>>
+	<</if>>
+<<else>>
+	"How did you-" <<he>> pauses. "You can't have carried these all that way."
+	<br><br>
+
+	"I found it discounted at a closer shop," you say.
+	<br><br>
 
-"You're so good with money. Thank you." You quietly leave the £2 <<he>> gave you on the stand.
+	"You're so good with money. Thank you." You quietly leave the £2 <<he>> gave you on the stand.
+<</if>>
 <<npcincr Robin love 1>><<glove>>
 <br><br>
 
 <<endevent>>
 
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
@@ -308,17 +437,26 @@ You buy four large bottles of water and haul them back to Robin. Their weight ma
 
 <<location "beach">><<effects>>
 <<endevent>><<generate1>><<person1>>
+<<set _robin to statusCheck("Robin")>>
 <<skulduggerycheck>>
+
 <<if $skulduggerysuccess is 1>>
 	You enter the shop and start loading up a trolley with large bottles of water. Once done, you pretend to browse and wait. A talkative customer strikes up a conversation with the <<person>> behind the counter, giving you your chance. You push the trolley from the shop.
 	<br><br>
 	<<endevent>><<npc Robin>><<person1>>
-	You keep pushing it all the way back to Robin. <<His>> eyes widen when <<he>> sees you. "I've never thought of that," <<he>> says. "You're so clever." You quietly leave the £2 <<he>> gave you on the counter.
+	You keep pushing it all the way back to Robin. <<His>> eyes widen when <<he>> sees you.
+	<<if _robin.trauma gte 40>>
+		"Thank you so much! I'm glad you weren't gone that long, I was starting to get worried." Robin looks like a load has been taken off <<his>> back.
+		When you get back to <<his>> stand <<he>> hugs you tightly. You quietly leave the £20 <<he>> gave you on the counter.
+		<<set $robinmoney += 2>>
+	<<else>>
+		"I've never thought of that," <<he>> says. "You're so clever." You quietly leave the £2 <<he>> gave you on the counter.
+	<</if>>
 	<<npcincr Robin love 1>><<glove>>
 	<br><br>
 	<<skulduggeryuse>>
 	<<endevent>>
-	<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+	<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 	<br>
 	<<link [[Leave|Beach]]>><</link>>
 	<br>
@@ -342,7 +480,7 @@ You buy four large bottles of water and haul them back to Robin. Their weight ma
 <<if $seductionskill lt 1000>><span class="gold">You feel more confident in your powers of seduction.</span><</if>><<seductionskilluse>>
 <br><br>
 <<promiscuity2>>
-<br><br>
+
 <<if $seductionrating gte $seductionrequired>>
 	You lean on the counter in a nearby shop. A <<person>> stands behind it. You look <<him>> in the eyes and smile playfully. "I'm really thirsty," you say. "I need several large bottles of water, but I have no money." You lower your voice. "Maybe there's some other way I can pay?"
 	<br><br>
@@ -362,6 +500,10 @@ You buy four large bottles of water and haul them back to Robin. Their weight ma
 		<<link [[Buy water with your own money (£20)|Robin's Lemonade Buy]]>><<set $money -= 2000>><</link>>
 		<br>
 	<</if>>
+	<<if $phase is 1>>
+		<<link [[Buy water with Robin's money|Robin's Lemonade Buy]]>><<set $phase to 1>><</link>>
+		<br>
+	<</if>>
 <</if>>
 
 :: Robin's Lemonade Steal Molestation
@@ -402,6 +544,8 @@ You buy four large bottles of water and haul them back to Robin. Their weight ma
 :: Robin's Lemonade Steal Molestation Finish
 
 <<location "beach">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 	"You can have the water," <<he>> says. "Fair price for a whore."
@@ -420,20 +564,30 @@ You buy four large bottles of water and haul them back to Robin. Their weight ma
 <<clothesontowel>>
 <<endcombat>>
 <<npc Robin>><<person1>>
-<<tearful>> you walk back to Robin, who rushes over to help when <<he>> sees you. "How did you-" <<he>> pauses. "You can't have carried these all that way."
+<<tearful>> you walk back to Robin, who rushes over to help when <<he>> sees you.
+<<if _robin.trauma gte 40>>
+	"Thank you so much! I'm glad you weren't gone that long, I was starting to get worried." Robin looks like a load has been taken off <<his>> back.
+<<else>>
+	"How did you-" <<he>> pauses. "You can't have carried these all that way."
+<</if>>
 <br><br>
 <<if $pain gte 40>>
 	<<He>> sees your tears. "What's wrong?" <<he>> asks, putting <<his>> arms around you. You sob into <<his>> shoulder and feel a little better.
+	<<npcincr Robin dom 1>><<gdom>>
 	<<lpain>><<set $pain -= 20>>
 	<br><br>
 <</if>>
-"I found it discounted at a closer shop," you say.
-<br><br>
-"You're so good with money. Thank you." You quietly leave the £2 <<he>> gave you on the stand.
+<<if _robin.trauma gte 40>>
+	You quietly leave the £20 <<he>> gave you on the stand.
+<<else>>
+	"I found it discounted at a closer shop," you say.
+	<br><br>
+	"You're so good with money. Thank you." You quietly leave the £2 <<he>> gave you on the stand.
+<</if>>
 <<npcincr Robin love 1>><<glove>>
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
@@ -445,9 +599,10 @@ You buy four large bottles of water and haul them back to Robin. Their weight ma
 You put your arm around Robin's shoulders, which steadies <<him>> a bit. The crooked police take the money and leave.
 <br><br>
 Once they're gone, Robin bursts into tears and buries <<his>> head in your shoulder. "W-what am I going to do?" <<he>> sobs. You hold <<him>> tight until <<he>> calms down. "Th-thank you."
+<<npcincr Robin trauma 3>><<grtrauma>>
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
@@ -460,8 +615,9 @@ Once they're gone, Robin bursts into tears and buries <<his>> head in your shoul
 <br><br>
 Once they're gone, Robin bursts into tears and buries <<his>> head in your shoulder. "I-I," <<he>> sobs. "I was so scared. Thank you." <<He>> calms down a bit as <<he>> puts the money back beneath the stand.
 <br><br>
+<<npcincr Robin trauma -3>><<lrtrauma>>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
@@ -469,12 +625,18 @@ Once they're gone, Robin bursts into tears and buries <<his>> head in your shoul
 :: Robin's Lemonade Offer
 
 <<location "beach">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+
 You gently push Robin to the side and lean forward. "Wouldn't you rather have some fun with me?" you whisper.
 They smile. "Sure," the <<person1>><<person>> says. "That'd work."
 <br><br>
 Robin looks confused. "I'm going to work this out with them," you say. "I'll be back later."
 <br><br>
-Robin hugs you. "Okay. See you soon."
+<<if _robin.dom gte 40>>
+	Robin hugs you tightly. "Be careful, I don't like the look of those guys."
+<<else>>
+	Robin hugs you. "Okay. See you soon."
+<</if>>
 <br><br>
 You walk off the beach with the police. Their car is parked in a nearby alley. "Get in," the <<person2>><<person>> says. You climb in the back seat and <<he>> follows close behind. The <<person1>><<person>> gets in on the other side.
 <br><br>
@@ -496,9 +658,10 @@ The <<person1>><<person>> laughs. "Don't pretend anyone cares." <<He>> looks bac
 <br><br>
 <<endevent>><<npc Robin>><<person1>>
 Robin bursts into tears and buries <<his>> head in your shoulder. "I-I," <<he>> sobs. "I was so scared. Thank you." Once <<he>> calms down a bit as <<he>> puts the money back beneath the stand.
+<<npcincr Robin trauma -3>><<lrtrauma>>
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
@@ -529,6 +692,8 @@ Robin bursts into tears and buries <<his>> head in your shoulder. "I-I," <<he>>
 :: Robin's Lemonade Offer Molestation Finish
 
 <<location "beach">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 	"Cheaper than the brothel," the <<person1>><<person>> says. <<He>> opens the car door. "Go back to your friend."
@@ -545,16 +710,20 @@ Robin bursts into tears and buries <<his>> head in your shoulder. "I-I," <<he>>
 <br><br>
 <<if $pain gte 40>>
 	<<He>> sees your tears and hugs you.
+	<<if _robin.dom gte 60>>
+		"If they hurt you..." <<he>> says.
+	<<else>>
+		"I hope they didn't hurt you," <<he>> says.
+	<</if>>
 <<else>>
-	<<He>> hugs you.
+	<<He>> hugs you. "I hope they didn't hurt you," <<he>> says.
 <</if>>
-"I hope they didn't hurt you," <<he>> says.
 <br><br>
 "N-no," you say. "Everything's fine."
-<<npcincr Robin love 1>><<glove>>
+<<npcincr Robin love 1>><<glove>><<npcincr Robin trauma -3>><<lrtrauma>>
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
@@ -562,10 +731,18 @@ Robin bursts into tears and buries <<his>> head in your shoulder. "I-I," <<he>>
 :: Robin's Lemonade Set
 
 <<location "beach">><<effects>>
-You help Robin carry <<his>> equipment to the beach. "Thank you for the help," <<he>> says. "It's hard carrying it all on my own." <<He>> starts juicing lemons.
+<<set _robin to statusCheck("Robin")>>
+
+You help Robin carry <<his>> equipment to the beach.
+<<if _robin.trauma gte 40>>
+	"Thank you, I don't know what I'd do if you weren't here." <<He>> starts juicing lemons, flinching when other people draw near.
+<<else>>
+	"Thank you for the help," <<he>> says. "It's hard carrying it all on my own." <<He>> starts juicing lemons.
+<</if>>
+
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><<endevent>><</link>>
 <br>
@@ -585,33 +762,62 @@ Robin spots you exiting the alley. "A-Are you okay?" <<he>> asks, with a worried
 You nod, pick up <<his>> dropped equipment and continue to walk to the beach with Robin. The rest of the trip is uneventful.
 <br><br>
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><<endevent>><</link>>
 <br>
 
 :: Robin's Lemonade Cow
 <<effects>>
+<<set _robin to statusCheck("Robin")>>
 
-Before your hand meets the <<persons>>, someone pulls your arm back. Robin pushes you behind <<person1>><<him>>. "I need to ask you to leave," <<He>> says, handing the <<person2>><<person>> <<his>> cup.
-<br><br>
-"Careful, <<nnpc_gendery "Robin">>," the <<person>> says. "Your friend is worth a lot. I'd hate to see you wind up like them."
-<br><br>
-Robin frowns. "I'm asking you to leave one last time before I call the police."
-<br><br>
-The <<person>> laughs and pours the lemonade onto the sand. "Keep the quid. Better keep an eye on your friend." <<He>> leaves.
-<br><br><<person1>>
-You turn to Robin, tilt your head, and give a worried moo.
-<br><br>
-"It's okay," Robin says. "Here." <<He>> squeezes together a mix of lemon juice, water, and sugar before handing it to you.
-<br><br>
-"This should make you feel better." <<Hes>> right.<<gdom>><<npcincr Robin dom 1>><<lstress>><<stress -6>>
+Before your hand meets the <<persons>>, someone pulls your arm back. Robin pushes you behind <<person1>><<him>>.
+<<if _robin.trauma gte 40>>
+	"Y-you're not taking <<phim>>!" <<he>> says, handing the <<person2>><<person>> <<his>> cup with a shaky hand.
+	<br><br>
+
+	"Careful, <<nnpc_gendery "Robin">>," the <<person>> says. "Your friend is worth a lot. I'd hate to see you wind up like them."
+	<br><br>
+
+	Robin flinches, but holds <<person1>><<his>> ground. "Leave before I call the police."
+
+	The <<person>> laughs and pours the lemonade onto the sand. "Keep the quid. Better keep an eye on your friend." <<He>> leaves.
+	<br><br><<person1>>
+
+	You turn to Robin, tilt your head, and give a worried moo.
+	<br><br>
+
+	"Everything's okay," Robin says, taking a deep breath. "Here." <<He>> squeezes together a mix of lemon juice, water, and sugar before handing it to you.
+	<br><br>
+
+	"This should make you feel better." <<Hes>> right.<<gdom>><<npcincr Robin dom 1>><<lstress>><<stress -6>>
+<<else>>
+	"I need to ask you to leave," <<He>> says, handing the <<person2>><<person>> <<his>> cup.
+	<br><br>
+
+	"Careful, <<nnpc_gendery "Robin">>," the <<person>> says. "Your friend is worth a lot. I'd hate to see you wind up like them."
+	<br><br>
+
+	Robin frowns. "I'm asking you to leave one last time before I call the police."
+	<br><br>
+
+	The <<person>> laughs and pours the lemonade onto the sand. "Keep the quid. Better keep an eye on your friend." <<He>> leaves.
+	<br><br><<person1>>
+
+	You turn to Robin, tilt your head, and give a worried moo.
+	<br><br>
+
+	"It's okay," Robin says. "Here." <<He>> squeezes together a mix of lemon juice, water, and sugar before handing it to you.
+	<br><br>
+
+	"This should make you feel better." <<Hes>> right.<<gdom>><<npcincr Robin dom 1>><<lstress>><<stress -6>>
+<</if>>
 <br><br>
 The other customers are less creepy.
 <br><br>
 
 <<endevent>>
-<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<pass 30>><</link>><<glove>>
+<<link [[Offer help (0:30)|Robin's Lemonade Help]]>><<npcincr Robin love 1>><<npcincr Robin trauma -1>><<pass 30>><</link>><<glove>><<lrtrauma>>
 <br>
 <<link [[Leave|Beach]]>><</link>>
 <br>
diff --git a/game/overworld-town/special-robin/main.twee b/game/overworld-town/special-robin/main.twee
index 8a683ecc09948ab878072ed50066efc71987200a..6d26f6dadb3a7513b3f1df1c04cc9a1db90e9b24 100644
--- a/game/overworld-town/special-robin/main.twee
+++ b/game/overworld-town/special-robin/main.twee
@@ -1,10 +1,12 @@
 :: Robin's Room Entrance
 <<set $outside to 0>><<set $location to "home">><<effects>>
-<<run getRobinLocation()>>
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<run statusCheck("Robin")>>
 
 <<if $robindebt gte $robindebtlimit and $robindebtintro isnot 1 and $robinpaid isnot 1>>
-	<<set $robindebtintro to 1>><<set $robindebtevent to 7>><<set $NPCName[$NPCNameList.indexOf("Robin")].trauma to 100>><<set $robin_injured to 1>><<set $robinmissing to 1>><<set $robinconsole to 0>>
+	<<set $robinconsole to 0>>
+	<<set $robineventnote to 1>>
+	<<set $robindebtintro to 1>>
+	<<robinPunishment "docks">>
 	You go to Robin's room. You knock, but there's no response, nor is there a note on the door. You peek inside. There's no one there.
 	<br><br>
 	A <<npc Robin>><<generatec2>><<person2>><<person>> walks by. You grasp <<his>> arm. "Robin always leaves a note," you say. "Has something happened?"
@@ -17,10 +19,14 @@
 	<<endevent>>
 	<<link [[Leave|Orphanage]]>><</link>>
 	<br>
-<<elseif _robin_location is "missing">>
+<<elseif $robinmissing isnot 0>>
 	You go to Robin's room. You knock, but there's no response, nor is there a note on the door. You peek inside. There's no one there.
 	<br><br>
-	<<link [[Leave|Orphanage]]>><</link>>
+	<<if $robinmissing is "pillory" and !$robinPillory.known and $hour gte 7 and $hour lte 15>>
+		<<link [[Leave|Robin Pillory Intro]]>><</link>>
+	<<else>>
+		<<link [[Leave|Orphanage]]>><</link>>
+	<</if>>
 	<br>
 <<elseif $christmas_robin_lewd is 1>>
 	<<unset $christmas_robin_lewd>>
@@ -127,7 +133,7 @@ Robin's eyes light up, and <<he>> rises to <<his>> feet. <<He>> points up. There
 	<<neutral 1>>
 
 	<<maninit>>
-	<<set $enemytrust += 500>><<npcexpose>><<set $speechdisable to 1>>
+	<<set $enemytrust += 500>><<npcexpose>>
 	<<set $enemyarousalmax to 600>>
 
 <</if>>
@@ -357,9 +363,65 @@ The doctor turns away and types something into <<person3>><<his>> computer. Robi
 
 :: Robin Trauma Talk
 <<set $outside to 0>><<set $location to "home">><<effects>>
+<<run statusCheck("Robin")>>
+
+<<switch $robinLastPunishment>>
+	<<case "underground">>
+		<<switch random(1, 3)>>
+			<<case 1>>
+				"What kind of amusement were we being used for?" Robin punches <<his>> bed half-heartedly.
+			<<case 2>>
+				Robin looks up at the light in <<his>> room. "It's amazing how much of a difference it makes," <<he>> says blankly.
+			<<case 3>>
+				Robin lets out a few tears, not wanting to elaborate further.
+		<</switch>>
+	<<case "docks">>
+		<<switch random(1, 3)>>
+			<<case 1>>
+				"What did I do to them for them to beat me like that?" Robin asks, tears in <<his>> eyes. You don't have an answer.
+			<<case 2>>
+				Robin rocks back and forth, occasionally talking about the sounds of the beach and how it's all <<he>> heard in the off hours.
+			<<case 3>>
+				Robin rubs a spot on <<his>> stomach, gritting <<his>> teeth as <<he>> does so. "It's where they liked hitting the most."
+		<</switch>>
+	<<case "landfill">>
+		<<if $robinSeen.includes("robinRape")>>
+			<<switch random(1, 3)>>
+				<<case 1>>
+					"I'm so sorry..." Robin doesn't look you in the eyes.
+				<<case 2>>
+					"I should've stopped myself." Robin tears up as you slowly rub <<his>> back.
+				<<case 3>>
+					"I was on that pole for hours. I tried to escape, but the gas made it so hard..." Robin's voice fades as you softly hold <<him>>.
+			<</switch>>
+		<<else>>
+			"I thought they'd never let me out of that place." Robin shivers.
+		<</if>>
+	<<case "dinner">>
+		<<switch random(1, 3)>>
+			<<case 1>>
+				"So many people. All of them wanted to..." <<He>> stops talking mid sentence.
+			<<case 2>>
+				"I was afraid they were going to rip me to shreds," <<he>> says, clutching <<his>> body.
+			<<case 3>>
+				"Why would anyone do such a thing?" Robin shudders. "I'm not food..."
+		<</switch>>
+	<<case "pillory">>
+		<<switch random(1, 3)>>
+			<<case 1>>
+				"I'm not a criminal..." Robin whimpers softly.
+			<<case 2>>
+				"I've always felt bad for those people. To think I'd become one of them," Robin sighs.
+			<<case 3>>
+				"At least getting fruit thrown at you is better than rocks," Robin lets out a pained laugh.
+		<</switch>>
+	<<default>>
+		You talk with Robin. There are long periods of silence. You don't want to push <<him>>.
+		<<He>> sometimes mentions the abuse <<hes>> endured. You hold <<him>> when <<he>> cries.
+<</switch>>
+<br><br>
 
-You talk with Robin. There are long periods of silence. You don't want to push <<him>>.
-<<He>> sometimes mentions the abuse <<hes>> endured. You hold <<him>> when <<he>> cries.
+You console <<him>> for a while, giving the occasional comforting word or gesture. <<He>> seems to appreciate it.
 <br><br>
 
 <<robinoptions>>
@@ -378,7 +440,6 @@ You talk with Robin. There are long periods of silence. You don't want to push <
 
 <</if>>
 <<promiscuity1>>
-<br><br>
 
 You realise <<hes>> looking right at you. "A-am I attractive?" <<he>> asks, keeping <<his>> voice quiet. "The way you were looking at me..." You feel guilty for checking <<him>> out and look away as <<he>> tugs off <<his>> shirt.
 <br><br>
@@ -415,6 +476,7 @@ Once home, Robin gives you a surprise hug. "Thank you," <<he>> says. <<Hes>> tea
 
 :: Robin Walk School
 <<set $outside to 1>><<set $location to "town">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if $tutorial is 0 and $debug is 0>>
 	<<endevent>>
@@ -427,26 +489,32 @@ Once home, Robin gives you a surprise hug. "Thank you," <<he>> says. <<Hes>> tea
 <<elseif $robinromance is 1>>
 	You leave the orphanage with Robin and walk to school.
 
-	<<He>> rubs the back of <<his>> hand against yours. You hold it. <<takeHandholdingVirginity "Robin" "romantic">> You chat with <<him>> as you walk.
-	<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
+	<<He>> rubs the back of <<his>> hand against yours. You hold it. <<takeHandholdingVirginity "Robin" "romantic">>
+	<<if _robin.trauma gte 80>>
+	<<elseif _robin.trauma gte 40>>
+	<<else>>
+		You chat with <<him>> as you walk.
+	<</if>>
+	<<ltrauma>><<lstress>><<lrtrauma>><<trauma -2>><<stress -4>><<npcincr Robin trauma -2>>
 	<br><br>
 	<<endevent>>
 <<else>>
 	You leave the orphanage with Robin and walk to school.
 
-	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 80>>
-		<<Hes>> limping. You move slowly to let <<him>> keep up. <<He>> doesn't seem keen on talking, and stays close to you when other people are near.
-		<br><br>
-
-	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
+	<<if _robin.trauma gte 80>>
+		<<if $robin_injured gte 1>>
+			<<Hes>> limping.
+		<<else>>
+			<<He>> walks slowly.
+		<</if>>
+		You move slowly to let <<him>> keep up. <<He>> doesn't seem keen on talking, and stays close to you when other people are near.
+	<<elseif _robin.trauma gte 40>>
 		You chat with <<him>> on the way, though <<he>> falls silent when there are other people near.
-		<br><br>
-
 	<<else>>
 		You chat with <<him>> on the way.
-		<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
-		<br><br>
+		<<ltrauma>><<lstress>><<lrtrauma>><<trauma -2>><<stress -4>><<npcincr Robin trauma -2>>
 	<</if>>
+	<br><br>
 	<<endevent>>
 <</if>>
 
@@ -534,12 +602,13 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 
 :: Robin Walk Home
 <<set $outside to 1>><<set $location to "town">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<npc Robin>><<person1>>You run up to Robin.
 
 <<if $robinReunionScene is "dungeon">>
 	<<unset $robinReunionScene>><<set $robinPostMortem to true>>
-	You tap on <<his>> shoulder<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps, then immediately buries <<himself>> into your chest.
+	You tap on <<his>> shoulder<<if _robin.trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps, then immediately buries <<himself>> into your chest.
 	<br>
 	"I don't believe it," Robin squeals. "I-I thought you were gone forever!"
 	<br><br>
@@ -547,15 +616,28 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 	Eventually, Robin calms down a bit. "We need to talk about this at home," <<he>> says. "Wh-when you're ready, of course. Come on."
 	<br><br>
 
+	The both of you walk to the orphanage together. Robin keeps you close by.
+	<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
+	<br><br>
+<<elseif $robinReunionScene is "dungeonRobin">>
+	<<unset $robinReunionScene>>
+	You tap on <<his>> shoulder<<if _robin.trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps, then immediately buries <<himself>> into your chest.
+	<br>
+	"You made it out!" Robin squeals. "I-I hope they didn't do more awful things to you..."
+	<br><br>
+
+	Eventually, Robin calms down a bit. "What's important is that you're free," <<he>> says, smiling softly. "Let's go home."
+	<br><br>
+
 	The both of you walk to the orphanage together. Robin keeps you close by.
 	<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
 	<br><br>
 <<elseif $robinReunionScene is "asylum">>
 	<<unset $robinReunionScene>>
-	You tap on <<his>> shoulder<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps. <<He>> looks pleasantly surprised.
+	You tap on <<his>> shoulder<<if _robin.trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps. <<He>> looks pleasantly surprised.
 	<br><br>
 
-	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
+	<<if _robin.trauma gte 40>>
 		"H-hi," <<he>> says quietly. "I thought the doctors took you away. I would've tried to get you something had I known you were c-coming back," Robin's voice quivers.
 	<<else>>
 		"Oh, hey!" <<he>> says, beaming. "I thought you were staying at the doctor's for a while. I would've prepared something had I known you were coming back," Robin explains.
@@ -565,7 +647,7 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 	You shake your head, telling <<him>> that they weren't going to help you, so you "checked" out early. Robin seems confused, but <<he>> nods regardless. <<He>> gives you a hug.
 	<br>
 
-	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
+	<<if _robin.trauma gte 40>>
 		"W-Well, I'm glad I get to see you again," <<he>> mumbles, holding you tight.
 	<<else>>
 		"Well, I'm glad you're around. I hope you're feeling better," <<he>> says.
@@ -580,23 +662,44 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 	<<He>> hugs you. "Can we hold hands?" <<he>> says. <<takeHandholdingVirginity "Robin" "romantic">>
 	<br><br>
 
-	Together you walk back to the orphanage, chatting as you go.
+	Together you walk back to the orphanage.
+
 	<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
 	<br><br>
+
+<<elseif $weather is "rain">>
+	<<if _robin.trauma gte 80>>
+		<<He>> stands out in the rain, slowly getting soaked. <<He>> smiles weakly when <<he>> sees you. "H-hey," <<he>> says, eyes half covered by wet hair.
+		<br><br>
+
+		Together you walk back to the orphanage. <<if $robin_injured>><<He>> limps, and you move slowly to let <<him>> keep up. <</if>><<He>> doesn't seem keen on talking, and stays very close to you whenever other people are around.
+		<<lrtrauma>><<npcincr Robin trauma -2>>
+	<<else>>
+		<<He>> holds out an umbrella so that both of you can fit under it. "Somehow I knew you'd forget again," <<he>> says with a soft smile.
+		<br><br>
+
+		The umbrella keeps you dry, and together you walk back to the orphanage<<if $robinromance>>, holding hands as you go. <<takeHandholdingVirginity "Robin" "romantic">><<else>>.<</if>>
+		<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
+		<<dry>>
+	<</if>>
+	<br><br>
+
 <<else>>
 
-	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 80>>
+	<<if _robin.trauma gte 80>>
 		<<He>> smiles when <<he>> sees you. "H-hey," <<he>> says.
 		<br><br>
 
-		Together you walk back to the orphanage. <<He>> limps, and you move slowly to let <<him>> keep up. <<He>> doesn't seem keen on talking, and stays very close to you whenever other people are around.
+		Together you walk back to the orphanage. <<if $robin_injured>><<He>> limps, and you move slowly to let <<him>> keep up. <</if>><<He>> doesn't seem keen on talking, and stays very close to you whenever other people are around.
+		<<lrtrauma>><<npcincr Robin trauma -1>>
 		<br><br>
 
-	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
+	<<elseif _robin.trauma gte 40>>
 		<<He>> smiles when <<he>> sees you. "Hey," <<he>> says. "I'm glad you're here. I don't feel safe walking home alone."
 		<br><br>
 
 		Together you walk back to the orphanage. You chat a bit, but <<he>> tenses and falls silent whenever other people are around.
+		<<lrtrauma>><<npcincr Robin trauma -1>>
 		<br><br>
 
 	<<else>>
@@ -619,7 +722,38 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 
 <<npc Robin>><<person1>>You run up to Robin.
 
-<<if $robinReunionScene is "dungeon">>
+<<if $robinReunionScene is "dungeonRobin">>
+	<<unset $robinReunionScene>>
+	You tap on <<his>> shoulder<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps, then immediately buries <<himself>> into your chest.
+	<br>
+	<<He>> either doesn't notice or doesn't care about your exposure.
+	<br>
+	"You made it out!" Robin squeals. "I-I hope they didn't do more awful things to you..."
+	<br><br>
+
+	<<He>> trails off, suddenly realising <<his>> face is pressed against your<<if !$worn.under_upper.name.includes("naked")>> practically<</if>> bare <<breasts>>. <<He>> hurriedly backs away from you, looking flustered.<<npcincr Robin lust 3>><<gglust>>
+	<br>
+	"Where's your shirt? No, that's not important. Are you okay?" <<he>> says, <<his>> voice steadily rising in pitch.
+	<br>
+	You gently reassure <<him>> that you're alright now. Robin nods as <<he>> calms down, <<his>> breaths becoming steady. <<His>> blush doesn't fade, however.
+	<br><br>
+
+	"I'm glad you're safe, anyway. We can talk about it at home, okay?" <<His>> eyes trail towards your <<breasts>>, then quickly dart back up. "But first, c-can you please put something on?"
+	<br><br>
+
+	The both of you walk to the orphanage together. Despite <<his>> embarrassment, Robin clings to you tightly.
+	<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
+	<br><br>
+	<<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin trauma -2>>
+	<<if $robin_oxford_bare is undefined>>
+		<<set $robin_oxford_bare to 1>>
+	<<elseif $robin_oxford_bare lte 4>>
+		<<set $robin_oxford_bare += 1>>
+	<</if>>
+
+	<<link [[Next|Orphanage]]>><<endevent>><</link>>
+	<br>
+<<elseif $robinReunionScene is "dungeon">>
 	<<unset $robinReunionScene>><<set $robinPostMortem to true>>
 	You tap on <<his>> shoulder<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps, then immediately buries <<himself>> into your chest.
 	<br>
@@ -627,7 +761,7 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 	<br>
 	"I don't believe it!" Robin squeals. "I-I thought you were gone forever! I thought..."
 	<br><br>
-	
+
 	<<He>> trails off, suddenly realising <<his>> face is pressed against your<<if !$worn.under_upper.name.includes("naked")>> practically<</if>> bare <<breasts>>. <<He>> hurriedly backs away from you, looking flustered.<<npcincr Robin lust 3>><<gglust>>
 	<br>
 	"Where's your shirt? No, that's not important. Where have you been?" <<he>> says, <<his>> voice steadily rising in pitch.
@@ -637,24 +771,24 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 
 	"I'm glad you're safe, anyway. We can talk about it at home, okay?" <<His>> eyes trail towards your <<breasts>>, then quickly dart back up. "But first, c-can you please put something on?"
 	<br><br>
-	
+
 	The both of you walk to the orphanage together. Despite <<his>> embarrassment, Robin clings to you tightly.
 	<<ltrauma>><<lstress>><<trauma -2>><<stress -4>>
 	<br><br>
-	<<npcincr Robin love 1>><<npcincr Robin lust 1>>
+	<<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin trauma -2>>
 	<<if $robin_oxford_bare is undefined>>
 		<<set $robin_oxford_bare to 1>>
 	<<elseif $robin_oxford_bare lte 4>>
 		<<set $robin_oxford_bare += 1>>
 	<</if>>
-	
+
 	<<link [[Next|Orphanage]]>><<endevent>><</link>>
 	<br>
 <<elseif $robinReunionScene is "asylum">>
 	<<unset $robinReunionScene>>
 	You tap on <<his>> shoulder<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>, causing <<him>> to yelp<</if>>. <<He>> turns around to meet you and gasps. <<He>> looks pleasantly surprised.
 	<br><br>
-	
+
 	"Oh! You're back from the... doctor's..." <<His>> voice falters as <<his>> gaze drops to your exposed <<breasts>>. <<He>> blushes, but continues as if nothing were amiss.
 	<br>
 	"I-I didn't know you were coming back so soon. I would've prepared something." <<He>> pauses, <<his>> eyes darting between your body and the sidewalk. "S-so, did the treatment work out...?"
@@ -662,21 +796,21 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 
 	You shake your head, telling <<him>> that they weren't going to help you, so you "checked" out early. Robin doesn't seem to be paying much attention to your words, but <<he>> nods along regardless.
 	<br>
-	
+
 	"Well, I'm glad you're back, anyway," <<he>> says. "L-let's get you home. Before anyone notices your..."
 	<br>
 	<<He>> trails off again and coughs awkwardly, before abruptly grabbing your arm and pulling you along.
 	<br><br>
-	
+
 	The two of you head back to the orphanage. Robin looks around for any sign that people are aware. This draws a lot of attention, but Robin's insistence on hurrying means you make good time.
 	<br><br>
-	<<npcincr Robin love 1>><<npcincr Robin lust 1>>
+	<<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin trauma -2>>
 	<<if $robin_oxford_bare is undefined>>
 		<<set $robin_oxford_bare to 1>>
 	<<elseif $robin_oxford_bare lte 4>>
 		<<set $robin_oxford_bare += 1>>
 	<</if>>
-	
+
 	<<link [[Next|Orphanage]]>><<endevent>><</link>>
 	<br>
 <<elseif $robin_oxford_bare is undefined>>
@@ -689,7 +823,7 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 	The two of you head back to the orphanage. Robin looks around for any sign that people are aware. This draws a lot of attention, but Robin's insistence on hurrying means you make good time.
 	<br><br>
 
-	<<npcincr Robin love 1>><<npcincr Robin lust 1>>
+	<<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin trauma -2>>
 	<<endevent>>
 	<<link [[Next|Orphanage]]>><</link>>
 
@@ -703,7 +837,7 @@ You nod, continuing to walk to the school with Robin. The rest of the trip is un
 	The two of you head back to the orphanage. Robin looks around for any sign that people are aware. This draws a lot of attention, but Robin's insistence on hurrying means you make good time.
 	<br><br>
 
-	<<npcincr Robin love 1>><<npcincr Robin lust 1>>
+	<<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin trauma -2>>
 	<<endevent>>
 	<<link [[Next|Orphanage]]>><</link>>
 
@@ -727,7 +861,7 @@ You wrap the towel around your chest. Robin still looks nervous. "Let's get home
 The two of you head back to the orphanage. Robin looks around for any sign that people are aware. This draws a lot of attention, but Robin's insistence on hurrying means you make good time.
 <br><br>
 
-<<npcincr Robin love 1>><<npcincr Robin lust 1>>
+<<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin trauma -2>>
 <<endevent>>
 <<link [[Next|Orphanage]]>><</link>>
 
@@ -742,7 +876,7 @@ You refuse the towel, and tell Robin you'll be fine. <<He>> doesn't look convinc
 The two of you head back to the orphanage. Robin looks around for any sign that people are aware. This draws a lot of attention, but Robin's insistence on hurrying means you make good time.
 <br><br>
 
-<<npcincr Robin love 1>><<npcincr Robin lust 1>>
+<<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin trauma -2>>
 <<endevent>>
 <<link [[Next|Orphanage]]>><</link>>
 
@@ -761,7 +895,7 @@ The two of you head back to the orphanage. Robin looks around for any sign that
 "I was only testing it," the <<person2>><<person>> responds. "How was I to know it would break so easily?"
 <br><br>
 
-"You went completely mental with that whip," the <<person1>><<person>> says. "Now look." <<He>> grabs Robins genitals and tugs. It looks very painful, but Robin doesn't make a sound. "It's not gonna be any fun fucking that."
+"You went completely mental with that whip," the <<person1>><<person>> says. "Now look." <<He>> grabs Robin's genitals and tugs. It looks very painful, but Robin doesn't make a sound. "It's not gonna be any fun fucking that."
 <br><br>
 
 "What do you want me to do? It's not like we can get a refund."
@@ -781,7 +915,7 @@ The two of you head back to the orphanage. Robin looks around for any sign that
 	<br><br>
 <</if>>
 
-They pause for a moment, then burst into laughter. "Sure thing," the <<person1>><<person>> says. "Just get your little butt on here, and we'll let your friend go. If not, piss off. We're about to set sail."
+They pause for a moment, then burst into laughter. "Sure thing," the <<person1>><<person>> says. "Just get your butt on here instead, and we'll let your friend go. If not, piss off. We're about to set sail."
 <br><br>
 <<if $dockstatus gte 80>>
 	<<link [[Ask dockers for help|Docks_Robin Get Help]]>><</link>>
@@ -811,7 +945,7 @@ You notice a group of dockers carrying crates from a ship to the warehouse.
 <<if $submissive gte 1150>>
 	"Please! Bad people are going to take my friend away!" you feel tears swell in your eyes.
 <<elseif $submissive gt 850>>
-	"I need your help, guys. It's a matter of life and death." you say.
+	"I need your help, guys. It's a matter of life and death," you say.
 <<else>>
 	"Put down them damn boxes, I need your help, now!" you nearly shout.
 <</if>>
@@ -876,7 +1010,7 @@ Before they manage to fire it up and flee, the masked people already hop onboard
 	<br><br>
 	"Looks like it."
 	<br><br>
-	"Good." The figure turns to you. "Grab your friend and go. We'll deal with the rest. You owe us a pint, kid."
+	"Good." The figure turns to you. "Grab your friend and go. We'll deal with the rest. You owe us a pint, got it?"
 	<br><br>
 	You nod and grab Robin, who doesn't seem to understand what is going on.
 <<else>>
@@ -1076,6 +1210,11 @@ Bailey shoves Robin into the back seat, and drives away.
 		<<link [[Ask about a spring|Bailey Pond 2]]>><</link>>
 		<br>
 	<</if>>
+	
+	<<if $bailey_pound is 1>>
+		<<link [[Confront about the document you found at the pound|Bailey Pound]]>><<awareness 18>><<set $bailey_pound to 2>><</link>><<gggawareness>>
+		<br>
+	<</if>>
 <</if>>
 
 <<if _options isnot 2>>
@@ -1083,6 +1222,27 @@ Bailey shoves Robin into the back seat, and drives away.
 	<br>
 <</if>>
 
+:: Bailey Pound
+<<effects>>
+
+<<earnFeat "Pounded Pound">>
+You place the document in front of Bailey. <<He>> regards it with little interest. "This is what you're wasting my time over?" <<he>> says. "I used to deal with this company. What of it?"
+<br><br>
+
+<<if $submissive gte 1150>>
+	"Y-you don't anymore?" you ask. You point at your name, and the red "<span class="red">B</span>" covering it.
+<<elseif $submissive gte 850>>
+	"Used to?" you ask. "Then explain this." You point at your name, and the red "<span class="red">B</span>" covering it.
+<<else>>
+	"Used to?" you ask. You point at your name, and the red "<span class="red">B</span>" covering it.
+<</if>>
+<br><br>
+The ghost of a frown crosses Bailey's face. <<He>> pulls <<his>> phone from <<his>> pocket. "You can leave," <<he>> says. "Go."
+<br><br>
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+<br>
+
 :: Bailey Pond
 <<effects>>
 
@@ -1202,7 +1362,7 @@ You put the cash on the desk. Bailey snatches it, and reclines in <<his>> chair
 	<br>
 	"Shit," <<he>> mutters as <<he>> gets off of you. "Shit! What the fuck did I just do?"
 	<br><br>
-	
+
 	A look of fury spreads across the caretaker's face. <<He>> grasps you by the hair, yanking you up until you're eye level with <<him>>.
 	<br>
 	<span class="green">"You get one day,"</span> growls Bailey. <<He>> releases you and gives you a shove. "Out, now!"
@@ -1379,7 +1539,7 @@ You pull away again, this time turning aside so <<his>> kiss lands on your cheek
 :: Robin Stroke
 <<set $outside to 0>><<set $location to "home">><<effects>>
 
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if $robinromance is 1 and random(0,100) gte _robin.lust>>
 	<<He>> makes a satisfied sound. "I feel so safe with you," <<he>> says with a sigh.
@@ -1561,7 +1721,7 @@ One of them, a <<generatey1>><<person1>><<person>>, laughs. "Aww, is this your <
 _skin_array.includes("left_cheek") and !["tattoo", "brand", "magic"].includes($skin.left_cheek.pen) or
 _skin_array.includes("right_cheek") and !["tattoo", "brand", "magic"].includes($skin.right_cheek.pen)>>
 	<<He>> frowns and reaches for a tissue. "You have ink on your face." Before you can respond, <<hes>> gently dabbing your skin.
-	
+
 	<<if ["pen", "lipstick", "mud"].includes($skin.forehead.pen)>>
 		<<bodywriting_clear forehead>>
 	<</if>>
@@ -1620,7 +1780,7 @@ _skin_array.includes("right_cheek") and !["tattoo", "brand", "magic"].includes($
 		"I thought you were staying at the doctor's for a while," Robin explains. "I would've prepared something had I known you were coming back." <<He>> shakes <<his>> head and smiles. "Anyway, how was it? Did the doctors help you get better?"
 	<</if>>
 	<br><br>
-	
+
 	You shake your head, telling <<him>> that they weren't going to help you, so you "checked" out early. Robin seems confused, but <<he>> nods regardless. <<He>> gives you a hug.
 	<br>
 
@@ -1630,7 +1790,7 @@ _skin_array.includes("right_cheek") and !["tattoo", "brand", "magic"].includes($
 		"Well, I'm happy to see you again. I hope you're feeling better," <<he>> says.
 	<</if>>
 	<br><br>
-	
+
 	You finish your lunch with Robin in silence. "I'm going to wait in the classroom," <<he>> says when you're done. "I don't like being late." <<He>> hugs you.
 	<br><br>
 
@@ -1659,7 +1819,8 @@ _skin_array.includes("right_cheek") and !["tattoo", "brand", "magic"].includes($
 	<br>
 	<<link [[Tease under the table|Canteen Lunch Robin Tease 1]]>><<npcincr Robin lust 1>><</link>><<promiscuous1>><<glust>>
 	<br>
-<<elseif $sydneyromance is 1 and _sydney_location is "canteen" and random(1, 100) gte 50>>
+<<elseif $sydneyromance is 1 and _sydney_location is "library" and $schoolstate is "lunch" and $minute lte 35 and random(1, 100) gte 50>>
+	/* Checks if _sydney_location is "library" instead of "canteen" because it's impossible for it to be "canteen" given the time passed from eating with Robin */
 	You chat with Robin while eating.
 	You notice Sydney stand up from the corner of the canteen, gathering <<nnpc_his "Sydney">> books and speedwalking to the library.
 	<<nnpc_He "Sydney">> stops by your table to smooch you on the cheek, nearly dropping one of <<nnpc_his "Sydney">> books from leaning down.
@@ -1714,9 +1875,10 @@ _skin_array.includes("right_cheek") and !["tattoo", "brand", "magic"].includes($
 
 
 :: Canteen Lunch Robin End
-<<effects>>
+<<schooleffects>><<effects>><<sydneySchedule>>
 
-<<if $sydneyromance is 1 and _sydney_location is "canteen" and random(1, 100) gte 50>>
+<<if $sydneyromance is 1 and _sydney_location is "library" and $schoolstate is "lunch" and $minute lte 35 and random(1, 100) gte 50>>
+	/* Checks if _sydney_location is "library" instead of "canteen" because it's impossible for it to be "canteen" given the time passed from eating with Robin */
 	You chat with Robin while eating. You notice Sydney stand up from the corner of the canteen, gathering <<nnpc_his "Sydney">> books and speedwalking to the library. <<nnpc_He "Sydney">> stops by your table to smooch you on the cheek, nearly dropping one of <<nnpc_his "Sydney">> books from leaning down. <<arousal 50>><<garousal>>
 	<br><br>
 	<<if $robinnote is 1 and $robinromance isnot 1>>
@@ -1932,7 +2094,7 @@ Robin tugs your arm, and you rise from your seat.
 	<<set $consensual to 1>>
 	<<neutral 1>>
 	<<maninit>>
-	<<set $enemytrust += 500>><<set $speechdisable to 1>>
+	<<set $enemytrust += 500>>
 	<<set $enemyarousalmax to 600>>
 <</if>>
 
@@ -2017,10 +2179,16 @@ Robin leans on to you, panting, beads of sweat dripping down <<his>> naked body.
 			<<orgasm>>
 		<<else>>
 			<br>
-			<<if $player.gender is "h">>
+			<<if $player.penisExist and $player.vaginaExist>>
 				Robin pulls back, and reaches for you with <<his>> free hand.
 				<<He>> rubs your slick cock up and down, while still sliding <<his>> finger in and out of your pussy.
 				"I'm not giving up," <<he>> says, picking up the pace.
+				<<He>> leans forward, and you feel the warmth of <<his>> tongue press against your labia.
+				<<He>> moves it around, in an odd but sure pattern.
+				<<Hes>> spelling <<his>> name with <<his>> tongue, each letter slower and firmer than the previous.
+				<br><br>
+
+				<<He>> completes the "N", drags <<his>> tongue up to your <<print ($player.ballsExist ? "balls" : "clit")>>, and finishes with a flick.
 				<br>
 
 				<<set $arousal to 10000>>
@@ -2217,9 +2385,12 @@ Robin leans on to you, panting, beads of sweat dripping down <<his>> naked body.
 	<<consensual>>
 	<<set $consensual to 1>>
 	<<neutral 1>>
+	<<if $exposed lt 2>>
+		You slip out of your clothes.
+	<</if>>
 
 	<<maninit>>
-	<<set $enemytrust += 500>><<npckiss>><<set $speechdisable to 1>>
+	<<set $enemytrust += 500>><<npckiss>>
 	<<set $enemyarousalmax to 600>>
 <</if>>
 
@@ -2271,21 +2442,56 @@ Robin leans on to you, panting, beads of sweat dripping down <<his>> naked body.
 <<link [[Next|Bed]]>><<clotheson>><</link>>
 <br>
 
-:: Robin Room Bed
+:: Robin Room Bed Intro
 <<set $outside to 0>><<set $location to "home">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+<<set $robinbed to "theirs">>
 
-<<He>> blushes and looks away. "Y-yes," <<he>> says. "You can stay."
+<<if $robinromance is 1 and _robin.trauma lt 50>>
+	<<He>> blushes and looks away. "Y-yes," <<he>> says. "You can stay."
+<<else>>
+	<<He>> hugs you tightly. "Thank you so much."
+<</if>>
 <br><br>
 
-<<strip "strap-on">>
+<<listsleepoutfits "Robin Bed">>
 
-<<He>> turns off the light and you hear <<him>> shuffle around. Probably undressing. You undress yourself, and climb into the bed. <<He>> climbs in beside you.
-<br><br>
+<<bedicon>><<link [[Just climb in bed|Robin Room Bed]]>><<set $wear_outfit to "none">><</link>>
+
+:: Robin Room Bed
+<<set $outside to 0>><<set $location to "home">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+<<wearoutfit>>
+
+<<if $robinromance is 1 and _robin.trauma lt 50>>
+	<<He>> turns off the light and you hear <<him>> shuffle around. Probably undressing. You undress yourself, and climb into the bed. <<He>> climbs in beside you.
+	<br><br>
+
+	<<He>> rolls over and hugs you. Your heart races as you feel <<his>> bare body against yours.
+	<<if _robin.lust gte 40>>
+		<br><br>
 
-<<He>> rolls over and hugs you. Your heart races as you feel <<his>> bare body against yours.
+		You can feel Robin getting aroused.
+		<<if _robin.dom gte 60>>
+			<<He>> starts lightly grinding against you. "Do you want to?" <<He>> whispers in your ear.
+		<<else>>
+			<<He>> seems to be trying to hide it.
+		<</if>>
+	<</if>>
+<<elseif $robinromance>>
+	You climb into <<his>> bed as <<he>> turns off the light. <<He>> shuffles around, probably changing into pajamas.
+	You feel <<him>> climb beside you and <<he>> holds you close to <<him>>. "I love you," <<he>> whispers into your ear.
+<<else>>
+	You climb into <<his>> bed as <<he>> turns off the light. <<He>> shuffles around, probably changing into pajamas.
+	You feel <<him>> climb close beside you. "Goodnight," <<he>> whispers.
+<</if>>
 <br><br>
 
-<<link [[Next|Robin Room Bed Sex]]>><<set $sexstart to 1>><</link>>
+<<if $robinromance is 1 and _robin.trauma lt 50>>
+	<<link [[Take it further|Robin Room Bed Sex]]>><<strip "strap-on">><<set $sexstart to 1>><</link>>
+	<br>
+<</if>>
+<<link [[Sleep|Robin Bed]]>><<trauma -6>><<stress -12>><<npcincr Robin trauma -3>><</link>><<ltrauma>><<lstress>><<lrtrauma>>
 <br>
 
 :: Robin Room Bed Sex
@@ -2296,7 +2502,7 @@ Robin leans on to you, panting, beads of sweat dripping down <<his>> naked body.
 	<<neutral 1>>
 
 	<<maninit>>
-	<<set $enemytrust += 500>><<npcexpose>><<set $speechdisable to 1>>
+	<<set $enemytrust += 500>><<npcexpose>>
 	<<set $enemyarousalmax to 600>>
 
 <</if>>
@@ -2409,12 +2615,9 @@ Robin leans on to you, panting, beads of sweat dripping down <<his>> naked body.
 
 <<clotheson>>
 <<endcombat>>
-<<pass 1 hour>>
-<<npc Robin>><<person1>>
-You lie with Robin, feeling <<him>> breathe beside you. After a time, you leave the bed and sneak back to your room.
 <br><br>
 
-<<link [[Next|Bedroom]]>><<endevent>><</link>>
+<<link [[Next|Robin Bed]]>><<endevent>><</link>>
 <br>
 
 :: Robin Hug
@@ -2576,9 +2779,9 @@ You lie with Robin, feeling <<him>> breathe beside you. After a time, you leave
 	<br><br>
 	<<link [[Complain (0:05)|Robin Hug Break 3]]>><<set $phase to 0>><<pass 5>><<stress -12>><</link>><<lstress>>
 	<br>
-	<<link [[Blame (0:05)|Robin Hug Break 3]]>><<set $phase to 1>><<pass 5>><<npcincr Robin love -1>><<npcincr Robin dom -1>><<trauma -6>><<stress -12>><</link>><<ltrauma>><<llstress>><<llove>><<ldom>>
+	<<link [[Blame (0:05)|Robin Hug Break 3]]>><<set $phase to 1>><<pass 5>><<npcincr Robin love -1>><<npcincr Robin dom -1>><<npcincr Robin trauma 1>><<trauma -6>><<stress -12>><</link>><<ltrauma>><<llstress>><<grtrauma>><<llove>><<ldom>>
 	<br>
-	<<link [[Persecute (0:05)|Robin Hug Break 3]]>><<set $phase to 2>><<pass 5>><<npcincr Robin love -1>><<npcincr Robin dom -1>><<stress -12>><<trauma -12>><</link>><<lltrauma>><<llstress>><<llove>><<ldom>>
+	<<link [[Persecute (0:05)|Robin Hug Break 3]]>><<set $phase to 2>><<pass 5>><<npcincr Robin love -1>><<npcincr Robin dom -1>><<npcincr Robin trauma 3>><<stress -12>><<trauma -12>><</link>><<lltrauma>><<llstress>><<ggrtrauma>><<llove>><<ldom>>
 	<br>
 	<<link [[Dismiss|Robin Hug Break 3]]>><<set $phase to 3>><</link>>
 	<br>
@@ -2741,7 +2944,7 @@ You leave the bigger things off the table though, you don't really want Robin kn
 		<br><br>
 
 		<<if $submissive gte 500>>
-			<<link [[Demand the money|Robin Money Demand]]>><<set $submissive -= 1>><<set $robindebt += 1>><<npcincr Robin love -1>><<npcincr Robin dom -1>><</link>><<llove>><<ldom>>
+			<<link [[Demand the money|Robin Money Demand]]>><<set $submissive -= 1>><<set $robindebt += 1>><<npcincr Robin trauma 3>><<npcincr Robin love -1>><<npcincr Robin dom -1>><</link>><<llove>><<ldom>>
 			<br>
 		<</if>>
 		<<robinoptions>>
@@ -3088,7 +3291,7 @@ Robin looks down, then at you, waiting for your response.
 <<link [[Hug Robin|Robin Kiyoura cuddle]]>><<npcincr Robin love 1>><<trauma -1>><<stress -1>><</link>><<glove>><<ltrauma>><<lstress>>
 <br>
 <<if $trauma gte $traumamax / 5>>
-	<<link [[Accuse Robin of weakness|Robin Kiyoura weak]]>><<npcincr Robin love -6>><<trauma -3>><<stress -3>><</link>><<lllove>><<ltrauma>><<lstress>>
+	<<link [[Accuse Robin of weakness|Robin Kiyoura weak]]>><<npcincr Robin love -6>><<npcincr Robin trauma 3>><<trauma -3>><<stress -3>><</link>><<lllove>><<ltrauma>><<lstress>><<grtrauma>>
 	<br>
 <</if>>
 
@@ -3113,8 +3316,10 @@ Robin looks down, then at you, waiting for your response.
 	"That was your fault," you say. "You should have protected me."
 <</if>>
 <br><br>
+
 <<endevent>>
 <<npc Robin>><<person1>>Tears form in <<his>> eyes as you speak, but <<he>> wipes them and nods "I'll be stronger. I'll try."
+<<gdom Robin>><<npcincr Robin dom 2>>
 <br><br>
 
 <<link [[Hug Robin|Robin Kiyoura cuddle]]>><<npcincr Robin love 1>><<trauma -1>><<stress -1>><</link>><<ltrauma>><<lstress>>
@@ -3218,7 +3423,7 @@ Robin looks down, then at you, waiting for your response.
 	Whitney walks with you back to the canteen, where Robin waits.
 	"Here's your <<girlfriend>> back, <<pshe>> helped me with a huge load of work," <<he>> chuckles as <<he>> walks away.
 	<br><br>
-	
+
 	<<npc Robin 2>>
 	Robin looks worried. "Are you okay? Did <<he>> hurt you?" <<person2>><<he>> asks.
 	<br><br>
@@ -3229,7 +3434,7 @@ Robin looks down, then at you, waiting for your response.
 	<<link [[Tell Robin what happened, but say you didn't want to|Robin Kiyoura Didn't want to]]>><<npcincr Robin dom 1>><<pain -10>><</link>><<gdom>><<lpain>>
 	<br>
 
-	<<link [[Tell Robin what happened, and say you enjoyed it|Robin Kiyoura Enjoyed it]]>><<npcincr Robin love -5>><<npcincr Robin dom -1>><<npcincr Robin lust 1>><</link>><<lllove>><<ldom>><<glust>>
+	<<link [[Tell Robin what happened, and say you enjoyed it|Robin Kiyoura Enjoyed it]]>><<npcincr Robin love -5>><<npcincr Robin dom -1>><<npcincr Robin trauma 3>><<npcincr Robin lust 1>><</link>><<grtrauma>><<lllove>><<ldom>><<glust>>
 	<br>
 
 <<else>>
@@ -3522,7 +3727,7 @@ You can hear Robin sobbing softly underneath.
 Robin hasn't left <<his>> room in a while, nor has <<he>> come to talk to you. <<He>> may need someone to talk to.
 <br><br>
 
-<<link [[Spend time with Robin (3:00)|Robin Trauma Visit 2]]>><<npcincr Robin love 1>><<npcincr Robin dom -1>><<npcincr Robin trauma -5>><<unset $robindestination>><</link>><<glove>><<ldom>>
+<<link [[Spend time with Robin (3:00)|Robin Trauma Visit 2]]>><<npcincr Robin love 1>><<npcincr Robin dom -1>><<npcincr Robin trauma -5>><<unset $robindestination>><</link>><<glove>><<lrtrauma>><<ldom>>
 <br>
 <<link [[Close the door|Robin Trauma Visit Close]]>><<stress 6>><</link>><<gstress>>
 <br>
@@ -3589,7 +3794,7 @@ Embarrassment fills Robin's voice, causing <<him>> to stumble over <<himself>> a
 "If it isn't too much to ask of you, could you stay with me? Here, tonight? I find it hard to sleep sometimes," <<he>> says. "Maybe I would feel safer with you?"
 <br><br>
 
-<<link [[Yes (8:00)|Robin Trauma Visit Yes]]>><<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin dom -1>><<npcincr Robin trauma -10>><</link>><<glove>><<glust>><<ldom>>
+<<link [[Yes (8:00)|Robin Trauma Visit Yes]]>><<npcincr Robin love 1>><<npcincr Robin lust 1>><<npcincr Robin dom -1>><<npcincr Robin trauma -10>><</link>><<glove>><<glust>><<lrtrauma>><<ldom>>
 <br>
 <<link [[No|Robin Trauma Visit No]]>><<npcincr Robin love -1>><</link>><<llove>>
 <br>
@@ -3643,7 +3848,7 @@ You get into bed next to <<him>>, and turn off the lamp.
 <<His>> voice trails off into a yawn. It doesn't take long until you hear the sound of Robin's soft breathing. You find yourself succumbing to sleep yourself, your eyes close shut as you drift away into a peaceful sleep.
 <br><br>
 
-<<link [[Sleep|Robin Trauma Visit Sleep]]>><<set $robinbed to 1>><<set $sleephour to 8>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>><<ltiredness>>
+<<link [[Sleep|Robin Trauma Visit Sleep]]>><<set $robinbed to "yours">><<set $sleephour to 8>><<incrementautosave>><</link>><<ltiredness>>
 <br>
 
 :: Robin Trauma Visit Sleep
@@ -3658,7 +3863,7 @@ You get into bed next to <<him>>, and turn off the lamp.
 	You slowly open your eyes, and sluggishly stand from Robin's bed. Your ears are ringing. You make sure not to wake <<nnpc_him "Robin">>.
 	<br><br>
 	<<wraithPossess "home">>
-	<span class="nextLink"><<link [[Walk.|Bedroom]]>><<set $robinbed to 0>><<endevent>><</link>></span>
+	<span class="nextLink"><<link [[Walk.|Bedroom]]>><<unset $robinbed>><<endevent>><</link>></span>
 	<br>
 <<else>>
 	You wake up refreshed and ready to tackle the day. Robin, still sleeping soundly, lays beside you. A small smile has formed over <<his>> face. You do your best to get out from <<his>> bed and leave without disturbing the slumbering orphan.
@@ -3667,7 +3872,7 @@ You get into bed next to <<him>>, and turn off the lamp.
 	You head back to your room.
 	<br><br>
 
-	<<link [[Next|Bedroom]]>><<set $robinbed to 0>><<endevent>><</link>>
+	<<link [[Next|Bedroom]]>><<unset $robinbed>><<endevent>><</link>>
 	<br>
 <</if>>
 
@@ -3740,38 +3945,54 @@ You slowly nod. Robin smiles weakly in response<<if $robinconsole is 1>>, then t
 	<<unset $robinReunionScene>><<set $robinPostMortem to true>>
 	You step out into the hallway. Before you can get far, a pair of arms wraps around you from behind.
 	<br><br>
-	
+
 	"S-sorry," says a familiar voice. It's Robin. <<He>> turns you around to face <<him>>. <<His>> eyes are watering.
 	<br>
 	"I didn't expect to see you in class today," <<he>> says with a strained smile. "Or ever again, really. I-I thought you were..."
 	<br>
 	<<His>> voice, trails off, and <<he>> pulls you into another hug, burying <<his>> face in your chest. <<He>> stays like that for a moment, before pulling away.
 	<br><br>
-	
+
 	"Sorry, I'm gonna be late for class. But we need to talk after school." <<He>> gives your shoulder a squeeze. "When you're ready, of course."
 	<br><br>
-	
+
+	You watch <<him>> depart, waving as <<he>> disappears down the corridor.
+<<elseif $robinReunionScene is "dungeonRobin">>
+	<<unset $robinReunionScene>>
+	You step out into the hallway. Before you can get far, a pair of arms wraps around you from behind.
+	<br><br>
+
+	"S-sorry," says a familiar voice. It's Robin. <<He>> turns you around to face <<him>>. <<His>> eyes are watering.
+	<br>
+	"I didn't expect to see you in class today," <<he>> says with a strained smile. "Or ever again, really. I-I thought they..."
+	<br>
+	<<His>> voice, trails off, and <<he>> pulls you into another hug, burying <<his>> face in your chest. <<He>> stays like that for a moment, before pulling away.
+	<br><br>
+
+	"Sorry, I'm gonna be late for class. But I'm so glad you're home." <<He>> gives your shoulder a squeeze. "I love you."
+	<br><br>
+
 	You watch <<him>> depart, waving as <<he>> disappears down the corridor.
 <<elseif $robinReunionScene is "asylum">>
 	<<unset $robinReunionScene>>
 	You step out into the hallway. Before you can get far,
-	
+
 	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
 		you feel something gently tug on your arm. You turn to find Robin at your side. You didn't hear <<him>> walk up to you.
 		<br><br>
-		
+
 		"Hi," <<he>> says quietly as you draw close. "I didn't think I'd see you today. I thought the doctors took you away. I would've tried to get you something had I known you were c-coming back," Robin's voice quivers.
 	<<else>>
 		a voice from behind calls out your name. You turn to find Robin waving at you eagerly. <<He>> trots up to your side.
 		<br><br>
-		
+
 		"Hey, you're out!" <<he>> says as <<he>> draws close. "You really surprised me, showing up in class today! I thought you were staying at the doctor's for a while. I would've prepared something had I known you were coming back," Robin explains.
 	<</if>>
 	<br><br>
-	
+
 	You shake your head, telling <<him>> that they weren't going to help you, so you "checked" out early. Robin seems confused, but <<he>> nods regardless. You walk and talk for a bit, until Robin arrives at <<his>> next class.
 	<br><br>
-	
+
 	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma gte 40>>
 		<<Hes>> quiet as <<he>> wraps <<his>> arms around you, squeezing you tight. "I'm glad you're free."
 	<<else>>
@@ -3782,7 +4003,7 @@ You slowly nod. Robin smiles weakly in response<<if $robinconsole is 1>>, then t
 <<else>>
 	As you step in the hallway, you end up bumping into Robin. You both tumble to the floor.
 	<br><br>
-	
+
 	"Sorry!" <<he>> says, laughing. You help <<him>> gather <<his>> things, then bid <<him>> farewell as <<he>> rushes off to <<his>> next class.
 <</if>>
 <br><br>
@@ -3798,13 +4019,13 @@ You shove through the crowd to reach Robin. <<nnpc_He "Robin">> opens <<nnpc_his
 <br><br>
 
 <<set _robinPossibleComments to []>>
-<<if $famesex gte 400>>
+<<if $fame.sex gte 400>>
 	<<set _robinPossibleComments.push("sex")>>
 <</if>>
-<<if $famerape gte 400>>
+<<if $fame.rape gte 400>>
 	<<set _robinPossibleComments.push("rape")>>
 <</if>>
-<<if $famebestiality gte 400>>
+<<if $fame.bestiality gte 400>>
 	<<set _robinPossibleComments.push("beast")>>
 <</if>>
 <<if $scienceprojectwon is 1 or $mathsprojectwon is 1>>
@@ -3854,67 +4075,119 @@ You notice a look of disgust on Robin's face. Furrowing <<his>> eyebrows, <<he>>
 
 :: Robin Brothel 2
 <<set $outside to 0>><<set $location to "brothel">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if $robinBrothelVisit gte 1>>
 	You take a seat at the edge of the bed and stare down in shame. Robin smiles, though you can tell there's some pain behind it.
 	<br><br>
-
-	"It's okay. I just came to pick you up," <<he>> explains. <<He>> holds out <<his>> hand. "I'm not mad. Let's go home."
+	<<if _robin.trauma gte 50>>
+		"Let's go home. Please," <<he>> says, holding out a shaking hand. "It's not safe here."
+	<<else>>
+		"It's okay. I just came to pick you up," <<he>> explains. <<He>> holds out <<his>> hand. "I'm not mad. Let's go home."
+	<</if>>
 <<elseif $dissociation gte 1>>
-	You take a seat on the edge of the bed. The empty gaze of your eyes causes Robin to squirm uncomfortably. Breaking the quiet, you attempt to negotiate a price. Robin cuts you off immediately.
+	You take a seat on the edge of the bed. The empty gaze of your eyes causes Robin to squirm uncomfortably. Breaking the quiet, you attempt to negotiate a price.
 	<br>
-	"Please, I'm not here for that," <<he>> says, walking over and embracing you. You're frightened at first, but a warm feeling you've missed washes over you. Then, like a flood gate going off, you let out your troubles.
+	<<if _robin.trauma gte 50>>
+		Robin recognises something in your gaze. "I'm sorry,"
+	<<else>>
+		Robin cuts you off immediately. "Please, I'm not here for that,"
+	<</if>>
+	<<he>> says, walking over and embracing you. You're frightened at first, but a warm feeling you've missed washes over you. Then, like a flood gate going off, you let out your troubles.
 	<br><br>
 
 	Your behaviour unnerves Robin, but <<he>> listens silently. You complain about everything that's been tormenting you. Robin attempts to comfort you through it all.
 	<br><br>
 
-	Once you've calmed a bit, Robin speaks. "I came to bring you home. It's not right for me to let you do this to yourself."
+	Once you've calmed a bit, Robin speaks. "I came to bring you home.
+	<<if _robin.trauma gte 50>>
+		I can't lose you. Not like this."
+	<<else>>
+		It's not right for me to let you do this to yourself."
+	<</if>>
 <<elseif $uncomfortable.prostituting is false>>
 	You take a seat on the edge of the bed. The disgust on your face is obvious, and Robin notices immediately. <<He>> walks over to you and embraces you.
 	<br><br>
 
-	"It's okay. I'm not here for that," Robin tries to comfort you. "I heard some things, and I couldn't just let this happen to you."
-	<br><br>
-	You tightly embrace Robin and let your worries out. Robin is shocked at first but seems to understand your plight. Finally, the depravity Bailey forced you to endure for not making ends meet floods out. You detail what happened to you while you were missing from the orphanage.
-	<br>
-	"Bailey is so cruel," Robin whispers while attempting to calm you. After a moment, you quiet down.
-	<br><br>
+	<<if _robin.trauma gte 50>>
+		"It's okay. I'm not going to do that," Robin rubs your back softly, though <<his>> hands are shaking.
+		"I heard some things, and the thought of losing you like this..." Robin shudders and doesn't finish <<his>> sentence.
+		<br><br>
+
+		You tightly embrace Robin and let your worries out. Robin holds you tighter as you talk.
+		Finally, the depravity Bailey forced you to endure for not making ends meet floods out. You detail what happened to you while you were missing from the orphanage.
+		<br><br>
+
+		"I wish I knew why this is happening to us. Bailey is so cruel," Robin whispers while attempting to calm you. After a moment, you quiet down.
+		<br><br>
 
-	Robin watches you for a moment before speaking, "I want you to come home. This place, it isn't right for me to let you do this to yourself."
+		Robin watches you for a moment before speaking, "I want you to come home. This place, I... I can't let you do this to yourself."
+	<<else>>
+		"It's okay. I'm not here for that," Robin tries to comfort you. "I heard some things, and I couldn't just let this happen to you."
+		<br><br>
+
+		You tightly embrace Robin and let your worries out. Robin is shocked at first but seems to understand your plight. Finally, the depravity Bailey forced you to endure for not making ends meet floods out. You detail what happened to you while you were missing from the orphanage.
+		<br>
+		"Bailey is so cruel," Robin whispers while attempting to calm you. After a moment, you quiet down.
+		<br><br>
+
+		Robin watches you for a moment before speaking, "I want you to come home. This place, it isn't right for me to let you do this to yourself."
+	<</if>>
 <<else>>
 	You take a seat on the edge of the bed while Robin sits on a couch. There's an awkward silence, broken only by the music faintly pumping from behind the walls. <<He>> wordlessly looks at you for a short while before finally speaking.
 	<br>
-	"I looked into what kind of place this is, and I heard some things about you." You see Robin tense up. Another long silence follows. Robin slowly looks up. <<His>> eyes are locked on yours.
-	<br><br>
+	<<if _robin.trauma gte 50>>
+		"I did some looking into this place... and I've heard some things about you." You see Robin tense up. Another long silence follows. Robin slowly looks up. <<His>> teary eyes are locked on yours.
+		<br><br>
 
-	"Do you still love me?"
-	<br><br>
+		"Do... do you still love me?"
+		<br><br>
 
-	<<if $submissive gte 1150>>
-		"O-of course I love you. I have to do this for money," you stammer. "F-for Bailey."
-	<<elseif $submissive lte 850>>
-		"Why would you ask that? Of course I do. I have to do this to make ends meet," you explain.
+		<<if $submissive gte 1150>>
+			"O-of course I love you. I have to do this for money," you stammer. "F-for Bailey."
+		<<elseif $submissive lte 850>>
+			"Why would you ask that? Of course I do. I have to do this to make ends meet," you explain.
+		<<else>>
+			"I do love you. This is the only line of work that'll meet Bailey's demands," you explain.
+		<</if>>
+		<br>
+		Robin nods in understanding, but the tears still flow. <<He>> rises from the couch and sits next to you. You feel Robin embrace you. You return the gesture.
+		<br><br>
+
+		"It's not right," Robin says. "I want you to come home. I'll always be there for you, like you're there for me. We can figure something out together." <<He>> releases you with red puffy eyes.
 	<<else>>
-		"I do love you. This is the only line of work that'll meet Bailey's demands," you explain.
-	<</if>>
-	<br>
-	Robin nods in understanding, but appears conflicted about something. <<He>> rises from the couch and sits next to you. You feel Robin embrace you. You return the gesture.
-	<br><br>
+		"I looked into what kind of place this is, and I heard some things about you." You see Robin tense up. Another long silence follows. Robin slowly looks up. <<His>> eyes are locked on yours.
+		<br><br>
+
+		"Do you still love me?"
+		<br><br>
 
-	"It's not right," Robin says. "I want you to come home. We can figure something out, but I can't let you do this to yourself." <<He>> releases you with tears in <<his>> eyes.
+		<<if $submissive gte 1150>>
+			"O-of course I love you. I have to do this for money," you stammer. "F-for Bailey."
+		<<elseif $submissive lte 850>>
+			"Why would you ask that? Of course I do. I have to do this to make ends meet," you explain.
+		<<else>>
+			"I do love you. This is the only line of work that'll meet Bailey's demands," you explain.
+		<</if>>
+		<br>
+		Robin nods in understanding, but appears conflicted about something. <<He>> rises from the couch and sits next to you. You feel Robin embrace you. You return the gesture.
+		<br><br>
+
+		"It's not right," Robin says. "I want you to come home. We can figure something out, but I can't let you do this to yourself." <<He>> releases you with tears in <<his>> eyes.
+	<</if>>
 <</if>>
 <br><br>
 
 <<if $robinBrothelVisit is undefined>><<set $robinBrothelVisit to 1>><</if>>
 
-<<link [[Go with Robin|Robin Brothel 3]]>><<set $phase to 0>><<npcincr Robin love 5>><<npcincr Robin dom 5>><</link>><<gglove>><<ggdom>>
+<<link [[Go with Robin|Robin Brothel 3]]>><<set $phase to 0>><<npcincr Robin love 5>><<npcincr Robin dom 5>><<npcincr Robin trauma -5>><</link>><<gglove>><<ggdom>><<lrtrauma>>
 <br>
 <<link [[Stay here|Robin Brothel 3]]>><<set $phase to 1>><<npcincr Robin love -1>><</link>><<llove>>
 <br>
 
 :: Robin Brothel 3
 <<set $outside to 0>><<set $location to "brothel">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if $phase is 0>>
 	Robin smiles. "Thank you."
@@ -3937,7 +4210,12 @@ You notice a look of disgust on Robin's face. Furrowing <<his>> eyebrows, <<he>>
 		<br>
 		"Oh, aren't you just the cutest thing," <<he>> says in a low voice. "You should know better than to ride the bus at night."
 		<br>
-		Robin stirs and frowns. "Leave <<phim>> alone, or I'll call for help."
+		Robin stirs and frowns.
+		<<if _robin.trauma gte 50>>
+			<<He>> holds you close, trying to protect you as best <<he>> can.
+		<<else>>
+			"Leave <<phim>> alone, or I'll call for help."
+		<</if>>
 		<br><br>
 
 		The <<personsimple>> smiles, amused, and glances over at the <<person3>><<person>> beside <<person2>><<him>>, who shrugs.
@@ -3969,28 +4247,37 @@ You notice a look of disgust on Robin's face. Furrowing <<his>> eyebrows, <<he>>
 		You shake your head, "Bailey is gonna do this to both of us if I can't pay. I'm sorry."
 	<</if>>
 	<br><br>
-
-	Robin looks at you in disbelief. "I don't want to see you violate yourself, even if it's for our own good."
-	<<He>> grabs your shoulders. <<His>> hands are shaking. "Just, please come home!"
+	Robin looks at you in disbelief.
+	<<if _robin.trauma gte 50>>
+		"B-but... please. We can do this together. We can find another way. One that won't hurt us..."
+		<<He>> looks down, <<his>> hands are shaking. "Just, please come home..." <<His>> voice becomes a low whimper.
+	<<else>>
+		"I don't want to see you violate yourself, even if it's for our own good."
+		<<He>> grabs your shoulders. <<His>> hands are shaking. "Just, please come home!"
+	<</if>>
 	<br><br>
 
 	You're not sure if you want to be here at all, but you realise you have to be firm if you want to keep this going.
 	<br><br>
 
-	<<link [[Go with Robin|Robin Brothel 3]]>><<set $phase to 0>><<npcincr Robin love 3>><</link>><<glove>>
+	<<link [[Go with Robin|Robin Brothel 3]]>><<set $phase to 0>><<npcincr Robin love 3>><<npcincr Robin trauma -2>><</link>><<glove>><<lrtrauma>>
 	<br>
-	<<link [[Insist on staying|Robin Brothel 3]]>><<set $phase to 2>><<npcincr Robin love -10>><<npcincr Robin dom -20>><</link>><<lllove>><<llldom>>
+	<<link [[Insist on staying|Robin Brothel 3]]>><<set $phase to 2>><<npcincr Robin love -10>><<npcincr Robin dom -20>><<npcincr Robin trauma 4>><</link>><<lllove>><<llldom>><<grtrauma true>>
 	<br>
 <<elseif $phase is 2>>
 	You don't budge, despite Robin's despair at the thought of you working here. <<He>> falls silent and nods in defeat.
 	Tears roll down <<his>> cheeks, and <<he>> looks at you to reconsider. You don't.
 	<br><br>
-
-	"Okay. I'll leave you alone. Just..." Robin stammers over <<his>> own words. "Be careful."
+	<<if _robin.trauma gte 50>>
+		"I'm sorry I bothered you..."
+	<<else>>
+		"Okay. I'll leave you alone. Just..."
+	<</if>>
+	Robin stammers over <<his>> own words. "Be careful."
 	<br><br>
 
 	Robin glances at you through teary eyes one more time before leaving the room, the door shutting quietly behind <<him>>.
-	<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>
+	<<stress 6>><<trauma 6>><<gstress>><<gtrauma>><<npcincr Robin trauma 4>><<grtrauma true>>
 	<br><br>
 
 	<<link [[Next|Brothel]]>><<endevent>><</link>>
@@ -3999,30 +4286,55 @@ You notice a look of disgust on Robin's face. Furrowing <<his>> eyebrows, <<he>>
 
 :: Robin Brothel Home
 <<set $outside to 0>><<set $location to "home">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 You arrive at the orphanage and step off the bus. Robin walks you to your room.
 <br><br>
 
 <<if $robinBrothelVisit gte 1>>
-	<<He>> smiles at you. "I'm glad you're home. I'm sure we'll think of something."
-	<<He>> holds you in <<his>> arms for a moment, stroking the back of your head gently.
-	<br>
-	"You don't need to go through this alone," <<he>> whispers. "We'll get through it. Bailey won't stop us."
-	<br>
-	<<He>> squeezes you tight before pulling away. <<Hes>> still smiling.
+	<<if _robin.trauma gte 50>>
+		<<He>> forces a smile. "Thank you for coming with me," <<he>> smiles through teary eyes.
+		"Just thinking about losing you terrifies me..." <<He>> clings tightly, <<his>> arms trembling nervously around you.
+		<br>
+		"You don't need to go through this alone," <<he>> sobs. "We'll get through it. Bailey won't stop us. We won't let <<nnpc_him "Bailey">>."
+		<br>
+		<<He>> squeezes you tight before pulling away reluctantly. <<Hes>> still smiling, albeit through teary eyes.
+	<<else>>
+		<<He>> smiles at you. "I'm glad you're home. I'm sure we'll think of something."
+		<<He>> holds you in <<his>> arms for a moment, stroking the back of your head gently.
+		<br>
+		"You don't need to go through this alone," <<he>> whispers. "We'll get through it. Bailey won't stop us."
+		<br>
+		<<He>> squeezes you tight before pulling away. <<Hes>> still smiling.
+	<</if>>
 <<else>>
-	Once you're inside, <<he>> speaks. "I'm sorry. I don't want to tell you your business, but I care about you, and..."
-	<<He>> sighs, looking dejected. "I hope you're not mad."
-	<br>
-	You put a hand on Robin's shoulder and gently reassure <<him>>. It seems to lift <<his>> spirts a little.
-	"We'll think of something," <<he>> says, smiling weakly.
+	<<if _robin.trauma gte 50>>
+		Once you're inside, Robin sits on the bed.
+		<br><br>
+		You put a hand on Robin's shoulder and gently reassure <<him>>. It seems to lift <<his>> spirts a little.
+		<br><br>
+		"I'm sorry. I really care about you, and..." <<He>> sighs, looking dejected. "Please don't be mad... I just don't want you to end up like me."
+		<br>
+		You hold <<him>> close to you until <<he>> stops shaking. "We'll think of something," <<he>> says, smiling weakly.
+	<<else>>
+		Once you're inside, <<he>> speaks. "I'm sorry. I don't want to tell you your business, but I care about you, and..."
+		<<He>> sighs, looking dejected. "I hope you're not mad."
+		<br>
+		You put a hand on Robin's shoulder and gently reassure <<him>>. It seems to lift <<his>> spirts a little.
+		"We'll think of something," <<he>> says, smiling weakly.
+	<</if>>
 <</if>>
 <br><br>
 
 <<if $daystate is "night">>
-	Robin glances at the clock. "It's getting late," <<he>> yawns. "Get some rest. We could both use some."
+	Robin glances at the clock.
+	<<if _robin.trauma gte 50>>
+		<<He>> yawns. "I guess I'll go back to my room now," <<he>> says reluctantly.
+	<<else>>
+		"It's getting late," <<he>> yawns. "Get some rest. We could both use some."
+	<</if>>
 	<br><br>
-	
+
 	<<link [[Nod|Robin Brothel Sleep]]>><<set $phase to 0>><</link>>
 	<br>
 	<<link [[Ask Robin to stay with you|Robin Brothel Sleep]]>><<set $phase to 1>><<stress -6>><<trauma -6>><<npcincr Robin love 1>><<npcincr Robin dom 1>><<npcincr Robin lust 1>><</link>><<lstress>><<ltrauma>><<glove>><<gdom>><<glust>>
@@ -4030,24 +4342,36 @@ You arrive at the orphanage and step off the bus. Robin walks you to your room.
 <<else>>
 	Robin stays in your room for a bit, making sure you're okay. After a few minutes, <<he>> kisses you on the cheek and stands.
 	<br>
-	"I'm going back to my room," <<he>> says. <<He>> lingers in the doorway for a moment, staring at you with concern. "Stay safe."
+	<<if _robin.trauma gte 50>>
+		"I guess I'll go back to my room," <<he>> says reluctantly. <<He>> lingers in the doorway for a moment, staring at you with concern. "Stay safe."
+	<<else>>
+		"I'm going back to my room," <<he>> says. <<He>> lingers in the doorway for a moment, staring at you with concern. "Stay safe."
+	<</if>>
 	<br><br>
 	<<He>> shuffles into the hallway, leaving you alone in your room.
 	<br><br>
-	
+
 	<<link [[Next|Bedroom]]>><<endevent>><</link>>
 	<br>
 <</if>>
 
 :: Robin Brothel Sleep
 <<set $outside to 0>><<set $location to "home">><<effects>>
+<<set _robin to statusCheck("Robin")>>
 
 <<if $phase is 0>>
-	You nod and bid Robin goodnight. <<He>> smiles and kisses you on the cheek before leaving.
-	<br>
-	"See you tomorrow," <<he>> says. <<He>> lingers in the doorway for a moment, staring at you with concern. "Stay safe."
-	<br><br>
-
+	<<if _robin.trauma gte 50>>
+		You nod and bid Robin goodnight. <<He>> gives you a tight hug, and holds you for what feels like forever. You try to shift around, prompting <<him>> to let go.
+		<br>
+		Robin tries to leave, but stops at the door. <<He>> stares at you with concern, as if afraid something will happen to you once <<he>> leaves.
+		"Please be safe," <<he>> manages, before leaving and gently closing the door behind <<him>>.
+	<<else>>
+		You nod and bid Robin goodnight. <<He>> smiles and kisses you on the cheek before leaving.
+		<br>
+		"See you tomorrow," <<he>> says. <<He>> lingers in the doorway for a moment, staring at you with concern. "Stay safe."
+	<</if>>
+	<br><br>
+
 	<<He>> shuffles into the hallway, leaving you alone in your room.
 	<br><br>
 
@@ -4062,12 +4386,1379 @@ You arrive at the orphanage and step off the bus. Robin walks you to your room.
 	Robin flicks the light off, and you hear clothes rustling as <<he>> undresses.
 	You do the same and hop into your bed, scooting to the side and making room for Robin. <<He>> cuddles up beside you, nuzzling into your neck.
 	<br>
-	"Goodnight," <<he>> murmurs. <<His>> arms wrap around you, and <<he>> holds you tight. "I promise, I'll do everything I can for you..."
+	<<if _robin.trauma gte 50>>
+		Robin clings tightly to you, almost as if afraid that you will disappear if <<he>> lets go. "I don't know what I'd do without you..."
+		<br><br>
+
+		Robin's tight grip on you eventually settles down. It doesn't take long for the two of you to fall asleep in each other's embrace.
+	<<else>>
+		"Goodnight," <<he>> murmurs. <<His>> arms wrap around you, and <<he>> holds you tight. "I promise, I'll do everything I can for you..."
+	<</if>>
 	<br><br>
-	
+
 	<<Hes>> soon out like a light, <<his>> gentle breaths tickling your skin.
 	<br><br>
-	
-	<<link [[Sleep|Bed]]>><<endevent>><<undressSleep "bed">><<set $robinbed to 1>><<trauma -6>><<stress -12>><</link>>
+
+	<<link [[Sleep|Bed]]>><<endevent>><<undressSleep "bed">><<set $robinbed to "yours">><<trauma -6>><<stress -12>><</link>>
+	<br>
+<</if>>
+
+:: Robin Room Wake
+<<set $outside to 0>><<set $location to "home">><<effects>>
+<<npc Robin>><<person1>>
+<<set _robin to statusCheck("Robin")>>
+<!-- Phase 0: Robin's still asleep / Phase 1: Robin wakes up with the player / Phase 2: Robin's already awake / Phase 3: Robin is not present -->
+<<if $phase is 3>>
+	<<storeon "bed">>
+	You're alone in Robin's room.
+	<br><br>
+
+	<<link [[Leave|Orphanage]]>><<endevent>><</link>>
+	<br>
+<<elseif $hour lte 5 or $hour gte 21>>
+	You wake up before Robin does.
+	<br><br>
+
+	<<link [[Go back to sleep|Robin Bed]]>><<set $wear_outfit to "none">><</link>>
 	<br>
-<</if>>
\ No newline at end of file
+	<<link [[Leave|Orphanage]]>><<endevent>><<storeon "bed">><</link>>
+<<else>>
+	<<storeon "bed">>
+	<<if $phase is 0>> <!-- player wakes up before robin -->
+		<<if $rng gte 75>>
+			<<if _robin.trauma gte 50>>
+				Robin holds you tightly in <<his>> sleep, <<his>> face covered in a cold sweat. <<He>> wakes up as you move and groggily smiles at you.
+				"With you here, I feel like everything's going to be ok."
+			<<else>>
+				Robin holds you in <<his>> sleep. <<He>> wakes up as you move and groggily smiles at you. "Morning..." <<he>> yawns.
+			<</if>>
+		<<elseif $rng gte 50>>
+			You gently wake Robin, who groans and slowly pulls <<himself>> out of bed. "Morning..." <<he>> yawns.
+		<<elseif $rng gte 25>>
+			Robin drools in <<his>> sleep. You gently wake <<him>> and hand <<him>> a tissue. "Huh? Oh! Thank you," <<he>> says with red cheeks.
+		<<else>>
+			<<if _robin.trauma gte 50>>
+				Robin cries in <<his>> sleep. You wake <<him>> up. <<He>> bolts awake with wide eyes, but calms down when <<he>> sees you.
+			<<else>>
+				You go to wake Robin. <<He>> reluctantly opens <<his>> eyes, but smiles when <<he>> sees you.
+			<</if>>
+		<</if>>
+	<<elseif $phase is 1>> <!-- robin waking up at the same time as the player -->
+		<<if $rng gte 75>>
+			Robin groggily gets ready for the day, occasionally mumbling some casual talk your way.
+		<<elseif $rng gte 50>>
+			Robin crawls out of bed, not quite ready to fully wake up.
+		<<elseif $rng gte 25>>
+			Robin yawns before rolling over, a smile appearing on <<his>> sleepy face when <<he>> sees you looking back at <<him>>. "I'm happy you're here," <<he>> says.
+		<<else>>
+			Robin groans, mumbling something about <<if $schoolday is 1>>homework<<else>>today's plans<</if>>.
+		<</if>>
+	<<else>> <!-- robin awake before player -->
+		<<if $rng gte 75>>
+			Robin eats a sandwich on the bed. "Oh, do you want some?" <<He>> gives you half.
+		<<elseif $rng gte 50>>
+			<<if $robinconsole is 1>>
+				Robin plays an intense video game. <<He>> tries to make casual conversation, but is too focused on <<his>> game.
+			<<else>>
+				Robin reads a young adult novel. "It's not as good as I thought it'd be," <<he>> says.
+			<</if>>
+		<<elseif $rng gte 25>>
+			Robin looks at <<his>> wardrobe. "Do you think I should get something new?" <<He>> asks. "I'm thinking a hat."
+		<<else>>
+			<<if _robin.trauma gte 50>>
+				Robin looks like <<he>>'s been crying. "It's nothing, really," <<he>> assures you.
+			<<else>>
+				Robin kicks <<his>> feet idly. "Do you want to do something today?"
+			<</if>>
+		<</if>>
+	<</if>>
+	<br><br>
+
+	<<robinoptions>>
+<</if>>
+
+:: Robin Mist Intro
+<<set $location to "landfill">><<set $outside to 1>><<effects>>
+<<npc Robin>><<person1>>
+<<run statusCheck("Robin")>>
+<<set $mistrobinintro to 1>>
+
+You desperately call out Robin's name again as you enter the deepest parts of the landfill. Your voice gets hoarse.
+<br><br>
+
+Out of the silence, you can hear faint but distinctly human sounds, almost as if pained. You pick up the pace as you rush towards the source.
+Then, turning a corner, you see a <<personsimple>>, bound by <<his>> hands and legs to a thin metal pole in the centre of the clearing.
+<span class="green">It's Robin.</span> <<Hes>> been stripped naked and blindfolded, and you can see dirt and sweat coating <<his>> body.
+<<His>> wrists are raw where the ropes bind them to the pole.
+Some sort of device has been strapped over <<his>> mouth and nose, with a small canister attached on the side.
+<br><br>
+
+You remove the blindfold. <<His>> eyes flutter open and closed.
+<<if $submissive gte 1150>>
+	"R-Robin!" you cry. Please be okay..." You remove the device and quickly place it on the ground.
+<<elseif $submissive lte 850>>
+	"Robin! Who did this to you?" you demand, removing the device from <<his>> mouth before crushing it with your foot.
+<<else>>
+	"Robin! Are you alright?" you ask. "I'll get you down." You unhook the device and let it drop to the ground.
+<</if>>
+<br><br>
+
+The device lets out a steady stream of pink mist, and Robin starts to cough violently.
+You untie <<him>>, then lower <<him>> down on the ground as gently as you can while <<he>> coughs.
+<<His>> skin is uncomfortably warm to the touch.
+<br><br>
+
+Robin sits on <<his>> knees for a few moments and gradually stops coughing. You lay a gentle hand on <<his>> back.
+<<He>> turns <<his>> head and looks at you, <<his>> pupils heavily dilated and <<his>> face flushed.
+<<if $awareness gte 200>>
+	You recognize the sweet smell on <<his>> breath as a powerful aphrodisiac. <span class="red">You wonder how long <<he>> was hooked up to the canister.</span>
+<</if>>
+<br><br>
+
+"I... I need you," Robin says, <<his>> voice slurred and shaky. <<He>> extends an arm to you. You grab it.
+<br><br>
+
+<<if $submissive gte 1150>>
+	"I need you too," you say, holding <<his>> hand tightly.
+<<elseif $submissive lte 850>>
+	"Hey, I know, that's why I'm here. You're okay now," you say as you reassure <<him>>.
+<<else>>
+	"I'm here, don't worry," you say as you try to reassure <<him>>.
+<</if>>
+<br><br>
+
+Robin's grip on your hand trembles, then tightens. <<His>> arm reaches up yours, and with a sudden jerk, <span class="red"><<he>> pushes you to the ground.</span>
+<br><br>
+
+"You don't get it," <<he>> whimpers. "I need you." <<He>> climbs on top of you, eyes filled with lust and tears.
+<br><br>
+
+<<if $submissive gte 1150>>
+	"R-Robin? What are you-" You're interrupted by Robin lunging for you. You start to panic.
+<<elseif $submissive lte 850>>
+	"Hey! Cut that out, I'm trying to help you!" You start to panic.
+<<else>>
+	"Robin? What are you doing?" You start to panic.
+<</if>>
+<<if $worn.upper.name isnot "naked" or !$worn.under_upper.type.includes("naked")>>
+	Robin tugs at your clothing, threatening to tear it off.
+<</if>>
+<br><br>
+
+<<link [[Fight|Robin Mist Fight]]>><<set $molestationstart to 1>><</link>>
+<br><br>
+
+:: Robin Mist Fight
+<<run statusCheck("Robin")>>
+<<if $molestationstart is 1>>
+	<<set $robinmist to 1>>
+	<<set $noBodyWriting to true>>
+	<<set $molestationstart to 0>>
+
+	<<npcexpose>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>>
+	<<set $enemyarousalmax *= 1.5>>
+	<<npc_attempt_sex>>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<npcincr Robin trauma 2>>
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Robin Mist Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Robin Mist Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Robin Mist Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Robin Mist Fight Finish
+<<set $location to "landfill">><<set $outside to 1>><<effects>>
+<<unset $robinmist>>
+<<set $robinSeen.pushUnique("robinRape")>>
+<<set _robin to statusCheck("Robin")>>
+<<if _robin.trauma lt 25>>
+	<<set _robin.trauma to 25>>
+<</if>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	<<if $penisfucked is 1>>
+		"It feels so good to have you inside me,"
+	<<elseif $vaginafucked is 1>>
+		"It feels so good inside you,"
+	<<else>>
+		"You make me so happy,"
+	<</if>>
+	Robin mutters in an empty, barely coherent voice. "Love you."
+	<br><br>
+
+	<<if $rapetrait is 1 or $trauma gte ($traumamax / 5) * 4>>
+		"Love you too," you whisper. It's an automatic response. For a brief moment, you let yourself forget how horrible things are. In that instance, it's just you and Robin.
+		<br><br>
+
+		Reality crashes down, and you and Robin recoil from each other, horrified.
+	<<else>>
+		You gently pull away from Robin, and life flashes in <<his>> eyes. <<He>> recoils from you, horrified.
+	<</if>>
+<<elseif $enemyhealth lte 0>>
+	<<set $robin_injured to 1>>
+	Robin falls to the ground, coughing. You're afraid <<he>> might be hurt. <<He>> shakes <<his>> head after being prone for a few moments, <<his>> blush gone.
+<<else>>
+	You lose consciousness. The next thing you know, Robin is hugging you tightly with tears in <<his>> eyes.
+<</if>>
+<br><br>
+<<endcombat>>
+<<clotheson>>
+
+<<link [[Next|Robin Mist Rescue]]>><</link>>
+
+:: Robin Mist Rescue
+<<set $location to "landfill">><<set $outside to 1>><<effects>>
+<<set $robindebtevent to 0>>
+<<set $robinmissing to 0>>
+<<unset $robinmistknown>>
+<<set _robin to statusCheck("Robin")>>
+<<npc Robin>><<person1>>
+
+"I'm so sorry! Are you okay?" Robin is crying, still naked. <<His>> words broken by the occasional choked sob.
+"I'm so s-sorry! I knew what I was doing but... I couldn't..." <<He>> trails off, tears freely flowing from <<his>> face.
+<<if _robin.dom gte 50>>
+	"I'm supposed to be the one protecting you, not hurting you..."
+<<else>>
+	"I hurt you... I can never forgive myself."
+<</if>>
+<br><br>
+
+<<link [[Forgive Robin|Robin Mist Forgive]]>><<stress 10>><<npcincr Robin trauma -5>><</link>><<ggstress>><<llrtrauma>>
+<br>
+<<link [[Stay Silent|Robin Mist Silence]]>><<stress -3>><<npcincr Robin trauma 3>><</link>><<lstress>><<grtrauma true>>
+
+:: Robin Mist Forgive
+<<set $location to "landfill">><<set $outside to 1>><<effects>>
+
+<<if $submissive gte 1150>>
+	"I forgive you..." you whisper. "That wasn't you."
+<<elseif $submissive lte 850>>
+	"Hey, it's not your fault," you say. "I know you'd never do that normally."
+<<else>>
+	"You must've been through so much." You give <<him>> a weak smile. "I forgive you."
+<</if>>
+<br><br>
+
+Robin holds you for a few moments, still sobbing.
+<br><br>
+
+<<link [[Next|Robin Mist Rescue 2]]>><</link>>
+
+:: Robin Mist Silence
+<<set $location to "landfill">><<set $outside to 1>><<effects>>
+
+Words fail you.
+<br><br>
+
+Robin sobs harder at your silence. "I'm so sorry..." <<he>> says, still choking back tears.
+<br><br>
+
+<<link [[Next|Robin Mist Rescue 2]]>><</link>>
+
+:: Robin Mist Rescue 2
+<<set $location to "landfill">><<set $outside to 1>><<effects>>
+<<set $trash to 0>>
+
+After composing yourself, you hold Robin's hand and stand up.
+Robin clings to you, standing up only with your help.
+<<takeHandholdingVirginity "Robin" "consensual">>
+<br><br>
+
+As you turn however, you notice a flashing light on top of the pole Robin was strapped to. <span class="red">It's a camera.</span>
+It's pointed directly at the two of you.
+<<famerape 40>>
+<br><br>
+
+"A-are you hurt?" Robin asks. You shake your head. Robin has been through too much to know about that.
+<br><br>
+
+It's slow going back to the entrance of the landfill. Fortunately you don't run into any trouble,
+<<if $robin_injured>>
+	but Robin needs to take frequent breaks.
+<<else>>
+	but Robin's tears never stop flowing.
+<</if>>
+<br><br>
+
+Along the way you find some tattered clothing to put on <<him>>. <<He>> looks dirty, but at least <<he>> isn't naked anymore.
+<<if $exposed gt 0>>
+	You grab a bundle for yourself.
+	<<towelup>>
+<</if>>
+As you exit the landfill, Robin looks at you with red puffy eyes.
+<br><br>
+
+<<link [[Walk Robin home (1:00)|Robin Mist Walk]]>><<pass 60>><<npcincr Robin love 10>><<npcincr Robin trauma -6>><</link>><<gglove>><<llrtrauma>>
+<br>
+<<link [[Leave Robin alone|Robin Mist Abandon]]>><<npcincr Robin love -5>><<npcincr Robin trauma 5>><</link>><<lllove>><<ggrtrauma true>>
+
+:: Robin Mist Walk
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+Robin clings tightly to you the entire way home. While <<he>> has stopped crying, <<he>> still shakes and stays silent.
+<br><br>
+
+You enter the orphanage and walk Robin to <<his>> bed. <<He>> curls up into a ball on it, wrapping <<himself>> in the covers.
+You sit next to <<him>>, gently rubbing <<his>> back over the covers as the occasional sob breaks out from underneath them.
+<br><br>
+
+When Robin falls silent you leave the room, closing the door carefully as to not wake <<him>> up.
+<<run setRobinLocationOverride("sleep", numbersBetween($hour, 24))>>
+<br><br>
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+
+:: Robin Mist Abandon
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "elk">>
+
+<<if $submissive gte 1150>>
+	"C-can you make it back okay? I need some time alone..." you say, not looking Robin in the eyes.
+<<elseif $submissive lte 850>>
+	"I'll see you back at the orphanage. I need some time to think," you say.
+<<else>>
+	"I need you to make it back yourself. I need some time by myself," you say.
+<</if>>
+<br><br>
+
+Robin fidgets, but nods. "I-I understand." <<He>> begins walking towards the orphanage, looking back at you before breaking into a crying sprint.
+<<run setRobinLocationOverride("sleep", numbersBetween($hour, 24))>>
+<br><br>
+
+<<link [[Next|Elk Street]]>><<endevent>><</link>>
+
+:: Robin Pillory Intro
+<<set $outside to 0>><<set $location to "home">><<effects>>
+<<generatec1>><<person1>>
+<<npc Robin 2>>
+
+One of the younger orphans spots you in the hallway as they pass the room. "Robin's been gone for a while," <<he>> says. "Where could <<person2>><<he>> have gone?"
+<br><br>
+
+<<person1>><<He>> bombards you with questions. Another orphan soon approaches you, and does the same.
+
+"Is <<person2>><<he>> going to be okay? Where did <<he>> go?"
+<br><br>
+
+<<link [[Answer truthfully|Robin Pillory Truth]]>><</link>>
+<br>
+<<link [[Evade the question|Robin Pillory Evade]]>><</link>>
+
+:: Robin Pillory Truth
+<<set $outside to 0>><<set $location to "home">><<effects>>
+<<set $robinPillory.known to 1>>
+
+<<if $submissive gte 1150>>
+	"We got sold because we didn't pay," you say. "Robin got taken away."
+<<elseif $submissive lte 850>>
+	"That bastard Bailey sold us," you say. "Robin got taken away by whoever bought <<person2>><<him>>."
+<<else>>
+	"Bailey sold us," you say. "They took Robin away."
+<</if>>
+<br><br>
+
+"I-I saw what happened," one of the orphans around you speaks up as they muster up courage. "It was a police officer. They had Robin in cuffs."
+<br><br>
+
+<<if $submissive gte 1150>>
+	"The police took <<him>>? Can you tell me where?" You feel your pulse quicken.
+<<elseif $submissive lte 850>>
+	"What? The police?" you ask. "Where did they take him?" You ball your hands into fists.
+<<else>>
+	"The police?" you ask. "Do you know where <<he>> went?" You feel sweat form on your brow at the thought.
+<</if>>
+<br><br>
+
+"I don't know," <<person1>><<he>> responds. "I hope <<he>> doesn't end up in jail. They said they wanted to make an example."
+<br><br>
+
+"I saw <<person2>><<him>>!" a <<generatec3>><<person3>><<person>> interjects, out of breath from running. "They almost caught me, but I got lucky.
+They said they're locking <<person2>><<him>> into the pillory at <<ampm 15 00>>! On that street with the town hall!"
+<br><br>
+
+<<person3>><<His>> words strike fear into the other orphans. They look terrified.
+One of them speaks up. "T-the pillory? Oh no, we've heard so many stories... I hope Robin will be okay."
+<br><br>
+
+Another orphan interjects. "You might just be able to save <<person2>><<him>> if you get over there now."
+<<person1>><<He>> continues. "We all heard what goes on there. Don't let it happen to Robin too."
+<br><br>
+
+<span class="gold">Robin is in trouble. The officers have arranged for a public punishment at the pillory on Cliff Street.</span>
+<span class="red">You don't have much time left.</span>
+<br><br>
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+<br>
+
+:: Robin Pillory Evade
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+<<if $submissive gte 1150>>
+	"It's going to be okay," you say in an attempt to reassure them. "I'll find <<person2>><<him>>."
+<<elseif $submissive lte 850>>
+	"It's fine," you say with a brave face. "I'll handle this by myself."
+<<else>>
+	"Let me take care of this," you say. "Look after yourselves."
+<</if>>
+<br><br>
+
+They nod in response. Reluctantly, the orphans scatter, heading back to their rooms.
+<br><br>
+
+<span class="gold">Robin is in trouble. You think you remember Robin being called a <i>suspect</i> back when <<he>> was sold.</span>
+<span class="red">You don't have much time left.</span>
+<br><br>
+
+<<link [[Next|Orphanage]]>><<endevent>><</link>>
+<br>
+
+:: Robin Pillory Watch
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<set _robin to statusCheck("Robin")>>
+<<npc Robin>><<person1>>
+
+You join the crowd around the pillory on Cliff Street. Robin is locked in the town pillory. A small group watches as <<he>> is forced prone.
+<br><br>
+<<if $daystate is "day">>
+	Some of the crowd give Robin lecherous looks, however they seem unwilling to go too far in the light of day.
+<<elseif $daystate is "dusk">>
+	As the sun sets, Robin seems to be in more danger now than <<he>> was during the day.
+<<elseif $daystate is "night">>
+	Robin is in danger. In the darkness, nothing is stopping them from having their way.
+<</if>>
+<br><br>
+
+<!-- Robin's composure -->
+<<if $robinPillory.danger lte 3>>
+	<<if _robin.dom gte 70>>
+		<<He>> tries to put on a brave face by keeping <<his>> composure, but you notice <<his>> knees are shaking.
+	<<else>>
+		<<He>> is terrified, remaining at the mercy of the crowd. <<His>> body trembles violently.
+	<</if>>
+	<br><br>
+
+	<<switch random(1, 8)>>
+		<<case 1>>
+			A number of people, led by a <<generate2>><<person2>><<person>>, jeer and shout abuse at Robin.
+		<<case 2>>
+			The people around jeer at Robin, muttering amongst themselves.
+		<<case 3>>
+			The people around point at Robin, muttering amongst themselves.
+		<<case 4>>
+			The people around leer at Robin and take photos. Robin tries to look away from the cameras.
+		<<case 5>>
+			The people around amuse themselves by mocking Robin.
+		<<case 6>>
+			A <<generate2>><<person2>><<person>> tries to reason with the crowd, claiming Robin is innocent. Many people
+			<<print either("look ashamed, with some even leaving.", "ignore <<him>> and continue their jeering.")>>
+		<<case 7>>
+			A <<generate2>><<person2>><<person>> throws fruit at Robin. Unable to move or defend <<person1>><<himself>>, it hits <<him>> directly in the face.
+			<<if _robin.dom gte 70>>
+				Robin closes <<his>> eyes and tries not to give them a reaction. The <<person2>><<person>> is unamused by this.
+			<<else>>
+				Robin yelps in pain as the fruit juice gets into <<his>> eyes.
+			<</if>>
+		<<case 8>>
+			A group of students from school pass by, gaping at Robin. They seem to recognise <<him>>.
+			<<print either("You see them gossiping amongst themselves.", "They look away in confusion.")>>
+	<</switch>>
+<<elseif $robinPillory.danger lte 7>>
+	<<if _robin.dom gte 70>>
+		Robin's brave face has slowly been chipped away, now flushed and teary eyed.
+	<<else>>
+		Robin cries out, begging for them to stop. They don't listen.
+	<</if>>
+	<<if $robinPillory.danger lte 5>>
+		<<His>> <<npcClothesText _robin "lower">> have been pulled down, revealing <<his>> <<if _robin.pronoun is "f">>pink heart print boyshorts<<else>>baby blue briefs<</if>>
+		to the crowd.
+	<<else>>
+		<<His>> ass has been exposed, making <<his>> <<if _robin.penis isnot "none">>penis<<else>>vagina<</if>> visible to all.
+		<<if _robin.breastsize gte 1>>
+			<<His>> shirt has been torn open as well, revealing <<his>> breasts to the crowd.
+		<</if>>
+	<</if>>
+	<br><br>
+
+	<<switch random(1, 4)>>
+		<<case 1>>
+			A <<generate2>><<person2>><<person>> walks up to Robin, before spanking <<person1>><<his>> ass hard.
+			Robin squeals in response as the thwack echoes throughout the street.
+		<<case 2>>
+			A <<generate2>><<person2>><<person>> walks up to the pillory before violently
+			<<print (_robin.breastsize gte 1 ? "fondling Robin's breasts" : "pinching Robin's nipples")>>.
+		<<case 3>>
+			The people around mock Robin, talking selfies with the helpless orphan. <<He>> refuses eye contact.
+		<<case 4>>
+			The people around attempt to taunt Robin, taking pictures while posing around <<him>>. Robin looks away in disgust, tears in <<his>> eyes.
+	<</switch>>
+<<elseif $robinPillory.danger lte 11>>
+	<<if _robin.dom gte 70>>
+		Robin's defiant mood has been completely stamped out.
+	<</if>>
+	<<He>> remains passive and compliant to the crowd's desires. <<His>> face looks like <<hes>> been crying for a while. <<He>> occasionally chokes out a sob.
+	<<His>> face is marked by bruises and broken fruit. Robin's clothing has all long since been discarded.
+	<<if !$robinPillory.naked>>
+		<<set $robinPillory.naked to true>>
+	<</if>>
+	<br><br>
+
+	<<switch random(1, 4)>>
+		<<case 1>>
+			Robin's face has been used to get off. It's covered in lewd fluids. <<He>> cries, <<his>> eyes red.
+		<<case 2>>
+			Robin's body is covered with hickeys and bite marks. <<He>> tries to protect what little skin <<he>> can.
+		<<case 3>>
+			Robin spits repeatedly between sobs, crying to <<himself>> about how <<his>> mouth has been violated.
+		<<case 4>>
+			A <<generate2>><<person2>><<person>> walks away from Robin with a devious grin. Robin's ass has many red handprints on it.
+	<</switch>>
+<<else>>
+	<<His>> head hangs low, and you can't see <<his>> expression. <<He>> looks terrible, <<his>> clothes are nowhere to be found, and <<his>> body is drenched in sweat, spit, and slime.
+	<<switch random(1, 4)>>
+		<<case 1>>
+			Robin tries to blink the fluids out of <<his>> eyes. <<Hes>> whimpering in pain.
+		<<case 2>>
+			Robin's body is covered in bruises. <<He>> recoils at the slightest touch.
+		<<case 3>>
+			Robin coughs violently as <<he>> spits up slime.
+		<<case 4>>
+			A <<generate2>><<person2>><<person>> and <<generate3>><<person3>><<person>> gleefully rub their genitals against Robin's cheeks.
+			They make no attempt to use Robin's mouth, seemingly content with the humiliation they're causing.
+	<</switch>>
+<</if>>
+<br><br>
+
+You look closely at the pillory. There are $robinPillory.locks locks remaining before Robin can be freed.
+<<if $robinPillory.distracted>>
+	They're distracted. Now's your chance to pick a lock.
+<<else>>
+	<<if !$robinPillory.lockpicked>>
+		It's too dangerous to try picking a lock right now. The crowd is eyeing you suspiciously.
+	<<else>>
+		You don't have much time to pick the locks, but perhaps if you distracted the crowd that would give you some more leeway.
+	<</if>>
+<</if>>
+<br><br>
+<<if $hour lte 22>>
+	<<link [[Watch Robin (0:10)|Robin Pillory Watch]]>><<pass 10>><<endevent>><</link>>
+<<else>>
+	<<link [[Watch Robin (0:10)|Robin Pillory Failure]]>><<pass 10>><<endevent>><</link>>
+<</if>>
+<br>
+<<if !$robinPillory.distracted>>
+	<<link [[Distract the crowd|Robin Pillory Distractions]]>><<endevent>><</link>>
+	<br>
+<</if>>
+<<set $skulduggerydifficulty to ($robinPillory.distracted ? 100 : 800)>>
+<<if !$robinPillory.lockpicked>>
+	<<link [[Pick a lock (0:30)|Robin Pillory Lockpick]]>><<endevent>><<set $robinPillory.distracted to 0>><<pass 10>><</link>><<skulduggerydifficulty>>
+<</if>>
+<br>
+<<link [[Leave|Cliff Street]]>><</link>>
+<br>
+
+:: Robin Pillory Failure
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<set _robin to statusCheck("Robin")>>
+<<npc Robin>><<person1>>
+<<robinPilloryFailure>>
+
+Robin's puffy red eyes are glazed over, <<his>> body covered in welts and bruises. You can see <<him>> whispering something underneath <<his>> breath.
+The crowd gradually disperses. "It's no fun when they're broken," someone mutters.
+<br><br>
+
+You approach Robin, who doesn't seem to recognise you at first. You listen to <<his>> words that <<hes>> repeating under <<his>> breath.
+<<if (_robin.vagina isnot "none" and _robin.virginity["vaginal"] is true) or _robin.virginity["anal"] is true>>
+	<br><br>
+
+	"They stole it..."
+<<else>>
+	"Stop please... I want to go home..."
+<</if>>
+Robin whispers quietly, though it sounds like <<his>> throat is hoarse.
+<br><br>
+
+<<if ($malechance gte 1 and $cbchance lte 99) or ($malechance lte 99 and $dgchance gte 1)>>
+	It is then that you notice the pool of cum leaking out of Robin's
+	<<if _robin.vagina isnot "none">>
+		vagina and asshole.
+	<<else>>
+		asshole.
+	<</if>>
+<<else>>
+	Robin shivers as the slime on <<his>> body cools in the night air.
+<</if>>
+<br><br>
+
+You hear a voice from behind you. "Back away from the convicted." A <<generatePolice 2>><<person2>><<person>> approaches Robin with a set of keys.
+"<<person1>><<His>> sentence is over now that they're done with <<him>>," <<person2>><<he>> says while unlocking the pillory. <<person1>>"<<Hes>> free to go."
+Robin collapses to the ground as soon as the pillory is opened. The <<person2>><<person>> leaves without a second glance.
+<br><br>
+
+<<link [[Next|Robin Pillory Failure 2]]>><<pass 60>><<endevent>><</link>>
+<br>
+
+:: Robin Pillory Failure 2
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<npc Robin>><<person1>>
+
+You go up to Robin and start to help <<him>> up. The crowd has completely dispersed by now, not interested in a broken toy.
+<br><br>
+
+Robin unsteadily gets to <<his>> feet and you wrap <<his>> arm around your shoulder. "No more..." <<he>> whispers under <<his>> breath. You feel your heart ache.
+<br><br>
+
+<<if $submissive gte 1150>>
+	"I'm sorry..." You don't know what else can be said.
+<<elseif $submissive lte 850>>
+	"Damn it..." you curse at your helplessness. "I should've been better."
+<<else>>
+	"Robin..." you whisper, unsure what else to say.
+<</if>>
+<br><br>
+
+<<He>> looks at you with a shred of lucidity, "It's not your fault." <<His>> lips quiver weakly, as if <<hes>> trying to smile.
+<br><br>
+
+You hold <<him>> close to you as you help the limping Robin back home.
+<br><br>
+
+<<link [[Next|Robin Pillory Failure 3]]>><</link>>
+<br>
+
+:: Robin Pillory Failure 3
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+
+You help Robin into the orphanage and back into <<his>> room. <<He>> follows meekly before collapsing on <<his>> bed.
+<br><br>
+
+<<if $submissive gte 1150>>
+	You place a gentle hand on <<him>>. <<He>> relaxes slightly, but is still very tense.
+<<elseif $submissive lte 850>>
+	You tighten your hands into fists thinking about what was done to <<him>>.
+<<else>>
+	You give <<him>> a hug, but <<he>> does not respond.
+<</if>>
+You give <<him>> time to recover, softly rubbing <<his>> back. Eventually <<he>> starts to stir.
+<br><br>
+
+"I... I want to see the good in people," Robin whispers. "But it's so hard sometimes." <<He>> doesn't elaborate further, but you commiserate with <<him>>.
+Robin stays face down on <<his>> bed for a few more minutes before turning over and looking you in the eye.
+<br><br>
+
+"Good people are still here though, you and all the orphans. Maybe together we can... change things. Make the town better and..." Robin winces.
+And all hope vanishes from <<his>> voice as <<he>> touches a bruise on <<his>> face. "Who am I kidding? They'll always exist." A tear slides down Robin's cheek.
+<br><br>
+
+<<link [[Comfort|Robin Pillory Failure Optimism]]>><</link>>
+<br>
+<<link [[Be realistic|Robin Pillory Failure Pessimism]]>><</link>>
+<br>
+
+:: Robin Pillory Failure Optimism
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<run statusCheck("Robin")>>
+
+<<if $submissive gte 1150>>
+	"Come what may, we can do this. Together." You smile softly.
+<<elseif $submissive lte 850>>
+	"We'll be alright, we just need to show them we're not to be messed with," you say while giving Robin's hand a firm squeeze.
+<<else>>
+	"Everything will turn out alright in the end," you say as you smile at Robin.
+<</if>>
+<br><br>
+
+Robin tries to smile. "I'm glad you think so. I don't want to lose hope." <<He>> hugs you, and for a moment you can feel <<his>> positivity shine through you.
+You stay like that for a while before <<his>> breaths slow down and <<he>> falls asleep in your arms.
+<<npcincr Robin trauma -5>><<trauma -4>><<ltrauma>><<lrtrauma>>
+<br><br>
+
+You gently put <<him>> down on <<his>> bed and tuck <<him>> in. "Goodnight Robin," you whisper before closing the door.
+<<run setRobinLocationOverride("sleep", numbersBetween(1, 24))>>
+<br><br>
+
+<<link [[Leave|Orphanage]]>><<endevent>><</link>>
+
+
+:: Robin Pillory Failure Pessimism
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<run statusCheck("Robin")>>
+
+<<if $submissive gte 1150>>
+	"The world is cruel, and being safe in it is... hard," your voice trembles slightly.
+<<elseif $submissive lte 850>>
+	"We have to make our own place in the world. Few people are nice like you," you say, looking up at the ceiling.
+<<else>>
+	"I don't know if we'll ever be safe," you say, not wanting to hide the truth.
+<</if>>
+<br><br>
+
+Robin frowns but nods, "T-thanks for being honest with me." <<He>> takes a deep breath before sitting up next to you.
+<<He>> hugs you, and you hug <<him>> back. You stay like that for a while before <<his>> breaths slow down and <<he>> falls asleep in your arms.
+<br><br>
+
+You gently put <<him>> down on <<his>> bed and tuck <<him>> in. "Goodnight Robin," you whisper before closing the door.
+<<run setRobinLocationOverride("sleep", numbersBetween($hour, 24))>>
+<br><br>
+
+<<link [[Leave|Orphanage]]>><<endevent>><</link>>
+
+:: Robin Pillory Lockpick
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<set _robin to statusCheck("Robin")>>
+<<npc Robin>><<person1>>
+<<set $robinPillory.distracted to 0>>
+
+You begin to lockpick one of the locks keeping Robin in the pillory.
+<<skulduggerycheck>>
+<br><br>
+
+<<if $skulduggerysuccess is 1>>
+	With a click, <span class="green">you feel one of them unlock.</span> The crowd is none the wiser to your deed.
+	<<set $robinPillory.locks -= 1>>
+	<br><br>
+	<<if $robinPillory.locks gte 1>>
+		<<if $robinPillory.danger lte 3>>
+			<<if _robin.dom gte 70>>
+				"Thank you so much. I knew I could count on you," Robin says, giving you a weak smile.
+			<<else>>
+				"Please, hurry!" Robin says, still shaking.
+			<</if>>
+		<<elseif $robinPillory.danger lte 7>>
+			"Thank you," Robin says weakly.
+		<<elseif $robinPillory.danger lte 11>>
+			Robin tries to say something, but it gets caught in <<his>> throat as <<he>> sobs.
+		<<else>>
+			Robin doesn't seem to notice your presence. You hope it's not too late.
+		<</if>>
+	<<else>>
+		As the final lock becomes undone you open the pillory.
+		<br><br>
+
+		<<if $robinPillory.danger lte 3>>
+			Robin's eyes are filled with tears as <<he>> smiles at you. "I thought I was a goner."
+		<<elseif $robinPillory.danger lte 7>>
+			Robin hugs you tightly immediately afterwards. "Let's go home..."
+		<<elseif $robinPillory.danger lte 11>>
+			Robin sobs and holds you tightly. <<He>> doesn't seem to want to let go.
+		<<else>>
+			You shake Robin, who eventually recognises you. Wordlessly you wrap <<his>> arm around your shoulders and begin to move <<him>> to safety.
+		<</if>>
+		<br><br>
+
+		A <<generate2>><<person2>><<person>> points at the two of you. "Hey! <<pShes>> letting it get away!" With Robin in tow, you tightly grab <<person1>><<his>> hand and run.
+	<</if>>
+<<else>>
+	You feel that you're almost there when you hear a voice yell at you. <span class="red">"Hey, <<pshes>> trying to let <<him>> free!"</span>
+	You immediately halt in your tracks and hide your tools.
+	<<stress 10>><<ggstress>>
+	<br><br>
+
+	You back off, but the crowd seems to be more agitated. You'll have to wait a bit before you're safe to try again.
+<</if>>
+<<set $robinPillory.lockpicked to 1>>
+<br><br>
+
+<<if $robinPillory.locks is 0>>
+	<<link [[Next|Robin Pillory Escape]]>><<set $molestationstart to 1>><<endevent>><</link>>
+<<elseif $hour lte 22>>
+	<<link [[Next|Robin Pillory Watch]]>><<endevent>><</link>>
+<<else>>
+	<<link [[Next|Robin Pillory Failure]]>><<endevent>><</link>>
+<</if>>
+
+:: Robin Pillory Distractions
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<if !$robinPillory.distractions>>
+	<<set $robinPillory.distractions to []>>
+<</if>>
+
+You try to come up with a way to distract the crowd from Robin.
+<br><br>
+
+<<if !$robinPillory.distractions.includes("speech")>>
+	<<link [[Shame them for their actions (1:00)|Robin Pillory Speech]]>><<pass 60>><</link>><<englishdifficulty 1 600>>
+	<br>
+<</if>>
+<<if !$robinPillory.distractions.includes("fruit")>>
+	<<link [[Catch the fruit (1:00)|Robin Pillory Fruit]]>><<pass 60>><</link>><<dancedifficulty 1 600>>
+	<br>
+<</if>>
+<<if $money gte 20000 and !$robinPillory.distractions.includes("money")>>
+	<<link [[Distract with money (1:00 £200)|Robin Pillory Money]]>><<set $money -= 20000>><<pass 60>><</link>>
+	<br>
+<</if>>
+<<if !$robinPillory.distractions.includes("crime")>>
+	<<link [[Create a disturbance (1:00)|Robin Pillory Crime]]>><<pass 60>><<crimeup 100>><</link>><<gcrime>>
+	<br>
+<</if>>
+<<if $money gte 2000 and !$robinPillory.distractions.includes("flower")>>
+	<<link [[Make Robin unappealing (1:00 £20)|Robin Pillory Flower]]>><<pass 60>><</link>><<tendingdifficulty 1 600>>
+	<br>
+<</if>>
+<<if $hour lte 22>>
+	<<link [[Back|Robin Pillory Watch]]>><</link>>
+<<else>>
+	<<link [[Back|Robin Pillory Failure]]>><</link>>
+<</if>>
+<br>
+
+:: Robin Pillory Speech
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<npc Robin>><<person1>>
+
+Making your way in front of the pillory in the centre of the crowd's attention,
+<<if $submissive gte 1150>>
+	you swallow your anxiety and begin to speak for Robin's sake. "Robin is innocent!" You spend your time detailing how kindhearted Robin is.
+<<elseif $submissive lte 850>>
+	you feel your hands ball into fists as you watch Robin be abused. You can't take them all however, so you decide to use your words.
+	"You fuckers should be ashamed of yourselves! Look at what you're doing to <<him>>!" You spend your time berating the audience.
+<<else>>
+	you try to dissuade the crowd from their current actions with your words.
+	"Robin didn't do anything wrong!" You spend your time talking about how wrong this whole situation is.
+<</if>>
+<br><br>
+
+<<if $englishSuccess>>
+	The crowd begins <span class="green">bickering amongst themselves</span>, though only some leave.
+	<<set $robinPillory.distracted to 1>>
+	<br><br>
+
+	<span class="gold">The crowd is distracted, now is your chance to pick the locks.</span>
+	<<set $robinPillory.distractions.push("speech")>>
+	<br><br>
+
+<<else>>
+	The crowd begins throwing fruit at you instead, <span class="red">ignoring your words</span> and continuing to harass Robin.
+	<<pain 6>><<gstress>>
+	<br><br>
+
+<</if>>
+<<if $hour lte 22>>
+	<<link [[Next|Robin Pillory Watch]]>><</link>>
+<<else>>
+	<<link [[Next|Robin Pillory Failure]]>><</link>>
+<</if>>
+<br>
+
+:: Robin Pillory Fruit
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+
+You eye a group of delinquents, arms full of fruit and glaring at Robin. An idea strikes you.
+<br><br>
+
+One of the delinquents takes a fruit and lobs it at Robin's head.
+<br><br>
+
+<<if $danceSuccess>>
+	<span class="green">You catch it</span>, and the next dozen they throw. They get more desperate the more you catch. Robin looks at you, eyes wide.
+	<br><br>
+
+	People in the crowd start to take notice at their failure, some being jeering and mocking them instead of Robin for the time being.
+	<br><br>
+
+	<span class="gold">The crowd is distracted, now is your chance to pick the locks.</span>
+	<<set $robinPillory.distracted to 1>>
+	<<set $robinPillory.distractions.push("fruit")>>
+<<else>>
+	You attempt to catch it but <span class="red">it hits you in the face</span>. The delinquents are emboldened by their success and throw more aimed at you specifically.
+	You run away from the pillory until they lose sight of you.
+	<<pain 6>><<gpain>>
+<</if>>
+<br><br>
+
+<<if $hour lte 22>>
+	<<link [[Next|Robin Pillory Watch]]>><</link>>
+<<else>>
+	<<link [[Next|Robin Pillory Failure]]>><</link>>
+<</if>>
+<br>
+
+:: Robin Pillory Money
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+
+An idea strikes you. You grab a fistful of cash and walk behind the crowd before throwing it in the air.
+You quickly follow it with a second as the sudden movement garners the attention of more and more people.
+<br><br>
+
+Seeing free money, many members of the crowd starts frantically trying to pick it up.
+<br><br>
+
+<span class="gold">That should distract them for a while.</span>
+<<set $money -= 20000>>
+<<set $robinPillory.distracted to 1>>
+<<set $robinPillory.distractions.push("money")>>
+<br><br>
+
+<<if $hour lte 22>>
+	<<link [[Next|Robin Pillory Watch]]>><</link>>
+<<else>>
+	<<link [[Next|Robin Pillory Failure]]>><</link>>
+<</if>>
+<br>
+
+:: Robin Pillory Crime
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+
+You sneak your way outside the crowd and into a nearby shop. Once inside you wait until nobody is looking and move to break open the fire alarm.
+<br><br>
+
+With a loud blaring noise, the fire alarm rings out from the shop into the street. You sneak your way out in the confusion.
+With the people in the crowd now looking for a nonexistent fire, <span class="gold">they should be distracted for a while.</span>
+<<set $robinPillory.distracted to 1>>
+<<set $robinPillory.distractions.push("crime")>>
+<br><br>
+
+<<if $hour lte 22>>
+	<<link [[Next|Robin Pillory Watch]]>><</link>>
+<<else>>
+	<<link [[Next|Robin Pillory Failure]]>><</link>>
+<</if>>
+<br>
+
+:: Robin Pillory Flower
+<<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "cliff">>
+<<npc Robin>><<person1>>
+
+You approach Robin.
+<<switch $robinPillory.danger>>
+	<<case 0 1 2 3 4 5 6 7>>
+		<<He>> looks at you, relieved.
+	<<case 8 9 10 11>>
+		<<He>> looks at you through teary eyes.
+	<<default>>
+		<<He>> doesn't seem to acknowledge your presence.
+<</switch>>
+<br><br>
+
+<<if $submissive gte 1150>>
+	"I have an idea. I'm going to cover you in a foul smelling plant okay? That should make you less appealing," you explain your plan to Robin.
+<<elseif $submissive lte 850>>
+	"I'm going to coat you in something that stinks alright? Those bastards won't want to touch you if you're dirty," you explain.
+<<else>>
+	"I need to cover you in something foul," you try to explain. "It'll make them less interested in you."
+<</if>>
+<br><br>
+
+<<if $robinPillory.danger lte 7>>
+	"If you're sure it'll work," Robin sighs. "I trust you, and I'd rather this than something else."
+<<elseif $robinPillory.danger lte 11>>
+	Robin nods meekly.
+<<else>>
+	Robin blinks, eyes still focused on something far away.
+<</if>>
+<br><br>
+
+You run off to a nearby gardening store and start looking for something that will work.
+<<if $tendingSuccess>>
+	<span class="green">You find a flower that, while innocuous normally, can be worked into a terrible smelling paste.</span>
+	You purchase enough of it to coat Robin and get to work. It takes a while, but you return to Robin with the paste.
+	<br><br>
+
+	<<if $robinPillory.danger lte 7>>
+		"That smells awful!" Robin recoils at the smell of it.
+	<<elseif $robinPillory.danger lte 11>>
+		Robin's eyes go wide and <<he>> coughs.
+	<<else>>
+		Robin's nose twitches, but <<he>> stays motionless otherwise.
+	<</if>>
+	<br><br>
+
+	You coat Robin with a thin layer of paste. The result won't last very long, but it should last long enough to <span class="gold">distract the crowd</span>.
+	<<set $robinPillory.distracted to 1>>
+	<<set $robinPillory.distractions.push("flower")>>
+<<else>>
+	You try to find something, anything that smells bad enough to repel the crowd, but are unable to. You eventually cut your losses and return to Robin.
+	<br><br>
+
+	<<if $robinPillory.danger lte 7>>
+		"It's okay, we'll think of something else!" <<He>> tries to put on a brave face.
+	<<elseif $robinPillory.danger lte 11>>
+		Robin's eyes focus on the crowd. "Oh no..."
+	<<else>>
+		Robin looks like <<he>> might cry.
+	<</if>>
+<</if>>
+<br><br>
+
+<<if $hour lte 22>>
+	<<link [[Next|Robin Pillory Watch]]>><<endevent>><</link>>
+<<else>>
+	<<link [[Next|Robin Pillory Failure]]>><<endevent>><</link>>
+<</if>>
+<br>
+
+:: Robin Pillory Escape
+
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<violence 1>>
+	<<neutral 1>>
+
+	<<generate1>>
+	<<npc Robin 2>>
+
+	<<set $enemyno to 1>>
+	<<set $enemynomax to 1>>
+
+	<<maninit>>
+	<<stalk_init>>
+	<<stalk_run>>
+	<<set $combatgoal to "confront">>
+	<<set $NPCList[0].bold to 10000>>
+	Tightly holding Robin's hand, you turn and run. <span class="pink">You are being pursued.</span>
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+<br><br>
+
+<<print either(
+	"Robin grips your hand tightly.",
+	"Robin looks back.",
+	"Robin's hand is shaking."
+)>>
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $stalk_end>>
+	<span id="next"><<link [[Next|Robin Pillory Escape End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Robin Pillory Escape]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Robin Pillory Escape End
+<<set $outside to 1>><<set $location to "town">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+
+<<person1>>
+<<if $stalk_end is "confront">>
+	<<if $feetaction is "confront">>
+		<<if $submissive gte 1150>>
+			"I can do this," you reassure yourself. "Robin, stay safe, okay?" You turn to face your pursuer.
+		<<elseif $submissive lte 850>>
+			"Keep going! I'll catch up." You give Robin a smile before turning towards your pursurer.
+		<<else>>
+			"Robin, keep moving and don't stop until you're home," you say before facing your pursuer.
+		<</if>>
+	<<else>>
+		<<if !$stalk_assess>>A pair of hands grab you<<else>>The <<person1>><<person>> grabs you<</if>> from behind.
+		<br><br>
+
+		You motion for Robin to keep running.
+	<</if>>
+	<br><br>
+
+	<<if _robin.dom gte 70>>
+		"No." Robin's hands tighten into fists. "I'm tired of being a burden." Robin turns to face them with you.
+		<br><br>
+
+		The <<person1>><<person>> glares at you. "Why'd you have to free <<person2>><<him>>, you bitch? I didn't get to fuck <<him>> yet."
+		<<person1>><<He>> grabs you roughly, shaking you. "At least the slut knows better than to keep running," <<he>> smiles at Robin who is shaking next to you.
+		"How about we go have some fu-"
+		<br><br>
+
+		Before <<he>> can continue, Robin punches <<him>> in the stomach. Hard. Robin then grabs your hand and runs while the <<person1>><<person>> recoils in pain.
+		<br><br>
+
+		<<link [[Next|Robin Pillory Escape Orphanage]]>><<endevent>><<set $phase to 1>><</link>>
+	<<else>>
+		Robin nods hesitantly and runs towards the orphanage.
+		<br><br>
+
+		With Robin safe, you breathe a sigh of relief.
+		<br><br>
+
+		The <<person1>><<person>> glares at you. "Why'd you have to free <<person2>><<him>>, you bitch? I didn't get to fuck <<him>> yet."
+		<<person1>><<He>> grabs you roughly, shaking you. "At least I can still have fun with you." <<He>> glares at you lecherously.
+		<br><br>
+
+		<<link [[Next|Robin Pillory Escape Sex]]>><<set $molestationstart to 1>><</link>>
+	<</if>>
+<<elseif $stalk_end is "hide">>
+	You emerge from your hiding place. <<if $stalk_assess>>The <<person1>><<person>><<else>>Whoever was following you<</if>> is nowhere to be found.
+	<<tearful>> you turn to Robin. <<person2>><<He>> hugs you tightly.
+	<br><br>
+
+	"Are they gone?" Robin peeks <<his>> head out.
+	<br><br>
+
+	You nod and grab Robin's hand as you continue to the orphanage.
+	<br><br>
+
+	<<link [[Next|Robin Pillory Escape Orphanage]]>><<endevent>><<set $phase to 1>><</link>>
+<<else>>
+	Robin pants as you lose your pursuer.
+	"I need... a second," <<person2>><<he>> says while wheezing.
+	<br><br>
+
+	After giving Robin a few minutes, you hold <<his>> hand and take <<him>> to the orphanage. <<takeHandholdingVirginity "Robin" "romantic">>
+	<br><br>
+
+	<<link [[Next|Robin Pillory Escape Orphanage]]>><<endevent>><<set $phase to 1>><</link>>
+<</if>>
+
+:: Robin Pillory Escape Sex
+
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<maninit>>
+
+	<<set $enemyno to 1>>
+	<<set $enemynomax to 1>>
+
+	<<if $daystate isnot "night">>
+		<<enable_rescue>>
+	<</if>>
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Robin Pillory Escape Sex Finish]]>><</link>></span><<nexttext>>
+<<elseif $alarm is 1>>
+	<<if $rescue is 1>>
+		<span id="next"><<link [[Next|Robin Pillory Escape Sex Finish]]>><</link>></span><<nexttext>>
+	<<else>>
+		No one comes to your aid.
+		<<set $alarm to 0>>
+		<br><br>
+		<<if $enemyarousal gte $enemyarousalmax>>
+			<span id="next"><<link [[Next|Robin Pillory Escape Sex Finish]]>><</link>></span><<nexttext>>
+		<<elseif $enemyhealth lte 0>>
+			<span id="next"><<link [[Next|Robin Pillory Escape Sex Finish]]>><</link>></span><<nexttext>>
+		<<else>>
+			<span id="next"><<link [[Next|Robin Pillory Escape Sex]]>><</link>></span><<nexttext>>
+		<</if>>
+	<</if>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Robin Pillory Escape Sex Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Robin Pillory Escape Sex]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Robin Pillory Escape Sex Finish
+<<effects>>
+
+<<if $enemyhealth lte 0>>
+	You beat back your attacker, and while <<person1>><<he>> is recoiling in pain you make a break for it.
+<<elseif $rescue is 1>>
+	A walking passerby sees what is happening and intervenes. Now outnumbered, your attacker makes a run for it.
+	<br><br>
+
+	"Are you alright?" the <<generate3>><<person3>><<person>> asks.
+	<br><br>
+
+	You give a quick nod before continuing to run towards the orphanage. You need to make sure Robin made it okay.
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	The <<person1>><<person>> shudders as <<he>> orgasms. You take that as your cue to leave.
+<</if>>
+<br><br>
+
+<<clotheson>>
+<br><br>
+
+<<tearful>> you make your way back to the orphanage.
+<<endcombat>>
+<<endevent>>
+<<link [[Next|Robin Pillory Escape Orphanage]]>><<endevent>><<set $phase to 0>><</link>>
+
+:: Robin Pillory Escape Orphanage
+<<set _robin to statusCheck("Robin")>>
+<<set $outside to 0>><<set $location to "home">><<effects>>
+<<npc Robin>><<person1>>
+
+<<if $phase is 1>>
+	You and Robin make your way inside the orphanage.
+	<br><br>
+
+	<<He>> looks at you and hugs you tightly. "I can't thank you enough."
+	<br><br>
+
+	<<if $robinPillory.naked>>
+		It's only then that Robin realises <<his>> nudity. <<He>> quickly hides behind you and ushers you into the bathroom.
+		<br><br>
+
+		Once there, <<he>> makes sure it's empty of people before turning the faucet on hot and letting the bathtub fill.
+		"I'm sorry about that. I panicked." Robin sighs.
+		<br><br>
+		<<if $robinPillory.danger gte 11>>
+			Robin's hands are shaking as <<he>> adjusts the bath water. <<He>> has stopped crying, but you can tell <<hes>> still upset.
+			You can see bruises all over <<his>> body.
+		<<else>>
+			Robin seems to have recovered slightly from <<his>> ordeal, though <<his>> body is still covered in bruises and <<his>> hands are shaking.
+		<</if>>
+		You wonder if <<he>>'ll be okay by <<himself>>.
+	<<else>>
+		Realising that <<he>> is still covered with bits and pieces of fruit, <<he>> quickly releases the hug and starts to make <<his>> way towards the bathroom.
+		<<if _robin.dom gte 60>>
+			"Sorry about the clothes. I'll go get cleaned up." Robin pauses. "Would you join me? I'd really appreciate your company."
+		<<else>>
+			"I'm going to go wash up... could you come with me?" Robin asks, holding <<his>> elbows and looking at the ground.
+			"I don't really want to be by myself right now."
+		<</if>>
+	<</if>>
+<<else>>
+	The moment you enter the orphanage, you see a flash of movement from beside the door. Robin is hugging you.
+	<<if $robinPillory.naked>>
+		<<He>> has clothed <<himself>>, but otherwise is still visibly dirty.
+		<<set $robinPillory.naked to false>>
+	<<else>>
+		It doesn't look like <<he>> has cleaned <<himself>>. <<He>> must have been waiting here the whole time.
+	<</if>>
+	<br><br>
+
+	"You're okay!" Robin continues to hold you for a moment before letting go. "I was so worried about you."
+	Robin sighs. "I should probably get washed up. I was so worried, I didn't want to risk missing you."
+	<<He>> seems hesitant to leave you.
+	<<if _robin.dom gte 60>>
+		"Would you join me? I'd really appreciate your company."
+	<<else>>
+		"Can you come with me?" Robin meekly asks. "I don't really want to be by myself right now."
+	<</if>>
+<</if>>
+<br><br>
+
+<<link [[Help Robin bathe (0:30)|Robin Pillory Bath]]>><<pass 30>><</link>>
+<br>
+<<link [[Wait outside (0:30)|Robin Pillory Bath Wait]]>><<pass 30>><</link>>
+<br>
+
+:: Robin Pillory Bath
+<<set _robin to statusCheck("Robin")>>
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+<<if !$robinPillory.naked>>
+	<<if $submissive gte 1150>>
+		"If you're okay with it..." you respond, knowing Robin needs support right now.
+	<<elseif $submissive lte 850>>
+		"Of course, I'm here for as long as you need me," you say, giving Robin a reassuring smile.
+	<<else>>
+		"I can stay with you," you smile at <<him>>.
+	<</if>>
+	<br><br>
+
+	"Thank you," <<he>> says with a faint smile as you enter the bathroom.
+	Robin turns on the faucet and lets the water build up before undressing.
+	Bruises have formed all over <<his>> body from the abuse. Even taking off <<his>> clothes strains <<him>>.
+	<br><br>
+<</if>>
+
+<<He>> gets in the bath, wincing at the hot temperature. "If you weren't there, I... I don't..." <<He>> goes quiet.
+<<He>> sits in the bathtub, <<his>> back towards you.
+<br><br>
+
+<<if _robin.dom gte 60>>
+	"I just don't know why Bailey would do such a thing to me, what did I ever do to <<nnpc_him "Bailey">>?" Robin stifles a tear.
+<<else>>
+	"I was so scared..." Robin sniffles, now completely nude. "Why would those people do that to me?"
+<</if>>
+<br><br>
+
+<<if $submissive gte 1150>>
+	You sit next to the bathtub and hold Robin's hand gently.
+<<elseif $submissive lte 850>>
+	You kneel down next to the bathtub and ruffle Robin's hair.
+<<else>>
+	You sit next to the bathtub and give <<him>> a reassuring pat on the shoulder.
+<</if>>
+"It's over now."
+<<npcincr Robin trauma -5>><<llrtrauma>>
+<br><br>
+
+Robin tries to wash <<his>> body, but every time <<he>> moves, it looks like <<hes>> in pain.
+"Looks like the adrenaline finally wore off," Robin gives a pained chuckle.
+<br><br>
+
+You take a cloth and soap it up before gently starting to wash Robin's body. <<He>> seems surprised at first, but doesn't voice any complaints.
+You have to empty the tub a few times just to keep the water clean.
+<br><br>
+
+Robin starts crying again, and you give <<him>> a <<print ($submissive gte 1150 ? "worried" : "concerned")>> look, before <<he>> simply shakes <<his>> head.
+"I don't know what I did to deserve someone like you in my life," <<he>> says, looking at you with a smile as happy tears pour down <<his>> cheeks.
+<br><br>
+
+You make sure to get every trance of dirt<<if $robinPillory.danger gte 11>>, fruit and lewd fluids<<else>> and fruit<</if>> from <<his>> body.
+Once Robin is squeaky clean you help <<him>> get dressed in a towel and you both go to <<his>> room.
+<br><br>
+
+<<link [[Next|Robin Pillory Finish]]>><</link>>
+<br>
+
+
+:: Robin Pillory Bath Wait
+<<run statusCheck("Robin")>>
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+<<if $submissive gte 1150>>
+	"I think I should wait outside instead," you mumble, wanting to give Robin <<his>> privacy.
+<<elseif $submissive lte 850>>
+	"Sorry, but I'll just wait outside," you say. "Don't worry, nobody's going to bother you."
+<<else>>
+	"Sorry Robin, but will you be okay by yourself?" Robin nods after a long moment and you leave <<him>> to bathe <<himself>>.
+<</if>>
+<br><br>
+
+You wait outside the bathroom while Robin cleans <<himself>> up, and make sure that nobody tries to enter.
+Eventually, you hear the water begin to drain, and Robin exits the bathroom in a towel shortly after. You walk <<him>> back to <<his>> room.
+<br><br>
+
+<<link [[Next|Robin Pillory Finish]]>><</link>>
+<br>
+
+:: Robin Pillory Finish
+<<set _robin to statusCheck("Robin")>>
+<<set $outside to 0>><<set $location to "home">><<effects>>
+
+Once inside, Robin sits down on <<his>> bed and you sit next to <<him>>.
+<br><br>
+
+<<if _robin.trauma gte 80>>
+	Robin wordlessly collapses on top of you and starts letting it out. You softly rub <<his>> back.
+<<elseif _robin.trauma gte 40>>
+	Robin holds you close to <<him>>, resting <<his>> body on yours.
+<<else>>
+	Robin hugs you and you hug <<him>> back.
+<</if>>
+<br><br>
+
+Robin's breathing slows as <<he>> softly falls asleep. You keep holding <<him>> for a few more moments.
+<br><br>
+
+You gently put <<him>> down on <<his>> bed and tuck <<him>> in. "Goodnight Robin," you whisper before closing the door.
+
+<<set $robinmissing to 0>>
+<<run setRobinLocationOverride("sleep", numbersBetween(1, 24))>>
+<br><br>
+
+<<link [[Leave|Orphanage]]>><<endevent>><</link>>
\ No newline at end of file
diff --git a/game/overworld-town/special-robin/walk.twee b/game/overworld-town/special-robin/walk.twee
index b44c3fda11987bf45d76b67db20ee26efd630829..185175ae39f25e4cf3e68392ccb2cec3cc135503 100644
--- a/game/overworld-town/special-robin/walk.twee
+++ b/game/overworld-town/special-robin/walk.twee
@@ -32,7 +32,7 @@
 <<robinoptions>>
 
 :: Robin Walk Cinema
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+<<set _robin to statusCheck("Robin")>>
 <<set $outside to 0>><<set $location to "town">><<effects>>
 
 <<if $submissive gte 1150>>
@@ -66,7 +66,7 @@
 			<<He>> looks at you, blushing, "Can you turn around while I change, please?"
 		<</if>>
 		<br><br>
-	<<elseif ((["robinGiftTuxedo", "robinGiftShirt"].includes(_robin.clothes.set) and _robin.pronoun is "f") or (["robinGiftSundress", "robinGiftGown"].includes(_robin.clothes.set) and _robin.pronoun is "m")) 
+	<<elseif ((["robinGiftTuxedo", "robinGiftShirt"].includes(_robin.clothes.set) and _robin.pronoun is "f") or (["robinGiftSundress", "robinGiftGown"].includes(_robin.clothes.set) and _robin.pronoun is "m"))
 	and $robinromance is 1 and _robin.crossdress gte 5>>
 		<<His>> eyes light up and <<he>> jumps to <<his>> feet. "Let me get changed first," <<he>> says as <<he>> pulls out <<his>> <<print _robin.clothes.upper.name>>.
 		"I wonder if anyone will recognise me." <<He>> looks at you, blushing. "I don't mind if you want to watch me change."<<glust>><<npcincr Robin lust 1>>
@@ -379,7 +379,7 @@ You try to recall some minor details about the film, but it all escapes you. Rob
 	"S-sorry for distracting you," you whisper. You place your hand on <<his>> leg.
 	<br><br>
 <<elseif $submissive lte 850>>
-	"Out of breath already? I guess I make a good distraction." you say, bringing your face close to <<his>> own.
+	"Out of breath already? I guess I make a good distraction," you say, bringing your face close to <<his>> own.
 	<br><br>
 <<else>>
 	"You seem worked up. Was I really that much of a distraction?" you say as you lean into <<him>>.
@@ -1154,7 +1154,7 @@ You stand right beneath <<him>>.
 <<if $NPCName[$NPCNameList.indexOf("Robin")].clothes.lower.name.includes("skirt")>>
 	You see right up <<his>> skirt.
 <<elseif $NPCName[$NPCNameList.indexOf("Robin")].clothes.lower.name.includes("shorts")>>
-	You see right up <<his>> shorts. 
+	You see right up <<his>> shorts.
 <<else>>
 	You see right up <<his>> <<npcClothesText $NPCName[$NPCNameList.indexOf("Robin")] "lower">>.
 <</if>>
@@ -1164,7 +1164,6 @@ You stand right beneath <<him>>.
 	<<Hes>> wearing pink underwear.
 <</if>>
 <<promiscuity1>>
-<br><br>
 You cheer Robin on as <<he>> climbs the tree. <<He>> makes it to the top. "I knew I could do it," <<he>> shouts. You can barely make <<him>> out in the canopy. "It's pretty <<if $weather is "rain">>wet<<else>>cold<</if>> up here. I should come down."
 <br><br>
 <<Hes>> panting by the time <<he>> reaches the floor. "That was fun, but I got <<if $weather is "rain">>pretty wet<<else>>a bit chilly<</if>>," <<he>> says. "Lets go home, or I'll catch a cold."
diff --git a/game/overworld-town/special-robin/widgets.twee b/game/overworld-town/special-robin/widgets.twee
index 5bb0fd0af3065bc61553b109446383b1e3f61376..50a6a0bb9827d1ec6331c241539cc1b7dfcade88 100644
--- a/game/overworld-town/special-robin/widgets.twee
+++ b/game/overworld-town/special-robin/widgets.twee
@@ -2,7 +2,7 @@
 
 <<widget "robinroom">>
 	<<npc Robin>><<person1>>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<if $robineventnote is 1>>
 		<<set $robineventnote to 0>>
 		<i>As long as Robin has to pay Bailey, <<hes>> going to keep getting hurt and ending up like this. Maybe you should speak to Bailey about it.</i>
@@ -13,14 +13,25 @@
 		You knock on the door. "Come in," you hear Robin let out. You promptly do so and enter <<his>> room. <<He>> hasn't noticed you yet. You see a small picture taped to <<his>> screen of the both of you.
 		<br><br>
 
-		Robin turns to face you and <<if $robinconsole is 0>>gasps<<else>>drops <<his>> controller<</if>>. <<He>> quickly jumps up from <<his>> bed and runs to you, tackling you in a hug and nearly causing you to fall to the floor. Tears flow freely down <<his>> cheeks. 
+		Robin turns to face you and <<if $robinconsole is 0>>gasps<<else>>drops <<his>> controller<</if>>. <<He>> quickly jumps up from <<his>> bed and runs to you, tackling you in a hug and nearly causing you to fall to the floor. Tears flow freely down <<his>> cheeks.
 		<br>
-		"I-I thought I was never going to see you again! I was so scared," Robin says before pulling you to the bed. 
+		"I-I thought I was never going to see you again! I was so scared," Robin says before pulling you to the bed.
 		<br><br>
 
 		After a while, Robin calms down. "Everyone's been looking for you. Bailey wasn't any help," <<he>> rubs <<his>> eyes. "Can you tell me what happened? Y-you know, when you're ready to? I promise you'll feel better."
 		<br><br>
+	<<elseif $robinReunionScene is "dungeonRobin">>
+		<<unset $robinReunionScene>>
+		You knock on the door. "Come in," you hear Robin let out. You promptly do so and enter <<his>> room. <<He>> hasn't noticed you yet. You see a small picture taped to <<his>> screen of the both of you.
+		<br><br>
+
+		Robin turns to face you and <<if $robinconsole is 0>>gasps<<else>>drops <<his>> controller<</if>>. <<He>> quickly jumps up from <<his>> bed and runs to you, tackling you in a hug and nearly causing you to fall to the floor. Tears flow freely down <<his>> cheeks.
+		<br>
+		"I-I thought I was never going to see you again! I was so scared," Robin says before pulling you to the bed.
+		<br><br>
 
+		After a while, Robin calms down. "I tried to tell everyone where you were, but nobody would believe me when I said what happened." <<He>> rubs <<his>> eyes. "I'm glad to have you back. I missed you."
+		<br><br>
 	<<elseif $robinReunionScene is "asylum">>
 		<<unset $robinReunionScene>>
 		You knock on the door. Robin opens it up.
@@ -28,7 +39,7 @@
 		<<if _robin.trauma gte 40>>
 			You can see that <<his>> eyes are red from crying. <<He>> quietly pulls you inside.
 		<<else>>
-			<<Hes>> surprised to see you. "Oh! Come in," <<he>> says, pulling you inside. 
+			<<Hes>> surprised to see you. "Oh! Come in," <<he>> says, pulling you inside.
 		<</if>>
 		<br><br>
 
@@ -88,6 +99,34 @@
 		"I want to take some of the orphans trick-or-treating on the day," <<he>> continues through the sheet. "You can come too. If you like. I want to leave between <span class="gold"><<ampm 16 00>> and <<ampm 19 00>>.</span> The orphans shouldn't be out late."
 		<br><br>
 
+	<!-- If Robin just came back from a punishment -->
+	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].comforted is 0>>
+		<<set $NPCName[$NPCNameList.indexOf("Robin")].comforted to 1>>
+
+		You knock on the door. Robin throws it open and hugs you, though <<he>> looks upset.
+		<<switch $robinLastPunishment>>
+			<<case "dinner">>
+				"I'm having trouble eating lately," <<he>> gives a pained laugh.
+			<<case "docks">>
+				"Why did they beat me?" Robin mumbles to <<himself>>.
+			<<case "landfill">>
+				<<if $robinSeen.includes("robinRape")>>
+					"I'm sorry," <<he>> whispers under <<his>> breath.
+				<<else>>
+					"I thought I was going to die," <<he>> shakes <<his>> head.
+				<</if>>
+			<<case "pillory">>
+				"I'm not a criminal..." Robin kicks <<his>> feet as <<he>> stares at the ground.
+			<<case "underground">>
+				"So glad to be home. I was afraid I'd never see the sun again," <<he>> smiles at you. "Thank you, I don't know if I would've had the strength to do it alone."
+			<<case "mansion">>
+				"They took me to Danube Street and made me clean," <<he>> says. "The hosts were... grabby. And they put me in a maid dress."
+				<<if _robin.crossdressing gte 2 and _robin.pronoun is "m">>
+					<<Hes>> quiet for a few seconds. "I sort of wish they let me keep it," <<he>> admits, hiding <<his>> face.
+				<</if>>
+		<</switch>>
+		<br><br>
+
 	<<elseif _robin.trauma gte 10>>
 		You knock on the door. Robin throws it open and hugs you. "Come in," <<he>> says. You enter and sit on the bed. <<He>> sits beside you.
 		<br><br>
@@ -95,7 +134,7 @@
 			<<set $robinthank to 1>>
 			You open your mouth to speak, but Robin interrupts you. "Thank you," <<he>> says. "For everything." <<He>> rests <<his>> head on your shoulder.
 			<br><br>
-			
+
 		<</if>>
 	<<else>>
 		<<if $robinconsoleintro isnot 1>>
@@ -123,10 +162,12 @@
 		<<elseif $rng gte 85 and _robin.lovestage gte 3 and _robin.crossdress gte 1 and !$robinDaily.cdevent and _robin.cdquest lte 0 and _robin.trauma lte 20>>
 			You go to Robin's room. There's a note on the door. "Please don't enter!"
 			<br><br>
-			
+
 			<<set _uniqueoptions to true>>
 			<<link [[Enter|Robin Caught CD]]>><</link>>
 			<br>
+			<<link [[Knock|Robin Caught CD Knock]]>><</link>>
+			<br>
 			<<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>>
 			<br>
 		<<elseif !$robinDaily.cdevent and _robin.cdquest is 4 and $hour lte 9 and $schoolday is 1 and _robin.trauma lte 20>>
@@ -178,7 +219,7 @@
 <</widget>>
 
 <<widget "robinoptions">>
-	<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
+	<<set _robin to statusCheck("Robin")>>
 	<<if $schoolday is 1 and $hour is 8>>
 		<<if _robin.trauma gte 80>>
 			Robin looks at the clock on the wall. "It's school soon," <<he>> says. "I don't want to go."
@@ -189,7 +230,17 @@
 				You hug <<him>>. "Everything will be fine," you say.
 			<</if>>
 			<br><br>
-			<<link [[Walk to school (0:40)|Robin Walk School]]>><<pass 40>><</link>>
+
+			<<if $robinromance and $robinDaily.traumarequest is 0 and $rng gte 51>>
+				<<set $robinDaily.traumarequest to 1>>
+				<<set _robinrequest to 1>>
+				"D-do you think you could walk with me?" <<he>> asks, rubbing <<his>> arm.
+				<br><br>
+
+				<<link [[Walk to school (0:40)|Robin Walk School]]>><<pass 40>><<npcincr Robin trauma -2>><<npcincr Robin love 1>><</link>><<glove>><<lrtrauma>>
+			<<else>>
+				<<link [[Walk to school (0:40)|Robin Walk School]]>><<pass 40>><</link>>
+			<</if>>
 			<br>
 		<<else>>
 			Robin looks at the clock on the wall.
@@ -202,22 +253,41 @@
 			<<link [[Walk to school (0:20)|Robin Walk School]]>><<pass 20>><</link>>
 			<br>
 		<</if>>
-		<<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>>
-		<br>
+		<<if _robinrequest is 1>>
+			<<link [[Leave|Orphanage]]>><<npcincr Robin trauma 1>><<npcincr Robin love -1>><<set $fromRobinRoom to true>><<endevent>><</link>><<grtrauma>><<llove>>
+		<<else>>
+			<<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>>
+		<</if>>
 	<<elseif $hour gte 21 or $hour lte 5>>
-		Robin looks at the clock on the wall. "It's past my bed time," <<he>> says. <<He>> hugs you. "Goodnight."
+		Robin looks at the clock on the wall.
+		<<if _robin.trauma lte 30>>
+			"It's past my bed time," <<he>> says. <<He>> hugs you. "Goodnight."
+		<<elseif _robin.trauma lte 60>>
+			"I-I should probably go to sleep," <<he>> says. <<He>> hugs you before reluctantly letting go. "Goodnight."
+		<<elseif $robinDaily.traumarequest is 1>>
+			Robin hugs you for a long time before letting go. "G-goodnight... stay safe."
+		<<else>>
+			"D-do you think you can stay with me?" <<He>> lightly holds your arm, <<his>> eyes are pleading.
+			<<set $robinDaily.traumarequest to 1>><<set _robinrequest to 1>>
+		<</if>>
 		<br><br>
-		<<if $robinromance is 1>>
-			<<link [[Ask to stay|Robin Room Bed]]>><</link>>
-			<br>
+		<<if _robinrequest is 1>>
+			<<link [[Ask to stay|Robin Room Bed Intro]]>><<npcincr Robin trauma -3>><<npcincr Robin love 1>><</link>><<glove>><<lrtrauma>>
+		<<elseif $robinromance or _robin.trauma gt 30>>
+			<<link [[Ask to stay|Robin Room Bed Intro]]>><</link>>
+		<</if>>
+		<br>
+		<<if _robinrequest is 1>>
+			<<link [[Leave|Orphanage]]>><<npcincr Robin trauma 1>><<npcincr Robin love -1>><<set $fromRobinRoom to true>><<endevent>><</link>><<grtrauma>><<llove>>
+		<<elseif $robinromance or _robin.trauma gt 30>>
+			<<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>>
 		<</if>>
-		<<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>>
 		<br>
-	<<elseif $weekday is 7 and $hour gte 9 and $hour lte 16 or $weekday is 1 and $hour gte 9 and $hour lte 15>>
+	<<elseif $weekday is 7 and $hour gte 9 and $hour lte 16 or $weekday is 1 and $hour gte 9 and $hour lte 15 and _robin.trauma lt 80>>
 		<<if _robin.cdquest is 3 and !$robinDaily.cdevent and _robin.trauma lte 20>>
 			<<set $robinDaily.cdevent to 1>>
 			<<if $season is "winter">>
-				Robin looks at the clock on the wall and sighs. "I need to get my hot chocolate stand set up." 
+				Robin looks at the clock on the wall and sighs. "I need to get my hot chocolate stand set up."
 				<<He>> slowly gets up. "I'll get changed, then I'll be in the park if you want to see me."
 				<br><br>
 				<<if _robin.lovestage gte 5>>
@@ -231,7 +301,7 @@
 				<<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>>
 				<br>
 			<<else>>
-				Robin looks at the clock on the wall and sighs. "I need to get my lemonade stand set up." 
+				Robin looks at the clock on the wall and sighs. "I need to get my lemonade stand set up."
 				<<He>> slowly gets up. "I'll get changed, then I'll be on the beach if you want to see me."
 				<br><br>
 				<<if _robin.lovestage gte 5>>
@@ -247,7 +317,11 @@
 			<</if>>
 		<<else>>
 			<<if $season is "winter">>
-				"I need to get my hot chocolate stand set up," <<he>> says. "Come see me in the park if you like."
+				<<if _robin.trauma gte 40>>
+					Robin sighs. "I should go set up my hot chocolate stand," <<he>> says. "Come see me in the park if you like."
+				<<else>>
+					"I need to get my hot chocolate stand set up," <<he>> says. "Come see me in the park if you like."
+				<</if>>
 				<br><br>
 				<<if $tutorial is 0 and $debug is 0>>
 					<<link [[Offer to help set up (0:30)|Robin Chocolate Set Tutorial]]>><<pass 30>><<npcincr Robin love 1>><<set $tutorial to 1>><</link>><<glove>>
@@ -258,7 +332,11 @@
 				<<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>>
 				<br>
 			<<else>>
-				"I need to get my lemonade stand set up," <<he>> says. "Come see me on the beach if you like."
+				<<if _robin.trauma gte 40>>
+					Robin sighs. "I should go set up my lemonade stand," <<he>> says. "Come see me on the beach if you like."
+				<<else>>
+					"I need to get my lemonade stand set up," <<he>> says. "Come see me on the beach if you like."
+				<</if>>
 				<br><br>
 				<<if $tutorial is 0 and $debug is 0>>
 					<<link [[Offer to help set up (0:30)|Robin's Lemonade Set Tutorial]]>><<pass 30>><<npcincr Robin love 1>><<set $tutorial to 1>><</link>><<glove>>
@@ -329,10 +407,6 @@
 			<<link [[Tell Robin about your imprisonment (0:30)|Robin Dungeon Talk]]>><<set $robinroomentered to 1>><<pass 30>><<stress -12>><<trauma -12>><<npcincr Robin dom 5>><</link>>
 			<br>
 		<</if>>
-		<<if _robin.trauma lt 80 and _robin.trauma gte 10>>
-			<<link [[Talk (0:30)|Robin Trauma Talk]]>><<set $robinroomentered to 1>><<pass 30>><<stress 3>><<npcincr Robin trauma -1>><<npcincr Robin love 1>><<npcincr Robin dom -1>><</link>><<glove>><<ldom>><<gstress>>
-			<br>
-		<</if>>
 		<<if $robinnote is 1 and $robinromance isnot 1>>
 			<<link [[Kiss|Robin Romance]]>><<set $robinroomentered to 1>><<set $robinromance to 1>><</link>>
 			<br>
@@ -348,6 +422,10 @@
 			<</if>>
 		<</if>>
 
+		<<if _robin.trauma lt 80 and _robin.trauma gte 10>>
+			<<link [[Talk (0:30)|Robin Trauma Talk]]>><<set $robinroomentered to 1>><<pass 30>><<stress 3>><<npcincr Robin trauma -1>><<npcincr Robin love 1>><<npcincr Robin dom -1>><</link>><<glove>><<lrtrauma>><<ldom>><<gstress>>
+			<br>
+		<</if>>
 		<<if _robin.trauma lt 80 and ($robinwalk lt 1 or ($halloween_robin is 1 and $halloween_robin_costume is "ghost") or (_robin.love lt 20 and $money gte 1500)) and $passage isnot "Robin Walk">>
 			<<link [[Go somewhere together|Robin Walk]]>><<set $robinroomentered to 1>><<set $robinhugging to 0>><</link>>
 			<br>
@@ -398,7 +476,7 @@
 			<<link [[Share milkshake (0:20)|Robin Share Milkshake]]>> <<set $milkshake -= 1>><<stress -10>> <</link>><<lstress>><<gglove>>
 			<br>
 		<</if>>
-		<<if window.checkSextoysGift("Robin") == 1>>
+		<<if checkSextoysGift("Robin") and checkIfNPCHasCategorySextoy("Robin","strap-on").length <= 5>>
 			<<link [[Gift Robin a strap-on|Robin Gift Strap-on]]>><</link>>
 			<br>
 		<</if>>
@@ -448,21 +526,21 @@
 		<br>
 	<</if>>
 	<<if $robinblame isnot 1 and $trauma gte ($traumamax / 7) * 2>>
-		<<link [[Blame Robin|Robin Blame]]>><<set $robinroomentered to 1>><<set $phase to 1>><<set $robinblame to 1>><<trauma -6>><<stress -6>><<npcincr Robin love -1>><<npcincr Robin dom -1>><</link>><<ltrauma>><<lstress>><<llove>><<ldom>>
+		<<link [[Blame Robin|Robin Blame]]>><<set $robinroomentered to 1>><<set $phase to 1>><<set $robinblame to 1>><<trauma -6>><<stress -6>><<npcincr Robin trauma 2>><<npcincr Robin love -1>><<npcincr Robin dom -1>><</link>><<ltrauma>><<lstress>><<grtrauma>><<llove>><<ldom>>
 		<br>
 	<</if>>
 	<<if $robinpersecute isnot 1 and $trauma gte ($traumamax / 7) * 3>>
-		<<link [[Persecute Robin|Robin Persecute]]>><<set $robinroomentered to 1>><<set $phase to 3>><<set $robinpersecute to 1>><<trauma -12>><<stress -12>><<npcincr Robin love -1>><<npcincr Robin dom -1>><</link>><<lltrauma>><<llstress>><<llove>><<ldom>>
+		<<link [[Persecute Robin|Robin Persecute]]>><<set $robinroomentered to 1>><<set $phase to 3>><<set $robinpersecute to 1>><<trauma -12>><<stress -12>><<npcincr Robin trauma 4>><<npcincr Robin love -1>><<npcincr Robin dom -1>><</link>><<lltrauma>><<llstress>><<ggrtrauma>><<llove>><<ldom>>
 		<br>
 	<</if>>
-	<<if $robinmoney gt 0>>
+	<<if $robinmoney gt 0 and !$robinromance>>
 		<<link [[Ask for money|Robin Money]]>><<set $robinroomentered to 1>><</link>>
 		<br>
 	<</if>>
 	<br>
 <</widget>>
 
-<!-- obsolete macro: use `getRobinLocation()` instead
+<!-- obsolete macro: use `getRobinLocation()` or <<run statusCheck("Robin")>> instead
 <<widget "robin_location">>
 <<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
 	<<if $robinmissing is 1>>
@@ -517,8 +595,94 @@ You knock on the door. Robin throws it open and hugs you. "Come in," <<he>> says
 
 <<widget "robinbrothelappear">>
 	<<unset $robinBrothel>>
-	<<run getRobinLocation()>>
-	<<if $robinromance is 1 and (_robin_location is "orphanage" or _robin_location is "sleep") and $fameprostitution gte 600 and $NPCName[$NPCNameList.indexOf("Robin")].dom gte 50 and !$robinBrothelWeekly>>
+	<<set _robin to statusCheck("Robin")>>
+	<<if $robinromance is 1 and (_robin_location is "orphanage" or _robin_location is "sleep") and $fame.prostitution gte 600 and _robin.dom gte 50 and !$robinBrothelWeekly>>
 		<<set $robinBrothel to true>>
 	<</if>>
 <</widget>>
+
+<<widget "robinTraumaMultiplierDecay">>
+	<<if $robinTraumaMultiplier gte 0.6>>
+		<<set $robinTraumaMultiplier -= 0.1>>
+	<</if>>
+<</widget>>
+
+<<widget "robinPunishment">>
+	<<set _event to _args[0]>>
+	<<switch _event>>
+		<<case "docks">>
+			<<npcincr Robin trauma 30>>
+			<<set $robin_injured to 1>>
+			<<set $robindebtevent to 7>>
+		<<case "dinner">>
+			<<set $robindebtevent to 1>>
+		<<case "landfill">>
+			<<set $robindebtevent to 7>>
+		<<case "pillory">>
+			<<set $robindebtevent to 30>> <!-- Robin stays imprisoned for a month because UFarm might take a while -->
+			<<set $robinPillory to {}>>
+			<<set $robinPillory.locks to 3>>
+			<<set $robinPillory.danger to 0>>
+			<<set $robinPillory.distractions to []>>
+			<<set $robinPillory.known to false>>
+		<<case "mansion">>
+			<<npcincr Robin trauma 40>>
+			<<set $robindebtevent to 1>>
+	<</switch>>
+	<<set $robinPunishments.pushUnique(_event)>>
+	<<set $robinLastPunishment to _event>>
+	<<set $robinmissing to _event>>
+	<<set $NPCName[$NPCNameList.indexOf("Robin")].comforted to 0>>
+	<<robinTraumaMultiplierDecay>>
+<</widget>>
+
+<<widget "robinPilloryHour">>
+	<<if $robinPillory.lockpicked is 1>>
+		<<set $robinPillory.lockpicked to 0>>
+	<</if>>
+	<<if $hour gte 15 and $hour lte 22>>
+		<<if $daystate is "night">>
+			<<set $robinPillory.danger += 3>>
+		<<elseif $daystate is "dusk">>
+			<<set $robinPillory.danger += 2>>
+		<<else>>
+			<<set $robinPillory.danger += 1>>
+		<</if>>
+	<<elseif $hour gte 23>>
+		<<robinPilloryFailure>>
+	<</if>>
+	<<if $robinPillory.danger lte 3>>
+		<<npcincr Robin trauma 1>>
+	<<elseif $robinPillory.danger lte 7>>
+		<<npcincr Robin trauma 2>>
+	<<elseif $robinPillory.danger lte 11>>
+		<<npcincr Robin trauma 3>>
+	<<else>>
+		<<npcincr Robin trauma 4>>
+	<</if>>
+<</widget>>
+
+<<widget "robinPilloryFailure">>
+	<<set $robinmissing to 0>>
+	<<if $NPCName[$NPCNameList.indexOf("Robin")].trauma lte 80>>
+		<<set $NPCName[$NPCNameList.indexOf("Robin")].trauma to 80>>
+	<</if>>
+	<<NPCVirginityTakenByOther "Robin" "anal" "pillory">>
+	<<if $NPCName[$NPCNameList.indexOf("Robin")].penis isnot "none">>
+		<<NPCVirginityTakenByOther "Robin" "penile" "pillory">>
+	<</if>>
+	<<if $NPCName[$NPCNameList.indexOf("Robin")].vagina isnot "none">>
+		<<NPCVirginityTakenByOther "Robin" "vaginal" "pillory">>
+	<</if>>
+<</widget>>
+
+/* <<widget "robinStatusCheck">> [OBSOLETE; use statusCheck("Robin"). Uncomment and add to statusCheck() if robinStatusCheck is ever given more functionality.]
+	<<run getRobinLocation()>>
+<</widget>> */
+
+<<widget "robinRentUnsafeMessage">>
+	<<set $rentsale to 0>>
+	<i>You've proven to Bailey that <<nnpc_he "Bailey">> can't simply expect you to pay <<nnpc_him "Bailey">> on time.
+	<span class="red">Robin will no longer be safe from Bailey, unless you can hold Bailey off.</span></i>
+	<br><br>
+<</widget>>
\ No newline at end of file
diff --git a/game/overworld-town/special-sydney/main.twee b/game/overworld-town/special-sydney/main.twee
index 3d17735687a8f0e0f70c31931a638086fd378f03..e2b16bde3e165f063978686d8d4f23d7701119f5 100644
--- a/game/overworld-town/special-sydney/main.twee
+++ b/game/overworld-town/special-sydney/main.twee
@@ -64,7 +64,7 @@
 <br>
 
 :: Sydney Chat
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<set $rng to random(1, 100)>>
 <<if !$sydneyChatState>>
 	<<set $sydneyChatState to 1>>
@@ -76,7 +76,7 @@
 		<<if $NPCName[$NPCNameList.indexOf("Whitney")].state is "dungeon">>
 			After some time, <<he>> begins to fumble around with some papers. They appear to be rental records. <<His>> eyes stop on Whitney's name.
 			<br><br>
-			"Overdue... it really is a shame. What do you think happened to <<nnpc_him "Whitney">>? I've seen the missing posters..." <<He>>  looks sad. "Everyone deserves another chance at forgiveness, even people like <<nnpc_him "Whitney">>. I pray <<nnpc_he "Whitney">> gets a chance to earn it again."
+			"Overdue... it really is a shame. What do you think happened to <<nnpc_him "Whitney">>? I've seen the missing posters..." <<He>> looks sad. "Everyone deserves another chance at forgiveness, even people like <<nnpc_him "Whitney">>. I pray <<nnpc_he "Whitney">> gets a chance to earn it again."
 		<<else>>
 			You're cut off by a student approaching the counter. It's Whitney, holding a damaged maths textbook with a wide grin. Sydney looks appalled at its condition.
 			<br><br>
@@ -120,7 +120,7 @@
 			"<<nnpc_He "Kylar">> really needs to break that doodling habit." You stare at Sydney incredulously for a moment, but <<hes>> already back to work.
 		<</if>>
 	<<elseif $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $schoolstate isnot "fourth" and $rng gte 92>>
-		<<if $robinmissing is 1>>
+		<<if $robinmissing isnot 0>>
 			After some time, <<he>> begins to fumble around with some papers. They appear to be rental records. <<His>> eyes stop on Robin's name.
 			<br><br>
 			"This is so unlike <<nnpc_him "Robin">>. <<nnpc_Hes "Robin">> never once been late on a return before now. I hope <<nnpc_hes "Robin">> alright..."
@@ -190,7 +190,7 @@
 	You chat with Sydney. "No one else has made such an effort to get to know me like this. I appreciate it." <<He>> holds up <<his>> holy pendant, kisses it, and places it against your forehead. "Blessings." <<if $demon gte 6>><<stress 6>><<gstress>><<else>><<trauma -3>><<ltrauma>><</if>>
 <<elseif $NPCName[$NPCNameList.indexOf("Sydney")].love gte 40 and !["early","first","late"].includes($schoolstate) and !$sydneyDaily.SirrisLibrary and $rng gte 88>>
 	<<set $sydneyDaily.SirrisLibrary to true>>
-	You chat with Sydney. 
+	You chat with Sydney.
 	<<if !$sydneySeen.includes("Sirris")>>
 		<<set $sydneySeen.pushUnique("Sirris")>>
 		A voice interrupts. "I thought I saw little Syd." It's Sirris. <<endevent>><<npc "Sirris">><<person1>>
@@ -229,7 +229,7 @@
 		<<if $sydney.glasses.includes("broken")>>
 			<<His>> expression quickly turns from jovial to angry as <<he>> notices Sydney's broken glasses. "Who." Sydney remains silent. Sirris frowns, and spends some time doting on <<nnpc_him "Sydney">>.
 			<br><br>
-			<<He>> turns to you. "This may be inappropriate of me to ask of a student, but could you escort Sydney to the shopping center when the time allows it? <<nnpc_He "Sydney">> can hardly see a thing without glasses.<<if $schoolstate is "morning">> You'll be excused for being late to my class if you do.<</if>>" <<He>> doesn't give you an opportunity to answer.
+			<<He>> turns to you. "This may be inappropriate of me to ask of a student, but could you escort Sydney to the shopping centre when the time allows it? <<nnpc_He "Sydney">> can hardly see a thing without glasses.<<if $schoolstate is "morning">> You'll be excused for being late to my class if you do.<</if>>" <<He>> doesn't give you an opportunity to answer.
 		<<elseif $sydney.glasses is "contacts" and !$sydneySeen.includes("contacts")>>
 			<<set $sydneySeen.pushUnique("contacts")>>
 			<<He>> pauses. "Sydney, where are your glasses?"
@@ -261,7 +261,7 @@
 <<elseif $NPCName[$NPCNameList.indexOf("Sydney")].love gte 10>>
 	<<if !$sydneyDaily.clothesWarn and (!$worn.upper.type.includes("school") or !$worn.lower.type.includes("school"))>>
 		<<set $sydneyDaily.clothesWarn to true>>
-		You talk with Sydney. "You're out of uniform, you know." <<He>> looks around. "The <<nnpc_title "Leighton">>'s behavior policy is pretty flexible. I can mark down prices for people I like, too."
+		You talk with Sydney. "You're out of uniform, you know." <<He>> looks around. "The <<nnpc_title "Leighton">>'s behaviour policy is pretty flexible. I can mark down prices for people I like, too."
 	<<else>>
 		<<if $sydneyromance is 1>>
 			<<set _sydneyChats to 16>>
@@ -283,7 +283,7 @@
 							<<He>> smiles at you. "My reputation at the temple has taken a hit because of you. You're a beacon of purity to us, and yet you've done this to me. I don't really mind, it just means it's my turn to corrupt you!" <<He>> winks.
 						<<else>>
 							<<He>> beams at you. "A lot of people look up to you, especially at the temple. They see you as a symbol of hope and purity, and many of them think you're special." <<His>> face turns red. "I-including me."
-						<</if>>					
+						<</if>>
 					<<else>>
 						<<if _sydneyStatus.includes("corrupt")>>
 							<<He>> smiles at you. "You've gone and made my purity slip, you know. I should return the favour sometime."
@@ -406,7 +406,7 @@
 					"I heard some other students talking about Winter, and they mentioned <<nnpc_his "Winter">> stockpile of restrictive equipment. I wonder if <<nnpc_hes "Winter">> a fellow believer, with all those chastity devices..."
 				<</if>>
 			<<case 9>>
-				You chat with Sydney. "I wish I had a class with River. <<nnpc_Hes "River">> helped the temple a lot."				
+				You chat with Sydney. "I wish I had a class with River. <<nnpc_Hes "River">> helped the temple a lot."
 			<<case 10>>
 				You chat with Sydney. <<He>> grabs a book from the return bin and shows it to you. "Have you ever read this one?"
 				<br><br>
@@ -447,7 +447,7 @@
 								<<else>>
 									You hear a ring. Sydney is poking your $worn.neck.name. "This is a really cute collar. I think I saw a few of those in packages at <<sydneymum>>'s new shop."
 								<</if>>
-							<<case "spiked collar">>
+							<<case "spiked collar" "spiked collar with leash">>
 								Sydney spares a glance at your spiked collar. "That looks... wicked. Vicious, even.
 								<<if $submissive gte 1150>>
 									It contrasts with how gentle you are."
@@ -551,7 +551,7 @@
 				<</if>>
 				After some time, <<he>> pulls <<his>> hand away. "Your hair is really nice.<<if $sydneySeen.includes("hairchange")>> I'm glad you told me what to do with mine.<</if>>"
 			<<default>>
-				You chat with Sydney. Nothing in particular happens. (This is a placeholder.)	
+				You chat with Sydney. Nothing in particular happens. (This is a placeholder.)
 		<</switch>>
 	<</if>>
 <<else>>
@@ -598,7 +598,7 @@
 <</if>>
 
 :: Sydney Chat Comfort
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 <<if $phase is 1>>
 	<<if $submissive gte 1150>>
 		"You're pretty nice to be around... especially compared to some of the other students," you say.
@@ -636,7 +636,7 @@
 <<sydneyOptions>>
 
 :: Sydney Library Bodywriting Allow
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $schoolstate is "early" or $schoolstate is "morning">>
 	Sydney's pen trails up your arm,
 	<<if !$skin.right_shoulder.pen>>
@@ -684,10 +684,10 @@ You shake your head, and Sydney nods in understanding. "Right. I wouldn't want s
 <<sydneyOptions>>
 
 :: Sydney Chat Nap Stroke
-<<effects>><<NPCStatusCheck "Kylar Sydney">>
+<<effects>><<set _kylar to statusCheck("Kylar")>><<run statusCheck("Sydney")>>
 You sit back in Sydney's chair, and <<he>> <<if ["early","morning","first","second"].includes($schoolstate)>>sleepily<<else>>obediently<</if>> follows you. <<He>> ends up kneeling on the floor with <<his>> head in your lap, and you run your fingers through <<his>> <<npcHairColour "Sydney">> hair. You're worried that it's uncomfortable for <<him>> to be kneeling like that, but <<he>> lets out a sigh of contentment. Before long, <<hes>> fast asleep.
 <br><br>
-<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and _kylarStatus.includes("Rage") and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and !$kylarDaily.leightonPunch>>
+<<if _kylar.state is "active" and _kylarStatus.includes("Rage") and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and !$kylarDaily.leightonPunch>>
 	<<pass 5>>
 	You and Sydney stay like that for a few minutes, before a loud bang disrupts the library. You look around, and see that Kylar has dropped a dictionary on the floor. Sydney grumbles about the noise and climbs away from you. "Sorry about that..." <<He>> returns to the counter, frowning. The other students return to what they were doing.
 	<br><br>
@@ -721,7 +721,7 @@ You sit back in Sydney's chair, and <<he>> <<if ["early","morning","first","seco
 		<<person1>>
 	<</if>>
 
-	<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and !$kylarDaily.leightonPunch>>
+	<<if _kylar.state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and !$kylarDaily.leightonPunch>>
 		Kylar scowls from across the library. <<ggksuspicion>><<npcincr Kylar rage 3>>
 		<br><br>
 	<</if>>
@@ -748,7 +748,7 @@ You push Sydney away from you.
 <<sydneyOptions>>
 
 :: Sydney Flirt
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if _sydneyChastity and $sydneyChastityKnown and $rng gte 92>>
 	"You should get that belt removed," you say, gesturing to <<his>> groin. "Imagine all the fun you could have with it gone."
 	<br><br>
@@ -801,7 +801,7 @@ You push Sydney away from you.
 						<<His>> face turns an even brighter red. <<He>> looks away in embarrassment, and falls quiet in response to your advances. <<npcincr Sydney lust 1>><<glust>>
 					<</if>>
 				<<case "corrupt" "corruptLust">>
-					"It's so cute, seeing how much you've changed," you say. 
+					"It's so cute, seeing how much you've changed," you say.
 					<<if $sydneyromance is 1>>
 						<br><br>
 						"It's all thanks to you." <<He>> presses up against you, and places a finger to your lips. "I hope I'm showing how much I appreciate it." <<arousal 50>><<garousal>>
@@ -809,7 +809,7 @@ You push Sydney away from you.
 						<<His>> face turns red, but <<he>> almost looks proud.
 					<</if>>
 				<<default>>
-					"You're so cute," you say. 
+					"You're so cute," you say.
 					<<if $sydneyromance is 1>>
 						"You're more cute! Shut up!" <<He>> hides <<his>> face.
 					<<else>>
@@ -985,7 +985,7 @@ You push Sydney away from you.
 <</if>>
 
 :: Sydney Flirt Book Grab
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 You nod. Sydney crouches down and puts <<his>> arms out. "I think I'm strong enough, don't worry."
 <br><br>
 You vault Sydney, and <<he>> gradually stands. You're surprised by how easy <<he>> keeps <<his>> balance. You're able to reach the book like this.
@@ -1050,7 +1050,7 @@ Sydney looks annoyed, but nods. "You're right. Can you watch the counter for a m
 <<sydneyOptions>>
 
 :: Sydney Flirt Book Tall
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 You stand on the tips of your toes, and easily grab the book. You hand it to Sydney.
 <br><br>
 <<He>> blinks twice. "That works too." <<He>> suddenly seems as though <<he>> feels dwarfed by you, and you see <<his>> face turn red.
@@ -1061,9 +1061,9 @@ You stand on the tips of your toes, and easily grab the book. You hand it to Syd
 <<sydneyOptions>>
 
 :: Sydney Give Milkshake
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 
-You take out your milkshake and place it on the rental counter. 
+You take out your milkshake and place it on the rental counter.
 
 <<switch $schoolstate>>
 	<<case "early" "morning" "first" "second" "third">>
@@ -1080,7 +1080,7 @@ You spend the next fifteen minutes chatting, as Sydney takes extra care not to s
 <<sydneyOptions>>
 
 :: Sydney Share Milkshake
-<<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 1>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 
 You take out your milkshake and place it on the rental counter.
 
@@ -1109,7 +1109,7 @@ You take out your milkshake and place it on the rental counter.
 <<sydneyOptions>>
 
 :: Sydney Romance
-<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<run statusCheck("Sydney")>>
 <<if $submissive gte 1150>>
 	"You're all red... are you alright?" You lean in, looking <<him>> over.
 <<elseif $submissive lte 850>>
@@ -1138,14 +1138,14 @@ You nod, <<if $location is "school">>and <<he>> puts an "Away" sign on the count
 <</switch>>
 You're different, though."
 <br><br>
-<<He>> paces, and rubs <<his>> holy pendant between shaking hands. "This is all so new to me. Everything. I've never felt this close to someone." <<He>> looks down again, <<his>> voice softer. "I suppose what I'm saying is, I feel bound to you." <<He>> sounds profoundly calm as <<he>> says those words, and you catch no sign of <<his>> usual flustered behavior.
+<<He>> paces, and rubs <<his>> holy pendant between shaking hands. "This is all so new to me. Everything. I've never felt this close to someone." <<He>> looks down again, <<his>> voice softer. "I suppose what I'm saying is, I feel bound to you." <<He>> sounds profoundly calm as <<he>> says those words, and you catch no sign of <<his>> usual flustered behaviour.
 "The way you talk to me, and actually take an interest in me. <<if _sydneyStatus.includes("Lust")>>The way you make me feel, in ways I think I've been sheltered from.<<else>>You never push me to do things I'm uncomfortable with.<</if>> I..." <<he>> trails off for a moment.
 <br><br>
 <<link [[Next|Sydney Romance 2]]>><</link>>
 <br>
 
 :: Sydney Romance 2
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 "I was always taught by <<nnpc_brother "Jordan">> Jordan that lust is the most dangerous sin. I can't tell where the love ends and the lust begins, I can't... I don't know. I'm sorry.
 <<if $purity lte 500 or $demon gte 6>>
 	You're everything the temple taught me to fear and avoid,
@@ -1175,7 +1175,7 @@ I don't know what to do." You see tears begin to well in <<his>> eyes.
 	I have my vows, and a relationship with me would be more of a burden to you than anything. I'm restricted on just how deep I can show my love, and I'm sure you want more than what I can offer."
 <<else>>
 	We have our vows, and I'd hate to put you at risk of breaking yours."
-<</if>>		
+<</if>>
 <br><br>
 <<link [["Accept " + $NPCList[0].pronouns.his + " feelings, and return them"|Sydney Romance Accept]]>><<npcincr Sydney love 5>><<npcincr Sydney purity -2>><</link>><<gglove>><<lspurity>>
 <br>
@@ -1250,7 +1250,7 @@ You pull away after some time, and Sydney looks to be at peace. <<He>> gives you
 <<sydneyOptions>>
 
 :: Sydney Chastity Remove Intro
-<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<run statusCheck("Sydney")>>
 You open your mouth to speak. Sydney cuts you off. "I want this belt off of me." <<He>> sounds determined, and <<his>> expression is serious.
 <br><br>
 <<if $submissive gte 1150>>
@@ -1291,7 +1291,7 @@ You open your mouth to speak. Sydney cuts you off. "I want this belt off of me."
 <<if $sydneySeen.includes("breakdown") or $sydneySeen.includes("persecute") or $sydneySeen.includes("punch")>>
 	You look up to see Sydney's smiling face. <span class="red">That familiar wave of anger washes over you again.</span>
 	<br><br>
-	Tears of anger and frustration form in your eyes. <<He>> notices you. "You look pale. Are you feeling okay?" 
+	Tears of anger and frustration form in your eyes. <<He>> notices you. "You look pale. Are you feeling okay?"
 <<else>>
 	You look up to see Sydney's smiling face. <span class="red">You're hit by a sudden, unexplainable wave of anger.</span> Why can't you be like <<him>>? A set of unshakable morals, <<if $sydneySeen.includes("parent")>>a parent who loves <<him>>, <</if>>a normal life in this town. Your hands ball into white-knuckled fists as your anger flares further. What right does <<he>> have to smile? What has <<he>> done to earn such happiness?
 	<br><br>
@@ -1343,7 +1343,7 @@ You open your mouth to speak. Sydney cuts you off. "I want this belt off of me."
 <</if>>
 
 :: Sydney Library Break 3
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $phase is 1>>
 	<<He>> rubs your head, and after some time, you hear what sounds like humming. <span class="teal">The melody is faintly familiar,</span> but you're not sure where you've heard it. It fills you with a sense of ease and calm.
 	<<if _sydneyStatus.includes("corrupt")>>
@@ -1370,7 +1370,7 @@ You part, your face red and sore. Sydney hands you a bottle of water from under
 <<sydneyOptions>>
 
 :: Sydney Library Punch
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<set _defiance_arousal to ($sadism / 40)>>
 <<arousal _defiance_arousal>>
 <<if $arousal gte ($arousalmax * 0.8)>>
@@ -1425,7 +1425,7 @@ You part, your face red and sore. Sydney hands you a bottle of water from under
 <</if>>
 
 :: Sydney Library Punch 2
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 Sydney seems to notice your thoughts. "I've spent my whole life being taught the value of forgiveness," <<he>> says as <<he>> wipes away tears. <span class="green">"I'll never blame someone for their own suffering."</span> <<trauma -6>><<ltrauma>>
 <br><br>
 <<if $sydney.glasses is "glasses" or $sydney.glasses is "playerbought">>
@@ -1443,7 +1443,7 @@ Sydney seems to notice your thoughts. "I've spent my whole life being taught the
 <<sydneyOptions>>
 
 :: Sydney Leighton Intervene
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<npc "Sydney">><<person1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<npc "Sydney">><<person1>>
 You march up to the rental counter. Leighton and Sydney both notice your approach.
 <<if $submissive gte 1150>>
 	"Wh-what are you doing to Sydney?" you ask.
@@ -1462,7 +1462,7 @@ Leighton drops Sydney's arm, and gives you a glare. Sydney mouths <<his>> thanks
 	<br><br>
 	"<<nnpc_He "Sirris">> knows you aren't above discipline in these severe scenarios. That threat has earned you a more severe punishment. To my office. Now."
 <<else>>
-	"No... it wasn't me, I promise! I wake up early to take inventory every day, I, I..." Sydney's on the verge of tears, unable to finish <<his>> sentence. 
+	"No... it wasn't me, I promise! I wake up early to take inventory every day, I, I..." Sydney's on the verge of tears, unable to finish <<his>> sentence.
 	<br><br>
 	"You know the rules, Sydney. To my office."
 <</if>>
@@ -1501,6 +1501,7 @@ Sydney looks to you with tearful, pleading eyes.
 <<if $corruptionRollover is 1>>
 	<<unset $corruptionRollover>>
 	It might've been something in Sydney's face, or just a baseless hunch, but you feel like the next time you see Sydney, <span class="lewd"><<nnpc_he "Sydney">> won't be the same.</span>
+	<br><br>
 <</if>>
 <<link [[Next|School Library]]>><<endevent>><<set $eventskip to 1>><<set $libraryMoneyStolen to 0>><<set $sydneyPunish to 1>><</link>>
 <br>
@@ -1549,27 +1550,27 @@ Sydney looks to you with tearful, pleading eyes.
 		<<link [[Reassure Sydney|Sydney Leighton Aftermath]]>><<set $phase to 2>><<npcincr Sydney love 3>><</link>><<gglove>> <<handholdingvirginitywarning>><<NPCvirginitywarning "Sydney" "handholding">>
 		<br>
 		<<link [[Tease Sydney|Sydney Leighton Aftermath]]>><<set $phase to 3>><<npcincr Sydney love 1>><<npcincr Sydney lust 1>><</link>><<glove>><<glust>>
-		<br>  
+		<br>
 	<<else>>
 		Leighton crosses <<nnpc_his "Leighton">> arms. "You have no evidence of that, do you? Making such a claim with no evidence is worthy of punishment on its own." Leighton grabs you by the arm. "It looks like I'll have to punish both of you."
 		<<nnpc_He "Leighton">> raises <<nnpc_his "Leighton">> voice. "Everyone please exit the library at once. A pair of students are about to be disciplined." You hear the students around the library comply, packing up their things and shuffling out.
 		<br><br>
 		<<skulduggeryuse>>
-		
+
 		<<link [[Next|Sydney Leighton Spank]]>><</link>>
-		<br>  
+		<br>
 	<</if>>
 <</if>>
 
 :: Sydney Leighton Punch
-<<schooleffects>><<effects>><<NPCStatusCheck "Kylar Sydney">>
+<<schooleffects>><<effects>><<set _kylar to statusCheck("Kylar")>><<run statusCheck("Sydney")>>
 Leighton takes Sydney by the arm again. You spring into action.
 <<if $leightonAssaulted>>
 	However, <span class="red">Leighton catches your arm.</span> "You didn't think that'd work again, did you?" <<nnpc_He "Leighton">> pins your arm behind your back, and pushes you against the rental counter. Sydney gasps. <<pain 3>><<gpain>>
 	<br><br>
 	"Everyone please exit the library at once. A pair of students are about to be disciplined." You hear the students around the library comply, packing up their things and shuffling out.
 	<br><br>
-	<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and _kylarStatus.includes("Rage") and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch">>
+	<<if _kylar.state is "active" and _kylarStatus.includes("Rage") and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch">>
 		<<set $kylarDaily.leightonPunch to true>>
 		You hear a scream, and <span class="green">you suddenly feel Leighton's grip on you release.</span> You turn to see Kylar on top of Leighton. They both look stunned. Leighton grabs Kylar by the arms, lifting <<nnpc_him "Kylar">> and standing up. "Unacceptable," the headteacher says in a softer voice. "If not for your parents-"
 		<br><br>
@@ -1606,7 +1607,7 @@ Leighton takes Sydney by the arm again. You spring into action.
 		Sydney squeezes your arm. "You're a life saver. But I'm worried about what <<nnpc_he "Leighton">> will do to you, now. You just attacked the head teacher, you absolute nut!"
 	<</if>>
 	<br><br>
-	<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch">>
+	<<if _kylar.state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch">>
 		Kylar stares from across the library. <<gksuspicion>><<npcincr Kylar rage 1>>
 		<br><br>
 	<</if>>
@@ -1621,7 +1622,7 @@ Leighton takes Sydney by the arm again. You spring into action.
 <</if>>
 
 :: Sydney Leighton Aftermath
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $phase is 1>>
 	"It's the least I could do, considering it's my fault." Sydney looks to you with confusion.
 	<br><br>
@@ -1644,7 +1645,7 @@ Leighton takes Sydney by the arm again. You spring into action.
 		"I wasn't about to let that creep do anything to you. I'll be fine, as long as you're fine too."
 	<<else>>
 		"I'll be fine. I couldn't just sit by and watch you take the fall like that."
-	<</if>> 
+	<</if>>
 	You take Sydney by the hand. <<He>> beams at you. <<takeHandholdingVirginity "Sydney" `($sydneyromance is 1 ?'romantic':'consensual')`>>
 	<br><br>
 	"You really didn't have to do that for me... you're amazing."
@@ -1699,7 +1700,7 @@ Leighton takes Sydney by the arm again. You spring into action.
 <br>
 
 :: Sydney Leighton Spank
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<set $sydneySeen.pushUnique("spank")>>
 <<switch $phase>>
 	<<case 1>>
@@ -1761,13 +1762,13 @@ Leighton takes Sydney by the arm again. You spring into action.
 <</if>>
 <<if $promiscuity gte 35>>
 	<<link [[Grope Sydney while spanking|Sydney Leighton Spank 2]]>><<set $phase to 2>><<npcincr Sydney love 1>><<npcincr Sydney lust 3>><<npcincr Sydney purity -5>><</link>><<glove>><<ggslust>><<llspurity>><<sydneyWarning corrupt>><<promiscuous3>>
-	<br> 
+	<br>
 <</if>>
 <<link [[Refuse|Sydney Leighton Spank Refuse]]>><<npcincr Sydney love -1>><</link>><<llove>>
 <br>
 
 :: Sydney Leighton Spank 2
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 Your palm comes down on Sydney's rear with a resounding slap. <<He>> cries out, and <<his>> hands grip the counter. You notice in the corner of your eye Leighton licking <<nnpc_his "Leighton">> lips.
 <<if $phase is 2>>
 	<<set $sydneyGroped to 1>>
@@ -1798,7 +1799,7 @@ Your palm comes down on Sydney's rear with a resounding slap. <<He>> cries out,
 		<<case "corruptLust">>
 			Sydney spreads <<his>> legs to give you easier access.
 		<<default>>
-			Sydney stifles a moan. <<He>> looks like <<hes>> about to speak, but instead slowly lowers <<himself>> and spreads <<his>> legs. 
+			Sydney stifles a moan. <<He>> looks like <<hes>> about to speak, but instead slowly lowers <<himself>> and spreads <<his>> legs.
 	<</switch>>
 	You continue your assault, <<if $NPCName[$NPCNameList.indexOf("Sydney")].gender is "m">>firmly grabbing <<his>> penis and working <<his>> shaft. You begin to rub the head with increasing force,<<else>>rubbing <<his>> pussy, before gently sliding a finger in,<</if>>
 	<<switch _sydneyStatus>>
@@ -1818,21 +1819,28 @@ Your palm comes down on Sydney's rear with a resounding slap. <<He>> cries out,
 	<br><br>
 	You release <<him>>, giving <<him>> one last hard spank.
 	<<if _sydneyStatus.includes("Lust")>>
-		<<He>> yelps, finally reaching climax at your hit. Leighton laughs. "Not so pure after all, are we?" <<npcincr Sydney lust 3>><<npcincr Sydney purity -5>><<ggslust>><<llspurity>>
+		<<He>> yelps, finally reaching climax at your hit. Leighton laughs. "Not so pure after all, are we?" 
+		<<npcincr Sydney lust 3>><<npcincr Sydney purity -5>><<ggslust>><<llspurity>>
 	<</if>>
 	<<Hes>> left as a gasping mess on the counter for a moment. "Your turn," comes Leighton's sing-song voice, <<nnpc_his "Leighton">> words oozing with anticipation.
 	<br><br>
 	You gently help Sydney down from the counter. <<He>> clings to you for a moment before you take <<his>> place.
 <<else>>
 	"Harder, or I'll have to do it myself. I can promise you, I won't be as gentle as you." You grind your teeth and strike Sydney again.
-	<<if $phase is 1>><<promiscuity2>><<else>><br><br><</if>>
+	<<if $phase is 1>>
+		<<promiscuity2>>
+	<<else>>
+		<br><br>
+	<</if>>
 	<<switch _sydneyStatus>>
 		<<case "pure">>
 			<<His>> whimpers flood the library. "It's... okay, this is... just discipline," <<he>> manages. You continue to abuse <<his>> rear, and by the time you're done, Sydney's bottom is flaming red and <<his>> face is wet with tears.
 		<<case "pureLust" "neutralLust" "corrupt">>
-			You continue to abuse <<his>> rear. You give <<him>> one final slap, and <<he>> involuntarily moans before quickly covering <<his>> mouth. "My, my. Looks to me like <<he>> secretly enjoys being punished by you," Leighton whispers. <<arousal 50>><<garousal>>
+			You continue to abuse <<his>> rear. You give <<him>> one final slap, and <<he>> involuntarily moans before quickly covering <<his>> mouth. "My, my. Looks to me like <<he>> secretly enjoys being punished by you," Leighton whispers. 
+			<<arousal 50>><<garousal>>
 		<<case "corruptLust">>
-			As you resume your assault, you quickly realise that Sydney seems to be enjoying <<himself>>, almost laughing after each spank. <<He>> looks back to you. "Harder. I know you can hit me harder." Leighton stifles a chuckle, before halting your spanks. <<arousal 100>><<garousal>>
+			As you resume your assault, you quickly realise that Sydney seems to be enjoying <<himself>>, almost laughing after each spank. <<He>> looks back to you. "Harder. I know you can hit me harder." Leighton stifles a chuckle, before halting your spanks. 
+			<<arousal 100>><<garousal>>
 		<<default>>
 			You continue to abuse <<his>> rear, and by the time you're done, Sydney's bottom is flaming red and <<his>> face is wet with tears.
 	<</switch>>
@@ -1841,7 +1849,8 @@ Your palm comes down on Sydney's rear with a resounding slap. <<He>> cries out,
 	Helping Sydney down, you take <<his>> place on the counter.
 <</if>>
 <<if !$worn.lower.type.includes("naked") and $worn.under_lower.name is "naked">>
-	Leighton yanks down your $worn.lower.name to reveal you are wearing no underwear. Sydney<<if _sydneyStatus.includes("corrupt")>>'s eyes widen<<else>> gasps and looks away<</if>> while Leighton leers like a hungry predator. <<npcincr Sydney purity -5>><<llspurity>>
+	Leighton yanks down your $worn.lower.name to reveal you are wearing no underwear. Sydney<<if _sydneyStatus.includes("corrupt")>>'s eyes widen<<else>> gasps and looks away<</if>> while Leighton leers like a hungry predator. 
+	<<npcincr Sydney purity -5>><<llspurity>>
 	<br><br>
 	"Now, isn't that naughty of you? Unfortunately for dearest Sydney, that will not save you from punishment. Sydney, I suggest you get to it, or do I have to involve your <<sydneymother>> in this 'matter'?"
 	<<set $genderknown.pushUnique("Leighton")>>
@@ -1864,13 +1873,15 @@ Your palm comes down on Sydney's rear with a resounding slap. <<He>> cries out,
 <br>
 
 :: Sydney Leighton Spank 3
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<if $phase is 1>>
-	"I can take it," you say. "Hit me as hard as I hit you." <<He>> still seems hesitant to hurt you.<br><br>
+	"I can take it," you say. "Hit me as hard as I hit you." <<He>> still seems hesitant to hurt you.
+	<br><br>
 <<elseif $phase is 2>>
 	You wiggle your <<bottom>> at Sydney, and look back at <<him>>. You wink. <<He>> still seems hesitant to hurt you. <<promiscuity1>>
 <<else>>
-	"We have to take responsibility, remember? This is just a punishment, nothing more," you say. <<He>> still seems hesitant to hurt you.<br><br>
+	"We have to take responsibility, remember? This is just a punishment, nothing more," you say. <<He>> still seems hesitant to hurt you.
+	<br><br>
 <</if>>
 Sydney's first strike barely touches you, and Leighton clears <<nnpc_his "Leighton">> throat. The second one misses its mark entirely, but as Leighton stands up to intervene, the third strikes home with more force than you could have ever expected from Sydney.
 You yelp as the blow lands right on your <<genitals>>, but with the <<nnpc_title "Leighton">> hovering behind <<him>>, Sydney does not dare stop. <<pain 10>><<gpain>>
@@ -1910,7 +1921,7 @@ Sydney's soft voice asks. All you can do is murmur that, "Yes, Leighton is gone.
 <br>
 
 :: Sydney Leighton Spank 4
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $phase is 1>>
 	<<if $submissive gte 1150>>
 		"I was more worried about you hating me," you say.
@@ -1958,7 +1969,8 @@ Sydney leaves your sight, and soon you feel something cold, wet, and soothing pr
 	<<unset $sydneyGroped>>
 	<<if $corruptionRollover is 1>>
 		<<unset $corruptionRollover>>
-		<<He>> spends quite a bit of time tending to you. "Back then," <<he>> says, "when you were hitting me, and you... rubbed me. It felt good." <<He>> begins to fondle your <<genitals>>, a fascinated look on <<his>> face. "Was it like this?" <<arousal 10000>><<ggarousal>>
+		<<He>> spends quite a bit of time tending to you. "Back then," <<he>> says, "when you were hitting me, and you... rubbed me. It felt good." <<He>> begins to fondle your <<genitals>>, a fascinated look on <<his>> face. "Was it like this?"
+		<<arousal 10000>><<ggarousal>>
 		<br><br>
 		<<orgasm>>
 		You arch your back, stifling a moan as <<he>> continues to gently massage you.
@@ -1968,7 +1980,8 @@ Sydney leaves your sight, and soon you feel something cold, wet, and soothing pr
 		<<He>> takes a breath. "You're... everything the temple told me to be afraid of. You're sinful, lustful, dangerous. But I think..." <<He>> gives you a lascivious smile. "I'd like to give it a shot, living like you. <span class="lewd">Thanks for opening my eyes.</span>"
 		<br><br>
 	<<elseif _sydneyStatus.includes("corrupt")>>
-		<<He>> spends quite a bit of time tending to you. "I guess it's only fair if I get to feel you up a little after the handiwork you just pulled on me," <<he>> coos as <<he>> begins to fondle your <<genitals>>. <<arousal 2000>><<ggarousal>>
+		<<He>> spends quite a bit of time tending to you. "I guess it's only fair if I get to feel you up a little after the handiwork you just pulled on me," <<he>> coos as <<he>> begins to fondle your <<genitals>>.
+		<<arousal 2000>><<ggarousal>>
 		<<if $arousal gte $arousalmax>>
 		<br><br>
 			<<orgasm>>
@@ -2032,7 +2045,7 @@ You watch as Leighton brings down <<nnpc_his "Leighton">> hand on Sydney's botto
 <</if>>
 <<if $promiscuity gte 35>>
 	<<link [[Grope Sydney while spanking|Sydney Leighton Spank 2]]>><<set $phase to 2>><<npcincr Sydney love 1>><<npcincr Sydney lust 3>><<npcincr Sydney purity -5>><</link>><<glove>><<ggslust>><<llspurity>><<sydneyWarning corrupt>><<promiscuous3>>
-	<br> 
+	<br>
 <</if>>
 <<link [[Refuse again|Sydney Leighton Spank Refuse 2]]>><<npcincr Sydney love -5>><</link>><<lllove>>
 <br>
@@ -2046,7 +2059,7 @@ After a moment, you can hear Sydney's cries resume. They sound much more agonise
 <br>
 
 :: Sydney Peek Confront
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>><<set $purityEvent to 1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>><<set $purityEvent to 1>>
 <<if $submissive gte 1150>>
 	"I... I saw you peek in on me," you say.
 <<elseif $submissive lte 850>>
@@ -2075,7 +2088,7 @@ After a moment, you can hear Sydney's cries resume. They sound much more agonise
 <br>
 
 :: Sydney Peek Proposition
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 You place your hands on Sydney's chest. "How about I go back in there, and you can undress me yourself? Then we can have some real fun." <<promiscuity1>>
 <<if $corruptionRollover is 1>>
 	<<unset $corruptionRollover>>
@@ -2093,7 +2106,7 @@ You place your hands on Sydney's chest. "How about I go back in there, and you c
 <br>
 
 :: Sydney Peek Scold
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $submissive gte 1150>>
 	"That was wrong... you really shouldn't do that," you say.
 <<elseif $submissive lte 850>>
@@ -2117,7 +2130,7 @@ You place your hands on Sydney's chest. "How about I go back in there, and you c
 <<sydneyOptions>>
 
 :: Sydney Peek Reassure
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $submissive gte 1150>>
 	"It's okay... you just surprised me," you say.
 <<elseif $submissive lte 850>>
@@ -2138,7 +2151,7 @@ You place your hands on Sydney's chest. "How about I go back in there, and you c
 <<sydneyOptions>>
 
 :: Sydney Peek Sex
-<<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
 	<<set $sexstart to 0>>
@@ -2179,7 +2192,7 @@ You place your hands on Sydney's chest. "How about I go back in there, and you c
 <</if>>
 
 :: Sydney Peek Sex Finish
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -2191,8 +2204,8 @@ You place your hands on Sydney's chest. "How about I go back in there, and you c
 			<<case "pure" "pureLust">>
 				"Th-that was... incredible," <<he>> murmurs. "And sinful..."
 			<<case "corrupt" "corruptLust">>
-				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.		
-			<<default>> 
+				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.
+			<<default>>
 				"In my shop, on my time, in my changing room..." <<he>> giggles.
 		<</switch>>
 	<</if>>
@@ -2304,13 +2317,13 @@ Sydney leaves first, peeking to make sure no one will see you both leave. Once t
 	<<link [[Flirt|Sydney Library Rescue Intro 2]]>><<set $phase to 2>><<npcincr Sydney purity -2>><</link>><<lspurity>><<promiscuous1>>
 	<br>
 <<else>>
-	<<npc "Sydney">><<person1>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+	<<npc "Sydney">><<person1>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 	<<set $sydneySeen.pushUnique("libRescue")>>
 	<<if $sydneySeen.includes("library")>>
 		When you regain consciousness, you find yourself lying in the changing room of the library's clothing shop.
 	<<else>>
 		When you regain consciousness, you find yourself lying on a bench in a small booth. You recognise the ceiling of the library above you.
-		There's a curtain covering the entrance.  
+		There's a curtain covering the entrance.
 	<</if>>
 	<<if $leftarm is "bound" or $rightarm is "bound" or $feetuse is "bound">>
 		Your bindings have been removed.
@@ -2401,10 +2414,10 @@ Sydney leaves first, peeking to make sure no one will see you both leave. Once t
 <</if>>
 
 :: Sydney Library Rescue 2
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $phase is 1>>
 	<<if $sydneyromance is 1>>
-		"My hero," you say as you press youself closer to <<him>>.
+		"My hero," you say as you press yourself closer to <<him>>.
 	<<else>>
 		<<if $submissive gte 1150>>
 			"Y-you saved me. Thank you," you say.
@@ -2435,7 +2448,7 @@ Sydney leaves first, peeking to make sure no one will see you both leave. Once t
 		"Getting all coy with me? That's cute."
 	<<else>>
 		"Wh-what? No, it's..." <<He>> looks away, blushing.
-	<</if>>   
+	<</if>>
 <</if>>
 Sydney helps you stand.
 <<if $exposed gte 1 or $exposedTemp is 1>>
@@ -2473,8 +2486,9 @@ Sydney helps you stand.
 <</if>>
 
 :: Sydney Library Rescue Rest
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
-You can't help but close your eyes again. You feel Sydney stroking your hair. The rhythm of <<his>> breathing gradually lulls you into a light sleep. You feel a kiss on your forehead. <<stress -3>><<lstress>>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
+You can't help but close your eyes again. You feel Sydney stroking your hair. The rhythm of <<his>> breathing gradually lulls you into a light sleep. You feel a kiss on your forehead.
+<<stress -3>><<lstress>>
 <br><br>
 
 You awaken some time later. Sydney is nowhere to be seen.
@@ -2500,7 +2514,11 @@ You awaken some time later. Sydney is nowhere to be seen.
 	<</if>>
 	<br><br>
 	<<if $bodywritingLvl gte 2>>
-		<<sydneyBodywritingLocation>><<if _writingFail isnot 1>>Looking in the changing room mirror, you notice that something has been written on you in marker. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting sleepyhead>><br><br><</if>>
+		<<sydneyBodywritingLocation>>
+		<<if _writingFail isnot 1>>
+			Looking in the changing room mirror, you notice that something has been written on you in marker. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting sleepyhead>>
+			<br><br>
+		<</if>>
 	<</if>>
 	<<link [[Get changed and leave (0:01)|School Library]]>><<schoolspareclothes>><<endevent>><<set $eventskip to 1>><<pass 1>><</link>>
 	<br>
@@ -2508,14 +2526,18 @@ You awaken some time later. Sydney is nowhere to be seen.
 	In <<his>> place is a note. It reads: "Had to get back to work. Rest well. Love you." - Sydney
 	<br><br>
 	<<if $bodywritingLvl gte 2>>
-		<<sydneyBodywritingLocation>><<if _writingFail isnot 1>>You look in the mirror. Something has been written on you in marker. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting sleepyhead>><br><br><</if>>
+		<<sydneyBodywritingLocation>>
+		<<if _writingFail isnot 1>>
+			You look in the mirror. Something has been written on you in marker. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting sleepyhead>>
+			<br><br>
+		<</if>>
 	<</if>>
 	<<link [[Next|School Library]]>><<endevent>><<set $eventskip to 1>><</link>>
 	<br>
 <</if>>
 
 :: Sydney Library Rescue Reward
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $submissive gte 1150>>
 	"You saved me. How can I ever repay you?" you say, bringing a hand up to your chin in exaggerated thought. "I think I have an idea."
 <<elseif $submissive lte 850>>
@@ -2586,7 +2608,7 @@ You awaken some time later. Sydney is nowhere to be seen.
 <</if>>
 
 :: Sydney Reward Sex
-<<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
 	<<set $sexstart to 0>>
@@ -2626,7 +2648,7 @@ You awaken some time later. Sydney is nowhere to be seen.
 <</if>>
 
 :: Sydney Reward Sex Finish
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -2638,8 +2660,8 @@ You awaken some time later. Sydney is nowhere to be seen.
 			<<case "pure" "pureLust">>
 				"Th-that was... incredible," <<he>> murmurs. "And sinful..."
 			<<case "corrupt" "corruptLust">>
-				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.		
-			<<default>> 
+				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.
+			<<default>>
 				"In my shop, on my time, in my changing room..." <<he>> giggles.
 		<</switch>>
 	<</if>>
@@ -2706,18 +2728,20 @@ You awaken some time later. Sydney is nowhere to be seen.
 <br>
 
 :: Sydney Library Rescue Reward End
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $phase is 1>>
 	<<switch _sydneyStatus>>
 		<<case "pure">>
 			<<if !_sydneyChastity>>
-				<<pass 2>><<He>> pants heavily, clinging to you with every ounce of strength <<he>> has. "W...wow..." <<he>> whispers. You hold <<him>> until <<hes>> ready to move. <<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
+				<<pass 2>><<He>> pants heavily, clinging to you with every ounce of strength <<he>> has. "W...wow..." <<he>> whispers. You hold <<him>> until <<hes>> ready to move. 
+				<<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
 			<<else>>
 				<<Hes>> left panting by the time you're done. "That felt... I don't know. I... I think I liked it?" You help <<him>> to <<his>> feet, and <<he>> clings to you for a moment. <<sydneyChastityMessage>><<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
 			<</if>>
 		<<default>>
 			<<if !_sydneyChastity>>
-				<<pass 2>><<He>> moans out loud, working with your movements as you bring <<him>> to climax. You hold each other for a few moments. <<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
+				<<pass 2>><<He>> moans out loud, working with your movements as you bring <<him>> to climax. You hold each other for a few moments. 
+				<<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
 			<<else>>
 				<<Hes>> left panting by the time you're done. "I don't think I finished, but... it was still good." You help <<him>> to <<his>> feet, and <<he>> clings to you for a moment. <<sydneyChastityMessage>><<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
 			<</if>>
@@ -2760,7 +2784,7 @@ Sydney stretches and yawns.
 <</if>>
 
 :: Canteen Lunch Sydney
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<npc "Sydney">><<person1>>
 <<if $phase2 is 1>>
 	You enter the canteen with Sydney, helping <<him>> carry in <<his>> books. You take your seats in an isolated corner.
@@ -2808,7 +2832,7 @@ Sydney stretches and yawns.
 						"I'm envious of your purity. In a good way."
 					<<else>>
 						"Have I ever told you that you look like an angel?"
-					<</if>>					
+					<</if>>
 				<<else>>
 					<<if _sydneyStatus.includes("corrupt")>>
 						"Some of my thoughts have turned sinful of late."
@@ -2982,14 +3006,14 @@ Sydney stretches and yawns.
 <</if>>
 
 :: Sydney Kylar Bodywriting Encourage
-<<effects>><<NPCStatusCheck "Sydney">><<person2>>
+<<effects>><<run statusCheck("Sydney")>><<person2>>
 "Looks like we have some competition." You place both of your arms on the table. Kylar continues writing.
 <<sydneyBodywritingLocation>>
 <<if _writingFail isnot 1>>
 	<<person2>>Your <<bodypart _bodypart>> now reads: <<bodywriting_npc_kylar _bodypart "pen">>
 	<br><br>
 	<<sydneyBodywritingLocation>>
-	<<person1>>Sydney watches in bemusement. When Kylar's done, Sydney pulls out <<his>> pen. 
+	<<person1>>Sydney watches in bemusement. When Kylar's done, Sydney pulls out <<his>> pen.
 	<<if _writingFail isnot 1>>
 		<<He>> writes on your <<bodypart _bodypart>>. It now reads: <<if $sydneyromance is 1>><<bodywriting_npc_sydney _bodypart "pen">><<else>><<bodywriting_npc_sydney_friendly _bodypart "pen">><</if>>
 		<<person2>>Kylar scowls, immediately erasing it with <<his>> finger, and writes something of <<his>> own. <<bodywriting_clear _bodypart>>Your <<bodypart _bodypart>> now reads: <<bodywriting_npc_kylar _bodypart "pen">>
@@ -2999,7 +3023,7 @@ Sydney stretches and yawns.
 		Sydney erases it completely, before putting away the pen and instead producing a permanent marker.
 		<<sydneyBodywritingLocation>>
 		<<if _writingFail isnot 1>>
-			<<He>> writes on your <<bodypart _bodypart>>. It now reads: <<if $sydneyromance is 1>><<bodywriting_npc_sydney _bodypart "marker">><<else>><<bodywriting_npc_sydney_friendly _bodypart "marker">><</if>> 
+			<<He>> writes on your <<bodypart _bodypart>>. It now reads: <<if $sydneyromance is 1>><<bodywriting_npc_sydney _bodypart "marker">><<else>><<bodywriting_npc_sydney_friendly _bodypart "marker">><</if>>
 			<<sydneyBodywritingLocation>>
 			<<person2>>Kylar holds your <<bodypart _bodypart>>,
 			<<if _writingFail isnot 1>>
@@ -3025,7 +3049,7 @@ Sydney stretches and yawns.
 <br>
 
 :: Sydney Kylar Bodywriting Refuse
-<<effects>><<NPCStatusCheck "Kylar Sydney">><<person2>>
+<<effects>><<run statusCheck("Kylar")>><<run statusCheck("Sydney")>><<person2>>
 You push away Kylar's hand. <<His>> expression falters, and you think you see a twitch.
 <<if _kylarStatus.includes("Rage")>>
 	"But... don't you want the world to know you're mine?"
@@ -3062,7 +3086,7 @@ Sydney quickly finishes <<person1>><<his>> food. You chat with <<him>>, and <<he
 <br>
 
 :: Sydney Kylar Bodywriting Ignore
-<<effects>><<NPCStatusCheck "Kylar">><<person2>>
+<<effects>><<run statusCheck("Sydney")>><<person2>>
 You let Kylar write on you.
 <<sydneyBodywritingLocation>>
 <<if _writingFail isnot 1>>
@@ -3087,7 +3111,7 @@ You shake your head. <<He>> frowns. "Sorry, it's a bad habit." <<He>> returns to
 <br>
 
 :: Sydney Canteen Bodywriting Allow
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 Sydney's pen trails up your arm,
 <<if !$skin.right_shoulder.pen>>
 	and <<he>> scribbles something on your right shoulder. It now reads: <<if $sydneyromance is 1>><<bodywriting_npc_sydney right_shoulder "pen">><<else>><<bodywriting_npc_sydney_friendly right_shoulder "pen">><</if>>
@@ -3112,7 +3136,7 @@ Sydney's pen trails up your arm,
 <br>
 
 :: Sydney Canteen Encourage
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $submissive gte 1150>>
 	"Well, your glasses are important," you say.
 <<elseif $submissive lte 850>>
@@ -3163,7 +3187,7 @@ The <<person2>><<person>> looks surprised, but smiles. "Alright, a deal's a deal
 <br>
 
 :: Sydney Canteen Intervene
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $submissive gte 1150>>
 	"S-stop! <<person1>><<He>> needs those!"
 <<elseif $submissive lte 850>>
@@ -3237,7 +3261,7 @@ The <<person2>><<person>> looks surprised, but smiles. "Alright, a deal's a deal
 
 :: Sydney Canteen Fight Finish
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -3320,8 +3344,8 @@ The <<person2>><<person>> looks surprised, but smiles. "Alright, a deal's a deal
 <br>
 
 :: Sydney Canteen Break
-<<NPCStatusCheck "Sydney">>
-You shrug at Sydney. 
+<<run statusCheck("Sydney")>>
+You shrug at Sydney.
 <<if _sydneyStatus.includes("corrupt")>>
 	<<person1>><<He>> casually
 	<<npcUndressText $NPCName[$NPCNameList.indexOf("Sydney")] "lower" "self">>.
@@ -3354,7 +3378,7 @@ You shrug at Sydney.
 <br>
 
 :: Sydney Crawl
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 
 You get on your knees and crawl under the counter.
 <<if _sydneyStatus.includes("corrupt")>>
@@ -3423,7 +3447,7 @@ You get on your knees and crawl under the counter.
 <</if>>
 
 :: Sydney Crawl Sex
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set $corruptionEvent to 1>>
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
@@ -3465,7 +3489,7 @@ You get on your knees and crawl under the counter.
 <</if>>
 
 :: Sydney Crawl Sex Finish
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -3499,7 +3523,7 @@ You get on your knees and crawl under the counter.
 <br>
 
 :: Sydney Crawl Sex End
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 
 <<if $phase is 1>>
 	"Wasn't that so much better than just <<if $NPCName[$NPCNameList.indexOf("Sydney")].gender is "m">>sucking me off<<else>>eating me out<</if>>?" <<he>> asks, face smug, as the two of you stand up. "I can't let me have all the pleasure."
@@ -3521,7 +3545,7 @@ You get on your knees and crawl under the counter.
 <<sydneyOptions>>
 
 :: Sydney Crawl Oral
-<<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<if $sexstart is 1>>
 	<<set $sexstart to 0>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
@@ -3716,7 +3740,7 @@ You get on your knees and crawl under the counter.
 <</if>>
 
 :: Sydney Crawl Oral Finish
-<<schooleffects>><<effects>><<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<schooleffects>><<effects>><<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 	<<if $sydneyOral.Student is 1>>
@@ -3765,7 +3789,7 @@ You get on your knees and crawl under the counter.
 					<<case "pure" "pureLust">>
 						"Th-that was... incredible," <<he>> murmurs. "And sinful... Anyone could've heard..."
 					<<case "corrupt" "corruptLust">>
-						"So many people around," <<he>> says in awe. "That makes it so much better. We need to try this in more populated places."		
+						"So many people around," <<he>> says in awe. "That makes it so much better. We need to try this in more populated places."
 					<<default>>
 						"They'd never look at us the same way again if they knew..." <<he>> giggles.
 				<</switch>>
@@ -3775,7 +3799,7 @@ You get on your knees and crawl under the counter.
 				<<case "pure" "pureLust">>
 					"Th-that was... incredible," <<he>> murmurs. "And sinful..."
 				<<case "corrupt" "corruptLust">>
-					"I'm glad my love for you is finally being rewarded," <<he>> smugly proclaims.		
+					"I'm glad my love for you is finally being rewarded," <<he>> smugly proclaims.
 				<<default>>
 					"In my library, on my time, under my counter..." <<he>> giggles.
 			<</switch>>
@@ -3819,7 +3843,7 @@ You get on your knees and crawl under the counter.
 				Sydney quickly separates from you. "Th-that really hurt... I mean, I still kind of liked it, but..." <<his>> face flushes, and <<he>> looks away. "M...maybe we can finish this some other time..."
 			<</if>>
 		<<case "corrupt" "corruptLust">>
-			Sydney backs away from you, breathing heavily. "I love it when you're rough with me," <<he>> says, "but maybe save it for a more private venue?"		
+			Sydney backs away from you, breathing heavily. "I love it when you're rough with me," <<he>> says, "but maybe save it for a more private venue?"
 		<<default>>
 			Sydney frowns at you. "I think we need to set some guidelines on how much I can take... I forgive you, though."
 	<</switch>>
@@ -3900,7 +3924,7 @@ You watch Sydney return to <<person1>><<his>> seat. They wait for you to go insi
 <<effects>>
 You shake your head, but thank Sirris for the offer anyways.
 <br>
-"You shouldn't be walking around at this hour, but... Alright," <<he>> says, 
+"You shouldn't be walking around at this hour, but... Alright," <<he>> says,
 <<if $location is "adult_shop">>
 	"We'll be closing the shop in a while."
 	Sydney hugs you<<if $sydneyromance is 1>> and kisses your cheek<</if>> before waving you goodbye.
diff --git a/game/overworld-town/special-sydney/temple.twee b/game/overworld-town/special-sydney/temple.twee
index 0c91dafc023c0ac37b3f3f4602fe4cee6d43b273..cbc6bb93a7f7ec6e4aea7d5793c0bd9f7380281c 100644
--- a/game/overworld-town/special-sydney/temple.twee
+++ b/game/overworld-town/special-sydney/temple.twee
@@ -44,14 +44,14 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 <<else>>
 	"Want to walk to school with me?" <<He>> gives you a hopeful smile.
 	<br><br>
-	<<link [[Yes (0:10)|Sydney Walk School]]>><<pass 10>><</link>>	
+	<<link [[Yes (0:10)|Sydney Walk School]]>><<pass 10>><</link>>
 	<br>
 	<<link [[No|Temple]]>><<endevent>><<set $eventskip to 1>><</link>>
 	<br>
 <</if>>
 
 :: Temple Masturbation Sydney
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 <span class="red">Someone walks around the pillar.</span> <span @class="$sydneyromance is 1 ?'lewd':'red'">It's Sydney.</span> You try to cover yourself, but it's too late.
 <br><br>
 <<endmasturbation>>
@@ -67,19 +67,19 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 			<<link [[Seduce Sydney|Sydney Temple Seduce]]>><</link>><<promiscuous1>><<sydneyWarning corrupt>>
 			<br>
 			<<link [[Stop|Sydney Temple Masturbation End]]>><</link>>
-			<br>	
+			<br>
 		<<elseif $temple_rank is "initiate">>
 			"You can't... you can't just do things like that here! This... this warrants disciplinary action, and as an initiate, it falls within my hands to discipline my peers. Come with me." <<He>> reaches a hand out, but seems hesitant to touch you. <<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
 			<br><br>
 			<<He>> grabs your arm with surprising strength, pulling you along into a side room. <<He>> nods to a <<generate2>><<person2>><<monk>> guarding the door, who understands and unlocks it. Sydney locks the door behind you, and guides you towards a table.
 			<br><br>
 			<<link [[Next|Sydney Temple Spank]]>><<endevent>><<npc "Sydney">><<person1>><<set $molestationstart to 1>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			"Excuse me, you... you can't do things like that here! I... don't have the authority to punish you, I can't take disciplinary action, I... ohhh..." <<He>> runs off. <<npcincr Sydney lust 3>><<npcincr Sydney purity -2>><<ggslust>><<lspurity>>
 			<br><br>
 			<<link [[Next|Temple]]>><<endevent>><</link>>
-			<br>	
+			<br>
 		<</if>>
 	<<case "pureLust" "neutralLust">>
 		<<He>> gasps, and <<his>> face turns a bright red. <<He>> seems to be unable to look away.
@@ -96,12 +96,12 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 			<<He>> pulls <<his>> hand away, refusing to make eye contact with you. <<He>> walks away without another word, attempting to conceal <<his>> arousal.
 			<br><br>
 			<<link [[Next|Temple]]>><<endevent>><</link>>
-			<br>			
+			<br>
 		<<else>>
 			"Excuse me, you... you can't do things like that here! I... don't have the authority to punish you, I can't take disciplinary action, I... ohhh..." <<He>> runs off. <<npcincr Sydney lust 1>><<npcincr Sydney purity -5>><<gslust>><<llspurity>>
 			<br><br>
 			<<link [[Next|Temple]]>><<endevent>><</link>>
-			<br>	
+			<br>
 		<</if>>
 	<<case "corrupt" "corruptLust">>
 		<<He>> grins at you. "Nice."
@@ -116,7 +116,7 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 			<<He>> crosses <<his>> arms. "By all means, you can continue, but others might see you." You decide to stop. Sydney giggles at you and spends some time teasing you before returning to <<his>> duties. <<npcincr Sydney lust 1>><<gslust>>
 			<br><br>
 			<<link [[Next|Temple]]>><<endevent>><</link>>
-			<br>	
+			<br>
 		<</if>>
 <</switch>>
 
@@ -150,7 +150,7 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 <br>
 
 :: Sydney Temple Spank
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 <<if $molestationstart is 1>>
 	<<set $molestationstart to 0>>
 	<<controlloss>>
@@ -216,7 +216,7 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 <</if>>
 
 :: Sydney Temple Sex
-<<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<if $sexstart is 1>>
 	<<if !_sydneyStatus.includes("corrupt")>>
 		Sydney guides you into the room, and locks it behind you. You kiss <<him>> on the neck, and <<he>> melts into your embrace. <<sydneyLewd>>
@@ -259,7 +259,7 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 <</if>>
 
 :: Sydney Temple Sex Finish
-<<set $outside to 0>><<set $location to "temple">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "temple">><<effects>><<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -272,8 +272,8 @@ You sit beside Sydney. You notice a pile of neatly folded clothes sat next to <<
 			<<case "pure" "pureLust">>
 				"Th-that was... incredible," <<he>> murmurs. "And sinful..."
 			<<case "corrupt" "corruptLust">>
-				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.		
-			<<default>> 
+				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.
+			<<default>>
 				"In the temple, of all places..." <<he>> giggles.
 		<</switch>>
 	<</if>>
@@ -358,7 +358,7 @@ The two of you walk back to the main area of the temple. It takes some time, but
 <br>
 
 :: Temple Sydney Pray
-<<set $outside to 0>><<set _sydneyPray to true>><<sydneySchedule>><<NPCStatusCheck "Sydney">><<temple_effects>><<effects>><<set $corruptionEvent to 1>>
+<<set $outside to 0>><<set _sydneyPray to true>><<sydneySchedule>><<run statusCheck("Sydney")>><<temple_effects>><<effects>><<set $corruptionEvent to 1>>
 <<switch $phase>>
 	<<case 2>>
 		You pray for salvation. Your thoughts drift to your hopes for the future, and how things could be better.
@@ -574,7 +574,7 @@ The two of you walk back to the main area of the temple. It takes some time, but
 		<<else>>
 			"Me."
 			<br><br>
-			The <<person2>><<monk>> freezes at Sydney's word. All the colour drains from <<his>> face as Sydney stares <<him>> down. <<He>>  stands, brushes <<himself>> off, and leaves without another sound.
+			The <<person2>><<monk>> freezes at Sydney's word. All the colour drains from <<his>> face as Sydney stares <<him>> down. <<He>> stands, brushes <<himself>> off, and leaves without another sound.
 		<</if>>
 		<br><br>
 		<<endevent>><<npc "Sydney">><<person1>>
@@ -587,7 +587,7 @@ The two of you walk back to the main area of the temple. It takes some time, but
 <<set $eventskip to 0>>
 
 :: Temple Sydney Pray Tell
-<<NPCStatusCheck "Sydney">><<sydneySchedule>><<temple_effects>><<effects>>
+<<run statusCheck("Sydney")>><<sydneySchedule>><<temple_effects>><<effects>>
 <<switch $phase>>
 	<<case 2>>
 		You tell Sydney that you're praying for salvation, and a better future.
@@ -696,13 +696,13 @@ The two of you walk back to the main area of the temple. It takes some time, but
 				<<He>> blinks. "It's not a bad thing. If anything, they make physical activity a lot easier."
 			<</if>>
 			<<acceptance "breasts_tiny" 10>>
-		<</if>>	
+		<</if>>
 		<<if $acceptance_breasts_tiny gte 1000>>
 			<<set _acceptMessage to true>>
 			Realisation dawns as you lean back. Your chest is beautiful. Why should you care what other people say about it? You've gained the <span class="green">Acceptance: Tiny Breasts</span> trait.
 			<br><br>
 			Sydney <<if $sydneyromance is 1>>kisses you on the cheek and <</if>> smiles. "I hope I was able to help you."
-		<</if>>	
+		<</if>>
 	<<case 8>>
 		You tell Sydney about your insecurity in visceral detail, recalling the faces of everyone who's mentioned your small breasts.
 		<br><br>
@@ -777,7 +777,7 @@ You decide to keep it to yourself. Sydney frowns, but doesn't press it.
 <<sydneyOptions>>
 
 :: Sydney Temple Corrupt
-<<set $outside to 0>><<set $location to "temple">><<NPCStatusCheck "Sydney">><<sydneySchedule>><<temple_effects>><<effects>><<set _sydneyPray to true>>
+<<set $outside to 0>><<set $location to "temple">><<run statusCheck("Sydney")>><<sydneySchedule>><<temple_effects>><<effects>><<set _sydneyPray to true>>
 <<if $submissive gte 1150>>
 	"So, are we ready to... do what you said?" you ask quiety.
 <<elseif $submissive lte 850>>
@@ -863,7 +863,7 @@ The two of you reach a locked door. "I think this is the one." Sydney peers thro
 	You pick the lock with hardly a sound. Sydney gives you a silent clap before pulling a torch from the wall, and you both enter the room.
 <<else>>
 	You step back, and deliver a fierce kick to the door.
-	<<if $physique gte 8000>>
+	<<if currentSkillValue('physique') gte 8000>>
 		It breaks free from its hinges, coming down to the ground with a loud thud that reverberates throughout the halls. "Someone will have heard that. We need to hurry." Sydney grabs a torch from the wall as you both dart into the room, and stand the door back up in place.
 	<<else>>
 		Your foot goes clean through the door, making a hole. You get caught on it and fall, landing right on your bum. <<stress 6>><<pain 5>><<gstress>><<gpain>>
@@ -970,8 +970,8 @@ Sydney tosses the canister aside. "That stuff's creepy. I'm glad that wasn't an
 		You begin the search with Sydney.
 	<<case 1>>
 		You search by the cabinets full of chastity devices. One drawer is dedicated to broken ones, but the rest seem to be freshly cleaned or repaired.
-		<<if $famebusiness gte 400>>
-			Under one of them, you find what looks like a delivery invoice. Someone spent a lot of money on these. 
+		<<if $fame.business gte 400>>
+			Under one of them, you find what looks like a delivery invoice. Someone spent a lot of money on these.
 		<<else>>
 			Under one of them, you find a piece of paper with various business jargon that you don't understand.
 		<</if>>
@@ -1098,7 +1098,7 @@ You find yourself in a small hexagonal room, the edges ringed with steps leading
 <br>
 
 :: Sydney Temple Corrupt Sex
-<<NPCStatusCheck "Sydney">><<set $prayerRoom to true>>
+<<run statusCheck("Sydney")>><<set $prayerRoom to true>>
 <<if $sexstart is 1 or $molestationstart is 1>>
 	<<if $sexstart is 1>>
 		<<set $sexstart to 0>>
@@ -1181,6 +1181,7 @@ You find yourself in a small hexagonal room, the edges ringed with steps leading
 		<<set $worn.genitals.integrity -= 100>>
 		<br><br>
 		<<if $worn.genitals.integrity lte 0>>
+			<span class="blue">Your $worn.genitals.name shatters into pieces.</span>
 			<<set $worn.genitals.type.push("broken")>>
 			<<genitalsruined>>
 			Sydney's face freezes in shock for a moment, before twisting into a mad grin. "Finally," <<he>> says in an eerily calm tone. "Nowhere to run. And nothing to hide behind. You're mine. Mine to defile."
@@ -1264,7 +1265,7 @@ Sydney wraps <<his>> arms around you, and<<if $exposed gte 1>> offers you a towe
 <br><br>
 <<if !$sydneySeen.includes("corruptroom")>>
 	<<set $sydneySeen.pushUnique("corruptroom")>>
-	"That really was... I... I don't even know if there are words to describe it. Absolutely worth any punishment they have in store for me, 
+	"That really was... I... I don't even know if there are words to describe it. Absolutely worth any punishment they have in store for me,
 	<<if $NPCName[$NPCNameList.indexOf("Sydney")].virginity.penile is true and $NPCName[$NPCNameList.indexOf("Sydney")].virginity.vaginal is true>>
 		but it's not like I need to worry about my chastity exam.
 	<<else>>
@@ -1342,7 +1343,7 @@ Jordan glances at you, <<if $grace gte 1>>before shaking <<nnpc_his "Jordan">> h
 
 :: Sydney Temple Corrupt End 5
 <<effects>>
-Jordan produces a small container from <<nnpc_his "Jordan">> cowl and rubs a white powder between <<nnpc_his "Jordan">> hands, before kneeling in front of Sydney. 
+Jordan produces a small container from <<nnpc_his "Jordan">> cowl and rubs a white powder between <<nnpc_his "Jordan">> hands, before kneeling in front of Sydney.
 <<if $NPCList[0].penis isnot "none">>
 	<<nnpc_He "Jordan">> holds Sydney's penis between both forefingers and stares at it intently, gently manipulating the length. <<if !$examSafe>>Sydney sniffles.<</if>>
 <</if>>
@@ -1427,10 +1428,10 @@ Sirris raises <<person2>><<his>> hand. "It's okay, dear." <<He>> turns to you ag
 <<link [[Go home|Sydney Ride Home]]>><</link>>
 <br>
 <<link [[Stay|Sydney Ride Home No]]>><</link>>
-<br>				
+<br>
 
 :: Sydney Temple Pure
-<<set $outside to 0>><<set $location to "temple">><<NPCStatusCheck "Sydney">><<sydneySchedule>><<temple_effects>><<effects>><<set _sydneyPray to true>>
+<<set $outside to 0>><<set $location to "temple">><<run statusCheck("Sydney")>><<sydneySchedule>><<temple_effects>><<effects>><<set _sydneyPray to true>>
 <<if !_sydneyStatus.includes("pure")>>
 	<<unset $sydneyChastityRemovePure>><<unset $sydneyChastityRemoveIntro>>
 	You tell Sydney you're ready, but <<he>> looks down in shame. "We can't. I'm not as pure anymore, they would never permit our union."
@@ -1551,7 +1552,7 @@ You creep up to the door.
 <<if $skulduggerysuccess is 1>>
 	<span class="green">You hardly make a sound.</span>
 	<<skulduggeryuse>>
-	
+
 	You press your ear to the door and do your best to listen in. You hear Jordan's voice.
 	<br><br>
 	"Where did you two first meet?"
@@ -2015,7 +2016,7 @@ One of the <<person2>><<monks>> picks up one of the candles, holding it over Syd
 <br><br>
 You see the candle above Sydney melt at a faster rate. A drop of wax hits <<person1>><<his>> bare back. <<He>> flinches, but soon looks relieved. More wax begins to drip down, until it begins to drip from Sydney onto you. It's very hot, <span class="gold">yet you feel no pain.</span>
 <br><br>
-<<link [[Forever, as one|Sydney Temple Pure Ritual 2]]>><<set $templePromised to "Sydney">><<set $player.virginity.temple to true>><</link>>
+<<link [[Forever, as one|Sydney Temple Pure Ritual 2]]>><<set $templePromised to "Sydney">><<set $player.virginity.temple to true>><<set $virginityProtected to true>><</link>> /* TODO: virginityProtected should be removed from here after marriage is added */
 <br>
 
 :: Sydney Temple Pure Ritual 2
@@ -2041,13 +2042,13 @@ You're left alone with Sydney, hearing the doors lock. "S...so, now we can just.
 Sydney smiles at you. "I'm ready." <<He>> wraps <<his>> arms around you and kisses you. You both fall back onto the cushioned altar. <<takeKissVirginity "Sydney" `($sydneyromance is 1?"loveInterest":"romantic")`>>
 <br><br>
 You've gained the <span class="blue">Rite of Promise: Sydney</span> trait.
-<br><br>		
+<br><br>
 <<endevent>><<npc "Sydney">><<person1>>
 <<link [[Next|Sydney Temple Pure Sex]]>><<set $sexstart to 1>><</link>>
 <br>
 
 :: Sydney Temple Pure Sex
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<if $sexstart is 1>>
 	<<set $sydneyDaily.sex += 1>><<set $sydney.sexTotal += 1>>
 	<<set $sexstart to 0>>
@@ -2184,7 +2185,7 @@ The fondling continues for a few minutes. At last, <<he>> finishes <<his>> work,
 <br>
 
 :: Sydney Temple Test 2
-<<effects>><<NPCStatusCheck "Sydney">><<sydneySchedule>>
+<<effects>><<run statusCheck("Sydney")>><<sydneySchedule>>
 <<if $phase is 1>>
 	You look away as Jordan repeats the examination on Sydney, only daring to look when it's finished.
 <<else>>
@@ -2303,7 +2304,7 @@ Sydney quickly clings to you.
 <br>
 
 :: Sydney Temple Punish Intro
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 <<npc "Sydney">><<person1>>
 <<effects>>
 <<generate2>><<person2>><<generate3>><<generate4>> A <<priest>> emerges from a door marked with a red cross. <<Hes>> flanked by many <<monks>>. One of them assures Jordan that you'll both be treated gently.
@@ -2335,7 +2336,7 @@ You're already surrounded by enough <<monks>> to restrain both of you. They make
 <<if $phase is 1>>
 	You hold on to Sydney, not daring to let go. You hold on for dear life. Whatever's coming, you know you'll be able to handle it together. <<nnpc_He "Sydney">> smiles through <<his>> panic.
 	<br><br>
-	The <<priest>> nods in approval. "A good start." 
+	The <<priest>> nods in approval. "A good start."
 <<else>>
 	You lash out, pushing Sydney away. It's all <<nnpc_his "Sydney">> fault, why should you be punished for this? You can handle yourself. <<nnpc_He "Sydney">> looks to you with tears in <<nnpc_his "Sydney">> eyes, looking utterly betrayed.
 	<br><br>
@@ -2417,7 +2418,7 @@ You and Sydney both hold to each other tight as the doors open and light floods
 	<<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>>
 		<<if $templePromised is "Sydney">>
 			You've gained the <span class="blue">Rite of Promise: Sydney</span> trait.
-			<br><br>		
+			<br><br>
 		<<else>>
 			You've gained the <span class="blue">Chastity Vow</span> trait.
 			<br><br>
@@ -2607,11 +2608,11 @@ You continue to hold each other. Eventually, though <<he>> still shakes, Sydney
 	<<set _sydneyText to "my friend">>
 <</if>>
 <<generateTemple 1>><<person1>>
-You approach a <<person1>> dressed as a <<monk>>. You tug on <<his>> <<npcClothesText $NPCList[0] "upper">>, and <<he>> turns and greets you with a warm smile.
+You approach a <<person1>><<person>> dressed as a <<monk>>. You tug on <<his>> <<npcClothesText $NPCList[0] "upper">>, and <<he>> turns and greets you with a warm smile.
 <br><br>
 <<if $submissive gte 1150>>
 	<<set _respond to "stammer">>
-	"I-I'm looking for _sydneyText," you say. "<<nnpc_Hes "Sydney">> usually here around now. Do you know Sydney?" 
+	"I-I'm looking for _sydneyText," you say. "<<nnpc_Hes "Sydney">> usually here around now. Do you know Sydney?"
 <<elseif $submissive lte 850>>
 	<<set _respond to "mutter">>
 	"Where's _sydneyText?" you ask, crossing your arms. "<<nnpc_Hes "Sydney">> always here around this time.
@@ -2631,7 +2632,8 @@ You approach a <<person1>> dressed as a <<monk>>. You tug on <<his>> <<npcClothe
 	"Ah, Sydney! <<nnpc_He "Sydney">> left early, today. <<nnpc_He "Sydney">> looked quite upset about something, and went home. I'm sure <<nnpc_he "Sydney">> will return tomorrow."
 <</if>>
 <br><br>
-You _respond your thanks to <<him>>, and <<he>> returns to his duties.
+You _respond your thanks to <<him>>, and <<he>> returns to <<his>> duties.
 <br><br>
+<<endevent>>
 <<link [[Next|Temple]]>><</link>>
 <br>
diff --git a/game/overworld-town/special-sydney/walk.twee b/game/overworld-town/special-sydney/walk.twee
index d0861a7f5e5770c68398ede7ea11b44e7518324e..66bd28de315ef18c434ca0821c87b3120c8f9939 100644
--- a/game/overworld-town/special-sydney/walk.twee
+++ b/game/overworld-town/special-sydney/walk.twee
@@ -69,7 +69,7 @@
 <</if>>
 
 :: Sydney Walk Shopping
-<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<NPCStatusCheck "Sydney">><<set _sydneyPray to true>>
+<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<run statusCheck("Sydney")>><<set _sydneyPray to true>>
 <<if $submissive gte 1150>>
 	"How about the shopping centre?" you ask.
 <<elseif $submissive lte 850>>
@@ -87,7 +87,7 @@
 			<<else>>
 				"It's still early, there won't be too many students coming by... sure!"
 				<<set _walk to true>>
-			<</if>>		
+			<</if>>
 		<<case "fourth" "fifth">>
 			"You're supposed to be in a class right now, aren't you?" <<He>> pauses to think for a moment.
 			<<if _sydneyStatus.includes("corrupt")>>
@@ -112,7 +112,7 @@
 				<<else>>
 					"We'd need at least thirty minutes, right? I really don't want you to get in trouble. Can we wait until after school?"
 					<<set _walk to false>>
-				<</if>>				
+				<</if>>
 			<<else>>
 				"We should have enough time, actually. This'll be fun!"
 				<<set _walk to true>>
@@ -170,7 +170,7 @@
 <</if>>
 
 :: Sydney Walk Beach
-<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<NPCStatusCheck "Sydney">><<set _sydneyPray to true>>
+<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<run statusCheck("Sydney")>><<set _sydneyPray to true>>
 <<if $submissive gte 1150>>
 	"How about the beach?" you ask.
 <<elseif $submissive lte 850>>
@@ -242,7 +242,7 @@
 <</if>>
 
 :: Sydney Walk Prayer Room
-<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<NPCStatusCheck "Sydney">><<set _sydneyPray to true>>
+<<set $outside to 0>><<if $location is "school">><<schooleffects>><</if>><<effects>><<run statusCheck("Sydney")>><<set _sydneyPray to true>>
 <<if $submissive gte 1150>>
 	"We could... go to the prayer room again," you say, blushing.
 <<elseif $submissive lte 850>>
@@ -379,7 +379,7 @@ You buy Sydney a new pair of glasses.
 		<<if $sydneyromance is 1>>"At least these new ones will remind me of you now."<<else>>"Thank you. You didn't have to do this for me."<</if>>
 	<<case "playerbroken">>
 		<<He>> pushes <<his>> <<sydneyGlasses>> to the person working the counter. "I'll miss these old things." <<He>> looks to you with a smile.
-		"Try not to break these on my face, please?" You look down guiltily, but <<he>> gives you a playful nudge.	
+		"Try not to break these on my face, please?" You look down guiltily, but <<he>> gives you a playful nudge.
 	<<case "glasses">>
 		"Are you sure? The ones I have now are fine."
 		<br><br>
@@ -455,7 +455,7 @@ The optometrist gives Sydney a quick vision test with <<his>> new contacts. It g
 <br>
 
 :: Sydney Shopping Hairdressers
-<<set $outside to 0>><<set $location to "shopping_centre">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "shopping_centre">><<effects>><<run statusCheck("Sydney")>>
 <<set $sydneyDaily.shopHair to true>>
 You and Sydney enter the hairdressers. Here you can have your hair cut or dyed. There are a pair of seats available.
 <br><br>
@@ -482,7 +482,7 @@ You and Sydney enter the hairdressers. Here you can have your hair cut or dyed.
 <br>
 
 :: Sydney Hairdressers Sit
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<effects>>
 You bring Sydney to one of the vacant seats, and take the seat next to <<him>>.
 <<generate2>><<person2>>The hairdresser, a <<person>>, soon appears behind the two of you.<<person1>> "Alright, what'll it be for
@@ -530,7 +530,7 @@ Eyebrows dye: £20"
 
 :: Sydney Hairdressers Sit 2
 <<effects>>
-<<set _sydney to true>><<set _pass to 0>>
+<<set _sydneyPresent to true>><<set _pass to 0>>
 <<if $sydneyHairOption is $sydney.hair and $dyeOption is "noChange">>
 	<<set _cancel to true>>
 	You and Sydney decide against having <<his>> hair treated. <<person2>><<He>> steps behind you. "Alright. What about you?"
@@ -768,7 +768,7 @@ You approach the shelves of folded up swimwear. You can't help but think that so
 <br>
 
 :: Sydney Buy Swim
-<<set $outside to 0>><<set $location to "shopping_centre">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "shopping_centre">><<effects>><<run statusCheck("Sydney")>>
 <<switch $select>>
 	<<case "school">>
 		You pick out the school-appropriate swimwear for Sydney.
@@ -876,7 +876,7 @@ You approach the shelves of folded up swimwear. You can't help but think that so
 						<<He>> seems to actually think about it for a moment. "N...no. No no no, I just can't."
 						<<set _convince to true>>
 					<</if>>
-				<</if>>					
+				<</if>>
 			<</if>>
 		<</if>>
 <</switch>>
@@ -970,7 +970,7 @@ You cross your arms. "I'd really like to see you wear this. You'd look really cu
 <</if>>
 
 :: Sydney Shopping Swim Wait
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 You wait for Sydney. After a few minutes,
 <<if _sydneyStatus.includes("corrupt")>>
 	<<he>> emerges wearing <<his>> new <<sydneySwimwear>>.
@@ -994,7 +994,7 @@ You wait for Sydney. After a few minutes,
 		<<He>> turns on the spot and gives <<his>> bottom a brief shake. "Gonna get back into my people clothes. Thanks again for the wardrobe change, hope you enjoyed the view." After a few more minutes, Sydney comes back out wearing <<his>> <<if $exit is "library">>school clothes<<else>>temple robes<</if>> again.
 		<br><br>
 		<<link [[Leave (0:01)|Sydney Shopping Centre]]>><<unset $select>><</link>>
-		<br>	
+		<br>
 	<</if>>
 <<else>>
 	<<he>> emerges, wearing <<his>> <<if $exit is "library">>school clothes<<else>>temple robes<</if>> again. "It fits. Thanks for getting it for me<<if $select is "lewd" or $select is "crossdress">>, even if it's... not my usual..." <<He>> looks down, blushing.<<else>>!"<</if>>
@@ -1004,7 +1004,7 @@ You wait for Sydney. After a few minutes,
 <</if>>
 
 :: Sydney Shopping Swim Peek
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 You quietly approach the changing booth. You look around to make sure no one sees you, before grabbing a nearby step stool to peer over the door. Sydney is facing away from it, slowly removing <<his>> <<if $exit is "library">>school clothes<<else>>temple robes<</if>>.
 <<if _sydneyStatus.includes("corrupt")>>
 	<<He>> isn't wearing anything underneath them.<<if _sydneyChastity and !$sydneyChastityKnown>> You think you catch a glint of something near <<his>> <<sydneyGenitals "short">>, but you're forced to duck back down before you can get a better look.<<else>> You get an unrestricted view of <<his>> <<sydneyGenitals>>. You duck back down before <<he>> can turn around.<</if>>
@@ -1037,7 +1037,7 @@ After a few minutes,
 		<<He>> turns on the spot and gives <<his>> bottom a brief shake. "Gonna get back into my people clothes. Thanks again for the wardrobe change, hope you enjoyed the view." After a few more minutes, Sydney comes back out wearing <<his>> <<if $exit is "library">>school clothes<<else>>temple robes<</if>> again.
 		<br><br>
 		<<link [[Leave (0:01)|Sydney Shopping Centre]]>><<unset $select>><</link>>
-		<br>	
+		<br>
 	<</if>>
 <<else>>
 	<<he>> emerges, wearing <<his>> <<if $exit is "library">>school clothes<<else>>temple robes<</if>> again. "It fits. Thanks for getting it for me<<if $select is "lewd" or $select is "crossdress">>, even if it's... not my usual..." <<He>> looks down, blushing.<<else>>!"<</if>>
@@ -1047,7 +1047,7 @@ After a few minutes,
 <</if>>
 
 :: Sydney Shopping Swim Enter
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 <<if $open>>
 	<<unset $open>>
 	You pick the lock, and throw the door open. <<set _continue to true>><<npcincr Sydney lust 1>><<promiscuity3>>
@@ -1105,7 +1105,7 @@ After a few minutes,
 <</if>>
 
 :: Sydney Shopping Lock
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 You lock the door behind you, and approach Sydney.
 <<if _sydneyStatus.includes("corrupt")>>
 	<<He>> quickly grabs you and pulls you close.
@@ -1155,7 +1155,7 @@ You lock the door behind you, and approach Sydney.
 <</if>>
 
 :: Sydney Shopping Sex
-<<NPCStatusCheck "Sydney">><<set $corruptionEvent to 1>>
+<<run statusCheck("Sydney")>><<set $corruptionEvent to 1>>
 <<if $sexstart is 1>>
 	<<if $phase2 is 1>>
 		You nod, and follow Sydney into the changing booth. <<He>> locks the door behind you, and embraces you.
@@ -1199,7 +1199,7 @@ You lock the door behind you, and approach Sydney.
 <</if>>
 
 :: Sydney Shopping Sex Finish
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
@@ -1211,8 +1211,8 @@ You lock the door behind you, and approach Sydney.
 			<<case "pure" "pureLust">>
 				"Th-that was... incredible," <<he>> murmurs. "And sinful..."
 			<<case "corrupt" "corruptLust">>
-				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.		
-			<<default>> 
+				"I'm glad my love for you is being rewarded," <<he>> proclaims with a smug smile.
+			<<default>>
 				"That was great, but someone could've heard us," <<he>> giggles.
 		<</switch>>
 	<</if>>
@@ -1279,7 +1279,7 @@ You lock the door behind you, and approach Sydney.
 <br>
 
 :: Sydney Shopping Lock End
-<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>><<run statusCheck("Sydney")>>
 <<if $phase2 is 2>>
 	<<switch _sydneyStatus>>
 		<<case "pure">>
@@ -1303,7 +1303,7 @@ Sydney finishes dressing in front of you. You exit the changing booth, and Sydne
 <br>
 
 :: Sydney Shopping Swim Enter Leave
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 You exit the changing booth.
 <<if _sydneyStatus.includes("corrupt")>>
 	<<if $sydneyromance is 1>>
@@ -1331,7 +1331,7 @@ You shake your head, and Sydney frowns. "Suit yourself, I guess." <<He>> turns o
 <br>
 
 :: Sydney Shopping Leave
-<<set $outside to 1>><<set $location to "town">><<effects>><<NPCStatusCheck "Sydney">><<sydneySchedule>>
+<<set $outside to 1>><<set $location to "town">><<effects>><<run statusCheck("Sydney")>><<sydneySchedule>>
 <<if _sydney_location is "science">>
 	<<set $location to "park">>
 	You and Sydney cut across the park again. <<He>> bursts through the front doors of the school, and heads straight for Sirris' classroom with you in tow.
@@ -1345,7 +1345,7 @@ You shake your head, and Sydney frowns. "Suit yourself, I guess." <<He>> turns o
 	<<link [[Next|Sydney Science Walk]]>><</link>>
 	<br>
 <<elseif _sydney_location is "shop" or _sydney_location is "home">>
-	You exit the shopping center with Sydney. <<if $sydneyromance is 1>><<if _sydneyStatus.includes("corrupt")>><<He>> takes your hands in <<hers>><<else>>You take <<his>> hands in yours<</if>>. <<takeHandholdingVirginity "Sydney" "romantic">><</if>>
+	You exit the shopping centre with Sydney. <<if $sydneyromance is 1>><<if _sydneyStatus.includes("corrupt")>><<He>> takes your hands in <<hers>><<else>>You take <<his>> hands in yours<</if>>. <<takeHandholdingVirginity "Sydney" "romantic">><</if>>
 	<br><br>
 	"I've got to get going now. Thanks for taking me there!" <<He>> <<if $sydneyromance is 1>>kisses you on the cheek, and <</if>>waves you off as <<he>> walks towards Elk Street.
 	<br><br>
@@ -1353,12 +1353,12 @@ You shake your head, and Sydney frowns. "Suit yourself, I guess." <<He>> turns o
 	<br>
 <<elseif $exit is "library">>
 	<<set $location to "school">><<set $bus to "schoollibrary">><<schooleffects>>
-	You exit the shopping center with Sydney, and walk back towards Oxford Street. <<He>> settles back into <<his>> seat once you reach the library. "Thanks for taking me there! That was fun."
+	You exit the shopping centre with Sydney, and walk back towards Oxford Street. <<He>> settles back into <<his>> seat once you reach the library. "Thanks for taking me there! That was fun."
 	<br><br>
 	<<sydneyOptions>>
 <<elseif $exit is "temple">>
 	<<set $location to "temple">><<set $bus to "wolf">>
-	You exit the shopping center with Sydney, and walk back towards Wolf Street. You reach the temple without incident. "Thanks for taking me there! That was fun."
+	You exit the shopping centre with Sydney, and walk back towards Wolf Street. You reach the temple without incident. "Thanks for taking me there! That was fun."
 	<br><br>
 	<<sydneyOptions>>
 <<else>>
@@ -1376,10 +1376,10 @@ You shake your head, and Sydney frowns. "Suit yourself, I guess." <<He>> turns o
 <<He>> <<if $sydneyromance is 1>>kisses you on the cheek, and <</if>>waves you off as <<he>> walks towards Wolf Street.
 <br><br>
 <<link [[Next|High Street]]>><<endevent>><<set $eventskip to 1>><</link>>
-<br>	
+<br>
 
 :: Sydney Walk School
-<<set $outside to 1>><<set $location to "town">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 1>><<set $location to "town">><<effects>><<run statusCheck("Sydney")>>
 <<if $phase is 2>>
 	The two of you make record time on the sprint from Wolf Street to Oxford Street, cutting through the park. <<physique 3>>
 	<br><br>
@@ -1443,16 +1443,16 @@ You arrive at the beach with Sydney.
 	<<if $weather is "overcast">>
 		The clouds have driven away most would-be visitors, but there are still people strolling along the water's edge.
 	<<else>>
-		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of teenagers are playing volleyball.
+		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of students are playing volleyball.
 	<</if>>
 	Sydney takes a deep breath, seeming to enjoy the salty sea air. You both head towards the changing rooms.
 	<br><br>
 	<<link [[Next|Sydney Beach Changing Room]]>><<pass 5>><</link>>
-	<br>	
+	<br>
 <</if>>
 
 :: Sydney Beach Promenade Move
-<<effects>><<NPCStatusCheck "Sydney">><<pass 10>>
+<<effects>><<run statusCheck("Sydney")>><<pass 10>>
 You pull Sydney away from the edge of the promenade just as the massive wave makes contact. You both remain relatively dry.
 <br><br>
 <<His>> face is close to yours.
@@ -1504,7 +1504,7 @@ You let go of Sydney and let <<him>> separate from you. <<He>> brushes <<himself
 <br>
 
 :: Sydney Beach Promenade Soak
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 You step away from the edge. Sydney looks over, before getting drenched as the wave crashes into the promenade.
 <<His>> umbrella offers no protection from the deluge, and <<his>><<if $exit is "library">> school clothes<<else>> temple robes<</if>> get soaked through.
 <<if _sydneyStatus.includes("corrupt")>>
@@ -1523,7 +1523,7 @@ You step away from the edge. Sydney looks over, before getting drenched as the w
 <br>
 
 :: Sydney Beach Promenade Soak Both
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 You brace yourself for the wave's impact. Sydney looks over to you, and you're both drenched as it crashes into the promenade.
 <<His>> umbrella offers no protection from the deluge, and <<his>><<if $exit is "library">> school clothes<<else>> temple robes<</if>> get soaked through.
 <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>>
@@ -1547,7 +1547,7 @@ You brace yourself for the wave's impact. Sydney looks over to you, and you're b
 <br>
 
 :: Sydney Beach Promenade Soak Ignore
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 <<if _sydneyStatus.includes("corrupt")>>
 	Sydney hands you <<his>> umbrella, and begins to saunter over to the changing rooms. You hear a few hoots and whistles get directed at <<him>> as <<he>> passes by the group of people.
 	<span class="red">One makes a grab for <<him>>.</span> Sydney turns on a dime and delivers a kick right to their groin. They crumble. The rest of the crowd goes silent, and Sydney enters the changing room.
@@ -1574,7 +1574,7 @@ You brace yourself for the wave's impact. Sydney looks over to you, and you're b
 <br>
 
 :: Sydney Beach Promenade Soak Accompany
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 You and Sydney walk over to the changing rooms,<<if $exposed gte 1>> using the umbrella to hide your exposure<<else>> and you do your best to shield Sydney from view<</if>>. You hear some lewd remarks from the crowd as they notice your approach.
 <br><br>
 <<generate2>><<person2>>
@@ -1607,7 +1607,7 @@ You enter the changing rooms without further incident.
 <br>
 
 :: Sydney Beach Promenade Changing Rooms
-<<effects>><<NPCStatusCheck "Sydney">>
+<<effects>><<run statusCheck("Sydney")>>
 <<if $exposed gte 1>>
 	You and Sydney begin the process of drying out your clothing.
 <<else>>
@@ -1658,7 +1658,7 @@ You are in a small wooden changing room. You can hear Sydney in the adjacent roo
 <<wardrobe>>
 
 :: Sydney Beach Swimsuit
-<<effects>><<NPCStatusCheck "Sydney">><<set $outside to 1>>
+<<effects>><<run statusCheck("Sydney")>><<set $outside to 1>>
 You emerge from the changing room and wait for Sydney.
 <<switch $sydney.swim>>
 	<<case "school" "normal">>
@@ -1666,7 +1666,7 @@ You emerge from the changing room and wait for Sydney.
 	<<case "lewd">>
 		<<He>> exits <<his>> booth after some time, wearing <<his>> <<sydneySwimwear>>.
 		<<if _sydneyStatus.includes("corrupt")>>
-			<<He>> seems to revel in the exposure granted by it. 
+			<<He>> seems to revel in the exposure granted by it.
 		<<else>>
 			<<He>> gingerly covers <<himself>>, but slowly becomes less cagey.
 		<</if>>
@@ -1722,14 +1722,14 @@ You are on the beach with Sydney.
 	<<link [[Next|Sydney Beach Changing Room Leave]]>><<pass 25>><</link>>
 <<else>>
 	<<if $weather is "clear">>
-		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of teenagers are playing volleyball.
+		It is awash with visitors, children build sandcastles and play in the water while their parents bask in the sun. A group of students are playing volleyball.
 	<<else>>
 		The clouds have driven away most would-be visitors, but there are still people strolling along the water's edge.
 	<</if>>
 	<br><br>
 	<<if $worn.under_lower.type.includes("swim") and ($worn.under_upper.type.includes("swim") or $worn.under_upper.type.includes("naked")) and ($worn.upper.type.includes("swim") or $worn.upper.type.includes("naked")) and ($worn.lower.type.includes("swim") or $worn.lower.type.includes("naked"))>>
 		<<link [[Go for a swim (0:02)|Sydney Beach Swim]]>><<pass 2>><</link>>
-		<br>	
+		<br>
 		<<link [[Tan on the beach (1:00)|Sydney Beach Tanning]]>><<pass 60>><<npcincr Sydney love 1>><</link>><<llstress>><<glove>>
 		<br>
 	<<else>>
@@ -1756,7 +1756,7 @@ You are on the beach with Sydney.
 <</if>>
 
 :: Sydney Beach Swim
-<<location "seabeach">><<water>><<effects>><<NPCStatusCheck "Sydney">>
+<<location "seabeach">><<water>><<effects>><<run statusCheck("Sydney")>>
 <<if $phase is 1>>
 	You are swimming with Sydney along the beach.
 <<else>>
@@ -1805,13 +1805,13 @@ You are on the beach with Sydney.
 			<<endevent>><<npc "Sydney">><<person1>><<set $phase to 1>>
 			"Are you okay? That absolute lunatic, I thought someone was trying to drown you!" Sydney spends some time fussing over you. You manage to convince <<him>> that you're fine after some time.
 		<<default>>
-			<<if $swimmingskill lte 100>>
+			<<if currentSkillValue('swimmingskill') lte 100>>
 				<<He>> can tell that you're struggling, and stays by your side to make sure you stay above the water.
-			<<elseif $swimmingskill lte 300>>
+			<<elseif currentSkillValue('swimmingskill') lte 300>>
 				<<He>> does laps around you, but encourages you to take breaks as you need them.
-			<<elseif $swimmingskill lte 500>>
+			<<elseif currentSkillValue('swimmingskill') lte 500>>
 				You manage to keep pace with <<him>>, and you have a good time.
-			<<elseif $swimmingskill lte 900>>
+			<<elseif currentSkillValue('swimmingskill') lte 900>>
 				<<Hes>> a good swimmer, but you keep up with <<him>>.
 			<<else>>
 				<<He>> seems impressed by your swimming skill. You have a great time.
@@ -1873,12 +1873,13 @@ You have a <<skincolourtext>>
 <<link [[Next|Sydney Beach]]>><</link>>
 
 :: Sydney Robin's Lemonade
-<<location "beach">><<effects>><<NPCStatusCheck "Sydney">>
+<<location "beach">><<effects>>
+<<run statusCheck("Sydney")>>
+<<set _robin to statusCheck("Robin")>>
 This passage should be unreachable. If you're seeing this, you've found a bug. Please report it to Vrelnir, and take this convenient portal to Starfish Street to escape.
 <<link [[Next|Starfish Street]]>><<endevent>><<set $eventskip to 1>><</link>>
 <br>
 <<npc "Robin" 2>><<person2>>
-<<set _robin to $NPCName[$NPCNameList.indexOf("Robin")]>>
 <<if $robinlemonadeintro isnot 1>>
 	<<set $robinlemonadeintro to 1>>
 	You see Robin standing behind <<his>> lemonade stand. <<He>> waves when <<he>> sees the two of you.
@@ -1937,7 +1938,7 @@ This passage should be unreachable. If you're seeing this, you've found a bug. P
 <br>
 
 :: Sydney Robin's Lemonade Help
-<<location "beach">><<effects>><<NPCStatusCheck "Sydney">>
+<<location "beach">><<effects>><<run statusCheck("Sydney")>>
 This passage should be unreachable. If you're seeing this, you've found a bug. Please report it to Vrelnir, and take this convenient portal to Starfish Street to escape.
 <<link [[Next|Starfish Street]]>><<endevent>><<set $eventskip to 1>><</link>>
 <br>
@@ -1953,7 +1954,7 @@ This passage should be unreachable. If you're seeing this, you've found a bug. P
 <</if>>
 
 :: Sydney Beach Walk
-<<location "beach">><<effects>><<NPCStatusCheck "Sydney">>
+<<location "beach">><<effects>><<run statusCheck("Sydney")>>
 You walk along the shore with Sydney.
 <<if $weather is "clear">>
 	The sun's intensity wears on both of you, but you keep your minds off the heat with idle chatter.
@@ -2045,8 +2046,8 @@ You approach a group of four playing volleyball. Sydney watches them. One, a <<p
 <<link [[Leave|Sydney Beach]]>><<endevent>><<npc Sydney>><<person1>><</link>>
 
 :: Sydney Beach Volleyball Play
-<<location "beach">><<effects>><<NPCStatusCheck "Sydney">>
-The teenagers are happy to have two more players, particularly the <<person2>><<person>>.
+<<location "beach">><<effects>><<run statusCheck("Sydney")>>
+The students are happy to have two more players, particularly the <<person2>><<person>>.
 <br><br>
 <<physique 3>>
 <<set $eventcheck to random(1, 10000)>>
@@ -2067,7 +2068,7 @@ The teenagers are happy to have two more players, particularly the <<person2>><<
 			<</if>>
 			<<person1>><<He>> releases the <<person2>><<person>>, who backs off.
 			<br><br>
-			"Sorry, didn't know this was your <<girlfriend>>, <<sydneyBeachGender>>." 
+			"Sorry, didn't know this was your <<girlfriend>>, <<sydneyBeachGender>>."
 			<<if $sydney.swim is "crossdress">>
 				Sydney seems to be taken aback at being called a <<sydneyBeachGender>>, but shakes it off.
 			<</if>>
@@ -2086,9 +2087,9 @@ The teenagers are happy to have two more players, particularly the <<person2>><<
 					You fix your clothes, taking a bit longer than you need to. <<if _sydneyStatus.includes("corrupt")>>Sydney whistles and cheers.<<else>>Sydney shields <<person1>><<his>> eyes.<</if>>
 					<<garousal>><<arousal 300>><<npcincr Sydney lust 1>><<gslust>><<npcincr Sydney purity -2>><<lspurity>>
 				<<else>>
-					exposing your <<genitals>> for all to see. Laughter and lewd gestures erupt from both teams as your face turns red and you hasten to protect your dignity. Sydney helps you cover yourself, shooting glares at the other teenagers.
+					exposing your <<genitals>> for all to see. Laughter and lewd gestures erupt from both teams as your face turns red and you hasten to protect your dignity. Sydney helps you cover yourself, shooting glares at the other students.
 					<<garousal>><<gstress>><<gtrauma>><<arousal 300>><<stress 3>><<trauma 3>><<npcincr Sydney lust 1>><<gslust>><<npcincr Sydney purity -2>><<lspurity>>
-				<</if>>			
+				<</if>>
 			<<else>>
 				<<if $uncomfortable.underwear is false>>
 					exposing your $worn.under_lower.name. Laughter erupts from both teams, <<if _sydneyStatus.includes("corrupt")>>including you and Sydney<<else>>including you. Sydney covers <<person1>><<his>> eyes at first, but uncovers them as <<he>> realises that everyone else seems fine with it<</if>>. It's just a $worn.under_lower.name, you're not embarrassed.
@@ -2116,7 +2117,7 @@ The teenagers are happy to have two more players, particularly the <<person2>><<
 			<<if _sydneyStatus.includes("corrupt")>>
 				<<if ["glasses", "playerbought"].includes($sydney.glasses)>>"You're lucky that didn't break my glasses!" <</if>><<He>> jumps back to a standing position, and quickly grabs the ball before spiking it back at the perpetrator, a <<person3>><<person>>. <<person1>><<He>> aimed for the face, and it struck true. The group laughs at the <<person3>><<person>> as <<he>> clutches <<his>> face.
 			<<else>>
-				You rush to <<his>> side and help <<him>> stand. You brush <<him>> off, and <<if $sydneyromance is 1>><<he>> kisses you on the cheek. You hear the other teenagers make various "aww"s at the display. <<stress -3>><<lstress>><<trauma -3>><<ltrauma>><<status 5>><<gcool>><<else>><<he>> smiles at you.<</if>>
+				You rush to <<his>> side and help <<him>> stand. You brush <<him>> off, and <<if $sydneyromance is 1>><<he>> kisses you on the cheek. You hear the other students make various "aww"s at the display. <<stress -3>><<lstress>><<trauma -3>><<ltrauma>><<status 5>><<gcool>><<else>><<he>> smiles at you.<</if>>
 			<</if>>
 			<br><br>
 		<</if>>
@@ -2137,7 +2138,7 @@ The teenagers are happy to have two more players, particularly the <<person2>><<
 	<br><br>
 <</if>>
 <<if $hour gte 20>>
-	Sydney tugs on your arm. "It's getting late. We should get going." The other teenagers seem disappointed, but wave their goodbyes to you.
+	Sydney tugs on your arm. "It's getting late. We should get going." The other students seem disappointed, but wave their goodbyes to you.
 	<br><br>
 	<<link [[Next|Sydney Beach Changing Room Leave]]>><<pass 25>><<endevent>><<npc "Sydney">><<person1>><</link>>
 <<else>>
@@ -2158,7 +2159,7 @@ You are in a small wooden changing room. You can hear Sydney in the adjacent roo
 <<wardrobe>>
 
 :: Sydney Beach Leave
-<<set $outside to 1>><<set $location to "town">><<effects>><<NPCStatusCheck "Sydney">><<sydneySchedule>>
+<<set $outside to 1>><<set $location to "town">><<effects>><<run statusCheck("Sydney")>><<sydneySchedule>>
 <<if $swimChange>>
 	<<unset $swimChange>><<set $sydney.swim to "crossdress">>
 <</if>>
@@ -2188,7 +2189,7 @@ You are in a small wooden changing room. You can hear Sydney in the adjacent roo
 <<unset $exit>>
 
 :: Sydney Leave Temple
-<<set $outside to 0>><<set $location to "temple">><<set $bus to "wolf">><<effects>><<NPCStatusCheck "Sydney">>
+<<set $outside to 0>><<set $location to "temple">><<set $bus to "wolf">><<effects>><<run statusCheck("Sydney")>>
 <<set $sydneyTempleSkip to true>>
 You nod, and Sydney smiles at you. You and <<him>> walk towards Wolf Street.
 <<if $sydneyromance is 1>>
@@ -2222,7 +2223,7 @@ You reach the temple without incident.
 <br>
 
 :: Temple Sydney Walk
-<<set $outside to 1>><<set $location to "temple">><<set $bus to "wolf">><<effects>><<NPCStatusCheck "Sydney">><<sydneySchedule>>
+<<set $outside to 1>><<set $location to "temple">><<set $bus to "wolf">><<effects>><<run statusCheck("Sydney")>><<sydneySchedule>>
 <<set $sydneyTempleSkip to true>>
 You nod, and Sydney smiles at you. <<He>> finishes cleaning up, and you walk to Wolf Street with <<him>>.
 <<if $sydneyromance is 1>>
@@ -2249,7 +2250,7 @@ You reach the temple without incident.
 <<sydneyOptions>>
 
 :: Elk Sydney Walk
-<<set $outside to 1>><<set $location to "elk">><<set $bus to "elk">><<effects>><<NPCStatusCheck "Sydney">><<sydneySchedule>>
+<<set $outside to 1>><<set $location to "elk">><<set $bus to "elk">><<effects>><<run statusCheck("Sydney")>><<sydneySchedule>>
 You nod, and Sydney smiles at you. <<He>> finishes cleaning up, and you walk to Elk Street with <<him>>.
 <<if $sydneyromance is 1>>
 	<<if _sydneyStatus.includes("corrupt")>>
@@ -2261,11 +2262,19 @@ You nod, and Sydney smiles at you. <<He>> finishes cleaning up, and you walk to
 	<br><br>
 <</if>>
 You chat with <<him>> on the way.
-<<print either(
-    `"Thank you for walking with me. It can be lonely walking alone."`,
-    `"Our shop has a lot of customers. I guess I shouldn't be surprised."`,
-    `Sydney rubs <<his>> holy pendant every now and then.`
-)>>
+<<if $adultshopunlocked is undefined>>
+	<<print either(
+		`"Thank you for walking with me. It can be lonely walking alone."`,
+		`"People are already talking about the shop. It's a little embarrassing."`,
+		`Sydney rubs <<his>> holy pendant every now and then.`
+	)>>
+<<else>>
+	<<print either(
+		`"Thank you for walking with me. It can be lonely walking alone."`,
+		`"Our shop has a lot of customers. I guess I shouldn't be surprised."`,
+		`Sydney rubs <<his>> holy pendant every now and then.`
+	)>>
+<</if>>
 <br><br>
 You reach the Elk Street without incident. Sydney waves you goodbye as <<he>> enters Sirris's shop.
 <br><br>
diff --git a/game/overworld-town/special-sydney/widgets.twee b/game/overworld-town/special-sydney/widgets.twee
index dc3f2064f5b5c2772cbb8172b6219da31c892f44..1dd1215985eef1251f18e33cf3b40b0fd9463f50 100644
--- a/game/overworld-town/special-sydney/widgets.twee
+++ b/game/overworld-town/special-sydney/widgets.twee
@@ -26,11 +26,11 @@
 		You kneel in front of Jordan as the other <<monks>> watch. <<He>> pushes a small piece of bread into your mouth, and holds a cup in front of you. You take a sip of the bitter fluid and make way for the next person.
 	<</if>>
 	<<endevent>><<npc "Sydney">><<person1>>
-	You take your seat next to Sydney, and <<he>> looks 
+	You take your seat next to Sydney, and <<he>> looks
 	<<if $angel gte 6>>
-		to you with great interest. 
+		to you with great interest.
 	<<elseif $fallenangel gte 2>>
-		to you with pity. 
+		to you with pity.
 	<<elseif $demon gte 6>>
 		confused by the reactions of the clergy, before seeming to come to a sudden realisation. <<He>> briefly frowns, but quickly looks to you with a hopeful expression.
 	<<else>>
@@ -66,11 +66,11 @@
 		You kneel in front of Jordan as the other <<monks>> watch. <<He>> pushes a small piece of bread into your mouth, and holds a cup in front of you. You take a sip of the bitter fluid and make way for the next person.
 	<</if>>
 	<<endevent>><<npc "Sydney">><<person1>>
-	You take your seat next to Sydney, and <<he>> looks 
+	You take your seat next to Sydney, and <<he>> looks
 	<<if $angel gte 6>>
-		to you with great interest. 
+		to you with great interest.
 	<<elseif $fallenangel gte 2>>
-		to you with pity. 
+		to you with pity.
 	<<elseif $demon gte 6>>
 		confused by the reactions of the clergy, before seeming to come to a sudden realisation. <<He>> frowns, then looks to you with a hopeful expression.
 	<<else>>
@@ -87,7 +87,7 @@
 		<<case 2>>
 			Sydney takes a seat next to you. <<npcincr Sydney love 1>><<glove>>
 		<<case 3>>
-			You spot Sydney on the other side of the temple. <<nnpc_He "Sydney">> sees you too, and waves. <<npcincr Sydney love 1>><<glove>>		
+			You spot Sydney on the other side of the temple. <<nnpc_He "Sydney">> sees you too, and waves. <<npcincr Sydney love 1>><<glove>>
 	<</switch>>
 	<br><br>
 <</if>>
@@ -95,6 +95,7 @@
 
 <<widget "sydneyLibrary">>
 <<npc "Sydney">><<person1>>
+<<run statusCheck("Sydney")>>
 <<if $schoolShopAction>>
 	<<if $schoolShopAction.includes("wear")>>
 		"Thank you for your purchase! That looks good on you."
@@ -102,7 +103,7 @@
 		"Thank you for your purchase!"
 	<<elseif $schoolShopAction.includes("return")>>
 		"Couldn't find the right size? I'll inform the <<nnpc_title "Leighton">>."
-	<</if>>	
+	<</if>>
 	Sydney leads you back to <<his>> post at the rental counter<<if $sydneyDaily.peek>>, looking nervous and trying to conceal <<his>> blush all the while<</if>>.
 	<<unset $schoolShopAction>>
 	<br><br>
@@ -127,7 +128,7 @@
 		<br>
 	<<else>>
 		<br><br>
-		<<sydneyOptions>>		
+		<<sydneyOptions>>
 	<</if>>
 <<elseif _counterApproach is 1>>
 	<<if $sydneyChastityRemoveIntro is 1>>
@@ -150,9 +151,19 @@
 		<br><br>
 		<<sydneyOptions>>
 	<<elseif $bookReturnedAbsent>>
+		Sydney looks up at you.
+		<<if $bookOverdue>>
+			"Thanks for returning that overdue book, even though I wasn't here." <<bookCriminal>>
+		<<else>>
+			"I respect your punctuality, but next time, just return your books up front.
+			<<if _sydneyStatus.includes("corrupt")>>
+				Don't be scared. I won't bite... hard."
+			<<else>>
+				You don't need to be shy!"
+			<</if>>
+		<</if>>
 		<<unset $bookReturnedAbsent>>
 		<<unset $bookOverdue>>
-		Sydney looks up at you. "Thanks for returning that overdue book, even though I wasn't here." <<bookCriminal>>
 		<br><br>
 		<<sydneyOptions>>
 	<<elseif $bookOverdue and !$sydneyDaily.overdueMessage>>
@@ -208,7 +219,7 @@
 <</widget>>
 
 <<widget "sydneyOptions">>
-<<sydneySchedule>><<NPCStatusCheck "Sydney">>
+<<sydneySchedule>><<run statusCheck("Sydney")>>
 <<if $bus is "schoollibrary" or $location is "school">>
 	<<switch _sydney_location>>
 		<<case "library">>
@@ -231,14 +242,14 @@
 			<br>
 		<<case "class">>
 			Sydney's eyes grow wide. "Sh<<if _sydneyStatus.includes("corrupt")>>i<<else>>oo<</if>>t! I'm late for class!" <<He>> begins to pack up <<his>> things.
-			<<if $NPCName[$NPCNameList.indexOf("Sydney")].love gte 10>>		
+			<<if $NPCName[$NPCNameList.indexOf("Sydney")].love gte 10>>
 				"Sorry, can we finish this later?"
 			<<else>>
 				<<He>> <<if $sydneyromance is 1>>blows you a kiss and <</if>>waves you off as <<he>> exits the library.
 			<</if>>
 			<br><br>
 			<<link [[Leave|School Library]]>><<endevent>><<set $eventskip to 1>><</link>>
-			<br>		
+			<br>
 		<<case "canteen">>
 			Sydney stands up, stretching, before placing a small sign on the front of the counter. <span class="blue">"At lunch"</span>.
 			<br><br>
@@ -269,7 +280,7 @@
 					<<He>> begins gathering <<his>> things, but pauses. "I usually go to the temple after school. Would you like to come with me? I bet it'd be good for you!" <<He>> looks to you with a hopeful expression.
 					<br><br>
 					<<wolficon>><<link [[Go with Sydney (0:25)|Temple Sydney Walk]]>><<pass 25>><<stress -3>><<npcincr Sydney love 1>><</link>><<lstress>><<glove>>
-					<br>		
+					<br>
 				<<else>>
 					<<He>> gathers <<his>> things, and leads the lingering students out of the library.
 					<br><br>
@@ -292,7 +303,7 @@
 				<<link [[Go with Sydney (1:00)|Adult Shop Opening Walk]]>><<pass 10>><</link>>
 				<br>
 			<<elseif $sydneySeen.includes("shop")>>
-				"It's closing time. I'm off to help my <<sydneymum>> with the shop. You can come too, if you want." 
+				"It's closing time. I'm off to help my <<sydneymum>> with the shop. You can come too, if you want."
 				<<He>> gathers <<his>> things,<<if $sydneyromance is 1>> kisses you on the cheek,<</if>> and starts to lead any lingering students out of the library.
 				<br><br>
 
@@ -321,18 +332,17 @@
 					<<sydneyOptionsTalk>>
 					<br>
 					<<prayoptions>>
-					<br>
-					<<if $sydneyChastityKnown and $sydneyromance is 1 and checkSextoysGift("Sydney") is 1>>
+					<<if $sydneyChastityKnown and $sydneyromance is 1 and checkSextoysGift("Sydney") and checkIfNPCHasCategorySextoy("Sydney","strap-on").length <= 5>>
 						<<link [[Gift Sydney a strap-on|Gift Strap-on Sydney Temple]]>><</link>>
-						<br>
 					<</if>>
+					<br><br>
 					<<link [[Leave|Temple]]>><<endevent>><<set $eventskip to 1>><</link>>
 					<br>
 				<<default>>
 					Sydney stretches. "Time to get back to work. I'll be around." <<if $sydneyromance is 1>><<He>> kisses you on the cheek before leaving.<</if>>
 					<br><br>
 					<<link [[Next|Temple]]>><<endevent>><<set $eventskip to 1>><</link>>
-					<br>			
+					<br>
 			<</switch>>
 		<<case "library">>
 			Sydney yawns and stretches. "It's about time for school. Care to walk with me?"
@@ -340,7 +350,7 @@
 			<<link [[Walk to school with Sydney (0:10)|Sydney Walk School]]>><<pass 10>><<npcincr Sydney love 1>><</link>><<glove>>
 			<br>
 			<<link [[Stay|Temple]]>><<endevent>><</link>>
-			<br>	
+			<br>
 		<<case "home">>
 			<<if $sydneySeen.includes("parent")>>
 				<<npc "Sirris" 2>><<person2>>
@@ -351,7 +361,7 @@
 				<<link [[Go home|Sydney Ride Home]]>><</link>>
 				<br>
 				<<link [[Stay|Sydney Ride Home No]]>><</link>>
-				<br>				
+				<br>
 			<<else>>
 				Sydney yawns and stretches. "It's time for me to go home. Thanks for keeping me company." <<if $sydneyromance is 1>><<He>> kisses you on the cheek, and leaves the temple.<<else>><<He>> waves you off and leaves the temple.<</if>>
 				<br><br>
@@ -393,7 +403,7 @@
 			Sydney stretches. "Time to get back to work. I'll be around." <<if $sydneyromance is 1>><<He>> kisses you on the cheek before leaving.<</if>>
 			<br><br>
 			<<link [[Next|Temple]]>><<endevent>><<set $eventskip to 1>><</link>>
-			<br>			
+			<br>
 	<</switch>>
 <<elseif $location is "adult_shop">>
 	<<switch _sydney_location>>
@@ -407,12 +417,12 @@
 				<<link [[Go home|Sydney Ride Home]]>><</link>>
 				<br>
 				<<link [[Stay|Sydney Ride Home No]]>><</link>>
-				<br>				
+				<br>
 			<</if>>
 		<<default>>
 			<<sydneyOptionsTalk>>
 			<br>
-			<<if $sydneyChastityKnown and $sydneyromance is 1 and checkSextoysGift("Sydney") is 1>>
+			<<if $sydneyChastityKnown and $sydneyromance is 1 and checkSextoysGift("Sydney") and checkIfNPCHasCategorySextoy("Sydney","strap-on").length <= 5>>
 				<<link [[Gift Sydney a strap-on|Gift Strap-on Sydney Temple]]>><</link>>
 				<br>
 			<</if>>
@@ -432,12 +442,12 @@
 <</if>>
 <<if $location is "adult_shop">> /*Placeholder. Unfinished.*/
 	<<if $NPCName[$NPCNameList.indexOf("Sydney")].love gte 20>>
-        <<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><<stress -3>><<trauma -3>><</link>><<lstress>><<ltrauma>><<glove>>
+		<<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><<stress -3>><<trauma -3>><</link>><<lstress>><<ltrauma>><<glove>>
 		<br>
-    <<else>>
-        <<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><</link>><<glove>>
+	<<else>>
+		<<link [[Help with work (0:30)|Sydney Shop Help]]>><<pass 30>><<npcincr Sydney love 1>><</link>><<glove>>
 		<br>
-    <</if>>
+	<</if>>
 <</if>>
 
 <<if $location is "school">>
@@ -457,7 +467,7 @@
 			<br>
 		<</if>>
 	<</if>>
-	<<if $sydneyChastityKnown and $sydneyromance is 1 and checkSextoysGift("Sydney") is 1>>
+	<<if $sydneyChastityKnown and $sydneyromance is 1 and checkSextoysGift("Sydney") and checkIfNPCHasCategorySextoy("Sydney","strap-on").length <= 5>>
 		<<link [[Gift Sydney a strap-on|Gift Strap-on Sydney Counter]]>><</link>>
 		<br>
 	<</if>>
@@ -504,7 +514,7 @@
 <</if>>
 <<if $bus is "schoollibrary" and $NPCName[$NPCNameList.indexOf("Sydney")].love gte 50 and $trauma gte ($traumamax / 7) * 3 and !$sydneyDaily.breakdown>>
 	<<link [[Break down (0:25)|Sydney Library Break]]>><<pass 25>><<stress -24>><<trauma -12>><<set $sydneyDaily.breakdown to true>><</link>><<llstress>><<lltrauma>>
-	<br>  
+	<br>
 <</if>>
 <</widget>>
 
@@ -533,15 +543,15 @@
 
 <<widget "sydneyLewd">>
 <<if !$sydneySeen.includes("lewd") and _args[0] isnot 'glasses'>>
-    <<set $sydneySeen.pushUnique("lewd")>>
-    <<if _sydneyStatus.includes("corrupt")>>
-        "<span class="green">I've been waiting a long time to do something like this with you.</span> I'd never imagine doing it with anyone else."
-    <<else>>
-        "<span class="green">I've never done anything like this before.</span> I'm scared." You spend some time reassuring <<him>>, telling <<him>> you'll stop if <<he>> asks. Eventually, <<he>> agrees. "I... I trust you."
-    <</if>>
+	<<set $sydneySeen.pushUnique("lewd")>>
+	<<if _sydneyStatus.includes("corrupt")>>
+		"<span class="green">I've been waiting a long time to do something like this with you.</span> I'd never imagine doing it with anyone else."
+	<<else>>
+		"<span class="green">I've never done anything like this before.</span> I'm scared." You spend some time reassuring <<him>>, telling <<him>> you'll stop if <<he>> asks. Eventually, <<he>> agrees. "I... I trust you."
+	<</if>>
 <</if>>
 <<if $sydney.glasses isnot "contacts" and _args[0] isnot 'lewd'>>
-    <<He>> removes <<his>> <<sydneyGlasses>>.
+	<<He>> removes <<his>> <<sydneyGlasses>>.
 <</if>>
 <</widget>>
 
@@ -630,7 +640,7 @@
 		<<set _sydney_location to "temple">>
 	<<else>>
 		<<set _sydney_location to "home">>
-	<</if>>	
+	<</if>>
 <<elseif $schoolday is 1>>
 	<<if $hour lte 5>>
 		<<set _sydney_location to "home">>
@@ -645,7 +655,7 @@
 	<<elseif ["second", "third"].includes($schoolstate)>>
 		<<set _sydney_location to "class">>
 	<<elseif $schoolstate is "lunch" and $luncheaten isnot 1 and $minute lte 15>>
-		<<set _sydney_location to "canteen">>	
+		<<set _sydney_location to "canteen">>
 	<<elseif $hour lte 15 or ($hour is 16 and $minute lte 40)>>
 		<<if $sydneyTempleSkip>>
 			<<set _sydney_location to "temple">>
@@ -675,7 +685,7 @@
 		<<case 17 18 19 20>>
 			<<set $sydney_templeWork to "quarters">>
 		<<case 21 22>>
-			 <<set $sydney_templeWork to "pray">>
+			<<set $sydney_templeWork to "pray">>
 		<<case 23 0>>
 			<<set $sydney_templeWork to ($weekday is 7? "sleep" : "pray")>>
 		<<default>>
@@ -685,26 +695,27 @@
 <</widget>>
 
 <<widget "sydneyStatusCheck">>
-<<set _sydneyStatus to "">>
-<<if $NPCName[$NPCNameList.indexOf("Sydney")].purity gte 50 and $NPCName[$NPCNameList.indexOf("Sydney")].lust gte 60>>
-	<<set _sydneyStatus to "pureLust">>
-<<elseif $NPCName[$NPCNameList.indexOf("Sydney")].corruption gte 10 and $NPCName[$NPCNameList.indexOf("Sydney")].lust gte 20>>
-	 <<set _sydneyStatus to "corruptLust">>
-<<elseif $NPCName[$NPCNameList.indexOf("Sydney")].purity gte 50>>
-	<<set _sydneyStatus to "pure">>
-<<elseif $NPCName[$NPCNameList.indexOf("Sydney")].corruption gte 10>>
-	<<set _sydneyStatus to "corrupt">>
-<<elseif $NPCName[$NPCNameList.indexOf("Sydney")].lust gte 40>>
-	<<set _sydneyStatus to "neutralLust">>
-<<else>>
-	<<set _sydneyStatus to "neutral">>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf("Sydney")].chastity.penis.includes("chastity") or $NPCName[$NPCNameList.indexOf("Sydney")].chastity.vagina.includes("chastity")>>
-	<<set _sydneyChastity to 1>>
-<</if>>
-<<if $NPCName[$NPCNameList.indexOf("Sydney")].virginity.vaginal is true and $NPCName[$NPCNameList.indexOf("Sydney")].virginity.penile is true>>
-	<<set _sydneyVirgin to 1>>
-<</if>>
+	<<set $_sydney to $NPCName[$NPCNameList.indexOf("Sydney")]>>
+	<<set _sydneyStatus to "">>
+	<<if $_sydney.purity gte 50 and $_sydney.lust gte 60>>
+		<<set _sydneyStatus to "pureLust">>
+	<<elseif $_sydney.corruption gte 10 and $_sydney.lust gte 20>>
+		<<set _sydneyStatus to "corruptLust">>
+	<<elseif $_sydney.purity gte 50>>
+		<<set _sydneyStatus to "pure">>
+	<<elseif $_sydney.corruption gte 10>>
+		<<set _sydneyStatus to "corrupt">>
+	<<elseif $_sydney.lust gte 40>>
+		<<set _sydneyStatus to "neutralLust">>
+	<<else>>
+		<<set _sydneyStatus to "neutral">>
+	<</if>>
+	<<if $_sydney.chastity.penis.includes("chastity") or $_sydney.chastity.vagina.includes("chastity")>>
+		<<set _sydneyChastity to 1>>
+	<</if>>
+	<<if $_sydney.virginity.vaginal is true and $_sydney.virginity.penile is true>>
+		<<set _sydneyVirgin to 1>>
+	<</if>>
 <</widget>>
 
 <<widget "sydneyGreeting">>
@@ -737,7 +748,7 @@
 <<widget "bookCriminal">>
 <<if !$sydneyDaily.overdueMessage>>
 	<<bodywriting_exposure_check>>
-	<<NPCStatusCheck "Sydney">>
+	<<run statusCheck("Sydney")>>
 	<<if _bodywriting_exposed gte 1 and ($skin[_bodypart].writing is "Book Criminal >:(" or $skin[_bodypart].writing is "Book Criminal <3")>>
 		<<if $skin[_bodypart].pen is "tattoo">>
 			<<if $bookTattoo is undefined>>
@@ -781,14 +792,14 @@
 				<</if>>
 			<<elseif $skin.forehead.pen is "pen" or $skin.forehead.pen is "lipstick" or $skin.forehead.pen is "mud">>
 				<<if $skin[_bodypart].special is "Kylar">>
-					<<set _kylar to 1>>
+					<<set _kylarPresent to true>>
 				<</if>>
 				<<He>> wipes away your <<tattoo forehead>> on your forehead, and scribbles something of <<his>> own. <<bodywriting_clear forehead>> Your forehead now reads: <<bodywriting_npc_sydney_book forehead "marker">>
 				<<if $sydneyromance is 1>>
 					<<He>> finishes with a kiss on your forehead, pulling away with a loud "Mwah!"
 					<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and !$kylarDaily.leightonPunch>>
 						<br><br>
-						<<if _kylar is 1>>
+						<<if _kylarPresent>>
 							Kylar glowers from across the library. <<ggksuspicion>><<npcincr Kylar rage 3>><<set $kylarSeen.pushUnique("sydneyWriting")>>
 						<<else>>
 							Kylar stares from across the library. <<gksuspicion>><<npcincr Kylar rage 1>><<set $kylarSeen.pushUnique("sydneyWriting")>>
@@ -806,7 +817,7 @@
 				<</if>>
 			<<elseif $skin.left_cheek.pen is "pen" or $skin.left_cheek.pen is "lipstick" or $skin.left_cheek.pen is "mud">>
 				<<if $skin[_bodypart].special is "Kylar">>
-					<<set _kylar to 1>>
+					<<set _kylarPresent to true>>
 				<</if>>
 				<<He>> wipes away your <<tattoo left_cheek>> on your left cheek, and scribbles something of <<his>> own. <<bodywriting_clear left_cheek>> Your left cheek now reads: <<bodywriting_npc_sydney_book left_cheek "marker">>
 				<<if $sydneyromance is 1>>
@@ -822,7 +833,7 @@
 					<<He>> finishes with a kiss on your cheek, pulling away with a loud "Mwah!"
 					<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and !$kylarDaily.leightonPunch>>
 						<br><br>
-						<<if _kylar is 1>>
+						<<if _kylarPresent>>
 							Kylar glowers from across the library. <<ggksuspicion>><<npcincr Kylar rage 3>><<set $kylarSeen.pushUnique("sydneyWriting")>>
 						<<else>>
 							Kylar stares from across the library. <<gksuspicion>><<npcincr Kylar rage 1>><<set $kylarSeen.pushUnique("sydneyWriting")>>
@@ -831,14 +842,14 @@
 				<</if>>
 			<<elseif $skin.right_cheek.pen is "pen" or $skin.right_cheek.pen is "lipstick" or $skin.right_cheek.pen is "mud">>
 				<<if $skin[_bodypart].special is "Kylar">>
-					<<set _kylar to 1>>
+					<<set _kylarPresent to true>>
 				<</if>>
 				<<He>> wipes away your <<tattoo right_cheek>> on your right cheek, and scribbles something of <<his>> own. <<bodywriting_clear right_cheek>> Your right cheek now reads: <<bodywriting_npc_sydney_book right_cheek "marker">>
 				<<if $sydneyromance is 1>>
 					<<He>> finishes with a kiss on your cheek, pulling away with a loud "Mwah!"
 					<<if $NPCName[$NPCNameList.indexOf("Kylar")].state is "active" and ($weather is "rain" or $weather is "snow") and $schoolstate is "lunch" and !$kylarDaily.leightonPunch>>
 						<br><br>
-						<<if _kylar is 1>>
+						<<if _kylarPresent>>
 							Kylar glowers from across the library. <<ggksuspicion>><<npcincr Kylar rage 3>><<set $kylarSeen.pushUnique("sydneyWriting")>>
 						<<else>>
 							Kylar stares from across the library. <<gksuspicion>><<npcincr Kylar rage 1>><<set $kylarSeen.pushUnique("sydneyWriting")>>
@@ -860,7 +871,7 @@
 <</widget>>
 
 <<widget "sydneyBodywritingLocation">>
-<<NPCStatusCheck "Sydney">>
+<<run statusCheck("Sydney")>>
 <<set _targets to []>>
 <<set _targets.pushUnique("forehead")>>
 <<if !$worn.face.type.includes("mask")>>
@@ -1132,7 +1143,7 @@
 							<<if $arousal gte $arousalmax>><<orgasm>><</if>>
 							<<He>> pulls away and gasps. "Th-thank you for letting me do that." <<npcincr Sydney purity -2>><<lspurity>>
 						<</if>>
-					<</if>>		
+					<</if>>
 				<<case "corrupt" "corruptLust">>
 					<<He>> looks up at you, flashing a wicked smile at you.
 					<<if $player.penisExist>>
@@ -1233,7 +1244,7 @@ You've pushed yourself too much. You hear someone yell your name as you black ou
 	<<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>>
 		<<if $templePromised is "Sydney">>
 			You've gained the <span class="blue">Rite of Promise: Sydney</span> trait.
-			<br><br>		
+			<br><br>
 		<<else>>
 			You've gained the <span class="blue">Chastity Vow</span> trait.
 			<br><br>
@@ -1369,7 +1380,7 @@ You've pushed yourself too much. You hear someone yell your name as you black ou
 		<<else>>
 			The <<person2>><<priest>> brings <<his>> whip down on you, causing you to scream into your gag.
 			<<if $pain gte 60>>
-				Sydney cries out, shaking <<his>> head and giving pleading eyes to the <<person2>><<priest>>. 
+				Sydney cries out, shaking <<his>> head and giving pleading eyes to the <<person2>><<priest>>.
 			<<else>>
 				Sydney glares at <<person2>><<him>>.
 			<</if>>
@@ -1391,7 +1402,7 @@ You've pushed yourself too much. You hear someone yell your name as you black ou
 			Sydney moans into your shoulder.
 		<<else>>
 			Sydney stifles gasps and moans.
-		<</if>>	
+		<</if>>
 		<<arousal 2000>><<set $sydneyArousal += 1>><<garousal>><<gsarousal>>
 <</switch>>
 <</widget>>
diff --git a/game/overworld-town/special-whitney/main.twee b/game/overworld-town/special-whitney/main.twee
index eee72624b060d70c6ad9bd659f5074615a1bf92b..95e4fdb51f3b4d723a0fa9688640f2b0a884dfd7 100644
--- a/game/overworld-town/special-whitney/main.twee
+++ b/game/overworld-town/special-whitney/main.twee
@@ -610,7 +610,7 @@ Whitney kicks you out from beneath the desk. You face up at a shocked Leighton.
 		<<else>>
 			"Right where you belong."
 			<br><br>
-			
+
 			<<He>> drops to <<his>> knees over you, pinning you down by the shoulders. <<He>> grabs your head and pulls it into <<his>> crotch.
 			<<set $NPCList[0].vagina to "mouth">><<set $NPCList[0].location.genitals to "head">>
 			<<set $mouthuse to "othervagina">><<set $mouthstate to "othervagina">><<set $mouthtarget to 0>>
@@ -646,11 +646,11 @@ Whitney kicks you out from beneath the desk. You face up at a shocked Leighton.
 		<<elseif $facesitdisable is "f">>
 			"Better hold your breath."
 			<br><br>
-			
+
 			Taking position above you, <<he>> throws <<his>> weight down, sitting comfortably on your face. <<He>> grinds your mouth into <<his>> cunt.
 			<<set $NPCList[0].vagina to "facesit">><<set $NPCList[0].location.genitals = "head">>
 			<<set $mouthuse to "facesit">><<set $mouthstate to "vagina">><<set $mouthtarget to 0>>
-			
+
 		<<else>>
 				"Right where you belong."
 				<br><br>
@@ -825,7 +825,7 @@ You let <<him>> continue. <<He>> adds <<his>> other hand and starts massaging yo
 :: Bully Shake
 <<effects>>
 
-You shake <<him>> off. "Aww," <<he>> says. "The little <<girl>> is sensitive. Later loser." <<He>> leaves with <<his>> friends.
+You shake <<him>> off. "Aww," <<he>> says. "The little <<bitch>> is sensitive. Later loser." <<He>> leaves with <<his>> friends.
 <br><br>
 
 <<endevent>>
@@ -859,7 +859,6 @@ Whitney stands back to observe your exposed <<breasts>>.
 <<insecurity "breasts_big" 5>><<ginsecurity "breasts_big">>
 <</if>>
 <<exhibitionism2>>
-<br><br>
 
 "It's good that you know your place. See you later, slut," <<he>> says before leaving you to cover yourself.
 <<npcincr Whitney lust 5>><<glust>>
@@ -2299,7 +2298,7 @@ Whitney laughs. "There's nothing wrong with it. You're just a weakling. Come bac
 "Tha-" you begin, but Whitney interrupts you from the other side of the road. "What are you doing? Just fuck <<phim>> already."
 <br><br>
 
-One of the <<persons>> crewmates catches up and stares at Whitney. "Something's wrong with that kid. Damn."
+One of the <<persons>> crewmates catches up and stares at Whitney. "Something's wrong with that <<print $NPCName[$NPCNameList.indexOf("Whitney")].pronoun is "f" ? "gal" : "guy">>. Damn."
 <br><br>
 
 "You shouldn't tie your friend up like that," the <<person>> shouts back at Whitney. "Not in this town especially."
@@ -2337,12 +2336,12 @@ The crew make sure you're okay, then head back to their ship.
 	"Take <<pher>> clothes!"
 	<br><br>
 
-	Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor. 
+	Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor.
 	<br><br>
 
 	Whitney's breathing is heavier. <<He>> speaks, "Only... I get to kidnap you. Got it?" <<He>> roughly shoves you through the gate, not taking <<his>> eyes off you.<<npcincr Whitney dom 3>><<stress 6>><<gstress>><<ggdom>>
 	<br><br>
-	
+
 	<<link [[Next|Oxford Street]]>><<endevent>><</link>>
 	<br>
 <<elseif $halloween is 1 and !$halloween_whitney>><<set $halloween_whitney to 1>>
@@ -2455,7 +2454,7 @@ The crew make sure you're okay, then head back to their ship.
 		<br>
 
 	<<elseif $rng gte 61>>
-		<<if $physique gte 15000>>
+		<<if currentSkillValue('physique') gte 15000>>
 			<<npc Whitney>><<person1>>You hear footsteps behind you. Before you can turn, Whitney leaps on your back and wraps <<his>> arms around your neck. "Giddy up, <<bitch>>," <<he>> says.
 			<span class="green">You resist being knocked to your knees.</span> "You're a good horse. I should ride you more often."
 			<br><br>
@@ -2876,7 +2875,7 @@ The <<person>> gapes.
 	<span class="red">You're too clumsy. The <<person>> whips around and grasps your arm.</span> Whitney vanishes into the alleyway as the <<person>> descends on you in a rage.
 	<br><br>
 	<<skulduggeryuse>>
-	
+
 	<<link [[Next|Bully Rob Fail]]>><<set $fightstart to 1>><</link>>
 	<br>
 <</if>>
@@ -2974,7 +2973,7 @@ You collapse to the ground. The <<person>> gives you a hard kick to the side for
 <<npcexpose>>
 "I'm surprised I had to wait that long," you flirt, pulling off your $worn.lower.name before Whitney does.
 <<promiscuity1>>
-<br><br>
+
 <<set $audienceforceteen to 1>>
 <</if>>
 
@@ -3425,7 +3424,7 @@ You shove the <<person1>><<person>> into a cubicle and flee the room. <<tearful>
 <br><br>
 The <<person>> nods. "Anything."
 <br><br>
-"That doesn't sound like Whitney." you say. "But you'd know better. I guess I'll tell them what you did after. Just to make sure."
+"That doesn't sound like Whitney," you say. "But you'd know better. I guess I'll tell them what you did after. Just to make sure."
 <br><br>
 Anger flashes across the <<persons>> face. <<He>> pushes <<his>> arms against your back, shoving you against the mirror. "You've a smart mouth," <<he>> hisses. "You're lucky Whitney's soft for you. We'd be tugging you around like a chew toy if it were up to me."
 <br><br>
@@ -3941,7 +3940,7 @@ You approach Whitney, and take shelter from the $weather under the tree.
 	<<unset $whitneyReunionScene>>
 	<<He>> doesn't notice you at first. When <<he>> does, <<his>> eyes go wide and <<he>> almost drops <<his>> cigarette.
 	<br><br>
-	
+
 	<<He>> grabs you and shoves you against the tree, the shock in <<his>> eyes giving way to anger. "There you are, bitch," Whitney says, looking aggravated. "What? You didn't think I'd notice when my favourite slut goes missing?" You're unable to respond as <<he>> presses <<his>> lips against your mouth, kissing you.<<takeKissVirginity "Whitney" "loveInterest">>
 	<br><br>
 
@@ -3953,14 +3952,14 @@ You approach Whitney, and take shelter from the $weather under the tree.
 
 	Whitney's breathing is heavier. <<He>> speaks, "Only... I get to kidnap you. Got it?" <<He>> marches out of the park, sparing you one more glance over <<his>> shoulder.<<npcincr Whitney dom 3>><<stress 6>><<gstress>><<ggdom>>
 	<br><br>
-	
+
 	<<endevent>>
 	<<whitneyexit>>
 <<elseif $NPCName[$NPCNameList.indexOf("Whitney")].love gte 20 and $whitneyromance isnot 1 and $NPCName[$NPCNameList.indexOf("Whitney")].state isnot "dungeon" and $pillory_tenant.special.name isnot "Whitney">>
 	<<set $whitneyromance to 1>>
 	<<He>> suddenly grabs you and bends you backwards over the fountain, letting the $weather fall on your face. <<He>> looks more angry than usual.
 	<br><br>
-	"Stupid slut," <<he>> says. <<He>> nearly lets you drop into the fountain. "You've been asking for this, don't try to deny it." <<He>> pulls you up and kisses you with surprising tenderness. <<takeKissVirginity "Whitney" "loveInterest">> 
+	"Stupid slut," <<he>> says. <<He>> nearly lets you drop into the fountain. "You've been asking for this, don't try to deny it." <<He>> pulls you up and kisses you with surprising tenderness. <<takeKissVirginity "Whitney" "loveInterest">>
 	<br><br>
 	"You're my <<if $player.gender_appearance is "m">>boy<<else>>girl<</if>>friend now. You better be grateful." <<He>> kisses you again, this time biting your lip. <<He>> pulls away and leaves the park without looking back.
 	<<npcincr Whitney lust 5>><<glust>>
@@ -4014,7 +4013,7 @@ You approach Whitney, and take shelter from the $weather under the tree.
 			<<He>> steps closer, making sure you're covered by <<his>> umbrella.
 		<</if>>
 	<<elseif $rng gte 81>>
-		<<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $robinmissing isnot 1 and $NPCName[$NPCNameList.indexOf("Robin")].trauma lt 80 and $season is "winter">>
+		<<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1 and $robinmissing is 0 and $NPCName[$NPCNameList.indexOf("Robin")].trauma lt 80 and $season is "winter">>
 			You see <<his>> gaze drift to the other side of the park,
 			<<if $weekday is 7 and $hour gte 9 and $hour lte 16 or $weekday is 1 and $hour gte 9 and $hour lte 16>>
 				at Robin's hot chocolate stand. "Sometimes I just want to trash that fucking eyesore," <<he>> says.
@@ -4119,12 +4118,14 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos
 	<</if>>
 	<<garousal>><<arousal 400>>
 	<br><br>
-	<<link [[Next|Whitney Park Sex]]>><<set $sexstart to 1>><</link>><br>
+	<<link [[Next|Whitney Park Sex]]>><<set $sexstart to 1>><</link>>
+	<br>
 <<elseif $NPCName[$NPCNameList.indexOf("Whitney")].lust gte 20>>
 	Whitney looks you over for a moment, tossing <<his>> cigarette aside.
 	<<if $NPCName[$NPCNameList.indexOf("Whitney")].dom gte 16>>
 		<<He>> grabs you by the wrists, pulling you along as <<he>> walks backwards towards the bench. <<He>> sits, pulling you down on top of <<him>>.
-		"You look even better this close up," <<he>> says before pulling you in for a kiss. <<garousal>><<arousal 400>>
+		"You look even better this close up," <<he>> says before pulling you in for a kiss.
+		<<garousal>><<arousal 400>>
 		<br><br>
 		You feel <<his>> hands on your <<bottom>>, and <<he>> begins to grind you against <<his>>
 		<<if $NPCList[0].penis isnot "none">>
@@ -4138,7 +4139,8 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos
 			You can feel Whitney approaching <<his>> peak as <<his>> pace increases, and you increase yours to match. In a matter of moments, <<hes>> fully pressed together with you, convulsing.
 			It pushes you over the edge. <<orgasm>>
 			<br><br>
-			Whitney gasps, and kisses you again. "Not bad, slut," <<he>> says as <<he>> pulls away. <<npcincr Whitney love 1>><<npcincr Whitney dom -1>><<npcincr Whitney lust -10>><<glove>><<ldom>><<llust>>
+			Whitney gasps, and kisses you again. "Not bad, slut," <<he>> says as <<he>> pulls away.
+			<<npcincr Whitney love 1>><<npcincr Whitney dom -1>><<npcincr Whitney lust -10>><<glove>><<ldom>><<llust>>
 			<br><br>
 			<<He>> gently lifts you and helps you stand. "Look what you did, now I have to go home and clean up," <<he>> says with a hint of sarcasm, gesturing to <<his>> lower half. "See you around, <<bitch>>." <<He>> leaves the park.
 			<br><br>
@@ -4146,7 +4148,8 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos
 		<<else>>
 			Whitney can feel your peak approaching, and <<he>> increases <<his>> pace. It pushes you over the edge. <<orgasm>>
 			<br><br>
-			<<He>> stifles your gasping with a kiss. "Good <<girl>>," <<he>> says as <<he>> pulls away. <<npcincr Whitney dom 1>><<npcincr Whitney lust 5>><<gdom>><<glust>>
+			<<He>> stifles your gasping with a kiss. "Good <<girl>>," <<he>> says as <<he>> pulls away.
+			<<npcincr Whitney dom 1>><<npcincr Whitney lust 5>><<gdom>><<glust>>
 			<br><br>
 			<<He>> gently lifts you and helps you stand. "Satisfied now? Can you piss off and leave me alone?"
 			<br><br>
@@ -4276,9 +4279,12 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos
 	<</if>>
 	Whitney begins to pilfer coins from the bottom. <<if $kylarSeen.includes("fountainIntro") is 1>>"There's a lot more coins than there used to be. Losers."<<else>>"Can't believe people just throw these away. Superstitious morons."<</if>> <<He>> faintly smiles.
 	<br><br>
-	<<link [[Join in|Whitney Ask 2]]>><<set $phase to 0>><<npcincr Whitney love 1>><</link>><<crime>><<glove>><br>
-	<<link [[Watch|Whitney Ask 2]]>><<set $phase to 1>><</link>><br>
-	<<link [[Interfere|Whitney Ask 2]]>><<set $phase to 2>><<npcincr Whitney dom -1>><</link>><<ldom>><br>
+	<<link [[Join in|Whitney Ask 2]]>><<set $phase to 0>><<npcincr Whitney love 1>><</link>><<crime>><<glove>>
+	<br>
+	<<link [[Watch|Whitney Ask 2]]>><<set $phase to 1>><</link>>
+	<br>
+	<<link [[Interfere|Whitney Ask 2]]>><<set $phase to 2>><<npcincr Whitney dom -1>><</link>><<ldom>>
+	<br>
 <<else>>
 	<<set _shoveChance to random (0,100)>>
 	<<if _shoveChance gte 65>>
@@ -4331,11 +4337,11 @@ You press forward, putting your hands on <<his>> waist and pulling yourself clos
 	<<He>> flips you off in response, before pulling <<his>> other hand out of the water, looking <<print either("proud", "disappointed", "annoyed", "blankly")>> at <<his>> haul.
 <<else>>
 	<<if $submissive gte 1150>>
-		"Hey, stealing is wrong!" you say<<if $crime gte 1000>>, trying not to think about your own criminal endeavors<</if>>.
+		"Hey, stealing is wrong!" you say<<if $crime gte 1000>>, trying not to think about your own criminal endeavours<</if>>.
 	<<elseif $submissive lte 850>>
 		"Stealing from a fountain is pretty low, even for you," you taunt.
 	<<else>>
-		"This is wrong," you say<<if $crime gte 1000>>, trying not to think about your own criminal endeavors<</if>>.
+		"This is wrong," you say<<if $crime gte 1000>>, trying not to think about your own criminal endeavours<</if>>.
 	<</if>>
 	<br><br>
 	<<if $submissive gte 1150>>
@@ -4540,7 +4546,8 @@ Whitney brings you to your knees. "All I wanted was some fucking peace and quiet
 		<<He>> notices your exposure, and <<his>> eyes widen. "Oh, shit, whoops. Can't have you getting sick, or anyone getting any funny ideas. Come on."
 		<<He>> takes you by the hand and holds you close, walking you out of the park.<<takeHandholdingVirginity "Whitney" "romantic">>
 		<br><br>
-		<<link [[Next (0:20)|Whitney Park Sex Exposed]]>><</link>><br>
+		<<link [[Next (0:20)|Whitney Park Sex Exposed]]>><</link>>
+		<br>
 	<<else>>
 		<<whitneyoptions>>
 	<</if>>
@@ -4702,7 +4709,7 @@ You wait until Whitney's hand dips between your thighs, then clamp them together
 	<<link [[Next|Maths Exam]]>><<set $phase to 1>><</link>>
 	<br>
 <<else>>
-	<span class="red">You only succeed in guiding <<him>> to your <<genitals>>.</span> <<He>> doesn't hesitate to take advtange of your vulnerability.
+	<span class="red">You only succeed in guiding <<him>> to your <<genitals>>.</span> <<He>> doesn't hesitate to take advantage of your vulnerability.
 	<br><br>
 
 	<<if $worn.genitals.type.includes("chastity")>>
@@ -5540,6 +5547,8 @@ Finally, Whitney reacts.
 <<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>>
 
 <<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+
 	<<He>> rests a hand on your head, running <<his>> fingers through your hair. "See? You're good as new."
 	<<npcincr Whitney lust -20>><<llust>>
 	<br><br>
diff --git a/game/overworld-town/special-whitney/park.twee b/game/overworld-town/special-whitney/park.twee
index f10b94b6e971618826ea6e48b3ac133d114daf34..ceb7fda8d0fa70a6fc2c48f6028e7b4e99686a68 100644
--- a/game/overworld-town/special-whitney/park.twee
+++ b/game/overworld-town/special-whitney/park.twee
@@ -15,13 +15,10 @@
 		"Haven't you seen a romance movie before?" you say. You take a sip before tipping the straw over to <<him>>.
 		Whitney rolls <<his>> eyes, and grabs the cup from your hands before taking a long sip.
 	<<else>>
-		"I thought we could share," you smile, offering <<him>> the straw.
+		"I thought we could share," you smile, offering <<him>> the straw. <<He>> wraps an arm around you. You spend the next twenty minutes leaning against <<him>>, occasionally taking sips.
 	<</if>>
 	<br><br>
 
-	Whitney wraps an arm around you. You spend the next twenty minutes leaning against <<him>>, occasionally taking sips.
-	<br><br>
-
 	As you near the end, <<he>> leans up, and holds the milkshake away from you as you go to grab it.
 	Whitney has a smug look as <<he>> keeps the cup out of reach above your head.
 	<br><br>
@@ -95,14 +92,14 @@
 			covering you with <<his>> cum.
 			<<set $player.bodyliquid.face.semen += 1>>
 		<<else>>
-			and <<he>> aims <<his>> cock at your mouth as <<he>> climaxes, quickly giving you a mouthful of <<his>> cum. 
+			and <<he>> aims <<his>> cock at your mouth as <<he>> climaxes, quickly giving you a mouthful of <<his>> cum.
 			<<set $player.bodyliquid.mouth.semen += 1>>
 			<br><br>
 
-			The taste of <<his>> cum mixes with what's left of the milkshake, and you swallow it quickly. 
+			The taste of <<his>> cum mixes with what's left of the milkshake, and you swallow it quickly.
 		<</if>>
 	<<else>>
-		<<if random(1,100) lte (_whitney.dom * 5)>> <!-- max dom is 20, so * 5 for 100 --> 
+		<<if random(1,100) lte (_whitney.dom * 5)>> <!-- max dom is 20, so * 5 for 100 -->
 			Whitney grinds against your tongue as <<he>> reaches <<his>> peak, but a wicked grin spreads across <<his>> face.
 			<<He>> forces your face against <<his>> groin and buries your nose and mouth in <<his>> pussy,
 			not allowing you to breathe until <<his>> orgasm runs its course.
@@ -116,7 +113,7 @@
 		<</if>>
 	<</if>>
 	<br><br>
-	
+
 	You start to look up, however Whitney shoves you to the ground and abruptly stalks off. You think you saw <<him>> blushing.
 	<<npcincr Whitney love 1>><<npcincr Whitney lust -5>><<glove>><<llust>>
 	<br><br>
@@ -263,12 +260,12 @@
 		<<if _whitney.penis isnot "none">>
 			You slowly straddle Whitney, planting your knees on either side of <<his>> lap and leaning back on <<his>> thighs.
 			Next, you press your crotch against <<his>> _whitney.penisdesc, purposefully angling to cause the most friction through <<his>> clothes.
-			You can feel <<him>> getting hard as you press up against <<him>>, and Whitney's breathing grows labored.
+			You can feel <<him>> getting hard as you press up against <<him>>, and Whitney's breathing grows laboured.
 		<<else>>
-			You slowly straddle Whitney, planting one of your knees between <<his>> thighs and pressing it up against his crotch.
+			You slowly straddle Whitney, planting one of your knees between <<his>> thighs and pressing it up against <<his>> crotch.
 			You wrap one arm around <<his>> neck, pushing your chests together, and grab <<his>> hip,
 			digging your fingers into <<his>> ass cheek as you guide <<his>> pelvis so your knee presses directly against <<his>> clit.
-            Whitney rubs <<himself>> against you, and you watch <<him>> grow flushed as you firmly grind back,
+			Whitney rubs <<himself>> against you, and you watch <<him>> grow flushed as you firmly grind back,
 			first up and down, then back and forth, never letting <<him>> get used to the rhythm.
 			The fabric separating you from <<his>> pussy starts to feel warm and damp.
 		<</if>>
diff --git a/game/overworld-town/special-whitney/street.twee b/game/overworld-town/special-whitney/street.twee
index 659f7731f6fe40b5bf789c6e3cb8d7829b96b6a8..91513d77b16e4ee3a8d9e819efbde17ecbc74c3c 100644
--- a/game/overworld-town/special-whitney/street.twee
+++ b/game/overworld-town/special-whitney/street.twee
@@ -15,7 +15,7 @@
 		"Take <<pher>> clothes!"
 		<br><br>
 
-		Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor. 
+		Whitney glares at you, <<his>> grip the only thing keeping you from falling. You swear you see the faintest trace of a tear in <<his>> eye. Before it goes any further, <<he>> drops you on the floor.
 		<br><br>
 
 		Whitney's breathing is heavier. <<He>> speaks, "Only... I get to kidnap you. Got it?" The group leaves with Whitney glancing back at you.<<npcincr Whitney dom 3>><<stress 6>><<gstress>><<ggdom>>
@@ -175,7 +175,7 @@
 						<<link [[Fight|Street Bully Fight]]>><<def 1>><<set $fightstart to 1>><<npcincr Whitney dom -1>><</link>><<ldom>>
 						<br>
 					<<else>>
-						"Real bold of you to come around my turf." It's Whitney. <<He>> lets <<his>> hands wander through your <<print $worn.lower.name>>, <span class="lewd">fingers brushing against your <<genitals>>.</span> 
+						"Real bold of you to come around my turf." It's Whitney. <<He>> lets <<his>> hands wander through your <<print $worn.lower.name>>, <span class="lewd">fingers brushing against your <<genitals>>.</span>
 						<<if $whitneypantiescheck is 1>>
 							"No <<if $pronoun is "m">>undies<<else>>panties<</if>>? We're not even in school." <<He>> leans in close. "Or do you dress like this for fun?"
 						<<else>>
@@ -235,9 +235,9 @@
 						<<link [[Flaunt|Street Bully Bottle]]>><<set $phase to 2>><<npcincr Whitney love 1>><<npcincr Whitney dom 1>><</link>><<exhibitionist1>><<glove>><<gdom>>
 						<br>
 					<</if>>
-					<<link [[Stay still|Street Bully Bottle]]>><<set $phase to 1>><<npcincr Whitney dom 1>><</link>><<gdom>>
+					<<link [[Stay still|Street Bully Bottle]]>><<set $phase to 0>><<npcincr Whitney dom 1>><</link>><<gdom>>
 					<br>
-					<<link [[Break free|Street Bully Bottle]]>><<set $phase to 0>><<npcincr Whitney dom -1>><</link>><<physiquedifficulty 1 $physiquemax>><<ldom>>
+					<<link [[Break free|Street Bully Bottle]]>><<set $phase to 1>><<npcincr Whitney dom -1>><</link>><<physiquedifficulty 1 $physiquemax>><<ldom>>
 					<br>
 				<</if>>
 			<<case 6>><<set $bullyeventstreet += 1>>
@@ -276,7 +276,7 @@
 				"Didn't you hear? There's a new toll." <<His>> eyes trail down your body. "If you wanna pass, give us a peek under those clothes."
 				<br><br>
 
-				<<He>> nods to <<his>> friends, who form a wall behind you. They block out your view of the street. "Don't worry," <<he>> smiles. "No one else will see."
+				<<He>> nods to <<his>> friends, who form a wall behind you. They block out your view of the street. "Don't worry," <<he>> says with a smile. "No one else will see."
 				<br><br>
 
 				<<if $exhibitionism gte 35>>
@@ -656,7 +656,7 @@
 			<<if $whitneyromance is 1>>
 				<<status 1>><<gcool>>
 			<</if>>
-			<<fameexhibitionism 3 pic>><<famesex 3 pic>>
+			<<fameexhibitionism 3 "pic">><<famesex 3 "pic">>
 			<br><br>
 		<<case 8>>
 			A car honks as it drives by.
@@ -751,7 +751,7 @@
 		<br><br>
 	<</if>>
 
-	<<He>> gropes with increasing fervor, pulling your body closer and closer against <<his>>. <<He>> leans in and breathes down your neck, licking, biting, sometimes kissing. It doesn't last long, and <<he>> soon pulls away with a sigh.
+	<<He>> gropes with increasing fervor, pulling your body closer and closer against <<hers>>. <<He>> leans in and breathes down your neck, licking, biting, sometimes kissing. It doesn't last long, and <<he>> soon pulls away with a sigh.
 	<br><br>
 
 	"Thanks, <<bitch>>. I needed that." <<He>> smacks your ass, sending you stumbling back into the crowd. You dodge wayward hands and continue on your way.<<npcincr Whitney lust 5>><<glust>>
@@ -843,7 +843,7 @@
 		<<He>> jerks your head up, bringing <<his>> lips to your ear. "You would be into this, wouldn't you? Maybe I'll go 'til you pass out." <<He>> squeezes <<his>> arm around your throat. For a moment it seems <<he>> plans to do just that. Just as you're beginning to see stars, <<he>> releases you. You fall to your knees, gasping.
 		<br><br>
 
-		"Who says I don't give my <<girl>> what was <<pshe>> wants?" <<His>> friends laugh. They leave you behind to catch your breath.
+		"Who says I don't give my <<girl>> what <<pshe>> wants?" <<His>> friends laugh. They leave you behind to catch your breath.
 	<<else>>
 		Whitney laughs along with them. "You really are a slut, getting off on this." <<He>> releases you and gives you a shove. You fall to your knees. "Oops, was that too rough? Sorry if that got you all hot and bothered."
 		<br><br>
@@ -913,7 +913,7 @@ Held by the ankles, you're forced over the edge of the dumpster. Your fall is cu
 	<</if>>
 	<br><br>
 
-	Panicked, you throw the lid open and scramble out. 
+	Panicked, you throw the lid open and scramble out.
 	<<if $wraith.state is "haunt">>
 		Cackling laughter echoes after you.
 	<</if>>
@@ -950,7 +950,7 @@ Held by the ankles, you're forced over the edge of the dumpster. Your fall is cu
 			<<he>> sits on your stomach, pinning you down.<<arousal 1000>><<garousal>>
 			<br><br>
 
-			"That your best?" <<he>> smirks. <<He>> grabs you by the hair and yanks it up, returning your lips to <<his>>.
+			"That your best?" <<he>> smirks. <<He>> grabs you by the hair and yanks it up, returning your lips to <<hers>>.
 			<br><br>
 
 			A lengthy makeout later, and <<he>> pulls away with one last nip. <<He>> shoves off you and walks away without a word. <<tearful>> you dust yourself off.
@@ -958,7 +958,7 @@ Held by the ankles, you're forced over the edge of the dumpster. Your fall is cu
 			you end up atop <<him>>. <<His>> face is red.<<arousal 1000>><<garousal>>
 			<br><br>
 
-			"The shit I let you get away with," <<he>> pants. <<He>> grabs you by the collar and brings your lips down to meet <<his>>.
+			"The shit I let you get away with," <<he>> pants. <<He>> grabs you by the collar and brings your lips down to meet <<hers>>.
 			<br><br>
 
 			<<His>> mouth follows yours when you finally pull away, but <<he>> catches <<himself>> and shoves you off. <<He>> walks away without a word. <<tearful>> you dust yourself off.
@@ -1236,7 +1236,7 @@ A sudden, sharp pain shocks your <<genitals>> as the fabric of your <<print $wor
 <<set $outside to 1>><<effects>>
 
 <<if $submissive gte 1150>>
-	You sidle up to Whitney, wrapping your arms over <<his>> shoulders and pressing your chest to <<his>>. "I-I want to make you happy," you whisper. "But I'm shy..."
+	You sidle up to Whitney, wrapping your arms over <<his>> shoulders and pressing your chest to <<hers>>. "I-I want to make you happy," you whisper. "But I'm shy..."
 <<elseif $submissive lte 850>>
 	You pull Whitney away from <<his>> friends, sliding a hand down <<his>> back. "Ditch the gawkers," you say. "Then we can really have some fun."
 <<else>>
@@ -1691,7 +1691,7 @@ that you fail to notice <<his>> friends stepping out of line behind you. They sn
 			<<He>> looks concerned. Not enough to help, though. <<He>> hastens <<his>> steps.
 		<<case 1>>
 			<<He>> blinks and rubs <<his>> eyes as you dip down a corner, out of view.
-	<</switch>> 
+	<</switch>>
 	<<fameexhibitionism 2>>
 	<br><br>
 
@@ -2165,7 +2165,7 @@ Over <<his>> shoulder, you spy Whitney hiding under a parked car. <<nnpc_He "Whi
 
 	<<skulduggerycheck>>
 	<<if $skulduggerysuccess is 1>>
-		<<if $skulduggery gte 400>>
+		<<if currentSkillValue('skulduggery') gte 400>>
 			The <<person>> nods and rushes past you, <span class="green">utterly fooled.</span>
 		<<else>>
 			The <<person>> eyes you suspiciously, <span class="green">but shoves you aside and continues down the alley.</span>
@@ -2174,7 +2174,7 @@ Over <<his>> shoulder, you spy Whitney hiding under a parked car. <<nnpc_He "Whi
 		Whitney crawls out from underneath the car.
 		<br><br>
 
-		<<if $skulduggery gte 400>>
+		<<if currentSkillValue('skulduggery') gte 400>>
 			"I can't believe that idiot bought it," <<he>> says. "You've got a real silver tongue." <<He>> smirks. "Wonder what else that tongue can do."<<npcincr Whitney lust 5>><<glust>>
 		<<else>>
 			"You're a shit liar," <<he>> says. "I wouldn't have believed you for a second. Good thing that moron was even dumber than you."
@@ -2584,7 +2584,7 @@ signals an oncoming vehicle. You get into position,
 
 :: Street Bully Flash Forced
 <<set $outside to 1>><<effects>>
-
+<<set _whitney to $NPCName[$NPCNameList.indexOf("Whitney")]>>
 You're helpless to stop Whitney as <<he>> drags you out of the alley.
 <<switch $phase>>
 	<<case 3>>
@@ -2608,23 +2608,42 @@ You're helpless to stop Whitney as <<he>> drags you out of the alley.
 		<<He>> twists your arms behind your back with one hand, and slides the other down to your <<print $worn.lower.name>>.
 		<br><br>
 
-		"Scared?" <<he>> asks, roughly palming your crotch. "Some perv's gonna see your
-		<<if $genderknown.includes("Whitney")>>
-			<<if $player.gender is "h">>
-				freaky junk
-			<<elseif $player.gender is "m">>
-				dick
+		<<if $player.gender isnot $player.gender_appearance and !$genderknown.includes("Whitney")>>
+			<<set $genderknown.pushUnique("Whitney")>>
+			<<He>> grabs your crotch, then suddenly stops. Then, with a more deliberate touch, <<he>>
+			<<if $player.penisExist and $player.vaginaExist>>
+				runs <<his>> fingers along the outline of your <<penis>>, before ramming them against your <<pussy>>.
+				<br><br>
+
+				<<if _whitney.penis isnot "none" and _whitney.vagina isnot "none">> /* whitney is also a herm */
+					"Well, well, well." <<He>> sounds pleasantly surprised, but not confused. "Next perv who shows up is in for quite a show."
+				<<else>>
+					"Whatever's going on down here," <<he>> chuckles. "Some perv's in for a show."
+				<</if>>
+			<<elseif $player.penisExist>>
+				squeezes your shaft through your <<print $worn.lower.name>>, chuckling.
+				<br><br>
+
+				<<if $player.penissize gte 4>>
+					"How'd I miss that?" <<he>> snickers. "Whatever. Next perv who shows up sure won't."
+					<<insecurity "penis_big" 1>><<ginsecurity "penis_big">>
+				<<elseif $player.penissize gte 1>>
+					"This supposed to be a secret?" <<he>> sneers. "Won't be for long."
+				<<else>>
+					"Guess I was wrong," <<he>> sneers. "Nothing to see, after all."
+					<<insecurity "penis_tiny" 1>><<ginsecurity "penis_tiny">> 
+				<</if>>
 			<<else>>
-				cunt
+				prods your entrance through your <<print $worn.lower.name>>, chuckling.
+				<br><br>
+
+				"This supposed to be a secret?" <<he>> sneers. "Won't be for long."
 			<</if>>
 		<<else>>
-			<<if $player.gender_appearance is "m">>
-				dick
-			<<else>>
-				cunt
-			<</if>>
+			"Scared?" <<he>> asks, roughly palming your crotch. "Some perv's gonna see your
+			<<set _hermText to (_whitney.gender is "h" ? "little secret" : "freaky junk")>>
+			<<print ($player.penisExist ? (!$player.vaginaExist ? "dick" : _hermText) : "cunt")>> and there's nothing you can do about it."
 		<</if>>
-		and there's nothing you can do about it."
 	<<case 1>>
 		<<He>> grabs you by the waist and bends you over, your <<bottom>> facing the street. <<He>> hooks <<his>> thumb into your <<print $worn.lower.name>>.
 		<br><br>
diff --git a/game/overworld-town/special-whitney/widgets.twee b/game/overworld-town/special-whitney/widgets.twee
index 511c5954738d60ad83b48791a6fef6c182774fd5..9049ca777daf8f4fe7d4009a67e2b2ff7b40b9d8 100644
--- a/game/overworld-town/special-whitney/widgets.twee
+++ b/game/overworld-town/special-whitney/widgets.twee
@@ -42,13 +42,15 @@
 	<br><br>
 	<<if _whitney_attention is 1>>
 		<<if $promiscuity gte 15>>
-			<<link [[Take it further (0:15)|Whitney Flirt 2]]>><<pass 15>><<npcincr Whitney lust 1>><<npcincr Whitney dom 1>><</link>><<glust>><<gdom>><<promiscuous2>><br>
+			<<link [[Take it further (0:15)|Whitney Flirt 2]]>><<pass 15>><<npcincr Whitney lust 1>><<npcincr Whitney dom 1>><</link>><<glust>><<gdom>><<promiscuous2>>
+			<br>
 		<<else>>
-			You aren't promiscuous enough to take it further.<br>
+			You aren't promiscuous enough to take it further.
+			<br>
 		<</if>>
 	<</if>>
-    <<if $milkshake gte 1>>
-        <<if $whitneyromance is 1>>
+	<<if $milkshake gte 1>>
+		<<if $whitneyromance is 1>>
 			<<link [[Offer milkshake (0:20)|Whitney Milkshake]]>><<npcincr Whitney love 1>><<set $milkshake -= 1>><</link>><<glove>>
 			<br>
 		<<else>>
@@ -75,7 +77,8 @@
 	<</if>>
 	<br>
 	<<if $whitneyAsk is undefined and $location is "park">>
-		<<link [[Ask if something's wrong|Whitney Ask]]>><<set $whitneyAsk to 1>><</link>><br>
+		<<link [[Ask if something's wrong|Whitney Ask]]>><<set $whitneyAsk to 1>><</link>>
+		<br>
 	<</if>>
 	<<whitneyoptionsleave>>
 <</if>>
diff --git a/game/overworld-underground/loc-cave/passout.twee b/game/overworld-underground/loc-cave/passout.twee
index 534ad388bfbc30d19f34451f67a214434353c3d6..99b7dd7e0e18f4af9ebab60a1bdcb02caaad972d 100644
--- a/game/overworld-underground/loc-cave/passout.twee
+++ b/game/overworld-underground/loc-cave/passout.twee
@@ -274,7 +274,8 @@ You brace yourself. You stagger as the slug collides with your chest. You manage
 	<<set $timer to 10>>
 <</if>>
 
-<<slug_text>><br>
+<<slug_text>>
+<br>
 
 <<if $swimdistance gte 10>>
 	You need to start swimming toward the bank!
diff --git a/game/overworld-underground/loc-cave/widgets.twee b/game/overworld-underground/loc-cave/widgets.twee
index 6e584539f1ff5e92c2d6b8bf2a36b822f457f185..0ae1aa8d6b837778552c13292c1741e9bfc010b9 100644
--- a/game/overworld-underground/loc-cave/widgets.twee
+++ b/game/overworld-underground/loc-cave/widgets.twee
@@ -27,7 +27,7 @@
 <<else>>
 	The cave branches in two directions.
 	<<if random(1, 2) is 2>>
-		<<if $history gte random(1, 1000)>>
+		<<if currentSkillValue('history') gte random(1, 1000)>>
 			<span class="green">You recognise the markings along the walls.</span> Something was hidden down the left passage, while the right leads towards the sea.
 			<br><br>
 		<<else>>
@@ -39,7 +39,7 @@
 		<<link [[Go right|Beach Cave Back]]>><</link>>
 		<br>
 	<<else>>
-		<<if $history gte random(1, 1000)>>
+		<<if currentSkillValue('history') gte random(1, 1000)>>
 			<span class="green">You recognise the markings along the walls.</span> Something was hidden down the right passage, while the left leads towards the sea.
 			<br><br>
 		<<else>>
diff --git a/game/overworld-underground/loc-sewers/main.twee b/game/overworld-underground/loc-sewers/main.twee
index 1871695500a5f3411ab2d3df3584791bdd158301..95d604c69c1af07f88566a7fd62b1254a59538a9 100644
--- a/game/overworld-underground/loc-sewers/main.twee
+++ b/game/overworld-underground/loc-sewers/main.twee
@@ -335,7 +335,7 @@ You are within the storm drain system, close to where it flows out into the sea.
 	<<generate1>><<generate2>><<maninit>>
 	<<npcClothesType $NPCList[0] "worker">><<npcClothesType $NPCList[1] "worker">>
 	<<set $leftarm to "bound">><<set $rightarm to "bound">><<upperruined>><<lowerruined>><<underruined>>
-	You awaken in a windowless room. A length of tubing is wrapped around your waist, binding your arms behind your back and suspending you from the ceiling. A <<person1>><<person>> and <<person2>><<person>> sit in front of you. "<<pShe>>'s awake," the <<person>> walks behind you and gives you a firm smack on your rear. "We get to keep anything we find on the job. So we're just gonna help ourselves to you. Don't try to resist."
+	You awaken in a windowless room. A length of tubing is wrapped around your waist, binding your arms behind your back and suspending you from the ceiling. A <<fullGroup>> sit in front of you. "<<pShe>>'s awake," the <<person>> walks behind you and gives you a firm smack on your rear. "We get to keep anything we find on the job. So we're just gonna help ourselves to you. Don't try to resist."
 	<br><br>
 <</if>>
 <<effects>>
@@ -354,7 +354,7 @@ You are within the storm drain system, close to where it flows out into the sea.
 <<if $enemyhealth lte 0>>
 	<<set $stress -= 1000>>
 	<<effects>>
-	You push the <<person1>><<person>> and <<person2>><<person>> away from you. Before they can recover, you twist free of the tubing and escape from the room. <<tearful>> you run up a flight of stairs and another door later you find yourself outside.
+	You push the <<fullGroup>> away from you. Before they can recover, you twist free of the tubing and escape from the room. <<tearful>> you run up a flight of stairs and another door later you find yourself outside.
 	<br><br>
 	<<endcombat>>
 	<<industrialeventend>>
diff --git a/game/overworld-underground/loc-sewers/morgan.twee b/game/overworld-underground/loc-sewers/morgan.twee
index e982577bf63724803938fe40b6eec88c596b3ce9..57631dffb7b573beecc50bf48896f0c5a298f185 100644
--- a/game/overworld-underground/loc-sewers/morgan.twee
+++ b/game/overworld-underground/loc-sewers/morgan.twee
@@ -1,28 +1,30 @@
 :: Sewers Descend
-
 <<effects>><<set $location to "sewers">>
+
 You climb the ladder down into the dark. The weight is too much, and the ladder snaps free. You fall the rest of the way. It isn't far, but you're left sprawled on the cold stone.
 <br><br>
+
 <<link [[Next|Sewers Intro]]>><</link>>
 <br>
 
 :: Sewers Intro
-
 <<effects>><<set $location to "sewers">>
+
 <<set $sewersintro to 1>>
 <<sewersstart>>
 <<npc Morgan>><<person1>>
 Light-headed, you try and fail to stand up without collapsing. You hear footsteps. Odd, uneven footsteps nearing closer and closer until you see a figure in the darkness. The figure screams.
 <br><br>
-"My child! <<charles>>, you're alive!" <<he>> says. "<<if $pronoun is "m">>Daddy<<else>>Mummy<</if>> has missed you so much!" <<He>> steps into the dim light. Unkempt ginger hair tumbles around <<his>> face. There's a badge on <<his>> ruined <<if $pronoun is "f">>gown<<else>>suit<</if>>, "Morgan."
+
+"My child! <<charles>>, you're alive!" <<he>> says. "<<Mummy>> has missed you so much!" <<He>> steps into the dim light. Unkempt ginger hair tumbles around <<his>> face. There's a badge on <<his>> ruined <<if $pronoun is "f">>gown<<else>>suit<</if>>, "Morgan."
 <br><br>
+
 <<link [[Say nothing|Sewers Intro Play Along]]>><</link>>
 <br>
 <<link [[Say that's not your name|Sewers Intro Refuse]]>><</link>>
 <br>
 
 :: Sewers Intro Play Along
-
 <<effects>><<set $location to "sewers">>
 
 You nod. The figure outstretches <<his>> arms, and grabs you in a hug. "I knew it," <<he>> cries. "They lied to me." <<He>> runs <<his>> hands over your body.
@@ -37,11 +39,11 @@ You nod. The figure outstretches <<his>> arms, and grabs you in a hug. "I knew i
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 
 <<if $submissive gte 1150>>
-"T-that's not me," you say. "<<charles>> isn't my name."
+	"T-that's not me," you say. "<<charles>> isn't my name."
 <<elseif $submissive lte 850>>
-"Don't touch me," you say. "You're crazy."
+	"Don't touch me," you say. "You're crazy."
 <<else>>
-"That's not my name," you say. "You've got me confused with someone else."
+	"That's not my name," you say. "You've got me confused with someone else."
 <</if>>
 <br><br>
 
@@ -55,14 +57,14 @@ You nod. The figure outstretches <<his>> arms, and grabs you in a hug. "I knew i
 
 :: Sewers Intro Molestation
 <<if $molestationstart is 1>>
-<<set $molestationstart to 0>>
-<<controlloss>>
-<<violence 1>>
-<<neutral 1>>
-<<molested>>
-
-<<maninit>><<npcidlegenitals>>
-<<set $timer to 10>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>><<npcidlegenitals>>
+	<<set $timer to 10>>
 <</if>>
 
 <<effects>>
@@ -70,13 +72,13 @@ You nod. The figure outstretches <<his>> arms, and grabs you in a hug. "I knew i
 <<effectsman>>
 
 <<if $timer is 9>>
-"Good <<girl>>."
+	"Good <<girl>>."
 <<elseif $timer is 7>>
-"You have a body befitting our family."
+	"You have a body befitting our family."
 <<elseif $timer is 5>>
-"This is for your own good darling."
+	"This is for your own good darling."
 <<elseif $timer is 3>>
-"Such smooth, supple skin."
+	"Such smooth, supple skin."
 <</if>>
 
 <<man>>
@@ -86,73 +88,72 @@ You nod. The figure outstretches <<his>> arms, and grabs you in a hug. "I knew i
 <<actionsman>>
 
 <<if $enemyhealth lte 0>>
-<span id="next"><<link [[Next|Sewers Intro Molestation Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Intro Molestation Finish]]>><</link>></span><<nexttext>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
-<span id="next"><<link [[Next|Sewers Intro Molestation Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Intro Molestation Finish]]>><</link>></span><<nexttext>>
 <<else>>
-<span id="next"><<link [[Next|Sewers Intro Molestation]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Intro Molestation]]>><</link>></span><<nexttext>>
 <</if>>
 
 :: Sewers Intro Molestation Finish
 <<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
-<<ejaculation>>
+	<<ejaculation>>
 
-"Y-yes," <<he>> stammers. "Good <<girl>>."
-<br><br>
+	"Y-yes," <<he>> stammers. "Good <<girl>>."
+	<br><br>
 
-<<tearful>> you try to crawl away, but <<he>> grips your waist.
-<br><br>
+	<<tearful>> you try to crawl away, but <<he>> grips your waist.
+	<br><br>
 
-<<clotheson>>
-<<endcombat>>
-<<npc Morgan>><<person1>>
-<<link [[Next|Sewers Feeding]]>><</link>>
+	<<clotheson>>
+	<<endcombat>>
+	<<npc Morgan>><<person1>>
+	<<link [[Next|Sewers Feeding]]>><</link>>
 
 <<elseif $enemyhealth lte 0>>
+	You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to your feet.
+	<br><br>
 
-You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to your feet.
-<br><br>
-
-<<tearful>> you escape into another tunnel, chased by <<his>> howls.
-<br><br>
-<<set $sewerschased to 1>>
-<<set $sewerschasedstep to 3>>
+	<<tearful>> you escape into another tunnel, chased by <<his>> howls.
+	<br><br>
+	<<set $sewerschased to 1>>
+	<<set $sewerschasedstep to 3>>
 
-<<clotheson>>
-<<endcombat>>
+	<<clotheson>>
+	<<endcombat>>
 
-<<link [[Next|Sewers Residential]]>><</link>>
+	<<link [[Next|Sewers Residential]]>><</link>>
 
 <</if>>
 
 :: Sewers Intro Fight
 <<if $fightstart is 1>>
-<<set $fightstart to 0>>
+	<<set $fightstart to 0>>
 
-<<neutral 1>>
+	<<neutral 1>>
 
-<<maninit>>
-<<set $enemytrust -= 100>>
-<<set $enemyanger += 200>>
-<<npcidlegenitals>>
-<<set $timer to 10>>
-"Don't you dare refuse me," <<he>> snarls.
-<br><br>
-<<set $enemyhealthmax += 100>><<set $enemyhealth += 100>>
+	<<maninit>>
+	<<set $enemytrust -= 100>>
+	<<set $enemyanger += 200>>
+	<<npcidlegenitals>>
+	<<set $timer to 10>>
+	"Don't you dare refuse me," <<he>> snarls.
+	<br><br>
+	<<set $enemyhealthmax += 100>><<set $enemyhealth += 100>>
 <</if>>
 
 <<effects>>
 <<effectsman>>
 
 <<if $timer is 9>>
-"Never refuse me again!"
+	"Never refuse me again!"
 <<elseif $timer is 7>>
-"This is for your own good."
+	"This is for your own good."
 <<elseif $timer is 5>>
-"The other students are a bad influence."
+	"The other students are a bad influence."
 <<elseif $timer is 3>>
-"You were never like this before."
+	"You were never like this before."
 <</if>>
 
 <<man>>
@@ -162,66 +163,65 @@ You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to you
 <<actionsman>>
 
 <<if $enemyhealth lte 0>>
-<span id="next"><<link [[Next|Sewers Intro Fight Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Intro Fight Finish]]>><</link>></span><<nexttext>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
-<span id="next"><<link [[Next|Sewers Intro Fight Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Intro Fight Finish]]>><</link>></span><<nexttext>>
 <<elseif $pain gte 100 and $willpowerpain is 0>>
-<span id="next"><<link [[Next|Sewers Intro Fight Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Intro Fight Finish]]>><</link>></span><<nexttext>>
 <<else>>
-<span id="next"><<link [[Next|Sewers Intro Fight]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Intro Fight]]>><</link>></span><<nexttext>>
 <</if>>
 
 :: Sewers Intro Fight Finish
 <<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
-<<ejaculation>>
+	<<ejaculation>>
 
-"Y-yes," <<he>> stammers. "Good <<girl>>."
-<br><br>
+	"Y-yes," <<he>> stammers. "Good <<girl>>."
+	<br><br>
 
-<<tearful>> you try to crawl away, but <<he>> grips your waist.
-<br><br>
+	<<tearful>> you try to crawl away, but <<he>> grips your waist.
+	<br><br>
 
-<<clotheson>>
-<<endcombat>>
-<<npc Morgan>><<person1>>
-<<link [[Next|Sewers Feeding]]>><</link>>
+	<<clotheson>>
+	<<endcombat>>
+	<<npc Morgan>><<person1>>
+	<<link [[Next|Sewers Feeding]]>><</link>>
 
 <<elseif $enemyhealth lte 0>>
+	You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to your feet.
+	<br><br>
 
-You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to your feet.
-<br><br>
-
-<<tearful>> you escape into another tunnel, chased by <<his>> howls.
-<br><br>
-<<set $sewerschased to 1>>
-<<set $sewerschasedstep to 3>>
+	<<tearful>> you escape into another tunnel, chased by <<his>> howls.
+	<br><br>
+	<<set $sewerschased to 1>>
+	<<set $sewerschasedstep to 3>>
 
-<<clotheson>>
-<<endcombat>>
+	<<clotheson>>
+	<<endcombat>>
 
-<<link [[Next|Sewers Escape]]>><</link>>
+	<<link [[Next|Sewers Escape]]>><</link>>
 
 <<else>>
+	<<tearful>> you collapse, too hurt to continue fighting. "Oh my child," <<he>> says, having vented the worst of <<his>> anger. "Look what you made me do. I know what will make you feel better."
+	<br><br>
 
-<<tearful>> you collapse, too hurt to continue fighting. "Oh my child," <<he>> says, having vented the worst of <<his>> anger. "Look what you made me do. I know what will make you feel better."
-<br><br>
-
-<<clotheson>>
-<<endcombat>>
-<<npc Morgan>><<person1>>
+	<<clotheson>>
+	<<endcombat>>
+	<<npc Morgan>><<person1>>
 
-<<link [[Next|Sewers Feeding]]>><</link>>
+	<<link [[Next|Sewers Feeding]]>><</link>>
 
 <</if>>
 
 :: Sewers Feeding
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 <<set $sewersfeeding to 1>>
 <<if $breastfeedingdisable is "f" and $pronoun is "f">>
 	Morgan loosens <<his>> sash, and exposes <<his>> breast from underneath <<his>> tattered and discoloured gown. "Come, dear. I know you're a bit old for this, but it was always your favourite."
 	<br><br>
+
 	<<link [[Feed|Sewers Breastfeed]]>><<breastfed>><<npcincr Morgan love 1>><<npcincr Morgan dom 1>><</link>>
 	<br>
 	<<link [[Refuse|Sewers Breastfeed Refuse]]>><<npcincr Morgan love -1>><<npcincr Morgan dom -1>><</link>>
@@ -229,6 +229,7 @@ You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to you
 <<else>>
 	"You must be hungry dear," Morgan says. "I have just the thing. Tea and scones." <<He>> disappears around a corner for a moment, before emerging with a basket in hand. <<He>> empties it in front of you. Three boiled rats, and a chipped teacup containing a tarry substance. <<if $NPCList[0].penis isnot "none">>A mysterious white fluid floats on the surface.<</if>>
 	<br><br>
+
 	<<link [[Eat|Sewers Rats]]>><<trauma 6>><<stress 6>><<npcincr Morgan love 1>><<npcincr Morgan dom 1>><</link>><<gtrauma>><<gstress>>
 	<br>
 	<<set $skulduggerydifficulty to 200>>
@@ -239,18 +240,19 @@ You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to you
 <</if>>
 
 :: Sewers Breastfeed
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You wrap your lips around <<his>> breast and suckle while Morgan cradles your head. A sweet warmth fills your mouth. After a few minutes, <<his>> other hand traces down your torso. <<He>> fondles your groin.
 <<garousal>><<arousal 600>>
 <br><br>
-"There," <<he>> says after a few moments. "Did <<charles>> enjoy? I missed doing that with you. You're never too old for mummy's milk. Now maybe you won't be so grouchy." <<He>> laughs. "Now, there are chores you can help me with, or maybe we'll take a nap."
+
+"There," <<he>> says after a few moments. "Did <<charles>> enjoy? I missed doing that with you. You're never too old for <<mummy>>'s milk. Now maybe you won't be so grouchy." <<He>> laughs. "Now, there are chores you can help me with, or maybe we'll take a nap."
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Breastfeed Refuse
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 
 <<He>> looks hurt. "Well, you must eat something," <<he>> says. "I have just the thing. Tea and scones." <<He>> disappears around a corner for a moment, before emerging with a basket in hand. <<He>> empties it in front of you. Three boiled rats, and a chipped teacup containing a tarry substance. <<if $NPCList[0].penis isnot "none">>A mysterious white fluid floats on the surface.<</if>>
@@ -284,55 +286,53 @@ You wait for Morgan to become distracted.
 
 <<skulduggerycheck>>
 <<if $skulduggerysuccess is 1>>
+	You toss the rats and pour the sludge down a drain, while making exaggerated chomping and sipping noises. You force a burp.
+	<br><br>
 
-You toss the rats and pour the sludge down a drain, while making exaggerated chomping and sipping noises. You force a burp.
-<br><br>
-
-"I hope you enjoyed the meal," Morgan says. "It has been quite a while since I've been able to cook for somebody else, much less my own flesh and blood. Now, there are chores you can help me with, or maybe we'll take a nap."
-<br><br>
+	"I hope you enjoyed the meal," Morgan says. "It has been quite a while since I've been able to cook for somebody else, much less my own flesh and blood. Now, there are chores you can help me with, or maybe we'll take a nap."
+	<br><br>
 
 	<<skulduggeryuse>>
 
-<<link [[Next|Sewers Morgan]]>><</link>>
-<br>
+	<<link [[Next|Sewers Morgan]]>><</link>>
+	<br>
 
 <<else>>
+	You try to toss the rats down a drain, but they splat against the bars. You lift the teacup to pour away, but the slimy handle slips from your hand and it shatters on the ground.
+	<br><br>
 
-You try to toss the rats down a drain, but they splat against the bars. You lift the teacup to pour away, but the slimy handle slips from your hand and it shatters on the ground.
-<br><br>
-
-Morgan turns. "I made that for you!" <<he>> says. "You spoiled brat."
-<br><br>
+	Morgan turns. "I made that for you!" <<he>> says. "You spoiled brat."
+	<br><br>
 
 	<<skulduggeryuse>>
 
-<<link [[Next|Sewers Spank]]>><<set $molestationstart to 1>><</link>>
-<br>
+	<<link [[Next|Sewers Spank]]>><<set $molestationstart to 1>><</link>>
+	<br>
 
 <</if>>
 
 :: Sewers Spank
 <<if $molestationstart is 1>>
-<<set $molestationstart to 0>>
-<<controlloss>>
-<<violence 1>>
-<<neutral 1>>
-<<molested>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
 
-<<maninit>>
-<<npcspank>><<set $enemyanger += 200>><<set $timer to 10>>
-<<He>> lunges at you and bends you over <<his>> knee.
-<br><br>
+	<<maninit>>
+	<<npcspank>><<set $enemyanger += 200>><<set $timer to 10>>
+	<<He>> lunges at you and bends you over <<his>> knee.
+	<br><br>
 <</if>>
 
 <<if $timer is 9>>
-"What did <<if $pronoun is "m">>daddy<<else>>mummy<</if>> tell you about saying no."
+	"What did <<mummy>> tell you about saying no."
 <<elseif $timer is 7>>
-"You dare disrespect our family."
+	"You dare disrespect our family."
 <<elseif $timer is 5>>
-"<<if $pronoun is "m">>Daddy<<else>>Mummy<</if>> only wants you to be the best you can."
+	"<<Mummy>> only wants you to be the best you can."
 <<elseif $timer is 3>>
-"This hurts me more than you."
+	"This hurts me more than you."
 <</if>>
 
 <<effects>>
@@ -344,57 +344,56 @@ Morgan turns. "I made that for you!" <<he>> says. "You spoiled brat."
 <<actionsman>>
 
 <<if $enemyhealth lte 0>>
-<span id="next"><<link [[Next|Sewers Spank Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Spank Finish]]>><</link>></span><<nexttext>>
 <<elseif $enemyarousal gte $enemyarousalmax>>
-<span id="next"><<link [[Next|Sewers Spank Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Spank Finish]]>><</link>></span><<nexttext>>
 <<elseif $enemyanger lte 40>>
-<span id="next"><<link [[Next|Sewers Spank Finish]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Spank Finish]]>><</link>></span><<nexttext>>
 <<else>>
-<span id="next"><<link [[Next|Sewers Spank]]>><</link>></span><<nexttext>>
+	<span id="next"><<link [[Next|Sewers Spank]]>><</link>></span><<nexttext>>
 <</if>>
 
 :: Sewers Spank Finish
 <<effects>>
 <<if $enemyarousal gte $enemyarousalmax>>
-<<ejaculation>>
+	<<ejaculation>>
 
-"I can't stay mad at you," Morgan sighs. "But you have to work extra hard at your chores."
-<br><br>
+	"I can't stay mad at you," Morgan sighs. "But you have to work extra hard at your chores."
+	<br><br>
 
-<<tearful>> you squirm from <<his>> grasp.
-<br><br>
+	<<tearful>> you squirm from <<his>> grasp.
+	<br><br>
 
-<<clotheson>>
-<<endcombat>>
-<<npc Morgan>><<person1>>
-<<link [[Next|Sewers Morgan]]>><</link>>
+	<<clotheson>>
+	<<endcombat>>
+	<<npc Morgan>><<person1>>
+	<<link [[Next|Sewers Morgan]]>><</link>>
 
 <<elseif $enemyhealth lte 0>>
+	You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to your feet.
+	<br><br>
 
-You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to your feet.
-<br><br>
-
-<<tearful>> you escape into another tunnel, chased by <<his>> howls.
-<br><br>
-<<set $sewerschased to 1>>
-<<set $sewerschasedstep to 3>>
+	<<tearful>> you escape into another tunnel, chased by <<his>> howls.
+	<br><br>
+	<<set $sewerschased to 1>>
+	<<set $sewerschasedstep to 3>>
 
-<<clotheson>>
-<<endcombat>>
+	<<clotheson>>
+	<<endcombat>>
 
-<<link [[Next|Sewers Escape]]>><</link>>
+	<<link [[Next|Sewers Escape]]>><</link>>
 
 <<else>>
-"That hurt me more than you," Morgan says. "Do as you're told in the future."
-<br><br>
+	"That hurt me more than you," Morgan says. "Do as you're told in the future."
+	<br><br>
 
-<<tearful>> you squirm from <<his>> grasp.
-<br><br>
+	<<tearful>> you squirm from <<his>> grasp.
+	<br><br>
 
-<<clotheson>>
-<<endcombat>>
-<<npc Morgan>><<person1>>
-<<link [[Next|Sewers Morgan]]>><</link>>
+	<<clotheson>>
+	<<endcombat>>
+	<<npc Morgan>><<person1>>
+	<<link [[Next|Sewers Morgan]]>><</link>>
 
 <</if>>
 
@@ -402,78 +401,76 @@ You shove Morgan away from you, dodge <<his>> clutching grasp and stumble to you
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 
 <<if $stress gte $stressmax>>
-
-It's all too much for you. You pass out.
-<br><br>
-<<sewersend>>
-<<sewerspassout>>
+	It's all too much for you. You pass out.
+	<br><br>
+	<<sewersend>>
+	<<sewerspassout>>
 
 <<elseif $hour lte 7>>
+	Morgan yawns, stretches and falls back on a pile of blankets. <<He>> snores.
+	<br><br>
 
-Morgan yawns, stretches and falls back on a pile of blankets. <<He>> snores.
-<br><br>
-
-Now could be your chance to escape.
-<br><br>
+	Now could be your chance to escape.
+	<br><br>
 
-<<link [[Sleep|Sewers Sleep]]>><<if $ironmanmode isnot true>><<set $saveDetails.auto.count++>><</if>><</link>>
-<br>
-<<link [[Escape|Sewers Escape Night]]>><</link>>
-<br>
+	<<link [[Sleep|Sewers Sleep]]>><<incrementautosave>><</link>>
+	<br>
+	<<link [[Escape|Sewers Escape Night]]>><</link>>
+	<br>
 
 <<elseif $hour is 18 and $sewersfeeding isnot 1>>
+	Morgan stares at you and smiles.
+	<br><br>
 
-Morgan stares at you and smiles.
-<br><br>
-
-<<link [[Next|Sewers Feeding]]>><</link>>
-<br>
+	<<link [[Next|Sewers Feeding]]>><</link>>
+	<br>
 
 <<elseif $hour is 9>>
-"Now, sweetie," Morgan says. "It's important for people of our status to be educated about the finer things in life. Allow me to begin by telling you again of our family history." <<He>> prattles, gibbers, and mumbles <<his>> way through what <<he>> calls a history lesson.
-<br><br>
+	"Now, sweetie," Morgan says. "It's important for people of our status to be educated about the finer things in life. Allow me to begin by telling you again of our family history." <<He>> prattles, gibbers, and mumbles <<his>> way through what <<he>> calls a history lesson.
+	<br><br>
 
-<<link [[Pay attention (1:00)|Sewers History]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">History?</span><</if>>
-<br>
-<<link [[Daydream (1:00)|Sewers History Daydream]]>><<pass 60>><</link>>
-<br>
-<<link [[Resist (1:00)|Sewers History Resist]]>><<pass 60>><</link>>
-<br>
+	<<link [[Pay attention (1:00)|Sewers History]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">History?</span><</if>>
+	<br>
+	<<link [[Daydream (1:00)|Sewers History Daydream]]>><<pass 60>><</link>>
+	<br>
+	<<link [[Resist (1:00)|Sewers History Resist]]>><<pass 60>><</link>>
+	<br>
 
 <<elseif $hour is 12>>
-"Mathematics," Morgan says. "My favourite subject." <<He>> licks <<his>> lips and hands you an old receipt to write on.
-<br><br>
+	"Mathematics," Morgan says. "My favourite subject." <<He>> licks <<his>> lips and hands you an old receipt to write on.
+	<br><br>
 
-<<link [[Pay attention (1:00)|Sewers Maths]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">Maths?</span><</if>>
-<br>
-<<link [[Daydream (1:00)|Sewers Maths Daydream]]>><<pass 60>><</link>>
-<br>
-<<link [[Resist (1:00)|Sewers Maths Resist]]>><<pass 60>><</link>>
-<br>
+	<<link [[Pay attention (1:00)|Sewers Maths]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">Maths?</span><</if>>
+	<br>
+	<<link [[Daydream (1:00)|Sewers Maths Daydream]]>><<pass 60>><</link>>
+	<br>
+	<<link [[Resist (1:00)|Sewers Maths Resist]]>><<pass 60>><</link>>
+	<br>
 
 <<elseif $hour is 15>>
-"Now pay attention," Morgan says. "You must be the quintessential socialite."
-<br><br>
+	"Now pay attention," Morgan says. "You must be the quintessential socialite."
+	<br><br>
 
-<<link [[Pay attention (1:00)|Sewers English]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">English?</span><</if>>
-<br>
-<<link [[Daydream (1:00)|Sewers English Daydream]]>><<pass 60>><</link>>
-<br>
-<<link [[Resist (1:00)|Sewers English Resist]]>><<pass 60>><</link>>
-<br>
+	<<link [[Pay attention (1:00)|Sewers English]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">English?</span><</if>>
+	<br>
+	<<link [[Daydream (1:00)|Sewers English Daydream]]>><<pass 60>><</link>>
+	<br>
+	<<link [[Resist (1:00)|Sewers English Resist]]>><<pass 60>><</link>>
+	<br>
 
 <<elseif $hour is 17>>
-"Listen carefully <<charles>>," Morgan says. "This is important." <<He>> instructs you on the nutritional value of food in the old sewers.
-<br><br>
+	"Listen carefully <<charles>>," Morgan says. "This is important." <<He>> instructs you on the nutritional value of food in the old sewers.
+	<br><br>
 
-<<link [[Pay attention (1:00)|Sewers Science]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">Science?</span><</if>>
-<br>
-<<link [[Daydream (1:00)|Sewers Science Daydream]]>><<pass 60>><</link>>
-<br>
-<<link [[Resist (1:00)|Sewers Science Resist]]>><<pass 60>><</link>>
-<br>
+	<<link [[Pay attention (1:00)|Sewers Science]]>><<pass 60>><<trauma 6>><<stress 6>><</link>><<gtrauma>><<gstress>><<if $statdisable is "f">> | <span class="blue">Science?</span><</if>>
+	<br>
+	<<link [[Daydream (1:00)|Sewers Science Daydream]]>><<pass 60>><</link>>
+	<br>
+	<<link [[Resist (1:00)|Sewers Science Resist]]>><<pass 60>><</link>>
+	<br>
 
-<<elseif $hour is 20 and $sewerssex isnot 1>><<set $sewerssex to 1>>
+<<elseif $hour is 20 and $sewerssex isnot 1>>
+	<<set $sewerssex to 1>>
 	<<if $exposed gte 2>>
 		"I-It's time," Morgan says. "For special learning. Lie down."
 		<br><br>
@@ -492,17 +489,16 @@ Morgan stares at you and smiles.
 	<br>
 
 <<elseif $rng gte 91 and $worn.neck.collared is 1>>
+	"<<charles>>," Morgan says. "What's that around your neck? I can get that off for you." <<He>> produces a bobby pin, lubricant, and a crowbar. "Now, be a big <<girl>> and come here."
+	<br><br>
 
-"<<charles>>," Morgan says. "What's that around your neck? I can get that off for you." <<He>> produces a bobby pin, lubricant, and a crowbar. "Now, be a big <<girl>> and come here."
-<br><br>
-
-<<link [[Allow|Sewers Collar]]>><<set $worn.neck.cursed to 0>><<neckruined>><<trauma 6>><<stress 6>><<pain 6>><</link>><<gtrauma>><<gstress>><<gpain>>
-<br>
-<<link [[Refuse|Sewers Collar Refuse]]>><</link>>
-<br>
+	<<link [[Allow|Sewers Collar]]>><<set $worn.neck.cursed to 0>><<neckruined>><<trauma 6>><<stress 6>><<pain 6>><</link>><<gtrauma>><<gstress>><<gpain>>
+	<br>
+	<<link [[Refuse|Sewers Collar Refuse]]>><</link>>
+	<br>
 
 <<elseif $rng gte 81 and $worn.feet.type.includes("shackle")>>
-	"Oh, <<charles>>, your feet!" Morgan exclaims. "It's dangerous to be locked up like that down here. What if you trip into the water?" <<He>> produces a tea plate and a screwdriver. "<<if $pronoun is "m">>Daddy<<else>>Mummy<</if>> will get those nasty things off you."
+	"Oh, <<charles>>, your feet!" Morgan exclaims. "It's dangerous to be locked up like that down here. What if you trip into the water?" <<He>> produces a tea plate and a screwdriver. "<<Mummy>> will get those nasty things off you."
 	<br><br>
 
 	<<link [[Allow|Sewers Shackles]]>><<remove_shackle>><<trauma 6>><<stress 6>><<pain 6>><</link>><<gtrauma>><<gstress>><<gpain>>
@@ -511,7 +507,7 @@ Morgan stares at you and smiles.
 	<br>
 
 <<elseif $rng gte 71 and ($leftarm is "bound" or $rightarm is "bound")>>
-	"Now how'd you get like that, <<charles>>?" Morgan asks, poking at your bindings. "You shouldn't be playing with rope, you could hurt yourself." <<He>> produces a pair of rusty gardening shears. "Don't be shy, let <<if $pronoun is "m">>daddy<<else>>mummy<</if>> take care of it."
+	"Now how'd you get like that, <<charles>>?" Morgan asks, poking at your bindings. "You shouldn't be playing with rope, you could hurt yourself." <<He>> produces a pair of rusty gardening shears. "Don't be shy, let <<mummy>> take care of it."
 	<br><br>
 
 	<<link [[Allow|Sewers Bindings]]>><<unbind>><<trauma 6>><<stress 6>><<pain 6>><</link>><<gtrauma>><<gstress>><<gpain>>
@@ -520,46 +516,44 @@ Morgan stares at you and smiles.
 	<br>
 
 <<elseif $rng gte 51>>
-"I'm going to bake scones," Morgan says, clutching a number of rats by their tails. "You put the kettle on."
-<br><br>
+	"I'm going to bake scones," Morgan says, clutching a number of rats by their tails. "You put the kettle on."
+	<br><br>
 
-<<link [[Help (1:00)|Sewers Scones]]>><<trauma 6>><<stress 6>><<npcincr Morgan love 1>><<pass 60>><</link>><<gtrauma>><<gstress>>
-<br>
-<<link [[Refuse|Sewers Spank]]>><<set $molestationstart to 1>><<npcincr Morgan love -1>><</link>>
-<br>
+	<<link [[Help (1:00)|Sewers Scones]]>><<trauma 6>><<stress 6>><<npcincr Morgan love 1>><<pass 60>><</link>><<gtrauma>><<gstress>>
+	<br>
+	<<link [[Refuse|Sewers Spank]]>><<set $molestationstart to 1>><<npcincr Morgan love -1>><</link>>
+	<br>
 
 <<elseif $rng gte 46>>
+	Morgan offers some advice. "Don't go swimming here without a top on," <<he>> says. "There are nasty parasites living in the water."
+	<br><br>
 
-Morgan offers some advice. "Don't go swimming here without a top on," <<he>> says. "There are nasty parasites living in the water."
-<br><br>
-
-<<He>> turns away from you. "Help me search through these antiques," <<he>> says as <<he>> rummages through a pile of rubbish. "Don't be a bad <<girl>>, come help."
-<br><br>
+	<<He>> turns away from you. "Help me search through these antiques," <<he>> says as <<he>> rummages through a pile of rubbish. "Don't be a bad <<girl>>, come help."
+	<br><br>
 
-<<link [[Help (1:00)|Sewers Rummage]]>><<trauma 6>><<stress 6>><<npcincr Morgan love 1>><<pass 60>><</link>><<gtrauma>><<gstress>>
-<br>
-<<link [[Refuse|Sewers Spank]]>><<set $molestationstart to 1>><<npcincr Morgan love -1>><</link>>
-<br>
+	<<link [[Help (1:00)|Sewers Rummage]]>><<trauma 6>><<stress 6>><<npcincr Morgan love 1>><<pass 60>><</link>><<gtrauma>><<gstress>>
+	<br>
+	<<link [[Refuse|Sewers Spank]]>><<set $molestationstart to 1>><<npcincr Morgan love -1>><</link>>
+	<br>
 
 <<elseif $rng gte 41>>
+	"<<charles>>," Morgan hesitates. "Since we've been reunited, darling, I've wanted you to have this." <<He>> hands you a pristine <<if $player.gender_appearance is "m">>shirt and shorts<<else>>sundress<</if>>. "I-It's your favourite little outfit. W-would you wear it for me?"
+	<br><br>
 
-"<<charles>>," Morgan hesitates. "Since we've been reunited, darling, I've wanted you to have this." <<He>> hands you a pristine <<if $player.gender_appearance is "m">>shirt and shorts<<else>>sundress<</if>>. "I-It's your favourite little outfit. W-would you wear it for me?"
-<br><br>
-
-<<link [[Wear|Sewers Outfit]]>><</link>>
-<br>
-<<link [[Refuse|Sewers Outfit Refuse]]>><</link>>
-<br>
+	<<set $phase to ($player.gender_appearance is "m" ? 0 : 1)>>
+	<<link [[Wear|Sewers Outfit]]>><</link>>
+	<br>
+	<<link [[Refuse|Sewers Outfit Refuse]]>><</link>>
+	<br>
 
 <<else>>
+	"Help me search through these antiques," Morgan says as <<he>> rummages through a pile of rubbish. "Don't be a bad <<girl>>, come help."
+	<br><br>
 
-"Help me search through these antiques," Morgan says as <<he>> rummages through a pile of rubbish. "Don't be a bad <<girl>>, come help."
-<br><br>
-
-<<link [[Help (1:00)|Sewers Rummage]]>><<trauma 6>><<stress 6>><<npcincr Morgan love 1>><<pass 60>><</link>><<gtrauma>><<gstress>>
-<br>
-<<link [[Refuse|Sewers Spank]]>><<set $molestationstart to 1>><<npcincr Morgan love -1>><</link>>
-<br>
+	<<link [[Help (1:00)|Sewers Rummage]]>><<trauma 6>><<stress 6>><<npcincr Morgan love 1>><<pass 60>><</link>><<gtrauma>><<gstress>>
+	<br>
+	<<link [[Refuse|Sewers Spank]]>><<set $molestationstart to 1>><<npcincr Morgan love -1>><</link>>
+	<br>
 
 <</if>>
 
@@ -573,10 +567,11 @@ You follow Morgan's recipe as best you can and prepare a fresh batch of "tea" wh
 <br>
 
 :: Sewers Rummage
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You help Morgan search for salvage, doing your best to avoid anything too gross. A rat jumps out of a tin can and startles you. Morgan grabs it from the air. "Another scone," <<he>> laughs. "Still fresh."
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
@@ -585,9 +580,11 @@ You help Morgan search for salvage, doing your best to avoid anything too gross.
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 You lie down beside Morgan. <<He>> wraps an arm around you.
 <br><br>
+
 <<sewerssleep>>
 You awaken some time later. A pair of hands grope you from behind. "I've seen how you've looked at me," <<he>> whispers. "I remember how much of a struggle you would put up. I still have that scar."
 <br><br>
+
 <<link [[Next|Sewers Rape]]>><<set $molestationstart to 1>><</link>>
 <br>
 
@@ -615,8 +612,8 @@ You awaken some time later. A pair of hands grope you from behind. "I've seen ho
 <</if>>
 
 :: Sewers Rape Finish
-
 <<effects>>
+
 <<if $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>>
 	<<if $phase is 1>>
@@ -626,7 +623,7 @@ You awaken some time later. A pair of hands grope you from behind. "I've seen ho
 		"There's room for improvement, dear," <<he>> whispers. "But that was good." <<He>> kisses you on your forehead.
 		<br><br>
 	<<else>>
-		"You're a bad <<girl>>," <<he>> says. "Provoking your <<if $pronoun is "m">>father<<else>>mother<</if>> like that."
+		"You're a bad <<girl>>," <<he>> says. "Provoking your <<father>> like that."
 		<br><br>
 	<</if>>
 	<<tearful>> you squirm from <<his>> grasp.
@@ -648,32 +645,36 @@ You awaken some time later. A pair of hands grope you from behind. "I've seen ho
 <</if>>
 
 :: Sewers Escape
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>><<water>>
+
 There's no way out, except a river running along a canal into darkness. One side is blocked by a metal grate.
 <br><br>
-Morgan lurches after you, slowed by legs tangled in their decaying outfit. You drop into the water and swim.
+
+Morgan lurches after you, <<nnpc_his "Morgan">> legs tangled in <<nnpc_his "Morgan">> decaying outfit. You drop into the water and swim.
 <br><br>
+
 You swim against the gentle current and emerge in a large room. You climb onto the shore. "I'm coming <<charles>>," Morgan's voice shouts behind you. You hear a splash of water. <span class="red">You are being hunted.</span>
 <br><br>
+
 <<link [[Next|Sewers Residential]]>><<sewersend>><</link>>
 <br>
 
 :: Sewers Escape Night
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>><<water>>
 
 There's no way out, except a river running along a canal into darkness. One side is blocked by a metal grate. You lower yourself into the water and swim against the gentle current, emerging in a large room. You climb onto the shore.
 <br><br>
+
 <<set $sewersevent to random(5, 12)>>
 <<link [[Next|Sewers Residential]]>><<sewersend>><</link>>
 <br>
 
 :: Sewers History
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 Morgan explains your family origins. That you're of a proud and noble house.
 <br><br>
+
 <<if $rng gte 75>>
 	<<His>> take on things seems strange.
 	<<lhistory>><<historyskill -1>>
@@ -691,158 +692,167 @@ Morgan explains your family origins. That you're of a proud and noble house.
 <br>
 
 :: Sewers History Daydream
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You watch Morgan's lips move, but your mind is elsewhere.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers History Resist
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You put up with <<his>> rambling for a time, then blow a raspberry and tell <<him>> you don't care, and that <<hes>> crazy. <<He>> isn't amused.
 <br><br>
+
 <<link [[Next|Sewers Spank]]>><<set $molestationstart to 1>><</link>>
 <br>
 
 :: Sewers Maths
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 Morgan inundates you with facts and formulae.
 <br><br>
+
 <<if $rng gte 75>>
 	<<His>> take on things seems strange.
 	<<lmaths>><<mathsskill -1>>
-	<br><br>
 <<elseif $rng gte 50>>
 	<<His>> take on things seems strange.
 	<<ggmaths>><<mathsskill>><<mathsskill>>
-	<br><br>
 <<else>>
 	<<He>> rambles a lot, but has moments of greater lucidity.
 	<<gmaths>><<mathsskill>>
-	<br><br>
 <</if>>
+<br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Maths Daydream
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You roll your eyes and go through the motions as Morgan tries to explain a theory to you. You nod, mumble, and doodle on the back of the receipt Morgan gave you.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Maths Resist
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You put up with <<his>> rambling for a while, then crumble up the receipt and throw it in <<his>> face. <<He>> glares at you.
 <br><br>
+
 <<link [[Next|Sewers Spank]]>><<set $molestationstart to 1>><</link>>
 <br>
 
 :: Sewers English
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You do your best to keep up with Morgan in conversation. <<He>> speaks of commoners with disdain.
 <br><br>
+
 <<if $rng gte 75>>
 	<<His>> take on things seems strange.
 	<<lenglish>><<englishskill -1>>
-	<br><br>
 <<elseif $rng gte 50>>
 	<<His>> take on things seems strange.
 	<<ggenglish>><<englishskill>><<englishskill>>
-	<br><br>
 <<else>>
 	<<He>> rambles a lot, but has moments of greater lucidity.
 	<<genglish>><<englishskill>>
-	<br><br>
 <</if>>
+<br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers English Daydream
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You don't put your heart into the lesson, and mumble vague affirmations to Morgan.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers English Resist
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You tell <<him>> this is a stupid waste of your time, which infuriates <<him>>.
 <br><br>
+
 <<link [[Next|Sewers Spank]]>><<set $molestationstart to 1>><</link>>
 <br>
 
 :: Sewers Science
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 Morgan is delighted by your interest in scones.
 <br><br>
+
 <<if $rng gte 75>>
 	<<His>> take on things seems strange.
 	<<lscience>><<scienceskill -1>>
-	<br><br>
 <<elseif $rng gte 50>>
 	<<His>> take on things seems strange.
 	<<ggscience>><<scienceskill 2>>
-	<br><br>
 <<else>>
 	<<He>> rambles a lot, but has moments of greater lucidity.
 	<<gscience>><<scienceskill>>
-	<br><br>
 <</if>>
+<br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Science Daydream
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You sit through the lecture. Rats good, tentacle creatures are okay too, you guess.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Science Resist
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You tell Morgan that this is disgusting and that you hate <<his>> cooking. This enrages <<him>>.
 <br><br>
+
 <<link [[Next|Sewers Spank]]>><<set $molestationstart to 1>><</link>>
 <br>
 
 :: Sewers Sex Ed
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 <<if $exposed gte 2>>
 	You do as instructed. Morgan strips <<his>> clothing, and climbs on top of you. "Now, dear, stretch your legs back." <<He>> says. "Work hard and I'm sure you can get an A+."
-	<br><br>
 <<else>>
 	You do as instructed, blushing as you undress. Morgan strips too, and climbs on top of you. "Now, dear, stretch your legs back." <<He>> says. "Work hard and I'm sure you can get an A+."
-	<br><br>
 	<<clothesstrip>>
 <</if>>
+<br><br>
+
 <<link [[Next|Sewers Rape]]>><<set $phase to 1>><<set $molestationstart to 1>><</link>>
 <br>
 
 :: Sewers Sex Ed Refuse
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You try to move away from Morgan, but <<he>> grasps your arm and pulls you to the cold stone floor.
 <br><br>
+
 <<link [[Next|Sewers Rape]]>><<set $phase to 2>><<set $molestationstart to 1>><</link>>
 <br>
 
 :: Sewers Outfit
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
-<<if $player.gender_appearance is "m">>
+
+<<if $phase is 0>>
 	<<upperwear 4>>
 	<<lowerwear 5>>
 <<else>>
@@ -850,33 +860,37 @@ You try to move away from Morgan, but <<he>> grasps your arm and pulls you to th
 <</if>>
 You turn away from Morgan to dress. You feel <<his>> eyes on your back.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Outfit Refuse
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 You push the clothes back at Morgan. <<He>> sighs and shakes <<his>> head.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Collar
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 <<if $syndromeeden is 1>>
 	<<set $edencollarremove to 1>>
 <</if>>
-Morgan pulls you close, and sticks the greased bobby pin down between a gap between your neck and the collar. With a few swift motions, you feel it loosen. "Now that I've got the delicate parts exposed," Morgan lays you down. "I need to smash it! Now, be brave for <<if $pronoun is "m">>daddy<<else>>mummy<</if>>," The crowbar comes down on the collar, releasing it from your neck. <<tearful>> you rise to your feet as Morgan snatches and examines the remains.
+Morgan pulls you close, and sticks the greased bobby pin down between a gap between your neck and the collar. With a few swift motions, you feel it loosen. "Now that I've got the delicate parts exposed," Morgan lays you down. "I need to smash it! Now, be brave for <<mummy>>." The crowbar comes down on the collar, releasing it from your neck. <<tearful>> you rise to your feet as Morgan snatches and examines the remains.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
 :: Sewers Collar Refuse
-
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
+
 Morgan shrugs. "Have it your way, dear."
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
@@ -888,6 +902,7 @@ Morgan pulls you close, and sticks the plate between your ankle and one of the s
 
 Eventually, you hear a snap, and the shackle pops open. <<tearful>> you rise to your feet as Morgan snatches and examines the remains.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
 <br>
 
@@ -896,5 +911,106 @@ Eventually, you hear a snap, and the shackle pops open. <<tearful>> you rise to
 
 Morgan pulls you close, and wedges one end of the shears between your wrists. "These old things can't cut anymore," Morgan grumbles. "It's a shame, but that's what happens when you don't buy things with a warranty. Let that be a lesson, <<charles>>." <<He>> wiggles the blade back and forth, loosening your restraints. When they're loose enough, Morgan drops the shears and rips the ropes apart with <<his>> bare hands. <<tearful>> you rise to your feet as Morgan snatches and examines the remains.
 <br><br>
+
 <<link [[Next|Sewers Morgan]]>><</link>>
-<br>
\ No newline at end of file
+<br>
+
+:: Sewers Possessed
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<getTarget true>>
+<<npc Morgan>><<person1>>
+
+Just as you reach for the ladder to haul yourself up, it retracts upwards. You stumble backwards, almost falling over. "There you are, <<charles>>," Morgan exclaims as <<he>> stumbles in from a nearby tunnel. "Don't run from me, insolent-" <<He>> reaches toward you, but suddenly stops, staring at you in confusion.
+<br><br>
+
+<<Hes>> silent for a few seconds, before hissing. <<His>> eyes are filled with a sudden, uncharacteristic clarity. "I can see you in there, you know. Lurking behind <<pher>> eyes, stealing what's not yours. Leave. This place is not yours, nor is that body. You hold no claim down here."
+<br><br>
+
+With a feral screech, Morgan charges at you, <<his>> face twisted in anger. "Be brave for <<mummy>>, <<charles>>! I'll fix this!"
+<br><br>
+
+<span class="nextLink"><<link [[Fight|Sewers Possessed Fight]]>><<set $fightstart to 1>><</link>></span>
+
+:: Sewers Possessed Fight
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+	<<neutral 1>>
+	<<maninit>>
+	<<set $enemytrust to -100>>
+	<<set $enemyanger to 200>>
+	<<npcidlegenitals>>
+	<<set $noAdmire to true>><<set $noBodyWriting to true>>
+	Your body is made to laugh. "<span class="wraith">Those who interrupt ghosts shall join them.</span>"
+	<br><br>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next" class="nextWraith"><<link [[Next|Sewers Possessed Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next" class="nextWraith"><<link [[Next|Sewers Possessed Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif _controlRegain is 1>>
+	<span id="next" class="nextWraith"><<link [[Next|Sewers Possessed Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next" class="nextWraith"><<link [[Next|Sewers Possessed Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Sewers Possessed Fight Finish
+<<effects>><<getTarget true>>
+<<if $enemyhealth lte 0>>
+	Morgan is shoved away from you, and collapses to the ground. "<<charles>>!" <<he>> shouts, <<his>> voice hoarse.
+	<br><br>
+
+	You turn your head up to the ladder, and reach toward it. An extra arm extends out and grabs the ladder, pulling you up and away from Morgan's howls.
+	<br><br>
+
+	<<endcombat>><<clotheson>>
+	<<if $bus is "sewersresidential">>
+		<span class="nextLink"><<link [[Climb.|Residential Drain]]>><</link>></span>
+	<<elseif $bus is "sewerscommercial">>
+		<span class="nextLink"><<link [[Climb.|Commercial Drain]]>><</link>></span>
+	<<else>>
+		<span class="nextLink"><<link [[Climb.|Industrial Drain]]>><</link>></span>
+	<</if>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+
+	Morgan collapses to the ground. "<<charles>>!" <<he>> shouts, <<his>> voice wavering.
+	<br><br>
+
+	You turn your head up to the ladder, and reach toward it. An extra arm extends out and grabs the ladder, pulling you up and away from Morgan's howls.
+	<br><br>
+
+	<<endcombat>><<clotheson>>
+	<<if $bus is "sewersresidential">>
+		<span class="nextLink"><<link [[Climb.|Residential Drain]]>><</link>></span>
+	<<elseif $bus is "sewerscommercial">>
+		<span class="nextLink"><<link [[Climb.|Commercial Drain]]>><</link>></span>
+	<<else>>
+		<span class="nextLink"><<link [[Climb.|Industrial Drain]]>><</link>></span>
+	<</if>>
+<<else>>
+	<<wraithExorcise true true>><<clearWraith>><<endWraith>>
+	<span class="gold">You stop.</span> You can feel it pushing you to keep going, to keep fighting, but you dig your heels in and focus. You have your body back, and you don't plan on giving it up.
+	<br><br>
+
+	You double over in agony. It's pulling itself out of you, knowing it's been bested. You see a pair of pale, translucent arms erupt from your chest. With a great amount of effort, it expels itself out of you.
+	<br><br>
+
+	Its head snaps back, and it dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you hear its voice all around you. "<span class="wraith">A gilded cage is still a cage.</span>" Morgan staggers back, clutching <<nnpc_his "Morgan">> ears in pain. <<tearful>> you run to the ladder, which returned back to the ground, and claw your way out of the sewers.
+	<br><br>
+
+	<<endcombat>><<clotheson>>
+	<<if $bus is "sewersresidential">>
+		<<link [[Next|Residential Drain]]>><</link>>
+	<<elseif $bus is "sewerscommercial">>
+		<<link [[Next|Commercial Drain]]>><</link>>
+	<<else>>
+		<<link [[Next|Industrial Drain]]>><</link>>
+	<</if>>
+<</if>>
\ No newline at end of file
diff --git a/game/overworld-underground/loc-sewers/old-sewers-events.twee b/game/overworld-underground/loc-sewers/old-sewers-events.twee
index 2bba180f8684d95f8c161aa9a02ccb2cf970c7ec..5a5b9c95485c28c8c9bd27c6b91b73471ca5847a 100644
--- a/game/overworld-underground/loc-sewers/old-sewers-events.twee
+++ b/game/overworld-underground/loc-sewers/old-sewers-events.twee
@@ -252,7 +252,7 @@ You crouch and try to pick the lock.
 	You unlock the shackle and run.
 	<br><br>
 	<<skulduggeryuse>>
-	
+
 	You hear Morgan screech, and the clang of metal soon after.
 	<br><br>
 	<<set $sewerschased to 0>>
diff --git a/game/overworld-underground/loc-sewers/old-sewers.twee b/game/overworld-underground/loc-sewers/old-sewers.twee
index f59f7433deb7843dafa74731b4e3a1bfdfe1f0ca..aecaedcd7a6abb8f40baeee28798f222b7f3dc5f 100644
--- a/game/overworld-underground/loc-sewers/old-sewers.twee
+++ b/game/overworld-underground/loc-sewers/old-sewers.twee
@@ -1,8 +1,9 @@
 :: Sewers Residential
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersresidential">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersresidential">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. A canal runs past, disappearing through a metal grate. Water rushes through gaps in the ceiling, carrying litter to join the river. The current looks gentle.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewerschased is 1>>
 	There's a ladder leading up to the town's drain system, but it's retracted and out of reach.
@@ -18,9 +19,10 @@ You are in the old sewers. A canal runs past, disappearing through a metal grate
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -34,18 +36,21 @@ You are in the old sewers. A canal runs past, disappearing through a metal grate
 	<br>
 	<<link [[Swim against the current (0:05)|Sewers Residential Swim]]>><<pass 5>><<tiredness 1>><</link>><<swimmingdifficulty 1 200>><<gtiredness>>
 	<br><br>
-	<<if $sewerschased isnot 1>>
+	<<if $nextPassageCheck is "Sewers Possessed">>
+		<span class="nextLink"><<link [[Climb out.|Sewers Possessed]]>><<pass 4>><</link>></span>
+		<br>
+	<<elseif $sewerschased isnot 1>>
 		<<link [[Climb out of the sewers|Residential Drain]]>><<sewersend>><</link>>
 		<br>
 	<</if>>
 <</if>>
-<<set $eventskip to 0>>
 
 :: Sewers Commercial
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerscommercial">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerscommercial">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. A canal runs past, disappearing into the dark. Piles of rubbish line the sides. The current looks rough.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewerschased is 1>>
 	There's a ladder leading up to the town's drain system, but it's retracted and out of reach.
@@ -61,9 +66,10 @@ You are in the old sewers. A canal runs past, disappearing into the dark. Piles
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -79,18 +85,21 @@ You are in the old sewers. A canal runs past, disappearing into the dark. Piles
 	<br>
 	<<link [[Swim with the current (0:01)|Sewers Residential]]>><<pass 1>><<water>><</link>>
 	<br><br>
-	<<if $sewerschased isnot 1>>
+	<<if $nextPassageCheck is "Sewers Possessed">>
+		<span class="nextLink"><<link [[Climb out.|Sewers Possessed]]>><<pass 4>><</link>></span>
+		<br>
+	<<elseif $sewerschased isnot 1>>
 		<<link [[Climb out of the sewers|Commercial Drain]]>><<sewersend>><</link>>
 		<br>
 	<</if>>
 <</if>>
-<<set $eventskip to 0>>
 
 :: Sewers Industrial
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersindustrial">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersindustrial">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. A canal runs past, disappearing into the dark. Much of the ceiling and walls have collapsed, almost damming the water. The current looks violent.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewerschased is 1>>
 	There's a ladder leading up to the town's drain system, but it's retracted and out of reach.
@@ -106,9 +115,10 @@ You are in the old sewers. A canal runs past, disappearing into the dark. Much o
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -124,18 +134,21 @@ You are in the old sewers. A canal runs past, disappearing into the dark. Much o
 	<br>
 	<<link [[Swim with the current (0:01)|Sewers Commercial]]>><<pass 1>><<water>><</link>>
 	<br><br>
-	<<if $sewerschased isnot 1>>
+	<<if $nextPassageCheck is "Sewers Possessed">>
+		<span class="nextLink"><<link [[Climb out.|Sewers Possessed]]>><<pass 4>><</link>></span>
+		<br>
+	<<elseif $sewerschased isnot 1>>
 		<<link [[Climb out of the sewers|Industrial Drain]]>><<sewersend>><</link>>
 		<br>
 	<</if>>
 <</if>>
-<<set $eventskip to 0>>
 
 :: Sewers Waterfall
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerswaterfall">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerswaterfall">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. Torrents of water crash down from multiple breaches in the ceiling.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $stress gte $stressmax>>
 	It's too much for you. You pass out.
@@ -144,9 +157,10 @@ You are in the old sewers. Torrents of water crash down from multiple breaches i
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>><<set _hideOption to true>>
 		<br><br>
@@ -160,16 +174,19 @@ You are in the old sewers. Torrents of water crash down from multiple breaches i
 	<</if>>
 	<<link [[Wet tunnel (0:05)|Sewers Lake]]>><<pass 5>><</link>>
 	<br>
-	<<link [[Swim with the current (0:01)|Sewers Industrial]]>><<pass 1>><<water>><</link>>
+	<<if $nextPassageCheck is "Sewers Industrial">>
+		<span class="nextLink"><<link [[Swim with the current|Sewers Industrial]]>><<pass 5>><<water>><</link>></span>
+	<<else>>
+		<<link [[Swim with the current (0:01)|Sewers Industrial]]>><<pass 1>><<water>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
-<<set $eventskip to 0>>
 
 :: Sewers Waterfall Hide
 
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 <<set $sewerschased to 0>>
-<<set $sewersevent to random(5, 12)>>
+<<set $sewersevent to random(5,12)>>
 <<npc Morgan>><<person1>>You hide behind the waterfalls. The noise masks the sound of Morgan's footsteps, but you see their shadow cast on the stone floor. You crouch and creep around the pillar of water, keeping it between you and where you hope Morgan walks. The shadow retracts as Morgan leaves. You're safe for now.
 <<lstress>><<stress -6>>
 <br><br>
@@ -178,9 +195,10 @@ You are in the old sewers. Torrents of water crash down from multiple breaches i
 
 :: Sewers Lake
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerslake">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerslake">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in a cavern near the old sewers, beside a pool of water. The pool stretches into darkness.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewersantiquecrystal isnot 1>>
 	A rough crystal lies washed up on the shore.
@@ -197,9 +215,10 @@ You are in a cavern near the old sewers, beside a pool of water. The pool stretc
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -215,10 +234,13 @@ You are in a cavern near the old sewers, beside a pool of water. The pool stretc
 		<<link [[Take the crystal|Sewers Lake]]>><<arousal 600>><<set $sewersantiquecrystal to 1>><<set $antiquemoney += 200>><<museumAntiqueStatus "antiquecrystal" "found">><</link>><<garousal>>
 		<br><br>
 	<</if>>
-	<<link [[Wet tunnel (0:05)|Sewers Waterfall]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Waterfall">>
+		<span class="nextLink"><<link [[Wet tunnel (0:05)|Sewers Waterfall]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Wet tunnel (0:05)|Sewers Waterfall]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
-<<set $eventskip to 0>>
 
 :: Sewers Lake Cylinder
 
@@ -232,9 +254,10 @@ It looks like a charge for your pepper spray, but with an exposed computer chip
 
 :: Sewers Scrap
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersscrap">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersscrap">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. The tunnel is full of metal scrap.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $stress gte $stressmax>>
 	It's too much for you. You pass out.
@@ -243,9 +266,10 @@ You are in the old sewers. The tunnel is full of metal scrap.
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>><<set _hideOption to true>>
 		<br><br>
@@ -257,7 +281,11 @@ You are in the old sewers. The tunnel is full of metal scrap.
 		<<link [[Hide under scrap|Sewers Scrap Hide]]>><</link>>
 		<br>
 	<</if>>
-	<<link [[Tunnel filled with litter (0:05)|Sewers Residential]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Residential">>
+		<span class="nextLink"><<link [[Tunnel filled with litter (0:05)|Sewers Residential]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with litter (0:05)|Sewers Residential]]>><<pass 5>><</link>>
+	<</if>>
 	<br>
 	<<link [[Tunnel filled with sculptures (0:05)|Sewers Workshop]]>><<pass 5>><</link>>
 	<br><br>
@@ -267,7 +295,7 @@ You are in the old sewers. The tunnel is full of metal scrap.
 
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 <<set $sewerschased to 0>>
-<<set $sewersevent to random(5, 12)>>
+<<set $sewersevent to random(5,12)>>
 <<npc Morgan>><<person1>>You hide beneath some scrap and peek through a small hole. Morgan enters the tunnel, sweeping <<his>> gaze over the metal as <<he>> walks. <<He>> stops near you, has a loud sniff, but then moves on. You're safe for now.
 <<lstress>><<stress -6>>
 <br><br>
@@ -276,9 +304,10 @@ You are in the old sewers. The tunnel is full of metal scrap.
 
 :: Sewers Wood
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerswood">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerswood">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. Decaying logs litter the tunnel.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $stress gte $stressmax>>
 	It's too much for you. You pass out.
@@ -287,9 +316,10 @@ You are in the old sewers. Decaying logs litter the tunnel.
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>><<set _hideOption to true>>
 		<br><br>
@@ -303,7 +333,11 @@ You are in the old sewers. Decaying logs litter the tunnel.
 	<</if>>
 	<<link [[Tunnel covered in webs (0:05)|Sewers Webs]]>><<pass 5>><</link>>
 	<br>
-	<<link [[Tunnel filled with litter (0:05)|Sewers Residential]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Residential">>
+		<span class="nextLink"><<link [[Tunnel filled with litter (0:05)|Sewers Residential]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with litter (0:05)|Sewers Residential]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -311,7 +345,7 @@ You are in the old sewers. Decaying logs litter the tunnel.
 
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 <<set $sewerschased to 0>>
-<<set $sewersevent to random(5, 12)>>
+<<set $sewersevent to random(5,12)>>
 <<if $rng gte 51>>
 	<<npc Morgan>><<person1>>You crawl into a hollow log. Morgan enters the tunnel, creeping between the decaying wood. <<He>> disappears from view, and a few moments later you peek out. You're safe for now.
 	<<lstress>><<stress -6>>
@@ -326,9 +360,10 @@ You are in the old sewers. Decaying logs litter the tunnel.
 
 :: Sewers Webs
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerswebs">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewerswebs">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. The walls are covered in huge spider webs.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewersantiquecandlestick isnot 1>>
 	An antique candlestick is suspended in one.
@@ -341,9 +376,10 @@ You are in the old sewers. The walls are covered in huge spider webs.
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -355,7 +391,11 @@ You are in the old sewers. The walls are covered in huge spider webs.
 		<<link [[Take the candlestick|Sewers Candlestick]]>><</link>>
 		<br>
 	<</if>>
-	<<link [[Tunnel filled with wood (0:05)|Sewers Wood]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Wood">>
+		<span class="nextLink"><<link [[Tunnel filled with wood (0:05)|Sewers Wood]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with wood (0:05)|Sewers Wood]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -375,9 +415,10 @@ You reach into the web and tug out the candlestick.
 
 :: Sewers Shrooms
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersshrooms">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersshrooms">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. The walls and floor here are covered in fungus. Some of the mushrooms are larger than you.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewersantiquedildo isnot 1>>
 	A strange antique glints from behind several mushrooms. You'll need to squeeze through to reach.
@@ -390,9 +431,10 @@ You are in the old sewers. The walls and floor here are covered in fungus. Some
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -404,7 +446,11 @@ You are in the old sewers. The walls and floor here are covered in fungus. Some
 		<<link [[Take the antique|Sewers Dildo]]>><</link>>
 		<br>
 	<</if>>
-	<<link [[Muddy tunnel (0:05)|Sewers Mud]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Mud">>
+		<span class="nextLink"><<link [[Muddy tunnel (0:05)|Sewers Mud]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Muddy tunnel (0:05)|Sewers Mud]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -423,9 +469,10 @@ You squeeze out of the mushroom forest and sneeze. You feel warm.
 
 :: Sewers Hole
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewershole">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewershole">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in a cavern at the edge of the old sewers. A gaping pit has opened in the ground, dropping into an abyss. You can't see the other side.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewersantiquehorn isnot 1>>
 	A white horn sits atop a pillar several metres away from the edge. A thin walkway leads to it. You should be able to cross, as long as you can stay focused.
@@ -440,9 +487,10 @@ A breeze emerges from the pit. It makes your <<genitals 1>> tingle.
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -454,7 +502,11 @@ A breeze emerges from the pit. It makes your <<genitals 1>> tingle.
 		<<link [[Take the antique|Sewers Horn]]>><<arousal 1800>><</link>><<ggarousal>>
 		<br>
 	<</if>>
-	<<link [[Ruined tunnel (0:05)|Sewers Ruins]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Ruins">>
+		<span class="nextLink"><<link [[Ruined tunnel (0:05)|Sewers Ruins]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Ruined tunnel (0:05)|Sewers Ruins]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -484,11 +536,12 @@ A breeze emerges from the pit. It makes your <<genitals 1>> tingle.
 
 :: Sewers Algae
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersalgae">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersalgae">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. You can't walk too fast, lest you slip on the algae covering the walls and floor.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
-<<if $smuggler_location is "sewer" and $smuggler_timer is 0 and $daystate is "night" and $hour gte 18>>
+<<if $smuggler_location is "sewer" and $smuggler_timer is 0 and $daystate is "night" and $hour gte 18 and !$possessed>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		There's a fire burning beside a stool. Looks like someone left in a hurry. <span class="gold">Perhaps they're just hiding from Morgan.</span>
 		<br><br>
@@ -503,9 +556,10 @@ You are in the old sewers. You can't walk too fast, lest you slip on the algae c
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>><<set _hideOption to true>>
 		<br><br>
@@ -517,7 +571,7 @@ You are in the old sewers. You can't walk too fast, lest you slip on the algae c
 		<<link [[Hide in the algae|Sewers Algae Hide]]>><</link>>
 		<br>
 	<</if>>
-	<<if $smuggler_location is "sewer" and $smuggler_timer is 0 and $daystate is "night" and $hour gte 18>>
+	<<if $smuggler_location is "sewer" and $smuggler_timer is 0 and $daystate is "night" and $hour gte 18 and !$possessed>>
 		<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<else>>
 			<<smugglerdifficultyactions>>
@@ -525,7 +579,11 @@ You are in the old sewers. You can't walk too fast, lest you slip on the algae c
 	<</if>>
 	<<link [[Muddy tunnel (0:05)|Sewers Mud]]>><<pass 5>><</link>>
 	<br>
-	<<link [[Tunnel filled with detritus (0:05)|Sewers Industrial]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Industrial">>
+		<span class="nextLink"><<link [[Tunnel filled with detritus (0:05)|Sewers Industrial]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with detritus (0:05)|Sewers Industrial]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -533,7 +591,7 @@ You are in the old sewers. You can't walk too fast, lest you slip on the algae c
 
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 <<set $sewerschased to 0>>
-<<set $sewersevent to random(5, 12)>>
+<<set $sewersevent to random(5,12)>>
 <<if $rng gte 51>>
 	<<npc Morgan>><<person1>>You crawl beneath a pile of algae, just before Morgan enters the tunnel. <<He>> almost steps on you, but doesn't notice. You're safe for now.
 	<<lstress>><<stress -6>>
@@ -548,9 +606,10 @@ You are in the old sewers. You can't walk too fast, lest you slip on the algae c
 
 :: Sewers Mud
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersmud">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersmud">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. You're up to your ankles in mud.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $stress gte $stressmax>>
 	It's too much for you. You pass out.
@@ -559,9 +618,10 @@ You are in the old sewers. You're up to your ankles in mud.
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>><<set _hideOption to true>>
 		<br><br>
@@ -577,7 +637,11 @@ You are in the old sewers. You're up to your ankles in mud.
 	<br>
 	<<link [[Algae-coated tunnel (0:05)|Sewers Algae]]>><<pass 5>><</link>>
 	<br>
-	<<link [[Tunnel filled with rubbish (0:05)|Sewers Commercial]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Commercial">>
+		<span class="nextLink"><<link [[Tunnel filled with rubbish (0:05)|Sewers Commercial]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with rubbish (0:05)|Sewers Commercial]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -585,7 +649,7 @@ You are in the old sewers. You're up to your ankles in mud.
 
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 <<set $sewerschased to 0>>
-<<set $sewersevent to random(5, 12)>>
+<<set $sewersevent to random(5,12)>>
 <<if $rng gte 51>>
 	<<npc Morgan>><<person1>>The mud is deeper in places. You lie in one such place and await Morgan's arrival. <<He>> sloshes through. "Where are you <<charles>>," <<he>> says. "I heard you." <<He>> passes through. You're safe for now.
 	<<lstress>><<stress -6>>
@@ -600,9 +664,10 @@ You are in the old sewers. You're up to your ankles in mud.
 
 :: Sewers Ruins
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersruins">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersruins">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. The tunnels have collapsed here, revealing ancient stonework. A strange breeze blows.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $stress gte $stressmax>>
 	It's too much for you. You pass out.
@@ -611,9 +676,10 @@ You are in the old sewers. The tunnels have collapsed here, revealing ancient st
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>><<set _hideOption to true>>
 		<br><br>
@@ -629,7 +695,11 @@ You are in the old sewers. The tunnels have collapsed here, revealing ancient st
 	<br>
 	<<link [[Follow the breeze (0:05)|Sewers Hole]]>><<pass 5>><</link>>
 	<br>
-	<<link [[Tunnel filled with rubbish (0:05)|Sewers Commercial]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Commercial">>
+		<span class="nextLink"><<link [[Tunnel filled with rubbish (0:05)|Sewers Commercial]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with rubbish (0:05)|Sewers Commercial]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -637,8 +707,8 @@ You are in the old sewers. The tunnels have collapsed here, revealing ancient st
 
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 <<set $sewerschased to 0>>
-<<set $sewersevent to random(5, 12)>>
-<<npc Morgan>><<person1>>You climb into the remains on an ancient building and crouch. Morgan walks by, <<his>> head scanning this way and that. "Insolent child," <<he>> says. "<<if $pronoun is "m">>Daddy<<else>>Mummy<</if>> has needs." <<He>> passes through. You're safe for now.
+<<set $sewersevent to random(5,12)>>
+<<npc Morgan>><<person1>>You climb into the remains on an ancient building and crouch. Morgan walks by, <<his>> head scanning this way and that. "Insolent child," <<he>> says. "<<Mummy>> has needs." <<He>> passes through. You're safe for now.
 <<lstress>><<stress -6>>
 <br><br>
 <<endevent>>
@@ -646,9 +716,10 @@ You are in the old sewers. The tunnels have collapsed here, revealing ancient st
 
 :: Sewers Rubble
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersrubble">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersrubble">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. Rubble is strewn throughout this tunnel. The stone is different to that which makes up the walls and floor.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $stress gte $stressmax>>
 	It's too much for you. You pass out.
@@ -657,9 +728,10 @@ You are in the old sewers. Rubble is strewn throughout this tunnel. The stone is
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>><<set _hideOption to true>>
 		<br><br>
@@ -673,7 +745,11 @@ You are in the old sewers. Rubble is strewn throughout this tunnel. The stone is
 	<</if>>
 	<<link [[Ruined tunnel (0:05)|Sewers Ruins]]>><<pass 5>><</link>>
 	<br>
-	<<link [[Tunnel filled with detritus (0:05)|Sewers Industrial]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Industrial">>
+		<span class="nextLink"><<link [[Tunnel filled with detritus (0:05)|Sewers Industrial]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with detritus (0:05)|Sewers Industrial]]>><<pass 5>><</link>>
+	<</if>>
 	<br><br>
 <</if>>
 
@@ -681,7 +757,7 @@ You are in the old sewers. Rubble is strewn throughout this tunnel. The stone is
 
 <<effects>><<set $location to "sewers">><<set $outside to 0>>
 <<set $sewerschased to 0>>
-<<set $sewersevent to random(5, 12)>>
+<<set $sewersevent to random(5,12)>>
 <<if $rng gte 51>>
 	<<npc Morgan>><<person1>>You hide behind the rubble. Morgan enters the tunnel. <<He>> searches behind some of the rubble, but becomes impatient and walks away, babbling. You're safe for now.
 	<<lstress>><<stress -6>>
@@ -696,9 +772,10 @@ You are in the old sewers. Rubble is strewn throughout this tunnel. The stone is
 
 :: Sewers Workshop
 
-<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersworkshop">>
+<<effects>><<set $location to "sewers">><<set $outside to 0>><<set $bus to "sewersworkshop">><<getTarget true>>
 <<set $sewersevent -= 1>>
 You are in the old sewers. You are surrounded by metal scrap, twisted into a parody of famous sculptures. There are several tables covered in tools. A chute is built into one of the walls, leading down.
+<<wPersist>><<wHunt "sewers">>
 <br><br>
 <<if $sewersantiquewatch isnot 1>>
 	You hear a faint ticking.
@@ -711,9 +788,10 @@ You are in the old sewers. You are surrounded by metal scrap, twisted into a par
 	<<sewerspassout>>
 <<elseif $sewerschased is 1 and $sewerschasedstep lte 0>>
 	<<morgancaught>>
-<<elseif $sewersevent lte 0 and $sewerschased isnot 1>>
+<<elseif ($sewersevent lte 0 or $wraith and $wraith.hunt and $eventforced) and $sewerschased isnot 1 and $eventskip is 0>>
 	<<eventssewers>>
 <<else>>
+	<<set $eventskip to 0>>
 	<<if $sewerschased is 1 and $sewerschasedstep gte 0>>
 		<<morganhunt>>
 		<br><br>
@@ -725,7 +803,11 @@ You are in the old sewers. You are surrounded by metal scrap, twisted into a par
 		<<link [[Investigate the ticking|Sewers Ticking]]>><</link>>
 		<br><br>
 	<</if>>
-	<<link [[Tunnel filled with scrap (0:05)|Sewers Scrap]]>><<pass 5>><</link>>
+	<<if $nextPassageCheck is "Sewers Scrap">>
+		<span class="nextLink"><<link [[Tunnel filled with scrap (0:05)|Sewers Scrap]]>><<pass 5>><</link>></span>
+	<<else>>
+		<<link [[Tunnel filled with scrap (0:05)|Sewers Scrap]]>><<pass 5>><</link>>
+	<</if>>
 	<br>
 	<<link [[Drop down the chute|Sewers Chute]]>><</link>>
 	<br><br>
diff --git a/game/overworld-underground/loc-sewers/widgets.twee b/game/overworld-underground/loc-sewers/widgets.twee
index 8f418542c7161d33d148e411c5d3a0a0fe329442..32d10eea223f6637c9f57d7ea112d72d326cb289 100644
--- a/game/overworld-underground/loc-sewers/widgets.twee
+++ b/game/overworld-underground/loc-sewers/widgets.twee
@@ -114,9 +114,11 @@
 		<<link [[Next|Drain Tentacles]]>><<set $molestationstart to 1>><</link>>
 		<br>
 	<<elseif $rng gte 60 and $hallucinations gte 2 and $slimedisable is "f">>
-		
+
 		A torrent of water rushes through a pipe to your right, colliding with you and knocking you to the ground.
-		<br><<water>><br>
+		<br>
+		<<water>>
+		<br>
 
 		You feel a weight on your groin. The water passes, leaving a living slime sat atop you.
 		<br><br>
@@ -124,15 +126,19 @@
 		<<link [[Next|Drain Struggle]]>><<set $struggle_start to 1>><</link>>
 		<br>
 	<<elseif $rng gte 30>>
-		
+
 		A torrent of water rushes through a pipe to your right, colliding with you and knocking you into the canal!
-		<br><<water>><br>
+		<br>
+		<<water>>
+		<br>
 		<<set $worn.over_upper.integrity -= 10>><<set $worn.over_lower.integrity -= 10>><<set $worn.upper.integrity -= 10>><<set $worn.lower.integrity -= 10>><<set $worn.under_lower.integrity -= 10>><<set $pain += 5>>
 		<<link [[Next|Drain Water]]>><</link>>
 	<<else>>
-		
+
 		A torrent of water rushes through a pipe to your right, colliding with you and knocking you into the canal!
-		<br><<water>><br>
+		<br>
+		<<water>>
+		<br>
 		<<set $worn.over_upper.integrity -= 10>><<set $worn.over_lower.integrity -= 10>><<set $worn.upper.integrity -= 10>><<set $worn.lower.integrity -= 10>><<set $worn.under_lower.integrity -= 10>><<set $pain += 5>>
 		You are sucked to the drain floor, and through a gap in the concrete. You are pulled deeper through the dark until you emerge in a dim light. The water leaves you sprawled on the stone floor.
 		<br><br>
@@ -210,7 +216,7 @@
 
 <<widget "morgancaught">>
 	<<set $sewerschased to 0>>
-	<<npc Morgan>><<person1>>Morgan lurches from the darkness, smiling in anger. "<<charles>> my sweet," <<he>> says. "Come home with <<if $pronoun is "m">>daddy<<else>>mummy<</if>>."
+	<<npc Morgan>><<person1>>Morgan lurches from the darkness, smiling in anger. "<<charles>> my sweet," <<he>> says. "Come home with <<mummy>>."
 	<<morganoptions>>
 <</widget>>
 
@@ -303,79 +309,74 @@
 
 <<widget "destinationsewers">>
 	<<switch $bus>>
-	<<case "sewersresidential">>
-		<<link [[Next|Sewers Residential]]>><<endevent>><</link>>
-	<<case "sewerscommercial">>
-		<<link [[Next|Sewers Commercial]]>><<endevent>><</link>>
-	<<case "sewersindustrial">>
-		<<link [[Next|Sewers Industrial]]>><<endevent>><</link>>
-	<<case "sewersalgae">>
-		<<link [[Next|Sewers Algae]]>><<endevent>><</link>>
-	<<case "sewersworkshop">>
-		<<link [[Next|Sewers Workshop]]>><<endevent>><</link>>
-	<<case "sewerswood">>
-		<<link [[Next|Sewers Wood]]>><<endevent>><</link>>
-	<<case "sewerswebs">>
-		<<link [[Next|Sewers Webs]]>><<endevent>><</link>>
-	<<case "sewersruins">>
-		<<link [[Next|Sewers Ruins]]>><<endevent>><</link>>
-	<<case "sewersshrooms">>
-		<<link [[Next|Sewers Shrooms]]>><<endevent>><</link>>
-	<<case "sewersrubble">>
-		<<link [[Next|Sewers Rubble]]>><<endevent>><</link>>
-	<<case "sewershole">>
-		<<link [[Next|Sewers Hole]]>><<endevent>><</link>>
-	<<case "sewersscrap">>
-		<<link [[Next|Sewers Scrap]]>><<endevent>><</link>>
-	<<case "sewersmud">>
-		<<link [[Next|Sewers Mud]]>><<endevent>><</link>>
-	<<case "sewerswaterfall">>
-		<<link [[Next|Sewers Waterfall]]>><<endevent>><</link>>
-	<<case "sewerslake">>
-		<<link [[Next|Sewers Lake]]>><<endevent>><</link>>
+		<<case "sewersresidential">>
+			<<link [[Next|Sewers Residential]]>><<endevent>><</link>>
+		<<case "sewerscommercial">>
+			<<link [[Next|Sewers Commercial]]>><<endevent>><</link>>
+		<<case "sewersindustrial">>
+			<<link [[Next|Sewers Industrial]]>><<endevent>><</link>>
+		<<case "sewersalgae">>
+			<<link [[Next|Sewers Algae]]>><<endevent>><</link>>
+		<<case "sewersworkshop">>
+			<<link [[Next|Sewers Workshop]]>><<endevent>><</link>>
+		<<case "sewerswood">>
+			<<link [[Next|Sewers Wood]]>><<endevent>><</link>>
+		<<case "sewerswebs">>
+			<<link [[Next|Sewers Webs]]>><<endevent>><</link>>
+		<<case "sewersruins">>
+			<<link [[Next|Sewers Ruins]]>><<endevent>><</link>>
+		<<case "sewersshrooms">>
+			<<link [[Next|Sewers Shrooms]]>><<endevent>><</link>>
+		<<case "sewersrubble">>
+			<<link [[Next|Sewers Rubble]]>><<endevent>><</link>>
+		<<case "sewershole">>
+			<<link [[Next|Sewers Hole]]>><<endevent>><</link>>
+		<<case "sewersscrap">>
+			<<link [[Next|Sewers Scrap]]>><<endevent>><</link>>
+		<<case "sewersmud">>
+			<<link [[Next|Sewers Mud]]>><<endevent>><</link>>
+		<<case "sewerswaterfall">>
+			<<link [[Next|Sewers Waterfall]]>><<endevent>><</link>>
+		<<case "sewerslake">>
+			<<link [[Next|Sewers Lake]]>><<endevent>><</link>>
 	<</switch>>
 	<br>
+	<<set $eventskip to 1>>
 <</widget>>
 
 <<widget "destinationsewersrandom">>
 	<<set $rng to random(1, 100)>>
 	<<if $rng gte 90>>
 		<<link [[Next|Sewers Wood]]>><</link>>
-		<br>
 	<<elseif $rng gte 80>>
 		<<link [[Next|Sewers Webs]]>><</link>>
-		<br>
 	<<elseif $rng gte 70>>
 		<<link [[Next|Sewers Algae]]>><</link>>
-		<br>
 	<<elseif $rng gte 60>>
 		<<link [[Next|Sewers Rubble]]>><</link>>
-		<br>
 	<<elseif $rng gte 50>>
 		<<link [[Next|Sewers Waterfall]]>><</link>>
-		<br>
 	<<elseif $rng gte 40>>
 		<<link [[Next|Sewers Hole]]>><</link>>
-		<br>
 	<<elseif $rng gte 30>>
 		<<link [[Next|Sewers Lake]]>><</link>>
-		<br>
 	<<elseif $rng gte 20>>
 		<<link [[Next|Sewers Ruins]]>><</link>>
-		<br>
 	<<elseif $rng gte 10>>
 		<<link [[Next|Sewers Shrooms]]>><</link>>
-		<br>
 	<<else>>
 		<<link [[Next|Sewers Mud]]>><</link>>
-		<br>
 	<</if>>
+	<br>
+	<<set $eventskip to 1>>
 <</widget>>
 
 <<widget "eventssewers">>
-	<<set $sewersevent to random(5, 12)>>
+	<<set $sewersevent to random(5,12)>>
 	<<set $rng to random(1, 100)>>
-	<<if $rng gte 81>><!-- Modified for Beast People -->
+	<<if $wraith and $eventforced and ($moonstate is "evening" and $hour gte 21 or $moonstate is "morning" and $hour lt 6) and !_wraithEventSkipped>>
+		<<wraithEventSewers>>
+	<<elseif $rng gte 81>><!-- Modified for Beast People -->
 		<<beastNEWinit 1 lizard>>
 		<<if $monster is 1 or $bestialitydisable is "f">>
 			An enormous <<beasttype>> stalks out of the darkness in front of you! <<if $monster is 1>><<bHe>> licks <<bhis>> lips.<<else>>Its mouth is wide open.<</if>>
@@ -395,23 +396,35 @@
 		You hear a click as your feet sink into the ground. A metal shackle clamps round your ankle. The sound echoes down the tunnel. A chain ties it to the ground.
 		<<gstress>><<stress 6>>
 		<br><br>
-		<<set $sewerschased to 1>>
-		<<set $sewerschasedstep to 3>>
-		Morgan's voice echoes in response. "I'm coming <<charles>>," followed by a clatter as the ladders leading up to the drains retract. <span class="red">You are being hunted.</span>
-		<br><br>
-		<<set $phase to 0>>
-		<<link [[Struggle|Sewers Shackle Struggle]]>><</link>><<physiquedifficulty 10000 20000>>
-		<br>
-		<<set $skulduggerydifficulty to 600>>
-		<<link [[Pick the lock|Sewers Shackle Pick]]>><</link>><<skulduggerydifficulty>>
-		<br>
+		<<if $wraith and $wraith.hunt>>
+			<<pass 5>><<set $wraith.hunt++>>
+			It takes you a few minutes to get your feet free. You feel whaever's hunting you draw closer.
+			<br><br>
+			<<destinationsewers>>
+		<<else>>
+			<<set $sewerschased to 1>>
+			<<set $sewerschasedstep to 3>>
+			Morgan's voice echoes in response. "I'm coming <<charles>>," followed by a clatter as the ladders leading up to the drains retract. <span class="red">You are being hunted.</span>
+			<br><br>
+			<<set $phase to 0>>
+			<<link [[Struggle|Sewers Shackle Struggle]]>><</link>><<physiquedifficulty 10000 20000>>
+			<br>
+			<<set $skulduggerydifficulty to 600>>
+			<<link [[Pick the lock|Sewers Shackle Pick]]>><</link>><<skulduggerydifficulty>>
+			<br>
+		<</if>>
 	<<elseif $rng gte 61>>
-		<<set $sewerschasedstep to 3>>
-		<<set $sewerschased to 1>>
 		You walk through a rope suspended a foot off the ground. A log hurtles out of the dark and collides with you, knocking you to the ground and leaving you winded.
 		<<gtrauma>><<gstress>><<gpain>><<trauma 6>><<stress 6>><<pain 6>>
 		<br><br>
-		"Can you hear me, <<charles>>?" Morgan's voice rings out. "Are you hurt? Stay where you are." <span class="red">You are being hunted</span>
+		<<if $wraith and $wraith.hunt>>
+			<<set $wraith.hunt++>>
+			<<tearful>> you stand up. Nothing responds to you, but you still feel the presence of whatever's hunting you grow stronger.
+		<<else>>
+			<<set $sewerschasedstep to 3>>
+			<<set $sewerschased to 1>>
+			"Can you hear me, <<charles>>?" Morgan's voice rings out. "Are you hurt? Stay where you are." <span class="red">You are being hunted.</span>
+		<</if>>
 		<br><br>
 		<<destinationsewers>>
 	<<elseif $rng gte 56 and $slimedisable is "f">>
@@ -599,70 +612,47 @@
 		<br><br>
 		<<destinationsewers>>
 	<<else>>
-		<<set $sewerschasedstep to 3>>
-		<<set $sewerschased to 1>>
-		A scream echoes through the tunnels. <span class="red">You are being hunted</span>
+		<<if $wraith and $wraith.hunt>>
+			A scream echoes through the tunnels. It doesn't sound like Morgan.
+			<<set $wraith.hunt++>>
+		<<else>>
+			<<set $sewerschasedstep to 3>>
+			<<set $sewerschased to 1>>
+			A scream echoes through the tunnels. <span class="red">You are being hunted.</span>
+		<</if>>
 		<<gstress>><<stress 6>>
 		<br><br>
 		<<destinationsewers>>
 	<</if>>
+	<<if $eventforced>>
+		<<unset $eventforced>>
+	<</if>>
 <</widget>>
 
 :: Widgets Destination Drain [widget]
 
 <<widget "destinationdrain">>
 	<<switch $bus>>
-	<<case "nightingale">>
-		<<commercialdrainquick>>
-	<<case "domus">>
-		<<residentialdrainquick>>
-	<<case "elk">>
-		<<industrialdrainquick>>
-	<<case "high">>
-		<<commercialdrainquick>>
-	<<case "starfish">>
-		<<commercialdrainquick>>
-	<<case "barb">>
-		<<residentialdrainquick>>
-	<<case "connudatus">>
-		<<commercialdrainquick>>
-	<<case "wolf">>
-		<<residentialdrainquick>>
-	<<case "harvest">>
-		<<industrialdrainquick>>
-	<<case "oxford">>
-		<<commercialdrainquick>>
-	<<case "danube">>
-		<<residentialdrainquick>>
-	<<case "mer">>
-		<<industrialdrainquick>>
-	<<case "cliff">>
-		<<commercialdrainquick>>
-	<<case "industrial">>
-		<<industrialdrainquick>>
-	<<case "residential">>
-		<<residentialdrainquick>>
-	<<case "commercial">>
-		<<commercialdrainquick>>
-	<<case "park">>
-		<<commercialdrainquick>>
+		<<case "nightingale" "high" "starfish" "connudatus" "oxford" "cliff" "commercial" "park">>
+			<<commercialdrainquick>>
+		<<case "domus" "barb" "wolf" "danube" "residential">>
+			<<residentialdrainquick>>
+		<<case "elk" "harvest" "mer" "industrial">>
+			<<industrialdrainquick>>
 	<</switch>>
 	<br>
 <</widget>>
 
 <<widget "destinationstormdrain">>
-<<switch $bus>>
-<<case "residentialdrain">>
-	<<link [[Next|Residential Drain]]>><</link>>
-	<br>
-<<case "commercialdrain">>
-	<<link [[Next|Commercial Drain]]>><</link>>
-	<br>
-<<case "industrialdrain">>
-	<<link [[Next|Industrial Drain]]>><</link>>
-	<br>
-<<default>>
-	<<link [[Next|Drain Exit]]>><</link>>
+	<<switch $bus>>
+		<<case "residentialdrain">>
+			<<link [[Next|Residential Drain]]>><</link>>
+		<<case "commercialdrain">>
+			<<link [[Next|Commercial Drain]]>><</link>>
+		<<case "industrialdrain">>
+			<<link [[Next|Industrial Drain]]>><</link>>
+		<<default>>
+			<<link [[Next|Drain Exit]]>><</link>>
+	<</switch>>
 	<br>
-<</switch>>
 <</widget>>
\ No newline at end of file
diff --git a/game/overworld-underground/loc-underground/events.twee b/game/overworld-underground/loc-underground/events.twee
index 27aba03c8666dcc2d3b358ec1b6f7a980bd2c1b7..f65ef01f3faca36339b1cc7766e7d25fcee40a86 100644
--- a/game/overworld-underground/loc-underground/events.twee
+++ b/game/overworld-underground/loc-underground/events.twee
@@ -34,7 +34,7 @@
 	The <<person>> recoils from you in pain and hobbles over to where <<he>> entered. <<He>> slams <<his>> fist into the door.
 	"Let me out," <<he>> shouts. "You locked me in with a psycho." The door opens and <<he>> leaves.
 	<br><br>
-	
+
 	<<endevent>>
 	<<generate1>><<person1>>
 	<<if $undergroundbrothel.water gte 1>>
@@ -45,15 +45,15 @@
 		"Fine. We'll see how stubborn you are without water." <<He>> slams the door shut.
 		<<set $undergroundbrothel.water to 1>>
 	<</if>>
-	<<undergroundReturnToCell>>
+	<<undergroundReturnToCell "skip">>
 
 <<elseif $enemyarousal gte $enemyarousalmax>>
 	<<ejaculation>><<set $forcedprostitutionstat += 1>><<fameprostitution 1>>
 	Satisfied, <<he>> leaves you on the mattress and exits the way <<he>> came in.
 	<<undergroundReturnToCell false>>
 
-	<<generate1>><<person1>>
 	<<if $undergroundbrothel.water gte 22>>
+		<<generate1>><<person1>>
 		The door opens again, and a <<person>> stands in the doorway. "Good <<girl>>," <<he>> says, smiling.
 		<<if $undergroundbrothel.water gte 6>>
 			<<if $NPCList[0].penis isnot "none">>
@@ -65,16 +65,16 @@
 				"We'll turn your tap back on. You're gonna make us lots of money." <<He>> shuts the door, once more plunging you into darkness.
 				<<set $undergroundbrothel.water to 0>>
 				<br><br>
-				<<link [[Next|Underground Cell]]>><</link>>
+				<<link [[Next|Underground Cell]]>><<set $eventskip to 1>><</link>>
 			<</if>>
 		<<else>> <!-- unreachable because water is always greater than 6, if water is greater than 22. -->
 			"We're not gonna give you back your water just yet, you haven't suffered enough for your disobedience. Keep up the good work though."
 			<<He>> slams the door shut.
 			<br><br>
-			<<link [[Next|Underground Cell]]>><</link>>
+			<<link [[Next|Underground Cell]]>><<set $eventskip to 1>><</link>>
 		<</if>>
 	<<else>>
-		<<link [[Next|Underground Cell]]>><</link>>
+		<<link [[Next|Underground Cell]]>><<set $eventskip to 1>><</link>>
 	<</if>>
 <</if>>
 
@@ -114,7 +114,7 @@
 	<<set $undergroundbrothel.water to 0>>
 <</if>>
 The door slams shut behind <<him>>, plunging you into darkness.
-<<undergroundReturnToCell>>
+<<undergroundReturnToCell "skip">>
 
 :: Underground Dance Intro
 <<set $outside to 0>><<set $location to "underground">><<effects>>
@@ -200,19 +200,44 @@ All eyes are on you as you are led up to the central platform. There's music pla
 	You're too badly beaten to put up a fight. The <<person>> drags your helpless body from the cell.
 	<br><br>
 
+	<<endcombat>>
+	<<set $phase to $phaselast>>
+	
 	<<if $phase is 1>>
-		<<link [[Next|Underground Dance Intro]]>><</link>>
+		<<if $undergroundbrothel.robin>>
+			<<link [[Next|Underground Robin Dice Intro]]>><</link>>
+		<<else>>
+			<<link [[Next|Underground Dance Intro]]>><</link>>
+		<</if>>
 	<<elseif $phase is 2>>
-		<<link [[Next|Underground Presentation]]>><</link>>
+		<<if $undergroundbrothel.robin>>
+			<<if $tentacledisable is "t">>
+				<<link [[Go quietly|Underground Robin Stage Intro]]>><</link>>
+			<<else>>
+				<<link [[Go quietly|Underground Robin Tentacles Intro]]>><</link>>
+			<</if>>
+		<<else>>
+			<<link [[Next|Underground Presentation]]>><</link>>
+		<</if>>
 	<<elseif $phase is 3>>
-		<<link [[Next|Underground Stage Intro]]>><</link>>
+		<<if $undergroundbrothel.robin>>
+			<<link [[Next|Underground Robin Machine Intro]]>><</link>>
+		<<else>>
+			<<link [[Next|Underground Stage Intro]]>><</link>>
+		<</if>>
 	<<elseif $phase is 4>>
-		<<link [[Next|Underground Film Intro]]>><</link>>
+		<<if $undergroundbrothel.robin>>
+			<<link [[Go quietly|Underground Robin Kiss Intro]]>><</link>>
+		<<else>>
+			<<link [[Next|Underground Film Intro]]>><</link>>
+		<</if>>
 	<<elseif $phase is 5>>
-		<<link [[Next|Underground Hunt Intro]]>><</link>>
+		<<if $undergroundbrothel.robin>>
+			<<link [[Next|Underground Robin Hunt Intro]]>><</link>>
+		<<else>>
+			<<link [[Next|Underground Hunt Intro]]>><</link>>
+		<</if>>
 	<</if>>
-	<br>
-	<<endcombat>>
 <</if>>
 
 :: Underground Dance
@@ -492,7 +517,6 @@ You are led once more to the stage, where the crowd awaits. <<covered>>
 	<br>
 
 <<else>>
-	You are led once more to the stage, where the crowd awaits. <<covered>>
 	There's a <<generate1>><<person1>><<person>> already waiting for you. <<He>> takes hold of you leash and pulls you closer while looking at the audience.
 	"What shall I do with <<phim>> my friends?"
 	<br><br>
@@ -641,7 +665,7 @@ It looks like you're in a forest clearing.
 <<if $rng gte 51 and $plantdisable is "f" and $tentacledisable is "f" and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>>
 	<<generatePlant1>><<generate2>><<generate3>>
 	<<saveNPC 0 underground_plant>><<saveNPC 1 underground_guard_1>><<saveNPC 2 underground_guard_2>>
-	
+
 	You see a <<person2>><<person>> and a <<person1>><<person "normal">> talking up ahead, with a <<person3>><<person>> nearby smoking while watching the door.
 	The <<person2>><<person>> cuts <<himself>> off as you approach, gesturing to you. "See, <<pshes>> right here. We upheld our end."
 	<br><br>
@@ -653,25 +677,15 @@ It looks like you're in a forest clearing.
 	The <<person>> prances toward you and smiles. "Hey! Do you want to have sex with me?"
 	<br><br>
 
-	<<widget "undergroundplantfakechoice">>
-		"Did you hit your head?" the <<person2>><<person>> grunts. "It doesn't matter if <<pshe>> wants to or not. <<pShes>> yours."
-		<br><br>
-
-		"Oh yeah! I forgot this place worked like that!" The <<person1>><<person>> claps <<his>> hands together and lunges for you.
-		<br><br>
-
-		<<link [[Next|Underground Plant Molestation]]>><<set $molestationstart to 1>><</link>>
-	<</widget>>
-
 	<<set _link to true>>
 	<span id="choice">
 		<<if $deviancy gte 35>>
-			<<link "Yes">><<replace "#choice">><<undergroundplantfakechoice>><</replace>><<run Links.generateLinkNumbers($(".passage"))>><</link>><<deviant3>>
+			<<link "Yes">><<replace "#choice">><<undergroundPlantFakeChoice>><</replace>><<run Links.generateLinkNumbers($(".passage"))>><</link>><<deviant3>>
 		<<else>>
 			<span class="blue">You are not deviant enough to agree to sex with a <<personsimple>>.</span>
 		<</if>>
 		<br>
-		<<link "No">><<replace "#choice">><<undergroundplantfakechoice>><</replace>><<run Links.generateLinkNumbers($(".passage"))>><</link>>
+		<<link "No">><<replace "#choice">><<undergroundPlantFakeChoice>><</replace>><<run Links.generateLinkNumbers($(".passage"))>><</link>>
 	</span>
 
 <<else>>
@@ -682,8 +696,8 @@ It looks like you're in a forest clearing.
 		<<remove_shackle>>
 	<</if>>
 	<br><br>
-	<<generate2>>
 	<<beastNEWinit 1 dog>>
+	<<generate2>>
 	<<person2>> A <<person>> in a waistcoat enters the clearing, holding three <<beasttype 0>>s on leashes.
 	They strain against <<person2>><<him>>, practically pulling <<him>> along. "We're ready," <<he>> says, brandishing a pistol.
 	"First shot, the prey run. Second shot, we hunt!" The crowd cheers. You hear one of the <<victimgirls>> sob.
@@ -698,12 +712,10 @@ It looks like you're in a forest clearing.
 The pistol sounds off, and you run.
 <br><br>
 
-You've barely reached the trees when the second shot rings out.
+You've barely reached the trees when the second shot rings out. You run as fast you can. You hear the <<victimgirls>> scream as they are caught, one by one.
 
 <<if $athleticsSuccess>>
 	<<set $rng to random(1, 100)>>
-
-	You run as fast you can. You hear the <<victimgirls>> scream as they are caught, one by one.
 	Eventually your legs give out and you collapse against a tree. You hear nothing but your beating heart and the wind rustling through leaves.
 	You got away.
 	<<pass 5>>
@@ -713,12 +725,8 @@ You've barely reached the trees when the second shot rings out.
 	<<dungeonescape>>
 
 	<<link [[Next|Forest]]>><<set $forest to 1>><</link>>
-	<br>
-
 <<else>>
-
-	<<if $rng gte 51>><!-- Modified for BeastPeople -->
-		You run as fast you can. You hear the <<victimgirls>> scream as they are caught, one by one.
+	<<if $rng gte 51 and ($monster is 1 or $bestialitydisable is "f")>><!-- Modified for BeastPeople -->
 		You hear something running through the grass behind you, and feel <<print ($monster is 1 ? "hands" : "paws")>> on your back as you are forced to your knees.
 		The <<beasttype 0>> starts humping<<if $NPCList[0].penis isnot "none">>, you feel <<bhis 0>> penis prodding your <<bottom>><</if>>.
 		<br><br>
@@ -728,9 +736,7 @@ You've barely reached the trees when the second shot rings out.
 		<br><br>
 
 		<<link [[Next|Underground Hunt Dog]]>><<set $molestationstart to 1>><</link>>
-		<br>
 	<<else>>
-
 		You run as fast you can. You hear the <<victimgirls>> scream as they are caught, one by one.
 		You hear something running through the grass behind you right before you are tackled to the ground.
 		<br><br>
@@ -744,8 +750,6 @@ You've barely reached the trees when the second shot rings out.
 		<<clearNPC "underground_hunt_1">>
 
 		<<link [[Next|Underground Hunt Molestation]]>><<set $molestationstart to 1>><</link>>
-		<br>
-
 	<</if>>
 <</if>>
 
@@ -1166,7 +1170,7 @@ They leave the room, taking their machine with them. You're once more plunged in
 	<<set $apologised to 1>>
 	<<set _randomtentacles to random(6, 10)>>
 	<<makeAbomination _randomtentacles 6 "vine" "vine" true>>
-	<<set $timer to 5>><<set $plantFame to 0>>
+	<<set $timer to 3>><<set $plantFame to 0>>
 <</if>>
 
 <<if $timer is 3>>
@@ -1394,30 +1398,4 @@ A bush nearby rustles and you tense up. Somebody pops their head out the top. <s
 	<br><br>
 
 	<<link [[Next|Forest]]>><<endevent>><</link>>
-<</if>>
-
-:: Widgets Underground Events [widget]
-
-<<widget "undergroundEscapeForestStart">>
-	<<clotheson>>
-	<<endcombat>>
-
-	A chill runs up your spine, a warning from some primal instinct. <span class="red">Something is hunting you.</span>
-	<<set $foresthunt to 1>><<dungeonescape>>
-	<br><br>
-
-	<<link [[Next|Forest]]>><<set $forest to 40>><</link>>
-<</widget>>
-
-<<widget "undergroundReturnToCell">>
-	<<tearful>> you sit on the mattress.
-	<br><br>
-
-	<<clotheson>>
-	<<endcombat>>
-
-	<<if _args[0] is undefined or _args[0]>>
-		<<link [[Next|Underground Cell]]>><</link>>
-		<br>
-	<</if>>
-<</widget>>
\ No newline at end of file
+<</if>>
\ No newline at end of file
diff --git a/game/overworld-underground/loc-underground/main.twee b/game/overworld-underground/loc-underground/main.twee
index cdfd62b9b8e5288c5ec165654e38193fc133a3bd..05de922e2603906ed58cc99cc9eb98494b2d9dd6 100644
--- a/game/overworld-underground/loc-underground/main.twee
+++ b/game/overworld-underground/loc-underground/main.twee
@@ -1,23 +1,137 @@
+:: Widgets Underground [widget]
+
+<<widget "dungeonescape">>
+	<<if $baileySold>>
+		<<set $baileyReunionScene to "dungeon">>
+	<</if>>
+
+	<<if $whitneyromance is 1>>
+		<<set $whitneyReunionScene to "dungeon">>
+	<</if>>
+
+	<<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
+		<<if $home_gone gte 4 and !$undergroundbrothel.robin>>
+			<<set $robinReunionScene to "dungeon">>
+		<<elseif $undergroundbrothel.robinGone>>
+			<<set $robinReunionScene to "dungeonRobin">>
+		<</if>>
+	<</if>>
+
+	<<if $undergroundbrothel.robin>>
+		<<set $robinmissing to 0>>
+	<</if>>
+
+	<<unset $baileySold>>
+	<<unset $wraithUnderground>>
+	<<set $undergroundbrothelescaped to true>>
+	<<set $undergroundbrothel to {"escape": $undergroundbrothel.escape}>>
+<</widget>>
+
+<<widget "undergroundCellOptions">>
+	<<link [[Rest (1:00)|Underground Cell Rest]]>><<pass 1 hour>><<set $tiredness -= 1000>><</link>><<ltiredness>>
+	<br>
+	<<if $undergroundbrothel.robin and !$undergroundbrothel.robinSpoke>>
+		<<link [[Talk to Robin (0:10)|Underground Cell Robin Talk]]>><<pass 10>><<stress -4>><<trauma -4>><<npcincr Robin trauma -2>><</link>><<lstress>><<ltrauma>><<lrtrauma>>
+		<br>
+	<</if>>
+	<<if $undergroundbrothel.escape is 0>>
+		<<link [[Look for a way out|Underground Cell Look]]>><</link>>
+	<<elseif $undergroundbrothel.escape gte 19>>
+		<<link [[Escape|Underground Escape]]>><</link>>
+	<<elseif $undergroundbrothel.escape gte 18 and $physiquesize lte 12000>>
+		<<link [[Escape|Underground Escape]]>><</link>><<small_text>>
+	<<elseif $undergroundbrothel.escape gte 17 and $physiquesize lte 10000>>
+		<<link [[Escape|Underground Escape]]>><</link>><<small_text>>
+	<<elseif $undergroundbrothel.escape gte 16 and $physiquesize lte 6000>>
+		<<link [[Escape|Underground Escape]]>><</link>><<small_text>>
+	<<else>>
+		<<link [[Dig (1:00)|Underground Cell Dig]]>><<pass 1 hour>><</link>>
+	<</if>>
+	<br>
+	<<link [[Examine the door|Underground Cell Lock]]>><</link>>
+<</widget>>
+
+<<widget "undergroundEscapeForestStart">>
+	<<clotheson>>
+	<<endcombat>>
+
+	A chill runs up your spine, a warning from some primal instinct. <span class="red">Something is hunting you.</span>
+	<<set $foresthunt to 1>><<dungeonescape>>
+	<br><br>
+
+	<<link [[Next|Forest]]>><<set $forest to 40>><</link>>
+<</widget>>
+
+<<widget "undergroundReturnToCell">>
+	<<tearful>> you sit on the mattress.
+	<<if _args[0] is "Robin">>
+		At least Robin got away.
+	<</if>>
+	<br><br>
+
+	<<clotheson>>
+	<<endcombat>>
+
+	<<if _args[0] is "skip">>
+		<<set $eventskip to 1>>
+	<</if>>
+
+	<<if _args[0] is undefined or _args[0]>>
+		<<link [[Next|Underground Cell]]>><</link>>
+		<br>
+	<</if>>
+<</widget>>
+
+<<widget "undergroundPlantFakeChoice">>
+	"Did you hit your head?" the <<person2>><<person>> grunts. "It doesn't matter if <<pshe>> wants to or not. <<pShes>> yours."
+	<br><br>
+
+	"Oh yeah! I forgot this place worked like that!" The <<person1>><<person>> claps <<his>> hands together and lunges for you.
+	<br><br>
+
+	<<link [[Next|Underground Plant Molestation]]>><<set $molestationstart to 1>><</link>>
+<</widget>>
+
 :: Underground Intro
 <<set $outside to 0>><<set $location to "underground">><<effects>>
+<<if $phase is 1>>
+	<<set _withRobin to 1>>
+	<<set _robin to statusCheck("Robin")>>
+	<<npc Robin 1>><<generate2>><<generate3>>
+<</if>>
 
-You are dragged through a door and down a flight of steps. You hear the sound of rushing water.
-At the bottom the <<person>> turns on a torch, revealing an old stone corridor leading away into darkness.
-<<pass 15>>
-<br><br>
+<<if _withRobin>>
+	You and Robin are dragged through a door and down a flight of stairs. You hear the sound of rushing water.
+	At the bottom the <<person2>><<person>> turns on a torch, revealing an old stone corridor leading away into darkness.
+	<br><br>
 
-After walking awhile you come to a metal door.
-The <<person2>><<person>> knocks, and is answered by a thin opening sliding apart near the top. It closes promptly, and the door opens.
-<br><br>
+	After walking awhile you come to a metal door. The <<person2>><<person>> knocks, and is answered by a thin opening sliding apart near the top.
+	It closes promptly, and the door opens.
+	<br><br>
 
-<<endcombat>>
-<<generate1>><<person1>>
-You are forced through the door and to your knees before a <<person>>, who crouches and grabs your neck.
-<<He>> turns your head to examine one side of your face, then the other, then forces your mouth open and looks inside.
-"<<pShe>> will do," <<he>> says, standing up.
+	You are forced through the door and to your knees before a
+	<<generate4>><<person4>><<person>>, who crouches and grabs your neck.
+	<<He>> turns your head to examine one side of your face, then the other, then forces your mouth open and looks inside.
+	"<<pShe>> will do," <<he>> says, standing up. <<He>> then looks at Robin and does the same before making a sly grin in the torchlight.
+	<<person1>>"<<He>>'ll be popular, I can tell."
+<<else>>
+	You are dragged through a door and down a flight of steps. You hear the sound of rushing water.
+	At the bottom the <<person>> turns on a torch, revealing an old stone corridor leading away into darkness.
+	<<pass 15>>
+	<br><br>
+
+	After walking awhile you come to a metal door.
+	The <<person2>><<person>> knocks, and is answered by a thin opening sliding apart near the top. It closes promptly, and the door opens.
+	<br><br>
+
+	<<endcombat>>
+	<<generate1>><<person1>>
+	You are forced through the door and to your knees before a <<person>>, who crouches and grabs your neck.
+	<<He>> turns your head to examine one side of your face, then the other, then forces your mouth open and looks inside.
+	"<<pShe>> will do," <<he>> says, standing up.
+<</if>>
 <br><br>
 
-<<endevent>>
 <<if $worn.neck.collared isnot 1>>
 	<<neckwear 21>>
 	Your neck is freed only briefly. Someone closes something hard and cold around it before you are yanked to your feet and pulled away.
@@ -29,8 +143,23 @@ You are forced through the door and to your knees before a <<person>>, who crouc
 	You feel cold metal clamp around your ankles.
 	<<shackle_feet>>
 <</if>>
-<<generate1>><<person1>>
-A <<person>> holds the other end of your leash. <<He>> leads you towards a door at the far end of the room.
+<<if _withRobin>>
+	<br><br>
+	<<if _robin.dom gte 70>>
+		Robin doesn't make a sound, and in the dim light you can see <<his>> eyes are full of determination.
+		<br><br>
+
+		"A lot of people love the types who need to be broken in," the <<person4>><<person>> chuckles as <<he>> clamps Robin's ankles.
+	<<else>>
+		Robin whimpers. "Get used to it," the <<person4>><<person>> snaps. "You're never leaving this place."
+	<</if>>
+	<br><br>
+
+	A <<person3>><<person>> holds the other end of your leash in one hand, and Robin's in the other. <<He>> leads you towards a door at the far end of the room.
+<<else>>
+	<<generate1>><<person1>>
+	A <<person>> holds the other end of your leash. <<He>> leads you towards a door at the far end of the room.
+<</if>>
 <br><br>
 
 <<stealclothes>>
@@ -39,24 +168,55 @@ A <<person>> holds the other end of your leash. <<He>> leads you towards a door
 
 :: Underground Intro2
 <<set $outside to 0>><<set $location to "underground">><<effects>>
+<<if $phase is 1>>
+	<<set _withRobin to 1>>
+	<<set _robin to statusCheck("Robin")>>
+<</if>>
 
-You enter another corridor, lined on one side with metal floor hatches. <<He>> opens one of them, and shoves you inside. You land on something soft at least.
-"Your role here is simple. Do as you're told. You don't want to know what happened to the last <<girl>> who made a fuss."
-<<He>> slams the hatch shut, plunging you into complete darkness.
-<br><br>
+<<if _withRobin is 1>>
+	You and Robin enter another corridor, lined on one side with metal floor hatches. <<person3>><<He>> opens one of them, and shoves you inside. You land on something soft at least.
+	Soon you hear an adjacent hatch open and Robin lets out a yelp as you assume <<person1>><<hes>> tossed in as well.
+	<br><br>
+
+	"Both of you, your role here is simple. Do as you're told. You don't want to know what happened to the last <<girl>> who made a fuss."
+	<<person3>><<He>> slams the hatch shut, plunging you into complete darkness as you hear <<his>> receding footsteps.
+	<br><br>
 
-You fumble around in the dark, and find you fell on what feels like a mattress.
-There's also a locked metal door and a tap in the corner, but the room is otherwise bare.
+	You fumble around in the dark, and find you fell on what feels like a mattress. There's also a locked metal door and a tap in the corner, but the room is otherwise bare.
+	<br><br>
+
+	"Are you there?" You hear Robin's<<if _robin.dom lte 40>> trembling<</if>> voice coming from nearby.
+	As you trace the location of <<his>> voice, you find that there is a small hole in the wall that connects you.
+<<else>>
+	You enter another corridor, lined on one side with metal floor hatches. <<He>> opens one of them, and shoves you inside. You land on something soft at least.
+	"Your role here is simple. Do as you're told. You don't want to know what happened to the last <<girl>> who made a fuss."
+	<<He>> slams the hatch shut, plunging you into complete darkness.
+	<br><br>
+
+	You fumble around in the dark, and find you fell on what feels like a mattress.
+	There's also a locked metal door and a tap in the corner, but the room is otherwise bare.
+<</if>>
 <br><br>
 
-<<endevent>>
 <<set $undergroundbrothel to {
+	"active": true,
 	"time": 0,
 	"timepass": true,
 	"water": 0,
 	"escape": 0
 }>>
-<<link [[Next|Underground Cell]]>><</link>>
+<<if _withRobin>>
+	<<set $undergroundbrothel.robin to true>>
+	<<set $undergroundbrothel.robinTopics to {
+		"cold": "undiscussed",
+		"lonely": "undiscussed",
+		"dark": "undiscussed",
+		"scared": "undiscussed",
+		"touch": "undiscussed"
+	}>>
+	<<set $undergroundbrothel.robinTalk to 0>>
+<</if>>
+<<link [[Next|Underground Cell]]>><<endevent>><<set $eventskip to 1>><</link>>
 <br>
 
 :: Underground Cell
@@ -95,7 +255,7 @@ You are in an underground cell. You can't see a thing but can tell that the wall
 
 <<if $undergroundbrothel.timepass is false>>
 	<<undergroundCellOptions>>
-	
+
 <<elseif _wraithEvent and !$wraithUnderground>>
 	<<set $wraithUnderground to true>>
 	<<set $undergroundbrothel.water to 1>>
@@ -127,6 +287,10 @@ You are in an underground cell. You can't see a thing but can tell that the wall
 	<<link [[Next|Underground Cell]]>><</link>>
 	<br>
 <<elseif $undergroundbrothel.time is 2 and $bodywritingLvl gte 3>>
+	<<undergroundRobinTopic "tattoo" "undiscussed">><<run delete $undergroundbrothel.robinSpoke>>
+	<<if $undergroundbrothel.robin>>
+		<<set $robinTattoo.pushUnique("164")>>
+	<</if>>
 	Dim pink-hued lights turn on, bathing the room in light. Before your eyes can adjust, one of the doors opens and a number of people enter.
 	You think there are four of them.
 	<<generate1>><<generate2>><<generate3>><<generate4>>
@@ -156,51 +320,90 @@ You are in an underground cell. You can't see a thing but can tell that the wall
 	<br>
 
 <<elseif $undergroundbrothel.time is 4>>
-	<<generate1>>
-	The lights turn on once more, and a <<person1>><<person>> enters. "Time for your performance," <<he>> says, yanking your leash.
-	"Make sure you dance sexy. If you don't attract a customer we'll just let the whole audience have a piece." <<He>> tries to pull you from the room.
-	<br><br>
-	<<link [[Go quietly|Underground Dance Intro]]>><<endevent>><</link>>
+	<<run delete $undergroundbrothel.robinSpoke>>
+	<<generate1>><<person1>>
+	<<if $undergroundbrothel.robin>>
+		The lights turn on once more, and a <<person>> enters. "Time for your performance," <<he>> says, yanking your leash. "Your friend will be accompanying us. Hope you're feeling lucky."
+		<br><br>
+		<<link [[Go quietly|Underground Robin Dice Intro]]>><<endevent>><</link>>
+	<<else>>
+		The lights turn on once more, and a <<person>> enters. "Time for your performance," <<he>> says, yanking your leash.
+		"Make sure you dance sexy. If you don't attract a customer we'll just let the whole audience have a piece." <<He>> tries to pull you from the room.
+		<br><br>
+		<<link [[Go quietly|Underground Dance Intro]]>><<endevent>><</link>>
+	<</if>>
 	<br>
 	<<link [[Resist|Underground Cell Resist]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
 	<br>
 <<elseif $undergroundbrothel.time is 8>>
-	<<generate1>>
-	The lights turn on once more, and a <<person1>><<person>> enters. "You're needed," <<he>> says, yanking your leash.
-	<br><br>
-	<<link [[Go quietly|Underground Presentation]]>><<endevent>><</link>>
+	<<run delete $undergroundbrothel.robinSpoke>>
+	<<generate1>><<person1>>
+	<<if $undergroundbrothel.robin>>
+		The lights turn on once more, and a <<person1>><<person>> enters. "Time for another performance," <<he>> says, yanking your leash.
+		<br><br>
+		<<if $tentacledisable is "t">>
+			<<link [[Go quietly|Underground Robin Stage Intro]]>><<endevent>><</link>>
+		<<else>>
+			<<link [[Go quietly|Underground Robin Tentacles Intro]]>><<endevent>><</link>>
+		<</if>>
+	<<else>>
+		The lights turn on once more, and a <<person>> enters. "You're needed," <<he>> says, yanking your leash.
+		<br><br>
+		<<link [[Go quietly|Underground Presentation]]>><<endevent>><</link>>
+	<</if>>
 	<br>
 	<<link [[Resist|Underground Cell Resist]]>><<set $molestationstart to 1>><<set $phase to 2>><</link>>
 	<br>
 <<elseif $undergroundbrothel.time is 12>>
-	<<generate1>>
-	The lights turn on once more, and a <<person1>><<person>> enters. "Time for another performance," <<he>> says, yanking your leash.
-	<br><br>
-	<<link [[Go quietly|Underground Stage Intro]]>><<endevent>><</link>>
+	<<run delete $undergroundbrothel.robinSpoke>>
+	<<generate1>><<person1>>
+	<<if $undergroundbrothel.robin>>
+		The lights turn on once more, and a <<person>> enters. "Time for another performance," <<he>> says, yanking your leash.
+		<br><br>
+		<<link [[Go quietly|Underground Robin Machine Intro]]>><<endevent>><</link>>
+	<<else>>
+		The lights turn on once more, and a <<person>> enters. "Time for another performance," <<he>> says, yanking your leash.
+		<br><br>
+		<<link [[Go quietly|Underground Stage Intro]]>><<endevent>><</link>>
+	<</if>>
 	<br>
 	<<link [[Resist|Underground Cell Resist]]>><<set $molestationstart to 1>><<set $phase to 3>><</link>>
 	<br>
 <<elseif $undergroundbrothel.time is 16>>
-	<<generate1>>
-	The lights turn on once more, and a <<person1>><<person>> enters. "Time for another performance," <<he>> says, yanking your leash.
-	<br><br>
-	<<link [[Go quietly|Underground Film Intro]]>><<endevent>><</link>>
+	<<run delete $undergroundbrothel.robinSpoke>>
+	<<generate1>><<person1>>
+	<<if $undergroundbrothel.robin>>
+		The lights turn on once more, and a <<person>> enters. "Time for another performance," <<he>> says, yanking your leash.
+		<br><br>
+		<<link [[Go quietly|Underground Robin Kiss Intro]]>><<endevent>><</link>>
+	<<else>>
+		The lights turn on once more, and a <<person>> enters. "Time for another performance," <<he>> says, yanking your leash.
+		<br><br>
+		<<link [[Go quietly|Underground Film Intro]]>><<endevent>><</link>>
+	<</if>>
 	<br>
 	<<link [[Resist|Underground Cell Resist]]>><<set $molestationstart to 1>><<set $phase to 4>><</link>>
 	<br>
 <<elseif $undergroundbrothel.time is 20>>
-	<<generate1>>
-	The lights turn on once more, and a <<person1>><<person>> enters. "Time for some fresh air," <<he>> says, yanking your leash.
-	<br><br>
-	<<link [[Go quietly|Underground Hunt Intro]]>><<endevent>><</link>>
+	<<run delete $undergroundbrothel.robinSpoke>>
+	<<generate1>><<person1>>
+	<<if $undergroundbrothel.robin>>
+		The lights turn on once more, and a <<person>> enters. "Time for some fresh air," <<he>> says, yanking your leash.
+		<br><br>
+		<<link [[Go quietly|Underground Robin Hunt Intro]]>><<endevent>><</link>>
+	<<else>>
+		The lights turn on once more, and a <<person>> enters. "Time for some fresh air," <<he>> says, yanking your leash.
+		<br><br>
+		<<link [[Go quietly|Underground Hunt Intro]]>><<endevent>><</link>>
+	<</if>>
 	<br>
 	<<link [[Resist|Underground Cell Resist]]>><<set $molestationstart to 1>><<set $phase to 5>><</link>>
 	<br>
 <<elseif $undergroundbrothel.time is 24>>
-	<<set $undergroundbrothel.time to 0>>
+	<<set $undergroundbrothel.time to 0>><<run delete $undergroundbrothel.robinSpoke>>
 	<<if $trauma gte $traumamax>>
 		<<generate1>><<generate2>>
-		The lights turn on once more, and a <<person1>><<person>> and <<person2>><<person>> enter.
+		The lights turn on once more, and a <<fullGroup>> enter.
 		The <<person1>><<person>> crouches beside you, grabs your neck and turns you to face <<him>>.
 		"Yep," <<he>> says. "<<pHer>> lights are out. Shame, <<pshes>> a pretty little thing."
 		<br><br>
@@ -225,18 +428,18 @@ You are in an underground cell. You can't see a thing but can tell that the wall
 		<br>
 	<</if>>
 <<else>>
-	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>><<set $allure /= 2>>
-	<<if $danger gte (9900 - $allure) and $eventskip is 0>>
+	<<set $danger to random(1, 10000)>><<set $dangerevent to 0>><<set _allure to $allure / 2>>
+	<<if $danger gte (9900 - _allure) and $eventskip is 0>>
 		Dim pink-hued lights turn on, bathing the room in light.
 		One of the doors opens and a <<generate1>><<person1>><<person>> walks in, closing the door behind <<him>>.
 		<<covered>>
 		<<He>> sizes you up as <<he>> approaches.
 		<<switch random(1,5)>>
-			<<case 1>>  "You're adorable. Don't worry, I'll be gentle."
-			<<case 2>>  "Good enough. Hold still."
-			<<case 3>>  "Yes, nice and young."
-			<<case 4>>  "You better be worth it <<bitch>>." <<set $phase to 1>>
-			<<default>> "I paid good money for you. You better be worth it." <<set $phase to 1>>
+			<<case 1>>	"You're adorable. Don't worry, I'll be gentle."
+			<<case 2>>	"Good enough. Hold still."
+			<<case 3>>	"Yes, just my style."
+			<<case 4>>	"You better be worth it <<bitch>>." <<set $phase to 1>>
+			<<default>>	"I paid good money for you. You better be worth it." <<set $phase to 1>>
 		<</switch>>
 		<br><br>
 		<<link [[Next|Underground Cell Molestation]]>><<set $molestationstart to 1>><</link>>
@@ -261,13 +464,23 @@ You lie on the uncomfortable mattress and close your eyes. You're not sure how l
 :: Underground Cell Look
 <<set $outside to 0>><<set $location to "underground">><<effects>>
 
-You carefully feel around the edge of the room, looking for anything that might help you get out. You don't find anything.
-Feeling helpless, you sit back down on the mattress, and feel a cool breeze caress your leg.
-You put your hands against the floor and feel it again, coming from beneath the mattress.
-<br><br>
+<<if $undergroundbrothel.robin>>
+	You carefully feel around the edge of the room, looking for anything that might help you get out. You don't find anything. Feeling helpless, you press your back against the wall of Robin's cell and slide down.
+	<br><br>
+
+	"Psst!" You hear Robin's voice, and turn to look at the hole between your cells. "There are cracks under my mattress," Robin whispers. "If you dig into my cell, I could dig through the floor and get us out."
+	<br><br>
 
-You shunt it aside and the breeze becomes unmistakable. You can feel small cracks in the ground.
-It might be your imagination, but you think you can see a tiny amount of light through them too.
+	You shift yourself to peer through the tiny hole into Robin's cell. <<nnpc_His "Robin">> mattress has been shifted aside. You can barely make out cracks in the floor. It might be your imagination, but you think you can see a tiny amount of light through them too.
+<<else>>
+	You carefully feel around the edge of the room, looking for anything that might help you get out. You don't find anything.
+	Feeling helpless, you sit back down on the mattress, and feel a cool breeze caress your leg.
+	You put your hands against the floor and feel it again, coming from beneath the mattress.
+	<br><br>
+
+	You shunt it aside and the breeze becomes unmistakable. You can feel small cracks in the ground.
+	It might be your imagination, but you think you can see a tiny amount of light through them too.
+<</if>>
 <br><br>
 
 <<set $undergroundbrothel.timepass to false>>
@@ -277,8 +490,11 @@ It might be your imagination, but you think you can see a tiny amount of light t
 
 :: Underground Cell Dig
 <<set $outside to 0>><<set $location to "underground">><<effects>>
-
-You pick at the loose stone beneath the mattress.
+<<if $undergroundbrothel.robin>>
+	You pick at the hole connecting your cell to Robin's.
+<<else>>
+	You pick at the loose stone beneath the mattress.
+<</if>>
 <<set $undergroundbrothel.escape += 1>>
 <<if $undergroundbrothel.escape gte 19>>
 	It'll be a squeeze, but you think you can fit.
@@ -299,7 +515,11 @@ You pick at the loose stone beneath the mattress.
 <<elseif $undergroundbrothel.escape gte 15>>
 	The hole needs to be just a bit bigger and you'll be able to fit through.
 <<elseif $undergroundbrothel.escape gte 12>>
-	There's definitely a way out here, it just needs to be bigger.
+	<<if $undergroundbrothel.robin>>
+		You can definitely break through, it just needs to be bigger.
+	<<else>>
+		There's definitely a way out here, it just needs to be bigger.
+	<</if>>
 <<elseif $undergroundbrothel.escape gte 8>>
 	The hole grows wider.
 <<elseif $undergroundbrothel.escape gte 4>>
@@ -333,8 +553,6 @@ The metal door is locked tight. It uses an advanced electronic lock.
 :: Underground Cell Sneak
 <<set $outside to 0>><<set $location to "underground">><<effects>>
 
-<<dungeonescape>>
-
 No lock is going to stop you. You open the door and sneak out, tiptoeing across the plush carpet. You hear laughter and music up ahead.
 You peek round the corner and see
 <<if $NPCName[$NPCNameList.indexOf("Whitney")].state is "dungeon">>
@@ -346,18 +564,53 @@ getting brutally fucked on stage as a crowd of <<people>> watch.
 With the exception of the stage, the lights have been switched off, leaving the edge of the room in darkness.
 <br><br>
 
+<<if $undergroundbrothel.robin>>
+	<<set _robin to statusCheck("Robin")>><<npc "Robin">><<person1>>
+	You sneak back to Robin's cell. It's unlocked from this side, fortunately.
+	<<if _robin.dom lte 20 or _robin.trauma gte 70>>
+		Robin cringes and turns <<his>> head away, as if expecting to be beaten,
+	<<else>>
+		Robin gulps and shrinks away as the door opens,
+	<</if>>
+	but relief floods <<his>> face when <<he>> sees that it's you. You raise your finger to your lips, but <<he>> seemingly already knows to be quiet.
+	<br><br>
+<</if>>
+
 You slink into the room and round the side. No one notices you. You make it to the other side and up the stairs, emerging in the forest.
 <br><br>
 
-<<link [[Next|Forest]]>><<set $forest to 40>><<set $stress -= 1000>><</link>>
-<br>
+<<dungeonescape>>
+
+<<if _robin>>
+	<<link [[Next|Underground Robin Escape Orphanage]]>><<set $phase to 0>><<set $stress -= 1000>><</link>>
+<<else>>
+	<<link [[Next|Forest]]>><<set $forest to 40>><<set $stress -= 1000>><</link>>
+<</if>>
 
 :: Underground Escape
 <<set $outside to 0>><<set $location to "underground">><<effects>>
 
-<<dungeonescape>>
-You sit on the edge with your legs hanging over the hole. You feel a slope. You carefully lower yourself down, pulling the mattress over as you do.
-Relying on your hands at least as much as your feet, you scramble downwards.
+
+<<if $undergroundbrothel.robin>>
+	"I'm done on my end," Robin calls out, half-whispered. "Can you make it through?"
+	<br><br>
+
+	<<if $submissive lte 850>>
+		"Y-yeah! Let's hurry!"
+	<<elseif $submissive gte 1150>>
+		"Don't give them a chance to stop us!"
+	<<else>>
+		"Let's go!"
+	<</if>>
+	You quickly squeeze through the hole and into Robin's cell.
+	<br><br>
+
+	Robin immediately hugs you enter. "Let's get out of here!" Robin helps you into the hole and as you carefully lower yourself down you see Robin squeezing in after you.
+	<<nnpc_He "Robin">> makes sure to use the mattress to hide the hole as <<nnpc_he "Robin">> does so.
+<<else>>
+	You sit on the edge with your legs hanging over the hole. You feel a slope. You carefully lower yourself down, pulling the mattress over as you do.
+	Relying on your hands at least as much as your feet, you scramble downwards.
+<</if>>
 <br><br>
 
 The stone gives way and you fall several feet into cold water.
@@ -368,7 +621,7 @@ The stone gives way and you fall several feet into cold water.
 
 :: Underground Lake
 <<set $outside to 0>><<set $location to "underground">><<water>><<effects>>
-
+<<set _withRobin to !!($undergroundbrothel || {}).robin>>
 <<rngWraith>>
 <<if _wraithEvent>>
 	<<set _drown to ($wraith.state is "haunt" ? "Drown" : "Don't")>>
@@ -377,10 +630,10 @@ The stone gives way and you fall several feet into cold water.
 <</if>>
 
 <<set $stress -= 1000>>
-<<if $historytrait gte 4>>
+<<if $historytrait gte 4 and !_withRobin>>
 	You are pulled through the dark by a current. You've read about these tunnels, and should be able to influence where you end up.
 	<br><br>
-	
+
 	<<link [[Near the shore|Underground Lake2]]>><<set $sea to 10>><</link>>
 	<br>
 	<<link [[Further out at sea|Underground Lake2]]>><<set $sea to 50>><</link>>
@@ -391,10 +644,32 @@ The stone gives way and you fall several feet into cold water.
 	You struggle further up, and emerge into the $daystate.
 	<br><br>
 
-	<<link [[Next|Sea]]>><<set $sea to 50>><</link>>
-	<br>
+	<<if _withRobin>>
+		<<set _robin to statusCheck("Robin")>>
+		<<npc Robin 1>>
+		Robin eventually bobs to the surface next to you.
+		<br><br>
+		<<if _robin.dom gte 40>>
+			<<set _swimtestdiff to 400>>
+			<<He>> does <<his>> best to stay afloat, but <<his>> rapid breathing doesn't help <<him>>.
+			"Grab on!" <<He>> shouts as you drift closer to <<him>>. "We can't get separated out here!"
+			You get close and let <<him>> latch on to you.
+		<<else>>
+			<<set _swimtestdiff to 600>>
+			<<He>> seems to be struggling to stay afloat against the waves.
+			"H-help!" <<He>> coughs out as you get close and let <<him>> latch onto you.
+		<</if>>
+		<br><br>
+
+		<<link [[Swim to shore|Underground Robin Escape Swim]]>><</link>><<swimmingdifficulty 1 _swimtestdiff>>
+		<br>
+	<<else>>
+		<<link [[Next|Sea]]>><<set $sea to 50>><</link>>
+		<br>
+	<</if>>
+	<<dungeonescape>>
 <</if>>
-<<if _wraithEvent>>
+<<if _wraithEvent and !_withRobin>>
 	<<ind>><<ind>><<ind>><<ind>><<ind>><<ind>><span class="flicker">_drown</span>
 	<br><br><br><br><br><br><span class="flicker">_drown</span>
 <</if>>
@@ -407,47 +682,3 @@ You struggle further, and emerge into the $daystate.
 <br><br>
 <<link [[Next|Sea]]>><</link>>
 <br>
-
-:: Widgets Underground [widget]
-
-<<widget "dungeonescape">>
-	<<if $baileySold>>
-		<<set $baileyReunionScene to "dungeon">>
-	<</if>>
-
-	<<if $whitneyromance is 1>>
-		<<set $whitneyReunionScene to "dungeon">>
-	<</if>>
-
-	<<if $home_gone gte 4>>
-		<<if $NPCName[$NPCNameList.indexOf("Robin")].init is 1>>
-			<<set $robinReunionScene to "dungeon">>
-		<</if>>
-	<</if>>
-
-	<<unset $baileySold>>
-	<<unset $wraithUnderground>>
-	<<set $undergroundbrothelescaped to true>>
-	<<set $undergroundbrothel to {"escape": $undergroundbrothel.escape}>>
-<</widget>>
-
-<<widget "undergroundCellOptions">>
-	<<link [[Rest (1:00)|Underground Cell Rest]]>><<pass 1 hour>><<set $tiredness -= 1000>><</link>><<ltiredness>>
-	<br>
-	<<if $undergroundbrothel.escape is 0>>
-		<<link [[Look for a way out|Underground Cell Look]]>><</link>>
-	<<elseif $undergroundbrothel.escape gte 19>>
-		<<link [[Escape|Underground Escape]]>><</link>>
-	<<elseif $undergroundbrothel.escape gte 18 and $physiquesize lte 12000>>
-		<<link [[Escape|Underground Escape]]>><</link>><<small_text>>
-	<<elseif $undergroundbrothel.escape gte 17 and $physiquesize lte 10000>>
-		<<link [[Escape|Underground Escape]]>><</link>><<small_text>>
-	<<elseif $undergroundbrothel.escape gte 16 and $physiquesize lte 6000>>
-		<<link [[Escape|Underground Escape]]>><</link>><<small_text>>
-	<<else>>
-		<<link [[Dig (1:00)|Underground Cell Dig]]>><<pass 1 hour>><</link>>
-	<</if>>
-	<br>
-	<<link [[Examine the door|Underground Cell Lock]]>><</link>>
-	<br>
-<</widget>>
\ No newline at end of file
diff --git a/game/overworld-underground/loc-underground/robin.twee b/game/overworld-underground/loc-underground/robin.twee
new file mode 100644
index 0000000000000000000000000000000000000000..73f95a3ec349d8392ec2604c8f9b2b1a9a0ca3b6
--- /dev/null
+++ b/game/overworld-underground/loc-underground/robin.twee
@@ -0,0 +1,1863 @@
+:: Widgets Underground Robin [widget]
+
+<<widget "undergroundRobinTopic">>
+	<<if $undergroundbrothel.robin>>
+		<<set $_state to _args[1] ? _args[1] : "discussed">>
+		<<set $undergroundbrothel.robinTopics[_args[0]] to $_state>>
+	<</if>>
+<</widget>>
+
+<<widget "undergroundEscapeForestRobin">>
+	<<endcombat>>
+	<<clotheson>>
+
+	You emerge in the forest and run in a random direction, Robin following close behind you. <span class="red"><<nnpc_Hes "Robin">> not the only one following you.</span>
+	<br><br>
+
+	<<link [[Next|Underground Robin Escape Stalk]]>><<set $molestationstart to 1>><</link>>
+<</widget>>
+
+<<widget "undergroundRobinTopicRefresh">>
+	<<if Object.entries(V.undergroundbrothel.robinTopics).filter(pair => pair[1] === "undiscussed").length lte 0>>
+		<<set $undergroundbrothel.robinTopics to {
+			"cold": "undiscussed",
+			"lonely": "undiscussed",
+			"dark": "undiscussed",
+			"scared": "undiscussed",
+			"touch": "undiscussed"
+		}>>
+	<</if>>
+<</widget>>
+
+<<widget "undergroundRobinInterlude">>
+	<<set _rRNG to random(1,3)>>
+	<<if _rRNG gte 2>>
+		<<print either(
+			"You hear Robin shouting.",
+			"Robin yells in pain.",
+			"Robin whimpers."
+		)>>
+		<<npcincr Robin trauma 1>><<grtrauma true>>
+		<br><br>
+	<</if>>
+<</widget>>
+
+<<widget "undergroundRobinKiss">>
+	<<set $speechdisable to 1>>
+	<<if $robinFucked>>
+		<<if _args[0] is "kissback">>
+			<<print either(
+				"<<He>> hesitantly kisses you back, whimpering as the <<person3>><<person>> pounds <<person2>><<him>>.",
+				"<<He>> squeezes <<his>> eyes shut as you kiss <<him>>, jerking every time the <<person3>><<person>> thrusts.",
+				"<<He>> shrieks into your mouth in time with the <<person3>><<persons>> savage thrusts."
+			)>>
+		<<else>>
+			<<print either(
+				"<<He>> sobs, and the <<person3>><<person>> laughs.",
+				"<<He>> whimpers each time the <<person3>><<person>> thrusts into <<person2>><<him>>.",
+				"<<He>> clings to you, shaking and wailing. <<His>> body trembles every time the <<person3>><<person>> yanks on <<person2>><<his>> leash."
+			)>>
+		<</if>>
+		<<npcincr Robin trauma 3>><<grtrauma true>>
+	<<elseif $timer gte 5>>
+		<<if _args[0] is "kissback">>
+			<<He>> squirms in the <<person3>><<person>>'s grasp, leaning into your kiss.
+		<<else>>
+			Robin squirms in the <<person3>><<persons>> grip.
+		<</if>>
+	<<elseif $timer gte 3>>
+		<<if _args[0] is "kissback">>
+			The <<person3>><<person>> yanks Robin's leash, and <<person2>><<he>> yelps into your mouth.
+		<<else>>
+			The <<person3>><<person>> yanks Robin's leash, and <<person2>><<he>> yelps.
+		<</if>>
+	<<elseif $timer gte 1>>
+		<<if _args[0] is "kissback">>
+			Robin squeezes <<his>> eyes shut in fear, trying to focus on your lips.
+		<<else>>
+			Robin tries to shake <<his>> head, sobbing against your mouth in fear.
+		<</if>>
+	<<else>>
+		<<set $robinFucked to 1>>
+		<span class="red">Robin screams as the <<person3>><<person>> thrusts <<his>> <<npcPenis>> into Robin's
+			<<if _robin.vagina isnot "none">>
+				<<NPCVirginityTakenByOther "Robin" "vaginal" $NPCList[2].fullDescription>>
+				<<if _npcVirgin.vaginal is true>>
+					pussy for the first time.
+				<<else>>
+					pussy.
+				<</if>>
+			<<else>>
+				<<NPCVirginityTakenByOther "Robin" "anal" $NPCList[2].fullDescription>>
+				<<if _npcVirgin.vaginal is true>>
+					ass for the first time.
+				<<else>>
+					ass.
+				<</if>>
+			<</if>>
+		</span>
+		<<npcincr Robin trauma 5>><<ggrtrauma true>><<control -10>><<lcontrol>>
+	<</if>>
+
+	<<if _args[0] is "kissback">>
+		<<set $kissTurns++>>
+	<</if>>
+<</widget>>
+
+:: Underground Cell Robin Talk
+<<set $outside to 0>><<set $location to "underground">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+<<npc Robin>>
+
+<<if $undergroundbrothel.robin>>
+	You go towards the hole that connects yours to Robin's cell and call out to <<person1>><<him>>.
+<</if>>
+<<switch $undergroundbrothel.robinTalk>>
+	<<case 0>> /* First interaction */
+		"Do you know where we are?" Robin asks. You can hear <<him>> shifting towards you.
+		<br><br>
+
+		"Some kind of underground prison," you respond as you slump against the wall.
+		<br><br>
+
+		You hear Robin fumbling around <<his>> cell. "There has to be a way we can get out of here..."
+		<<He>> shuffles around again. "I'm not gonna let this happen to <<print (_robin.dom gte 60 ? "you" : "us")>>."
+	<<case 6>> /* Sixth interaction. They'll have been here a while by this point. */
+		<<if $undergroundbrothel.escape is 0>>
+			Robin responds, "I'm still looking for a way out of this place. Would help if they gave us some light though."
+		<<else>>
+			Robin responds, "I'm still working on the hole under the mattress. I think if they knew about it, they'd have done something to stop me by now." There's a glimmer of hope in <<his>> voice.
+		<</if>>
+	<<default>>
+		<!-- select a random topic from robinTopics that is undiscussed. Priority topics always happen before undiscussed -->
+		<<set _topicList to Object.entries(V.undergroundbrothel.robinTopics)>>
+		<<if _topicList.filter(pair => pair[1] === "priority").length gte 1>>
+			<<set _topic to _topicList.filter(pair => pair[1] === "priority").random()[0]>>
+		<<elseif _topicList.filter(pair => pair[1] === "undiscussed").length gte 1>>
+			<<set _topic to _topicList.filter(pair => pair[1] === "undiscussed").random()[0]>>
+		<</if>>
+		<<if _topic>>
+			<<undergroundRobinTopic _topic>>
+		<</if>>
+		<<switch _topic>>
+			<<case "scared">>
+				"This can't be happening..." Robin's voice is low and weak.
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"A-are you alright?" You place your hand against the wall.
+				<<elseif $submissive lte 850>>
+					"What's wrong? Did they do something to you?" Your voice rises.
+				<<else>>
+					"Robin? Are you okay?" you ask.
+				<</if>>
+				<br><br>
+
+				<<if _robin.dom gte 70>>
+					"Sorry, I just. I got overwhelmed for a minute there," Robin says shakily.
+					"I need to be strong." <<He>> seems to say it for <<his>> own benefit more than anything else.
+				<<else>>
+					"I don't want to die here." You hear Robin sob.
+					<br><br>
+
+					<<if $submissive gte 1150>>
+						"Please don't give up hope, we're going to make it," you say gently.
+					<<elseif $submissive lte 850>>
+						"That's what they want you to think. They want you to give up and accept this." You hit the wall with your hand.
+					<<else>>
+						"Don't worry. We'll make it out. I promise," you say.
+					<</if>>
+					<br><br>
+
+					"Thank you. That really helps." Robin's sobbing slows to a stop.
+				<</if>>
+			<<case "touch">>
+				"Can I... touch you?" Robin's voice is shaking. "I feel starved of real affection."
+				<br><br>
+
+				You stick your finger in the hole that connects the two of you. It's all you can fit through. You immediately feel a warmth press against it.
+				After a few moments of this you feel Robin softly kiss your fingertip before <<he>> returns your finger.
+				<br><br>
+
+				"Thanks... I needed that more than you know."
+			<<case "dark">>
+				"Getting around in the dark is really hard to get used to," Robin chuckles dryly. "I keep tripping on the mattress when I get water."
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"I feel like I'm going to go blind," you say sympathetically.
+				<<elseif $submissive lte 850>>
+					"They don't want their merchandise getting too comfy in here." You fold your arms.
+				<<else>>
+					"I'm in the same boat," you say sympathetically.
+				<</if>>
+				<br><br>
+
+				"Maybe we'll get night vision eventually! Or sonar! Like a bat!" You can tell Robin's trying to cheer you up. It's working.
+			<<case "lonely">>
+				"Hey..." Robin sounds despondent.
+				<<if _robin.dom gte 60>>
+					"I miss the other orphans. I hope they're doing okay."
+					<br><br>
+
+					<<if $submissive gte 1150>>
+						"I'm sure they're doing alright," you try to cheer <<him>> up.
+					<<elseif $submissive lte 850>>
+						"We just have to get out of here and check on them then," you say.
+					<<else>>
+						"Let's get back to them then as soon as we can," you say.
+					<</if>>
+					<br><br>
+
+					"You're right. I'm sure they'd hate to see me all down like this. I have to stay strong," Robin sounds more like <<his>> usual self.
+				<<else>>
+					"I miss hanging out with you. I wish we were back home."
+					<br><br>
+
+					<<if $submissive gte 1150>>
+						"Hey, don't lose hope okay?" you say softly.
+					<<elseif $submissive lte 850>>
+						"Don't let them get inside your head. We will make it out of here. I promise," you say with confidence.
+					<<else>>
+						"We will soon. Don't worry," you smile in the darkness.
+					<</if>>
+					<br><br>
+
+					"Thank you," Robin says. "I don't know what I'd do if I was here alone."
+				<</if>>
+			<<case "cold">>
+				"H-hey, how are you h-holding up?" You can hear Robin shiver as <<he>> talks.
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"A-are you alright?" You ask.
+				<<elseif $submissive lte 850>>
+					"Robin, are you okay?" You get closer to the wall.
+				<<else>>
+					"What's wrong?" you ask.
+				<</if>>
+				<br><br>
+
+				"M-my clothing's a bit worse for wear," Robin replies. "Doesn't help against the chill." <<He>> pauses before continuing.
+				<<if _robin.dom gte 60>>
+					"Don't worry about me. It's just like when I sell hot chocolate!"
+				<<else>>
+					"I wish they'd warm these rooms at least."
+				<</if>>
+			<<case "tattoo">>
+				"Did you get a tattoo too?" Robin's voice is strained. "I'm number 164." <<He>> pauses.
+				"Do you think we'll be able to get them off <<print (_robin.trauma gte 70 ? "if" : "when")>> we get out? I rather like my name as is."
+				<<He>> gives a pained laugh.
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"I'm sorry you had to go through that as well," you say, voice quivering.
+				<<elseif $submissive lte 850>>
+					"The damn bastards marked me too. Must've been right before you." You run a hand along the number '163' etched on your skin.
+				<<else>>
+					"'163'." Your voice is hollow.
+				<</if>>
+			<<case "pig">>
+				<<if $bestialitydisable is "t" or $monsterchance gte 100>>
+					<<set _animals to "monsters">>
+				<<else>>
+					<<set _animals to "animals">>
+				<</if>>
+				"Hey," Robin says. <<He>> sounds upbeat, but you can tell <<hes>> faking it. "Did you know pigs are some of the smartest _animals out there?
+				They can learn things really fast, and have really good memories. They're also clean, despite their muddy stereotypes. I really liked them when I was growing up."
+				<br><br>
+
+				<<Hes>> silent for a few seconds. "I don't think I like pigs anymore," <<he>> says, <<his>> voice weak.
+			<<case "dice">>
+				"I don't think I'll be able to look at dice the same way," Robin says, <<if _robin.trauma gte 40>><<his>> voice trembling<<else>>forcing a laugh<</if>>. "Was that their idea of a game?"
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"I don't think I can look at dice the same way," you whisper.
+				<<elseif $submissive lte 850>>
+					"Would've loved to clock them with those giant dice," you mutter.
+				<<else>>
+					"Of course it's a game," you mutter. "That's how this place is."
+				<</if>>
+				<br><br>
+
+				<<if _robin.trauma gte 70>>
+					"It's a game to them," Robin repeats. <<He>> lets out a hollow laugh. "I guess this is game over."
+				<<else>>
+					"If only it was a video game," <<he>> says. "Then we could bust out with laser swords and feather cannons. And that one combo you keep spamming." <<He>> sounds more cheerful, thinking about home again.
+				<</if>>
+			<<case "tentacles">>
+				"I'm sorry you had to do that," Robin mutters. "Getting me off, I mean. With those metal things attacking you."
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"I like doing it with you," you say in response. "Just... not like that."
+				<<elseif $submissive lte 850>>
+					"Wasn't much of a punishment," you boast. "I mean, having sex with my <<nnpc_girlfriend "Robin">>? They expect that to be a bad thing?"
+					<<if $trauma gte ($traumamax * 0.6)>>
+						You try to keep the tremor out of your voice. You're mostly successful.
+					<</if>>
+				<<else>>
+					"I'm just glad they didn't hurt you," you say.
+				<</if>>
+				<br><br>
+
+				Robin is silent for a few seconds. "They made me take something. This thick, sour drink of some kind. It made me numb and cold... like I couldn't feel anything you were doing."
+			<<case "machineHigh">>
+				<<set _noOptions to true>>
+				<<He>> takes a moment to respond. When <<he>> does, <<his>> voice is hollow. "It hurt."
+				<br><br>
+
+				You wait for <<him>> to elaborate, and <<he>> sniffles. "The machine hurt me. It was so fast, and so rough, and I can't even sit down now. So why? Why did you make them turn mine up?" Robin's voice becomes clouded with tears. "You knew it would hurt me, right? Why?"
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"I-I'm sorry," you murmur. You can't think of anything else to say.
+				<<elseif $submissive lte 850>>
+					You try to think of something to say. The words congeal in your throat.
+				<<else>>
+					"I was scared," you say quietly.
+				<</if>>
+				<br><br>
+
+				"Why?" Robin continues, <<his>> voice raising in volume. "You knew it would hurt me! It hurt so much! Why did you do that to me? What's wrong with you?!"
+				<<stress 6>><<gstress>>
+				<br><br>
+
+				You gulp. "Robin-"
+				<br><br>
+
+				"You're supposed to protect me!" <<he>> spits. "Some protector you are!"
+				<<stress 12>><<trauma 12>><<ggstress>><<ggtrauma>>
+				<br><br>
+
+				<<link [[Apologise|Underground Cell Robin Talk 2]]>><<stress 6>><<npcincr Robin love 1>><<npcincr Robin dom 1>><<set $phase to "machineHighApologise">><</link>><<gstress>><<glove>><<gdom>>
+				<br>
+				<<link [[Stay silent|Underground Cell Robin Talk 2]]>><<trauma -6>><<npcincr Robin dom -10>><<set $phase to "machineHighSilent">><</link>><<ltrauma>><<lldom>>
+			<<case "machineNormal">>
+				Robin responds after a moment with a shaky voice, "H-hey.
+				<<if _robin.dom gte 50>>
+					Are you alright?" <<He>> consoles you. "I hope you're not hurt too badly."
+				<<else>>
+					That really hurt." You hear audible pain as <<he>> talks. <<He>> pauses before continuing, "Are you okay?"
+				<</if>>
+				<br><br>
+
+				<<if $pain gte 60>>
+					<<if $submissive gte 1150>>
+						You let it out, sobbing to release the pain.
+					<<elseif $submissive lte 850>>
+						"I'm f-fine," your voice betrays you, cracking as tears run down your cheeks.
+					<<else>>
+						"N-no," you say, tears streaming down your cheeks.
+					<</if>>
+					<br><br>
+
+					Robin seems surprised at first, but quickly adapts. "It's going to be alright. We're going to make it out of here, and then they won't be able to hurt us anymore."
+					After a pause <<he>> whispers, "I'm going to be strong enough for both of us."
+					<<pain -20>><<lpain>><<npcincr Robin dom 2>><<gdom>>
+				<<else>>
+					<<if $submissive gte 1150>>
+						"I'll be okay, thank you for asking though." You find yourself smiling at <<his>> concern.
+					<<elseif $submissive lte 850>>
+						"It'll take more than that to take me down." You put on a brave face for Robin.
+					<<else>>
+						"Yeah I am. I'm glad you're okay too," you say as you lean your back against the connecting wall.
+					<</if>>
+					<br><br>
+
+					<<if _robin.trauma gte 70>>
+						Robin sniffles, "I'm just glad it's over."
+					<<else>>
+						Robin calms down. "We can make it out of this, I know we can."
+					<</if>>
+				<</if>>
+			<<case "machineLow">>
+				"Are you okay?" Robin responds almost immediately, concern clear in <<his>> voice.
+				<<if _robin.dom gte 50>>
+					"I should've known they wouldn't have waited for an answer," <<he>> says.
+				<<else>>
+					"I'm so sorry, I didn't know they wouldn't wait for you to answer," <<he>> says.
+				<</if>>
+				"Is there anything I can do to make you feel better?" Robin tries to comfort you.
+				<br><br>
+
+				<<if $pain gte 60>>
+					<<if $submissive gte 1150>>
+						"P-please hold me." You stick your finger through the hole. Robin softly grabs it.
+						<br><br>
+
+						"It's okay." <<He>> holds your finger, lightly rubbing it as you start to sob. "Shhhh, it's all going to be okay."
+					<<elseif $submissive lte 850>>
+						"I'll be okay," you choke out the words, but Robin clearly isn't convinced.
+						<br><br>
+
+						"How about I get you some ice cream when we get out?" You can almost hear the smile in Robin's voice.
+						"My treat."
+					<<else>>
+						"Can we go h-home?" you sob.
+						<br><br>
+
+						"Just let it out," Robin encourages as you softly cry. "When we get home I'm gonna make you smile so hard that you'll forget all this ever happened."
+					<</if>>
+					<<pain -20>><<lpain>><<trauma -5>><<ltrauma>><<npcincr Robin dom 2>><<gdom>>
+				<<else>>
+					<<if $submissive gte 1150>>
+						"I think so, thank you," you say, trembling slightly.
+					<<elseif $submissive lte 850>>
+						"I'm gonna be sore for a bit, but other than that. I'll live," you say.
+					<<else>>
+						"I'm glad it's over, that was really rough," you say.
+					<</if>>
+
+					"I'm glad you're okay. If you need anything let me know, alright?" Robin sounds relieved.
+				<</if>>
+			<<case "machinePlayer">>
+				"Are you okay?" Robin responds almost immediately, concern clear in <<his>> voice.
+				"I'm glad they stopped, I just wish they had stopped sooner. Before they..." <<He>> doesn't finish.
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					You hug the wall, and for a moment it's almost as if you can feel Robin's warmth on the other side.
+					"I t-think I'll be okay. Thank you."
+				<<elseif $submissive lte 850>>
+					"I'm just glad they didn't get to you." You shake your head at the intrusive memories and force a smile.
+				<<else>>
+					"I'll be okay," you say, placing your hand on the wall connecting the two of you. "Promise."
+				<</if>>
+			<<case "machineNone">>
+				<<if _robin.trauma lte 40>>
+					"We sure showed them!" Robin's voice is giddy. "Maybe they'll think twice before trying to torture us again."
+				<<else>>
+					"I'm just glad we're safe. I don't think I could've handled having that machine b-break me," Robin sounds relieved but still stressed.
+				<</if>>
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"I'm glad we're both intact. Those machines were scary," you breathe a sigh of relief.
+				<<elseif $submissive lte 850>>
+					"That's what they get for trying to do that to us." Despite it all you feel yourself smiling.
+				<<else>>
+					"I'm glad they gave up. I was worried they'd try again for a moment there," you smile.
+				<</if>>
+			<<case "kissBack">>
+				"Thanks for kissing me, back there," <<he>> says. There's a brief pause. "I know that sounds weird, but... it helped me ignore what was happening. It distracted me."
+				<br><br>
+
+				<<if $submissive gte 1150>>
+					"I should thank you just as much," you say.
+				<<elseif $submissive lte 850>>
+					"I should've done more," you say, gritting your teeth. "I hate them."
+				<<else>>
+					"It was the least I could do," you say.
+				<</if>>
+			<<case "hunt">>
+				<<if _robin.dom gte 70>>
+					"We were right there," <<he>> mutters. "We were in the forest, we could've..." <<He>> sighs. "I should've been stronger. Then I could've saved you, and we'd be out of here."
+					<br><br>
+
+					<<if $submissive gte 1150>>
+						"Y-you shouldn't need to protect me," you say quietly.
+					<<elseif $submissive lte 850>>
+						"You're not the only one that dropped the ball," you mutter.
+					<<else>>
+						"Don't blame yourself," you say. "We're in it together. I'm as much to blame as you are."
+					<</if>>
+					<br><br>
+
+					Robin is silent for a few seconds. "We're getting out of here. Next time they make the mistake of showing us the sun, we're leaving."
+				<<else>>
+					"It was nice to see the sun again," <<he>> says, trying to sound cheerful. "And to feel the grass. That was... nice."
+					<br><br>
+
+					<<if $submissive gte 1150>>
+						"I-it was warm," you say, trying to find a bright side. It's hard to stay hopeful. "I wish this place wasn't so cold."
+					<<elseif $submissive lte 850>>
+						"It beats this place," you mutter, kicking the wall slightly. "Can't see shit down here. Wish they'd at least turn on a light."
+					<<else>>
+						"I wish we'd been able to stay out longer," you say.
+					<</if>>
+					<br><br>
+
+					"Yeah," Robin agrees. "And I..." <<He>> trails off. "I wish we were out of here."
+				<</if>>
+			<<default>>
+				<<Hes>> quiet. "Are you alright?" you ask.
+				<br><br>
+
+				There's a pause before Robin responds.
+				<<if _robin.trauma gte 70>>
+					"W-we have to get out of here..." Robin's voice is shaking.
+				<<else>>
+					"I'll be fine," <<he>> gives a weak laugh. "I just need to keep my head up." Robin's voice is clashing with <<his>> words.
+				<</if>>
+				<<undergroundRobinTopicRefresh>>
+		<</switch>>
+<</switch>>
+<<set $undergroundbrothel.timepass to false>><<set $undergroundbrothel.robinTalk++>><<set $undergroundbrothel.robinSpoke to true>>
+<br><br>
+
+<<if !_noOptions>>
+	<<link [[Next|Underground Cell]]>><<endevent>><</link>>
+<</if>>
+
+:: Underground Cell Robin Talk 2
+<<effects>><<run statusCheck("Robin")>>
+<<switch $phase>>
+	<<case "machineHighApologise">>
+		"Robin, I'm sorry," you say. You explain that you were scared, and weren't thinking straight, and how you regretted it. The words come spilling out faster than you can control them, until your throat is hoarse.
+		<br><br>
+
+		Robin doesn't answer for moment, before hiccuping. "We need to get out of here. Together. Then we won't need to worry about this, because it'll... it'll never happen again."
+		<br><br>
+
+		<<He>> pauses. "I-I forgive you. And I'm sorry for yelling. This place is getting to me."
+	<<case "machineHighSilent">>
+		You remain quiet, filling the cell with an uncomfortable silence. After a few minutes, Robin starts to cry.
+		<br><br>
+
+		"I'm sorry," <<he>> whispers. "Don't hate me. I shouldn't have said that. I'm sorry, I'm sorry, please." <<His>> voice is punctuated by hiccups and shaky breaths. "I need you. I love you. Don't hate me."
+		<br><br>
+
+		You tell Robin you forgive <<him>>, and <<he>> starts to cry again. This time in relief. After a few minutes, <<his>> voice trails off.
+	<<default>>
+		"Huh?" Robin says. "What?"
+		<br><br>
+
+		You consider telling Robin that the scene is bugged and that $$phase is incorrectly set to $phase, but decide against it. Informing Vrelnir would be more worth your time.
+<</switch>>
+<br><br>
+
+<<link [[Next|Underground Cell]]>><<endevent>><</link>>
+
+:: Underground Robin Stage Intro
+<<set $outside to 0>><<set $location to "underground">><<effects>>
+You are led once more to the stage, where the crowd awaits. Robin is already on stage. <<covered>>
+
+<<if $rng gte 51 and ($monster is 1 or $bestialitydisable is "f")>>
+	<<beastNEWinit 1 pig>>
+	Once there, a metal shutter rattles open behind you, and two gigantic <<beastsplural>> step out. The first charges at Robin, while the second makes <<bhis>> way towards you. The audience cheers them on.
+	<br><br>
+
+	<<link [[Next|Underground Robin Stage Pig]]>><<set $molestationstart to 1>><</link>>
+<<else>>
+	<<generate1>><<generate2>>
+	There's a <<fullGroup>> already waiting for you. The <<person2>><<person>> takes Robin's leash, while the <<person1>><<person>> takes yours. They pull you apart from each other and look at the audience. "Who do you think will cum first? Make your bets, my friends."
+	<br><br>
+
+	<<link [[Next|Underground Robin Stage Molestation]]>><<set $molestationstart to 1>><</link>>
+<</if>>
+
+:: Underground Robin Stage Pig
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<beastCombatInit>>
+<</if>>
+
+<<effects>>
+<<effectsman>>
+<br>
+<<beast $enemyno>>
+<br>
+
+<<undergroundRobinInterlude>>
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Stage Pig Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Stage Pig Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Stage Pig]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Stage Pig Finish
+<<if $enemyhealth lte 0>>
+	The <<beasttype>> flees in pain and fear, running amok among the audience in an attempt to find an exit. The second one becomes startled and runs away too, leaving Robin free to stand up.
+	<br><br>
+
+	<<tearful>> you and Robin leap from the stage and run for the stairs. The audience are so distracted they make no move to stop you. You climb the stairs as fast as you can, footsteps thundering beneath you.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<undergroundRobinTopic "pig" "undiscussed">>
+	<<beastejaculation>><<famebestiality 50>>
+
+	The crowd applauds as you are led off the stage and back to your cell. Robin follows soon after.
+
+	<<undergroundReturnToCell>>
+<</if>>
+
+:: Underground Robin Stage Molestation
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<set $enemyno to 1>><<set $enemynomax to 1>>
+	<<maninit>>
+	<<set $enemytrust -= 120>>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+<<undergroundRobinInterlude>>
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Stage Molestation Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Stage Molestation Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Stage Molestation]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Stage Molestation Finish
+<<if $enemyhealth lte 0>>
+	The <<person1>><<person>> recoils in pain and tumbles from the stage. The <<person2>><<person>> startles from the sudden thud. <<tearful>> you yank <<him>> off of Robin and run for the stairs. The audience are so bemused they make no move to stop you.
+	<br><br>
+
+	You climb the stairs as fast as you can, footsteps thundering beneath you.
+
+	<<undergroundEscapeForestRobin>>
+
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+
+	The <<person2>><<person>> looks over at you, annoyed. The crowd applauds as you are led off the stage and back to your cell. Robin follows soon after.
+	<<undergroundReturnToCell>>
+<</if>>
+
+:: Underground Robin Dice Intro
+<<effects>>
+<<generate1>><<generate2>><<person1>>
+You are led from your cell into a corridor outside. It looks medieval like your cell but with modern furnishings. You round a corner and see a large group of <<people>> surrounding a stage. Robin is already on-stage, being watched by a <<person>>. You see a staircase on the opposite side of the room, which might be the way out.
+<<covered>>
+<br><br>
+
+Most of the audience was staring at Robin, but all eyes snap to you as you are led up to the central platform. There's music playing.
+<br><br>
+
+"We're going to roll these," the <<person2>><<person>> says, holding a large pair of stone dice. "To decide how this works. Pray for a low number."
+<br><br>
+
+"High rolls! High rolls!" the audience chants.
+<br><br>
+
+<<link [[Next|Underground Robin Dice Intro 2]]>><</link>>
+
+:: Underground Robin Dice Intro 2
+<<effects>>
+
+<<He>> rolls the stone dice. They crash uncomfortably loud on the stage.
+<br><br>
+<<set $uDice1 to random(1, 6)>>
+<<set $uDice2 to random(1, 6)>>
+<<set _d1Color to ["","green","blue","red"][Math.ceil($uDice1/2)]>>
+<<set _d2Color to ["","green","blue","red"][Math.ceil($uDice2/2)]>>
+
+<div id="die_text">
+	<span id="die_1">
+		<<if $images is 1>>
+			<img src="img/misc/die_stone_roll.gif">
+		<<else>>
+			?
+		<</if>>
+	</span>
+
+	<span id="die_2">
+		<<if $images is 1>>
+			<img src="img/misc/die_stone_roll.gif">
+		<<else>>
+			?
+		<</if>>
+	</span>
+	<br>
+	=
+	<br>
+</div>
+
+<<timed 2s>>
+	<<replace "#die_1">>
+	<<if $images is 1>>
+		<img @src="'img/misc/die_stone_' + $uDice1 + '.png'">
+	<<else>>
+		$uDice1
+	<</if>>
+	<</replace>>
+<</timed>>
+<<timed 4s>>
+	<<replace "#die_2">>
+	<<if $images is 1>>
+		<img @src="'img/misc/die_stone_' + $uDice2 + '.png'">
+	<<else>>
+		$uDice2
+	<</if>>
+	<</replace>>
+<</timed>>
+
+<<timed 5s>>
+	<span id="die_text">
+		<<if $uDice1 is $uDice2>>
+			<<switch $uDice1>>
+				<<case 1>>
+					<span @class="_d1Color">Snake eyes</span>
+				<<case 6>>
+					<span @class="_d1Color">Boxcars</span>
+				<<default>>
+					<span @class="_d1Color">Double <<number $uDice1>>s</span>
+			<</switch>>
+		<<else>>
+			<span @class="_d1Color"><<Number $uDice1>></span> and <span @class="_d2Color"><<number $uDice2>></span>
+		<</if>>
+	</span>
+	<<replace "#temp_br">>
+		<br>
+	<</replace>>
+<</timed>>
+
+<<timed 6s>>
+	<<replace "#temp_br">>
+		<br>
+		($uDice1, $uDice2)
+	<</replace>>
+<</timed>>
+
+<span id="temp_br">
+	<br><br>
+</span>
+<br><br>
+
+<<link [[Next|Underground Robin Dice Intro 3]]>><</link>>
+<br>
+
+:: Underground Robin Dice Intro 3
+<<effects>>
+
+<<if $uDice1 lte 3 and $uDice2 lte 3>>
+	The crowd boos and jeers at your low rolls, with some throwing garbage on the stage.
+	<<if $uDice1 + $uDice2 lte 4>>
+		"Bullshit!" one particularly frustrated audience member shouts.
+	<</if>>
+<<elseif $uDice1 gte 4 and $uDice2 gte 4>>
+	The crowd roars in excitement at the high numbers.
+	<<if $uDice1 + $uDice2 gte 10>>
+		A few begin to stomp their feet in unison.
+	<</if>>
+<<elseif $uDice1 gte 5 and $uDice2 lte 2 or $uDice1 lte 2 and $uDice2 gte 5>>
+	The crowd 'oohs' at the sight of the vastly different numbers.
+<<else>>
+	The crowd murmurs as they see the results.
+<</if>>
+<br><br>
+
+The <<person>> steps forward.
+<<set $diceAnnouncer to _text_output>>
+<<endevent>>
+
+<<if $uDice1 is $uDice2>>
+	"It's decided," the $diceAnnouncer announces. "No room for deliberation."
+	<<for _d to 1; _d lte $uDice1; _d++>>
+		<<generateNPC _d>>
+	<</for>>
+	<<person1>>
+	<<if $uDice1 is 1>>
+		From the audience, two people climb onto the stage. The first, a <<person>>, approaches you, while the second goes for Robin.
+	<<else>>
+		From the audience, two groups of <<number $uDice1>> people climb onto the stage. The first group, a <<fullGroup>>, approach you, while the second goes for Robin.
+	<</if>>
+	<br><br>
+
+	<<link [[Next|Underground Robin Dice Molestation]]>><<set $molestationstart to 1>><</link>>
+<<else>>
+	"Now, you have a choice," the $diceAnnouncer says to you. "Will you take the <<number $uDice1>>, or the <<number $uDice2>>? Whichever you don't take, your friend gets the other amount."
+	<br><br>
+
+	You notice the audience giving you lecherous glares, and it clicks in your head. The $diceAnnouncer is asking you to choose how many people attack you, and how many attack Robin. You consider running, but there are too many eyes on you. Robin looks terrified.
+	<br><br>
+
+	<<silently>><<number $uDice1>><<set _option1 to _text_output>><<number $uDice2>><<set _option2 to _text_output>><</silently>>
+	<<link [["The " + _option1|Underground Robin Dice Intro 4]]>>
+		<<set $playerDice to $uDice1>><<set $robinDice to $uDice2>>
+		<<if $uDice1 gt $uDice2>><<stress 6>><<else>><<npcincr Robin love -1>><</if>>
+	<</link>><<if $uDice1 gt $uDice2>><<gstress>><<else>><<llove>><</if>>
+	<br>
+	<<link [["The " + _option2|Underground Robin Dice Intro 4]]>>
+		<<set $playerDice to $uDice2>><<set $robinDice to $uDice1>>
+		<<if $uDice2 gt $uDice1>><<stress 6>><<else>><<npcincr Robin love -1>><</if>>
+	<</link>><<if $uDice2 gt $uDice1>><<gstress>><<else>><<llove>><</if>>
+<</if>>
+
+:: Underground Robin Dice Intro 4
+<<effects>>
+
+"The <<number $playerDice>>," the $diceAnnouncer says. "Then <<nnpc_he "Robin">> will get the <<number $robinDice>>." Robin gives you a <<print $playerDice gt $robinDice ? "grateful" : "betrayed">> look.
+<br><br>
+
+<<for _d to 1; _d lte $playerDice; _d++>>
+	<<generateNPC _d>>
+<</for>>
+<<person1>>
+<<if $playerDice is 1>>
+	From the audience, a <<person>> climbs to the stage and approaches you.
+<<else>>
+	From the audience, a <<fullGroup>> climb to the stage and approach you.
+<</if>>
+<<if $robinDice is 1>>
+	Another person climbs to the stage and approaches Robin.
+<<else>>
+	<<Number $robinDice>> more people climb to the stage and approach Robin.
+<</if>>
+<br><br>
+
+<<link [[Next|Underground Robin Dice Molestation]]>><<set $molestationstart to 1>><</link>>
+
+:: Underground Robin Dice Molestation
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<maninit>>
+	<<set $enemytrust -= 80>>
+	<<set $enemyanger += 60>>
+	<<set _rTrauma to [0,4,8,12,16,20,25][$robinDice]>>
+	<<npcincr Robin trauma _rTrauma>>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+<<undergroundRobinInterlude>>
+<<stateman>>
+<br><br>
+
+<<actionsman>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Dice Molestation Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Dice Molestation Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Dice Molestation]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Dice Molestation Finish
+<<if $enemyhealth lte 0>>
+
+	The <<person1>><<person>> recoils in pain and tumbles from the stage.
+	<<if $playerDice gt 2>>
+		The others get tangled in <<his>> flailing limbs and fall as well.
+	<<elseif $playerDice is 2>>
+		The <<person2>><<person>> get tangled in <<his>> flailing limbs and falls as well.
+	<</if>>
+	The group surrounding Robin pause their assault and turn at the commotion.
+	<br><br>
+
+	<<tearful>> you push them away and grab Robin's arm, and run for the stairs. The audience are so bemused they make no move to stop you.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<undergroundRobinTopic "dice" "undiscussed">>
+	<<ejaculation>>
+
+	The crowd applauds as you are led off the stage and back to your cell. Robin follows shortly.
+	<<undergroundReturnToCell>>
+<</if>>
+<<unset $uDice1>><<unset $uDice2>><<unset $playerDice>><<unset $robinDice>><<unset $diceAnnouncer>>
+
+:: Underground Robin Tentacles Intro
+<<effects>><<set $robinMetal to true>><<undergroundRobinTopic "tentacles" "undiscussed">>
+<<generate1>><<person1>>
+
+You are led once more to the stage, where the crowd awaits. Robin is already there. <<covered>>
+<br><br>
+
+You notice Robin is stripped naked, and held to the wall by metal cuffs. <<nnpc_He "Robin">> looks up at you pleadingly.
+<br><br>
+
+"Do your best to get <<nnpc_him "Robin">> off," the <<person>> says. "For your own sake." The metal shutter doors open, and a swarm of mettalic red tentacles surge toward you. Robin squeezes <<nnpc_his "Robin">> eyes shut.
+<br><br>
+
+<<link [[Next|Underground Robin Tentacles]]>><<endevent>><<set $molestationstart to 1>><</link>>
+
+:: Underground Robin Tentacles
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<npc Robin>><<person1>>
+	<<maninit>>
+	<<silently>><<npc_submissive>><</silently>>
+	<<npcexpose>>
+	<<set $breakIgnore to true>>
+	<<set $fightTargets to []>>
+	<<tentaclestart 10 15 "tentacle" "metal">>
+	<<set $enemyarousalmax to 800>>
+<</if>>
+<<set $enemyanger to 0>><<set $enemytrust to 100>>
+
+<<effects>>
+<<effectsman>><<man>>
+<<effectstentacles>><<tentacles>>
+
+<<audience>>
+<<statetentacles>><<stateman>>
+
+<<actionsOmni>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Tentacles Finish]]>><</link>></span><<nexttext>>
+<<elseif $tentacles.active lte ($tentacles.max / 2)>>
+	<span id="next"><<link [[Next|Underground Robin Tentacles Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Tentacles]]>><</link>></span><<nexttext>>
+<</if>>
+<br>
+
+:: Underground Robin Tentacles Finish
+<<effects>><<unset $robinMetal>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	The audience cheers, and the metal tentacles retract from you. Robin is untied from the wall, and the two of you are led off the stage and back to your cells.
+	<br><br>
+
+	<<undergroundReturnToCell>>
+<<else>>
+	The metal tentacles shudder, spark, and fall inert. The cuffs around Robin automatically retract.
+	<br><br>
+
+	The <<person>> shouts something into a walkie-talkie about damaged systems. <<tearful>> you grab Robin's arm and run for the stairs while <<hes>> distracted. The audience are so bemused they make no move to stop you.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+<</if>>
+
+:: Underground Robin Machine Intro
+<<effects>>
+<<set _robin to statusCheck("Robin")>>
+<<generate1>><<person1>>
+<<set $machineHandler to $NPCList[0].fullDescription>>
+
+You are led once more to the stage, where the crowd awaits. Robin is already there, being watched by a <<person>>. <<covered>>
+<br><br>
+
+You notice a pair of odd machines being wheeled in. Attached to them are chains and phallic instruments. Robin is grabbed and dragged into one, and you are in short order. You're set up facing away from each other.
+<br><br>
+
+"If it gets too much for you," the <<person>> says. "<span class="gold">Just let us know.</span> <span class="red">We'll redirect power to the other one.</span>"
+<<if _robin.trauma gte 60 or _robin.dom lte 20>>
+	Robin lets out a panicked choke.
+<<else>>
+	You hear Robin's chains clank against each other as <<nnpc_he "Robin">> struggles.
+<</if>>
+<br><br>
+
+<<link [[Next|Underground Robin Machine]]>><<endevent>><<set $molestationstart to 1>><</link>>
+
+:: Underground Robin Machine
+<<set _robin to statusCheck("Robin")>>
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+
+	<<set $machine_health to 6>><<set $machine_ammo to 8>>
+	<<if $player.vaginaExist and $analdisable is "f">>
+		<<machine_init vaginal anal arm_chains leg_chains>>
+		<<set $machine.vaginal.armed to 1>><<set $machine.anal.armed to 1>>
+	<<elseif $player.vaginaExist>>
+		<<machine_init vaginal arm_chains leg_chains>>
+		<<set $machine.vaginal.armed to 1>>
+	<<else>>
+		<<machine_init anal arm_chains leg_chains>>
+		<<set $machine.anal.armed to 1>>
+	<</if>>
+
+	<<if _robin.dom gte 80 and _robin.trauma lte 20>>
+		<<set $timer to 12>>
+	<<elseif _robin.dom gte 60 and _robin.trauma lte 40>>
+		<<set $timer to 10>>
+	<<elseif _robin.dom gte 40 and _robin.trauma lte 60>>
+		<<set $timer to 9>>
+	<<else>>
+		<<set $timer to 8>>
+	<</if>>
+	<<set $robinFucked to false>><<set $robinMachineSpeed to 2>>
+<</if>>
+
+<<effects>>
+<<machine_effects>>
+<<machine_combat>>
+
+<<if $phase is 1>>
+	You ask them to slow down your machine. The $machineHandler flips a switch, and your sex machine slows down to a more reasonable level.
+	<<if $robinFucked>>
+		Robin lets out a cry of distress as <<nnpc_his "Robin">> machine speeds up again.
+		<<npcincr Robin trauma 1>><<grtrauma true>>
+	<<else>>
+		Robin makes a sound between relief and worry.
+	<</if>>
+	<<machine_speed 2>>
+	<<set $timer to random(2,4)>>
+<<elseif $phase is 2>>
+	You ask them to slow down your machine. The $machineHandler flips a switch, and your sex machine slows down to a crawl.
+	<<if $robinFucked>>
+		Robin lets out a shriek as <<nnpc_his "Robin">> machine starts whirring louder. You can hear it thrusting into <<nnpc_him "Robin">>.
+		<<npcincr Robin trauma 3>><<npcincr Robin dom -5>><<ggrtrauma true>><<lldom "Robin">>
+	<<else>>
+		Robin cries out in alarm.
+	<</if>>
+	<<npcincr Robin love -1>><<llove>>
+	<<machine_speed 1>>
+	<<set $timer to random(2,4)>>
+<<else>>
+	<<if $robinFucked is true>>
+		<<if $anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1>>
+			<<set _fucking to "fucking">>
+		<<else>>
+			<<set _fucking to "threatening">>
+		<</if>>
+		<<switch $robinMachineSpeed>>
+			<<case 3>>
+				<<if random(-100,60) gte (_robin.dom - _robin.trauma) and $timer lte 0>>
+					"<span class="red">Slower!</span>" Robin yells, in tears. "Slower, please! I can't take it!"
+					<br><br>
+
+					The $machineHandler flips a switch, and the machine _fucking you speeds up to a regular speed. Robin breaths a sigh of relief, punctuated by a sob.
+					<<machine_speed 2>>
+					<<set $timer to random(3,5)>>
+				<<else>>
+					<<print either(
+						"Robin screams in pain.",
+						"You hear Robin let out agonized wails.",
+						"The machine knocks Robin's breath out of <<nnpc_him \"Robin\">>, and <<nnpc_he \"Robin\">> struggles to breathe for a few seconds."
+					)>>
+					<<npcincr Robin trauma 3>><<ggrtrauma true>>
+				<</if>>
+			<<case 2>>
+				<<if random(-100,30) gte (_robin.dom - _robin.trauma) and $timer lte 0>>
+					"Hey," Robin calls to you weakly. "Do you mind if they make mine slower? You don't need to-"
+					<br><br>
+
+					The $machineHandler flips a switch before you can respond, and the machine _fucking you <span class="red">speeds up.</span> Robin cries out in protest. "Hey, <<pshe>> didn't answer! Hey!"
+					<<machine_speed 3>>
+					<<set $timer to random(3,5)>>
+				<<else>>
+					<<print either(
+						"Robin shouts for help.",
+						"You hear Robin struggling against <<nnpc_his \"Robin\">> chains.",
+						"Robin sobs, <<nnpc_his \"Robin\">> voice interrupted by the thrusts of the machine."
+					)>>
+					<<npcincr Robin trauma 1>><<grtrauma true>>
+				<</if>>
+			<<case 1>>
+				<<print either(
+					"Robin groans in discomfort.",
+					"Robin weakly struggles, but doesn't seem terrified.",
+					"Robin grunts as <<nnpc_he \"Robin\">> tries to break free."
+				)>>
+		<</switch>>
+	<<else>>
+		<<if $timer gte 8>>
+			<span class="green">Robin shouts in defiance. You hear impacts against plastic.</span>
+		<<elseif $timer gte 6>>
+			<span class="lblue">You hear Robin struggle, as <<nnpc_he "Robin">> kicks the machine.</span>
+		<<elseif $timer gte 4>>
+			<span class="blue">You hear Robin struggle. The sounds of the machine being hit become weaker.</span>
+		<<elseif $timer gte 2>>
+			<span class="purple">You hear Robin shout, alongside jingling chains.</span>
+		<<elseif $timer is 1>>
+			<span class="pink">Robin cries out in fear.</span>
+		<<else>>
+			<<set $robinFucked to true>>
+			<<NPCVirginityTakenByOther "Robin" "anal" "sex machine">>
+			<<if _robin.vagina isnot "none">>
+				<<NPCVirginityTakenByOther "Robin" "vaginal" "sex machine">>
+			<</if>>
+			<span class="red">You hear Robin scream in agony as the machine penetrates <<nnpc_his "Robin">>
+				<<if _npcVirgin.vaginal and _npcVirgin.anal>>
+					pussy and ass for the first time.
+				<<elseif _npcVirgin.vaginal>>
+					pussy for the first time, as well as <<nnpc_his "Robin">> ass.
+				<<elseif _npcVirgin.anal>>
+					<<if _robin.vagina isnot "none">>
+						ass for the first time, as well as <<nnpc_his "Robin">> pussy.
+					<<else>>
+						ass for the first time.
+					<</if>>
+				<<else>>
+					<<if _robin.vagina isnot "none">>
+						pussy and ass.
+					<<else>>
+						ass.
+					<</if>>
+				<</if>>
+			</span>
+			The crowd roars in excitement.
+			<<npcincr Robin trauma 5>><<ggrtrauma true>><<control -10>><<lcontrol>>
+		<</if>>
+	<</if>>
+<</if>>
+<br><br>
+
+<<audience>>
+
+<<set $phase to 0>>
+<<machine_state>>
+
+<<if $orgasmdown gte 1 or $pain gte 100 and $willpowerpain is undefined>>
+<<else>>
+	<br>
+	Your mouth is free.
+	<<if ($anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1) and $machine.speed gte 2>>
+		You could ask them to slow your machine down, but Robin will suffer.
+	<</if>>
+	<br>
+	<label><<radiobutton "$phase" 0 autocheck>> Rest</label> |
+	<<if $anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1>>
+		<<if $machine.speed is 3>>
+			<label><<radiobutton "$phase" 1 autocheck>> Ask them to slow down</label> |
+		<<elseif $machine.speed is 2>>
+			<label><<radiobutton "$phase" 2 autocheck>> <span class="brat">Ask them to slow down</span></label> |
+		<</if>>
+	<</if>>
+	<br><br>
+<</if>>
+
+<<machine_actions>>
+
+<<if $machine.number lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Machine End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Machine]]>><</link>></span><<nexttext>>
+<</if>>
+<br>
+
+:: Underground Robin Machine End
+<<effects>>
+
+<<if ($anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1) and $robinFucked>>
+	The crowd applauds and shouts as the machines come to a halt.
+<<else>>
+	The crowd boos as the machines come to a halt.
+	<<if !$robinFucked>>
+		Robin looks relieved.
+	<</if>>
+<</if>>
+The $machineHandler unhooks you and Robin, and leads you off the stage and back to your cells.
+<<if $robinMachineSpeed is 3>>
+	Robin won't look at you.
+<<elseif $robinMachineSpeed is 1>>
+	Robin glances at you, before quickly looking away.
+<</if>>
+<br>
+
+<<machine_end>>
+
+<<switch $robinMachineSpeed>>
+	<<case 1>>
+		<<undergroundRobinTopic "machineLow" "undiscussed">>
+	<<case 2>>
+		<<undergroundRobinTopic "machineNormal" "undiscussed">>
+	<<case 3>>
+		<<undergroundRobinTopic "machineHigh" "priority">>
+	<<default>>
+		<<if $anusfucked is 1 or $vaginafucked is 1 or $penisfucked is 1>>
+			<<undergroundRobinTopic "machinePlayer" "undiscussed">>
+		<<else>>
+			<<undergroundRobinTopic "machineNone" "undiscussed">>
+		<</if>>
+<</switch>>
+<<unset $machineHandler>><<unset $robinFucked>><<unset $robinMachineSpeed>>
+
+<<undergroundReturnToCell>>
+
+:: Underground Robin Kiss Intro
+<<effects>>
+<<set _robin to statusCheck("Robin")>>
+<<generate1>><<npc Robin 2>><<generate3>><<generate4>>
+<<if $NPCList[0].penis is "none">>
+	<<npcstrapon 0>>
+<</if>>
+<<if $NPCList[2].penis is "none">>
+	<<npcstrapon 2>>
+<</if>>
+You are led to another part of the dungeon, and into a well-lit room. A <<person4>><<person>> is already here, holding a camera. Stood beside <<him>> is a <<person1>><<person>> and <<person3>><<person>>, the <<person>> holding Robin's leash.
+<br><br>
+
+The <<person4>><<person>> nods, and the other two drag you and Robin close together.
+<<if $worn.face.type.includes("covered")>>
+	The <<person>> removes your $worn.face.name.
+	<<faceruined>><<set $worn.face.type.push("broken")>>
+<</if>>
+The <<person1>><<person>> grabs your hair and mashes your face into Robin's. Robin yelps.<<pain 1>><<gpain>>
+<br><br>
+
+<<He>> and the <<person3>><<person>> adjust your heads like you're mannequins, until your mouths are pressed against each other. They hold you there as you struggle, and the <<person4>><<person>> hooks your collars together. You try to pull away, and Robin tries the same, but you're locked together. There's barely any space between you two.
+<<takeKissVirginity _args[0] "loveRape">>
+<br><br>
+
+Robin looks at you in confusion, before <<if _robin.trauma gte 70>>yelling<<else>>whimpering<</if>> as the <<person3>><<person>> yanks <<his>> collar and positions <<himself>> behind Robin. The <<person1>><<person>> does the same to you, pressing <<his>> <<print $NPCList[0].penisdesc>> against your <<bottom>>. The <<person4>><<person>> sets up <<his>> camera.
+<br><br>
+
+<<link [[Next|Underground Robin Kiss Molestation]]>><<set $molestationstart to 1>><</link>>
+
+:: Underground Robin Kiss Molestation
+<<set _robin to statusCheck("Robin")>>
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<set $enemyno to 2>><<set $enemynomax to 2>><<maninit>><<npcexpose>>
+	<<set $enemyhealth to $NPCList[0].health>><<set $enemyhealthmax to $enemyhealth>>
+	<<npc_attempt_sex>>
+	<<set $fightTargets to [0]>><<set $robinDungeonKiss to true>><<set $robinFucked to false>>
+	<<set $kissTurns to 0>>
+	<<set $position to "doggy">>
+	<<set $NPCList[0].lefthand to "hair">>
+	<<set $NPCList[1].lefthand to "idle">><<set $NPCList[1].righthand to "idle">>
+	<<if $NPCList[1].penis isnot "none">><<set $NPCList[1].penis to "idle">><</if>>
+	<<if $NPCList[1].vagina isnot "none">><<set $NPCList[1].vagina to "idle">><</if>>
+	<<set $NPCList[1].location.head to "head">><<set $NPCList[1].mouth to "kiss">>
+	<<set $mouthstate to "kiss">><<set $mouthuse to "kiss">><<set $mouthtarget to 0>><<set $head to "bound">>
+	<<if _robin.dom gte 80 and _robin.trauma lte 20>>
+		<<set $timer to 6>>
+	<<elseif _robin.dom gte 60 and _robin.trauma lte 40>>
+		<<set $timer to 5>>
+	<<elseif _robin.dom gte 40 and _robin.trauma lte 60>>
+		<<set $timer to 4>>
+	<<else>>
+		<<set $timer to 3>>
+	<</if>>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+The <<person4>><<person>>
+<<if $timer % 3 is 0 or random(1,3) is 4>>
+	moves to get a closer shot of
+	<<print either(
+		"yours and Robin's faces.",
+		"yours and Robin's faces.",
+		"your <<breasts>>.",
+		"your <<bottom>>.",
+		"your <<genitals>>.",
+		"Robin's " + _robin.breastsdesc + ".",
+		"Robin's bottom.",
+		"Robin's <<nnpc_genitals \"Robin\">>.",
+	)>>
+<<else>>
+	continues to film.
+<</if>>
+<<if $face isnot "covered">>
+	<<fameexhibitionism 1>><<famerape 1>>
+<</if>>
+<<if $timer is 0>>
+	<<set $timer to 3>>
+<</if>>
+<<set $speechdisable to 0>>
+<br><br>
+
+<<if $enemyno lte 1>>
+	<<set $enemyhealthmax to 1>>
+<</if>>
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Kiss Molestation Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Kiss Molestation Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Kiss Molestation]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Kiss Molestation Finish
+<<effects>>
+<<set _robin to statusCheck("Robin")>>
+
+<<if $enemyhealth lte 0>>
+	The <<person1>><<person>> trips and falls against the <<person3>><<person>>. Amused, the <<person4>><<person>> turns the camera to watch the two of them flounder on the ground.
+	<br><br>
+
+	The <<person1>><<person>> struggles to <<his>> feet. "Shut up," <<he>> says. "Before they get away." But you're already well ahead of them. By the time they stand up, you've already unhooked your collar from Robin's and run down the corridor, past your cell, then into the empty theatre. You run towards the stairs on the far side, and climb as fast as you can, footsteps thundering beneath you.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+	<br><br>
+
+<<else>>
+	<<if $kissTurns gte $turnCount/2>>
+		<<undergroundRobinTopic "kissBack" "undiscussed">>
+	<</if>>
+	<<set $enemynomax to 1>>
+
+	<<if $robinFucked>>
+		The <<person3>><<person>> moans as <<he>> cums, hilting <<himself>> inside Robin.
+		<<if npcHasStrapon(2)>>
+			<<He>> unhooks <<his>> $NPCList[2].penisdesc and swats Robin in the ass with it, making <<nnpc_him "Robin">> <<print _robin.trauma gte 70 ? "flinch" : "yelp">>.
+		<<else>>
+			<<He>> pulls out, letting <<his>> semen drip down Robin's legs.
+		<</if>>
+	<<else>>
+		The <<person3>><<person>> convulses before <<he>> can penetrate Robin.
+		<<if npcHasStrapon(2)>>
+			Enraged, <<he>> unhooks <<his>> $NPCList[2].penisdesc and swats Robin in the back of the head with it, making <<nnpc_him "Robin">> <<print _robin.trauma gte 70 ? "flinch" : "yelp">>.
+		<<else>>
+			Enraged, <<he>> smacks the back of Robin's head.
+		<</if>>
+	<</if>>
+	<<npcincr Robin trauma 3>><<grtrauma true>>
+	<br><br>
+
+	<<ejaculation>>
+
+	"That'll do," says the <<person4>><<person>> as <<he>> stops filming. You're horrified at the thought of other people seeing what happened to you and Robin, but there's nothing you can do as the <<person1>><<person>> leads you back to your cell. You can faintly hear Robin weeping.
+	<br><br>
+
+	<<undergroundReturnToCell>>
+	<br>
+<</if>>
+<<unset $robinDungeonKiss>><<unset $robinFucked>><<unset $kissTurns>>
+
+:: Underground Robin Hunt Intro
+<<location "forest">><<effects>>
+
+You are led past the empty stage and up the flight of stairs. The air becomes cooler and fresher as you ascend, and you soon emerge outside.
+
+<<if $daystate is "dawn">>
+	The sun is hidden behind trees, but you think it's dawn.
+<<elseif $daystate is "dusk">>
+	The sun is hidden behind trees, but you think it's dusk.
+<<elseif $daystate is "day">>
+	You have to shield your eyes from the sunlight, and you realise just how dim those lights were.
+<<elseif $daystate is "night">>
+	The cool night air blows against your skin.
+<</if>>
+It looks like you're in a forest clearing.
+<br><br>
+
+Robin, as well as several naked <<victimgirls>>, are lined up, with a rope suspended in front of them. There's a large crowd stood around them, leering. The <<victimgirls>> stare at their feet. <<covered>> You're dragged to the end of the line.
+<<if $worn.feet.type.includes("shackle")>>
+	You hear a click as the cuffs around your ankles are unlocked and removed.
+	<<remove_shackle>>
+<</if>>
+<br><br>
+<<beastNEWinit 1 dog>><<generate2>>
+
+<<person2>> A <<person>> in a waistcoat enters the clearing, holding three <<beasttype 0>>s on leashes. They strain against <<person2>><<him>>, practically pulling <<him>> along. "We're ready," <<he>> says, brandishing a pistol. "First shot, the prey run. Second shot, we hunt!" The crowd cheers. You hear one of the <<victimgirls>> sob.
+<br><br>
+
+<<silently>><<beasttype 0>><<set $robinBeast to _text_output>><</silently>>
+
+<<link [[Run|Underground Robin Hunt]]>><</link>><<athleticsdifficulty 1 1200>>
+
+:: Underground Robin Hunt
+<<location "forest">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+
+The pistol sounds off, and you and Robin run.
+<br><br>
+
+You've barely reached the trees when the second shot rings out.
+
+<<if $athleticsSuccess>>
+	<<pass 5>>
+	You run as fast you can. You hear the <<victimgirls>> scream as they are caught, one by one.
+	<<if _robin.dom gte 70>>
+		You keep sprinting, and Robin catches up to you. You stumble, and <<nnpc_he "Robin">> grabs your arm and keeps running.
+		<br><br>
+
+		Eventually both of you collapse against a tree, your breaths heavy. You hear nothing but your beating heart, Robin's panting and the wind rustling through leaves.
+		<br><br>
+
+		Robin gives you a teary smile. "We got away." <<nnpc_He "Robin">> crushes you in a hug. "We got away!"
+		<br><br>
+
+		<<endevent>><<dungeonescape>>
+
+		<<link [[Next|Underground Robin Escape Orphanage]]>><<set $phase to 1>><<unset $robinBeast>><</link>>
+	<<else>>
+		<<if $rng gte 51 and ($monster is 1 or $bestialitydisable is "f")>>
+			<span class="red">Robin cries out as a <<beasttype 0>> tackles <<nnpc_him "Robin">>.</span> You quickly turn around and charge at the <<beasttype 0>>, who turns to you at your arrival.
+			<br><br>
+
+			"We have a hero over here," you hear the <<person>> say as <<he>> catches up. <<He>> is not alone, much of the crowd follows behind <<him>>. "You know what happens to heroes? They have examples made out of them." The crowd forms a circle around you.
+			<br><br>
+
+			<<link [[Next|Underground Robin Hunt Dog]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
+		<<else>>
+			<span class="red">Robin cries out as the <<person>> tackles <<nnpc_him "Robin">>.</span> You quickly turn around and charge at the <<person>>, who turns to you at your arrival.
+			<br><br>
+
+			"How brave," the <<person>> says. A number of others from the crowd arrive, panting. "I've always wanted to ruin a hero."
+			<br><br>
+
+			<<saveNPC 1 "underground_hunt_1">>
+			<<endevent>>
+			<<loadNPC 0 "underground_hunt_1">>
+			<<clearNPC "underground_hunt_1">>
+
+			<<link [[Next|Underground Robin Hunt Molestation]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>>
+		<</if>>
+	<</if>>
+<<else>>
+	<<if $rng gte 51 and ($monster is 1 or $bestialitydisable is "f")>><!-- Modified for BeastPeople -->
+		You run as fast you can. You hear the <<victimgirls>> scream as they are caught, one by one.
+		You hear something running through the grass behind you, and feel <<print ($monster is 1 ? "hands" : "paws")>> on your back as you are forced to your knees.
+		The <<beasttype 0>> starts humping<<if $NPCList[0].penis isnot "none">>, you feel <<bhis 0>> penis prodding your <<bottom>><</if>>.
+		<br><br>
+
+		"Looks like <<bhe 0>> likes you," you hear the <<person>> say as <<he>> catches up. <<He>> is not alone, much of the crowd follows behind <<him>>.
+		"And it's only fair <<bhe 0>> gets to do as <<bhe 0>> likes with <<bhis 0>> quarry." The crowd forms a circle around you.
+		<br><br>
+
+		<<link [[Next|Underground Robin Hunt Dog]]>><<set $molestationstart to 1>><</link>>
+		<br>
+	<<else>>
+		You run as fast you can. You hear the <<victimgirls>> scream as they are caught, one by one.
+		You hear something running through the grass behind you right before you are tackled to the ground.
+		<br><br>
+
+		"Got you," the <<person>> says. A number of others from the crowd arrive, panting. "Now the hunter devours <<his>> prey."
+		<br><br>
+
+		<<saveNPC 1 "underground_hunt_1">>
+		<<endevent>>
+		<<loadNPC 0 "underground_hunt_1">>
+		<<clearNPC "underground_hunt_1">>
+
+		<<link [[Next|Underground Robin Hunt Molestation]]>><<set $molestationstart to 1>><</link>>
+		<br>
+	<</if>>
+<</if>>
+
+:: Underground Robin Hunt Dog
+<<set _robin to statusCheck("Robin")>>
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<beastCombatInit>>
+
+	<<set $enemytrust -= 80>>
+	<<if _robin.dom gte 70>>
+		<<enable_rescue>>
+	<</if>>
+<</if>>
+
+<<effects>>
+
+<<effectsman>>
+<br>
+<<beast>>
+<br>
+
+<<if _robin.dom lt 70 and $phase is 0>>
+	<<undergroundRobinInterlude>>
+<</if>>
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Hunt Dog Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Hunt Dog Finish]]>><</link>></span><<nexttext>>
+<<elseif $alarm is 1 and $rescue is 1>>
+	<span id="next"><<link [[Next|Underground Robin Hunt Dog Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Hunt Dog]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Hunt Dog Finish
+<<location "forest">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<undergroundRobinTopic "hunt" "undiscussed">>
+	<<beastejaculation>>
+
+	The <<beasttype 0>> barks happily. "Good dog," says the <<person2>><<person>>. The crowd whisper among themselves as <<he>> grabs your leash and pulls you to your feet.
+	<<if !$worn.feet.type.includes("shackle")>>
+		You're held still as cold metal is clamped around your ankles once more.
+		<<shackle_feet>>
+	<</if>>
+	"I hope the other groups had as much fun with their prey as we did."
+	<br><br>
+
+	A scream erupts nearby, and the crowd rushes away to investigate, leaving the <<person>> to drag you back into the dungeon and down to your cell. Robin is brought down shortly.
+	<<undergroundReturnToCell>>
+
+<<elseif $enemyhealth lte 0>>
+	The <<beasttype 0>> whimpers and flees. <<tearful>> you jump to your feet.
+	<<if _robin.dom gte 70>>
+		Robin pushes off <<if $rng gte 51>>a $robinBeast<<else>>the <<person2>><<person>><</if>> attacking <<nnpc_him "Robin">> and grabs your hand,
+	<<else>>
+		You push <<if $rng gte 51>>a $robinBeast<<else>>the <<person2>><<person>><</if>> off of Robin and grab <<nnpc_his "Robin">> hand,
+	<</if>>
+	and together you run for it. The <<person2>><<person>> tries to stop you, but you dodge <<him>> and escape into the forest.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+
+<<else>>
+	Robin pushes off <<if $rng gte 51>>a $robinBeast<<else>>the <<person2>><<person>><</if>> attacking <<nnpc_him "Robin">> and kicks the <<beasttype 0>> away from you, before grabbing your hand.
+	Together you run for it. The <<person2>><<person>> tries to stop you, but you dodge <<him>> and escape into the forest.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+<</if>>
+<<unset $robinBeast>>
+
+:: Underground Robin Hunt Molestation
+<<set _robin to statusCheck("Robin")>>
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+
+	<<maninit>>
+	<<if _robin.dom gte 70>>
+		<<enable_rescue>>
+	<</if>>
+<</if>>
+
+<<effects>>
+<<effectsman>><<man>>
+
+<<if _robin.dom lt 70>>
+	<<undergroundRobinInterlude>>
+<</if>>
+
+<<audience>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Hunt Molestation Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Hunt Molestation Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Hunt Molestation]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Hunt Molestation Finish
+<<set $outside to 0>><<set $location to "underground">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+<<if $enemyarousal gte $enemyarousalmax>>
+	<<undergroundRobinTopic "hunt" "undiscussed">>
+	<<ejaculation>>
+	You hear the crowd whisper among themselves as the <<person>> grabs your leash and pulls you to your feet.
+	<<if !$worn.feet.type.includes("shackle")>>
+		You're held still as cold metal is clamped around your ankles once more.
+		<<shackle_feet>>
+	<</if>>
+	"I hope the other groups had as much fun with their prey as we did."
+	<br><br>
+
+	A scream erupts nearby, and the crowd rushes away to investigate, leaving the <<person>> to drag you back into the dungeon and down to your cell. Robin is brought down shortly.
+	<<undergroundReturnToCell>>
+<<elseif $enemyhealth lte 0>>
+	The <<person>> falls against a tree. <<tearful>> you jump to your feet.
+	<<if _robin.dom gte 70>>
+		Robin pushes off a $robinBeast attacking <<nnpc_him "Robin">> and grabs your hand,
+	<<else>>
+		You push a $robinBeast off of Robin and grab <<nnpc_his "Robin">> hand,
+	<</if>>
+	and together you run for it. The <<person1>><<person>> tries to stop you, but you dodge <<him>> and escape into the forest.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+
+<<else>>
+	Robin pushes off a $robinBeast attacking <<nnpc_him "Robin">> and pushes the <<person>> away, before grabbing your hand.
+	Together you run for it. The <<person2>><<person>> tries to stop you, but you dodge <<him>> and escape into the forest.
+	<br><br>
+
+	<<undergroundEscapeForestRobin>>
+<</if>>
+<<unset $robinBeast>>
+
+:: Underground Robin Escape Stalk
+<<if $molestationstart is 1>>
+	<<set $molestationstart to 0>>
+	<<location "forest">>
+	<<violence 1>>
+	<<neutral 1>>
+
+	<<generate1>><<generate2>><<generate3>>
+
+	<<maninit>>
+	<<stalk_init>>
+	<<stalk_run>>
+	<<set $combatgoal to "confront">>
+	<<set $NPCList[0].bold to 10000>>
+	Tightly holding Robin's hand, you run through the forest. <span class="pink">You are being pursued.</span>
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+<br><br>
+
+<<print either(
+	"Robin grips your hand tightly.",
+	"Robin looks back.",
+	"Robin's hand is shaking."
+)>>
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $stalk_end>>
+	<span id="next"><<link [[Next|Underground Robin Escape Stalk End]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Escape Stalk]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Escape Stalk End
+<<set $outside to 1>><<set $location to "town">><<effects>>
+<<run statusCheck("Robin")>>
+
+<<person1>>
+<<if $stalk_end is "confront">>
+	<<if $feetaction is "confront">>
+		<<if $submissive gte 1150>>
+			"I can do this," you reassure yourself. "Robin, stay safe, okay?" You turn to face your pursuer.
+		<<elseif $submissive lte 850>>
+			"Keep going! I'll catch up." You give Robin a smile before turning towards your pursurer.
+		<<else>>
+			"Robin, keep moving and don't stop until you're home," you say before facing your pursuer.
+		<</if>>
+	<<else>>
+		<<if !$stalk_assess>>A pair of hands grab you<<else>>The <<person1>><<person>> grabs you<</if>> from behind.
+		<br><br>
+
+		You motion for Robin to keep running.
+	<</if>>
+	Robin nods hesitantly before vanishing between the trees.
+	<br><br>
+
+	With Robin safe, you breathe a sigh of relief.
+	<br><br>
+
+	<<saveNPC 0 dungeon_1>><<saveNPC 1 dungeon_2>><<saveNPC 2 dungeon_3>>
+	<<endcombat>>
+	<<loadNPC 0 dungeon_1>><<loadNPC 1 dungeon_2>><<loadNPC 2 dungeon_3>>
+	<<clearNPC dungeon_1>><<clearNPC dungeon_2>><<clearNPC dungeon_3>>
+	<<run delete $NPCList[0].state>><<run delete $NPCList[1].state>><<run delete $NPCList[2].state>>
+
+	The <<person1>><<person>> cracks <<his>> neck, as the <<person2>><<person>> and <<person3>><<person>> step beside <<him>>. "I guess you'll just need to work twice as hard in <<nnpc_his "Robin">> stead." They advance on you.
+	<br><br>
+
+	<<link [[Next|Underground Robin Escape Fight]]>><<set $fightstart to 1>><</link>>
+<<elseif $stalk_end is "hide">>
+	You emerge from your hiding place. <<if $stalk_assess>>The <<person1>><<person>><<else>>Whoever was following you<</if>> is nowhere to be found. <<tearful>> you turn to Robin. <<nnpc_He "Robin">> hugs you tightly.
+	<br><br>
+
+	Robin peeks <<nnpc_his "Robin">> head out. "Are they gone?"
+	<br><br>
+
+	You nod and grab Robin's hand as you continue through the forest.
+	<br><br>
+
+	<<endcombat>><<clotheson>>
+
+	<<link [[Next|Underground Robin Escape Orphanage]]>><<set $phase to 1>><</link>>
+<<else>>
+	Robin pants as you lose your pursuers. "I need... a second," <<nnpc_he "Robin">> wheezes. <<tearful>> you pull <<nnpc_him "Robin">> into a hug, which <<nnpc_he "Robin">> reciprocates.
+	<br><br>
+
+	After Robin leans on you for a few minutes, you hold <<nnpc_his "Robin">> hand and take <<nnpc_him "Robin">> to the orphanage.
+	<br><br>
+
+	<<endcombat>><<clotheson>>
+
+	<<link [[Next|Underground Robin Escape Orphanage]]>><<set $phase to 1>><</link>>
+<</if>>
+
+:: Underground Robin Escape Fight
+
+<<if $fightstart is 1>>
+	<<set $fightstart to 0>>
+	<<controlloss>>
+	<<violence 1>>
+	<<neutral 1>>
+	<<molested>>
+	<<maninit>>
+	<<set $enemyanger += 200>>
+	<<set $enemytrust -= 100>>
+
+	<<set $position to ["missionary","doggy"].pluck()>>
+<</if>>
+
+<<effects>>
+
+<<effectsman>><<man>>
+
+<<stateman>>
+<br><br>
+<<actionsman>>
+
+<<if $enemyhealth lte 0>>
+	<span id="next"><<link [[Next|Underground Robin Escape Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<span id="next"><<link [[Next|Underground Robin Escape Fight Finish]]>><</link>></span><<nexttext>>
+<<elseif $pain gte 100 and $willpowerpain is 0>>
+	<span id="next"><<link [[Next|Underground Robin Escape Fight Finish]]>><</link>></span><<nexttext>>
+<<else>>
+	<span id="next"><<link [[Next|Underground Robin Escape Fight]]>><</link>></span><<nexttext>>
+<</if>>
+
+:: Underground Robin Escape Fight Finish
+<<effects>>
+
+<<if $enemyhealth lte 0>>
+	The <<person>> stumbles backward, trips over a root and sends all three of your attackers to the ground. While they're down, you make a run for it.
+<<elseif $enemyarousal gte $enemyarousalmax>>
+	<<ejaculation>>
+	They stop to catch their breath, and you take the opportunity to run for it.
+<<else>>
+	<<set _defeat to true>>
+	You collapse to the ground, too hurt to move.
+	<br><br>
+
+	The <<fullGroup>> pick you up and drag you through the forest, rocks and roots scratching against your face as you go. You eventually find yourself underground again.
+	<br><br>
+
+	They reach Robin's old cell and throw you in.
+	<<if $undergroundbrothel.water gte 1>>
+		"You'll give in." <<he>> says. "And if you don't, you'll become too weak to fight back. Why make it harder on yourself?" <<He>> slams the door shut.
+	<<else>>
+		"So that's how it's gonna be?" <<he>> says, looking disappointed. "Fine. We'll see how stubborn you are without water." <<He>> slams the door shut.
+		<<set $undergroundbrothel.water to 1>>
+	<</if>>
+	<br><br>
+
+	<<run delete $undergroundbrothel.robin>>
+	<<run delete $undergroundbrothel.robinSpoke>>
+	<<run delete $undergroundbrothel.robinTalk>>
+	<<run delete $undergroundbrothel.robinTopics>>
+	<<set $undergroundbrothel.robinGone to true>>
+
+	<<undergroundReturnToCell "Robin">>
+<</if>>
+<br><br>
+
+<<if !_defeat>>
+	<<tearful>> you make your way back to the orphanage.
+	<<endcombat>><<clotheson>>
+
+	<<link [[Next|Underground Robin Escape Orphanage]]>><<set $phase to 0>><</link>>
+<</if>>
+
+:: Underground Robin Escape Swim
+<<location "sea">><<water>><<effects>>
+
+<<if $swimmingSuccess>>
+	It's rough going, swimming while helping Robin, but you eventually manage to reach the shore with <<him>> in tow.
+<<else>>
+	You try your best, but neither you or Robin is the best swimmer. You try to make your way to shore but end up blacking out on the way.
+	<<pass 120>>
+	You wake up an unknown amount of time later collapsed on the beach. Robin is groaning a few feet away. <<stress 6>><<gstress>><<npcincr Robin trauma 5>><<grtrauma true>>
+<</if>>
+<br><br>
+
+<<link [[Next|Underground Robin Escape Shore]]>><</link>>
+<br>
+
+:: Underground Robin Escape Shore
+<<location "beach">><<effects>>
+<<set _robin to statusCheck("Robin")>>
+
+You are on the beach.
+<br><br>
+<<if $exposed gte 1>>
+	<<towelup>>
+	Robin runs into a nearby changing room before returning with a towel. <<He>> gently wraps it around you before hugging you.
+<<else>>
+	Robin approaches you and engulfs you in a hug.
+<</if>>
+<<if _robin.dom gte 40>>
+	"I'm so glad we're out of there!" <<He>> holds your head against <<his>> shoulder and runs a hand through your hair.
+<<else>>
+	"We did it! We're free!" <<He>> buries <<his>> head in your shoulder.
+<</if>>
+<<He>> breaks the hug, taking your hand in <<his>>. "Let's go home," <<he>> says, pulling you towards the orphanage.
+<br><br>
+
+<<link [[Follow Robin (1:00)|Underground Robin Escape Orphanage]]>><<set $phase to 1>><<pass 60>><<endevent>><<npcincr Robin dom 1>><</link>><<gdom>>
+<br>
+<<link [[Stay here|Underground Robin Escape Stay]]>><<npcincr Robin dom -1>><</link>><<ldom>>
+<br>
+
+:: Underground Robin Escape Orphanage
+<<set $outside to 0>><<set $location to "home">>
+<<npc Robin>>
+<<if $phase is 1>>
+	Robin leads the way back to the orphanage and into the main hall. Once there <<he>> ushers you into <<his>> room and tackles you onto the bed in a big hug.
+	"We're free!" <<He>> laughs happily.
+	<<if $home_gone gte 24>>
+		"I'd never thought I'd miss my room this much," Robin says, still hugging you.
+	<<elseif $home_gone gte 72>>
+		Tears of joy run down <<his>> face and onto you. Robin hugs you tighter.
+	<<else>>
+		Robin smiles. "It's good to be back."
+	<</if>>
+<<else>>
+	You enter the orphanage and knock on Robin's room. The door opens almost instantly. Robin pulls you inside and gives you a long hug.
+	"You're back!"
+<</if>>
+<<npcincr Robin trauma -10>><<npcincr Robin love 5>><<llrtrauma>><<glove>>
+<<home_effects>>
+<br><br>
+
+You both chat for a while. Robin says that <<hes>> going to hug you once for every time <<he>> wanted to while imprisoned. <<He>> keeps <<his>> word.
+<<stress -4>><<trauma -4>><<lstress>><<ltrauma>>
+<br><br>
+
+<<robinoptions>>
+
+:: Underground Robin Escape Stay
+<<location "beach">><<effects>>
+<<run statusCheck("Robin")>>
+
+Robin releases your hand. "Well, if you're sure you'll be okay."
+<<He>> waves you a reluctant goodbye, and starts to make <<his>> way towards the orphanage.
+<br><br>
+
+<<link [[Next|Beach]]>><</link>>
+<br>
\ No newline at end of file
diff --git a/game/special-dance/actions.twee b/game/special-dance/actions.twee
index 34981c33e075bd9fa92ddfecb697d3b57d82d78b..097fe1617418d25ace3d65dc42e3522eed30d383 100644
--- a/game/special-dance/actions.twee
+++ b/game/special-dance/actions.twee
@@ -454,7 +454,7 @@
 				<<if $audiencearousal gte 90>>
 					<<dancepull>>
 				<<elseif $drunk gte random(1, 1000)>>
-					You <span class="purple">drunkenly</span> trip and stumble, falling from the table. The <<person>> catches you. Someone cops a feel of your <<bottom>> as you climb back up.
+					<<dancedrunktrip>>
 				<<else>>
 					<<if $audiencearousal gte 41>>
 						<<if $rng gte 51>>
@@ -508,7 +508,7 @@
 <<widget "dancedrink">>
 	<<set $danceevent to "drink">>
 	<<person1>>The <<person>> offers you a glass of wine.
-	<<if $drunk gte $danceskill - 800>>
+	<<if $drunk gte currentSkillValue('danceskill') - 800>>
 		You feel unsteady already.
 	<</if>>
 <</widget>>
@@ -518,6 +518,51 @@
 	Driven mad with lust, <span class="pink">the <<person1>><<person>> grasps your leg, and tries to pull you off the stage.</span>
 <</widget>>
 
+<<widget "dancedrunktrip">>
+	You <span class="purple">drunkenly</span> trip and stumble, falling from the table.
+	<<if (!$worn.upper.type.includes("naked") or !$worn.under_upper.type.includes("naked")) and random(1)>>
+		<<if !$worn.upper.type.includes("naked")>>
+			<<set $worn.upper.integrity -= 10>>
+			You're caught, but your $worn.upper.name snags.
+			<<if $worn.upper.integrity lte 0>>
+				<span class="pink">You hear a tear,</span> and look down to find its tattered remains vanishing in the crowd.
+				<<arousal 100>><<upperruined>><<set $audiencearousal += 5>><<set $audienceexcitement += 5>>
+			<<else>>
+				Someone cops a feel of your chest as you climb back up.
+			<</if>>
+		<<else>>
+			<<set $worn.under_upper.integrity -= 10>>
+			You're caught, but your $worn.under_upper.name snags.
+			<<if $worn.under_upper.integrity lte 0>>
+				<span class="pink">You hear a tear,</span> and look down to find its tattered remains vanishing in the crowd.
+				<<arousal 100>><<underupperruined>><<set $audiencearousal += 5>><<set $audienceexcitement += 5>>
+			<<else>>
+				Someone cops a feel of your chest as you climb back up.
+			<</if>>
+		<</if>>
+	<<elseif !$worn.lower.type.includes("naked")>>
+		<<set $worn.lower.integrity -= 10>>
+		You're caught, but your $worn.lower.name snags.
+		<<if $worn.lower.integrity lte 0>>
+			<span class="pink">You hear a tear,</span> and look down to find its tattered remains vanishing in the crowd.
+			<<arousal 100>><<lowerruined>><<set $audiencearousal += 5>><<set $audienceexcitement += 5>>
+		<<else>>
+			Someone cops a feel of your <<bottom>> as you climb back up.
+		<</if>>
+	<<elseif !$worn.under_lower.type.includes("naked")>>
+		<<set $worn.under_lower.integrity -= 10>>
+		You're caught, but your $worn.under_lower.name snags.
+		<<if $worn.under_lower.integrity lte 0>>
+			<span class="pink">You hear a tear,</span> and look down to find its tattered remains vanishing in the crowd.
+			<<arousal 100>><<underlowerruined>><<set $audiencearousal += 5>><<set $audienceexcitement += 5>>
+		<<else>>
+			Someone cops a feel of your <<bottom>> as you climb back up.
+		<</if>>
+	<<else>>
+		The <<person>> catches you. Someone cops a feel of your <<bottom>> as you climb back up.
+	<</if>>
+<</widget>>
+
 <<widget "dancerape">>
 	<<set $danceevent to "rape">>
 	Driven wild by their lust, your audience surges toward you, their eyes filled with a primal hunger.
diff --git a/game/special-dance/effects.twee b/game/special-dance/effects.twee
index bbd71b6463d4ed9f0085ec7a679b174928653e10..87f00d9d60f5ba4fcd4a09fa32e0348918bedf95 100644
--- a/game/special-dance/effects.twee
+++ b/game/special-dance/effects.twee
@@ -194,7 +194,7 @@
 
 <<if $danceaction is "overupperstruggle">>
 	<<set $danceaction to 0>>
-	You struggle to prevent your $worn.over_upper.name being ripped clean from your body. 
+	You struggle to prevent your $worn.over_upper.name being ripped clean from your body.
 	<<if !$worn.over_upper.type.includes("dance")>>
 		You twist the flexible material free, regaining control with <span class="teal">no damage done,</span> and your dignity mostly intact.
 	<<else>>
@@ -381,22 +381,22 @@
 <<if ($danceaction is "cool" or $danceaction is "sexual" or $danceaction is "sophisticated" or $danceaction is "seductive") and $arousal gte $arousalmax>>
 	<<orgasmstage>>
 <<elseif $danceaction is "cool">>
-	
+
 	<<set $danceaction to 0>><<set $danceactiondefault to "cool">>
 	<<stress -2>><<tiredness 1>><<dancestat>><<set $dancespeech to "dance">>
 	<<if $audience gte 1>>
 		<<set $audiencearousal += $allure / 2000 + currentSkillValue('danceskill') / 100>>
 		<<set $audienceexcitement += currentSkillValue('danceskill') / 100>>
 	<</if>>
-	<<if $danceskill lte 200>>
+	<<if currentSkillValue('danceskill') lte 200>>
 		Not knowing what else to do, you just bob along rhythmically.
-	<<elseif $danceskill lte 400>>
+	<<elseif currentSkillValue('danceskill') lte 400>>
 		You try to mimic a fashionable dance you've seen on the internet. You end up feeling and looking a little silly.
-	<<elseif $danceskill lte 600>>
+	<<elseif currentSkillValue('danceskill') lte 600>>
 		You decide to keep things simple, and focus on making sure you dance with competence.
-	<<elseif $danceskill lte 800>>
+	<<elseif currentSkillValue('danceskill') lte 800>>
 		You try to mimic a fashionable dance you've seen, and pull it off.
-	<<elseif $danceskill lte 999>>
+	<<elseif currentSkillValue('danceskill') lte 999>>
 		You dance energetically yet smoothly, each move flowing naturally into the next.
 	<<else>>
 		You dominate the area with your moves.
@@ -415,15 +415,15 @@
 		<<set $audiencearousal += $allure / 3000 + currentSkillValue('danceskill') / 100>>
 		<<set $audienceexcitement += currentSkillValue('danceskill') / 100>>
 	<</if>>
-	<<if $danceskill lte 200>>
+	<<if currentSkillValue('danceskill') lte 200>>
 		You sway around in what you hope is a refined manner.
-	<<elseif $danceskill lte 400>>
+	<<elseif currentSkillValue('danceskill') lte 400>>
 		You assume a refined posture, then sway around in what you hope is a refined manner.
-	<<elseif $danceskill lte 600>>
+	<<elseif currentSkillValue('danceskill') lte 600>>
 		You focus on maintaining balance as you twirl and glide.
-	<<elseif $danceskill lte 800>>
+	<<elseif currentSkillValue('danceskill') lte 800>>
 		Without sacrificing poise, you move with speed and confidence.
-	<<elseif $danceskill lte 999>>
+	<<elseif currentSkillValue('danceskill') lte 999>>
 		The serenity with which you move conceals the confidence and focus of your mind.
 	<<else>>
 		You are the very model of dignity as you pirouette.
@@ -442,15 +442,15 @@
 		<<set $audiencearousal += $allure / 1000 + currentSkillValue('danceskill') / 100>>
 		<<set $audienceexcitement += currentSkillValue('danceskill') / 100>>
 	<</if>>
-	<<if $danceskill lte 200>>
+	<<if currentSkillValue('danceskill') lte 200>>
 		You try to dance seductively, but look more silly than sexy.
-	<<elseif $danceskill lte 400>>
+	<<elseif currentSkillValue('danceskill') lte 400>>
 		You dance slowly and daintily, trying to emphasise your beauty.
-	<<elseif $danceskill lte 600>>
+	<<elseif currentSkillValue('danceskill') lte 600>>
 		Your dance moves emphasise the beauty of your body.
-	<<elseif $danceskill lte 800>>
+	<<elseif currentSkillValue('danceskill') lte 800>>
 		You dance smoothly yet suggestively.
-	<<elseif $danceskill lte 999>>
+	<<elseif currentSkillValue('danceskill') lte 999>>
 		You dance with grace and eroticism, showcasing your body.
 	<<else>>
 		Your beguiling movements give little away yet promise the world.
@@ -469,15 +469,15 @@
 		<<set $audiencearousal += $allure / 500 + currentSkillValue('danceskill') / 100>>
 		<<set $audienceexcitement += currentSkillValue('danceskill') / 100>>
 	<</if>>
-	<<if $danceskill lte 200>>
+	<<if currentSkillValue('danceskill') lte 200>>
 		You try to dance provocatively. Due to your lack of skill, this amounts to little more than waving your buttocks around.
-	<<elseif $danceskill lte 400>>
+	<<elseif currentSkillValue('danceskill') lte 400>>
 		You shake your assets, giving a show to anyone who looks.
-	<<elseif $danceskill lte 600>>
+	<<elseif currentSkillValue('danceskill') lte 600>>
 		You dance flirtatiously, your movements emphasising your lewder parts.
-	<<elseif $danceskill lte 800>>
+	<<elseif currentSkillValue('danceskill') lte 800>>
 		You dance skilfully and provocatively, your movements emphasising your lewder parts.
-	<<elseif $danceskill lte 999>>
+	<<elseif currentSkillValue('danceskill') lte 999>>
 		You dance skilfully and provocatively, your entire body advertising a raw sexual energy.
 	<<else>>
 		Your moves radiate a primal and intoxicating sexuality.
@@ -602,7 +602,7 @@
 	You ignore the potential client.
 <<elseif $danceaction is "corruptionResult">>
 	<<if $corruptionResult is "defy">>
-		<<if $corruption_slime gte ($willpower / 10)>>
+		<<if $corruption_slime gte (currentSkillValue('willpower') / 10)>>
 			<span class="red">Fearing the slime's control, you attempt to leave the stage. The slime doesn't allow it.</span>
 			<<set $corruptionDancing to 1>>
 		<<else>>
@@ -849,7 +849,7 @@
 				"Getting stripped on stage, you have no dignity."
 			<</if>>
 		<<elseif $dancespeech is "dance">>
-			<<if $danceskill gte 800>>
+			<<if currentSkillValue('danceskill') gte 800>>
 				<<if $rng gte 76>>
 					"This <<girl>> can really move."
 				<<elseif $rng gte 51>>
@@ -859,7 +859,7 @@
 				<<else>>
 					"Think <<pshe>> fucks as well as <<pshe>> dances?"
 				<</if>>
-			<<elseif $danceskill gte 400>>
+			<<elseif currentSkillValue('danceskill') gte 400>>
 				<<if $rng gte 76>>
 					"You'd almost be worth watching even if you weren't hot."
 				<<elseif $rng gte 51>>
@@ -869,7 +869,7 @@
 				<<else>>
 					"I bet <<pshes>> loving the attention."
 				<</if>>
-			<<elseif $danceskill gte 200>>
+			<<elseif currentSkillValue('danceskill') gte 200>>
 				<<if $rng gte 76>>
 					"You can keep to a rhythm, at least."
 				<<elseif $rng gte 51>>
diff --git a/game/special-dance/job.twee b/game/special-dance/job.twee
index 113dffa25ff9b842eb9bb26cc1e242758b395ef3..bc97935151f985e47bab8641b57e876db35fcff6 100644
--- a/game/special-dance/job.twee
+++ b/game/special-dance/job.twee
@@ -24,6 +24,7 @@
 <<unset $dance_job_time>>
 <<unset $dance_job_interest>>
 <<unset $dance_job_bunny>>
+<<unset $dance_job_exhib>>
 <<unset $dance_job_stage>>
 <<unset $dance_job_exposed>>
 <<unset $dance_job_stage_explore>>
@@ -52,7 +53,7 @@ The audience seem
 
 <<widget "dance_job_interest">>
 <<if _args[0]>>
-    <<set $dance_job_interest += _args[0]>>
+	<<set $dance_job_interest += _args[0]>>
 <</if>>
 <</widget>>
 
diff --git a/game/special-exhibition/main.twee b/game/special-exhibition/main.twee
index e96e5ab8849571d49870a6f527c5764beb8a875a..eee8a251fc4d3c76ea6b9051d1834ab34512e3a2 100644
--- a/game/special-exhibition/main.twee
+++ b/game/special-exhibition/main.twee
@@ -347,8 +347,8 @@ The <<beasttype>> yelps and flees, its tail between its legs. <<tearful>> you lo
 You take a deep breath, and dash across the bridge.
 	<br><br>
 <<if $rng gte 81>>
-	<<generate1>><<generate2>><<person1>>
-	You're halfway along when a <<person>> and <<person2>><<person>> walk around a hedge, heading this way. You'll be seen.
+	<<generate1>><<generate2>>
+	You're halfway along when a <<fullGroup>> walk around a hedge, heading this way. You'll be seen.
 	<br><br>
 
 	<<link [[Jump off the bridge|Park Ex Bridge Jump]]>><<pain 6>><</link>><<gpain>>
@@ -387,7 +387,7 @@ You haul yourself over the railing, and plummet into cool water. The current sei
 :: Park Ex Bridge Cover
 <<effects>>
 
-<<covered>> You keep your eyes downcast. The <<person1>><<person>> and <<person2>><<person>> notice you.
+<<covered>> You keep your eyes downcast. The <<fullGroup>> notice you.
 <<fameexhibitionism 2>>
 
 <<if $rng gte 81>>
@@ -512,10 +512,10 @@ You climb down the bank beside the bridge, and lower yourself into the cool wate
 :: Commercial Ex Mannequin
 
 <<set $outside to 1>><<set $location to "town">><<effects>>
-You <<nervously>> line up beside the mannequins. Hoping to blend in. <<generate1>><<generate2>>A <<person1>><<person>> and <<person2>><<person>> round the corner. The <<person1>><<person>> stares at your <<lewdness>> as <<he>> walks by. "That one looks a little... accurate." You feel self-conscious, but dare not move an inch.
+You <<nervously>> line up beside the mannequins. Hoping to blend in. <<generate1>><<generate2>>A <<fullGroup>> round the corner. The <<person1>><<person>> stares at your <<lewdness>> as <<he>> walks by. "That one looks a little... accurate." You feel self-conscious, but dare not move an inch.
 <br><br>
 <<endevent>>
-<<generate1>><<generate2>>Before the first pair leave view, a <<person1>><<person>> and <<person2>><<person>> pass them by, heading your way. The <<person1>><<person>> stops in front of you. "Look at this one. It's so lifelike. Do you think anyone would notice if we took it?"
+<<generate1>><<generate2>>Before the first pair leave view, a <<fullGroup>> pass them by, heading your way. The <<person1>><<person>> stops in front of you. "Look at this one. It's so lifelike. Do you think anyone would notice if we took it?"
 <br><br>
 <<if $rng gte 81>>
 	The <<person2>><<person>> looks up and down the alley. "Alright. But we need to be quick." <<He>> grabs you by the ankles and tries to lift you. "Why is it so heavy? Give us a hand here," the <<person1>><<person>> moves in to help. This isn't what you planned, but you don't know how they'll react if they find out the truth.
@@ -548,7 +548,7 @@ You <<nervously>> line up beside the mannequins. Hoping to blend in. <<generate1
 	<<else>>
 		You cover your body with your hands as you <<nervously>> continue.
 	<</if>>
-<<generate1>><<generate2>>A <<person1>><<person>> and <<person2>><<person>> walk round the corner and smile as they behold you in your undressed state. As they pass you, the <<person1>><<person>> grabs you by the mouth and shoves you against a wall.
+<<generate1>><<generate2>>A <<fullGroup>> walk round the corner and smile as they behold you in your undressed state. As they pass you, the <<person1>><<person>> grabs you by the mouth and shoves you against a wall.
 <br><br>
 <<maninit>><<hand_gag 0 left>>
 <<enable_rescue>>
@@ -576,7 +576,7 @@ You <<nervously>> line up beside the mannequins. Hoping to blend in. <<generate1
 <<else>>
 	You cover your body with your hands as you <<nervously>> continue.
 <</if>>
-<<generate1>><<generate2>>A <<person1>><<person>> and <<person2>><<person>> walk round the corner and smile as they behold you in your undressed state. They don't say anything, but you can feel their eyes on your body as you round the corner out of view.
+<<generate1>><<generate2>>A <<fullGroup>> walk round the corner and smile as they behold you in your undressed state. They don't say anything, but you can feel their eyes on your body as you round the corner out of view.
 <<gtrauma>><<gstress>><<trauma 2>><<stress 2>><<fameexhibitionism 2>>
 <br><br>
 <<endevent>>
@@ -820,7 +820,7 @@ The tentacles retract into the darkness.
 
 <<set $outside to 1>><<set $location to "town">><<effects>>
 
-You crouch behind a dumpster and wait for the voices to pass. Unfortunately, they decide to stop right in front of your hiding place. You peek out and see a <<generate1>><<generate2>><<person1>><<person>> and <<person2>><<person>>. You stay as still as possible, not wanting to be caught in such a state. They eventually move on, allowing you to continue.
+You crouch behind a dumpster and wait for the voices to pass. Unfortunately, they decide to stop right in front of your hiding place. You peek out and see a <<generate1>><<generate2>><<fullGroup>>. You stay as still as possible, not wanting to be caught in such a state. They eventually move on, allowing you to continue.
 <br><br>
 
 <<endevent>>
@@ -1494,7 +1494,12 @@ You wait a moment, looking carefully from side to side, waiting for a gap in the
 		<span class="green">Confident</span> there's no one around, you run out from behind the tree and into the street. Reaching the top of the staircase can't have taken more than a dozen seconds, but it feels much longer.
 		<br><br>
 
-		You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.<<if $ex_flyover is undefined>><<exhibitionism5>><<set $ex_flyover to 1>><<else>><br><br><</if>>
+		You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.
+		<<if $ex_flyover is undefined>>
+			<<exhibitionism5>><<set $ex_flyover to 1>>
+		<<else>>
+			<br><br>
+		<</if>>
 
 			<<skulduggeryuse>>
 
@@ -1508,7 +1513,12 @@ You wait a moment, looking carefully from side to side, waiting for a gap in the
 		Heart thudding, you wait for the <<person>> to disappear around a corner before making your move. You run out from behind the tree and into the street. Reaching the top of the staircase can't have taken more than a dozen seconds, but it feels much longer.
 		<br><br>
 
-		You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.<<if $ex_flyover is undefined>><<exhibitionism5>><<set $ex_flyover to 1>><<else>><br><br><</if>>
+		You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.
+		<<if $ex_flyover is undefined>>
+			<<exhibitionism5>><<set $ex_flyover to 1>>
+		<<else>>
+			<br><br>
+		<</if>>
 
 			<<skulduggeryuse>>
 
@@ -1521,7 +1531,12 @@ You wait a moment, looking carefully from side to side, waiting for a gap in the
 		You're not confident, but you take a deep breath, then run out from behind the tree and into the street. Reaching the top of the staircase can't have taken more than a dozen seconds, but it feels much longer.
 		<br><br>
 
-		You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.<<if $ex_flyover is undefined>><<exhibitionism5>><<set $ex_flyover to 1>><<else>><br><br><</if>>
+		You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.
+		<<if $ex_flyover is undefined>>
+			<<exhibitionism5>><<set $ex_flyover to 1>>
+		<<else>>
+			<br><br>
+		<</if>>
 
 			<<skulduggeryuse>>
 
@@ -1530,7 +1545,12 @@ You wait a moment, looking carefully from side to side, waiting for a gap in the
 
 	<<else>>
 		<<generatey1>><<person1>>
-		You take a deep breath, then run out from behind the tree and into the street. <<if $ex_flyover is undefined>><<exhibitionism5>><<set $ex_flyover to 1>><<else>><br><br><</if>>
+		You take a deep breath, then run out from behind the tree and into the street.
+		<<if $ex_flyover is undefined>>
+			<<exhibitionism5>><<set $ex_flyover to 1>>
+		<<else>>
+			<br><br>
+		<</if>>
 
 		You're halfway up the staircase <span class="red">when you hear a voice behind you.</span> "Nice view," <<he>> says. <<covered>> You look over your shoulder, and see a <<person>> leaning against the same tree you hid behind. <<He>> stomps on a cigarette as <<he>> walks closer, looking up at you.
 		<<gstress>><<stress 6>><<garousal>><<arousal 600>>
@@ -1549,7 +1569,12 @@ You wait a moment, looking carefully from side to side, waiting for a gap in the
 <<effects>>
 
 <<generatey1>><<person1>>
-You take a deep breath, then run out from behind the tree and into the street. <<if $ex_flyover is undefined>><<exhibitionism5>><<set $ex_flyover to 1>><<else>><br><br><</if>>
+You take a deep breath, then run out from behind the tree and into the street.
+<<if $ex_flyover is undefined>>
+	<<exhibitionism5>><<set $ex_flyover to 1>>
+<<else>>
+	<br><br>
+<</if>>
 
 You're halfway up the staircase <span class="red">when you hear a voice behind you.</span> "Nice view," <<he>> says. <<covered>> You look over your shoulder, and see a <<person>> leaning against the same tree you hid behind. <<He>> stomps on a cigarette as <<he>> walks closer, looking up at you. <<He>> holds a phone, the camera pointed right at you.
 <<gstress>><<stress 6>><<garousal>><<arousal 600>>
@@ -1564,7 +1589,12 @@ You're halfway up the staircase <span class="red">when you hear a voice behind y
 You don't think there's anyone around. You take a deep breath, then run out from behind the tree and into the street. Reaching the top of the staircase can't have taken more than a dozen seconds, but it feels much longer.
 <br><br>
 
-You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.<<if $ex_flyover is undefined>><<exhibitionism3>><<set $ex_flyover to 1>><<else>><br><br><</if>>
+You crouch once at the top, hidden from the street by the short barrier on either side. Your heart thunders in your chest.
+<<if $ex_flyover is undefined>>
+	<<exhibitionism3>><<set $ex_flyover to 1>>
+<<else>>
+	<br><br>
+<</if>>
 
 <<link [[Next|Flyover Ex Top]]>><</link>>
 <br>
@@ -1617,7 +1647,7 @@ You dart into an alley, then around another corner. You lean against the wall, p
 	You doubt anyone <<he>> shows will recognise you, but the thought makes you shiver nonetheless.
 	<<garousal 6>>
 <<else>>
-	You wonder how many people the <<person>> will show. The thought makes you shiver.<<fameexhibitionism 10 pic>>
+	You wonder how many people the <<person>> will show. The thought makes you shiver.<<fameexhibitionism 10 "pic">>
 	<<garousal>><<arousal 600>>
 <</if>>
 <br><br>
@@ -1720,8 +1750,8 @@ You crawl across the flyover, hidden from view by the short barriers on either s
 <br><br>
 
 <<if $rng gte 76>>
-	<<generate1>><<generate2>><<person1>>
-	You're halfway across when a <<person>> and <<person2>><<person>> emerge from an alley near the opposite stairs. They start to climb them.
+	<<generate1>><<generate2>>
+	You're halfway across when a <<fullGroup>> emerge from an alley near the opposite stairs. They start to climb them.
 	<<gstress>><<stress 6>>
 	<br><br>
 
@@ -1780,7 +1810,7 @@ You turn and run the way you came, hoping the barrier is tall enough to protect
 
 <<else>>
 	<<fameexhibitionism 2>>
-	You're almost there, when you <span class="red">trip</span> and fall to your knees, sticking your <<bottom>> in the hair. Between your legs you see the <<person1>><<person>> and <<person2>><<person>>, stood still and staring right at you.
+	You're almost there, when you <span class="red">trip</span> and fall to your knees, sticking your <<bottom>> in the hair. Between your legs you see the <<fullGroup>>, stood still and staring right at you.
 	<<gstress>><<garousal>><<stress 6>><<arousal 600>>
 	<br><br>
 	You scramble the rest of the way, and dash down the stairs.
@@ -1799,7 +1829,7 @@ You turn and run the way you came, hoping the barrier is tall enough to protect
 You stand up straight, hold your head high, and strut the rest of the way. You don't know if the people below can see your <<lewdness>> over the barrier. The thought makes you shiver.
 <br><br>
 
-The <<person1>><<person>> and <<person2>><<person>> stop when they reach the top of the stairs, stunned at the <<if $exposed gte 2>>naked<<else>>exposed<</if>> <<girl>> marching towards them.
+The <<fullGroup>> stop when they reach the top of the stairs, stunned at the <<if $exposed gte 2>>naked<<else>>exposed<</if>> <<girl>> marching towards them.
 
 <<if $rng gte 81>>
 	You pass them by, surprised that your knees haven't buckled. <span class="red">They reach out and grasp your arms.</span> "You can't walk around like that without expecting trouble," the <<person1>><<person>> says. "This is your fault."
@@ -2518,10 +2548,10 @@ You climb to your feet. Much of the cream is gone.
 
 You can't resist it. You stand with your legs some way apart, make a peace sign with your hands, and smile for the camera. The <<person>> is overjoyed as <<he>> snaps away.
 <<if $worn.under_lower.type.includes("naked")>>
-	<<fameexhibitionism 5 pic>>
+	<<fameexhibitionism 5 "pic">>
 	<<exhibitionism5>>
 <<else>>
-	<<fameexhibitionism 10 pic>>
+	<<fameexhibitionism 10 "pic">>
 	<<exhibitionism3>>
 <</if>>
 
@@ -3124,7 +3154,7 @@ You duck beneath a nearby stall, and listen. You hear the students chat, getting
 	The table above shifts as someone sits on it, <span class="green">but they don't stay long.</span> An empty milkshake cup lands beside you, and you hear them walk away.
 	<br><br>
 	<<skulduggeryuse>>
-	
+
 	You peek out, waiting for another lull in the crowds. You seize your chance, dashing the rest of the way and disappearing down an alley.
 	<br><br>
 	You round a corner and lean against a wall, your whole body shaking.
@@ -3141,9 +3171,9 @@ You duck beneath a nearby stall, and listen. You hear the students chat, getting
 	<<if $exposed gte 2>>
 		"I can't wait to tell the others about this," a <<person1>><<person>> adds.
 	<<else>>
-		<<if $fameexhibitionism gte 1000>>
+		<<if $fame.exhibitionism gte 1000>>
 			"Me too," a <<person1>><<person>> adds. "I've heard <<pshes>> a huge pervert."
-		<<elseif $fameexhibitionism gte 400>>
+		<<elseif $fame.exhibitionism gte 400>>
 			"Me too," a <<person1>><<person>> adds. "I'd heard <<pshe>> was a pervert. Now I know for sure."
 		<<else>>
 			"Me too," a <<person1>><<person>> adds. "I didn't know <<pshe>> was a pervert."
@@ -3178,7 +3208,7 @@ You kick the <<person3>><<person>> away from you. The others back off.
 
 <<else>>
 
-	<<generate6>><<person6>>"What you kids up to?" a <<person>> shouts, peering between the fish hanging from the roof of <<his>> stall.
+	<<generate6>><<person6>>"What you brats up to?" a <<person>> shouts, peering between the fish hanging from the roof of <<his>> stall.
 	<br><br>
 
 	"Shit," the <<person1>><<person>> says, glancing over. <<He>> turns and runs. The other students follow suit.
@@ -3210,7 +3240,7 @@ You endure their leering gaze.
 
 <<else>>
 
-	The <<person1>><<person>> reaches forward, but is interrupted. <<generate6>><<person6>>"What you kids up to?" a <<person>> shouts, peering between the fish hanging from the roof of <<his>> stall.
+	The <<person1>><<person>> reaches forward, but is interrupted. <<generate6>><<person6>>"What you brats up to?" a <<person>> shouts, peering between the fish hanging from the roof of <<his>> stall.
 	<br><br>
 
 	"Shit," the <<person1>><<person>> says, glancing over. <<He>> turns and runs. The other students follow suit.
@@ -3266,9 +3296,9 @@ You stop running, and turn. The students come to a stop themselves some way away
 The students examine you from head to toe, but there's no denying what they're really interested in.
 <br><br>
 
-<<if $fameexhibitionism gte 1000>>
+<<if $fame.exhibitionism gte 1000>>
 	"Everyone knows you're a pervert," the <<person1>><<person>> says. "I'm glad I finally got to see it for myself."
-<<elseif $fameexhibitionism gte 400>>
+<<elseif $fame.exhibitionism gte 400>>
 	"I'd heard you were a pervert," the <<person1>><<person>> says. "Now I know for sure."
 <<else>>
 	"I've seen you around school," the <<person1>><<person>> says. "But I didn't know you were a pervert."
diff --git a/game/special-exhibition/night.twee b/game/special-exhibition/night.twee
index a802e662c7b9095f7481da483f9018287cd088d3..7c5e2f1fe91e045cb815d382634a8c5f41f7e49e 100644
--- a/game/special-exhibition/night.twee
+++ b/game/special-exhibition/night.twee
@@ -170,9 +170,9 @@ You push your <<bottom>> onto the counter, and swing your legs round to face the
 	<br><br>
 <<elseif $player.penisExist and $player.vaginaExist>>
 	"You have both," <<he>> gasps.
-	<<if $fameexhibitionism gte 1000>>
+	<<if $fame.exhibitionism gte 1000>>
 		"You're the exhibitionist I keep hearing about."
-	<<elseif $fameexhibitionism gte 400>>
+	<<elseif $fame.exhibitionism gte 400>>
 		"I thought it was a myth."
 	<<else>>
 		"I didn't know such a thing was possible."
diff --git a/game/special-masturbation/actions.twee b/game/special-masturbation/actions.twee
index e5c98ab73e457266bf27ac2020dfcb1df90ce6e0..93aebf6c214b6f8a227f00ddcec036442331a4a5 100644
--- a/game/special-masturbation/actions.twee
+++ b/game/special-masturbation/actions.twee
@@ -177,7 +177,7 @@
 		| <label><<radiobutton "$leftaction" "manusprostate" autocheck>> <span class="sub">Tease your prostate</span></label>
 	<</if>>
 	| <label><<radiobutton "$leftaction" "manusstop" autocheck>> Move your hand away</label>
-	
+
 
 <<elseif $leftarm is "manusentrancedildo">>
 	You tease your anus with the $_lefttoycolour $_lefttoy your left hand.
@@ -560,6 +560,20 @@
 		<br><br>
 		Your mouth is free.
 		<br>
+
+		<<set _items to window.listUniqueCarriedSextoys()>>
+
+		<<for _i to 0; _i < _items.length; _i++>>
+			<<if _items[_i].type.includes("aphrodisiacpill")>>
+				<<set _hasAphrodisiac to true>>
+				<<break>>
+			<</if>>
+		<</for>>
+
+		<<if _hasAphrodisiac is true>>
+			| <label><<radiobutton "$mouthaction" "maphropill" autocheck>> Swallow an aphrodisiac pill</label>
+		<</if>>
+
 		<<if $_genitals_exposed>>
 			<<if $canSelfSuckPenis and $penisuse is 0>>
 				| <label><<radiobutton "$mouthaction" "mpenisentrance" autocheck>> <span class="sub">Lick your penis</span></label>
diff --git a/game/special-masturbation/effects.twee b/game/special-masturbation/effects.twee
index 6b9f3da13d40ef787ed2ff0493f7912e7ecf84cf..7a3dbdc22d3721a13ea82d27194f2abc33f25214 100644
--- a/game/special-masturbation/effects.twee
+++ b/game/special-masturbation/effects.twee
@@ -223,7 +223,7 @@
 		<<if $lactating is 1 and $breastfeedingdisable is "f">>
 			<<if $milk_amount gte 1>>
 				<span class="lewd">Milk leaks from your buds.</span>
-				
+
 				<!-- Run twice if both hands are on the player's breasts -->
 				<<breastfeed 1>>
 				<<if _handsOnBreasts is 2>><<breastfeed 2>><</if>>
@@ -514,13 +514,13 @@
 	<<arousal 200>>
 
 	<<if $arousal gte $arousalmax * (4/5)>>
-		You grope your $_balls with both of your hands and enjoy the feeling of tightness as they clench up against the base of your penis.  
+		You grope your $_balls with both of your hands and enjoy the feeling of tightness as they clench up against the base of your penis.
 	<<elseif $arousal gte $arousalmax * (3/5)>>
 		You fondle your $_balls with both of your hands and enjoy the tickling feeling.
 	<<elseif $arousal gte $arousalmax * (2/5)>>
 		You jiggle your $_balls around in your hands and enjoy the feeling of gravity on them.
 	<<else>>
-		You roll your $_balls around in your hands. 
+		You roll your $_balls around in your hands.
 	<</if>>
 <<elseif $leftaction is "mballsfondle" or $rightaction is "mballsfondle">>
 	<<if $leftaction is "mballsfondle">>
@@ -533,15 +533,15 @@
 	<<arousal 100>>
 	/* if both hands are on their balls, say "the other" when referring to the second */
 	<<set $_oneofyourballs to ($ballssize lte 0 ? "both of your $_balls" : ($_oneofyourballs is undefined ? "one of your $_balls" : "the other"))>>
-	
+
 	<<if $arousal gte $arousalmax * (4/5)>>
-		You grope $_oneofyourballs with your $_hand and enjoy the feeling of tightness as your balls clench up against the base of your penis.  
+		You grope $_oneofyourballs with your $_hand and enjoy the feeling of tightness as your balls clench up against the base of your penis.
 	<<elseif $arousal gte $arousalmax * (3/5)>>
 		You fondle $_oneofyourballs with your $_hand and enjoy the tickling feeling.
 	<<elseif $arousal gte $arousalmax * (2/5)>>
 		You jiggle $_oneofyourballs in your $_hand and enjoy the feeling of gravity on it.
 	<<else>>
-		You stroke $_oneofyourballs with your $_hand. 
+		You stroke $_oneofyourballs with your $_hand.
 	<</if>>
 <</if>>
 
@@ -550,14 +550,14 @@
 	<<set $rightactiondefault to $rightaction>><<set $rightaction to 0>>
 	<<arousal 400>>
 	<<set $_gently to ($arousal gte $arousalmax * (4/5) ? "urgently" : ($arousal gte $arousalmax * (3/5) ? "" : "gently"))>>
-	
+
 	<<switch $ballssize>>
 		<<case -2 -1 0>> <span class="red">This text should be unreachable.</span>
 		<<case 1 2>> You cup your $_balls with your hands and $_gently squeeze them.
 		<<case 3>> You cup your $_balls with your hands and $_gently squeeze them.
 		<<case 4>> You $_gently squeeze your $_balls with your hands.
 	<</switch>>
-	
+
 	<<set _ballplayeffects to true>>
 
 <<elseif $leftaction is "mballssqueeze" or $rightaction is "mballssqueeze">>
@@ -579,7 +579,7 @@
 		<<case 3>> You cup $_oneofyourballs with your $_hand and $_gently squeeze it.
 		<<case 4>> You $_gently squeeze $_oneofyourballs with your $_hand.
 	<</switch>>
-	
+
 	<<set _ballplayeffects to true>>
 
 <</if>>
@@ -875,7 +875,7 @@
 
 	You push your <<penis>> deeper into your mouth.
 	/* dev note: add willpower to check if the player can get their penis down their throat? */
-	
+
 	<<if $selfsuckDepth is $penisHeight>>
 		<<if $leftarm is "mpenisentrance" and $rightarm is "mpenisentrance">>
 			<<set $leftarm to 0>><<set $leftactiondefault to "mrest">>
@@ -1091,6 +1091,25 @@
 	<span class="red">Your head keeps bobbing up and down, sucking on the phallus plant. Try as you might, you just can't will yourself to stop.</span>
 <</if>>
 
+<<if $mouthaction is "maphropill">>
+	<<set $mouthactiondefault to "mrest">><<set $mouthaction to 0>><<set $mouth to 0>>
+	<<set $_pills to $player.inventory.sextoys["aphrodisiac pills"][0]>>
+	<<set $_pills.uses -= 1>>
+	<<if $_pills.uses lte 0>>
+		<<run V.player.inventory.sextoys["aphrodisiac pills"].splice(0,1)>>
+	<</if>>
+	<<if $drugged gt 0>>
+		<br>
+		You pop an aphrodisiac pill into your mouth and swallow. The lewd warmth within you intensifies.
+		<br>
+	<<else>>
+		<br>
+		You pop an aphrodisiac pill into your mouth and swallow. A lewd warmth begins to spread in your belly.
+		<br>
+	<</if>>
+	<<drugs 300>>
+<</if>>
+
 <!-- Vagina actions -->
 
 <<if $vaginaaction is "mpenisflowerrub">>
@@ -1211,7 +1230,7 @@
 		<<set $leftaction to 0>><<set $leftarm to "mpickupdildo">>
 		<<arousal 200>>
 		You pick up your _playerToys[$currentToyLeft].colour _playerToys[$currentToyLeft].name with your left hand.
-		
+
 		<<set $currentToyRight to $selectedToyRight>>
 		<<set $rightactiondefault to (_playerToys[$currentToyRight].type.includes("stroker") ? $_actiondefaultstroker : $_actiondefault)>>
 		<<set $rightaction to 0>><<set $rightarm to "mpickupdildo">>
@@ -1443,7 +1462,7 @@
 		<<set _lubricated to ($rightFingersSemen gte 1 ? "semen-lubricated" : "")>>
 	<</if>>
 	<<set _anotherfinger to ($mVaginaFingerAdd is 2 ? "two more _lubricated fingers" : "another _lubricated finger")>>
-	
+
 	<<set $_arousalGain to 200 + 50*$fingersInVagina>>
 	<<arousal $_arousalGain>>
 	<<if $bugsinside is 1>>
@@ -1488,7 +1507,7 @@
 		<<set $semenInVagina to ($rightFingersSemen gte 1)>>
 		<<set _lubricated to ($rightFingersSemen gte 1 ? "semen-lubricated" : "")>>
 	<</if>>
-	<<arousal 500>>
+	<<arousal 650>>
 	<span class="lblue">With a final push, you're able to shove all five fingers into your pussy.</span>
 	You feel your muscles part for the intrusion and pulse around your hand.
 	<<set $vaginastate to "penetrated">>
@@ -1541,7 +1560,7 @@
 	<<if $rightaction is "mvaginafist">>
 		<<set $rightactiondefault to $rightaction>><<set $rightaction to 0>>
 	<</if>>
-	<<arousal 400>>
+	<<arousal 500>>
 	<<addVaginalWetness 5>>
 	<<if $arousal gte ($arousalmax / 5) * 4>>
 		<<if $vaginaArousalWetness gte 60>>
@@ -1778,11 +1797,12 @@
 
 <<if $leftaction is "mvaginateasedildo" or $rightaction is "mvaginateasedildo">>
 	/* set toy or toys */
-	<<set $_toy to _playerToys[$currentToyLeft].name>>
 	<<if $leftaction is "mvaginateasedildo" and $rightaction is "mvaginateasedildo">>
 		<<set $_toy to ($currentToyLeft is $currentToyRight ? _playerToys[$currentToyLeft].name+"s" : _playerToys[$currentToyLeft].name + " and " + _playerToys[$currentToyRight].name)>>
 	<<elseif $rightaction is "mvaginateasedildo">>
-		<<set $_toy to $playerToys[$currentToyRight].name>>
+		<<set $_toy to _playerToys[$currentToyRight].name>>
+	<<elseif $leftaction is "mvaginateasedildo">>
+		<<set $_toy to _playerToys[$currentToyLeft].name>>
 	<</if>>
 	/* set actions */
 	<<if $leftaction is "mvaginateasedildo">>
@@ -1857,7 +1877,7 @@
 <<elseif $leftaction is "mvaginaclitdildo" or $rightaction is "mvaginaclitdildo">>
 	<<if $leftaction is "mvaginaclitdildo">>
 		<<set $leftactiondefault to $leftaction>><<set $leftaction to 0>>
-		
+
 		<<if $arousal gte ($arousalmax / 5) * 4>>
 			You press down on your clit with your $_lefttoycolour $_lefttoy and rub it in a circular motion, feeling your arousal build.
 		<<elseif $arousal gte ($arousalmax / 5) * 3>>
@@ -1869,7 +1889,7 @@
 	<<if $rightaction is "mvaginaclitdildo">>
 		<<set $rightactiondefault to $rightaction>><<set $rightaction to 0>>
 		<<if $arousal gte ($arousalmax / 5) * 4>>
-			You press down on your clit with your  $_righttoycolour $_righttoy and rub it in a circular motion, feeling your arousal build.
+			You press down on your clit with your $_righttoycolour $_righttoy and rub it in a circular motion, feeling your arousal build.
 		<<elseif $arousal gte ($arousalmax / 5) * 3>>
 			You tease the tip of your clit with your $_righttoycolour $_righttoy.
 		<<else>>
@@ -2211,7 +2231,7 @@
 <<set $rng to random(0,100)>>
 <<if $leftaction is "mrest">>
 	<<set $leftactiondefault to 0>>
-	<<if $rng gte 90 and $corruption_slime gt ($willpower / 10) and $corruptionMasturbation is undefined>>
+	<<if $rng gte 90 and $corruption_slime gt (currentSkillValue('willpower') / 10) and $corruptionMasturbation is undefined>>
 		<<set $corruptionMasturbation to true>>
 		<<set $corruptionMasturbationCount to random(2,6)>>
 		<span class="red">The slime in your ear decides that it will continue for you.</span>
@@ -2223,7 +2243,7 @@
 <<set $rng to random(0,100)>>
 <<if $rightaction is "mrest">>
 	<<set $rightactiondefault to 0>>
-	<<if $rng gte 90 and $corruption_slime gt ($willpower / 10) and $corruptionMasturbation is undefined>>
+	<<if $rng gte 90 and $corruption_slime gt (currentSkillValue('willpower') / 10) and $corruptionMasturbation is undefined>>
 		<<set $corruptionMasturbation to true>>
 		<<set $corruptionMasturbationCount to random(2,6)>>
 		<span class="red">The slime in your ear decides that it will continue for you.</span>
@@ -2233,7 +2253,7 @@
 	<</if>>
 <</if>>
 <<set $rng to random(0,100)>>
-<<if $rng gte Math.clamp(135 - ($corruption_slime / 2),80,98) and $corruption_slime gt ($willpower / 10) and $corruptionMasturbation is undefined>>
+<<if $rng gte Math.clamp(135 - ($corruption_slime / 2),80,98) and $corruption_slime gt (currentSkillValue('willpower') / 10) and $corruptionMasturbation is undefined>>
 	<<set $corruptionMasturbation to true>>
 	<<set $corruptionMasturbationCount to random(1,4)>>
 	<span class="red">The slime in your ear decides that it wants you to have more fun.</span>
diff --git a/game/special-masturbation/main.twee b/game/special-masturbation/main.twee
index 781478a2462db18bf30237cbe9f06c6636b547ac..c93699c11b476c5c279522862dd15edd45944713 100644
--- a/game/special-masturbation/main.twee
+++ b/game/special-masturbation/main.twee
@@ -16,7 +16,7 @@
 <<else>>
 	<<link [[Continue|Nude Masturbation]]>><</link>><<nexttext>>
 	<br>
-	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 		<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 	<<elseif $corruptionMasturbation isnot true>>
 		<<link [[Stop|Nude Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -47,7 +47,7 @@ You lie back on the grass, panting.
 <<masturbationactions>>
 <<link [[Continue|Bath Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Bath Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -87,7 +87,7 @@ Doing this here means you can wash away the evidence.<<wash>>
 
 <<link [[Continue|Men's Toilets Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Men's Toilets Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -127,7 +127,7 @@ Doing this here means you can wash away the evidence.<<wash>>
 
 <<link [[Continue|Women's Toilets Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Women's Toilets Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -167,7 +167,7 @@ Doing this here means you can wash away the evidence.<<wash>>
 
 <<link [[Continue|School Boy's Toilets Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|School Boy's Toilets Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -205,7 +205,7 @@ You listen out in case anyone snuck in while you were distracted. You don't hear
 
 <<link [[Continue|School Girl's Toilets Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|School Girl's Toilets Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -246,7 +246,7 @@ You listen out in case anyone snuck in while you were distracted. You don't hear
 
 	<<link [[Continue|Clearing Spring Masturbation]]>><</link>><<nexttext>>
 	<br>
-	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 		<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 	<<elseif $corruptionMasturbation isnot true>>
 		<<link [[Stop|Clearing Spring Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -259,9 +259,9 @@ You listen out in case anyone snuck in while you were distracted. You don't hear
 
 	<<npc Eden>><<person1>>Out of nowhere, you feel your hands being grabbed by someone else's.
 	<br><br>
-	
+
 	<<if $NPCName[$NPCNameList.indexOf("Eden")].dom gte 75>>
-		Let me," Eden says, as <<he>> guides your arms out of the way and  
+		Let me," Eden says, as <<he>> guides your arms out of the way and
 		<<if $player.penisExist>>
 			grabs your <<penis>> in <<his>> hand.
 		<<elseif $player.vaginaExist>>
@@ -284,7 +284,7 @@ You listen out in case anyone snuck in while you were distracted. You don't hear
 
 	<<link [[Continue|Clearing Spring Masturbation]]>><</link>><<nexttext>>
 	<br>
-	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+	<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 		<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 	<<elseif $corruptionMasturbation isnot true>>
 		<<link [[Stop|Clearing Spring Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -301,7 +301,7 @@ You listen out in case anyone snuck in while you were distracted. You don't hear
 
 <<link [[Continue|Clearing Spring Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Clearing Spring Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -359,7 +359,7 @@ The gentle waters caress you as you open your eyes.
 	<<link [[Continue|Maths Lesson Masturbate]]>><</link>><<nexttext>>
 	<br>
 <</if>>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Maths Lesson Masturbate Finish]]>><<set $finish to 1>><</link>>
@@ -460,7 +460,7 @@ You fondle yourself. The other students are so near, they could so easily see wh
 	<<link [[Continue|Science Lesson Masturbate]]>><</link>><<nexttext>>
 <</if>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Science Lesson Masturbate Finish]]>><<set $finish to 1>><</link>>
@@ -568,14 +568,15 @@ You fondle yourself. The other students are so near, they could so easily see wh
 	<<garousal>><<genitalarousal 100>>
 <</if>>
 
+<<masturbationeffects>>
+<<masturbationactions>>
+
 <<if $orgasmdown gte 1 and $kylarenglishstate is "active">>
 	Kylar watches your climax with awe.
 	<<glust>><<npcincr Kylar lust 5>>
+	<br><br>
 <</if>>
 
-<<masturbationeffects>>
-<<masturbationactions>>
-
 <<if $timer lte 0>>
 	<<link [[Continue|English Lesson Masturbate Finish]]>><</link>><<nexttext>>
 	<br>
@@ -584,7 +585,7 @@ You fondle yourself. The other students are so near, they could so easily see wh
 	<br>
 <</if>>
 
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|English Lesson Masturbate Finish]]>><<set $finish to 1>><</link>>
@@ -687,7 +688,7 @@ You fondle yourself. The other students are so near, they could so easily see wh
 :: History Lesson Masturbate Robin
 <<effects>>
 
-You fondle yourself. Robin glances at you, then swats your hands away from your body. "You can't do that here." <<nnpc_he Robin>> says, <<nnpc_his Robin>> voice stern. "Only in private". <<nnpc_He Robin>> looks back to the front of the class.
+You fondle yourself. Robin glances at you, then swats your hands away from your body. "You can't do that here," <<nnpc_he Robin>> says, <<nnpc_his Robin>> voice stern. "Only in private." <<nnpc_He Robin>> looks back to the front of the class.
 <br><br>
 
 <<nnpc_He Robin>> attracted too much attention. You won't be able to get away with it now.
@@ -722,7 +723,7 @@ You continue to fondle yourself.
 	<<if $timer is 20>>
 		Robin glances at you, and blushes as <<nnpc_he Robin>> realises what you're up to. "You can't do that here!" <<nnpc_he Robin>> says.
 		<br><br>
-		"Eye's front," Winter interjects. Robin jolts upright, startled.
+		"Eyes up front," Winter interjects. Robin jolts upright, startled.
 	<<elseif $rng gte 67>>
 		Robin keeps a close eye on Winter.
 	<<elseif $rng gte 33>>
@@ -751,7 +752,7 @@ The other students are so near, they could so easily see what you're doing.
 	<<link [[Continue|History Lesson Masturbate]]>><</link>><<nexttext>>
 <</if>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|History Lesson Masturbate Finish]]>><<set $finish to 1>><</link>>
@@ -848,7 +849,7 @@ You fondle yourself. The other students are so near, they could so easily see wh
 	<<link [[Continue|Swimming Lesson Masturbate]]>><</link>><<nexttext>>
 <</if>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Swimming Lesson Masturbate Finish]]>><<set $finish to 1>><</link>>
@@ -1047,7 +1048,6 @@ After a minute <<he>> cums again. "That was the third time," you say as <<he>> s
 <br><br>
 Doren is getting close, so you pull away. The <<person>> shunts <<his>> chair far away from you. You think <<he>> learned <<his>> lesson.
 <<promiscuity4>>
-<br><br>
 <<clotheson>>
 <<endmasturbation>>
 <<endcombat>>
@@ -1130,7 +1130,7 @@ You put on a brave face and tell <<him>> you're fine. "Okay. If you say so," <<h
 	<<if $submissive gte 1150>>
 		"Will you let me out?" you ask.
 	<<elseif $submissive lte 850>>
-		"This is humiliating." you say. "Where's the key?"
+		"This is humiliating," you say. "Where's the key?"
 	<<else>>
 		"When will you let me out?" you ask.
 	<</if>>
@@ -1175,7 +1175,7 @@ You put on a brave face and tell <<him>> you're fine. "Okay. If you say so," <<h
 	<<if $submissive gte 1150>>
 		"Will you let me out?" you ask.
 	<<elseif $submissive lte 850>>
-		"This is humiliating." you say. "Where's the key?"
+		"This is humiliating," you say. "Where's the key?"
 	<<else>>
 		"When will you let me out?" you ask.
 	<</if>>
@@ -1320,7 +1320,7 @@ You plant a kiss on <<his>> lips. <<takeKissVirginity "Mason">><<He>> recoils wi
 	<br>
 <</if>>
 
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|School Boy's Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -1385,7 +1385,7 @@ One of the boys glances in your direction. You back away from the door, your hea
 	<<link [[Continue|School Girl's Masturbation]]>><</link>><<nexttext>>
 	<br>
 <</if>>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|School Girl's Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -1458,7 +1458,7 @@ You fondle yourself. <<if $phase2 is 1>>They watch<<else>>The <<person1>><<perso
 	<<link [[Continue|Toilets Watched Masturbation]]>><</link>><<nexttext>>
 	<br>
 <</if>>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Toilets Watched Masturbation Finish]]>><<set $finish to 1>><</link>>
@@ -1524,64 +1524,58 @@ You fondle yourself. <<if $phase2 is 1>>They watch<<else>>The <<person1>><<perso
 	<</if>>
 <</if>>
 
+<!-- This passage contains contextual elements which require it to be used in conjunction with furniture.
+	See: [[Masturbate in bed|Home Masturbation]] -->
 :: Home Masturbation
+<<set $outside to 0>><<set $location to "home">><<effects>><<set _robin to statusCheck("Robin")>>
 
-<<effects>>
-<<upperstrip>><<lowerstrip>>
 <<if $masturbationstart is 1>>
 	<<set $masturbationstart to 0>>
 	<<set $masturbationstat += 1>>
 	<<masturbationstart>>
-	<br>
-	You take off your clothes, it's your home so there's no reason to be shy.
-	<br>
-	You feel safer doing this here anyway, hopefully nobody is going to barge in.
-	<!-- Robin can take a peek at you after school hours! -->
-	<<run getRobinLocation()>>
-	<<if $rng gte 70 and $schoolday is 1 and $hour gte 15 and _robin_location is "orphanage" and $NPCName[$NPCNameList.indexOf("Robin")].lust gte 2 and $NPCName[$NPCNameList.indexOf("Robin")].love gte 50>>
-		<br>
-		You are already naked and lying on the bed with exposed <<genitals>> when suddenly your door opens.
-		<br>
-		"Oh.."
-		<br>
-		That's all you hear from Robin as <<his>> eyes bulge out looking directly at your <<genitals>>.
-		<br>
-		"S-Sorry, I-I didn't.."
-		<br>
+
+	You sink into the plush mattress and let your hands roam.
+	<<if $exhibitionism gte 35>>
+		You wonder how thin the walls are.
+	<<else>>
+		Hopefully no one barges in.
+	<</if>>
+	<br><br>
+<</if>>
+<<masturbationeffects>>
+<<if !$robinDaily.masturbation and $rng gte 91 and _robin_location is "orphanage" and _robin.lust gte 2 and _robin.love gte 50 and _robin.trauma lt 20>>
+	<<npc Robin>><<person1>>
+	<<set $robinDaily.masturbation to true>>
+
+	You hear a creak, then a gasp. <span @class="$robinromance ? 'lewd' : 'red'">Robin stands in the doorway,</span>
+	<<if $worn.over_lower.vagina_exposed gte 1 and $worn.lower.vagina_exposed gte 1 and $worn.under_lower.vagina_exposed gte 1>>
+		eyes on your <<genitals>>.
 		<<if $exhibitionism gte 35>>
-			<<He>> is probably more embarrassed than you and you don't even try to cover your exposed parts.
-			<br>
+			You don't bother covering up. <<Hes>> probably more embarrassed than you.
 		<<else>>
-			<<He>> is just as embarrassed as you. You try to quickly cover your exposed parts.
-			<br>
+			You pull the covers over your nudity, face flushed with shame.<<stress 6>><<gstress>>
 		<</if>>
-
-		<!-- Maybe add another event here if the love and lust is high enough Robin joins?-->
-		"I-I'm sorry!" <<he>> stutters, face completely red. <<He>> turns around and closes your door in a hurry.
-		<br><br>
-		<<npcincr Robin love 1>><<npcincr Robin lust 2>>
-		<br><br>
-		<<link [[Continue|Home Masturbation]]>><</link>><<nexttext>>
-		<br>
-		<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
-			<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
-		<<elseif $corruptionMasturbation isnot true>>
-			<<link [[Stop|Home Masturbation Finish]]>><<set $finish to 1>><</link>>
+		<<arousal 500>><<npcincr Robin lust 2>><<garousal>><<glust>>
+	<<else>>
+		eyes wide in shock.
+		<<if $exhibitionism gte 15>>
+			You pay the interruption little mind. <<Hes>> probably more embarrassed than you.
 		<<else>>
-			The slime in your ear will not allow you to stop.
+			You jolt upright, face flushed with shame.<<stress 6>><<gstress>>
 		<</if>>
-		<br>
-
+		<<arousal 200>><<npcincr Robin lust 1>><<garousal>><<glust>>
 	<</if>>
 	<br><br>
+
+	"I-I'm sorry!" <<he>> stutters. <<He>> closes your door in a hurry.
+	<br><br>
 <</if>>
-<<masturbationeffects>>
 <<masturbationactions>>
 <<link [[Continue|Home Masturbation]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if !$corruptionMasturbation and random(3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
-<<elseif $corruptionMasturbation isnot true>>
+<<elseif !$corruptionMasturbation>>
 	<<link [[Stop|Home Masturbation Finish]]>><<set $finish to 1>><</link>>
 <<else>>
 	The slime in your ear will not allow you to stop.
@@ -1597,7 +1591,7 @@ There's not much of a thrill doing this here, but at least you feel refreshed.
 <<endmasturbation>>
 <<endcombat>>
 
-<<link [[Next|Bathroom]]>><<clotheson>><</link>>
+<<link [[Next|Bedroom]]>><<clotheson>><</link>>
 <br>
 
 :: Farm Shower Masturbation
@@ -1613,7 +1607,7 @@ There's not much of a thrill doing this here, but at least you feel refreshed.
 <<masturbationactions>>
 <<link [[Continue|$passage]]>><</link>><<nexttext>>
 <br>
-<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt ($willpower / 10)>>
+<<if $corruptionMasturbation isnot true and random(0,3) gt $orgasmcurrent and $corruption_slime gt (currentSkillValue('willpower') / 10)>>
 	<<link [[Stop|$passage]]>><<set $corruptionMasturbation to true>><</link>>
 <<elseif $corruptionMasturbation isnot true>>
 	<<link [[Stop|Farm Shower Masturbation Finish]]>><<set $finish to 1>><</link>>
diff --git a/game/special-templates/main.twee b/game/special-templates/main.twee
index 0665f53608af1a932d9c6534fafe0faae63ae55d..652b279f4e0e73a5095b6087b1b828b43291dd93 100644
--- a/game/special-templates/main.twee
+++ b/game/special-templates/main.twee
@@ -1,10 +1,10 @@
 :: Test
-<<location town>><<effects>>
+<<location farm>><<effects>>
 <<endcombat>>
 <<link [[Test]]>><</link>>
 <br><br>
 
-		
+
 
 :: Robin
 <<set $NPCName[$NPCNameList.indexOf("Robin")].love to 50>>
@@ -85,7 +85,7 @@
 <<effects>>
 
 <<effectsman>><<man>>
-	
+
 
 <<stateman>>
 <br><br>
@@ -523,7 +523,7 @@ Text detailing your seduction attempt.
 The door is locked tight.
 <br><br>
 
-	<<if $skulduggery gte $lock>>
+	<<if currentSkillValue('skulduggery') gte $lock>>
 	<span class="green">The lock looks easy to pick.</span>
 	<br><br>
 
@@ -976,6 +976,8 @@ Number of active machines: <<print $machine.number>><br>
 	Phallic machine state: <<print $machine.vaginal.state>><br>
 	Phallic machine health: <<print $machine.vaginal.health>><br>
 	Phallic machine hack: <<print $machine.vaginal.hack>><br>
+	Phallic machine ammo: <<print $machine.vaginal.ammo>><br>
+	Phallic machine speed: <<print $machine.vaginal.speed>><br>
 <</if>>
 <br>
 <<if $machine.anal>>
@@ -983,6 +985,8 @@ Number of active machines: <<print $machine.number>><br>
 	Small phallic machine state: <<print $machine.anal.state>><br>
 	Small phallic machine health: <<print $machine.anal.health>><br>
 	Small phallic machine hack: <<print $machine.anal.hack>><br>
+	Small phallic machine ammo: <<print $machine.anal.ammo>><br>
+	Small phallic machine speed: <<print $machine.anal.speed>><br>
 <</if>>
 <br>
 <<if $machine.arm_chains>>
@@ -1008,8 +1012,17 @@ Number of active machines: <<print $machine.number>><br>
 	<<link [[Next|Machine End]]>><</link>>
 <<else>>
 	<<link [[Next|Machine]]>><</link>>
+	<<if $machine.vaginal or $machine.anal>>
+		<br>
+		<<if $machine.vaginal.speed is "high" or $machine.anal.speed is "high">>
+			<<link [[SLOW DOWN|Machine]]>><<machine_speed "normal">><</link>>
+		<<else>>
+			<<link [[SPEED UP|Machine]]>><<machine_speed "high">><</link>>
+		<</if>>
+	<</if>>
 <</if>>
 <br>
+
 <<link [[End|Machine End]]>><</link>>
 <br>
 
@@ -1228,7 +1241,7 @@ $farm_stage = 12: 9 fields clear. Remy threatens again.
 	<<unset $dancestart>>
 	<<danceinit>>
 	<<set $dancing to 1>>
-    <<set $audience to 25>>
+	<<set $audience to 25>>
 	<<set $venuemod to 1>>
 	<<set $dancelocation to "party">>
 <</if>>
diff --git a/img/body/fools/basenoarms.png b/img/body/fools/basenoarms.png
deleted file mode 100644
index 5a556ccae2a9a443a406392cc155d12a744fb920..0000000000000000000000000000000000000000
Binary files a/img/body/fools/basenoarms.png and /dev/null differ
diff --git a/img/bodywriting/text/cute_boy/breasts.png b/img/bodywriting/text/cute_boy/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..97f77b13b6ab9c4fd38c81ba62466a9dc2221528
Binary files /dev/null and b/img/bodywriting/text/cute_boy/breasts.png differ
diff --git a/img/bodywriting/text/cute_boy/forehead.png b/img/bodywriting/text/cute_boy/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..cba3d9ca8969fb6a5bd900c2131e1c6e8521b88e
Binary files /dev/null and b/img/bodywriting/text/cute_boy/forehead.png differ
diff --git a/img/bodywriting/text/cute_boy/left_thigh.png b/img/bodywriting/text/cute_boy/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..de8624c3d0a5958743f2693ddff76e5882e6fa88
Binary files /dev/null and b/img/bodywriting/text/cute_boy/left_thigh.png differ
diff --git a/img/bodywriting/text/cute_boy/pubic.png b/img/bodywriting/text/cute_boy/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5ccc311e746a5b9a4e1e504bb4755bc91ca10cf
Binary files /dev/null and b/img/bodywriting/text/cute_boy/pubic.png differ
diff --git a/img/bodywriting/text/cute_boy/right_thigh.png b/img/bodywriting/text/cute_boy/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..a076d12305f884d4a2d270e0232714b86eb53d7b
Binary files /dev/null and b/img/bodywriting/text/cute_boy/right_thigh.png differ
diff --git a/img/bodywriting/text/cute_girl/breasts.png b/img/bodywriting/text/cute_girl/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..d272d7545b8e8d481b10f905ff8ed27f6d49c68d
Binary files /dev/null and b/img/bodywriting/text/cute_girl/breasts.png differ
diff --git a/img/bodywriting/text/cute_girl/forehead.png b/img/bodywriting/text/cute_girl/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..cba3d9ca8969fb6a5bd900c2131e1c6e8521b88e
Binary files /dev/null and b/img/bodywriting/text/cute_girl/forehead.png differ
diff --git a/img/bodywriting/text/cute_girl/left_thigh.png b/img/bodywriting/text/cute_girl/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6696895d89ae1b7207946b66324b8ae1dc26a7b
Binary files /dev/null and b/img/bodywriting/text/cute_girl/left_thigh.png differ
diff --git a/img/bodywriting/text/cute_girl/pubic.png b/img/bodywriting/text/cute_girl/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e428f38912927fd3876b580b5c1a88708a0be36
Binary files /dev/null and b/img/bodywriting/text/cute_girl/pubic.png differ
diff --git a/img/bodywriting/text/cute_girl/right_thigh.png b/img/bodywriting/text/cute_girl/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e3e4b107863579e5d6e2fa1c8294a360ff2467f
Binary files /dev/null and b/img/bodywriting/text/cute_girl/right_thigh.png differ
diff --git a/img/bodywriting/breasts1.png b/img/bodywriting/text/default/breasts1.png
similarity index 100%
rename from img/bodywriting/breasts1.png
rename to img/bodywriting/text/default/breasts1.png
diff --git a/img/bodywriting/breasts2.png b/img/bodywriting/text/default/breasts2.png
similarity index 100%
rename from img/bodywriting/breasts2.png
rename to img/bodywriting/text/default/breasts2.png
diff --git a/img/bodywriting/breasts3.png b/img/bodywriting/text/default/breasts3.png
similarity index 100%
rename from img/bodywriting/breasts3.png
rename to img/bodywriting/text/default/breasts3.png
diff --git a/img/bodywriting/breasts4.png b/img/bodywriting/text/default/breasts4.png
similarity index 100%
rename from img/bodywriting/breasts4.png
rename to img/bodywriting/text/default/breasts4.png
diff --git a/img/bodywriting/breasts5.png b/img/bodywriting/text/default/breasts5.png
similarity index 100%
rename from img/bodywriting/breasts5.png
rename to img/bodywriting/text/default/breasts5.png
diff --git a/img/bodywriting/breasts6.png b/img/bodywriting/text/default/breasts6.png
similarity index 100%
rename from img/bodywriting/breasts6.png
rename to img/bodywriting/text/default/breasts6.png
diff --git a/img/bodywriting/forehead.png b/img/bodywriting/text/default/forehead.png
similarity index 100%
rename from img/bodywriting/forehead.png
rename to img/bodywriting/text/default/forehead.png
diff --git a/img/bodywriting/left_cheek.png b/img/bodywriting/text/default/left_cheek.png
similarity index 100%
rename from img/bodywriting/left_cheek.png
rename to img/bodywriting/text/default/left_cheek.png
diff --git a/img/bodywriting/left_shoulder.png b/img/bodywriting/text/default/left_shoulder.png
similarity index 100%
rename from img/bodywriting/left_shoulder.png
rename to img/bodywriting/text/default/left_shoulder.png
diff --git a/img/bodywriting/left_thigh.png b/img/bodywriting/text/default/left_thigh.png
similarity index 100%
rename from img/bodywriting/left_thigh.png
rename to img/bodywriting/text/default/left_thigh.png
diff --git a/img/bodywriting/left_thigh_arrow.png b/img/bodywriting/text/default/left_thigh_arrow.png
similarity index 100%
rename from img/bodywriting/left_thigh_arrow.png
rename to img/bodywriting/text/default/left_thigh_arrow.png
diff --git a/img/bodywriting/pubic.png b/img/bodywriting/text/default/pubic.png
similarity index 100%
rename from img/bodywriting/pubic.png
rename to img/bodywriting/text/default/pubic.png
diff --git a/img/bodywriting/pubic_arrow.png b/img/bodywriting/text/default/pubic_arrow.png
similarity index 100%
rename from img/bodywriting/pubic_arrow.png
rename to img/bodywriting/text/default/pubic_arrow.png
diff --git a/img/bodywriting/pubic_heart.png b/img/bodywriting/text/default/pubic_heart.png
similarity index 100%
rename from img/bodywriting/pubic_heart.png
rename to img/bodywriting/text/default/pubic_heart.png
diff --git a/img/bodywriting/right_cheek.png b/img/bodywriting/text/default/right_cheek.png
similarity index 100%
rename from img/bodywriting/right_cheek.png
rename to img/bodywriting/text/default/right_cheek.png
diff --git a/img/bodywriting/right_cheek_arrow.png b/img/bodywriting/text/default/right_cheek_arrow.png
similarity index 100%
rename from img/bodywriting/right_cheek_arrow.png
rename to img/bodywriting/text/default/right_cheek_arrow.png
diff --git a/img/bodywriting/right_shoulder.png b/img/bodywriting/text/default/right_shoulder.png
similarity index 100%
rename from img/bodywriting/right_shoulder.png
rename to img/bodywriting/text/default/right_shoulder.png
diff --git a/img/bodywriting/right_thigh.png b/img/bodywriting/text/default/right_thigh.png
similarity index 100%
rename from img/bodywriting/right_thigh.png
rename to img/bodywriting/text/default/right_thigh.png
diff --git a/img/bodywriting/right_thigh_arrow.png b/img/bodywriting/text/default/right_thigh_arrow.png
similarity index 100%
rename from img/bodywriting/right_thigh_arrow.png
rename to img/bodywriting/text/default/right_thigh_arrow.png
diff --git a/img/bodywriting/text/free_use/breasts.png b/img/bodywriting/text/free_use/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..25fc6f6bf92e26906ddc3548527beed4dd5926b3
Binary files /dev/null and b/img/bodywriting/text/free_use/breasts.png differ
diff --git a/img/bodywriting/text/free_use/forehead.png b/img/bodywriting/text/free_use/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..790c2210a3445710e6d0796f89970bb5fa051159
Binary files /dev/null and b/img/bodywriting/text/free_use/forehead.png differ
diff --git a/img/bodywriting/text/free_use/left_thigh.png b/img/bodywriting/text/free_use/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..5168a602fe3d759cc2829e43486935e592529576
Binary files /dev/null and b/img/bodywriting/text/free_use/left_thigh.png differ
diff --git a/img/bodywriting/text/free_use/pubic.png b/img/bodywriting/text/free_use/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..17006bd8232e7627de64ef79ba2a849aa6265897
Binary files /dev/null and b/img/bodywriting/text/free_use/pubic.png differ
diff --git a/img/bodywriting/text/free_use/right_thigh.png b/img/bodywriting/text/free_use/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fa6f81c5c38b2d76c4dea243eae4a576fbefb21
Binary files /dev/null and b/img/bodywriting/text/free_use/right_thigh.png differ
diff --git a/img/bodywriting/text/fucktoy/breasts.png b/img/bodywriting/text/fucktoy/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ad5cf44de8866456575a10c5fd5d9fbe71d0445
Binary files /dev/null and b/img/bodywriting/text/fucktoy/breasts.png differ
diff --git a/img/bodywriting/text/fucktoy/forehead.png b/img/bodywriting/text/fucktoy/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa2b411653c0b55e80f8e3ccbc2b6460a54d8107
Binary files /dev/null and b/img/bodywriting/text/fucktoy/forehead.png differ
diff --git a/img/bodywriting/text/fucktoy/left_thigh.png b/img/bodywriting/text/fucktoy/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c2e5f96f389b1ea151d284df5c729c1115b74a0
Binary files /dev/null and b/img/bodywriting/text/fucktoy/left_thigh.png differ
diff --git a/img/bodywriting/text/fucktoy/pubic.png b/img/bodywriting/text/fucktoy/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3620cd4dadec86eb0a38cfe3e607f157230d2a8
Binary files /dev/null and b/img/bodywriting/text/fucktoy/pubic.png differ
diff --git a/img/bodywriting/text/fucktoy/right_thigh.png b/img/bodywriting/text/fucktoy/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..f631dee222bb64bfd461950f02299bd50f41e181
Binary files /dev/null and b/img/bodywriting/text/fucktoy/right_thigh.png differ
diff --git a/img/bodywriting/text/hot/breasts.png b/img/bodywriting/text/hot/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb4375f99c362a35c9b205cc0cf134378088bbff
Binary files /dev/null and b/img/bodywriting/text/hot/breasts.png differ
diff --git a/img/bodywriting/text/hot/forehead.png b/img/bodywriting/text/hot/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..18635cd39691fc15ad3676772f192caa0c7d816c
Binary files /dev/null and b/img/bodywriting/text/hot/forehead.png differ
diff --git a/img/bodywriting/text/hot/left_thigh.png b/img/bodywriting/text/hot/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..bebb88bc7013fe811b4558f1eb953dd64b704597
Binary files /dev/null and b/img/bodywriting/text/hot/left_thigh.png differ
diff --git a/img/bodywriting/text/hot/pubic.png b/img/bodywriting/text/hot/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..d04172d12f822a5f3624486bc6a0b68d75f3e399
Binary files /dev/null and b/img/bodywriting/text/hot/pubic.png differ
diff --git a/img/bodywriting/text/hot/right_thigh.png b/img/bodywriting/text/hot/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..af44fe57c00d16f84e82583d4b8be8504def5121
Binary files /dev/null and b/img/bodywriting/text/hot/right_thigh.png differ
diff --git a/img/bodywriting/text/rape_me/breasts.png b/img/bodywriting/text/rape_me/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5314bbc0ca4fa271e293196ef4293f274cbd4e1
Binary files /dev/null and b/img/bodywriting/text/rape_me/breasts.png differ
diff --git a/img/bodywriting/text/rape_me/forehead.png b/img/bodywriting/text/rape_me/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..982074d6f55c53849882fe5efa24a40fac17c59a
Binary files /dev/null and b/img/bodywriting/text/rape_me/forehead.png differ
diff --git a/img/bodywriting/text/rape_me/left_thigh.png b/img/bodywriting/text/rape_me/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..efd8775b50313fe2bd7a14a797903713bbc22e43
Binary files /dev/null and b/img/bodywriting/text/rape_me/left_thigh.png differ
diff --git a/img/bodywriting/text/rape_me/pubic.png b/img/bodywriting/text/rape_me/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..04529f0aad848a768c9eb09da695fe055a1b35ee
Binary files /dev/null and b/img/bodywriting/text/rape_me/pubic.png differ
diff --git a/img/bodywriting/text/rape_me/right_thigh.png b/img/bodywriting/text/rape_me/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..1fef5827001e066460b5d307e366aa6cf8c93afd
Binary files /dev/null and b/img/bodywriting/text/rape_me/right_thigh.png differ
diff --git a/img/bodywriting/text/rapetoy/breasts.png b/img/bodywriting/text/rapetoy/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..260f39f9c309f7aad3241b9ed193d2b62a581b11
Binary files /dev/null and b/img/bodywriting/text/rapetoy/breasts.png differ
diff --git a/img/bodywriting/text/rapetoy/forehead.png b/img/bodywriting/text/rapetoy/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..eea06115b169bb6f6678b61e8d4c966e90334a0d
Binary files /dev/null and b/img/bodywriting/text/rapetoy/forehead.png differ
diff --git a/img/bodywriting/text/rapetoy/left_thigh.png b/img/bodywriting/text/rapetoy/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..03938b560f0925803dcbdff97eab15bb23e46b35
Binary files /dev/null and b/img/bodywriting/text/rapetoy/left_thigh.png differ
diff --git a/img/bodywriting/text/rapetoy/pubic.png b/img/bodywriting/text/rapetoy/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..f05a8893adb0ae430e21b9b409f48590868847f2
Binary files /dev/null and b/img/bodywriting/text/rapetoy/pubic.png differ
diff --git a/img/bodywriting/text/rapetoy/right_thigh.png b/img/bodywriting/text/rapetoy/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..5034e96f2e72b372eda41c82412b7f5ff61a42a7
Binary files /dev/null and b/img/bodywriting/text/rapetoy/right_thigh.png differ
diff --git a/img/bodywriting/text/slave/breasts.png b/img/bodywriting/text/slave/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..45fbbf37dd02712f99b244f1636bd616684f9ecf
Binary files /dev/null and b/img/bodywriting/text/slave/breasts.png differ
diff --git a/img/bodywriting/text/slave/forehead.png b/img/bodywriting/text/slave/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bf450d10b24a74133e03d9289d760b633ac294a
Binary files /dev/null and b/img/bodywriting/text/slave/forehead.png differ
diff --git a/img/bodywriting/text/slave/left_thigh.png b/img/bodywriting/text/slave/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..a462ad542864c3f1f03c92889429bbf752bad1de
Binary files /dev/null and b/img/bodywriting/text/slave/left_thigh.png differ
diff --git a/img/bodywriting/text/slave/pubic.png b/img/bodywriting/text/slave/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..8db7fbadfad26a6921005fab7c7493e1b7f11189
Binary files /dev/null and b/img/bodywriting/text/slave/pubic.png differ
diff --git a/img/bodywriting/text/slave/right_thigh.png b/img/bodywriting/text/slave/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..74c599062a7f79d62210dfffc747857f318b7814
Binary files /dev/null and b/img/bodywriting/text/slave/right_thigh.png differ
diff --git a/img/bodywriting/text/slut/breasts.png b/img/bodywriting/text/slut/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e8ff3ec4a6a5f5821949f628334705577e199da
Binary files /dev/null and b/img/bodywriting/text/slut/breasts.png differ
diff --git a/img/bodywriting/text/slut/forehead.png b/img/bodywriting/text/slut/forehead.png
new file mode 100644
index 0000000000000000000000000000000000000000..a47f787496325ff85bec134a25dfa45f8aa56499
Binary files /dev/null and b/img/bodywriting/text/slut/forehead.png differ
diff --git a/img/bodywriting/text/slut/left_thigh.png b/img/bodywriting/text/slut/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..806ce28aae5c14f314dda09a8e5d287fffab34b4
Binary files /dev/null and b/img/bodywriting/text/slut/left_thigh.png differ
diff --git a/img/bodywriting/text/slut/pubic.png b/img/bodywriting/text/slut/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..04be9c094e9c44ad956ba13317de926b53436ddc
Binary files /dev/null and b/img/bodywriting/text/slut/pubic.png differ
diff --git a/img/bodywriting/text/slut/right_thigh.png b/img/bodywriting/text/slut/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e8d2c73329dc53552002dc7e2daa0635bd7c3b0
Binary files /dev/null and b/img/bodywriting/text/slut/right_thigh.png differ
diff --git a/img/bodywriting/text/worthless/breasts.png b/img/bodywriting/text/worthless/breasts.png
new file mode 100644
index 0000000000000000000000000000000000000000..0cfbf6203cffc506ce6febc2aa7ba8bb61b66a56
Binary files /dev/null and b/img/bodywriting/text/worthless/breasts.png differ
diff --git a/img/bodywriting/text/worthless/left_thigh.png b/img/bodywriting/text/worthless/left_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bc562105a17645830f36c260b4183a94439b387
Binary files /dev/null and b/img/bodywriting/text/worthless/left_thigh.png differ
diff --git a/img/bodywriting/text/worthless/pubic.png b/img/bodywriting/text/worthless/pubic.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c52ae470bb3dc90a12890aa6315685c73f9c490
Binary files /dev/null and b/img/bodywriting/text/worthless/pubic.png differ
diff --git a/img/bodywriting/text/worthless/right_thigh.png b/img/bodywriting/text/worthless/right_thigh.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a6565637632476b479433a12c94fb975156eb41
Binary files /dev/null and b/img/bodywriting/text/worthless/right_thigh.png differ
diff --git a/img/clothes/feet/hightops/full.png b/img/clothes/feet/hightops/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb61a3d8f12722d4cd88ead611a35a9495e56bae
Binary files /dev/null and b/img/clothes/feet/hightops/full.png differ
diff --git a/img/clothes/feet/hightops/full_gray.png b/img/clothes/feet/hightops/full_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..03aee56e6df828b4831090f13224f57cc2828849
Binary files /dev/null and b/img/clothes/feet/hightops/full_gray.png differ
diff --git a/img/clothes/lower/shortballgown/frayed.png b/img/clothes/lower/shortballgown/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..562b3c1b6be3b26aae7f86927f8dbbe7107916ce
Binary files /dev/null and b/img/clothes/lower/shortballgown/frayed.png differ
diff --git a/img/clothes/lower/shortballgown/frayed_gray.png b/img/clothes/lower/shortballgown/frayed_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..829ad41c926a98ac8a4dfc72c477ac1d201f6a85
Binary files /dev/null and b/img/clothes/lower/shortballgown/frayed_gray.png differ
diff --git a/img/clothes/lower/shortballgown/full.png b/img/clothes/lower/shortballgown/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3b163759ab6ce829480e6e21c8a1f389e8d5a2a
Binary files /dev/null and b/img/clothes/lower/shortballgown/full.png differ
diff --git a/img/clothes/lower/shortballgown/full_gray.png b/img/clothes/lower/shortballgown/full_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..40cdc711a6307b093aff93f81c29f6fb99ac574e
Binary files /dev/null and b/img/clothes/lower/shortballgown/full_gray.png differ
diff --git a/img/clothes/lower/shortballgown/tattered.png b/img/clothes/lower/shortballgown/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad08c9b0d41718bde249253c6ba6798114166581
Binary files /dev/null and b/img/clothes/lower/shortballgown/tattered.png differ
diff --git a/img/clothes/lower/shortballgown/tattered_gray.png b/img/clothes/lower/shortballgown/tattered_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5c42d4af2d468348cf33a8865e6a8a1b8d5b841
Binary files /dev/null and b/img/clothes/lower/shortballgown/tattered_gray.png differ
diff --git a/img/clothes/lower/shortballgown/torn.png b/img/clothes/lower/shortballgown/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..927670a5b713a6962375c9bccdc7dfe23b922753
Binary files /dev/null and b/img/clothes/lower/shortballgown/torn.png differ
diff --git a/img/clothes/lower/shortballgown/torn_gray.png b/img/clothes/lower/shortballgown/torn_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..8cad850595b6ce5cf3a0628386212c590f72830f
Binary files /dev/null and b/img/clothes/lower/shortballgown/torn_gray.png differ
diff --git a/img/clothes/lower/skimpylolita/acc.png b/img/clothes/lower/skimpylolita/acc.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e91f9fc6db0be7749c4b7508dbd5a41b5db25fb
Binary files /dev/null and b/img/clothes/lower/skimpylolita/acc.png differ
diff --git a/img/clothes/lower/skimpylolita/frayed.png b/img/clothes/lower/skimpylolita/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..78fad419627a3f392afcacfac6d2be53bb23c397
Binary files /dev/null and b/img/clothes/lower/skimpylolita/frayed.png differ
diff --git a/img/clothes/lower/skimpylolita/frayed_gray.png b/img/clothes/lower/skimpylolita/frayed_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f2fab3120169012e4af3134121fdb430f1cc59f
Binary files /dev/null and b/img/clothes/lower/skimpylolita/frayed_gray.png differ
diff --git a/img/clothes/lower/skimpylolita/full.png b/img/clothes/lower/skimpylolita/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0266c9a1bd2f285c977245eb6d88489528877d2
Binary files /dev/null and b/img/clothes/lower/skimpylolita/full.png differ
diff --git a/img/clothes/lower/skimpylolita/full_gray.png b/img/clothes/lower/skimpylolita/full_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..123a4d558496d3fee56795611b4d19dbf2ee0507
Binary files /dev/null and b/img/clothes/lower/skimpylolita/full_gray.png differ
diff --git a/img/clothes/lower/skimpylolita/tattered.png b/img/clothes/lower/skimpylolita/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..753c5b535befba97a5a9e0169e490093fdf50a24
Binary files /dev/null and b/img/clothes/lower/skimpylolita/tattered.png differ
diff --git a/img/clothes/lower/skimpylolita/tattered_gray.png b/img/clothes/lower/skimpylolita/tattered_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..f89710b07a53840ac9e12cca3c47765198fcb697
Binary files /dev/null and b/img/clothes/lower/skimpylolita/tattered_gray.png differ
diff --git a/img/clothes/lower/skimpylolita/torn.png b/img/clothes/lower/skimpylolita/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2c05e7915aa1c8254f288cd57cff276e864c904
Binary files /dev/null and b/img/clothes/lower/skimpylolita/torn.png differ
diff --git a/img/clothes/lower/skimpylolita/torn_gray.png b/img/clothes/lower/skimpylolita/torn_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..48d01ffced8056aa6275e7e9f0d1d22fa94c0b8b
Binary files /dev/null and b/img/clothes/lower/skimpylolita/torn_gray.png differ
diff --git a/img/clothes/neck/spikedleash/acc.png b/img/clothes/neck/spikedleash/acc.png
new file mode 100644
index 0000000000000000000000000000000000000000..bbaf3975c9df439e8293f6934955b041ff416216
Binary files /dev/null and b/img/clothes/neck/spikedleash/acc.png differ
diff --git a/img/clothes/neck/spikedleash/full.png b/img/clothes/neck/spikedleash/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0518b85cb3d3095d2ff1b9e206077c81d37bf97
Binary files /dev/null and b/img/clothes/neck/spikedleash/full.png differ
diff --git a/img/clothes/upper/openshoulderscrop/0.png b/img/clothes/upper/openshoulderscrop/0.png
index 52c7d4365f2113ad42cb545169ca6ad6f871feeb..25dec07307227e9ff4662456acef16654575d2d7 100644
Binary files a/img/clothes/upper/openshoulderscrop/0.png and b/img/clothes/upper/openshoulderscrop/0.png differ
diff --git a/img/clothes/upper/openshoulderscrop/0_gray.png b/img/clothes/upper/openshoulderscrop/0_gray.png
index 95f2ab4b59b5d25bdf792c665e2945374a4587c2..a71c0a563563754fecc07c0f1f01a3a0911d0c84 100644
Binary files a/img/clothes/upper/openshoulderscrop/0_gray.png and b/img/clothes/upper/openshoulderscrop/0_gray.png differ
diff --git a/img/clothes/upper/openshoulderscrop/1.png b/img/clothes/upper/openshoulderscrop/1.png
index 52c7d4365f2113ad42cb545169ca6ad6f871feeb..25dec07307227e9ff4662456acef16654575d2d7 100644
Binary files a/img/clothes/upper/openshoulderscrop/1.png and b/img/clothes/upper/openshoulderscrop/1.png differ
diff --git a/img/clothes/upper/openshoulderscrop/1_gray.png b/img/clothes/upper/openshoulderscrop/1_gray.png
index 95f2ab4b59b5d25bdf792c665e2945374a4587c2..a71c0a563563754fecc07c0f1f01a3a0911d0c84 100644
Binary files a/img/clothes/upper/openshoulderscrop/1_gray.png and b/img/clothes/upper/openshoulderscrop/1_gray.png differ
diff --git a/img/clothes/upper/openshoulderscrop/2.png b/img/clothes/upper/openshoulderscrop/2.png
index 52c7d4365f2113ad42cb545169ca6ad6f871feeb..25dec07307227e9ff4662456acef16654575d2d7 100644
Binary files a/img/clothes/upper/openshoulderscrop/2.png and b/img/clothes/upper/openshoulderscrop/2.png differ
diff --git a/img/clothes/upper/openshoulderscrop/2_gray.png b/img/clothes/upper/openshoulderscrop/2_gray.png
index 95f2ab4b59b5d25bdf792c665e2945374a4587c2..a71c0a563563754fecc07c0f1f01a3a0911d0c84 100644
Binary files a/img/clothes/upper/openshoulderscrop/2_gray.png and b/img/clothes/upper/openshoulderscrop/2_gray.png differ
diff --git a/img/clothes/upper/openshoulderscrop/3.png b/img/clothes/upper/openshoulderscrop/3.png
index f7c426c9060d580d930a600493615a1beb48012b..208f9ed2b42ffed16ebea9fc5e9002d284f5ce1a 100644
Binary files a/img/clothes/upper/openshoulderscrop/3.png and b/img/clothes/upper/openshoulderscrop/3.png differ
diff --git a/img/clothes/upper/openshoulderscrop/3_gray.png b/img/clothes/upper/openshoulderscrop/3_gray.png
index ca2c9d20354429447f36aa13460230b3c28f9db1..2a77ba46ceee77fbd6a51139140e05e1f5a2d9d9 100644
Binary files a/img/clothes/upper/openshoulderscrop/3_gray.png and b/img/clothes/upper/openshoulderscrop/3_gray.png differ
diff --git a/img/clothes/upper/openshoulderscrop/4.png b/img/clothes/upper/openshoulderscrop/4.png
index f7c426c9060d580d930a600493615a1beb48012b..208f9ed2b42ffed16ebea9fc5e9002d284f5ce1a 100644
Binary files a/img/clothes/upper/openshoulderscrop/4.png and b/img/clothes/upper/openshoulderscrop/4.png differ
diff --git a/img/clothes/upper/openshoulderscrop/4_gray.png b/img/clothes/upper/openshoulderscrop/4_gray.png
index ca2c9d20354429447f36aa13460230b3c28f9db1..2a77ba46ceee77fbd6a51139140e05e1f5a2d9d9 100644
Binary files a/img/clothes/upper/openshoulderscrop/4_gray.png and b/img/clothes/upper/openshoulderscrop/4_gray.png differ
diff --git a/img/clothes/upper/openshoulderscrop/5.png b/img/clothes/upper/openshoulderscrop/5.png
index f7c426c9060d580d930a600493615a1beb48012b..208f9ed2b42ffed16ebea9fc5e9002d284f5ce1a 100644
Binary files a/img/clothes/upper/openshoulderscrop/5.png and b/img/clothes/upper/openshoulderscrop/5.png differ
diff --git a/img/clothes/upper/openshoulderscrop/5_gray.png b/img/clothes/upper/openshoulderscrop/5_gray.png
index ca2c9d20354429447f36aa13460230b3c28f9db1..2a77ba46ceee77fbd6a51139140e05e1f5a2d9d9 100644
Binary files a/img/clothes/upper/openshoulderscrop/5_gray.png and b/img/clothes/upper/openshoulderscrop/5_gray.png differ
diff --git a/img/clothes/upper/schoolshirt/acc_gray.png b/img/clothes/upper/schoolshirt/acc_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..f58b7f69fc023b790c55fdf23e3131d2b5fc7a9c
Binary files /dev/null and b/img/clothes/upper/schoolshirt/acc_gray.png differ
diff --git a/img/clothes/upper/shortballgown/frayed.png b/img/clothes/upper/shortballgown/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..df94d338f5bfac67636980a86baa8c198d6fc1d5
Binary files /dev/null and b/img/clothes/upper/shortballgown/frayed.png differ
diff --git a/img/clothes/upper/shortballgown/frayed_gray.png b/img/clothes/upper/shortballgown/frayed_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a3c87b6548b86f7bd4540b19f0b7dc99a63c7ea
Binary files /dev/null and b/img/clothes/upper/shortballgown/frayed_gray.png differ
diff --git a/img/clothes/upper/shortballgown/full.png b/img/clothes/upper/shortballgown/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..92f5a4b13fd107cd29fa91669d2490ca10a0a733
Binary files /dev/null and b/img/clothes/upper/shortballgown/full.png differ
diff --git a/img/clothes/upper/shortballgown/full_gray.png b/img/clothes/upper/shortballgown/full_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..f96666ae804638f78143bd16bbab1c638c8063ba
Binary files /dev/null and b/img/clothes/upper/shortballgown/full_gray.png differ
diff --git a/img/clothes/upper/shortballgown/tattered.png b/img/clothes/upper/shortballgown/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..97bc5192265af4276bb819eab9db91cb8a406db9
Binary files /dev/null and b/img/clothes/upper/shortballgown/tattered.png differ
diff --git a/img/clothes/upper/shortballgown/tattered_gray.png b/img/clothes/upper/shortballgown/tattered_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef9995000b95c215a3afd3c976537e4b7bbc40dd
Binary files /dev/null and b/img/clothes/upper/shortballgown/tattered_gray.png differ
diff --git a/img/clothes/upper/shortballgown/torn.png b/img/clothes/upper/shortballgown/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..53b06dc7d9d32dc1a33e191e7bfb488e1b76dfbc
Binary files /dev/null and b/img/clothes/upper/shortballgown/torn.png differ
diff --git a/img/clothes/upper/shortballgown/torn_gray.png b/img/clothes/upper/shortballgown/torn_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..16bb3b7cd74a0ea813f5588f8c5e45061f96e5aa
Binary files /dev/null and b/img/clothes/upper/shortballgown/torn_gray.png differ
diff --git a/img/clothes/upper/skimpylolita/acc.png b/img/clothes/upper/skimpylolita/acc.png
new file mode 100644
index 0000000000000000000000000000000000000000..12ddea1c608360e24866564316f47c59acb4842d
Binary files /dev/null and b/img/clothes/upper/skimpylolita/acc.png differ
diff --git a/img/clothes/upper/skimpylolita/frayed.png b/img/clothes/upper/skimpylolita/frayed.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5451dffb77ca731d95fe50756c348fb7a52fb18
Binary files /dev/null and b/img/clothes/upper/skimpylolita/frayed.png differ
diff --git a/img/clothes/upper/skimpylolita/frayed_gray.png b/img/clothes/upper/skimpylolita/frayed_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..57bc36ee9013093afdddb78d9ec6ce375e8ff154
Binary files /dev/null and b/img/clothes/upper/skimpylolita/frayed_gray.png differ
diff --git a/img/clothes/upper/skimpylolita/full.png b/img/clothes/upper/skimpylolita/full.png
new file mode 100644
index 0000000000000000000000000000000000000000..a523e29d8881752ec76496cd6fd0f63be240edbd
Binary files /dev/null and b/img/clothes/upper/skimpylolita/full.png differ
diff --git a/img/clothes/upper/skimpylolita/full_gray.png b/img/clothes/upper/skimpylolita/full_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..57bc36ee9013093afdddb78d9ec6ce375e8ff154
Binary files /dev/null and b/img/clothes/upper/skimpylolita/full_gray.png differ
diff --git a/img/clothes/upper/skimpylolita/tattered.png b/img/clothes/upper/skimpylolita/tattered.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c375fb6e689fd356ad9fcb56b279f200ead47b8
Binary files /dev/null and b/img/clothes/upper/skimpylolita/tattered.png differ
diff --git a/img/clothes/upper/skimpylolita/tattered_gray.png b/img/clothes/upper/skimpylolita/tattered_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d1b11a36e160d4846bc4dddac5e41c0c4dd0e10
Binary files /dev/null and b/img/clothes/upper/skimpylolita/tattered_gray.png differ
diff --git a/img/clothes/upper/skimpylolita/torn.png b/img/clothes/upper/skimpylolita/torn.png
new file mode 100644
index 0000000000000000000000000000000000000000..23bd7dafb10ba91786d92578299543f9713efb89
Binary files /dev/null and b/img/clothes/upper/skimpylolita/torn.png differ
diff --git a/img/clothes/upper/skimpylolita/torn_gray.png b/img/clothes/upper/skimpylolita/torn_gray.png
new file mode 100644
index 0000000000000000000000000000000000000000..a748efe01199e826318ac92d2164ea2264a3d036
Binary files /dev/null and b/img/clothes/upper/skimpylolita/torn_gray.png differ
diff --git a/img/dolls/dollLoader.js b/img/dolls/dollLoader.js
index 067268bfde250e06179a5e5f9e011b2884034766..4b79f183b92dabbe9ec783f23e195e466310a0f4 100644
--- a/img/dolls/dollLoader.js
+++ b/img/dolls/dollLoader.js
@@ -10,13 +10,13 @@ var activeNPCList = [];
 
 
 var insertListener = async function(event){
-    
+
 	if (event.animationName == "nodeInserted") {
         updateState();
-	}	
+	}
 }
 
-async function updateState(msPerLoop, infoDiv) { 
+async function updateState(msPerLoop, infoDiv) {
     //console.log("BATTLE BEGIN! ", event, event.target);
         globals = SugarCube.State.variables;
         if(playerDoll == null) {
@@ -29,16 +29,16 @@ async function updateState(msPerLoop, infoDiv) {
         }
 
         var canvasElem = document.querySelector("#divsex");
-        canvasElem.innerHTML = '';    
+        canvasElem.innerHTML = '';
         cleanSlate();
         playerDoll.setLoopSpeed(msPerLoop);
         for(var i = 0; i<activeNPCList.length; i++ ) {
             activeNPCList[i].setLoopSpeed(msPerLoop);
         }
         await initNPCs(infoDiv);
-        await updatePlayerDraw(); 
+        await updatePlayerDraw();
         await updateNPCs(activeNPCList);
-        drawAll();
+    drawAll();
 }
 
 
@@ -68,7 +68,7 @@ async function initNPCs(infoDiv) {
             await updateEnemyState(human);
             //human.renderTo(canvasElem);
         }
-    }      
+    }
 }
 
 async function updateNPCs(activeNPCList) {
@@ -86,7 +86,7 @@ function drawAll() {
             (activeNPCList[i]).renderTo(canvasElem);
         }
     });
-    
+
 }
 
 
@@ -109,7 +109,7 @@ async function getOrCreateBeastFromCache(beastsRequested, type, infoDiv) {
         var anAwaiter = defer();
         var newBeast = new FDoll("dolls/beast/beast.js", type, anAwaiter, null, infoDiv);
         var wait = await anAwaiter;
-        beastCache.push(newBeast);        
+        beastCache.push(newBeast);
         return newBeast;
     }
 }
diff --git a/img/hair/fringe/trident/chest.png b/img/hair/fringe/trident/chest.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3b72a58efcfbf3b38f6bae2349416b74e52d740
Binary files /dev/null and b/img/hair/fringe/trident/chest.png differ
diff --git a/img/hair/fringe/trident/feet.png b/img/hair/fringe/trident/feet.png
new file mode 100644
index 0000000000000000000000000000000000000000..9cf8a687873154ae0834018c80d23e60596b67c6
Binary files /dev/null and b/img/hair/fringe/trident/feet.png differ
diff --git a/img/hair/fringe/trident/navel.png b/img/hair/fringe/trident/navel.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a98fb05168c1a917bf3118b853ea41142b4b0c7
Binary files /dev/null and b/img/hair/fringe/trident/navel.png differ
diff --git a/img/hair/fringe/trident/short.png b/img/hair/fringe/trident/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd615f2e1899226ed7a8c9ea9edb52127f27da76
Binary files /dev/null and b/img/hair/fringe/trident/short.png differ
diff --git a/img/hair/fringe/trident/shoulder.png b/img/hair/fringe/trident/shoulder.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb2adbfa3e68e1cb82988868ef4c74de37848f88
Binary files /dev/null and b/img/hair/fringe/trident/shoulder.png differ
diff --git a/img/hair/fringe/trident/thighs.png b/img/hair/fringe/trident/thighs.png
new file mode 100644
index 0000000000000000000000000000000000000000..8283bd3f3cae5cd1fa932ced3b4e707bdd933abd
Binary files /dev/null and b/img/hair/fringe/trident/thighs.png differ
diff --git a/img/hair/sides/bubble tails/chest.png b/img/hair/sides/bubble tails/chest.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f7737d6f6bb0382331d962b21fb44f8bf25dd54
Binary files /dev/null and b/img/hair/sides/bubble tails/chest.png differ
diff --git a/img/hair/sides/bubble tails/feet.png b/img/hair/sides/bubble tails/feet.png
new file mode 100644
index 0000000000000000000000000000000000000000..4258616dfe686ecf751a801b25d312fa7326ea9f
Binary files /dev/null and b/img/hair/sides/bubble tails/feet.png differ
diff --git a/img/hair/sides/bubble tails/navel.png b/img/hair/sides/bubble tails/navel.png
new file mode 100644
index 0000000000000000000000000000000000000000..d32ea93aeb96d1a909bb287195b4368eb36d4f46
Binary files /dev/null and b/img/hair/sides/bubble tails/navel.png differ
diff --git a/img/hair/sides/bubble tails/short.png b/img/hair/sides/bubble tails/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ff0b372920abbc5979c93769a4d7a3f83db0b8a
Binary files /dev/null and b/img/hair/sides/bubble tails/short.png differ
diff --git a/img/hair/sides/bubble tails/shoulder.png b/img/hair/sides/bubble tails/shoulder.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dcf121b27c6d608c8862a901e5f8c4871a252b2
Binary files /dev/null and b/img/hair/sides/bubble tails/shoulder.png differ
diff --git a/img/hair/sides/bubble tails/thighs.png b/img/hair/sides/bubble tails/thighs.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0c59608e93da3c14b89eaedb01c4886f445d854
Binary files /dev/null and b/img/hair/sides/bubble tails/thighs.png differ
diff --git a/img/hair/sides/curly side up/chest.png b/img/hair/sides/curly side up/chest.png
new file mode 100644
index 0000000000000000000000000000000000000000..000377153436efe6e40972e8dfc640b8a83eb3b9
Binary files /dev/null and b/img/hair/sides/curly side up/chest.png differ
diff --git a/img/hair/sides/curly side up/feet.png b/img/hair/sides/curly side up/feet.png
new file mode 100644
index 0000000000000000000000000000000000000000..b279bec2e79bce8981673d9bf2d6a64e6e179910
Binary files /dev/null and b/img/hair/sides/curly side up/feet.png differ
diff --git a/img/hair/sides/curly side up/navel.png b/img/hair/sides/curly side up/navel.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca24f3c3648fed7df8311dda0f80ed2b576909e8
Binary files /dev/null and b/img/hair/sides/curly side up/navel.png differ
diff --git a/img/hair/sides/curly side up/short.png b/img/hair/sides/curly side up/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..d89f2316b057169daa0f157135da762459a4d514
Binary files /dev/null and b/img/hair/sides/curly side up/short.png differ
diff --git a/img/hair/sides/curly side up/shoulder.png b/img/hair/sides/curly side up/shoulder.png
new file mode 100644
index 0000000000000000000000000000000000000000..579d5fdb268724b5de64a7fe0abba4eac32c12d3
Binary files /dev/null and b/img/hair/sides/curly side up/shoulder.png differ
diff --git a/img/hair/sides/curly side up/thighs.png b/img/hair/sides/curly side up/thighs.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6c5ce18cbd7b9651d535172dce7566045914ac9
Binary files /dev/null and b/img/hair/sides/curly side up/thighs.png differ
diff --git a/img/hair/sides/heart braid/chest.png b/img/hair/sides/heart braid/chest.png
new file mode 100644
index 0000000000000000000000000000000000000000..a52b5037b32c0512bcdae1b1f15d7524f95e9632
Binary files /dev/null and b/img/hair/sides/heart braid/chest.png differ
diff --git a/img/hair/sides/heart braid/feet.png b/img/hair/sides/heart braid/feet.png
new file mode 100644
index 0000000000000000000000000000000000000000..49e3e38cb1751862cbd6b411a4d4f905a33e05c5
Binary files /dev/null and b/img/hair/sides/heart braid/feet.png differ
diff --git a/img/hair/sides/heart braid/navel.png b/img/hair/sides/heart braid/navel.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f0f7f645c293b81f0f7b4ccd55238da288e74cb
Binary files /dev/null and b/img/hair/sides/heart braid/navel.png differ
diff --git a/img/hair/sides/heart braid/short.png b/img/hair/sides/heart braid/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8efb994bd17471623a208aaddf4bd631134072b
Binary files /dev/null and b/img/hair/sides/heart braid/short.png differ
diff --git a/img/hair/sides/heart braid/shoulder.png b/img/hair/sides/heart braid/shoulder.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f9fca90abadf812c0e110e69b9da7d758c0cb0e
Binary files /dev/null and b/img/hair/sides/heart braid/shoulder.png differ
diff --git a/img/hair/sides/heart braid/thighs.png b/img/hair/sides/heart braid/thighs.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd91dfff0b82de01b3013f786ac278455cc988bc
Binary files /dev/null and b/img/hair/sides/heart braid/thighs.png differ
diff --git a/img/hair/sides/loop braid/chest.png b/img/hair/sides/loop braid/chest.png
new file mode 100644
index 0000000000000000000000000000000000000000..7055417d0f9a818531ca01c5c783e1b746bd3154
Binary files /dev/null and b/img/hair/sides/loop braid/chest.png differ
diff --git a/img/hair/sides/loop braid/feet.png b/img/hair/sides/loop braid/feet.png
new file mode 100644
index 0000000000000000000000000000000000000000..d33317fd9f93f33916bfd7ebe639f66d5060340f
Binary files /dev/null and b/img/hair/sides/loop braid/feet.png differ
diff --git a/img/hair/sides/loop braid/navel.png b/img/hair/sides/loop braid/navel.png
new file mode 100644
index 0000000000000000000000000000000000000000..ebf56957e7988787a859389e8714f4793ea206fb
Binary files /dev/null and b/img/hair/sides/loop braid/navel.png differ
diff --git a/img/hair/sides/loop braid/short.png b/img/hair/sides/loop braid/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..1bfdcae6cb12b074527322bf9323a4952bbb2ee2
Binary files /dev/null and b/img/hair/sides/loop braid/short.png differ
diff --git a/img/hair/sides/loop braid/shoulder.png b/img/hair/sides/loop braid/shoulder.png
new file mode 100644
index 0000000000000000000000000000000000000000..419a2c1e3717e49de071fb8aa965bd31276999ba
Binary files /dev/null and b/img/hair/sides/loop braid/shoulder.png differ
diff --git a/img/hair/sides/loop braid/thighs.png b/img/hair/sides/loop braid/thighs.png
new file mode 100644
index 0000000000000000000000000000000000000000..61788f51f04530ce01813dcfef6cc74921ea046c
Binary files /dev/null and b/img/hair/sides/loop braid/thighs.png differ
diff --git a/img/hair/sides/ruffled/chest.png b/img/hair/sides/ruffled/chest.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bebf4027a2ddab843c6fe2eaec81d082011aad4
Binary files /dev/null and b/img/hair/sides/ruffled/chest.png differ
diff --git a/img/hair/sides/ruffled/feet.png b/img/hair/sides/ruffled/feet.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf29560998942f6f5eba9ad54f2c994f9661ea74
Binary files /dev/null and b/img/hair/sides/ruffled/feet.png differ
diff --git a/img/hair/sides/ruffled/navel.png b/img/hair/sides/ruffled/navel.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d6b01d9861ccf3824a9fc05f11fae32d8c30e00
Binary files /dev/null and b/img/hair/sides/ruffled/navel.png differ
diff --git a/img/hair/sides/ruffled/short.png b/img/hair/sides/ruffled/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3f476263af9235381b3fa9e5a9d74e3fe60fe92
Binary files /dev/null and b/img/hair/sides/ruffled/short.png differ
diff --git a/img/hair/sides/ruffled/shoulder.png b/img/hair/sides/ruffled/shoulder.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6d233b6236791cb6b7b83374b64b369fc007033
Binary files /dev/null and b/img/hair/sides/ruffled/shoulder.png differ
diff --git a/img/hair/sides/ruffled/thighs.png b/img/hair/sides/ruffled/thighs.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d057febdb0bb52cadd69291197f51fe8df93add
Binary files /dev/null and b/img/hair/sides/ruffled/thighs.png differ
diff --git a/img/hair/sides/short spiky/chest.png b/img/hair/sides/short spiky/chest.png
new file mode 100644
index 0000000000000000000000000000000000000000..b54017980f6b064d697b02a3dc85703e4fd84da6
Binary files /dev/null and b/img/hair/sides/short spiky/chest.png differ
diff --git a/img/hair/sides/short spiky/feet.png b/img/hair/sides/short spiky/feet.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab0badfeabf3bfba7c394488359bec482af79378
Binary files /dev/null and b/img/hair/sides/short spiky/feet.png differ
diff --git a/img/hair/sides/short spiky/navel.png b/img/hair/sides/short spiky/navel.png
new file mode 100644
index 0000000000000000000000000000000000000000..42a400d674a97086bdf73fec009ecba828b01993
Binary files /dev/null and b/img/hair/sides/short spiky/navel.png differ
diff --git a/img/hair/sides/short spiky/short.png b/img/hair/sides/short spiky/short.png
new file mode 100644
index 0000000000000000000000000000000000000000..c278829ee779aedc9b07f41b8bc69e6ba3714f17
Binary files /dev/null and b/img/hair/sides/short spiky/short.png differ
diff --git a/img/hair/sides/short spiky/shoulder.png b/img/hair/sides/short spiky/shoulder.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f3e96d9111a4f9fda2c5a86308383099737952c
Binary files /dev/null and b/img/hair/sides/short spiky/shoulder.png differ
diff --git a/img/hair/sides/short spiky/thighs.png b/img/hair/sides/short spiky/thighs.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ef89a32efd96865acddc5054c4bcbcb91e38ce8
Binary files /dev/null and b/img/hair/sides/short spiky/thighs.png differ
diff --git a/img/misc/die_stone_1.png b/img/misc/die_stone_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec7cc8ac765acb492dc78d9e6f43a7c9aae5dc13
Binary files /dev/null and b/img/misc/die_stone_1.png differ
diff --git a/img/misc/die_stone_2.png b/img/misc/die_stone_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6ae8fff26ca60f3ec5d62de3aed66d2884326aa
Binary files /dev/null and b/img/misc/die_stone_2.png differ
diff --git a/img/misc/die_stone_3.png b/img/misc/die_stone_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..45fac29e9e3518fc39e08951f1e8617e0ca7497e
Binary files /dev/null and b/img/misc/die_stone_3.png differ
diff --git a/img/misc/die_stone_4.png b/img/misc/die_stone_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f569f2b3319a3e89c9b6174f649258a038db5e2
Binary files /dev/null and b/img/misc/die_stone_4.png differ
diff --git a/img/misc/die_stone_5.png b/img/misc/die_stone_5.png
new file mode 100644
index 0000000000000000000000000000000000000000..21045d7dcd9e2b3d5e3f646dffa53ed1ebfa25c4
Binary files /dev/null and b/img/misc/die_stone_5.png differ
diff --git a/img/misc/die_stone_6.png b/img/misc/die_stone_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6c5373b843af944d4de6cad9ebc0ff2f3ef2d30
Binary files /dev/null and b/img/misc/die_stone_6.png differ
diff --git a/img/misc/die_stone_roll.gif b/img/misc/die_stone_roll.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cbc62a03c176d50a224a32cb4709de0f9f59ffd2
Binary files /dev/null and b/img/misc/die_stone_roll.gif differ
diff --git a/img/misc/icon/beer.png b/img/misc/icon/beer.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ab355720e52550752b71336b256fa5d74060009
Binary files /dev/null and b/img/misc/icon/beer.png differ
diff --git a/img/misc/icon/clothes/short_ballgown.png b/img/misc/icon/clothes/short_ballgown.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5ed0ec8b5541a038b1683c2a661c2ddc3a4896a
Binary files /dev/null and b/img/misc/icon/clothes/short_ballgown.png differ
diff --git a/img/misc/icon/clothes/skimpy_lolita_dress.png b/img/misc/icon/clothes/skimpy_lolita_dress.png
new file mode 100644
index 0000000000000000000000000000000000000000..77a3a588a6b3c56ab4e7cf430a4161ade35ca539
Binary files /dev/null and b/img/misc/icon/clothes/skimpy_lolita_dress.png differ
diff --git a/img/misc/icon/clothes/skimpy_lolita_dress_acc.png b/img/misc/icon/clothes/skimpy_lolita_dress_acc.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc22511c839020cee54349be87ab2ac81da765eb
Binary files /dev/null and b/img/misc/icon/clothes/skimpy_lolita_dress_acc.png differ
diff --git a/img/misc/icon/clothes/strap-on.png b/img/misc/icon/clothes/strap-on.png
index 2844e14c20304f3c4fbe62c61414f023de6600aa..fd7c4d3cff0bd962def3d20749a249f4743885d5 100644
Binary files a/img/misc/icon/clothes/strap-on.png and b/img/misc/icon/clothes/strap-on.png differ
diff --git a/img/misc/icon/clothes/strap-on_horse_cock.png b/img/misc/icon/clothes/strap-on_horse_cock.png
index 93c4d06625b39d3eae6f246a29b621a449274f15..1943dd93d08dc3b7a6d16e4fe9b1109c5f4ccd88 100644
Binary files a/img/misc/icon/clothes/strap-on_horse_cock.png and b/img/misc/icon/clothes/strap-on_horse_cock.png differ
diff --git a/img/misc/icon/clothes/strap-on_knotted_cock.png b/img/misc/icon/clothes/strap-on_knotted_cock.png
index 581ad05a29e588a68fd335e6fce0734007c5a0e3..e2428c8240d97f99b9e3e04e77557aa1de58b24e 100644
Binary files a/img/misc/icon/clothes/strap-on_knotted_cock.png and b/img/misc/icon/clothes/strap-on_knotted_cock.png differ
diff --git a/img/misc/icon/clothes/traits/asylum.png b/img/misc/icon/clothes/traits/asylum.png
new file mode 100644
index 0000000000000000000000000000000000000000..eae83b41ce7896ce1e01344ca78e4158f5801f28
Binary files /dev/null and b/img/misc/icon/clothes/traits/asylum.png differ
diff --git a/img/misc/icon/clothes/traits/hidden.png b/img/misc/icon/clothes/traits/hidden.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c05e48818b2336e58f54c9b688644e4f04de5f7
Binary files /dev/null and b/img/misc/icon/clothes/traits/hidden.png differ
diff --git a/img/misc/icon/coffee.png b/img/misc/icon/coffee.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5e65bf66d2e0890f2ea0a0ca63e8eb077ee37d1
Binary files /dev/null and b/img/misc/icon/coffee.png differ
diff --git a/img/misc/icon/furniture/armchair.png b/img/misc/icon/furniture/armchair.png
new file mode 100644
index 0000000000000000000000000000000000000000..4de3ebe903d7c708b7d2cf84d0e5a037c67879d9
Binary files /dev/null and b/img/misc/icon/furniture/armchair.png differ
diff --git a/img/misc/icon/furniture/armchairegg.png b/img/misc/icon/furniture/armchairegg.png
new file mode 100644
index 0000000000000000000000000000000000000000..2bde4290cdb59700310bc9f184076b1d91f69aad
Binary files /dev/null and b/img/misc/icon/furniture/armchairegg.png differ
diff --git a/img/misc/icon/furniture/armoire.png b/img/misc/icon/furniture/armoire.png
new file mode 100644
index 0000000000000000000000000000000000000000..322dcad6a6a648d19fae6186515a58039786ee78
Binary files /dev/null and b/img/misc/icon/furniture/armoire.png differ
diff --git a/img/misc/icon/furniture/armoirecarved.png b/img/misc/icon/furniture/armoirecarved.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa332fa97dfd503e1f3a315898cec4aad9904f59
Binary files /dev/null and b/img/misc/icon/furniture/armoirecarved.png differ
diff --git a/img/misc/icon/furniture/banner.png b/img/misc/icon/furniture/banner.png
new file mode 100644
index 0000000000000000000000000000000000000000..757f4e89300731cc5170b0f19f8acda8069b6ce3
Binary files /dev/null and b/img/misc/icon/furniture/banner.png differ
diff --git a/img/misc/icon/furniture/bannerfestive.png b/img/misc/icon/furniture/bannerfestive.png
new file mode 100644
index 0000000000000000000000000000000000000000..2310401818986e2009d12903de9253d7c8a9bdb1
Binary files /dev/null and b/img/misc/icon/furniture/bannerfestive.png differ
diff --git a/img/misc/icon/furniture/bannerlewd.png b/img/misc/icon/furniture/bannerlewd.png
new file mode 100644
index 0000000000000000000000000000000000000000..757f4e89300731cc5170b0f19f8acda8069b6ce3
Binary files /dev/null and b/img/misc/icon/furniture/bannerlewd.png differ
diff --git a/img/misc/icon/furniture/bearplushie.png b/img/misc/icon/furniture/bearplushie.png
new file mode 100644
index 0000000000000000000000000000000000000000..f34be06f17cdc2e42cecb5f0131bee2826a065e6
Binary files /dev/null and b/img/misc/icon/furniture/bearplushie.png differ
diff --git a/img/misc/icon/furniture/bed.png b/img/misc/icon/furniture/bed.png
new file mode 100644
index 0000000000000000000000000000000000000000..8933b0c5ecbe915b8af6dc72382573149e7be3a6
Binary files /dev/null and b/img/misc/icon/furniture/bed.png differ
diff --git a/img/misc/icon/furniture/calendar.png b/img/misc/icon/furniture/calendar.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdf80fea99b35e8676d0b57c53ec5b85e0c11f50
Binary files /dev/null and b/img/misc/icon/furniture/calendar.png differ
diff --git a/img/misc/icon/furniture/chair.png b/img/misc/icon/furniture/chair.png
new file mode 100644
index 0000000000000000000000000000000000000000..573334f92efe5d31d360d3e367aeb19e63308be0
Binary files /dev/null and b/img/misc/icon/furniture/chair.png differ
diff --git a/img/misc/icon/furniture/doublebed.png b/img/misc/icon/furniture/doublebed.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2701e1031aca40df99eb0b87d77e09bccf776b1
Binary files /dev/null and b/img/misc/icon/furniture/doublebed.png differ
diff --git a/img/misc/icon/furniture/doublebeddeluxe.png b/img/misc/icon/furniture/doublebeddeluxe.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e94020834c01b049ec841f0f4fc1f4512b8a0a0
Binary files /dev/null and b/img/misc/icon/furniture/doublebeddeluxe.png differ
diff --git a/img/misc/icon/furniture/doublebedexotic.png b/img/misc/icon/furniture/doublebedexotic.png
new file mode 100644
index 0000000000000000000000000000000000000000..73a10dc747233e5d39121d3d29baffad1ddd06d5
Binary files /dev/null and b/img/misc/icon/furniture/doublebedexotic.png differ
diff --git a/img/misc/icon/furniture/doublebedwicker.png b/img/misc/icon/furniture/doublebedwicker.png
new file mode 100644
index 0000000000000000000000000000000000000000..7786c46121b4d09d2762939cfd3604b6abd50a60
Binary files /dev/null and b/img/misc/icon/furniture/doublebedwicker.png differ
diff --git a/img/misc/icon/furniture/flower.png b/img/misc/icon/furniture/flower.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1704665554179f935dd88093ecb38ea58bf524b
Binary files /dev/null and b/img/misc/icon/furniture/flower.png differ
diff --git a/img/misc/icon/furniture/jar.png b/img/misc/icon/furniture/jar.png
new file mode 100644
index 0000000000000000000000000000000000000000..870e1755fa925464aa128a0d48c77b79fe3d8c32
Binary files /dev/null and b/img/misc/icon/furniture/jar.png differ
diff --git a/img/misc/icon/furniture/marbletable.png b/img/misc/icon/furniture/marbletable.png
new file mode 100644
index 0000000000000000000000000000000000000000..705d6b91b41bf12dcf1b9fb9284c3cced2517a23
Binary files /dev/null and b/img/misc/icon/furniture/marbletable.png differ
diff --git a/img/misc/icon/furniture/painting.png b/img/misc/icon/furniture/painting.png
new file mode 100644
index 0000000000000000000000000000000000000000..f1b23b23aaba9de9288b7cfda7299438cf8f82aa
Binary files /dev/null and b/img/misc/icon/furniture/painting.png differ
diff --git a/img/misc/icon/furniture/singlebed.png b/img/misc/icon/furniture/singlebed.png
new file mode 100644
index 0000000000000000000000000000000000000000..c30f5ebda620ce75a84b27aff232c571dcc9adbb
Binary files /dev/null and b/img/misc/icon/furniture/singlebed.png differ
diff --git a/img/misc/icon/furniture/singlebeddeluxe.png b/img/misc/icon/furniture/singlebeddeluxe.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb8a8bcc156a5a541a09dcb81c9c4a0f3407ef69
Binary files /dev/null and b/img/misc/icon/furniture/singlebeddeluxe.png differ
diff --git a/img/misc/icon/furniture/stool.png b/img/misc/icon/furniture/stool.png
new file mode 100644
index 0000000000000000000000000000000000000000..18ed2db4ab99570a5973779332024639bc3528ff
Binary files /dev/null and b/img/misc/icon/furniture/stool.png differ
diff --git a/img/misc/icon/furniture/table.png b/img/misc/icon/furniture/table.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b1ced66d267f5ec31fd5edbcda614a38812c8f5
Binary files /dev/null and b/img/misc/icon/furniture/table.png differ
diff --git a/img/misc/icon/furniture/wardrobe.png b/img/misc/icon/furniture/wardrobe.png
new file mode 100644
index 0000000000000000000000000000000000000000..33e56b1f31201120b611be06839e72f4bfcbbc7d
Binary files /dev/null and b/img/misc/icon/furniture/wardrobe.png differ
diff --git a/img/misc/icon/furniture/wardrobebasic.png b/img/misc/icon/furniture/wardrobebasic.png
new file mode 100644
index 0000000000000000000000000000000000000000..7b47406c1f2f6d084e2079ad19adf6580a818694
Binary files /dev/null and b/img/misc/icon/furniture/wardrobebasic.png differ
diff --git a/img/misc/icon/furniture/wardrobeorganiser.png b/img/misc/icon/furniture/wardrobeorganiser.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7f96f3bfeba5ce2fad82309234e3daf301b8da8
Binary files /dev/null and b/img/misc/icon/furniture/wardrobeorganiser.png differ
diff --git a/img/misc/icon/sexToys/aphrodisiacpill.png b/img/misc/icon/sexToys/aphrodisiacpill.png
new file mode 100644
index 0000000000000000000000000000000000000000..3781f374c3363bab4d063735177db68902309999
Binary files /dev/null and b/img/misc/icon/sexToys/aphrodisiacpill.png differ
diff --git a/img/misc/normal/deepunderground.png b/img/misc/normal/deepunderground.png
deleted file mode 100644
index 086884017771ef54cfea5df6f27ec8ac24e7fad0..0000000000000000000000000000000000000000
Binary files a/img/misc/normal/deepunderground.png and /dev/null differ
diff --git a/img/misc/normal/drain.gif b/img/misc/normal/drain.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bd6744fb1ee5b6a12a8e8a80d31c4de78d35f36f
Binary files /dev/null and b/img/misc/normal/drain.gif differ
diff --git a/img/misc/normal/factory_dawn.gif b/img/misc/normal/factory_dawn.gif
index d3fe627dda88e3a43c667c1e2f837182f669f531..23ce23251af9cf750967313a00898aaed8fa71be 100644
Binary files a/img/misc/normal/factory_dawn.gif and b/img/misc/normal/factory_dawn.gif differ
diff --git a/img/misc/normal/factory_day.gif b/img/misc/normal/factory_day.gif
index e32689cad9116297bb66d7f0ab0696e637e13b68..8ede6da505ef64fb5f842d0a2304768d3627ac61 100644
Binary files a/img/misc/normal/factory_day.gif and b/img/misc/normal/factory_day.gif differ
diff --git a/img/misc/normal/factory_dusk.gif b/img/misc/normal/factory_dusk.gif
index 38af35aed0baf2566fbddfaa53a8d320704a1f0b..019931fbd1089a6b0af5f4ec43cebbfc2c115f53 100644
Binary files a/img/misc/normal/factory_dusk.gif and b/img/misc/normal/factory_dusk.gif differ
diff --git a/img/misc/normal/factory_night.gif b/img/misc/normal/factory_night.gif
deleted file mode 100644
index bc9661dcf9d6adfefbf3b26c6076de106ea10391..0000000000000000000000000000000000000000
Binary files a/img/misc/normal/factory_night.gif and /dev/null differ
diff --git a/img/misc/normal/factory_night.png b/img/misc/normal/factory_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..40005479fc49b7b5049acd3402a3223b732363a6
Binary files /dev/null and b/img/misc/normal/factory_night.png differ
diff --git a/img/misc/normal/remy_farm_dawn.png b/img/misc/normal/remy_farm_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..9805e476e59923fc6273bce462b621f3c4ea614a
Binary files /dev/null and b/img/misc/normal/remy_farm_dawn.png differ
diff --git a/img/misc/normal/remy_farm_day.png b/img/misc/normal/remy_farm_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e97dd211355b404313fad08ad56bdc37bbd0a79
Binary files /dev/null and b/img/misc/normal/remy_farm_day.png differ
diff --git a/img/misc/normal/remy_farm_dusk.png b/img/misc/normal/remy_farm_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..21b27e8b62f8a7688f6c9fd42e6015d05dc75954
Binary files /dev/null and b/img/misc/normal/remy_farm_dusk.png differ
diff --git a/img/misc/normal/remy_farm_night.png b/img/misc/normal/remy_farm_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..157dca351d863f9c6833ea411fecddf6685ab9fb
Binary files /dev/null and b/img/misc/normal/remy_farm_night.png differ
diff --git a/img/misc/normal/sewersdawn.gif b/img/misc/normal/sewersdawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..269a15d1646cffb3aae61c353bcefe69ae0d4093
Binary files /dev/null and b/img/misc/normal/sewersdawn.gif differ
diff --git a/img/misc/normal/sewersday.gif b/img/misc/normal/sewersday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d1d651d77b976fd8641c9e35bc2ec2183e400a79
Binary files /dev/null and b/img/misc/normal/sewersday.gif differ
diff --git a/img/misc/normal/sewersdusk.gif b/img/misc/normal/sewersdusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..475852ab908b7ff5f476664b56a601a3f6e82219
Binary files /dev/null and b/img/misc/normal/sewersdusk.gif differ
diff --git a/img/misc/normal/sewersnight.gif b/img/misc/normal/sewersnight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d8d195739ad9f66dae3c7abdd37fa11946398595
Binary files /dev/null and b/img/misc/normal/sewersnight.gif differ
diff --git a/img/misc/normal/templedawn.png b/img/misc/normal/templedawn.png
index f55a5e678b5091d2c3fc757335bf18b32fa9ddee..befc1c92a8a05a9708e7ae7eedfec2fb6104789e 100644
Binary files a/img/misc/normal/templedawn.png and b/img/misc/normal/templedawn.png differ
diff --git a/img/misc/normal/templeday.png b/img/misc/normal/templeday.png
index fe162c076506813327eccb777f4f8ece0fe37efd..e696eed108e93e8f7c3106ed0c46ee32dbf08567 100644
Binary files a/img/misc/normal/templeday.png and b/img/misc/normal/templeday.png differ
diff --git a/img/misc/normal/templedusk.png b/img/misc/normal/templedusk.png
index dd818e6ab18ccdee3c50d864ba9f4ae36ad5ce3b..64e72c784ec3fba81522e76cb6afa95ce2714523 100644
Binary files a/img/misc/normal/templedusk.png and b/img/misc/normal/templedusk.png differ
diff --git a/img/misc/normal/templenight.png b/img/misc/normal/templenight.png
index 571e2d03f7e053d4ae65eaafbf66cf6340a8cbe9..e4ccff70339a99c9e0c4290cb106697f38522be6 100644
Binary files a/img/misc/normal/templenight.png and b/img/misc/normal/templenight.png differ
diff --git a/img/misc/normal/undergrounddawn.png b/img/misc/normal/undergrounddawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb13fafc9a37da7cc20f8956ad1e6668e137a597
Binary files /dev/null and b/img/misc/normal/undergrounddawn.png differ
diff --git a/img/misc/normal/undergroundday.png b/img/misc/normal/undergroundday.png
new file mode 100644
index 0000000000000000000000000000000000000000..b777dff211bcbfbfc6d6dc4a1c8e1c554f91e673
Binary files /dev/null and b/img/misc/normal/undergroundday.png differ
diff --git a/img/misc/normal/undergrounddusk.png b/img/misc/normal/undergrounddusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2bd65f3de3f74468b48f8ca5eb93de986058894
Binary files /dev/null and b/img/misc/normal/undergrounddusk.png differ
diff --git a/img/misc/normal/undergroundnight.png b/img/misc/normal/undergroundnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..964e32160be92a5ad0a652cfb515ddb89ee2ec08
Binary files /dev/null and b/img/misc/normal/undergroundnight.png differ
diff --git a/img/misc/winter/deepunderground.png b/img/misc/winter/deepunderground.png
deleted file mode 100644
index a161ff5b28da1426f9f14e3d404b8583b0c72aca..0000000000000000000000000000000000000000
Binary files a/img/misc/winter/deepunderground.png and /dev/null differ
diff --git a/img/misc/winter/drain.gif b/img/misc/winter/drain.gif
new file mode 100644
index 0000000000000000000000000000000000000000..bd6744fb1ee5b6a12a8e8a80d31c4de78d35f36f
Binary files /dev/null and b/img/misc/winter/drain.gif differ
diff --git a/img/misc/winter/factory_dawn.gif b/img/misc/winter/factory_dawn.gif
index a6f2b0c2fd085272b6f4105398dfb0373ce2e97a..db1fcce440fda4bff634ed707998dc1d650d6a6d 100644
Binary files a/img/misc/winter/factory_dawn.gif and b/img/misc/winter/factory_dawn.gif differ
diff --git a/img/misc/winter/factory_day.gif b/img/misc/winter/factory_day.gif
index 2a15dd54c3105e380e6098c0020e292d458c722b..f0802f69be2fb4f451a31993078b76a3164fd6c0 100644
Binary files a/img/misc/winter/factory_day.gif and b/img/misc/winter/factory_day.gif differ
diff --git a/img/misc/winter/factory_dusk.gif b/img/misc/winter/factory_dusk.gif
index 43895a6c0881e42b8dba6e8df821e12ab8f1f7ca..98edae7d76d007c93f3695a4a54690ed2b1a15d8 100644
Binary files a/img/misc/winter/factory_dusk.gif and b/img/misc/winter/factory_dusk.gif differ
diff --git a/img/misc/winter/factory_night.gif b/img/misc/winter/factory_night.gif
deleted file mode 100644
index ed8eb2e3726299a6609152b8243a097a4655d753..0000000000000000000000000000000000000000
Binary files a/img/misc/winter/factory_night.gif and /dev/null differ
diff --git a/img/misc/winter/factory_night.png b/img/misc/winter/factory_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..60178ed475d28b90a251a16800cd99a491a631ee
Binary files /dev/null and b/img/misc/winter/factory_night.png differ
diff --git a/img/misc/winter/remy_farm_dawn.png b/img/misc/winter/remy_farm_dawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0586d510add363e6131876a5bb37e6295edfa01
Binary files /dev/null and b/img/misc/winter/remy_farm_dawn.png differ
diff --git a/img/misc/winter/remy_farm_day.png b/img/misc/winter/remy_farm_day.png
new file mode 100644
index 0000000000000000000000000000000000000000..f49c2d80198f75c9c4eb7ad306577481164c0f2c
Binary files /dev/null and b/img/misc/winter/remy_farm_day.png differ
diff --git a/img/misc/winter/remy_farm_dusk.png b/img/misc/winter/remy_farm_dusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..c666ebcae05531738bcc92dd53b07f75fdb2b78f
Binary files /dev/null and b/img/misc/winter/remy_farm_dusk.png differ
diff --git a/img/misc/winter/remy_farm_night.png b/img/misc/winter/remy_farm_night.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed51653ee9fc6d2ab79251f8cc85f812fa430f5f
Binary files /dev/null and b/img/misc/winter/remy_farm_night.png differ
diff --git a/img/misc/winter/sewersdawn.gif b/img/misc/winter/sewersdawn.gif
new file mode 100644
index 0000000000000000000000000000000000000000..269a15d1646cffb3aae61c353bcefe69ae0d4093
Binary files /dev/null and b/img/misc/winter/sewersdawn.gif differ
diff --git a/img/misc/winter/sewersday.gif b/img/misc/winter/sewersday.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d1d651d77b976fd8641c9e35bc2ec2183e400a79
Binary files /dev/null and b/img/misc/winter/sewersday.gif differ
diff --git a/img/misc/winter/sewersdusk.gif b/img/misc/winter/sewersdusk.gif
new file mode 100644
index 0000000000000000000000000000000000000000..475852ab908b7ff5f476664b56a601a3f6e82219
Binary files /dev/null and b/img/misc/winter/sewersdusk.gif differ
diff --git a/img/misc/winter/sewersnight.gif b/img/misc/winter/sewersnight.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d8d195739ad9f66dae3c7abdd37fa11946398595
Binary files /dev/null and b/img/misc/winter/sewersnight.gif differ
diff --git a/img/misc/winter/templedawn.png b/img/misc/winter/templedawn.png
index 4624947763047546b604b7502031bc57dc0398d0..6ff271d38b966a227cb80ea95ca786fbb07152c7 100644
Binary files a/img/misc/winter/templedawn.png and b/img/misc/winter/templedawn.png differ
diff --git a/img/misc/winter/templeday.png b/img/misc/winter/templeday.png
index c27160cc31f43506fb1d577c4fe57cdbd05a92d4..6c51af4e25fcf3a432ba92d8947ae2c34a99c1ea 100644
Binary files a/img/misc/winter/templeday.png and b/img/misc/winter/templeday.png differ
diff --git a/img/misc/winter/templedusk.png b/img/misc/winter/templedusk.png
index d7b2ee2d8c9464f97e7a22231e19998c26f58c2f..7bcb50fe8b1a6f70a865570e7dbff3631540688c 100644
Binary files a/img/misc/winter/templedusk.png and b/img/misc/winter/templedusk.png differ
diff --git a/img/misc/winter/templenight.png b/img/misc/winter/templenight.png
index a39a391968c4e70bd0f4c6f59447ecdfce919699..dc873e64fe23eaf7e32d47cb78b899345685b9f4 100644
Binary files a/img/misc/winter/templenight.png and b/img/misc/winter/templenight.png differ
diff --git a/img/misc/winter/undergrounddawn.png b/img/misc/winter/undergrounddawn.png
new file mode 100644
index 0000000000000000000000000000000000000000..467f30bf315977ac26202225e323eb3986c2eee5
Binary files /dev/null and b/img/misc/winter/undergrounddawn.png differ
diff --git a/img/misc/winter/undergroundday.png b/img/misc/winter/undergroundday.png
new file mode 100644
index 0000000000000000000000000000000000000000..3dac580e896dfe8492f415dd248cee19a63e1cbb
Binary files /dev/null and b/img/misc/winter/undergroundday.png differ
diff --git a/img/misc/winter/undergrounddusk.png b/img/misc/winter/undergrounddusk.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b890d51fa667992a20fc2b43b60aea98ddd96aa
Binary files /dev/null and b/img/misc/winter/undergrounddusk.png differ
diff --git a/img/misc/winter/undergroundnight.png b/img/misc/winter/undergroundnight.png
new file mode 100644
index 0000000000000000000000000000000000000000..e80ec239297f87afac21c44353f944bb2ee7fb19
Binary files /dev/null and b/img/misc/winter/undergroundnight.png differ
diff --git a/img/sex/doggy/active/body/fools/doggyactivebaselegs.png b/img/sex/doggy/active/body/fools/doggyactivebaselegs.png
deleted file mode 100644
index f640607cb5150e817edd44f241a1159580692088..0000000000000000000000000000000000000000
Binary files a/img/sex/doggy/active/body/fools/doggyactivebaselegs.png and /dev/null differ
diff --git a/img/sex/doggy/active/legs/goldanklets/feetjob.png b/img/sex/doggy/active/legs/goldanklets/fullfeetjobleft.png
similarity index 100%
rename from img/sex/doggy/active/legs/goldanklets/feetjob.png
rename to img/sex/doggy/active/legs/goldanklets/fullfeetjobleft.png
diff --git a/img/sex/doggy/active/legs/goldanklets/fullfeetjobright.png b/img/sex/doggy/active/legs/goldanklets/fullfeetjobright.png
new file mode 100644
index 0000000000000000000000000000000000000000..afac098aebf088d73cfc7730599c28e58ff52091
Binary files /dev/null and b/img/sex/doggy/active/legs/goldanklets/fullfeetjobright.png differ
diff --git a/img/sex/doggy/active/legs/goldanklets/fullrestleft.png b/img/sex/doggy/active/legs/goldanklets/fullrestleft.png
new file mode 100644
index 0000000000000000000000000000000000000000..750616a7ea1c6e1dea820994b278a0480301aec0
Binary files /dev/null and b/img/sex/doggy/active/legs/goldanklets/fullrestleft.png differ
diff --git a/img/sex/doggy/active/legs/goldanklets/fullrestright.png b/img/sex/doggy/active/legs/goldanklets/fullrestright.png
new file mode 100644
index 0000000000000000000000000000000000000000..09972291855d36be73836349a90c4492eff08688
Binary files /dev/null and b/img/sex/doggy/active/legs/goldanklets/fullrestright.png differ
diff --git a/img/sex/doggy/active/legs/goldanklets/rest.png b/img/sex/doggy/active/legs/goldanklets/rest.png
deleted file mode 100644
index 5b970902a2d8e7260b8e20455b10a0754063c26a..0000000000000000000000000000000000000000
Binary files a/img/sex/doggy/active/legs/goldanklets/rest.png and /dev/null differ
diff --git a/img/sex/doggy/active/transformations/cow/ears/spotted black.png b/img/sex/doggy/active/transformations/cow/ears/spotted black.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9940a626d9ab62b8a80cafad849ed52623d9a0b
Binary files /dev/null and b/img/sex/doggy/active/transformations/cow/ears/spotted black.png differ
diff --git a/img/sex/doggy/active/transformations/cow/ears/spotted brown.png b/img/sex/doggy/active/transformations/cow/ears/spotted brown.png
new file mode 100644
index 0000000000000000000000000000000000000000..88c11a7c85e522a14c020065062d2038982f9585
Binary files /dev/null and b/img/sex/doggy/active/transformations/cow/ears/spotted brown.png differ
diff --git a/img/sex/doggy/active/transformations/demon/horns/blue.png b/img/sex/doggy/active/transformations/demon/horns/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..f7472d9e5c9ba1d9ebb4afc90e303b262c6f721f
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/horns/blue.png differ
diff --git a/img/sex/doggy/active/transformations/demon/horns/lime.png b/img/sex/doggy/active/transformations/demon/horns/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ce2d7f9604699746dd18d565e78c0c3fac415d9
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/horns/lime.png differ
diff --git a/img/sex/doggy/active/transformations/demon/horns/red.png b/img/sex/doggy/active/transformations/demon/horns/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f5315b0b35def3b654cdc6f426bd612f539a750
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/horns/red.png differ
diff --git a/img/sex/doggy/active/transformations/demon/horns/yellow.png b/img/sex/doggy/active/transformations/demon/horns/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..f4fb5c3dd5493d81cb48436a9b31f67ec3f89f66
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/horns/yellow.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tail/blue.png b/img/sex/doggy/active/transformations/demon/tail/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e912f93ed8afcf27c905aa42ce0fe4f5b79248c
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tail/blue.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tail/lime.png b/img/sex/doggy/active/transformations/demon/tail/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..418bbdd9c35749adf9a08b10e96a617c20b4bfb2
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tail/lime.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tail/red.png b/img/sex/doggy/active/transformations/demon/tail/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d41e0160ad93ab6765df68f197a9e235dba61da
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tail/red.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tail/yellow.png b/img/sex/doggy/active/transformations/demon/tail/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..01d5aceafdb66783a6724f013dea6651b0c7eb8a
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tail/yellow.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexback/blue.png b/img/sex/doggy/active/transformations/demon/tailsexback/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f3ce4f7167ad0ec4052deb34e5c3d6c43febf62
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexback/blue.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexback/lime.png b/img/sex/doggy/active/transformations/demon/tailsexback/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..31c6c7ffaf44827ad15c8600841b6e68d49283c1
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexback/lime.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexback/red.png b/img/sex/doggy/active/transformations/demon/tailsexback/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff5730053e6f7b04951303db7773191ab29bb84c
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexback/red.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexback/yellow.png b/img/sex/doggy/active/transformations/demon/tailsexback/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..73c427e3cb8c6d5baf7a3619d3c83bd3e621e04f
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexback/yellow.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexfront/blue.png b/img/sex/doggy/active/transformations/demon/tailsexfront/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ec922220ae75f1a4703cadf9e777809d12b77e0
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexfront/blue.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexfront/lime.png b/img/sex/doggy/active/transformations/demon/tailsexfront/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa7da79258a5f0d8afa8b71a081d960f58b74bf0
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexfront/lime.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexfront/red.png b/img/sex/doggy/active/transformations/demon/tailsexfront/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a5b1aec6986709f75edaccca45397625fa56f69
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexfront/red.png differ
diff --git a/img/sex/doggy/active/transformations/demon/tailsexfront/yellow.png b/img/sex/doggy/active/transformations/demon/tailsexfront/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..4700b8aeb00cee39a21b19a22e2cf45d7394506d
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/tailsexfront/yellow.png differ
diff --git a/img/sex/doggy/active/transformations/demon/wings/blue.png b/img/sex/doggy/active/transformations/demon/wings/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..78e041830afc49f63aef7b7a902068cc001d4b9a
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/wings/blue.png differ
diff --git a/img/sex/doggy/active/transformations/demon/wings/lime.png b/img/sex/doggy/active/transformations/demon/wings/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..0db8590ca01d6ab7f11735f099e561e0c37e4dee
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/wings/lime.png differ
diff --git a/img/sex/doggy/active/transformations/demon/wings/red.png b/img/sex/doggy/active/transformations/demon/wings/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e82a900e276c5b54a8ee600971b5f82dd733c1f
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/wings/red.png differ
diff --git a/img/sex/doggy/active/transformations/demon/wings/yellow.png b/img/sex/doggy/active/transformations/demon/wings/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..ece511afdb0a83c13c730002fd0ec15b42666d45
Binary files /dev/null and b/img/sex/doggy/active/transformations/demon/wings/yellow.png differ
diff --git a/img/sex/doggyRed/active/body/fools/doggyactivebaselegs.png b/img/sex/doggyRed/active/body/fools/doggyactivebaselegs.png
deleted file mode 100644
index c38bf0b92d472fee30be54f5f5b59cf450851b15..0000000000000000000000000000000000000000
Binary files a/img/sex/doggyRed/active/body/fools/doggyactivebaselegs.png and /dev/null differ
diff --git a/img/sex/missionary/active/body/fools/activebaselegl.png b/img/sex/missionary/active/body/fools/activebaselegl.png
deleted file mode 100644
index 4d2c219bc718ab25c5ed7b63b767b7e615af371a..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/body/fools/activebaselegl.png and /dev/null differ
diff --git a/img/sex/missionary/active/body/fools/activebaselegldown.png b/img/sex/missionary/active/body/fools/activebaselegldown.png
deleted file mode 100644
index 15f951627524d1df2bfb720c6ce4ace76fb6bce3..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/body/fools/activebaselegldown.png and /dev/null differ
diff --git a/img/sex/missionary/active/body/fools/activebaselegr.png b/img/sex/missionary/active/body/fools/activebaselegr.png
deleted file mode 100644
index c628bec7ff3a00da836ddd4a2ab5ac0b43b7114a..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/body/fools/activebaselegr.png and /dev/null differ
diff --git a/img/sex/missionary/active/body/fools/activebaselegrdown.png b/img/sex/missionary/active/body/fools/activebaselegrdown.png
deleted file mode 100644
index 2c72efbe7c405c12763930239b8433429ec3c435..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/body/fools/activebaselegrdown.png and /dev/null differ
diff --git a/img/sex/missionary/active/legs/goldanklets/downleft.png b/img/sex/missionary/active/legs/goldanklets/downleft.png
deleted file mode 100644
index 5802116b9c0e626dba170fb9e05ecdb616c33ce0..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/legs/goldanklets/downleft.png and /dev/null differ
diff --git a/img/sex/missionary/active/legs/goldanklets/downright.png b/img/sex/missionary/active/legs/goldanklets/downright.png
deleted file mode 100644
index 963facada75f7834bff933e12d119643fd3cba1f..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/legs/goldanklets/downright.png and /dev/null differ
diff --git a/img/sex/missionary/active/legs/goldanklets/feetjob.png b/img/sex/missionary/active/legs/goldanklets/feetjob.png
deleted file mode 100644
index 7d928882cf17120b68613a21326513f89cfc5fd5..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/legs/goldanklets/feetjob.png and /dev/null differ
diff --git a/img/sex/missionary/active/legs/goldanklets/fulldownleft.png b/img/sex/missionary/active/legs/goldanklets/fulldownleft.png
new file mode 100644
index 0000000000000000000000000000000000000000..caf0e65981e15f8f9f0dfa89fd30915fe942712b
Binary files /dev/null and b/img/sex/missionary/active/legs/goldanklets/fulldownleft.png differ
diff --git a/img/sex/missionary/active/legs/goldanklets/fulldownright.png b/img/sex/missionary/active/legs/goldanklets/fulldownright.png
new file mode 100644
index 0000000000000000000000000000000000000000..28c7dced9ebebb9e3aaafe697a8596f5c0b13d87
Binary files /dev/null and b/img/sex/missionary/active/legs/goldanklets/fulldownright.png differ
diff --git a/img/sex/missionary/active/legs/goldanklets/fullfeetjob.png b/img/sex/missionary/active/legs/goldanklets/fullfeetjob.png
new file mode 100644
index 0000000000000000000000000000000000000000..73f6b9dc62246b2160e135ce593e32ade52562c4
Binary files /dev/null and b/img/sex/missionary/active/legs/goldanklets/fullfeetjob.png differ
diff --git a/img/sex/missionary/active/legs/goldanklets/fullupleft.png b/img/sex/missionary/active/legs/goldanklets/fullupleft.png
new file mode 100644
index 0000000000000000000000000000000000000000..5dd4e90067c909e3a3d9996e955f1244b363dcff
Binary files /dev/null and b/img/sex/missionary/active/legs/goldanklets/fullupleft.png differ
diff --git a/img/sex/missionary/active/legs/goldanklets/fullupright.png b/img/sex/missionary/active/legs/goldanklets/fullupright.png
new file mode 100644
index 0000000000000000000000000000000000000000..eaf27c4f631d9ce6e7820150ca4716c15090d57a
Binary files /dev/null and b/img/sex/missionary/active/legs/goldanklets/fullupright.png differ
diff --git a/img/sex/missionary/active/legs/goldanklets/upleft.png b/img/sex/missionary/active/legs/goldanklets/upleft.png
deleted file mode 100644
index d358075f0fe6cb4fc4b41ec4b32a0db3f85f7a43..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/legs/goldanklets/upleft.png and /dev/null differ
diff --git a/img/sex/missionary/active/legs/goldanklets/upright.png b/img/sex/missionary/active/legs/goldanklets/upright.png
deleted file mode 100644
index 0fa4e28f0f1e271d59e98d337478201174614722..0000000000000000000000000000000000000000
Binary files a/img/sex/missionary/active/legs/goldanklets/upright.png and /dev/null differ
diff --git a/img/sex/missionary/active/transformations/cow/ears/spotted black.png b/img/sex/missionary/active/transformations/cow/ears/spotted black.png
new file mode 100644
index 0000000000000000000000000000000000000000..294804ab554c583eefb3334d7022e221c70e3a69
Binary files /dev/null and b/img/sex/missionary/active/transformations/cow/ears/spotted black.png differ
diff --git a/img/sex/missionary/active/transformations/cow/ears/spotted brown.png b/img/sex/missionary/active/transformations/cow/ears/spotted brown.png
new file mode 100644
index 0000000000000000000000000000000000000000..19371879c29dcd72a54888da022944ee0f1ec145
Binary files /dev/null and b/img/sex/missionary/active/transformations/cow/ears/spotted brown.png differ
diff --git a/img/sex/missionary/active/transformations/demon/horns/blue.png b/img/sex/missionary/active/transformations/demon/horns/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd7c34c2f4a59543424f901e4bcdefd28e77eeac
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/horns/blue.png differ
diff --git a/img/sex/missionary/active/transformations/demon/horns/lime.png b/img/sex/missionary/active/transformations/demon/horns/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..627cdb8436d8652ad5816aae9a89f7604e4fef74
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/horns/lime.png differ
diff --git a/img/sex/missionary/active/transformations/demon/horns/red.png b/img/sex/missionary/active/transformations/demon/horns/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..23862960ade2b35df1fec486d7fff98304dd5702
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/horns/red.png differ
diff --git a/img/sex/missionary/active/transformations/demon/horns/yellow.png b/img/sex/missionary/active/transformations/demon/horns/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0de4ea5a1d09cce63ab1c8253e04f9a5eb10139
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/horns/yellow.png differ
diff --git a/img/sex/missionary/active/transformations/demon/tail/blue.png b/img/sex/missionary/active/transformations/demon/tail/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5c6800c23be22c0bead0a0a31baff9c5d674a9f
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/tail/blue.png differ
diff --git a/img/sex/missionary/active/transformations/demon/tail/lime.png b/img/sex/missionary/active/transformations/demon/tail/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..021a1abe7cdf7b371a1cb134cb40e089ad021ed3
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/tail/lime.png differ
diff --git a/img/sex/missionary/active/transformations/demon/tail/red.png b/img/sex/missionary/active/transformations/demon/tail/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..80ae3279cbd1317b1d45e7dfff76fac66ba86c10
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/tail/red.png differ
diff --git a/img/sex/missionary/active/transformations/demon/tail/yellow.png b/img/sex/missionary/active/transformations/demon/tail/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c37ae65282b51fdbd2dbbe87171774442fcd587
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/tail/yellow.png differ
diff --git a/img/sex/missionary/active/transformations/demon/wings/blue.png b/img/sex/missionary/active/transformations/demon/wings/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3f069846fee574b58ba4491ac9b2c34c02b28cf
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/wings/blue.png differ
diff --git a/img/sex/missionary/active/transformations/demon/wings/lime.png b/img/sex/missionary/active/transformations/demon/wings/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..241eb1b8c85de91ce37ab986209eac2373fb77ae
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/wings/lime.png differ
diff --git a/img/sex/missionary/active/transformations/demon/wings/red.png b/img/sex/missionary/active/transformations/demon/wings/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..7063bca65c93ce8dc7f2522a21f01f5ba1ecc866
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/wings/red.png differ
diff --git a/img/sex/missionary/active/transformations/demon/wings/yellow.png b/img/sex/missionary/active/transformations/demon/wings/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..f29d282b201e4b437d09438e95cee18e010f8c2c
Binary files /dev/null and b/img/sex/missionary/active/transformations/demon/wings/yellow.png differ
diff --git a/img/sex/missionaryRed/active/body/fools/activebaselegl.png b/img/sex/missionaryRed/active/body/fools/activebaselegl.png
deleted file mode 100644
index 6f0d880f5fe3e6b264714ed5d3ef5253a607b8be..0000000000000000000000000000000000000000
Binary files a/img/sex/missionaryRed/active/body/fools/activebaselegl.png and /dev/null differ
diff --git a/img/sex/missionaryRed/active/body/fools/activebaselegldown.png b/img/sex/missionaryRed/active/body/fools/activebaselegldown.png
deleted file mode 100644
index 2e8d7aea68d60147f1e902d25a4aafd94565a312..0000000000000000000000000000000000000000
Binary files a/img/sex/missionaryRed/active/body/fools/activebaselegldown.png and /dev/null differ
diff --git a/img/sex/missionaryRed/active/body/fools/activebaselegr.png b/img/sex/missionaryRed/active/body/fools/activebaselegr.png
deleted file mode 100644
index 1039c06a333e8cb83e798382f1694c645549ea0f..0000000000000000000000000000000000000000
Binary files a/img/sex/missionaryRed/active/body/fools/activebaselegr.png and /dev/null differ
diff --git a/img/sex/missionaryRed/active/body/fools/activebaselegrdown.png b/img/sex/missionaryRed/active/body/fools/activebaselegrdown.png
deleted file mode 100644
index 869e4d67a55e2abdebcc52b36d4489ce62bb8823..0000000000000000000000000000000000000000
Binary files a/img/sex/missionaryRed/active/body/fools/activebaselegrdown.png and /dev/null differ
diff --git a/img/transformations/cow/ears/spotted black.png b/img/transformations/cow/ears/spotted black.png
new file mode 100644
index 0000000000000000000000000000000000000000..4d53446c0568d26b0988b4485c8c5cadf8d35506
Binary files /dev/null and b/img/transformations/cow/ears/spotted black.png differ
diff --git a/img/transformations/cow/ears/spotted brown.png b/img/transformations/cow/ears/spotted brown.png
new file mode 100644
index 0000000000000000000000000000000000000000..29ceb5558f0f26da158c8bf1f4f06a7ad6b71939
Binary files /dev/null and b/img/transformations/cow/ears/spotted brown.png differ
diff --git a/img/transformations/demon/flaunttail/blue.png b/img/transformations/demon/flaunttail/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..6bb54576a3f0285e914b8cd76f365230bb9b583b
Binary files /dev/null and b/img/transformations/demon/flaunttail/blue.png differ
diff --git a/img/transformations/demon/flaunttail/lime.png b/img/transformations/demon/flaunttail/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee6919d3c554fd0b55fef9cfd0cc6ab417f0af0f
Binary files /dev/null and b/img/transformations/demon/flaunttail/lime.png differ
diff --git a/img/transformations/demon/flaunttail/red.png b/img/transformations/demon/flaunttail/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..049920b42f7a984968bd07817575f1f442ad1387
Binary files /dev/null and b/img/transformations/demon/flaunttail/red.png differ
diff --git a/img/transformations/demon/flaunttail/yellow.png b/img/transformations/demon/flaunttail/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd1a47443c7b79220297f0a9aca9e03be4741f1f
Binary files /dev/null and b/img/transformations/demon/flaunttail/yellow.png differ
diff --git a/img/transformations/demon/flauntwings/blue.png b/img/transformations/demon/flauntwings/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e3b8c86cf8e3cc42668276cd3e7876cdaa6cc84
Binary files /dev/null and b/img/transformations/demon/flauntwings/blue.png differ
diff --git a/img/transformations/demon/flauntwings/lime.png b/img/transformations/demon/flauntwings/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..6cbb6b9cf08861f253ebc23521b679a87a07e56a
Binary files /dev/null and b/img/transformations/demon/flauntwings/lime.png differ
diff --git a/img/transformations/demon/flauntwings/red.png b/img/transformations/demon/flauntwings/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6f117ca4542d7e65d6443ea825caf1e54eb3c94
Binary files /dev/null and b/img/transformations/demon/flauntwings/red.png differ
diff --git a/img/transformations/demon/flauntwings/yellow.png b/img/transformations/demon/flauntwings/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..da5f49ddb3302903b392f042325106a5b64d3127
Binary files /dev/null and b/img/transformations/demon/flauntwings/yellow.png differ
diff --git a/img/transformations/demon/horns/blue.png b/img/transformations/demon/horns/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..748eab34a3ea2528614f569d112d98db51a98a95
Binary files /dev/null and b/img/transformations/demon/horns/blue.png differ
diff --git a/img/transformations/demon/horns/lime.png b/img/transformations/demon/horns/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..e517905400405a4ba0b3725023b3cccec3033f94
Binary files /dev/null and b/img/transformations/demon/horns/lime.png differ
diff --git a/img/transformations/demon/horns/red.png b/img/transformations/demon/horns/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e23581e34cac5466e60ba6c0a244079eb4df3dc
Binary files /dev/null and b/img/transformations/demon/horns/red.png differ
diff --git a/img/transformations/demon/horns/yellow.png b/img/transformations/demon/horns/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..61fd9d44d4e3e532faeb42178f84c80585c90c8c
Binary files /dev/null and b/img/transformations/demon/horns/yellow.png differ
diff --git a/img/transformations/demon/leftcover/blue.png b/img/transformations/demon/leftcover/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed25ab91c4809ac953bf6553b7984c9fa0c2d9cf
Binary files /dev/null and b/img/transformations/demon/leftcover/blue.png differ
diff --git a/img/transformations/demon/leftcover/lime.png b/img/transformations/demon/leftcover/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..67ce788511ab02ad2c3b9c6496cf5a1a5dfce719
Binary files /dev/null and b/img/transformations/demon/leftcover/lime.png differ
diff --git a/img/transformations/demon/leftcover/red.png b/img/transformations/demon/leftcover/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5e2713c0ef8fae955297fc417ef156fb7697091
Binary files /dev/null and b/img/transformations/demon/leftcover/red.png differ
diff --git a/img/transformations/demon/leftcover/yellow.png b/img/transformations/demon/leftcover/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..771831c09ff8751f59727ada7d4d0c54a5d94e14
Binary files /dev/null and b/img/transformations/demon/leftcover/yellow.png differ
diff --git a/img/transformations/demon/rightcover/blue.png b/img/transformations/demon/rightcover/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..9313c49350a408612b591ddee3b0434cb971ade6
Binary files /dev/null and b/img/transformations/demon/rightcover/blue.png differ
diff --git a/img/transformations/demon/rightcover/lime.png b/img/transformations/demon/rightcover/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1fb79e54f637f34ef32089a3a3570548f89731f
Binary files /dev/null and b/img/transformations/demon/rightcover/lime.png differ
diff --git a/img/transformations/demon/rightcover/red.png b/img/transformations/demon/rightcover/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..75132375adae4e2b14d60502d3f06fcf8b95f529
Binary files /dev/null and b/img/transformations/demon/rightcover/red.png differ
diff --git a/img/transformations/demon/rightcover/yellow.png b/img/transformations/demon/rightcover/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..ceb4e95869c34b152ae24117f0569b68bc155d77
Binary files /dev/null and b/img/transformations/demon/rightcover/yellow.png differ
diff --git a/img/transformations/demon/tail/blue.png b/img/transformations/demon/tail/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e88f96fb8fd3a1d78e66a6f34d178e9a6871ce9
Binary files /dev/null and b/img/transformations/demon/tail/blue.png differ
diff --git a/img/transformations/demon/tail/lime.png b/img/transformations/demon/tail/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c88e30249bc6e2aa334cee7a08d780256e4e66d
Binary files /dev/null and b/img/transformations/demon/tail/lime.png differ
diff --git a/img/transformations/demon/tail/red.png b/img/transformations/demon/tail/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..867ff6d51ccccea6a0d66d8b66b7eb9a8cb14827
Binary files /dev/null and b/img/transformations/demon/tail/red.png differ
diff --git a/img/transformations/demon/tail/yellow.png b/img/transformations/demon/tail/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..156f4bf717c9e34deb632e9f09d947eb14ba8f43
Binary files /dev/null and b/img/transformations/demon/tail/yellow.png differ
diff --git a/img/transformations/demon/wings/blue.png b/img/transformations/demon/wings/blue.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d3744509bf0867d69e0746c9ad74e446e6e32f9
Binary files /dev/null and b/img/transformations/demon/wings/blue.png differ
diff --git a/img/transformations/demon/wings/lime.png b/img/transformations/demon/wings/lime.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f16f60cc379147afd4715b706bd968dacd3728e
Binary files /dev/null and b/img/transformations/demon/wings/lime.png differ
diff --git a/img/transformations/demon/wings/red.png b/img/transformations/demon/wings/red.png
new file mode 100644
index 0000000000000000000000000000000000000000..759b6eead390f5a7cf6ed0c8b2ab2a819f958fc5
Binary files /dev/null and b/img/transformations/demon/wings/red.png differ
diff --git a/img/transformations/demon/wings/yellow.png b/img/transformations/demon/wings/yellow.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e6a2fbc6d862a9de41d1435cfa2517c273002bb
Binary files /dev/null and b/img/transformations/demon/wings/yellow.png differ
diff --git a/modules/01-compatibility.js b/modules/01-compatibility.js
new file mode 100644
index 0000000000000000000000000000000000000000..5cad16b2a17a96aa41bd6321e4cba43e04b028ea
--- /dev/null
+++ b/modules/01-compatibility.js
@@ -0,0 +1,31 @@
+/* Use the most compatible code possible for this script, it should serve as the first script to load on the page, so should have total precedence. */
+(() => {
+	'use strict';
+
+	let hasErrored = false;
+	let resp = '';
+	try {
+		eval("const tdTest = { 'name': 'Bob', 'age': 5 };const tfTest2 = { 'hair': 'blonde', ...tdTest };");
+	} catch (e) {
+		hasErrored = true;
+		resp += 'Destructuring is not supported for your browser.\n';
+	}
+	if (hasErrored) {
+		/* Calculate how the user should upgrade. */
+		const segments = navigator.userAgent.split(' ');
+		const androidTest = segments.findIndex(s => s.startsWith('Android'));
+		const chromeTest = segments.findIndex(s => s.startsWith('Chrome'));
+		const firefoxTest = segments.findIndex(s => s.startsWith('Firefox'));
+		if (androidTest >= 0) {
+			resp += '\nUpdate your Android WebView System app.\nVersion: ' + segments[androidTest].slice(8);
+		} else if (chromeTest >= 0) {
+			resp += '\nUpdate your Chrome browser.\nVersion: ' + segments[chromeTest].slice(7);
+		} else if (firefoxTest >= 0) {
+			resp += '\nUpdate your Firefox browser.\nVersion: ' + segments[firefoxTest].slice(8);
+		} else {
+			resp += '\nUpdate your browser.';
+		}
+		alert(resp);
+		console.debug(resp);
+	}
+})();
diff --git a/modules/02-array-extensions.js b/modules/02-array-extensions.js
new file mode 100644
index 0000000000000000000000000000000000000000..4cca72eac862ddb8c053ce14088a64cd13e38b6c
--- /dev/null
+++ b/modules/02-array-extensions.js
@@ -0,0 +1,44 @@
+Object.defineProperty(Array.prototype, 'pluckWith', {
+	configurable : true,
+	writable     : true,
+
+	value(predicate) {
+		if (this == null) {
+			throw new TypeError('Array.prototype.pluckWith called on null or undefined');
+		}
+		if (typeof predicate !== 'function') {
+			throw new Error('Array.prototype.pluckWith predicate parameter must be a function');
+		}
+		const indices = [];
+		this.forEach((e, i) => {
+			if (predicate.call(this, e, i, this)) {
+				indices.push(i);
+			}
+		});
+		if (indices.length === 0) return;
+		const index = indices.random();
+		return this.splice(index, 1)[0];
+	}
+});
+
+Object.defineProperty(Array.prototype, 'select', {
+	configurable : true,
+	writable     : true,
+
+	value(index) {
+		if (this == null) {
+			throw new TypeError('Array.prototype.select called on null or undefined');
+		}
+		if (typeof index !== 'number') {
+			throw new Error('Array.prototype.select index parameter must be a function');
+		}
+		const start = 0;
+		const end = this.length - 1;
+		const safeIndex = (start > index)
+			? start
+			: (end < index)
+				? end
+				: index;
+		return this[safeIndex];
+	}
+});
diff --git a/modules/readme.md b/modules/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..aa05b942ee08d81ed81ffaa81d64189581907035
--- /dev/null
+++ b/modules/readme.md
@@ -0,0 +1,18 @@
+# Modules
+
+This directory should contain standalone files, that do not intend to access SugarCube, but may be accessed from the `/game/` directory files.
+
+### Additional statements
+
+Javascript files are inserted into the head of the HTML file, and are executed instantly. This will occur before most, if not all, of the other processes for the game, this includes SugarCube.
+
+Changes to this directory are watched automatically, along with the regular `/game/` directory, when using `compile_watch.bat`.
+
+### Supported files
+
+- .css
+- .js
+- .otf
+- .ttf
+- .woff
+- .woff2
diff --git a/version b/version
index 6b6eff4281e76bc74a6b3b54e8f83ccfec58bce7..44938339fa2b808d7d041c5f5c0cdf0c9d46672d 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-0.3.8.6
\ No newline at end of file
+0.3.9.1
\ No newline at end of file